@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.
Files changed (43) hide show
  1. package/dist/ckeditor/ckConfigurator.js +9 -1
  2. package/dist/mediaEditor/mediaEditorComponent.js +5 -3
  3. package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +46 -25
  4. package/dist/mediaplayer/css/player.css +104 -14
  5. package/dist/mediaplayer/css/player.css.map +1 -1
  6. package/dist/mediaplayer/players/html5.js +767 -0
  7. package/dist/mediaplayer/players/youtube.js +470 -0
  8. package/dist/mediaplayer/players.js +35 -0
  9. package/dist/mediaplayer/support.js +134 -0
  10. package/dist/mediaplayer/utils/reminder.js +198 -0
  11. package/dist/mediaplayer/utils/timeObserver.js +149 -0
  12. package/dist/mediaplayer/youtubeManager.js +177 -0
  13. package/dist/mediaplayer.js +1251 -1912
  14. package/dist/previewer.js +25 -19
  15. package/package.json +1 -1
  16. package/scss/basic.scss +1 -0
  17. package/scss/inc/_jquery.nouislider.scss +254 -0
  18. package/src/ckeditor/ckConfigurator.js +10 -1
  19. package/src/itemButtonList/css/item-button-list.css +225 -0
  20. package/src/itemButtonList/css/item-button-list.css.map +1 -0
  21. package/src/mediaEditor/mediaEditorComponent.js +25 -26
  22. package/src/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +83 -63
  23. package/src/mediaplayer/css/player.css +104 -14
  24. package/src/mediaplayer/css/player.css.map +1 -1
  25. package/src/mediaplayer/players/html5.js +564 -0
  26. package/src/mediaplayer/players/youtube.js +323 -0
  27. package/src/mediaplayer/players.js +29 -0
  28. package/src/mediaplayer/scss/player.scss +125 -16
  29. package/src/mediaplayer/support.js +126 -0
  30. package/src/mediaplayer/tpl/audio.tpl +6 -0
  31. package/src/mediaplayer/tpl/player.tpl +11 -32
  32. package/src/mediaplayer/tpl/source.tpl +1 -0
  33. package/src/mediaplayer/tpl/video.tpl +6 -0
  34. package/src/mediaplayer/tpl/youtube.tpl +1 -0
  35. package/src/mediaplayer/utils/reminder.js +184 -0
  36. package/src/mediaplayer/utils/timeObserver.js +143 -0
  37. package/src/mediaplayer/youtubeManager.js +161 -0
  38. package/src/mediaplayer.js +1217 -1901
  39. package/src/previewer.js +40 -33
  40. package/src/searchModal/css/advancedSearch.css +190 -0
  41. package/src/searchModal/css/advancedSearch.css.map +1 -0
  42. package/src/searchModal/css/searchModal.css +506 -0
  43. 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: 'en',
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 self = this;
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
- self.trigger('change', media);
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
- * return {component|*}
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 of the image
319
- initialConfig.sizeProps.px.current.width = media.$node[0].naturalWidth;
320
- initialConfig.sizeProps.px.current.height = media.$node[0].naturalHeight;
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('.media-sizer-' + (unit === 'px' ? 'pixel' : 'percent'));
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
- field,
490
- _fields = {};
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('[name="' + dim + '"]'); // there is no 'height' field for % - $('<input>') is a dummy to avoid checking if the field exists all the time
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
- value = $field.val().replace(/,/g, '.'),
532
- newDimensions;
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: media.$node[0].naturalWidth ? media.$node[0].naturalWidth : media.width,
614
- height: media.$node[0].naturalHeight ? media.$node[0].naturalHeight : media.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
- width: 64px;
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":"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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\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"]}