@oat-sa/tao-core-ui 1.5.4 → 1.6.3
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/dist/ckeditor/ckConfigurator.js +9 -1
- package/dist/mediaEditor/mediaEditorComponent.js +5 -3
- package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +46 -25
- package/dist/mediaplayer/css/player.css +104 -14
- package/dist/mediaplayer/css/player.css.map +1 -1
- package/dist/mediaplayer/players/html5.js +767 -0
- package/dist/mediaplayer/players/youtube.js +470 -0
- package/dist/mediaplayer/players.js +35 -0
- package/dist/mediaplayer/support.js +134 -0
- package/dist/mediaplayer/utils/reminder.js +198 -0
- package/dist/mediaplayer/utils/timeObserver.js +149 -0
- package/dist/mediaplayer/youtubeManager.js +177 -0
- package/dist/mediaplayer.js +1251 -1912
- package/dist/previewer.js +25 -19
- package/package.json +1 -1
- package/scss/basic.scss +1 -0
- package/scss/inc/_jquery.nouislider.scss +254 -0
- package/src/ckeditor/ckConfigurator.js +10 -1
- package/src/itemButtonList/css/item-button-list.css +225 -0
- package/src/itemButtonList/css/item-button-list.css.map +1 -0
- package/src/mediaEditor/mediaEditorComponent.js +25 -26
- package/src/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +83 -63
- package/src/mediaplayer/css/player.css +104 -14
- package/src/mediaplayer/css/player.css.map +1 -1
- package/src/mediaplayer/players/html5.js +564 -0
- package/src/mediaplayer/players/youtube.js +323 -0
- package/src/mediaplayer/players.js +29 -0
- package/src/mediaplayer/scss/player.scss +125 -16
- package/src/mediaplayer/support.js +126 -0
- package/src/mediaplayer/tpl/audio.tpl +6 -0
- package/src/mediaplayer/tpl/player.tpl +11 -32
- package/src/mediaplayer/tpl/source.tpl +1 -0
- package/src/mediaplayer/tpl/video.tpl +6 -0
- package/src/mediaplayer/tpl/youtube.tpl +1 -0
- package/src/mediaplayer/utils/reminder.js +184 -0
- package/src/mediaplayer/utils/timeObserver.js +143 -0
- package/src/mediaplayer/youtubeManager.js +161 -0
- package/src/mediaplayer.js +1217 -1901
- package/src/previewer.js +40 -33
- package/src/searchModal/css/advancedSearch.css +190 -0
- package/src/searchModal/css/advancedSearch.css.map +1 -0
- package/src/searchModal/css/searchModal.css +506 -0
- package/src/searchModal/css/searchModal.css.map +1 -0
|
@@ -27,6 +27,14 @@ define(['jquery', 'lodash', 'ui/ckeditor/dtdHandler', 'ckeditor'], function ($,
|
|
|
27
27
|
|
|
28
28
|
var originalConfig = _.cloneDeep(window.CKEDITOR.config);
|
|
29
29
|
|
|
30
|
+
function getUserLanguage() {
|
|
31
|
+
var documentLang = window.document.documentElement.getAttribute('lang');
|
|
32
|
+
var documentLocale = documentLang && documentLang.split('-')[0];
|
|
33
|
+
return documentLocale;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
var lang = getUserLanguage();
|
|
37
|
+
|
|
30
38
|
var ckConfigurator = function () {
|
|
31
39
|
/**
|
|
32
40
|
* Toolbar presets that you normally never would need to change, they can however be overridden with options.toolbar.
|
|
@@ -133,7 +141,7 @@ define(['jquery', 'lodash', 'ui/ckeditor/dtdHandler', 'ckeditor'], function ($,
|
|
|
133
141
|
floatSpaceDockedOffsetY: 0,
|
|
134
142
|
forcePasteAsPlainText: true,
|
|
135
143
|
skin: 'tao',
|
|
136
|
-
language:
|
|
144
|
+
language: lang,
|
|
137
145
|
removePlugins: '',
|
|
138
146
|
linkShowAdvancedTab: false,
|
|
139
147
|
justifyClasses: ['txt-lft', 'txt-ctr', 'txt-rgt', 'txt-jty'],
|
|
@@ -229,13 +229,15 @@ define(['jquery', 'lodash', 'ui/component', 'ui/mediaEditor/plugins/mediaDimensi
|
|
|
229
229
|
|
|
230
230
|
this.render($container);
|
|
231
231
|
}).on('render', function () {
|
|
232
|
-
var
|
|
232
|
+
var _this = this;
|
|
233
|
+
|
|
233
234
|
var $dimensionTools = $$1('.media-dimension', this.getTemplate());
|
|
234
235
|
var plugin;
|
|
235
236
|
|
|
236
237
|
if (this.getConfig().mediaDimension.active) {
|
|
237
238
|
plugin = mediaDimensionComponent($dimensionTools, media, {
|
|
238
|
-
responsive: media.responsive
|
|
239
|
+
responsive: media.responsive,
|
|
240
|
+
showResponsiveToggle: this.getConfig().mediaDimension.showResponsiveToggle
|
|
239
241
|
}).on('change', function (conf) {
|
|
240
242
|
media.responsive = conf.responsive;
|
|
241
243
|
|
|
@@ -248,7 +250,7 @@ define(['jquery', 'lodash', 'ui/component', 'ui/mediaEditor/plugins/mediaDimensi
|
|
|
248
250
|
media.height = conf.sizeProps.px.current.height;
|
|
249
251
|
}
|
|
250
252
|
|
|
251
|
-
|
|
253
|
+
_this.trigger('change', media);
|
|
252
254
|
});
|
|
253
255
|
plugins.push(plugin);
|
|
254
256
|
}
|
|
@@ -255,11 +255,11 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
255
255
|
};
|
|
256
256
|
/**
|
|
257
257
|
* Creates mediaDimension component
|
|
258
|
-
* @param $container
|
|
259
|
-
* @param media
|
|
260
|
-
* @param config
|
|
258
|
+
* @param {jQueryElement} $container
|
|
259
|
+
* @param {Object} media
|
|
260
|
+
* @param {Object} config
|
|
261
261
|
* @fires "changed" - on State changed
|
|
262
|
-
*
|
|
262
|
+
* @returns {component|*} mediaDimensionComponent
|
|
263
263
|
*/
|
|
264
264
|
|
|
265
265
|
function mediaDimensionFactory($container, media, config) {
|
|
@@ -293,6 +293,8 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
293
293
|
var initialConfig;
|
|
294
294
|
/**
|
|
295
295
|
* Calculate propSizes to have correct sizes for the shown image
|
|
296
|
+
* @param {Object} conf
|
|
297
|
+
* @returns {Object}
|
|
296
298
|
*/
|
|
297
299
|
|
|
298
300
|
var calculateCurrentSizes = function calculateCurrentSizes(conf) {
|
|
@@ -302,6 +304,19 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
302
304
|
maxWidth: helper.getMediaContainerWidth(media)
|
|
303
305
|
});
|
|
304
306
|
};
|
|
307
|
+
/**
|
|
308
|
+
* Return oroginal size
|
|
309
|
+
* @returns {Object}
|
|
310
|
+
*/
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
function getOriginalSize() {
|
|
314
|
+
// for images naturalWidth, for video videoWidth, for youtube iframe width
|
|
315
|
+
return {
|
|
316
|
+
width: media.$node[0].naturalWidth || media.$node[0].videoWidth || media.$node[0].width,
|
|
317
|
+
height: media.$node[0].naturalHeight || media.$node[0].videoHeight || media.$node[0].height
|
|
318
|
+
};
|
|
319
|
+
}
|
|
305
320
|
/**
|
|
306
321
|
* Current component
|
|
307
322
|
*/
|
|
@@ -310,14 +325,16 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
310
325
|
var mediaDimensionComponent = component({
|
|
311
326
|
/**
|
|
312
327
|
* Reset the component to the initial state
|
|
328
|
+
* @returns {component} this
|
|
313
329
|
*/
|
|
314
330
|
reset: function reset() {
|
|
315
331
|
var syncDim = initialConfig.syncDimensions;
|
|
316
332
|
|
|
317
333
|
if (this.is('rendered')) {
|
|
318
|
-
// revert the sizes to the original
|
|
319
|
-
|
|
320
|
-
initialConfig.sizeProps.px.current.
|
|
334
|
+
// revert the sizes to the original
|
|
335
|
+
var originalSize = getOriginalSize();
|
|
336
|
+
initialConfig.sizeProps.px.current.width = originalSize.width;
|
|
337
|
+
initialConfig.sizeProps.px.current.height = originalSize.height;
|
|
321
338
|
initialConfig.sizeProps.ratio.current = initialConfig.sizeProps.ratio.natural; // reset needs to restore everything
|
|
322
339
|
|
|
323
340
|
initialConfig.syncDimensions = true; // apply changes
|
|
@@ -349,13 +366,13 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
349
366
|
}, defaultConfig);
|
|
350
367
|
/**
|
|
351
368
|
* Check that input in progress and we don't need to change anything
|
|
352
|
-
* @param val
|
|
369
|
+
* @param {String|number} val
|
|
353
370
|
* @returns {RegExpMatchArray | null}
|
|
354
371
|
*/
|
|
355
372
|
|
|
356
373
|
var isInsignificantEnd = function isInsignificantEnd(val) {
|
|
357
374
|
if (typeof val !== 'string') {
|
|
358
|
-
val = val
|
|
375
|
+
val = "".concat(val);
|
|
359
376
|
}
|
|
360
377
|
|
|
361
378
|
return val.match(/\.[0]*$/);
|
|
@@ -363,7 +380,7 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
363
380
|
/**
|
|
364
381
|
* Blocks are the two different parts of the form (either width|height or size)
|
|
365
382
|
*
|
|
366
|
-
* @param $elt
|
|
383
|
+
* @param {jQueryElement} $elt
|
|
367
384
|
* @returns {{}}
|
|
368
385
|
* @private
|
|
369
386
|
*/
|
|
@@ -409,7 +426,7 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
409
426
|
}
|
|
410
427
|
|
|
411
428
|
_(['px', '%']).forEach(function (unit) {
|
|
412
|
-
_blocks[unit] = $elt.find(
|
|
429
|
+
_blocks[unit] = $elt.find(".media-sizer-".concat(unit === 'px' ? 'pixel' : 'percent'));
|
|
413
430
|
|
|
414
431
|
_blocks[unit].prop('unit', unit);
|
|
415
432
|
|
|
@@ -427,7 +444,7 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
427
444
|
/**
|
|
428
445
|
* Toggle width/height synchronization
|
|
429
446
|
*
|
|
430
|
-
* @param $elt
|
|
447
|
+
* @param {jQueryElement} $elt
|
|
431
448
|
* @returns {*}
|
|
432
449
|
* @private
|
|
433
450
|
*/
|
|
@@ -454,7 +471,7 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
454
471
|
/**
|
|
455
472
|
* Button to reset the size to its original values
|
|
456
473
|
*
|
|
457
|
-
* @param $elt
|
|
474
|
+
* @param {jQueryElement} $elt
|
|
458
475
|
* @returns {*}
|
|
459
476
|
* @private
|
|
460
477
|
*/
|
|
@@ -485,15 +502,15 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
485
502
|
|
|
486
503
|
|
|
487
504
|
var initFields = function initFields() {
|
|
488
|
-
var dimensions = ['width', 'height']
|
|
489
|
-
|
|
490
|
-
|
|
505
|
+
var dimensions = ['width', 'height'];
|
|
506
|
+
var field;
|
|
507
|
+
var _fields = {};
|
|
491
508
|
|
|
492
509
|
_($blocks).forOwn(function ($block, unit) {
|
|
493
510
|
_fields[unit] = {};
|
|
494
511
|
$blocks[unit].find('input').each(function () {
|
|
495
512
|
_(dimensions).forEach(function (dim) {
|
|
496
|
-
field = $blocks[unit].find(
|
|
513
|
+
field = $blocks[unit].find("[name=\"".concat(dim, "\"]")); // there is no 'height' field for % - $('<input>') is a dummy to avoid checking if the field exists all the time
|
|
497
514
|
|
|
498
515
|
_fields[unit][dim] = field.length ? field : $$1('<input>');
|
|
499
516
|
|
|
@@ -527,9 +544,9 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
527
544
|
});
|
|
528
545
|
|
|
529
546
|
_fields[unit][dim].on('keyup blur sliderchange', function () {
|
|
530
|
-
var $field = $$1(this)
|
|
531
|
-
|
|
532
|
-
|
|
547
|
+
var $field = $$1(this);
|
|
548
|
+
var value = $field.val().replace(/,/g, '.');
|
|
549
|
+
var newDimensions;
|
|
533
550
|
$field.val(value);
|
|
534
551
|
|
|
535
552
|
if (isInsignificantEnd(value)) {
|
|
@@ -539,10 +556,10 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
539
556
|
|
|
540
557
|
if (value > $field.data('max')) {
|
|
541
558
|
$field.val($field.data('max'));
|
|
542
|
-
value = $field.data('max')
|
|
559
|
+
value = "".concat($field.data('max'));
|
|
543
560
|
} else if (value < $field.data('min')) {
|
|
544
561
|
$field.val($field.data('min'));
|
|
545
|
-
value = $field.data('min')
|
|
562
|
+
value = "".concat($field.data('min'));
|
|
546
563
|
}
|
|
547
564
|
|
|
548
565
|
if ($field.prop('unit') === '%') {
|
|
@@ -575,6 +592,7 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
575
592
|
/**
|
|
576
593
|
* Initialize the two sliders, one based on pixels the other on percentage
|
|
577
594
|
*
|
|
595
|
+
* @param {jQueryElement} $elt
|
|
578
596
|
* @returns {{}}
|
|
579
597
|
* @private
|
|
580
598
|
*/
|
|
@@ -592,7 +610,7 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
592
610
|
}
|
|
593
611
|
}).on('slide', function () {
|
|
594
612
|
// to avoid .00
|
|
595
|
-
var percent = parseFloat($$1(this).val()
|
|
613
|
+
var percent = parseFloat("".concat($$1(this).val()));
|
|
596
614
|
helper.applyDimensions(initialConfig, {
|
|
597
615
|
percent: percent,
|
|
598
616
|
maxWidth: helper.getMediaContainerWidth(media)
|
|
@@ -603,6 +621,9 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
603
621
|
};
|
|
604
622
|
|
|
605
623
|
mediaDimensionComponent.on('init', function () {
|
|
624
|
+
var originalSize = getOriginalSize();
|
|
625
|
+
var naturalWidth = originalSize.width;
|
|
626
|
+
var naturalHeight = originalSize.height;
|
|
606
627
|
var mediaProps = {
|
|
607
628
|
px: {
|
|
608
629
|
current: {
|
|
@@ -610,8 +631,8 @@ define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify
|
|
|
610
631
|
height: media.height
|
|
611
632
|
},
|
|
612
633
|
natural: {
|
|
613
|
-
width:
|
|
614
|
-
height:
|
|
634
|
+
width: naturalWidth ? naturalWidth : media.width,
|
|
635
|
+
height: naturalHeight ? naturalHeight : media.height
|
|
615
636
|
}
|
|
616
637
|
},
|
|
617
638
|
'%': {
|
|
@@ -12,6 +12,15 @@ Usage:
|
|
|
12
12
|
border-radius: 2px;
|
|
13
13
|
border-radius: 2px;
|
|
14
14
|
background: black;
|
|
15
|
+
max-width: 100%;
|
|
16
|
+
min-height: 36px;
|
|
17
|
+
min-width: 200px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.mediaplayer.youtube .player {
|
|
21
|
+
width: 100%;
|
|
22
|
+
height: 0px;
|
|
23
|
+
padding-bottom: 56.25%;
|
|
15
24
|
}
|
|
16
25
|
|
|
17
26
|
.mediaplayer .icon-sound:before {
|
|
@@ -28,13 +37,27 @@ Usage:
|
|
|
28
37
|
|
|
29
38
|
.mediaplayer .player {
|
|
30
39
|
position: relative;
|
|
40
|
+
height: calc(100% - 36px);
|
|
41
|
+
width: 100%;
|
|
31
42
|
}
|
|
32
43
|
|
|
33
44
|
.mediaplayer .player iframe {
|
|
34
45
|
pointer-events: none;
|
|
46
|
+
position: absolute;
|
|
47
|
+
left: 0;
|
|
48
|
+
top: 0;
|
|
49
|
+
width: 100%;
|
|
50
|
+
height: 100%;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.mediaplayer .player .media:not(.youtube) {
|
|
54
|
+
display: block;
|
|
55
|
+
width: 100%;
|
|
56
|
+
height: auto;
|
|
57
|
+
max-height: 100%;
|
|
35
58
|
}
|
|
36
59
|
|
|
37
|
-
.mediaplayer .player .overlay {
|
|
60
|
+
.mediaplayer .player .player-overlay {
|
|
38
61
|
position: absolute;
|
|
39
62
|
z-index: 1;
|
|
40
63
|
top: 0;
|
|
@@ -50,10 +73,8 @@ Usage:
|
|
|
50
73
|
z-index: 2;
|
|
51
74
|
top: 50%;
|
|
52
75
|
left: 50%;
|
|
53
|
-
|
|
54
|
-
height: 64px;
|
|
76
|
+
transform: translate(-50%);
|
|
55
77
|
margin-top: -32px;
|
|
56
|
-
margin-left: -32px;
|
|
57
78
|
text-align: center;
|
|
58
79
|
text-decoration: none;
|
|
59
80
|
display: none;
|
|
@@ -73,6 +94,29 @@ Usage:
|
|
|
73
94
|
opacity: 0.6;
|
|
74
95
|
}
|
|
75
96
|
|
|
97
|
+
.mediaplayer .player .action.reload {
|
|
98
|
+
width: 100%;
|
|
99
|
+
font-size: 50px;
|
|
100
|
+
line-height: 30px;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.mediaplayer .player .action.reload:hover .icon {
|
|
104
|
+
opacity: 1;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.mediaplayer .player .action.reload .icon {
|
|
108
|
+
opacity: 0.6;
|
|
109
|
+
background: none;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.mediaplayer .player .action.reload .message {
|
|
113
|
+
font-size: 20px;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.mediaplayer .player .action.reload .icon, .mediaplayer .player .action.reload .message {
|
|
117
|
+
text-shadow: 1px 0 0 #000, 0 -1px 0 #000, 0 1px 0 #000, -1px 0 0 #000;
|
|
118
|
+
}
|
|
119
|
+
|
|
76
120
|
.mediaplayer .controls {
|
|
77
121
|
visibility: hidden;
|
|
78
122
|
position: relative;
|
|
@@ -81,6 +125,7 @@ Usage:
|
|
|
81
125
|
table-layout: fixed;
|
|
82
126
|
width: 100%;
|
|
83
127
|
border-top: 1px solid #333333;
|
|
128
|
+
height: 36px;
|
|
84
129
|
}
|
|
85
130
|
|
|
86
131
|
.mediaplayer .controls .bar {
|
|
@@ -296,27 +341,59 @@ Usage:
|
|
|
296
341
|
bottom: 0;
|
|
297
342
|
}
|
|
298
343
|
|
|
344
|
+
.mediaplayer.audio.stalled .player .player-overlay [data-control="reload"] {
|
|
345
|
+
display: flex;
|
|
346
|
+
align-items: center;
|
|
347
|
+
background-color: #000;
|
|
348
|
+
margin: 0;
|
|
349
|
+
flex-wrap: wrap;
|
|
350
|
+
padding: 5px 5px 5px 50px;
|
|
351
|
+
text-align: left;
|
|
352
|
+
line-height: 2.3rem;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
.mediaplayer.audio.stalled .player .player-overlay [data-control="reload"].reload {
|
|
356
|
+
width: calc(100% + 2px);
|
|
357
|
+
font-size: 20px;
|
|
358
|
+
line-height: 20px;
|
|
359
|
+
min-height: 36px;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
.mediaplayer.audio.stalled .player .player-overlay [data-control="reload"].reload .icon {
|
|
363
|
+
text-shadow: none;
|
|
364
|
+
position: absolute;
|
|
365
|
+
left: 0;
|
|
366
|
+
font-size: 2rem;
|
|
367
|
+
font-weight: bold;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
.mediaplayer.audio.stalled .player .player-overlay [data-control="reload"].reload .message {
|
|
371
|
+
text-shadow: none;
|
|
372
|
+
font-size: 1.3rem;
|
|
373
|
+
margin-right: 5px;
|
|
374
|
+
}
|
|
375
|
+
|
|
299
376
|
.mediaplayer.ready .controls {
|
|
300
377
|
visibility: visible;
|
|
301
378
|
}
|
|
302
379
|
|
|
303
|
-
.mediaplayer.ready.paused.canplay .overlay {
|
|
380
|
+
.mediaplayer.ready.paused.canplay .player-overlay {
|
|
304
381
|
cursor: pointer;
|
|
305
382
|
}
|
|
306
383
|
|
|
307
|
-
.mediaplayer.ready.paused.canplay .player:hover [data-control="play"] {
|
|
384
|
+
.mediaplayer.ready.paused.canplay:not(.audio) .player:hover [data-control="play"] {
|
|
308
385
|
display: inline-block;
|
|
309
386
|
}
|
|
310
387
|
|
|
311
|
-
.mediaplayer.ready.paused.canplay.youtube.ended .player:hover [data-control="play"] {
|
|
388
|
+
.mediaplayer.ready.paused.canplay.youtube.ended .player:hover [data-control="play"], .mediaplayer.ready.paused.canplay:not(.preview) .player:hover [data-control="play"] {
|
|
312
389
|
display: none;
|
|
313
390
|
}
|
|
314
391
|
|
|
315
|
-
.mediaplayer.ready.playing.canpause .overlay {
|
|
392
|
+
.mediaplayer.ready.playing.canpause .player-overlay {
|
|
316
393
|
cursor: pointer;
|
|
317
394
|
}
|
|
318
395
|
|
|
319
|
-
.mediaplayer.ready.playing.canpause .player:hover [data-control="pause"] {
|
|
396
|
+
.mediaplayer.ready.playing.canpause:not(.audio) .player:hover [data-control="pause"] {
|
|
320
397
|
display: inline-block;
|
|
321
398
|
}
|
|
322
399
|
|
|
@@ -344,7 +421,7 @@ Usage:
|
|
|
344
421
|
pointer-events: inherit;
|
|
345
422
|
}
|
|
346
423
|
|
|
347
|
-
.mediaplayer.nogui .overlay {
|
|
424
|
+
.mediaplayer.nogui .player-overlay {
|
|
348
425
|
display: none !important;
|
|
349
426
|
}
|
|
350
427
|
|
|
@@ -352,24 +429,24 @@ Usage:
|
|
|
352
429
|
display: none !important;
|
|
353
430
|
}
|
|
354
431
|
|
|
355
|
-
.mediaplayer.error .media, .mediaplayer.error .controls {
|
|
432
|
+
.mediaplayer.error:not(.stalled) .media, .mediaplayer.error:not(.stalled) .controls {
|
|
356
433
|
display: none;
|
|
357
434
|
}
|
|
358
435
|
|
|
359
|
-
.mediaplayer.error .error {
|
|
436
|
+
.mediaplayer.error:not(.stalled) .error {
|
|
360
437
|
display: table;
|
|
361
438
|
text-align: center;
|
|
362
439
|
width: 100%;
|
|
363
440
|
height: 100%;
|
|
364
441
|
}
|
|
365
442
|
|
|
366
|
-
.mediaplayer.error .error .message {
|
|
443
|
+
.mediaplayer.error:not(.stalled) .error .message {
|
|
367
444
|
color: #ba122b;
|
|
368
445
|
display: table-cell;
|
|
369
446
|
vertical-align: middle;
|
|
370
447
|
}
|
|
371
448
|
|
|
372
|
-
.mediaplayer.loading::before {
|
|
449
|
+
.mediaplayer.loading:not(.stalled)::before {
|
|
373
450
|
content: '';
|
|
374
451
|
box-sizing: border-box;
|
|
375
452
|
position: absolute;
|
|
@@ -391,4 +468,17 @@ Usage:
|
|
|
391
468
|
}
|
|
392
469
|
}
|
|
393
470
|
|
|
471
|
+
.mediaplayer.stalled .video {
|
|
472
|
+
filter: blur(4px);
|
|
473
|
+
opacity: 0.4;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
.mediaplayer.stalled .player-overlay [data-control="reload"] {
|
|
477
|
+
display: inline-block;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
.mediaplayer.video:not(.preview):not(.error) .player-overlay [data-control="start"] {
|
|
481
|
+
display: inline-block;
|
|
482
|
+
}
|
|
483
|
+
|
|
394
484
|
/*# sourceMappingURL=player.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../scss/inc/_functions.scss","../scss/player.scss","../../../scss/inc/fonts/_tao-icon-vars.scss","../../../scss/inc/_colors.scss"],"names":[],"mappings":"AAaA;;;;;;CCPC;ACND,gBAAA;ADeA;IACI,kBAAkB;ID6FlB,yBGhDsB;IHiDtB,kBAAkB;IAOlB,kBAA4B;IClG5B,iBDwL+B;AC1LnC;;AAFA;ICuMoB,gBAAgB;ADjMpC;;AANA;ICsLyB,gBAAgB;AD5KzC;;AAVA;IAcQ,aAAa;AAArB;;AAdA;IAkBQ,kBAAkB;AAA1B;;AAlBA;IAqBY,oBAAoB;AAChC;;AAtBA;IAyBY,kBAAkB;IAClB,UAAU;IACV,MAAM;IACN,OAAO;IACP,SAAS;IACT,QAAQ;IACR,UAAU;IACV,4BAA4B;AACxC;;AAjCA;IAoCY,kBAAkB;IAClB,UAAU;IACV,QAAQ;IACR,SAAS;IACT,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,aAAa;ID2JjB,eAAyB;IACzB,iBAA+B;IC1J3B,YDgJ6B;AC9IzC;;AAlDA;IDsGI,mBAA4B;IClDhB,iBAAiB;IACjB,uBDuImB;ICtInB,YAAY;AAK5B;;AA3DA;IAyDoB,YAAY;AAMhC;;AA/DA;IAgEQ,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,cAAc;IACd,mBAAmB;IACnB,WAAW;IACX,6BExBkB;AF2B1B;;AAzEA;IAyEY,kBAAkB;AAI9B;;AA7EA;IA4EY,mBAAmB;AAK/B;;AAjFA;IAgFY,kBAAkB;IDtClB,qCAAwB;ACgDpC;;AA1FA;IAoFgB,kBAAkB;IAClB,mBAlGS;IAmGT,aAnGS;IAoGT,cApGS;IAqGT,qBAAqB;IACrB,gBEzCiB;IHNrB,qCAAwB;AC8DpC;;AAxGA;IA6FoB,UAAU;AAe9B;;AA5GA;IAiGoB,mBA9GK;AA6HzB;;AAhHA;IAsGgB,YAAY;IACZ,+BEzDU;AFuE1B;;AArHA;IA2GgB,YAAY;IACZ,8BE9DU;AF4E1B;;AA1HA;IAiHY,eAAe;IDnBvB,sBGpFyB;IHqFzB,kBAAkB;IAOlB,mBAA4B;IA5DpB,qCAAwB;IC2ExB,iBD2E6B;ACtDzC;;AA1IA;IDsGI,mBAA4B;ICmBhB,iBDuEyB;AC/CzC;;AAjJA;IDsGI,mBAA4B;ICuBhB,mBE/EU;AF0G1B;;AAxJA;IAiIgB,WAAW;IACX,YAAY;IDpCxB,sBGpFyB;IHqFzB,kBAAkB;IAOlB,mBAA4B;IC+BhB,mBDuCkC;ACRlD;;AApKA;IAwIgB,mBDoCkC;ACJlD;;AAxKA;IA2IgB,aAAa;AAiC7B;;AA5KA;IA+IgB,WAAW;AAiC3B;;AAhLA;IAkJoB,SAAS;AAkC7B;;AApLA;IAuJgB,UAAU;AAiC1B;;AAxLA;IA0JoB,UAAU;AAkC9B;;AA5LA;IAgKY,eAAe;IAEf,cA9KY;IA+KZ,mBAhLa;IAkLb,WA9KK;IDkNT,eAAyB;IACzB,eAA+B;ICnC3B,iBAAiB;AA+B7B;;AAtMA;IA0KgB,cAAc;AAgC9B;;AA1MA;IA+KY,WAAW;IACX,kBAAkB;AA+B9B;;AA/MA;IAoLY,kBAAkB;IAClB,YAAY;IACZ,eAAe;IACf,kBAnMY;AAkOxB;;AAtNA;IA2LY,kBAvMY;IAwMZ,aAzMa;AAwOzB;;AA3NA;IAgMY,aA7Ma;IA8Mb,cA9Ma;AA6OzB;;AAhOA;IAqMgB,eAAe;IACf,kBAAkB;IAClB,UAAU;IACV,uBDZmB;ICanB,sBAAsB;IACtB,SAAS;IACT,MAAM;IACN,UAAU;IACV,UAAW;IACX,yBEhKU;IHJd,gFAAwB;ACwMpC;;AAlPA;IAkNoB,aAAa;IACb,2BAA2B;IAC3B,UAAW;AAoC/B;;AAxPA;IAsNwB,UAAW;IACX,qCAAqC;ID7KjD,qCAAwB;ACwNpC;;AAlQA;IA4NoB,WAAW;IDlLnB,oFAAwB;ACiOpC;;AA3QA;IAgOoB,SAAS;IDtLjB,2DAAwB;AC0OpC;;AApRA;IAsOgB,UAAW;AAkD3B;;AAxRA;IAwOoB,eAAe;IACf,UAAU;IACV,WAAW;AAoD/B;;AA9RA;IA8OoB,WAAW;IACX,WAAW;AAoD/B;;AAnSA;IAmPoB,UAAU;IACV,aAAa;AAoDjC;;AAxSA;IA0PY,aAAa;AAkDzB;;AA5SA;IA6PY,aAAa;AAmDzB;;AAhTA;IAiQY,qBAAqB;AAmDjC;;AApTA;IAoQY,aAAa;AAoDzB;;AAxTA;IA2QgB,aAxRS;IAyRT,cAzRS;IA0RT,QAAQ;AAiDxB;;AA9TA;IAqRgB,cAlSS;IAmST,aAnSS;IAoST,SAAS;AA6CzB;;AApUA;IA8RY,mBAAmB;AA0C/B;;AAxUA;IAmSgB,eAAe;AAyC/B;;AA5UA;IAwSoB,qBAAqB;AAwCzC;;AAhVA;IA+SwB,aAAa;AAqCrC;;AApVA;IAuTgB,eAAe;AAiC/B;;AAxVA;IA4ToB,qBAAqB;AAgCzC;;AA5VA;IAqUgB,qBAAqB;AA2BrC;;AAhWA;IA6UgB,qBAAqB;AAuBrC;;AApWA;IAgVgB,aAAa;AAwB7B;;AAxWA;IAwVgB,aAAa;AAoB7B;;AA5WA;IA2VgB,qBAAqB;AAqBrC;;AAhXA;IAmWgB,uBAAuB;AAiBvC;;AApXA;IAuWY,wBAAwB;AAiBpC;;AAxXA;IA0WY,wBAAwB;AAkBpC;;AA5XA;IAgXY,aAAa;AAgBzB;;AAhYA;IAoXY,cAAc;IACd,kBAAkB;IAClB,WAAW;IACX,YAAY;AAgBxB;;AAvYA;IA0XgB,cEpYQ;IFqYR,mBAAmB;IACnB,sBAAsB;AAiBtC;;AA7YA;IAsYQ,WAAW;IACX,sBAAsB;IACtB,kBAAkB;IAClB,QAAQ;IACR,SAAS;IACT,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,sBAAsB;IACtB,sBAAsB;IACtB,sCAAsC;AAW9C;;AA3BQ;IACI;QAAK,yBAAyB;IA+BtC;AACJ","file":"player.css","sourcesContent":["@mixin iterate-sprite($iconList, $x, $y, $direction, $prefix:'') {\n @each $icon in $iconList {\n #{$prefix}#{$icon} {\n background-position: $x * 1px $y * 1px;\n }\n @if $direction == 'x' {\n $x: $x - 16;\n } @else {\n $y: $y - 16;\n }\n }\n}\n\n/*\nUsage:\n- linear-gradient((color1, color2, color3)) - returns linear-gradient with evenly distributed colors,\n if 3 colors used then the position of each will be 33,33%\n- linear-gradient((color1 0%, color2 30%, color3 80%)) - returns linear-gradient with manually distributed colors,\n first param - color, second - position. Also you can use px or other valid units for set position.\n*/\n@mixin linear-gradient($colorList, $direction: 'to right') {\n $percentage: 0;\n $units: '%';\n $count: length($colorList);\n $increment: 100 / ($count - 1);\n $css: #{$direction + ', '};\n $sep: ', ';\n @each $colorItem in $colorList {\n $color: $colorItem;\n @if (length($colorItem) > 1) {\n $color: nth($colorItem, 1);\n $percentage: nth($colorItem, 2);\n $units: '';\n }\n @if ($percentage >= 100 or index($colorList, $colorItem) == $count) {\n $sep: '';\n }\n $css: #{$css + $color + ' ' + $percentage + $units + $sep};\n $percentage: $percentage + $increment;\n }\n background: linear-gradient( #{$css} );\n}\n\n@mixin grid-unit($span, $numCols: 12, $gutter: 0) {\n $gridPx: 840;\n $rawSpanPx: (($gridPx - ($numCols * $gutter)) / $numCols);\n $spanPx: $rawSpanPx * $span + (($span - 1) * $gutter);\n $spanPercent: widthPerc($spanPx, $gridPx);\n $marginPercent: widthPerc($gutter, $gridPx);\n margin-left: $marginPercent;\n width: $spanPercent;\n}\n\n\n@mixin vendor-prefix($property, $value, $whatToPrefix: property, $prefixes: (-webkit-, -moz-, -ms-, -o-, '')) {\n @if $whatToPrefix == 'property' {\n @each $prefix in $prefixes {\n #{$prefix + $property}: #{$value};\n }\n }\n @else if $whatToPrefix == 'value' {\n @each $prefix in $prefixes {\n #{$property}: #{$prefix + $value};\n }\n }\n}\n@mixin flex-container($wrapBehavior: nowrap, $direction : row) {\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(flex-direction, $direction, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-wrap, $wrapBehavior, property, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(justify-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-items, stretch, property, (-webkit-, ''));\n}\n\n@mixin simple-flex-box($width: auto, $minWidth: 1) {\n\n @include vendor-prefix(order, 0, property, (-ms-, -webkit-, ''));\n flex-item-align: stretch;\n -ms-flex-item-align: stretch;\n @include vendor-prefix(align-self, stretch, property, (-webkit-, ''));\n\n // if both, min width and width are set, width will win this conflict\n @if ($width == auto) {\n @if ($minWidth != 1) {\n @include vendor-prefix(flex, 1 1 $minWidth, property, (-ms-, -webkit-, ''));\n }\n @else {\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis#Values\n // for a discussion auto vs. main-size\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\n }\n }\n @else {\n @include vendor-prefix(flex, 0 0 $width, property, (-ms-, -webkit-, ''));\n }\n}\n\n\n@mixin box-shadow($horiz: 1px, $vert: 1px, $blur: 2px, $spread: 0, $color: rgba(0, 0, 0, .2)) {\n @include vendor-prefix(box-shadow, $horiz $vert $blur $spread $color, property);\n}\n\n@mixin simple-border($color: #ddd) {\n border: 1px solid $color;\n border-radius: 2px;\n -webkit-border-radius: 2px;\n}\n\n@mixin border-radius($radius: 2) {\n -moz-border-radius: $radius * 1px;\n -webkit-border-radius: $radius * 1px;\n border-radius: $radius * 1px;\n}\n\n@mixin border-radius-top($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-right($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-left($radius: 2) {\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-box() {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n@function whiten($color, $white: 0.3) {\n @return mix(#fff, $color, ($white * 100) * 1%);\n}\n\n@function blacken($color, $black: 0.3) {\n @return mix(#000, $color, ($black * 100) * 1%);\n}\n\n@function widthPerc($colWidth, $context) {\n @return ($colWidth * 100 / $context) * 1%\n}\n\n@function remDist($fontSizePx) {\n @return ($fontSizePx / 10) * 1rem\n}\n\n@function black($alpha: 1) {\n @return (rgba(0, 0, 0, $alpha))\n}\n\n@function white($alpha: 1) {\n @return (rgba(255, 255, 255, $alpha))\n}\n\n@mixin font-size($remPx, $important: false) {\n @if $important == true {\n font-size: ($remPx) * 1px !important;\n font-size: ($remPx / 10) * 1rem !important;\n }\n @else {\n font-size: ($remPx) * 1px;\n font-size: ($remPx / 10) * 1rem;\n }\n}\n\n\n@mixin keyframes($name) {\n @-o-keyframes #{$name} { @content };\n @-moz-keyframes #{$name} { @content };\n @-webkit-keyframes #{$name} { @content };\n @keyframes #{$name} { @content };\n}\n\n\n@mixin animation($value, $type:'') {\n $animation: animation;\n @if $type != '' {\n $animation: $animation + '-' + $type;\n }\n @include vendor-prefix($animation, $value, property);\n}\n\n/// CSS transition mixin to the current selection (apply also vendor prefixes).\n/// See <https://developer.mozilla.org/en-US/docs/Web/CSS/transition> for the values\n///\n/// @param {property} [$type = all] the CSS property to apply the transition to\n/// @param {time} [$duration = .5s] the transition property\n/// @param {timing-function} [$effect = ease-out] the transition property\n@mixin transition($type : all, $duration : 0.5s, $effect : ease-out, $delay : 0s){\n @include vendor-prefix(transition, $type + ', ' + $duration + ', ' + $effect + ', ' + $delay, property);\n}\n\n@mixin fade($duration: 1s){\n\n @include keyframes(fade) {\n 0% {opacity:0;}\n 50% {opacity:1;}\n 100% {opacity:0;}\n }\n\n @include vendor-prefix(animation, fade 1s forwards, property);\n}\n\n@mixin repeat(){\n @include animation(infinite, iteration-count);\n}\n\n@mixin largeHeading() {\n @include font-size(20);\n font-family: $headingFont;\n font-style: normal;\n}\n\n@mixin disableSelect() {\n @include vendor-prefix(user-select, none, property);\n}\n","@import \"inc/bootstrap\";\n\n$playerActionSize: 2.2rem;\n$playerActionSpace: 1rem;\n$playerBackground: black();\n$playerBorder: $darkBar;\n$playerText: #999;\n$playerIcon: $darkBarIcon;\n$playerTextOverlay: white();\n$playerSliderBorder: $uiGeneralContentBorder;\n$playerSliderBackground: $uiGeneralContentBg;\n$playerSliderColor: $darkBar;\n$playerSliderHandle: whiten($playerSliderColor, .4);\n$playerSliderHightlight: whiten($playerSliderColor, .2);\n\n.mediaplayer {\n position: relative;\n @include simple-border($playerBorder);\n @include border-radius(2);\n background: $playerBackground;\n\n .icon-sound:before {\n @include icon-audio();\n }\n .icon-mute:before {\n @include icon-result-nok();\n }\n\n .error {\n display: none;\n }\n\n .player {\n position: relative;\n\n iframe {\n pointer-events: none;\n }\n\n .overlay {\n position: absolute;\n z-index: 1;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n opacity: 1;\n background: transparent none;\n }\n\n .action {\n position: absolute;\n z-index: 2;\n top: 50%;\n left: 50%;\n width: 64px;\n height: 64px;\n margin-top: -32px;\n margin-left: -32px;\n text-align: center;\n text-decoration: none;\n display: none;\n @include font-size(64);\n color: $playerTextOverlay;\n\n .icon {\n @include border-radius(10);\n padding: 6px 12px;\n background-color: $playerBackground;\n opacity: 0.2;\n\n &:hover {\n opacity: 0.6;\n }\n }\n }\n }\n\n .controls {\n visibility: hidden;\n position: relative;\n padding: 5px;\n display: table;\n table-layout: fixed;\n width: 100%;\n border-top: 1px solid $playerBorder;\n\n .bar {\n display: table-row;\n }\n .control {\n display: table-cell;\n }\n\n .actions {\n position: relative;\n @include transition(all, 0.1,ease-in-out);\n\n .action {\n text-align: center;\n line-height: $playerActionSize;\n width: $playerActionSize;\n height: $playerActionSize;\n text-decoration: none;\n color: $playerIcon;\n @include transition(all, 0.2, ease-in-out);\n\n &:hover {\n opacity: 1;\n }\n\n .icon {\n line-height: $playerActionSize;\n }\n }\n\n .play {\n opacity: 0.7;\n border-right: 1px solid $playerBorder;\n }\n\n .mute {\n opacity: 0.8;\n border-left: 1px solid $playerBorder;\n }\n }\n\n .slider {\n cursor: pointer;\n @include simple-border($playerSliderBorder);\n @include border-radius(10);\n @include transition(all, 0.1, ease-in-out);\n background: $playerSliderBackground;\n\n .noUi-background {\n @include border-radius(10);\n background: $playerSliderBackground;\n }\n &.noUi-connect, .noUi-connect {\n @include border-radius(10);\n background: $playerSliderColor;\n }\n\n .noUi-handle {\n width: 11px;\n height: 11px;\n @include simple-border($playerSliderBorder);\n @include border-radius(10);\n background: $playerSliderHandle;\n }\n .noUi-handle:hover {\n background: $playerSliderHightlight;\n }\n .noUi-handle:after {\n display: none;\n }\n\n &.noUi-horizontal {\n height: 9px;\n\n .noUi-handle {\n top: -2px;\n }\n }\n\n &.noUi-vertical {\n width: 9px;\n\n .noUi-handle {\n left: -2px;\n }\n }\n }\n\n .infos {\n cursor: default;\n\n margin: 0 $playerActionSpace;\n line-height: $playerActionSize;\n\n color: $playerText;\n @include font-size(10);\n font-weight: bold;\n\n [data-control=\"time-end\"]:before {\n content: ' / ';\n }\n }\n\n .timer {\n width: 8rem;\n text-align: center;\n }\n\n .seek {\n position: relative;\n height: 1rem;\n margin-top: 5px;\n padding-left: $playerActionSpace;\n }\n\n .playback {\n margin-right: $playerActionSpace;\n width: $playerActionSize;\n }\n\n .sound {\n width: $playerActionSize;\n height: $playerActionSize;\n\n\n .volume {\n cursor: default;\n position: absolute;\n z-index: 3;\n background-color: $playerBackground;\n padding: 0 10px 0 10px;\n height: 0;\n top: 0;\n left: -1px;\n opacity : 0;\n border: solid 1px $playerBorder;\n @include vendor-prefix(transition, 'height 300ms ease-out, top 300ms ease-out, opacity 50ms linear 250ms', property);\n\n &.up, &.down {\n height: 120px;\n padding: 10px 10px 5px 10px;\n opacity : 1;\n .slider {\n opacity : 1;\n transition: opacity 50ms linear 200ms;\n @include vendor-prefix(transition, 'opacity 50ms linear 200ms', property);\n }\n }\n &.up {\n top: -125px;\n @include vendor-prefix(transition, 'height 300ms ease-out 50ms, top 300ms ease-out 50ms, opacity 50ms linear', property);\n }\n &.down {\n top: 29px;\n @include vendor-prefix(transition, 'height 300ms ease-out 50ms, opacity 50ms linear', property);\n }\n }\n\n .slider {\n opacity : 0;\n .noUi-handle {\n cursor: pointer;\n width: 9px;\n height: 9px;\n }\n\n &.noUi-horizontal {\n width: 50px;\n height: 7px;\n }\n\n &.noUi-vertical {\n width: 7px;\n height: 100px;\n }\n }\n }\n\n [data-control=\"play\"] {\n display: none;\n }\n [data-control=\"pause\"] {\n display: none;\n }\n\n [data-control=\"mute\"] {\n display: inline-block;\n }\n [data-control=\"unmute\"] {\n display: none;\n }\n }\n\n &.video, &.youtube {\n .sound {\n .volume {\n width: $playerActionSize;\n bottom: $playerActionSize;\n right: 0;\n }\n }\n }\n\n &.audio {\n .sound {\n .volume {\n height: $playerActionSize;\n right: $playerActionSize;\n bottom: 0;\n }\n }\n }\n\n &.ready {\n .controls {\n visibility: visible;\n }\n\n &.paused.canplay {\n .overlay {\n cursor: pointer;\n }\n\n .player:hover {\n [data-control=\"play\"] {\n display: inline-block;\n }\n }\n\n &.youtube.ended {\n .player:hover {\n [data-control=\"play\"] {\n display: none;\n }\n }\n }\n }\n\n &.playing.canpause {\n .overlay {\n cursor: pointer;\n }\n\n .player:hover {\n [data-control=\"pause\"] {\n display: inline-block;\n }\n }\n }\n }\n\n &.playing.canpause {\n .controls {\n [data-control=\"pause\"] {\n display: inline-block;\n }\n }\n }\n\n &.paused.canplay {\n .controls {\n [data-control=\"play\"] {\n display: inline-block;\n }\n [data-control=\"pause\"] {\n display: none;\n }\n }\n }\n\n &.muted {\n .controls {\n [data-control=\"mute\"] {\n display: none;\n }\n [data-control=\"unmute\"] {\n display: inline-block;\n }\n }\n }\n\n &.nogui {\n .player {\n iframe {\n pointer-events: inherit;\n }\n }\n .overlay {\n display: none !important;\n }\n .controls {\n display: none !important;\n }\n }\n\n &.error {\n .media, .controls {\n display: none;\n }\n\n .error {\n display: table;\n text-align: center;\n width: 100%;\n height: 100%;\n\n .message {\n color: $error;\n display: table-cell;\n vertical-align: middle;\n }\n }\n }\n\n &.loading::before {\n @keyframes spinner {\n to { transform: rotate(360deg); }\n }\n\n content: '';\n box-sizing: border-box;\n position: absolute;\n top: 50%;\n left: 50%;\n width: 30px;\n height: 30px;\n margin-top: -15px;\n margin-left: -15px;\n border-radius: 50%;\n border: 1px solid #ccc;\n border-top-color: #07d;\n animation: spinner .6s linear infinite;\n }\n}\n\n/*# sourceMappingURL=player.css.map */","/* Do not edit */@mixin tao-icon-setup {\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: 'tao' !important;\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n@mixin icon-offline { content: \"\\e913\"; }\n@mixin icon-online { content: \"\\e914\"; }\n@mixin icon-tab { content: \"\\e90d\"; }\n@mixin icon-untab { content: \"\\e90e\"; }\n@mixin icon-multi-select { content: \"\\e90b\"; }\n@mixin icon-clipboard { content: \"\\e90a\"; }\n@mixin icon-filebox { content: \"\\e909\"; }\n@mixin icon-click-to-speak { content: \"\\e907\"; }\n@mixin icon-speech-bubble { content: \"\\f0e5\"; }\n@mixin icon-microphone { content: \"\\f130\"; }\n@mixin icon-microphone-off { content: \"\\f131\"; }\n@mixin icon-disconnect { content: \"\\e905\"; }\n@mixin icon-connect { content: \"\\e906\"; }\n@mixin icon-eliminate { content: \"\\e904\"; }\n@mixin icon-wheelchair { content: \"\\e903\"; }\n@mixin icon-text-marker { content: \"\\e902\"; }\n@mixin icon-unshield { content: \"\\e32a\"; }\n@mixin icon-shield { content: \"\\e8e8\"; }\n@mixin icon-tree { content: \"\\e6b4\"; }\n@mixin icon-home { content: \"\\e6b3\"; }\n@mixin icon-shared-file { content: \"\\e6b2\"; }\n@mixin icon-end-attempt { content: \"\\e603\"; }\n@mixin icon-icon { content: \"\\f1c5\"; }\n@mixin icon-radio-bg { content: \"\\e600\"; }\n@mixin icon-checkbox-bg { content: \"\\e601\"; }\n@mixin icon-tag { content: \"\\e602\"; }\n@mixin icon-style { content: \"\\e604\"; }\n@mixin icon-ownership-transfer { content: \"\\e605\"; }\n@mixin icon-property-advanced { content: \"\\e606\"; }\n@mixin icon-property-add { content: \"\\e607\"; }\n@mixin icon-repository-add { content: \"\\e608\"; }\n@mixin icon-repository-remove { content: \"\\e609\"; }\n@mixin icon-repository { content: \"\\e60a\"; }\n@mixin icon-result-server { content: \"\\e60b\"; }\n@mixin icon-folder { content: \"\\e60c\"; }\n@mixin icon-folder-open { content: \"\\e60d\"; }\n@mixin icon-left { content: \"\\e60e\"; }\n@mixin icon-right { content: \"\\e60f\"; }\n@mixin icon-up { content: \"\\e610\"; }\n@mixin icon-down { content: \"\\e611\"; }\n@mixin icon-undo { content: \"\\e612\"; }\n@mixin icon-redo { content: \"\\e613\"; }\n@mixin icon-screen { content: \"\\e614\"; }\n@mixin icon-laptop { content: \"\\e615\"; }\n@mixin icon-tablet { content: \"\\e616\"; }\n@mixin icon-phone { content: \"\\e617\"; }\n@mixin icon-move { content: \"\\e618\"; }\n@mixin icon-bin { content: \"\\e619\"; }\n@mixin icon-shuffle { content: \"\\e61a\"; }\n@mixin icon-print { content: \"\\e61b\"; }\n@mixin icon-tools { content: \"\\e61c\"; }\n@mixin icon-settings { content: \"\\e61d\"; }\n@mixin icon-video { content: \"\\e61e\"; }\n@mixin icon-find { content: \"\\e61f\"; }\n@mixin icon-image { content: \"\\e620\"; }\n@mixin icon-edit { content: \"\\e621\"; }\n@mixin icon-document { content: \"\\e622\"; }\n@mixin icon-resize-grid { content: \"\\e623\"; }\n@mixin icon-resize { content: \"\\e624\"; }\n@mixin icon-help { content: \"\\e625\"; }\n@mixin icon-mobile-menu { content: \"\\e626\"; }\n@mixin icon-fix { content: \"\\e627\"; }\n@mixin icon-unlock { content: \"\\e628\"; }\n@mixin icon-lock { content: \"\\e629\"; }\n@mixin icon-ul { content: \"\\e62a\"; }\n@mixin icon-ol { content: \"\\e62b\"; }\n@mixin icon-email { content: \"\\e62c\"; }\n@mixin icon-download { content: \"\\e62d\"; }\n@mixin icon-logout { content: \"\\e62e\"; }\n@mixin icon-login { content: \"\\e62f\"; }\n@mixin icon-spinner { content: \"\\e630\"; }\n@mixin icon-preview { content: \"\\e631\"; }\n@mixin icon-external { content: \"\\e632\"; }\n@mixin icon-time { content: \"\\e633\"; }\n@mixin icon-save { content: \"\\e634\"; }\n@mixin icon-warning { content: \"\\e635\"; }\n@mixin icon-add { content: \"\\e636\"; }\n@mixin icon-error { content: \"\\e900\"; }\n@mixin icon-close { content: \"\\e637\"; }\n@mixin icon-success { content: \"\\e638\"; }\n@mixin icon-remove { content: \"\\e639\"; }\n@mixin icon-info { content: \"\\e63a\"; }\n@mixin icon-danger { content: \"\\e63b\"; }\n@mixin icon-users { content: \"\\e63c\"; }\n@mixin icon-user { content: \"\\e63d\"; }\n@mixin icon-test-taker { content: \"\\e63e\"; }\n@mixin icon-test-takers { content: \"\\e63f\"; }\n@mixin icon-item { content: \"\\e640\"; }\n@mixin icon-test { content: \"\\e641\"; }\n@mixin icon-delivery { content: \"\\e642\"; }\n@mixin icon-eye-slash { content: \"\\e643\"; }\n@mixin icon-result { content: \"\\e644\"; }\n@mixin icon-delivery-small { content: \"\\e645\"; }\n@mixin icon-upload { content: \"\\e646\"; }\n@mixin icon-result-small { content: \"\\e647\"; }\n@mixin icon-mobile-preview { content: \"\\e648\"; }\n@mixin icon-extension { content: \"\\e649\"; }\n@mixin icon-desktop-preview { content: \"\\e64a\"; }\n@mixin icon-tablet-preview { content: \"\\e64b\"; }\n@mixin icon-insert-horizontal-line { content: \"\\e64c\"; }\n@mixin icon-table { content: \"\\e64d\"; }\n@mixin icon-anchor { content: \"\\e64e\"; }\n@mixin icon-unlink { content: \"\\e64f\"; }\n@mixin icon-link { content: \"\\e650\"; }\n@mixin icon-right-left { content: \"\\e651\"; }\n@mixin icon-left-right { content: \"\\e652\"; }\n@mixin icon-special-character { content: \"\\e653\"; }\n@mixin icon-source { content: \"\\e654\"; }\n@mixin icon-new-page { content: \"\\e655\"; }\n@mixin icon-templates { content: \"\\e656\"; }\n@mixin icon-cut { content: \"\\e657\"; }\n@mixin icon-replace { content: \"\\e658\"; }\n@mixin icon-copy { content: \"\\e659\"; }\n@mixin icon-paste { content: \"\\e65a\"; }\n@mixin icon-select-all { content: \"\\e65b\"; }\n@mixin icon-paste-text { content: \"\\e65c\"; }\n@mixin icon-paste-word { content: \"\\e65d\"; }\n@mixin icon-bold { content: \"\\e65e\"; }\n@mixin icon-italic { content: \"\\e65f\"; }\n@mixin icon-underline { content: \"\\e660\"; }\n@mixin icon-subscript { content: \"\\e661\"; }\n@mixin icon-superscript { content: \"\\e662\"; }\n@mixin icon-strike-through { content: \"\\e663\"; }\n@mixin icon-decrease-indent { content: \"\\e664\"; }\n@mixin icon-increase-indent { content: \"\\e665\"; }\n@mixin icon-block-quote { content: \"\\e666\"; }\n@mixin icon-div-container { content: \"\\e667\"; }\n@mixin icon-align-left { content: \"\\e668\"; }\n@mixin icon-center { content: \"\\e669\"; }\n@mixin icon-align-right { content: \"\\e66a\"; }\n@mixin icon-justify { content: \"\\e66b\"; }\n@mixin icon-choice { content: \"\\e66c\"; }\n@mixin icon-inline-choice { content: \"\\e66d\"; }\n@mixin icon-match { content: \"\\e66e\"; }\n@mixin icon-associate { content: \"\\e66f\"; }\n@mixin icon-media { content: \"\\e670\"; }\n@mixin icon-graphic-order { content: \"\\e671\"; }\n@mixin icon-hotspot { content: \"\\e672\"; }\n@mixin icon-graphic-gap { content: \"\\e673\"; }\n@mixin icon-graphic-associate { content: \"\\e674\"; }\n@mixin icon-select-point { content: \"\\e675\"; }\n@mixin icon-pin { content: \"\\e676\"; }\n@mixin icon-import { content: \"\\e677\"; }\n@mixin icon-export { content: \"\\e678\"; }\n@mixin icon-move-item { content: \"\\e679\"; }\n@mixin icon-meta-data { content: \"\\e67a\"; }\n@mixin icon-slider { content: \"\\e67b\"; }\n@mixin icon-summary-report { content: \"\\e67c\"; }\n@mixin icon-text-entry { content: \"\\e67d\"; }\n@mixin icon-extended-text { content: \"\\e67e\"; }\n@mixin icon-eraser { content: \"\\e67f\"; }\n@mixin icon-row { content: \"\\e680\"; }\n@mixin icon-column { content: \"\\e681\"; }\n@mixin icon-text-color { content: \"\\e682\"; }\n@mixin icon-background-color { content: \"\\e683\"; }\n@mixin icon-spell-check { content: \"\\e684\"; }\n@mixin icon-polygon { content: \"\\e685\"; }\n@mixin icon-rectangle { content: \"\\e686\"; }\n@mixin icon-gap-match { content: \"\\e687\"; }\n@mixin icon-order { content: \"\\e688\"; }\n@mixin icon-hottext { content: \"\\e689\"; }\n@mixin icon-free-form { content: \"\\e68a\"; }\n@mixin icon-step-backward { content: \"\\e68b\"; }\n@mixin icon-fast-backward { content: \"\\e68c\"; }\n@mixin icon-backward { content: \"\\e68d\"; }\n@mixin icon-play { content: \"\\e68e\"; }\n@mixin icon-pause { content: \"\\e68f\"; }\n@mixin icon-stop { content: \"\\e690\"; }\n@mixin icon-forward { content: \"\\e691\"; }\n@mixin icon-fast-forward { content: \"\\e692\"; }\n@mixin icon-step-forward { content: \"\\e693\"; }\n@mixin icon-ellipsis { content: \"\\e694\"; }\n@mixin icon-circle { content: \"\\e695\"; }\n@mixin icon-target { content: \"\\e696\"; }\n@mixin icon-guide-arrow { content: \"\\e697\"; }\n@mixin icon-range-slider-right { content: \"\\e698\"; }\n@mixin icon-range-slider-left { content: \"\\e699\"; }\n@mixin icon-radio-checked { content: \"\\e69a\"; }\n@mixin icon-checkbox-indeterminate { content: \"\\e901\"; }\n@mixin icon-checkbox { content: \"\\e69b\"; }\n@mixin icon-checkbox-crossed { content: \"\\e69c\"; }\n@mixin icon-checkbox-checked { content: \"\\e69d\"; }\n@mixin icon-result-nok { content: \"\\e69e\"; }\n@mixin icon-result-ok { content: \"\\e69f\"; }\n@mixin icon-not-evaluated { content: \"\\e6a0\"; }\n@mixin icon-filter { content: \"\\e6a1\"; }\n@mixin icon-translate { content: \"\\e6a2\"; }\n@mixin icon-eject { content: \"\\e6a3\"; }\n@mixin icon-continue { content: \"\\e6a4\"; }\n@mixin icon-radio { content: \"\\e6a5\"; }\n@mixin icon-sphere { content: \"\\e6a6\"; }\n@mixin icon-reset { content: \"\\e6a7\"; }\n@mixin icon-smaller { content: \"\\e6a8\"; }\n@mixin icon-larger { content: \"\\e6a9\"; }\n@mixin icon-clock { content: \"\\e6aa\"; }\n@mixin icon-font { content: \"\\e6ab\"; }\n@mixin icon-maths { content: \"\\e6ac\"; }\n@mixin icon-grip { content: \"\\e6ad\"; }\n@mixin icon-rubric { content: \"\\e6ae\"; }\n@mixin icon-audio { content: \"\\e6af\"; }\n@mixin icon-grip-h { content: \"\\e6b0\"; }\n@mixin icon-magicwand { content: \"\\e6b1\"; }\n@mixin icon-loop { content: \"\\ea2e\"; }\n@mixin icon-calendar { content: \"\\e953\"; }\n@mixin icon-reload { content: \"\\e984\"; }\n@mixin icon-speed { content: \"\\e9a6\"; }\n@mixin icon-volume { content: \"\\ea27\"; }\n@mixin icon-contrast { content: \"\\e9d5\"; }\n@mixin icon-headphones { content: \"\\e910\"; }\n@mixin icon-compress { content: \"\\f066\"; }\n@mixin icon-map-o { content: \"\\f278\"; }\n@mixin icon-variable { content: \"\\e908\"; }\n@mixin icon-tooltip { content: \"\\e90c\"; }\n@mixin icon-globe { content: \"\\e9c9\"; }\n@mixin icon-highlighter { content: \"\\e90f\"; }\n@mixin icon-eliminate-crossed { content: \"\\e911\"; }\n@mixin icon-play-from-here { content: \"\\e912\"; }\n","// buttons and alerts\n$success: rgb(14, 145, 75);\n$info: rgb(14, 93, 145);\n$warning: rgb(216, 174, 91);\n$danger: rgb(201, 96, 67);\n$error: rgb(186, 18, 43);\n$activeInteraction: rgb(195, 90, 19);\n\n// corporate identity\n$logoRed: rgb(186, 18, 43);\n$grey: rgb(173, 161, 148);\n$darkBlueGrey: rgb(164, 187, 197);\n$mediumBlueGrey: rgb(193, 212, 220);\n$lightBlueGrey: rgb(228, 236, 239);\n$brownRedGrey: rgb(154, 137, 123);\n$darkBrown: rgb(111, 99, 89);\n$websiteBorder: rgb(141, 148, 158);\n\n// ui elements, these should only variations of the above\n// naming convention: jQueryUi theme roller -> camelCase\n\n$textColor: #222;\n$textHighlight: white;\n\n$uiGeneralContentBg: white();\n$uiGeneralContentBorder: #ddd;\n\n$uiHeaderBg: #D4D5D7;\n\n$uiClickableDefaultBg: #f3f1ef;\n$uiClickableHoverBg: whiten($info, .2);\n//$uiClickableActiveBg: $uiHeaderBg;\n$uiClickableActiveBg: whiten($websiteBorder, .2);\n//$uiClickableActiveBg: #aaa;\n\n$uiSelectableSelectedBg: whiten($info, .2);\n$uiSelectableSelectedHoverBg: whiten($info, .1);\n$uiSelectableHoverBg: whiten($info, .9);\n\n$uiOverlay: $lightBlueGrey;\n\n// sidebars etc.\n$canvas: mix(#fff, $grey, 85%);\n\n// colors taken from feedback.scss\n$successBgColor: whiten($success, .8);\n$successBorderColor: whiten($success, .1);\n\n$infoBgColor: whiten($info, .8);\n$infoBorderColor: whiten($info, .1);\n\n$warningBgColor: whiten($warning, .8);\n$warningBorderColor: whiten($warning, .1);\n\n$dangerBgColor: whiten($danger, .8);\n$dangerBorderColor: whiten($danger, .1);\n\n$errorBgColor: whiten($error, .8);\n$errorBorderColor: whiten($error, .1);\n\n\n$darkBar : rgb(51, 51, 51);\n$darkBarTxt : rgb(230, 230, 230);\n$darkBarIcon : rgb(220, 220, 220);\n\n$actionLinkColor: #276D9B;\n$actionLinkHoverColor: #4F83A7;\n\n\n$colorWheel-01: #C3BA13;\n$colorWheel-02: #84A610;\n$colorWheel-03: #2B8E0E;\n$colorWheel-04: #0F9787;\n$colorWheel-05: #0E5D91;\n$colorWheel-06: #0D2689;\n$colorWheel-07: #400D83;\n$colorWheel-08: #960E7D;\n$colorWheel-09: #BA122B;\n$colorWheel-10: #C34713;\n$colorWheel-11: #C36F13;\n$colorWheel-12: #C39413;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../scss/inc/_functions.scss","../scss/player.scss","../../../scss/inc/fonts/_tao-icon-vars.scss","../../../scss/inc/_colors.scss"],"names":[],"mappings":"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","file":"player.css","sourcesContent":["@mixin iterate-sprite($iconList, $x, $y, $direction, $prefix:'') {\n @each $icon in $iconList {\n #{$prefix}#{$icon} {\n background-position: $x * 1px $y * 1px;\n }\n @if $direction == 'x' {\n $x: $x - 16;\n } @else {\n $y: $y - 16;\n }\n }\n}\n\n/*\nUsage:\n- linear-gradient((color1, color2, color3)) - returns linear-gradient with evenly distributed colors,\n if 3 colors used then the position of each will be 33,33%\n- linear-gradient((color1 0%, color2 30%, color3 80%)) - returns linear-gradient with manually distributed colors,\n first param - color, second - position. Also you can use px or other valid units for set position.\n*/\n@mixin linear-gradient($colorList, $direction: 'to right') {\n $percentage: 0;\n $units: '%';\n $count: length($colorList);\n $increment: 100 / ($count - 1);\n $css: #{$direction + ', '};\n $sep: ', ';\n @each $colorItem in $colorList {\n $color: $colorItem;\n @if (length($colorItem) > 1) {\n $color: nth($colorItem, 1);\n $percentage: nth($colorItem, 2);\n $units: '';\n }\n @if ($percentage >= 100 or index($colorList, $colorItem) == $count) {\n $sep: '';\n }\n $css: #{$css + $color + ' ' + $percentage + $units + $sep};\n $percentage: $percentage + $increment;\n }\n background: linear-gradient( #{$css} );\n}\n\n@mixin grid-unit($span, $numCols: 12, $gutter: 0) {\n $gridPx: 840;\n $rawSpanPx: (($gridPx - ($numCols * $gutter)) / $numCols);\n $spanPx: $rawSpanPx * $span + (($span - 1) * $gutter);\n $spanPercent: widthPerc($spanPx, $gridPx);\n $marginPercent: widthPerc($gutter, $gridPx);\n margin-left: $marginPercent;\n width: $spanPercent;\n}\n\n\n@mixin vendor-prefix($property, $value, $whatToPrefix: property, $prefixes: (-webkit-, -moz-, -ms-, -o-, '')) {\n @if $whatToPrefix == 'property' {\n @each $prefix in $prefixes {\n #{$prefix + $property}: #{$value};\n }\n }\n @else if $whatToPrefix == 'value' {\n @each $prefix in $prefixes {\n #{$property}: #{$prefix + $value};\n }\n }\n}\n@mixin flex-container($wrapBehavior: nowrap, $direction : row) {\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(flex-direction, $direction, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-wrap, $wrapBehavior, property, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(justify-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-items, stretch, property, (-webkit-, ''));\n}\n\n@mixin simple-flex-box($width: auto, $minWidth: 1) {\n\n @include vendor-prefix(order, 0, property, (-ms-, -webkit-, ''));\n flex-item-align: stretch;\n -ms-flex-item-align: stretch;\n @include vendor-prefix(align-self, stretch, property, (-webkit-, ''));\n\n // if both, min width and width are set, width will win this conflict\n @if ($width == auto) {\n @if ($minWidth != 1) {\n @include vendor-prefix(flex, 1 1 $minWidth, property, (-ms-, -webkit-, ''));\n }\n @else {\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis#Values\n // for a discussion auto vs. main-size\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\n }\n }\n @else {\n @include vendor-prefix(flex, 0 0 $width, property, (-ms-, -webkit-, ''));\n }\n}\n\n\n@mixin box-shadow($horiz: 1px, $vert: 1px, $blur: 2px, $spread: 0, $color: rgba(0, 0, 0, .2)) {\n @include vendor-prefix(box-shadow, $horiz $vert $blur $spread $color, property);\n}\n\n@mixin simple-border($color: #ddd) {\n border: 1px solid $color;\n border-radius: 2px;\n -webkit-border-radius: 2px;\n}\n\n@mixin border-radius($radius: 2) {\n -moz-border-radius: $radius * 1px;\n -webkit-border-radius: $radius * 1px;\n border-radius: $radius * 1px;\n}\n\n@mixin border-radius-top($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-right($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-left($radius: 2) {\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-box() {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n@function whiten($color, $white: 0.3) {\n @return mix(#fff, $color, ($white * 100) * 1%);\n}\n\n@function blacken($color, $black: 0.3) {\n @return mix(#000, $color, ($black * 100) * 1%);\n}\n\n@function widthPerc($colWidth, $context) {\n @return ($colWidth * 100 / $context) * 1%\n}\n\n@function remDist($fontSizePx) {\n @return ($fontSizePx / 10) * 1rem\n}\n\n@function black($alpha: 1) {\n @return (rgba(0, 0, 0, $alpha))\n}\n\n@function white($alpha: 1) {\n @return (rgba(255, 255, 255, $alpha))\n}\n\n@mixin font-size($remPx, $important: false) {\n @if $important == true {\n font-size: ($remPx) * 1px !important;\n font-size: ($remPx / 10) * 1rem !important;\n }\n @else {\n font-size: ($remPx) * 1px;\n font-size: ($remPx / 10) * 1rem;\n }\n}\n\n\n@mixin keyframes($name) {\n @-o-keyframes #{$name} { @content };\n @-moz-keyframes #{$name} { @content };\n @-webkit-keyframes #{$name} { @content };\n @keyframes #{$name} { @content };\n}\n\n\n@mixin animation($value, $type:'') {\n $animation: animation;\n @if $type != '' {\n $animation: $animation + '-' + $type;\n }\n @include vendor-prefix($animation, $value, property);\n}\n\n/// CSS transition mixin to the current selection (apply also vendor prefixes).\n/// See <https://developer.mozilla.org/en-US/docs/Web/CSS/transition> for the values\n///\n/// @param {property} [$type = all] the CSS property to apply the transition to\n/// @param {time} [$duration = .5s] the transition property\n/// @param {timing-function} [$effect = ease-out] the transition property\n@mixin transition($type : all, $duration : 0.5s, $effect : ease-out, $delay : 0s){\n @include vendor-prefix(transition, $type + ', ' + $duration + ', ' + $effect + ', ' + $delay, property);\n}\n\n@mixin fade($duration: 1s){\n\n @include keyframes(fade) {\n 0% {opacity:0;}\n 50% {opacity:1;}\n 100% {opacity:0;}\n }\n\n @include vendor-prefix(animation, fade 1s forwards, property);\n}\n\n@mixin repeat(){\n @include animation(infinite, iteration-count);\n}\n\n@mixin largeHeading() {\n @include font-size(20);\n font-family: $headingFont;\n font-style: normal;\n}\n\n@mixin disableSelect() {\n @include vendor-prefix(user-select, none, property);\n}\n","@import \"inc/bootstrap\";\n\n$playerActionSize: 2.2rem;\n$playerActionSpace: 1rem;\n$playerBackground: black();\n$playerBorder: $darkBar;\n$playerText: #999;\n$playerIcon: $darkBarIcon;\n$playerTextOverlay: white();\n$playerSliderBorder: $uiGeneralContentBorder;\n$playerSliderBackground: $uiGeneralContentBg;\n$playerSliderColor: $darkBar;\n$playerSliderHandle: whiten($playerSliderColor, .4);\n$playerSliderHightlight: whiten($playerSliderColor, .2);\n$controlsHeight: 36px;\n\n.mediaplayer {\n position: relative;\n @include simple-border($playerBorder);\n @include border-radius(2);\n background: $playerBackground;\n max-width: 100%;\n min-height: $controlsHeight;\n min-width: 200px;\n\n &.youtube {\n .player {\n width: 100%;\n height: 0px;\n padding-bottom: 56.25%; // 56.25% for widescreen 16:9 aspect ratio videos\n }\n }\n .icon-sound:before {\n @include icon-audio();\n }\n .icon-mute:before {\n @include icon-result-nok();\n }\n\n .error {\n display: none;\n }\n\n .player {\n position: relative;\n height: calc(100% - #{$controlsHeight});\n width: 100%;\n\n iframe {\n pointer-events: none;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%\n }\n\n .media:not(.youtube) {\n display: block;\n width: 100%;\n height: auto;\n max-height: 100%;\n }\n\n .player-overlay {\n position: absolute;\n z-index: 1;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n opacity: 1;\n background: transparent none;\n }\n\n .action {\n position: absolute;\n z-index: 2;\n top: 50%;\n left: 50%;\n transform: translate(-50%);\n margin-top: -32px;\n text-align: center;\n text-decoration: none;\n display: none;\n @include font-size(64);\n color: $playerTextOverlay;\n\n .icon {\n @include border-radius(10);\n padding: 6px 12px;\n background-color: $playerBackground;\n opacity: 0.2;\n\n &:hover {\n opacity: 0.6;\n }\n }\n\n &.reload {\n width: 100%;\n font-size: 50px;\n line-height: 30px;\n\n &:hover {\n .icon {\n opacity: 1;\n }\n }\n\n .icon {\n opacity: 0.6;\n background: none;\n }\n .message {\n font-size: 20px;\n }\n\n .icon, .message {\n text-shadow: 1px 0 0 #000, 0 -1px 0 #000, 0 1px 0 #000, -1px 0 0 #000;\n }\n }\n }\n }\n\n .controls {\n visibility: hidden;\n position: relative;\n padding: 5px;\n display: table;\n table-layout: fixed;\n width: 100%;\n border-top: 1px solid $playerBorder;\n height: $controlsHeight;\n\n .bar {\n display: table-row;\n }\n .control {\n display: table-cell;\n }\n\n .actions {\n position: relative;\n @include transition(all, 0.1,ease-in-out);\n\n .action {\n text-align: center;\n line-height: $playerActionSize;\n width: $playerActionSize;\n height: $playerActionSize;\n text-decoration: none;\n color: $playerIcon;\n @include transition(all, 0.2, ease-in-out);\n\n &:hover {\n opacity: 1;\n }\n\n .icon {\n line-height: $playerActionSize;\n }\n }\n\n .play {\n opacity: 0.7;\n border-right: 1px solid $playerBorder;\n }\n\n .mute {\n opacity: 0.8;\n border-left: 1px solid $playerBorder;\n }\n }\n\n .slider {\n cursor: pointer;\n @include simple-border($playerSliderBorder);\n @include border-radius(10);\n @include transition(all, 0.1, ease-in-out);\n background: $playerSliderBackground;\n\n .noUi-background {\n @include border-radius(10);\n background: $playerSliderBackground;\n }\n &.noUi-connect, .noUi-connect {\n @include border-radius(10);\n background: $playerSliderColor;\n }\n\n .noUi-handle {\n width: 11px;\n height: 11px;\n @include simple-border($playerSliderBorder);\n @include border-radius(10);\n background: $playerSliderHandle;\n }\n .noUi-handle:hover {\n background: $playerSliderHightlight;\n }\n .noUi-handle:after {\n display: none;\n }\n\n &.noUi-horizontal {\n height: 9px;\n\n .noUi-handle {\n top: -2px;\n }\n }\n\n &.noUi-vertical {\n width: 9px;\n\n .noUi-handle {\n left: -2px;\n }\n }\n }\n\n .infos {\n cursor: default;\n\n margin: 0 $playerActionSpace;\n line-height: $playerActionSize;\n\n color: $playerText;\n @include font-size(10);\n font-weight: bold;\n\n [data-control=\"time-end\"]:before {\n content: ' / ';\n }\n }\n\n .timer {\n width: 8rem;\n text-align: center;\n }\n\n .seek {\n position: relative;\n height: 1rem;\n margin-top: 5px;\n padding-left: $playerActionSpace;\n }\n\n .playback {\n margin-right: $playerActionSpace;\n width: $playerActionSize;\n }\n\n .sound {\n width: $playerActionSize;\n height: $playerActionSize;\n\n\n .volume {\n cursor: default;\n position: absolute;\n z-index: 3;\n background-color: $playerBackground;\n padding: 0 10px 0 10px;\n height: 0;\n top: 0;\n left: -1px;\n opacity : 0;\n border: solid 1px $playerBorder;\n @include vendor-prefix(transition, 'height 300ms ease-out, top 300ms ease-out, opacity 50ms linear 250ms', property);\n\n &.up, &.down {\n height: 120px;\n padding: 10px 10px 5px 10px;\n opacity : 1;\n .slider {\n opacity : 1;\n transition: opacity 50ms linear 200ms;\n @include vendor-prefix(transition, 'opacity 50ms linear 200ms', property);\n }\n }\n &.up {\n top: -125px;\n @include vendor-prefix(transition, 'height 300ms ease-out 50ms, top 300ms ease-out 50ms, opacity 50ms linear', property);\n }\n &.down {\n top: 29px;\n @include vendor-prefix(transition, 'height 300ms ease-out 50ms, opacity 50ms linear', property);\n }\n }\n\n .slider {\n opacity : 0;\n .noUi-handle {\n cursor: pointer;\n width: 9px;\n height: 9px;\n }\n\n &.noUi-horizontal {\n width: 50px;\n height: 7px;\n }\n\n &.noUi-vertical {\n width: 7px;\n height: 100px;\n }\n }\n }\n\n [data-control=\"play\"] {\n display: none;\n }\n [data-control=\"pause\"] {\n display: none;\n }\n\n [data-control=\"mute\"] {\n display: inline-block;\n }\n [data-control=\"unmute\"] {\n display: none;\n }\n }\n\n &.video, &.youtube {\n .sound {\n .volume {\n width: $playerActionSize;\n bottom: $playerActionSize;\n right: 0;\n }\n }\n }\n\n &.audio {\n .sound {\n .volume {\n height: $playerActionSize;\n right: $playerActionSize;\n bottom: 0;\n }\n }\n\n &.stalled {\n .player {\n .player-overlay {\n [data-control=\"reload\"] {\n display: flex;\n align-items: center;\n background-color: #000;\n margin: 0;\n flex-wrap: wrap;\n padding: 5px 5px 5px 50px;\n text-align: left;\n line-height: 2.3rem;\n &.reload {\n width: calc(100% + 2px);\n font-size: 20px;\n line-height: 20px;\n min-height: 36px;\n\n .icon {\n text-shadow: none;\n position: absolute;\n left: 0;\n font-size: 2rem;\n font-weight: bold;\n }\n\n .message {\n text-shadow: none;\n font-size: 1.3rem;\n margin-right: 5px;\n }\n }\n }\n }\n }\n }\n }\n\n &.ready {\n .controls {\n visibility: visible;\n }\n\n &.paused.canplay {\n .player-overlay {\n cursor: pointer;\n }\n\n &:not(.audio) {\n .player:hover {\n [data-control=\"play\"] {\n display: inline-block;\n }\n }\n }\n\n &.youtube.ended, &:not(.preview) {\n .player:hover {\n [data-control=\"play\"] {\n display: none;\n }\n }\n }\n }\n\n &.playing.canpause {\n .player-overlay {\n cursor: pointer;\n }\n\n &:not(.audio) {\n .player:hover {\n [data-control=\"pause\"] {\n display: inline-block;\n }\n }\n }\n }\n }\n\n &.playing.canpause {\n .controls {\n [data-control=\"pause\"] {\n display: inline-block;\n }\n }\n }\n\n &.paused.canplay {\n .controls {\n [data-control=\"play\"] {\n display: inline-block;\n }\n [data-control=\"pause\"] {\n display: none;\n }\n }\n }\n\n &.muted {\n .controls {\n [data-control=\"mute\"] {\n display: none;\n }\n [data-control=\"unmute\"] {\n display: inline-block;\n }\n }\n }\n\n &.nogui {\n .player {\n iframe {\n pointer-events: inherit;\n }\n }\n .player-overlay {\n display: none !important;\n }\n .controls {\n display: none !important;\n }\n }\n\n &.error:not(.stalled) {\n .media, .controls {\n display: none;\n }\n\n .error {\n display: table;\n text-align: center;\n width: 100%;\n height: 100%;\n\n .message {\n color: $error;\n display: table-cell;\n vertical-align: middle;\n }\n }\n }\n\n &.loading:not(.stalled)::before {\n @keyframes spinner {\n to { transform: rotate(360deg); }\n }\n\n content: '';\n box-sizing: border-box;\n position: absolute;\n top: 50%;\n left: 50%;\n width: 30px;\n height: 30px;\n margin-top: -15px;\n margin-left: -15px;\n border-radius: 50%;\n border: 1px solid #ccc;\n border-top-color: #07d;\n animation: spinner .6s linear infinite;\n }\n\n &.stalled {\n .video {\n filter: blur(4px);\n opacity: 0.4;\n }\n .player-overlay {\n [data-control=\"reload\"] {\n display: inline-block;\n }\n }\n }\n\n &.video:not(.preview):not(.error) {\n .player-overlay {\n [data-control=\"start\"] {\n display: inline-block;\n }\n }\n }\n}\n\n/*# sourceMappingURL=player.css.map */","/* Do not edit */@mixin tao-icon-setup {\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: 'tao' !important;\n speak: none;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n@mixin icon-offline { content: \"\\e913\"; }\n@mixin icon-online { content: \"\\e914\"; }\n@mixin icon-tab { content: \"\\e90d\"; }\n@mixin icon-untab { content: \"\\e90e\"; }\n@mixin icon-multi-select { content: \"\\e90b\"; }\n@mixin icon-clipboard { content: \"\\e90a\"; }\n@mixin icon-filebox { content: \"\\e909\"; }\n@mixin icon-click-to-speak { content: \"\\e907\"; }\n@mixin icon-speech-bubble { content: \"\\f0e5\"; }\n@mixin icon-microphone { content: \"\\f130\"; }\n@mixin icon-microphone-off { content: \"\\f131\"; }\n@mixin icon-disconnect { content: \"\\e905\"; }\n@mixin icon-connect { content: \"\\e906\"; }\n@mixin icon-eliminate { content: \"\\e904\"; }\n@mixin icon-wheelchair { content: \"\\e903\"; }\n@mixin icon-text-marker { content: \"\\e902\"; }\n@mixin icon-unshield { content: \"\\e32a\"; }\n@mixin icon-shield { content: \"\\e8e8\"; }\n@mixin icon-tree { content: \"\\e6b4\"; }\n@mixin icon-home { content: \"\\e6b3\"; }\n@mixin icon-shared-file { content: \"\\e6b2\"; }\n@mixin icon-end-attempt { content: \"\\e603\"; }\n@mixin icon-icon { content: \"\\f1c5\"; }\n@mixin icon-radio-bg { content: \"\\e600\"; }\n@mixin icon-checkbox-bg { content: \"\\e601\"; }\n@mixin icon-tag { content: \"\\e602\"; }\n@mixin icon-style { content: \"\\e604\"; }\n@mixin icon-ownership-transfer { content: \"\\e605\"; }\n@mixin icon-property-advanced { content: \"\\e606\"; }\n@mixin icon-property-add { content: \"\\e607\"; }\n@mixin icon-repository-add { content: \"\\e608\"; }\n@mixin icon-repository-remove { content: \"\\e609\"; }\n@mixin icon-repository { content: \"\\e60a\"; }\n@mixin icon-result-server { content: \"\\e60b\"; }\n@mixin icon-folder { content: \"\\e60c\"; }\n@mixin icon-folder-open { content: \"\\e60d\"; }\n@mixin icon-left { content: \"\\e60e\"; }\n@mixin icon-right { content: \"\\e60f\"; }\n@mixin icon-up { content: \"\\e610\"; }\n@mixin icon-down { content: \"\\e611\"; }\n@mixin icon-undo { content: \"\\e612\"; }\n@mixin icon-redo { content: \"\\e613\"; }\n@mixin icon-screen { content: \"\\e614\"; }\n@mixin icon-laptop { content: \"\\e615\"; }\n@mixin icon-tablet { content: \"\\e616\"; }\n@mixin icon-phone { content: \"\\e617\"; }\n@mixin icon-move { content: \"\\e618\"; }\n@mixin icon-bin { content: \"\\e619\"; }\n@mixin icon-shuffle { content: \"\\e61a\"; }\n@mixin icon-print { content: \"\\e61b\"; }\n@mixin icon-tools { content: \"\\e61c\"; }\n@mixin icon-settings { content: \"\\e61d\"; }\n@mixin icon-video { content: \"\\e61e\"; }\n@mixin icon-find { content: \"\\e61f\"; }\n@mixin icon-image { content: \"\\e620\"; }\n@mixin icon-edit { content: \"\\e621\"; }\n@mixin icon-document { content: \"\\e622\"; }\n@mixin icon-resize-grid { content: \"\\e623\"; }\n@mixin icon-resize { content: \"\\e624\"; }\n@mixin icon-help { content: \"\\e625\"; }\n@mixin icon-mobile-menu { content: \"\\e626\"; }\n@mixin icon-fix { content: \"\\e627\"; }\n@mixin icon-unlock { content: \"\\e628\"; }\n@mixin icon-lock { content: \"\\e629\"; }\n@mixin icon-ul { content: \"\\e62a\"; }\n@mixin icon-ol { content: \"\\e62b\"; }\n@mixin icon-email { content: \"\\e62c\"; }\n@mixin icon-download { content: \"\\e62d\"; }\n@mixin icon-logout { content: \"\\e62e\"; }\n@mixin icon-login { content: \"\\e62f\"; }\n@mixin icon-spinner { content: \"\\e630\"; }\n@mixin icon-preview { content: \"\\e631\"; }\n@mixin icon-external { content: \"\\e632\"; }\n@mixin icon-time { content: \"\\e633\"; }\n@mixin icon-save { content: \"\\e634\"; }\n@mixin icon-warning { content: \"\\e635\"; }\n@mixin icon-add { content: \"\\e636\"; }\n@mixin icon-error { content: \"\\e900\"; }\n@mixin icon-close { content: \"\\e637\"; }\n@mixin icon-success { content: \"\\e638\"; }\n@mixin icon-remove { content: \"\\e639\"; }\n@mixin icon-info { content: \"\\e63a\"; }\n@mixin icon-danger { content: \"\\e63b\"; }\n@mixin icon-users { content: \"\\e63c\"; }\n@mixin icon-user { content: \"\\e63d\"; }\n@mixin icon-test-taker { content: \"\\e63e\"; }\n@mixin icon-test-takers { content: \"\\e63f\"; }\n@mixin icon-item { content: \"\\e640\"; }\n@mixin icon-test { content: \"\\e641\"; }\n@mixin icon-delivery { content: \"\\e642\"; }\n@mixin icon-eye-slash { content: \"\\e643\"; }\n@mixin icon-result { content: \"\\e644\"; }\n@mixin icon-delivery-small { content: \"\\e645\"; }\n@mixin icon-upload { content: \"\\e646\"; }\n@mixin icon-result-small { content: \"\\e647\"; }\n@mixin icon-mobile-preview { content: \"\\e648\"; }\n@mixin icon-extension { content: \"\\e649\"; }\n@mixin icon-desktop-preview { content: \"\\e64a\"; }\n@mixin icon-tablet-preview { content: \"\\e64b\"; }\n@mixin icon-insert-horizontal-line { content: \"\\e64c\"; }\n@mixin icon-table { content: \"\\e64d\"; }\n@mixin icon-anchor { content: \"\\e64e\"; }\n@mixin icon-unlink { content: \"\\e64f\"; }\n@mixin icon-link { content: \"\\e650\"; }\n@mixin icon-right-left { content: \"\\e651\"; }\n@mixin icon-left-right { content: \"\\e652\"; }\n@mixin icon-special-character { content: \"\\e653\"; }\n@mixin icon-source { content: \"\\e654\"; }\n@mixin icon-new-page { content: \"\\e655\"; }\n@mixin icon-templates { content: \"\\e656\"; }\n@mixin icon-cut { content: \"\\e657\"; }\n@mixin icon-replace { content: \"\\e658\"; }\n@mixin icon-copy { content: \"\\e659\"; }\n@mixin icon-paste { content: \"\\e65a\"; }\n@mixin icon-select-all { content: \"\\e65b\"; }\n@mixin icon-paste-text { content: \"\\e65c\"; }\n@mixin icon-paste-word { content: \"\\e65d\"; }\n@mixin icon-bold { content: \"\\e65e\"; }\n@mixin icon-italic { content: \"\\e65f\"; }\n@mixin icon-underline { content: \"\\e660\"; }\n@mixin icon-subscript { content: \"\\e661\"; }\n@mixin icon-superscript { content: \"\\e662\"; }\n@mixin icon-strike-through { content: \"\\e663\"; }\n@mixin icon-decrease-indent { content: \"\\e664\"; }\n@mixin icon-increase-indent { content: \"\\e665\"; }\n@mixin icon-block-quote { content: \"\\e666\"; }\n@mixin icon-div-container { content: \"\\e667\"; }\n@mixin icon-align-left { content: \"\\e668\"; }\n@mixin icon-center { content: \"\\e669\"; }\n@mixin icon-align-right { content: \"\\e66a\"; }\n@mixin icon-justify { content: \"\\e66b\"; }\n@mixin icon-choice { content: \"\\e66c\"; }\n@mixin icon-inline-choice { content: \"\\e66d\"; }\n@mixin icon-match { content: \"\\e66e\"; }\n@mixin icon-associate { content: \"\\e66f\"; }\n@mixin icon-media { content: \"\\e670\"; }\n@mixin icon-graphic-order { content: \"\\e671\"; }\n@mixin icon-hotspot { content: \"\\e672\"; }\n@mixin icon-graphic-gap { content: \"\\e673\"; }\n@mixin icon-graphic-associate { content: \"\\e674\"; }\n@mixin icon-select-point { content: \"\\e675\"; }\n@mixin icon-pin { content: \"\\e676\"; }\n@mixin icon-import { content: \"\\e677\"; }\n@mixin icon-export { content: \"\\e678\"; }\n@mixin icon-move-item { content: \"\\e679\"; }\n@mixin icon-meta-data { content: \"\\e67a\"; }\n@mixin icon-slider { content: \"\\e67b\"; }\n@mixin icon-summary-report { content: \"\\e67c\"; }\n@mixin icon-text-entry { content: \"\\e67d\"; }\n@mixin icon-extended-text { content: \"\\e67e\"; }\n@mixin icon-eraser { content: \"\\e67f\"; }\n@mixin icon-row { content: \"\\e680\"; }\n@mixin icon-column { content: \"\\e681\"; }\n@mixin icon-text-color { content: \"\\e682\"; }\n@mixin icon-background-color { content: \"\\e683\"; }\n@mixin icon-spell-check { content: \"\\e684\"; }\n@mixin icon-polygon { content: \"\\e685\"; }\n@mixin icon-rectangle { content: \"\\e686\"; }\n@mixin icon-gap-match { content: \"\\e687\"; }\n@mixin icon-order { content: \"\\e688\"; }\n@mixin icon-hottext { content: \"\\e689\"; }\n@mixin icon-free-form { content: \"\\e68a\"; }\n@mixin icon-step-backward { content: \"\\e68b\"; }\n@mixin icon-fast-backward { content: \"\\e68c\"; }\n@mixin icon-backward { content: \"\\e68d\"; }\n@mixin icon-play { content: \"\\e68e\"; }\n@mixin icon-pause { content: \"\\e68f\"; }\n@mixin icon-stop { content: \"\\e690\"; }\n@mixin icon-forward { content: \"\\e691\"; }\n@mixin icon-fast-forward { content: \"\\e692\"; }\n@mixin icon-step-forward { content: \"\\e693\"; }\n@mixin icon-ellipsis { content: \"\\e694\"; }\n@mixin icon-circle { content: \"\\e695\"; }\n@mixin icon-target { content: \"\\e696\"; }\n@mixin icon-guide-arrow { content: \"\\e697\"; }\n@mixin icon-range-slider-right { content: \"\\e698\"; }\n@mixin icon-range-slider-left { content: \"\\e699\"; }\n@mixin icon-radio-checked { content: \"\\e69a\"; }\n@mixin icon-checkbox-indeterminate { content: \"\\e901\"; }\n@mixin icon-checkbox { content: \"\\e69b\"; }\n@mixin icon-checkbox-crossed { content: \"\\e69c\"; }\n@mixin icon-checkbox-checked { content: \"\\e69d\"; }\n@mixin icon-result-nok { content: \"\\e69e\"; }\n@mixin icon-result-ok { content: \"\\e69f\"; }\n@mixin icon-not-evaluated { content: \"\\e6a0\"; }\n@mixin icon-filter { content: \"\\e6a1\"; }\n@mixin icon-translate { content: \"\\e6a2\"; }\n@mixin icon-eject { content: \"\\e6a3\"; }\n@mixin icon-continue { content: \"\\e6a4\"; }\n@mixin icon-radio { content: \"\\e6a5\"; }\n@mixin icon-sphere { content: \"\\e6a6\"; }\n@mixin icon-reset { content: \"\\e6a7\"; }\n@mixin icon-smaller { content: \"\\e6a8\"; }\n@mixin icon-larger { content: \"\\e6a9\"; }\n@mixin icon-clock { content: \"\\e6aa\"; }\n@mixin icon-font { content: \"\\e6ab\"; }\n@mixin icon-maths { content: \"\\e6ac\"; }\n@mixin icon-grip { content: \"\\e6ad\"; }\n@mixin icon-rubric { content: \"\\e6ae\"; }\n@mixin icon-audio { content: \"\\e6af\"; }\n@mixin icon-grip-h { content: \"\\e6b0\"; }\n@mixin icon-magicwand { content: \"\\e6b1\"; }\n@mixin icon-loop { content: \"\\ea2e\"; }\n@mixin icon-calendar { content: \"\\e953\"; }\n@mixin icon-reload { content: \"\\e984\"; }\n@mixin icon-speed { content: \"\\e9a6\"; }\n@mixin icon-volume { content: \"\\ea27\"; }\n@mixin icon-contrast { content: \"\\e9d5\"; }\n@mixin icon-headphones { content: \"\\e910\"; }\n@mixin icon-compress { content: \"\\f066\"; }\n@mixin icon-map-o { content: \"\\f278\"; }\n@mixin icon-variable { content: \"\\e908\"; }\n@mixin icon-tooltip { content: \"\\e90c\"; }\n@mixin icon-globe { content: \"\\e9c9\"; }\n@mixin icon-highlighter { content: \"\\e90f\"; }\n@mixin icon-eliminate-crossed { content: \"\\e911\"; }\n@mixin icon-play-from-here { content: \"\\e912\"; }\n","// buttons and alerts\n$success: rgb(14, 145, 75);\n$info: rgb(14, 93, 145);\n$warning: rgb(216, 174, 91);\n$danger: rgb(201, 96, 67);\n$error: rgb(186, 18, 43);\n$activeInteraction: rgb(195, 90, 19);\n\n// corporate identity\n$logoRed: rgb(186, 18, 43);\n$grey: rgb(173, 161, 148);\n$darkBlueGrey: rgb(164, 187, 197);\n$mediumBlueGrey: rgb(193, 212, 220);\n$lightBlueGrey: rgb(228, 236, 239);\n$brownRedGrey: rgb(154, 137, 123);\n$darkBrown: rgb(111, 99, 89);\n$websiteBorder: rgb(141, 148, 158);\n\n// ui elements, these should only variations of the above\n// naming convention: jQueryUi theme roller -> camelCase\n\n$textColor: #222;\n$textHighlight: white;\n\n$uiGeneralContentBg: white();\n$uiGeneralContentBorder: #ddd;\n\n$uiHeaderBg: #D4D5D7;\n\n$uiClickableDefaultBg: #f3f1ef;\n$uiClickableHoverBg: whiten($info, .2);\n//$uiClickableActiveBg: $uiHeaderBg;\n$uiClickableActiveBg: whiten($websiteBorder, .2);\n//$uiClickableActiveBg: #aaa;\n\n$uiSelectableSelectedBg: whiten($info, .2);\n$uiSelectableSelectedHoverBg: whiten($info, .1);\n$uiSelectableHoverBg: whiten($info, .9);\n\n$uiOverlay: $lightBlueGrey;\n\n// sidebars etc.\n$canvas: mix(#fff, $grey, 85%);\n\n// colors taken from feedback.scss\n$successBgColor: whiten($success, .8);\n$successBorderColor: whiten($success, .1);\n\n$infoBgColor: whiten($info, .8);\n$infoBorderColor: whiten($info, .1);\n\n$warningBgColor: whiten($warning, .8);\n$warningBorderColor: whiten($warning, .1);\n\n$dangerBgColor: whiten($danger, .8);\n$dangerBorderColor: whiten($danger, .1);\n\n$errorBgColor: whiten($error, .8);\n$errorBorderColor: whiten($error, .1);\n\n\n$darkBar : rgb(51, 51, 51);\n$darkBarTxt : rgb(230, 230, 230);\n$darkBarIcon : rgb(220, 220, 220);\n\n$actionLinkColor: #276D9B;\n$actionLinkHoverColor: #4F83A7;\n\n\n$colorWheel-01: #C3BA13;\n$colorWheel-02: #84A610;\n$colorWheel-03: #2B8E0E;\n$colorWheel-04: #0F9787;\n$colorWheel-05: #0E5D91;\n$colorWheel-06: #0D2689;\n$colorWheel-07: #400D83;\n$colorWheel-08: #960E7D;\n$colorWheel-09: #BA122B;\n$colorWheel-10: #C34713;\n$colorWheel-11: #C36F13;\n$colorWheel-12: #C39413;\n"]}
|