@oat-sa/tao-core-ui 1.62.0 → 1.63.0

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 (215) hide show
  1. package/dist/actionbar.js +3 -3
  2. package/dist/animable/absorbable/css/absorb.css.map +1 -1
  3. package/dist/animable/pulsable/css/pulse.css.map +1 -1
  4. package/dist/autocomplete/css/autocomplete.css.map +1 -1
  5. package/dist/autocomplete.js +8 -10
  6. package/dist/badge/css/badge.css.map +1 -1
  7. package/dist/breadcrumbs/css/breadcrumbs.css.map +1 -1
  8. package/dist/breadcrumbs.js +17 -17
  9. package/dist/btngrouper.js +3 -3
  10. package/dist/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
  11. package/dist/calculator/css/calculator.css.map +1 -1
  12. package/dist/calculator.js +1 -1
  13. package/dist/cascadingComboBox.js +5 -5
  14. package/dist/ckeditor/ckConfigurator.js +9 -1
  15. package/dist/ckeditor/dtdHandler.js +4 -4
  16. package/dist/class/css/selector.css.map +1 -1
  17. package/dist/component/css/components.css.map +1 -1
  18. package/dist/component/css/windowComponent.css.map +1 -1
  19. package/dist/contextualPopup/css/contextualPopup.css.map +1 -1
  20. package/dist/contextualPopup.js +7 -7
  21. package/dist/dashboard/css/dashboard.css.map +1 -1
  22. package/dist/dashboard.js +3 -2
  23. package/dist/datalist/css/datalist.css.map +1 -1
  24. package/dist/datatable/css/datatable.css.map +1 -1
  25. package/dist/datatable/filterStrategy/single.js +2 -2
  26. package/dist/datatable.js +4 -4
  27. package/dist/dateRange/css/dateRange.css.map +1 -1
  28. package/dist/datetime/css/picker.css.map +1 -1
  29. package/dist/deleter.js +9 -9
  30. package/dist/destination/css/selector.css.map +1 -1
  31. package/dist/dialog.js +3 -5
  32. package/dist/documentViewer/css/documentViewer.css.map +1 -1
  33. package/dist/dropdown/css/dropdown.css.map +1 -1
  34. package/dist/durationer.js +6 -8
  35. package/dist/dynamicComponent/css/dynamicComponent.css.map +1 -1
  36. package/dist/dynamicComponent.js +2 -3
  37. package/dist/filesender.js +6 -8
  38. package/dist/filter.js +6 -10
  39. package/dist/form/css/dropdownForm.css.map +1 -1
  40. package/dist/form/css/form.css.map +1 -1
  41. package/dist/form/validator/css/validator.css.map +1 -1
  42. package/dist/form/widget/css/widget.css.map +1 -1
  43. package/dist/form.js +3 -3
  44. package/dist/formValidator/highlighters/highlighter.js +5 -4
  45. package/dist/formValidator/highlighters/message.js +1 -3
  46. package/dist/generis/form/css/form.css.map +1 -1
  47. package/dist/generis/validator/css/validator.css.map +1 -1
  48. package/dist/generis/widget/comboBox/comboBox.js +2 -2
  49. package/dist/generis/widget/css/widget.css.map +1 -1
  50. package/dist/generis/widget/hiddenBox/hiddenBox.js +2 -2
  51. package/dist/generis/widget/textBox/textBox.js +2 -2
  52. package/dist/groupedComboBox.js +3 -3
  53. package/dist/highlighter.js +49 -47
  54. package/dist/incrementer.js +17 -16
  55. package/dist/inplacer.js +4 -4
  56. package/dist/itemButtonList/css/item-button-list.css.map +1 -1
  57. package/dist/listbox/css/listbox.css.map +1 -1
  58. package/dist/listbox.js +1 -0
  59. package/dist/liststyler.js +1 -1
  60. package/dist/loadingButton/css/button.css.map +1 -1
  61. package/dist/lock.js +4 -4
  62. package/dist/login/login.js +4 -4
  63. package/dist/maths/calculator/css/calculator.css.map +1 -1
  64. package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +2 -2
  65. package/dist/mediaEditor/plugins/mediaDimension/helper.js +4 -4
  66. package/dist/mediaplayer/css/player.css.map +1 -1
  67. package/dist/mediaplayer/players/youtube.js +1 -1
  68. package/dist/mediaplayer/youtubeManager.js +1 -1
  69. package/dist/mediaplayer.js +3 -3
  70. package/dist/modal.js +1 -1
  71. package/dist/pageSizeSelector.js +3 -3
  72. package/dist/pagination/css/pagination.css.map +1 -1
  73. package/dist/pagination.js +5 -5
  74. package/dist/propertySelector/css/propertySelector.css.map +1 -1
  75. package/dist/propertySelector/propertySelector.js +3 -3
  76. package/dist/resource/css/selector.css.map +1 -1
  77. package/dist/resourcemgr/css/resourcemgr.css.map +1 -1
  78. package/dist/resourcemgr/fileSelector.js +6 -4
  79. package/dist/searchModal/css/advancedSearch.css.map +1 -1
  80. package/dist/searchModal/css/searchModal.css.map +1 -1
  81. package/dist/searchModal.js +16 -17
  82. package/dist/switch/css/switch.css.map +1 -1
  83. package/dist/tabs/css/tabs.css.map +1 -1
  84. package/dist/taskQueue/css/taskQueue.css.map +1 -1
  85. package/dist/taskQueue/status.js +4 -4
  86. package/dist/taskQueue/table.js +1 -1
  87. package/dist/taskQueue.js +7 -7
  88. package/dist/taskQueueButton/css/taskable.css.map +1 -1
  89. package/dist/taskQueueButton/css/treeButton.css.map +1 -1
  90. package/dist/taskQueueButton/treeButton.js +2 -2
  91. package/dist/toggler.js +4 -4
  92. package/dist/transformer.js +2 -2
  93. package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
  94. package/dist/validator/Validator.js +4 -4
  95. package/dist/validator/validators.js +3 -5
  96. package/dist/validator.js +54 -54
  97. package/dist/waitingDialog/css/waitingDialog.css.map +1 -1
  98. package/package.json +3 -2
  99. package/scss/.DS_Store +0 -0
  100. package/scss/ckeditor/.DS_Store +0 -0
  101. package/scss/ckeditor/skins/.DS_Store +0 -0
  102. package/scss/ckeditor/skins/tao/.DS_Store +0 -0
  103. package/scss/ckeditor/skins/tao/scss/.DS_Store +0 -0
  104. package/scss/ckeditor/skins/tao/scss/inc/_ck-icons.scss +1 -0
  105. package/scss/font/.DS_Store +0 -0
  106. package/scss/font/tao/tao.svg +1 -0
  107. package/scss/font/tao/tao.ttf +0 -0
  108. package/scss/font/tao/tao.woff +0 -0
  109. package/scss/inc/.DS_Store +0 -0
  110. package/scss/inc/fonts/_tao-icon-classes.scss +2 -1
  111. package/scss/inc/fonts/_tao-icon-def.scss +3 -3
  112. package/scss/inc/fonts/_tao-icon-vars.scss +2 -1
  113. package/src/actionbar.js +7 -7
  114. package/src/animable/absorbable/css/absorb.css.map +1 -1
  115. package/src/animable/pulsable/css/pulse.css.map +1 -1
  116. package/src/autocomplete/css/autocomplete.css.map +1 -1
  117. package/src/autocomplete.js +74 -76
  118. package/src/badge/css/badge.css.map +1 -1
  119. package/src/breadcrumbs/css/breadcrumbs.css.map +1 -1
  120. package/src/breadcrumbs.js +17 -17
  121. package/src/btngrouper.js +14 -14
  122. package/src/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
  123. package/src/calculator/css/calculator.css.map +1 -1
  124. package/src/calculator.js +11 -11
  125. package/src/cascadingComboBox.js +9 -9
  126. package/src/ckeditor/ckConfigurator.js +6 -0
  127. package/src/ckeditor/dtdHandler.js +15 -15
  128. package/src/class/css/selector.css.map +1 -1
  129. package/src/component/css/components.css.map +1 -1
  130. package/src/component/css/windowComponent.css.map +1 -1
  131. package/src/contextualPopup/css/contextualPopup.css.map +1 -1
  132. package/src/contextualPopup.js +11 -14
  133. package/src/css/basic.css +19 -5
  134. package/src/css/basic.css.map +1 -1
  135. package/src/dashboard/css/dashboard.css.map +1 -1
  136. package/src/dashboard.js +9 -14
  137. package/src/datalist/css/datalist.css.map +1 -1
  138. package/src/datatable/css/datatable.css.map +1 -1
  139. package/src/datatable/filterStrategy/single.js +7 -7
  140. package/src/datatable.js +6 -6
  141. package/src/dateRange/css/dateRange.css.map +1 -1
  142. package/src/datetime/css/picker.css.map +1 -1
  143. package/src/deleter.js +21 -21
  144. package/src/destination/css/selector.css.map +1 -1
  145. package/src/dialog.js +25 -25
  146. package/src/documentViewer/css/documentViewer.css.map +1 -1
  147. package/src/dropdown/css/dropdown.css.map +1 -1
  148. package/src/durationer.js +18 -20
  149. package/src/dynamicComponent/css/dynamicComponent.css.map +1 -1
  150. package/src/dynamicComponent.js +22 -23
  151. package/src/filesender.js +9 -11
  152. package/src/filter.js +8 -14
  153. package/src/form/css/dropdownForm.css.map +1 -1
  154. package/src/form/css/form.css.map +1 -1
  155. package/src/form/validator/css/validator.css.map +1 -1
  156. package/src/form/widget/css/widget.css.map +1 -1
  157. package/src/form.js +5 -11
  158. package/src/formValidator/highlighters/highlighter.js +6 -5
  159. package/src/formValidator/highlighters/message.js +1 -3
  160. package/src/generis/form/css/form.css.map +1 -1
  161. package/src/generis/validator/css/validator.css.map +1 -1
  162. package/src/generis/widget/comboBox/comboBox.js +0 -1
  163. package/src/generis/widget/css/widget.css.map +1 -1
  164. package/src/generis/widget/hiddenBox/hiddenBox.js +2 -3
  165. package/src/generis/widget/textBox/textBox.js +0 -1
  166. package/src/groupedComboBox.js +5 -5
  167. package/src/highlighter.js +99 -73
  168. package/src/incrementer.js +41 -52
  169. package/src/inplacer.js +21 -22
  170. package/src/itemButtonList/css/item-button-list.css.map +1 -1
  171. package/src/keyNavigation/navigableDomElement.js +22 -19
  172. package/src/keyNavigation/navigator.js +18 -26
  173. package/src/listbox/css/listbox.css.map +1 -1
  174. package/src/listbox.js +3 -2
  175. package/src/liststyler.js +7 -7
  176. package/src/loadingButton/css/button.css.map +1 -1
  177. package/src/lock.js +17 -19
  178. package/src/login/login.js +14 -19
  179. package/src/maths/calculator/css/calculator.css.map +1 -1
  180. package/src/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +7 -8
  181. package/src/mediaEditor/plugins/mediaDimension/helper.js +5 -4
  182. package/src/mediaplayer/css/player.css.map +1 -1
  183. package/src/mediaplayer/players/youtube.js +1 -1
  184. package/src/mediaplayer/youtubeManager.js +1 -1
  185. package/src/mediaplayer.js +3 -3
  186. package/src/modal.js +18 -18
  187. package/src/pageSizeSelector.js +7 -8
  188. package/src/pagination/css/pagination.css.map +1 -1
  189. package/src/pagination.js +14 -14
  190. package/src/propertySelector/css/propertySelector.css.map +1 -1
  191. package/src/propertySelector/propertySelector.js +3 -3
  192. package/src/resource/css/selector.css.map +1 -1
  193. package/src/resource/list.js +11 -11
  194. package/src/resource/tree.js +15 -17
  195. package/src/resourcemgr/css/resourcemgr.css.map +1 -1
  196. package/src/resourcemgr/fileSelector.js +46 -72
  197. package/src/searchModal/css/advancedSearch.css.map +1 -1
  198. package/src/searchModal/css/searchModal.css.map +1 -1
  199. package/src/searchModal.js +24 -25
  200. package/src/switch/css/switch.css.map +1 -1
  201. package/src/tabs/css/tabs.css.map +1 -1
  202. package/src/taskQueue/css/taskQueue.css.map +1 -1
  203. package/src/taskQueue/status.js +12 -12
  204. package/src/taskQueue/table.js +15 -15
  205. package/src/taskQueue.js +13 -15
  206. package/src/taskQueueButton/css/taskable.css.map +1 -1
  207. package/src/taskQueueButton/css/treeButton.css.map +1 -1
  208. package/src/taskQueueButton/treeButton.js +2 -3
  209. package/src/toggler.js +13 -13
  210. package/src/transformer.js +6 -6
  211. package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
  212. package/src/validator/Validator.js +15 -15
  213. package/src/validator/validators.js +10 -13
  214. package/src/validator.js +70 -72
  215. package/src/waitingDialog/css/waitingDialog.css.map +1 -1
@@ -61,10 +61,10 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
61
61
  * an optional passed-in blacklist is merged with local defaults
62
62
  * @type {Array}
63
63
  */
64
- var containersBlackList = _.union(defaultBlackList, options.containersBlackList);
65
- var containersBlackListSelector = containersBlackList.join(', ');
66
- var containersWhiteListSelector = null;
67
- var containersBlackAndWhiteListSelector = containersBlackListSelector;
64
+ const containersBlackList = _.union(defaultBlackList, options.containersBlackList);
65
+ const containersBlackListSelector = containersBlackList.join(', ');
66
+ let containersWhiteListSelector = null;
67
+ let containersBlackAndWhiteListSelector = containersBlackListSelector;
68
68
  if (options.keepEmptyNodes && options.containersWhiteList) {
69
69
  containersWhiteListSelector = options.containersWhiteList.join(', ');
70
70
  containersBlackAndWhiteListSelector = _.union(containersBlackList, options.containersWhiteList).join(', ');
@@ -74,25 +74,25 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
74
74
  * used in recursive loops to decide if we should wrap or not the current node
75
75
  * @type {boolean}
76
76
  */
77
- var isWrapping = false;
77
+ let isWrapping = false;
78
78
 
79
79
  /**
80
80
  * performance improvement to break out of a potentially big recursive loop once the wrapping has ended
81
81
  * @type {boolean}
82
82
  */
83
- var hasWrapped = false;
83
+ let hasWrapped = false;
84
84
 
85
85
  /**
86
86
  * used in recursive loops to assign a group Id to the current wrapped node
87
87
  * @type {number}
88
88
  */
89
- var currentGroupId;
89
+ let currentGroupId;
90
90
 
91
91
  /**
92
92
  * used in recursive loops to build the index of text nodes
93
93
  * @type {number}
94
94
  */
95
- var textNodesIndex;
95
+ let textNodesIndex;
96
96
 
97
97
  /**
98
98
  * Returns the node in which highlighting is allowed
@@ -320,9 +320,9 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
320
320
  * @param {Node} textNode
321
321
  * @param {string} activeClass
322
322
  * @param {Range} selectedRange
323
- * @param {number} currentGroupId
323
+ * @param {number} groupId
324
324
  */
325
- function highlightContainerNodes(textNode, activeClass, selectedRange, currentGroupId) {
325
+ function highlightContainerNodes(textNode, activeClass, selectedRange, groupId) {
326
326
  const container = textNode.parentNode;
327
327
  const range = new Range();
328
328
  range.selectNodeContents(textNode);
@@ -374,13 +374,13 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
374
374
  textNode.parentNode.className = activeClass;
375
375
  } else if (isSelectionCoversNodeStart) {
376
376
  textNode.splitText(selectedRange.endOffset);
377
- wrapContainerChildNodes(container, 0, activeClass, currentGroupId);
377
+ wrapContainerChildNodes(container, 0, activeClass, groupId);
378
378
  } else if (isSelectionCoversNodeEnd) {
379
379
  textNode.splitText(selectedRange.startOffset);
380
- wrapContainerChildNodes(container, 1, activeClass, currentGroupId);
380
+ wrapContainerChildNodes(container, 1, activeClass, groupId);
381
381
  } else {
382
382
  textNode.splitText(selectedRange.startOffset).splitText(selectedRange.endOffset);
383
- wrapContainerChildNodes(container, 1, activeClass, currentGroupId);
383
+ wrapContainerChildNodes(container, 1, activeClass, groupId);
384
384
  }
385
385
  }
386
386
 
@@ -390,18 +390,18 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
390
390
  * @param {Element} container
391
391
  * @param {number} indexToWrapNode
392
392
  * @param {string} activeClass
393
- * @param {number} currentGroupId
393
+ * @param {number} groupId
394
394
  */
395
- function wrapContainerChildNodes(container, indexToWrapNode, activeClass, currentGroupId) {
395
+ function wrapContainerChildNodes(container, indexToWrapNode, activeClass, groupId) {
396
396
  const containerClass = container.className;
397
397
  const fragment = new DocumentFragment();
398
398
  const childNodesLength = container.childNodes.length;
399
399
  container.childNodes.forEach((node, index) => {
400
400
  var wrapperNode;
401
401
  if (index === indexToWrapNode) {
402
- wrapperNode = wrapNode(node.cloneNode(), activeClass, currentGroupId);
402
+ wrapperNode = wrapNode(node.cloneNode(), activeClass, groupId);
403
403
  } else {
404
- wrapperNode = wrapNode(node.cloneNode(), containerClass, currentGroupId);
404
+ wrapperNode = wrapNode(node.cloneNode(), containerClass, groupId);
405
405
  }
406
406
  fragment.appendChild(wrapperNode);
407
407
  if (keepEmptyNodes) {
@@ -435,8 +435,8 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
435
435
  if (!rootNode) {
436
436
  return;
437
437
  }
438
- var childNodes = rootNode.childNodes;
439
- var i, currentNode, parent;
438
+ const childNodes = rootNode.childNodes;
439
+ let i, currentNode, parent;
440
440
  for (i = 0; i < childNodes.length; i++) {
441
441
  currentNode = childNodes[i];
442
442
  if (isWrappable(currentNode)) {
@@ -465,8 +465,8 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
465
465
  if (!rootNode) {
466
466
  return;
467
467
  }
468
- var childNodes = rootNode.childNodes;
469
- var i, currentNode;
468
+ const childNodes = rootNode.childNodes;
469
+ let i, currentNode;
470
470
  for (i = 0; i < childNodes.length; i++) {
471
471
  currentNode = childNodes[i];
472
472
  if (isWrappingNode(currentNode)) {
@@ -565,7 +565,7 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
565
565
  function clearHighlights() {
566
566
  getHighlightedNodes().each(function (i, elem) {
567
567
  if (!keepEmptyNodes) {
568
- var $wrapped = $(this);
568
+ const $wrapped = $(this);
569
569
  $wrapped.replaceWith($wrapped.text());
570
570
  } else {
571
571
  clearSingleHighlight({
@@ -638,7 +638,7 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
638
638
  function getHighlightIndex() {
639
639
  var rootNode = getContainer();
640
640
  if (!keepEmptyNodes) {
641
- var highlightIndex = [];
641
+ const highlightIndex = [];
642
642
  if (rootNode) {
643
643
  rootNode.normalize();
644
644
  textNodesIndex = 0;
@@ -660,8 +660,8 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
660
660
  * @param {Object[]} highlightIndex
661
661
  */
662
662
  function buildHighlightIndex(rootNode, highlightIndex) {
663
- var childNodes = rootNode.childNodes;
664
- var i, currentNode;
663
+ const childNodes = rootNode.childNodes;
664
+ let i, currentNode;
665
665
  var nodeInfos, inlineRange, inlineOffset, nodesToSkip;
666
666
  for (i = 0; i < childNodes.length; i++) {
667
667
  currentNode = childNodes[i];
@@ -754,21 +754,21 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
754
754
  if (!wrapperNodes.length) {
755
755
  return null;
756
756
  }
757
- var highlightModel = [];
757
+ const highlightModel = [];
758
758
  const indexCache = new Map();
759
- for (var k = 0; k < wrapperNodes.length; k++) {
760
- var wrapperNode = wrapperNodes[k];
759
+ for (let k = 0; k < wrapperNodes.length; k++) {
760
+ const wrapperNode = wrapperNodes[k];
761
761
 
762
762
  //get info about highlight itself
763
- var offsetBefore = 0;
764
- var prevNode = wrapperNode.previousSibling;
763
+ let offsetBefore = 0;
764
+ const prevNode = wrapperNode.previousSibling;
765
765
  if (prevNode && isText(prevNode)) {
766
766
  const beforeWasSplit = wrapperNode.dataset.beforeWasSplit === 'true';
767
767
  if (beforeWasSplit) {
768
768
  offsetBefore = prevNode.textContent.length;
769
769
  }
770
770
  }
771
- var highlightData = {
771
+ const highlightData = {
772
772
  groupId: wrapperNode.getAttribute(GROUP_ATTR),
773
773
  c: getColorByClassName(wrapperNode.className),
774
774
  offsetBefore,
@@ -873,9 +873,9 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
873
873
  if (!highlightModel) {
874
874
  return;
875
875
  }
876
- var currentModel;
877
- var range;
878
- for (var k = 0; k < highlightModel.length; k++) {
876
+ let currentModel;
877
+ let range;
878
+ for (let k = 0; k < highlightModel.length; k++) {
879
879
  currentModel = highlightModel[k];
880
880
 
881
881
  //find node to wrap - go through nodes until we reach level where node to wrap will be
@@ -887,7 +887,7 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
887
887
  continue; //something went wrong
888
888
  }
889
889
 
890
- for (var m = 0; m < currentModel.path.length; m++) {
890
+ for (let m = 0; m < currentModel.path.length; m++) {
891
891
  //path was counted among non-empty nodes
892
892
  childNodes = Array.from(currentParentNode.childNodes).filter(node => !(isText(node) && !node.textContent.length));
893
893
  indexInModel = currentModel.path[m];
@@ -903,7 +903,7 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
903
903
  }
904
904
 
905
905
  //add single highlight
906
- var nodeAtIndex = null;
906
+ let nodeAtIndex = null;
907
907
  if (!currentModel.offsetBefore) {
908
908
  //wrap starts on this node
909
909
  nodeAtIndex = childNodes[indexInModel];
@@ -912,7 +912,7 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
912
912
  }
913
913
  } else {
914
914
  //split previousSibling to create a node for wrapping
915
- var nodeBefore = childNodes[indexInModel - 1];
915
+ const nodeBefore = childNodes[indexInModel - 1];
916
916
  if (!nodeBefore || !isText(nodeBefore) || nodeBefore.textContent.length <= currentModel.offsetBefore || isBlacklisted(nodeBefore)) {
917
917
  continue; //something went wrong
918
918
  }
@@ -937,11 +937,11 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
937
937
  * Set highlighter color
938
938
  * @param {string} color Active highlighter color
939
939
  */
940
- const setActiveColor = color => {
940
+ function setActiveColor(color) {
941
941
  if (options.colors[color]) {
942
942
  className = options.colors[color];
943
943
  }
944
- };
944
+ }
945
945
 
946
946
  /**
947
947
  * Helpers
@@ -953,31 +953,33 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
953
953
  * @param {any} value
954
954
  * @return {string|undefined}
955
955
  */
956
- const getKeyByValue = (object, value) => Object.keys(object).find(key => object[key] === value);
956
+ function getKeyByValue(object, value) {
957
+ return Object.keys(object).find(key => object[key] === value);
958
+ }
957
959
 
958
960
  /**
959
961
  * Returns color identifier for the given class name
960
962
  * @param {string} highlighterClassName Class name of highlighter classes
961
963
  * @returns {string|number} Color identifier
962
964
  */
963
- const getColorByClassName = highlighterClassName => {
965
+ function getColorByClassName(highlighterClassName) {
964
966
  if (options.colors) {
965
967
  return getKeyByValue(options.colors, highlighterClassName);
966
968
  }
967
969
  return className;
968
- };
970
+ }
969
971
 
970
972
  /**
971
973
  * Returns class name for the given color identifier
972
974
  * @param {string|number} color Color identifier
973
975
  * @returns {string} Class name
974
976
  */
975
- const getClassNameByColor = color => {
977
+ function getClassNameByColor(color) {
976
978
  if (options.colors && options.colors[color]) {
977
979
  return options.colors[color];
978
980
  }
979
981
  return className;
980
- };
982
+ }
981
983
 
982
984
  /**
983
985
  * Check if the given node is a wrapper
@@ -1019,11 +1021,11 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
1019
1021
  /**
1020
1022
  * Wraps text node to the highlighter wrapper element
1021
1023
  * @param {Node} textNode Text node to wrap
1022
- * @param {string} className Wrapper class name
1024
+ * @param {string} wrapperClassName Wrapper class name
1023
1025
  * @param {number} groupId Group id
1024
1026
  */
1025
- function wrapNode(textNode, className, groupId) {
1026
- const element = getWrapper(groupId, className);
1027
+ function wrapNode(textNode, wrapperClassName, groupId) {
1028
+ const element = getWrapper(groupId, wrapperClassName);
1027
1029
  element.appendChild(textNode);
1028
1030
  return element;
1029
1031
  }
@@ -46,8 +46,6 @@ define(['jquery', 'lodash', 'core/pluginifier', 'lib/gamp/gamp'], function ($, _
46
46
  * @returns {jQueryElement} for chaining
47
47
  */
48
48
  init: function (options) {
49
- var self = Incrementer;
50
-
51
49
  //get options using default
52
50
  options = _.defaults(options || {}, defaults);
53
51
  return this.each(function () {
@@ -67,26 +65,29 @@ define(['jquery', 'lodash', 'core/pluginifier', 'lib/gamp/gamp'], function ($, _
67
65
  .addClass(options.incrementerClass) //add the css class
68
66
  .after(
69
67
  //set up controls
70
- '<span class="ctrl ' + options.incrementerCtrlClass + '">' + '<a href="#" class="inc" title="+' + options.step + '" tabindex="-1"></a>' + '<a href="#" class="dec" title="-' + options.step + '" tabindex="-1"></a>' + '</span>').on('keydown', function (e) {
68
+ `<span class="ctrl ${options.incrementerCtrlClass}">
69
+ <a href="#" class="inc" title="${options.step}" tabindex="-1"></a>
70
+ <a href="#" class="dec" title="-${options.step}" tabindex="-1"></a>
71
+ </span>`).on('keydown', function (e) {
71
72
  if (e.which === 38) {
72
73
  //up
73
- self._inc($elt);
74
+ Incrementer._inc($elt);
74
75
  this.select();
75
76
  } else if (e.which === 40) {
76
77
  //down
77
- self._dec($elt);
78
+ Incrementer._dec($elt);
78
79
  this.select();
79
80
  }
80
81
  })
81
82
  //debounce the keyup callback to give the user a chance to complete an invalid state
82
83
  //(for instance, while taping an negative value)
83
84
  .on('keyup', _.debounce(function () {
84
- var value = $elt.val(),
85
- negative = value.charAt(0) === '-',
86
- options = $elt.data(dataNs);
85
+ let value = $elt.val();
86
+ const negative = value.charAt(0) === '-';
87
+ const dataOptions = $elt.data(dataNs);
87
88
 
88
89
  //sanitize the string by removing all invalid characters (only allow digit and dot)
89
- value = parseFloat(value.replace(/[^\d\.]/g, ''));
90
+ value = parseFloat(value.replace(/[^\d.]/g, ''));
90
91
  if (isNaN(value)) {
91
92
  //allow empty input
92
93
  $elt.val('');
@@ -95,16 +96,16 @@ define(['jquery', 'lodash', 'core/pluginifier', 'lib/gamp/gamp'], function ($, _
95
96
  value = negative ? -value : value;
96
97
 
97
98
  //check if the min and max are respected:
98
- if (options.min === null || _.isNumber(options.min) && value >= options.min || options.zero === true && value === 0) {
99
+ if (dataOptions.min === null || _.isNumber(dataOptions.min) && value >= dataOptions.min || dataOptions.zero === true && value === 0) {
99
100
  $elt.val(value);
100
101
  } else {
101
- $elt.val(options.min);
102
- value = options.min;
102
+ $elt.val(dataOptions.min);
103
+ value = dataOptions.min;
103
104
  }
104
- if (options.max === null || _.isNumber(options.max) && value <= options.max) {
105
+ if (dataOptions.max === null || _.isNumber(dataOptions.max) && value <= dataOptions.max) {
105
106
  $elt.val(value);
106
107
  } else {
107
- $elt.val(options.max);
108
+ $elt.val(dataOptions.max);
108
109
  }
109
110
  }
110
111
 
@@ -128,13 +129,13 @@ define(['jquery', 'lodash', 'core/pluginifier', 'lib/gamp/gamp'], function ($, _
128
129
  $ctrl.find('.inc').click(function (e) {
129
130
  e.preventDefault();
130
131
  if (!$(this).prop('disabled')) {
131
- self._inc($elt);
132
+ Incrementer._inc($elt);
132
133
  }
133
134
  });
134
135
  $ctrl.find('.dec').click(function (e) {
135
136
  e.preventDefault();
136
137
  if (!$(this).prop('disabled')) {
137
- self._dec($elt);
138
+ Incrementer._dec($elt);
138
139
  }
139
140
  });
140
141
 
package/dist/inplacer.js CHANGED
@@ -74,7 +74,7 @@ define(['jquery', 'lodash', 'core/pluginifier', 'core/dataattrhandler'], functio
74
74
  * The InPlacer component,
75
75
  * @exports ui/inplacer
76
76
  */
77
- var InPlacer = {
77
+ const InPlacer = {
78
78
  /**
79
79
  * Initialize the plugin.
80
80
  *
@@ -95,9 +95,9 @@ define(['jquery', 'lodash', 'core/pluginifier', 'core/dataattrhandler'], functio
95
95
  //get options using default
96
96
  options = $.extend(true, {}, defaults, options);
97
97
  return this.each(function () {
98
- var $elt = $(this);
98
+ const $elt = $(this);
99
99
  if (!$elt.data(dataNs)) {
100
- var $target = options.target;
100
+ const $target = options.target;
101
101
  if (!/^#/.test($target.selector)) {
102
102
  $.error('The target selector must referr to the of an element id or to the element to create.');
103
103
  }
@@ -164,7 +164,7 @@ define(['jquery', 'lodash', 'core/pluginifier', 'core/dataattrhandler'], functio
164
164
  var $editor;
165
165
  emptyText($elt);
166
166
  if (_.contains(options.mapping.textarea, $elt.prop('tagName').toLowerCase())) {
167
- var height = options.height || $elt.height() + 'px';
167
+ const height = options.height || $elt.height() + 'px';
168
168
  $editor = $elt.append('<textarea>' + text + '</textarea>').children(':input').width(width).height(height);
169
169
  } else {
170
170
  //set focus before adding text allow focus in the end of the text
@@ -1 +1 @@
1
- {"version":3,"sources":["../scss/item-button-list.scss","../../../scss/inc/_functions.scss","../../../scss/inc/fonts/_tao-icon-vars.scss","../../../scss/inc/_colors.scss"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAgBE;ACHF;;;;;;CDUC;AC0PD,oEAAA;ACjRA,gBAAA;AF6BA;IACI,aAAa;IACb,eAAe;IACf,sBAAsB;IACtB,UAAU;IAEV,2BAAA;IA0FA,iCAAA;IAiDA,sEAAA;IAuBA,qCAAA;AAlKJ;;AANA;IAQQ,eAZY;IAaZ,cAbY;IAcZ,aAAa;IACb,uBAAuB;IAAE,gEAAA;IACzB,mBAAmB;IACnB,wBAAA;IACA,UAAU;IACV,YAAY;AAGpB;;AAlBA;IAmBQ,kBAAkB;IAClB,aAAa;IACb,uBAAuB;IACvB,mBAAmB;IACnB,YA5BU;IA6BV,WA7BU;IA8BV,mBAAmB;IACnB,kBAhCY;IAiCZ,sBA9Ba;IA+Bb,qBGTmC;IHUnC,mCAAmC;IACnC,UAAU;IAAE,6BAAA;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,uBCiJiC;IDhJjC,cGfmC;IHgBnC,iBAAiB;IACjB,eAAe;AAIvB;;AAxCA;IAwCQ,gEAAgE;IAChE,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,oBAAoB;AAI5B;;AAhDA;IA+CQ,UAAU;IACV,MAAM;IACN,OAAO;AAKf;;AAtDA;IAoDQ,aAAa;AAMrB;;AA1DA;IAuDQ,aAAa;AAOrB;;AA9DA;IA2DQ,aAAa;AAOrB;;AAlEA;IA+DQ,kBAAkB;IAClB,YAAY;IACZ,cAAc;IACd,WAAW;IACX,YAAY;IACZ,mBAAmB;IACnB,YC6GiC;ID5GjC,0BC4GiC;ID3GjC,aAAa;IACb,uBAAuB;IACvB,mBAAmB;AAO3B;;AAhFA;IA4EQ,iBAAiB;IACjB,UAAU;IACV,MAAM;IACN,OAAO;AAQf;;AAvFA;IEdwB,gBAAgB;AFyGxC;;AA3FA;IEZuB,gBAAgB;AF2GvC;;AA/FA;IEiLwB,gBAAgB;AF9ExC;;AAnGA;IEgLyB,gBAAgB;AFzEzC;;AAvGA;IC4BY,yBAAwB;IAAxB,oBAAwB;IAAxB,iBAAwB;ADmFpC;;AA/GA;IAsGgB,qBAxGM;IAyGN,cGnF0B;IHoF1B,qBGpF0B;AHiG1C;;AArHA;IA6GgB,qBA/GM;IAgHN,yBG1F0B;IH2F1B,YCmEyB;IDlEzB,qBG5F0B;AHwG1C;;AA5HA;IAqHgB,kBAAkB;IAClB,cAAc;IACd,UAAU;IACV,cGpG0B;IHqG1B,cAAc;IACd,iBAAiB;IACjB,UAAU;IACV,eAAe;IACf,UAAU;IACV,2BAAA;IACA,SAAS;IACT,2BAA2B;AAW3C;;AA3IA;IAsIgB,yBGlKU;AH2K1B;;AA/IA;IA4IgB,yBGpKQ;AH2KxB;;AAnJA;IAoJY,yBA5JsB;IA6JtB,cG/HuC;IHgIvC,qBGhIuC;AHmInD;;AAzJA;;IA2JS,wBAAA;IACA,kCAAkC;IAClC,qBAAqB;IACrB,4BAA4B;AAGrC;;AAjKA;;IAiKY,mBAAmB;IACnB,wBAAA;IACA,iBAAiB;AAK7B;;AAxKA;;IA4KY,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,SAAS;IACT,QAAQ;IACR,gCAAgC;IAChC,qBAtLU;IAuLV,qBG/JuC;IHgKvC,oBAAoB;IACpB,kBA7LQ;AA8LpB;;AAxLA;;;IA6LY,cGvKuC;AHwKnD;;AA9LA;;IAkMY,uBChB6B;IDiB7B,cG7KuC;IH8KvC,qBG9KuC;AH+KnD;;AArMA;;IAyMY,yBGnLuC;IHoLvC,YCxB6B;IDyB7B,qBGrLuC;AHsLnD","file":"item-button-list.css","sourcesContent":["/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2022 Open Assessment Technologies SA ;\n */\n@import \"inc/bootstrap\";\n\n$correctColor: $success;\n$incorrectColor: $error;\n$hoverBgColor: hsl(208, 100%, 95%);\n\n$radiusCircular: 50%;\n$sizeDefault: 4rem;\n$hitboxSize: 6.25rem;\n$borderThin: 0.125rem;\n$borderMedium: 0.25rem;\n\n.buttonlist-items {\n display: flex;\n flex-wrap: wrap;\n justify-content: start;\n padding: 0;\n\n /****** base styles *******/\n .buttonlist-item {\n height: $hitboxSize;\n width: $hitboxSize;\n display: flex;\n justify-content: center; /* aligning left - cut focusing board for keyboard interacting */\n align-items: center;\n /* reset parent styles */\n padding: 0;\n border: none;\n }\n\n .buttonlist-btn {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n height: $sizeDefault;\n width: $sizeDefault;\n border-style: solid;\n border-radius: $radiusCircular;\n border-width: $borderThin;\n border-color: $uiReviewPanelTextDisabled;\n margin: 1.3rem 0.75rem 1rem 0.75rem;\n padding: 0; /*Fixes firefox button jumps*/\n font-weight: bold;\n font-size: 1.6rem;\n background-color: $uiReviewPanelBgDefault;\n color: $uiReviewPanelTextDisabled;\n text-shadow: none;\n cursor: pointer;\n }\n\n .buttonlist-label {\n font-family: 'Nunito Sans', 'Source Sans Pro', Arial, sans-serif;\n max-width: 3.75rem;\n overflow: hidden;\n white-space: nowrap;\n line-height: initial;\n }\n .buttonlist-icon {\n padding: 0;\n top: 0;\n left: 0;\n }\n .buttonlist-icon:not([class*=\"icon-\"]) {\n display: none;\n }\n .buttonlist-icon[class*=\"icon-\"] ~ .buttonlist-label {\n display: none;\n }\n\n .indicator {\n display: none;\n }\n\n .buttonlist-score-badge {\n position: absolute;\n top: -0.9rem;\n right: -0.9rem;\n width: 2rem;\n height: 2rem;\n border-radius: 100%;\n color: $uiReviewPanelTextInverted;\n border: 0.1rem solid $uiReviewPanelTextInverted;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .buttonlist-score-icon {\n font-size: 1.2rem;\n padding: 0;\n top: 0;\n left: 0;\n }\n\n .icon-info::before {\n @include icon-info-bare;\n }\n .icon-flagged::before {\n @include icon-bookmark;\n }\n .icon-correct::before {\n @include icon-result-ok;\n }\n .icon-incorrect::before {\n @include icon-result-nok;\n }\n\n\n /****** step state styles *******/\n .buttonlist-item {\n @include disableSelect();\n\n &.viewed {\n .buttonlist-btn {\n border-width: $borderMedium;\n color: $uiReviewPanelTextDefault;\n border-color: $uiReviewPanelTextDefault;\n }\n }\n &.answered {\n .buttonlist-btn {\n border-width: $borderMedium;\n background-color: $uiReviewPanelBgInverted;\n color: $uiReviewPanelTextInverted;\n border-color: $uiReviewPanelBgInverted;\n }\n }\n &.buttonlist-item-active {\n .indicator {\n position: absolute;\n display: block;\n z-index: 1;\n color: $uiReviewPanelTextDefault;\n height: 1.4rem;\n min-width: 1.6rem;\n top: unset;\n bottom: -1.7rem;\n padding: 0;\n /* centering horizontally */\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n &.correct {\n .buttonlist-score-badge {\n background-color: $correctColor;\n }\n }\n\n &.incorrect {\n .buttonlist-score-badge {\n background-color: $incorrectColor;\n }\n }\n }\n\n /* disabling is applied at buttonlist-item or buttonlist-items level */\n &:not(.disabled) .buttonlist-item:not(.disabled) {\n .buttonlist-btn:hover {\n background-color: $hoverBgColor;\n color: $uiReviewPanelPrimaryHighlight;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n }\n &.disabled,\n .buttonlist-item.disabled {\n /* reset global styles */\n background-color: unset !important;\n opacity: 1 !important;\n text-shadow: none !important;\n\n .buttonlist-btn {\n cursor: not-allowed;\n /* reset global styles */\n text-shadow: none;\n }\n }\n\n\n /****** keyboard focus styles *******/\n .buttonlist-item {\n &.key-navigation-highlight .buttonlist-btn::before,\n .buttonlist-btn.buttonlist-btn-focus:focus::before {\n content: '';\n display: block;\n position: absolute;\n width: 5.2rem;\n height: 5.2rem;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n border-width: $borderMedium;\n border-color: $uiReviewPanelPrimaryHighlight;\n border-style: dotted;\n border-radius: $radiusCircular;\n }\n\n &.key-navigation-highlight.buttonlist-item-active .buttonlist-btn .indicator,\n &.buttonlist-item-active .buttonlist-btn.buttonlist-btn-focus:focus .indicator,\n &.buttonlist-item-active .buttonlist-btn:focus-visible .indicator {\n color: $uiReviewPanelPrimaryHighlight;\n }\n\n &.key-navigation-highlight.viewed .buttonlist-btn,\n &.viewed .buttonlist-btn.buttonlist-btn-focus:focus {\n background-color: $uiReviewPanelBgDefault;\n color: $uiReviewPanelPrimaryHighlight;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n\n &.key-navigation-highlight.answered .buttonlist-btn,\n &.answered .buttonlist-btn.buttonlist-btn-focus:focus {\n background-color: $uiReviewPanelPrimaryHighlight;\n color: $uiReviewPanelTextInverted;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n }\n}\n\n/*# sourceMappingURL=item-button-list.css.map */","@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\n/* based on \"visually-hidden\" mixin in LDS for accessibility goals */\n@mixin visuallyHidden() {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n margin: 0;\n padding: 0;\n}\n","/* 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: never;\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-info-bare { content: \"\\e923\"; }\n@mixin icon-bookmark-outline { content: \"\\e922\"; }\n@mixin icon-bookmark { content: \"\\e921\"; }\n@mixin icon-indicator { content: \"\\e920\"; }\n@mixin icon-add-subsection { content: \"\\e918\"; }\n@mixin icon-wrap-inline { content: \"\\e915\"; }\n@mixin icon-wrap-left { content: \"\\e916\"; }\n@mixin icon-wrap-right { content: \"\\e917\"; }\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$textSecondary: #737373;\n$shadowColor: rgba(0, 0, 0, 0.25);\n\n$modalBorderColor: #dddfe2;\n$searchInp: #dddfe2;\n\n$uiGeneralContentBg: white();\n$uiGeneralContentBorder: #ddd;\n\n$uiHeaderBg: #d4d5d7;\n\n$uiClickableDefaultBg: #f3f1ef;\n$uiClickableHoverBg: whiten($info, 0.2);\n//$uiClickableActiveBg: $uiHeaderBg;\n$uiClickableActiveBg: whiten($websiteBorder, 0.2);\n//$uiClickableActiveBg: #aaa;\n\n$uiSelectableSelectedBg: whiten($info, 0.2);\n$uiSelectableSelectedHoverBg: whiten($info, 0.1);\n$uiSelectableHoverBg: whiten($info, 0.9);\n\n$uiOverlay: $lightBlueGrey;\n\n// new layout. Implemented now only for review panel\n$uiReviewPanelBg: #f2f2f2;\n$uiReviewPanelTextDisabled: hsl(0, 0%, 45%);\n$uiReviewPanelTextDefault: hsl(0, 0%, 12%);\n$uiReviewPanelBgDefault: $uiGeneralContentBg;\n$uiReviewPanelPrimaryHighlight: hsl(208, 100%, 32%);\n$uiReviewPanelBgInverted: $uiReviewPanelTextDefault;\n$uiReviewPanelTextInverted: $uiGeneralContentBg;\n\n// sidebars etc.\n$canvas: mix(#fff, $grey, 85%);\n\n// colors taken from feedback.scss\n$successBgColor: whiten($success, 0.8);\n$successBorderColor: whiten($success, 0.1);\n\n$infoBgColor: whiten($info, 0.8);\n$infoBorderColor: whiten($info, 0.1);\n\n$warningBgColor: whiten($warning, 0.8);\n$warningBorderColor: whiten($warning, 0.1);\n\n$dangerBgColor: whiten($danger, 0.8);\n$dangerBorderColor: whiten($danger, 0.1);\n\n$errorBgColor: whiten($error, 0.8);\n$errorBorderColor: whiten($error, 0.1);\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$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/item-button-list.scss","../../../scss/inc/_functions.scss","../../../scss/inc/fonts/_tao-icon-vars.scss","../../../scss/inc/_colors.scss"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAgBE;ACHF;;;;;;CDUC;AC0PD,oEAAA;ACjRA,gBAAA;AF6BA;IACI,aAAa;IACb,eAAe;IACf,sBAAsB;IACtB,UAAU;IAEV,2BAAA;IA0FA,iCAAA;IAiDA,sEAAA;IAuBA,qCAAA;AAlKJ;;AANA;IAQQ,eAZY;IAaZ,cAbY;IAcZ,aAAa;IACb,uBAAuB;IAAE,gEAAA;IACzB,mBAAmB;IACnB,wBAAA;IACA,UAAU;IACV,YAAY;AAGpB;;AAlBA;IAmBQ,kBAAkB;IAClB,aAAa;IACb,uBAAuB;IACvB,mBAAmB;IACnB,YA5BU;IA6BV,WA7BU;IA8BV,mBAAmB;IACnB,kBAhCY;IAiCZ,sBA9Ba;IA+Bb,qBGTmC;IHUnC,mCAAmC;IACnC,UAAU;IAAE,6BAAA;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,uBCiJiC;IDhJjC,cGfmC;IHgBnC,iBAAiB;IACjB,eAAe;AAIvB;;AAxCA;IAwCQ,gEAAgE;IAChE,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,oBAAoB;AAI5B;;AAhDA;IA+CQ,UAAU;IACV,MAAM;IACN,OAAO;AAKf;;AAtDA;IAoDQ,aAAa;AAMrB;;AA1DA;IAuDQ,aAAa;AAOrB;;AA9DA;IA2DQ,aAAa;AAOrB;;AAlEA;IA+DQ,kBAAkB;IAClB,YAAY;IACZ,cAAc;IACd,WAAW;IACX,YAAY;IACZ,mBAAmB;IACnB,YC6GiC;ID5GjC,0BC4GiC;ID3GjC,aAAa;IACb,uBAAuB;IACvB,mBAAmB;AAO3B;;AAhFA;IA4EQ,iBAAiB;IACjB,UAAU;IACV,MAAM;IACN,OAAO;AAQf;;AAvFA;IEZwB,gBAAgB;AFuGxC;;AA3FA;IEVuB,gBAAgB;AFyGvC;;AA/FA;IEkLwB,gBAAgB;AF/ExC;;AAnGA;IEiLyB,gBAAgB;AF1EzC;;AAvGA;IC4BY,yBAAwB;IAAxB,oBAAwB;IAAxB,iBAAwB;ADmFpC;;AA/GA;IAsGgB,qBAxGM;IAyGN,cGnF0B;IHoF1B,qBGpF0B;AHiG1C;;AArHA;IA6GgB,qBA/GM;IAgHN,yBG1F0B;IH2F1B,YCmEyB;IDlEzB,qBG5F0B;AHwG1C;;AA5HA;IAqHgB,kBAAkB;IAClB,cAAc;IACd,UAAU;IACV,cGpG0B;IHqG1B,cAAc;IACd,iBAAiB;IACjB,UAAU;IACV,eAAe;IACf,UAAU;IACV,2BAAA;IACA,SAAS;IACT,2BAA2B;AAW3C;;AA3IA;IAsIgB,yBGlKU;AH2K1B;;AA/IA;IA4IgB,yBGpKQ;AH2KxB;;AAnJA;IAoJY,yBA5JsB;IA6JtB,cG/HuC;IHgIvC,qBGhIuC;AHmInD;;AAzJA;;IA2JS,wBAAA;IACA,kCAAkC;IAClC,qBAAqB;IACrB,4BAA4B;AAGrC;;AAjKA;;IAiKY,mBAAmB;IACnB,wBAAA;IACA,iBAAiB;AAK7B;;AAxKA;;IA4KY,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,SAAS;IACT,QAAQ;IACR,gCAAgC;IAChC,qBAtLU;IAuLV,qBG/JuC;IHgKvC,oBAAoB;IACpB,kBA7LQ;AA8LpB;;AAxLA;;;IA6LY,cGvKuC;AHwKnD;;AA9LA;;IAkMY,uBChB6B;IDiB7B,cG7KuC;IH8KvC,qBG9KuC;AH+KnD;;AArMA;;IAyMY,yBGnLuC;IHoLvC,YCxB6B;IDyB7B,qBGrLuC;AHsLnD","file":"item-button-list.css","sourcesContent":["/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2022 Open Assessment Technologies SA ;\n */\n@import \"inc/bootstrap\";\n\n$correctColor: $success;\n$incorrectColor: $error;\n$hoverBgColor: hsl(208, 100%, 95%);\n\n$radiusCircular: 50%;\n$sizeDefault: 4rem;\n$hitboxSize: 6.25rem;\n$borderThin: 0.125rem;\n$borderMedium: 0.25rem;\n\n.buttonlist-items {\n display: flex;\n flex-wrap: wrap;\n justify-content: start;\n padding: 0;\n\n /****** base styles *******/\n .buttonlist-item {\n height: $hitboxSize;\n width: $hitboxSize;\n display: flex;\n justify-content: center; /* aligning left - cut focusing board for keyboard interacting */\n align-items: center;\n /* reset parent styles */\n padding: 0;\n border: none;\n }\n\n .buttonlist-btn {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n height: $sizeDefault;\n width: $sizeDefault;\n border-style: solid;\n border-radius: $radiusCircular;\n border-width: $borderThin;\n border-color: $uiReviewPanelTextDisabled;\n margin: 1.3rem 0.75rem 1rem 0.75rem;\n padding: 0; /*Fixes firefox button jumps*/\n font-weight: bold;\n font-size: 1.6rem;\n background-color: $uiReviewPanelBgDefault;\n color: $uiReviewPanelTextDisabled;\n text-shadow: none;\n cursor: pointer;\n }\n\n .buttonlist-label {\n font-family: 'Nunito Sans', 'Source Sans Pro', Arial, sans-serif;\n max-width: 3.75rem;\n overflow: hidden;\n white-space: nowrap;\n line-height: initial;\n }\n .buttonlist-icon {\n padding: 0;\n top: 0;\n left: 0;\n }\n .buttonlist-icon:not([class*=\"icon-\"]) {\n display: none;\n }\n .buttonlist-icon[class*=\"icon-\"] ~ .buttonlist-label {\n display: none;\n }\n\n .indicator {\n display: none;\n }\n\n .buttonlist-score-badge {\n position: absolute;\n top: -0.9rem;\n right: -0.9rem;\n width: 2rem;\n height: 2rem;\n border-radius: 100%;\n color: $uiReviewPanelTextInverted;\n border: 0.1rem solid $uiReviewPanelTextInverted;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .buttonlist-score-icon {\n font-size: 1.2rem;\n padding: 0;\n top: 0;\n left: 0;\n }\n\n .icon-info::before {\n @include icon-info-bare;\n }\n .icon-flagged::before {\n @include icon-bookmark;\n }\n .icon-correct::before {\n @include icon-result-ok;\n }\n .icon-incorrect::before {\n @include icon-result-nok;\n }\n\n\n /****** step state styles *******/\n .buttonlist-item {\n @include disableSelect();\n\n &.viewed {\n .buttonlist-btn {\n border-width: $borderMedium;\n color: $uiReviewPanelTextDefault;\n border-color: $uiReviewPanelTextDefault;\n }\n }\n &.answered {\n .buttonlist-btn {\n border-width: $borderMedium;\n background-color: $uiReviewPanelBgInverted;\n color: $uiReviewPanelTextInverted;\n border-color: $uiReviewPanelBgInverted;\n }\n }\n &.buttonlist-item-active {\n .indicator {\n position: absolute;\n display: block;\n z-index: 1;\n color: $uiReviewPanelTextDefault;\n height: 1.4rem;\n min-width: 1.6rem;\n top: unset;\n bottom: -1.7rem;\n padding: 0;\n /* centering horizontally */\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n &.correct {\n .buttonlist-score-badge {\n background-color: $correctColor;\n }\n }\n\n &.incorrect {\n .buttonlist-score-badge {\n background-color: $incorrectColor;\n }\n }\n }\n\n /* disabling is applied at buttonlist-item or buttonlist-items level */\n &:not(.disabled) .buttonlist-item:not(.disabled) {\n .buttonlist-btn:hover {\n background-color: $hoverBgColor;\n color: $uiReviewPanelPrimaryHighlight;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n }\n &.disabled,\n .buttonlist-item.disabled {\n /* reset global styles */\n background-color: unset !important;\n opacity: 1 !important;\n text-shadow: none !important;\n\n .buttonlist-btn {\n cursor: not-allowed;\n /* reset global styles */\n text-shadow: none;\n }\n }\n\n\n /****** keyboard focus styles *******/\n .buttonlist-item {\n &.key-navigation-highlight .buttonlist-btn::before,\n .buttonlist-btn.buttonlist-btn-focus:focus::before {\n content: '';\n display: block;\n position: absolute;\n width: 5.2rem;\n height: 5.2rem;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n border-width: $borderMedium;\n border-color: $uiReviewPanelPrimaryHighlight;\n border-style: dotted;\n border-radius: $radiusCircular;\n }\n\n &.key-navigation-highlight.buttonlist-item-active .buttonlist-btn .indicator,\n &.buttonlist-item-active .buttonlist-btn.buttonlist-btn-focus:focus .indicator,\n &.buttonlist-item-active .buttonlist-btn:focus-visible .indicator {\n color: $uiReviewPanelPrimaryHighlight;\n }\n\n &.key-navigation-highlight.viewed .buttonlist-btn,\n &.viewed .buttonlist-btn.buttonlist-btn-focus:focus {\n background-color: $uiReviewPanelBgDefault;\n color: $uiReviewPanelPrimaryHighlight;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n\n &.key-navigation-highlight.answered .buttonlist-btn,\n &.answered .buttonlist-btn.buttonlist-btn-focus:focus {\n background-color: $uiReviewPanelPrimaryHighlight;\n color: $uiReviewPanelTextInverted;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n }\n}\n\n/*# sourceMappingURL=item-button-list.css.map */","@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\n/* based on \"visually-hidden\" mixin in LDS for accessibility goals */\n@mixin visuallyHidden() {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n margin: 0;\n padding: 0;\n}\n","/* 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: never;\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-furigana { content: \"\\e919\"; }\n@mixin icon-add-subsection { content: \"\\e918\"; }\n@mixin icon-info-bare { content: \"\\e923\"; }\n@mixin icon-bookmark-outline { content: \"\\e922\"; }\n@mixin icon-bookmark { content: \"\\e921\"; }\n@mixin icon-indicator { content: \"\\e920\"; }\n@mixin icon-wrap-inline { content: \"\\e915\"; }\n@mixin icon-wrap-left { content: \"\\e916\"; }\n@mixin icon-wrap-right { content: \"\\e917\"; }\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$textSecondary: #737373;\n$shadowColor: rgba(0, 0, 0, 0.25);\n\n$modalBorderColor: #dddfe2;\n$searchInp: #dddfe2;\n\n$uiGeneralContentBg: white();\n$uiGeneralContentBorder: #ddd;\n\n$uiHeaderBg: #d4d5d7;\n\n$uiClickableDefaultBg: #f3f1ef;\n$uiClickableHoverBg: whiten($info, 0.2);\n//$uiClickableActiveBg: $uiHeaderBg;\n$uiClickableActiveBg: whiten($websiteBorder, 0.2);\n//$uiClickableActiveBg: #aaa;\n\n$uiSelectableSelectedBg: whiten($info, 0.2);\n$uiSelectableSelectedHoverBg: whiten($info, 0.1);\n$uiSelectableHoverBg: whiten($info, 0.9);\n\n$uiOverlay: $lightBlueGrey;\n\n// new layout. Implemented now only for review panel\n$uiReviewPanelBg: #f2f2f2;\n$uiReviewPanelTextDisabled: hsl(0, 0%, 45%);\n$uiReviewPanelTextDefault: hsl(0, 0%, 12%);\n$uiReviewPanelBgDefault: $uiGeneralContentBg;\n$uiReviewPanelPrimaryHighlight: hsl(208, 100%, 32%);\n$uiReviewPanelBgInverted: $uiReviewPanelTextDefault;\n$uiReviewPanelTextInverted: $uiGeneralContentBg;\n\n// sidebars etc.\n$canvas: mix(#fff, $grey, 85%);\n\n// colors taken from feedback.scss\n$successBgColor: whiten($success, 0.8);\n$successBorderColor: whiten($success, 0.1);\n\n$infoBgColor: whiten($info, 0.8);\n$infoBorderColor: whiten($info, 0.1);\n\n$warningBgColor: whiten($warning, 0.8);\n$warningBorderColor: whiten($warning, 0.1);\n\n$dangerBgColor: whiten($danger, 0.8);\n$dangerBorderColor: whiten($danger, 0.1);\n\n$errorBgColor: whiten($error, 0.8);\n$errorBorderColor: whiten($error, 0.1);\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$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"]}