@oat-sa/tao-core-ui 3.24.1 → 3.24.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 (140) hide show
  1. package/dist/animable/pulsable/pulsable.js +0 -1
  2. package/dist/autocomplete/css/autocomplete.css +1 -1
  3. package/dist/autocomplete/css/autocomplete.css.map +1 -1
  4. package/dist/badge/css/badge.css +6 -6
  5. package/dist/badge/css/badge.css.map +1 -1
  6. package/dist/breadcrumbs/css/breadcrumbs.css +2 -2
  7. package/dist/breadcrumbs/css/breadcrumbs.css.map +1 -1
  8. package/dist/calculator/css/calculator.css +8 -6
  9. package/dist/calculator/css/calculator.css.map +1 -1
  10. package/dist/class/css/selector.css +4 -4
  11. package/dist/class/css/selector.css.map +1 -1
  12. package/dist/component/css/components.css +5 -5
  13. package/dist/component/css/components.css.map +1 -1
  14. package/dist/component/css/windowComponent.css +1 -1
  15. package/dist/component/css/windowComponent.css.map +1 -1
  16. package/dist/component/draggable.js +0 -1
  17. package/dist/component/resizable.js +0 -1
  18. package/dist/contextualPopup/css/contextualPopup.css +1 -1
  19. package/dist/contextualPopup/css/contextualPopup.css.map +1 -1
  20. package/dist/datatable/css/datatable.css +3 -3
  21. package/dist/datatable/css/datatable.css.map +1 -1
  22. package/dist/datatable.js +1 -2
  23. package/dist/datetime/css/picker.css +13 -13
  24. package/dist/datetime/css/picker.css.map +1 -1
  25. package/dist/documentViewer/css/documentViewer.css +10 -10
  26. package/dist/documentViewer/css/documentViewer.css.map +1 -1
  27. package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +0 -1
  28. package/dist/dynamicComponent/css/dynamicComponent.css +1 -1
  29. package/dist/dynamicComponent/css/dynamicComponent.css.map +1 -1
  30. package/dist/dynamicComponent.js +1 -4
  31. package/dist/figure/FigureStateActive.js +20 -23
  32. package/dist/form/css/dropdownForm.css +1 -1
  33. package/dist/form/css/dropdownForm.css.map +1 -1
  34. package/dist/form/widget/widget.js +1 -4
  35. package/dist/highlighter.js +0 -2
  36. package/dist/image/ImgStateActive.js +13 -15
  37. package/dist/interactUtils.js +7 -8
  38. package/dist/itemButtonList/css/item-button-list.css +9 -3
  39. package/dist/itemButtonList/css/item-button-list.css.map +1 -1
  40. package/dist/itemButtonList.js +1 -2
  41. package/dist/keyNavigation/navigableDomElement.js +3 -4
  42. package/dist/keyNavigation/navigator.js +1 -2
  43. package/dist/listbox/css/listbox.css +1 -1
  44. package/dist/listbox/css/listbox.css.map +1 -1
  45. package/dist/maths/calculator/core/board.js +58 -127
  46. package/dist/maths/calculator/core/labels.js +1 -6
  47. package/dist/maths/calculator/css/calculator.css +18 -18
  48. package/dist/maths/calculator/css/calculator.css.map +1 -1
  49. package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +1 -6
  50. package/dist/mediaplayer/css/player.css +7 -7
  51. package/dist/mediaplayer/css/player.css.map +1 -1
  52. package/dist/mediaplayer/players/html5.js +3 -14
  53. package/dist/mediaplayer/players/youtube.js +3 -12
  54. package/dist/mediaplayer/utils/crossOrigin.js +1 -1
  55. package/dist/mediaplayer/utils/timeObserver.js +1 -2
  56. package/dist/mediaplayer/youtubeManager.js +1 -2
  57. package/dist/mediaplayer.js +2 -8
  58. package/dist/mediasizer.js +0 -1
  59. package/dist/resizeObserver.js +1 -3
  60. package/dist/resource/css/selector.css +31 -23
  61. package/dist/resource/css/selector.css.map +1 -1
  62. package/dist/resource/list.js +239 -203
  63. package/dist/resource/selector.js +0 -1
  64. package/dist/resource/tree.js +239 -203
  65. package/dist/resourcemgr/assetSearch.js +20 -18
  66. package/dist/resourcemgr/assetSearchContract.js +67 -12
  67. package/dist/resourcemgr/css/resourcemgr.css +17 -18
  68. package/dist/resourcemgr/css/resourcemgr.css.map +1 -1
  69. package/dist/resourcemgr/fileBrowser.js +3 -5
  70. package/dist/resourcemgr/fileSelector.js +3 -0
  71. package/dist/searchModal/advancedSearch.js +3 -4
  72. package/dist/searchModal/css/searchModal.css +14 -14
  73. package/dist/searchModal/css/searchModal.css.map +1 -1
  74. package/dist/searchModal.js +42 -53
  75. package/dist/switch/css/switch.css +2 -2
  76. package/dist/switch/css/switch.css.map +1 -1
  77. package/dist/tabs/css/tabs.css +2 -2
  78. package/dist/tabs/css/tabs.css.map +1 -1
  79. package/dist/taskQueue/css/taskQueue.css +4 -4
  80. package/dist/taskQueue/css/taskQueue.css.map +1 -1
  81. package/dist/taskQueue/taskQueueModel.js +1 -2
  82. package/dist/taskQueueButton/taskable.js +1 -2
  83. package/dist/validator/validators.js +0 -1
  84. package/dist/waitingDialog/css/waitingDialog.css +2 -2
  85. package/dist/waitingDialog/css/waitingDialog.css.map +1 -1
  86. package/package.json +1 -1
  87. package/src/autocomplete/css/autocomplete.css +1 -1
  88. package/src/autocomplete/css/autocomplete.css.map +1 -1
  89. package/src/badge/css/badge.css +6 -6
  90. package/src/badge/css/badge.css.map +1 -1
  91. package/src/breadcrumbs/css/breadcrumbs.css +2 -2
  92. package/src/breadcrumbs/css/breadcrumbs.css.map +1 -1
  93. package/src/calculator/css/calculator.css +8 -6
  94. package/src/calculator/css/calculator.css.map +1 -1
  95. package/src/class/css/selector.css +4 -4
  96. package/src/class/css/selector.css.map +1 -1
  97. package/src/component/css/components.css +5 -5
  98. package/src/component/css/components.css.map +1 -1
  99. package/src/component/css/windowComponent.css +1 -1
  100. package/src/component/css/windowComponent.css.map +1 -1
  101. package/src/contextualPopup/css/contextualPopup.css +1 -1
  102. package/src/contextualPopup/css/contextualPopup.css.map +1 -1
  103. package/src/css/basic.css +123 -113
  104. package/src/css/basic.css.map +1 -1
  105. package/src/datatable/css/datatable.css +3 -3
  106. package/src/datatable/css/datatable.css.map +1 -1
  107. package/src/datetime/css/picker.css +13 -13
  108. package/src/datetime/css/picker.css.map +1 -1
  109. package/src/documentViewer/css/documentViewer.css +10 -10
  110. package/src/documentViewer/css/documentViewer.css.map +1 -1
  111. package/src/dynamicComponent/css/dynamicComponent.css +1 -1
  112. package/src/dynamicComponent/css/dynamicComponent.css.map +1 -1
  113. package/src/form/css/dropdownForm.css +1 -1
  114. package/src/form/css/dropdownForm.css.map +1 -1
  115. package/src/itemButtonList/css/item-button-list.css +9 -3
  116. package/src/itemButtonList/css/item-button-list.css.map +1 -1
  117. package/src/listbox/css/listbox.css +1 -1
  118. package/src/listbox/css/listbox.css.map +1 -1
  119. package/src/maths/calculator/css/calculator.css +18 -18
  120. package/src/maths/calculator/css/calculator.css.map +1 -1
  121. package/src/mediaplayer/css/player.css +7 -7
  122. package/src/mediaplayer/css/player.css.map +1 -1
  123. package/src/resource/css/selector.css +31 -23
  124. package/src/resource/css/selector.css.map +1 -1
  125. package/src/resourcemgr/assetSearch.js +27 -19
  126. package/src/resourcemgr/assetSearchContract.js +67 -18
  127. package/src/resourcemgr/css/resourcemgr.css +17 -18
  128. package/src/resourcemgr/css/resourcemgr.css.map +1 -1
  129. package/src/resourcemgr/fileBrowser.js +9 -9
  130. package/src/resourcemgr/fileSelector.js +4 -0
  131. package/src/searchModal/css/searchModal.css +14 -14
  132. package/src/searchModal/css/searchModal.css.map +1 -1
  133. package/src/switch/css/switch.css +2 -2
  134. package/src/switch/css/switch.css.map +1 -1
  135. package/src/tabs/css/tabs.css +2 -2
  136. package/src/tabs/css/tabs.css.map +1 -1
  137. package/src/taskQueue/css/taskQueue.css +4 -4
  138. package/src/taskQueue/css/taskQueue.css.map +1 -1
  139. package/src/waitingDialog/css/waitingDialog.css +2 -2
  140. package/src/waitingDialog/css/waitingDialog.css.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../scss/inc/_functions.scss","../../../scss/inc/fonts/_tao-icon-vars.scss","../scss/selector.scss%23sass","../scss/selector.scss","../../../scss/inc/_colors.scss","../scss/_resource-list.scss","../scss/_resource-tree.scss","../scss/_filters.scss"],"names":[],"mappings":"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","file":"selector.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: calc(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: calc((($gridPx - ($numCols * $gutter)) / $numCols));\n $spanPx: $rawSpanPx * $span + (($span - 1) * $gutter);\n $spanPercent: widthPerc($spanPx, $gridPx);\n $marginPercent: widthPerc($gutter, $gridPx);\n margin-inline-start: $marginPercent;\n inline-size: $spanPercent;\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 } @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 @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 } @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 } @else {\n @include vendor-prefix(flex, 0 0 $width, property, (-ms-, -webkit-, ''));\n }\n}\n\n@mixin box-shadow($horiz: 1px, $vert: 1px, $blur: 2px, $spread: 0, $color: rgba(0, 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 calc(($colWidth * 100 / $context) * 1%);\n}\n\n@function remDist($fontSizePx) {\n @return calc(($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: calc(($remPx) * 1px) !important;\n font-size: calc(($remPx / 10) * 1rem) !important;\n } @else {\n font-size: calc(($remPx) * 1px);\n font-size: calc(($remPx / 10) * 1rem);\n }\n}\n\n@mixin keyframes($name) {\n @-o-keyframes #{$name} {\n @content;\n }\n @-moz-keyframes #{$name} {\n @content;\n }\n @-webkit-keyframes #{$name} {\n @content;\n }\n @keyframes #{$name} {\n @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 @include keyframes(fade) {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\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\n/*\n * Every style defined here must be mirrored with `writing-mode-horizontal-tb` mixin.\n Because writing-mode can be defined on 2 levels: a) item, b) text block or interaction;\n so if there's a horizontal block inside vertical item, vertical styles should *not* be used for it.\n */\n@mixin writing-mode-vertical-rl {\n @at-root {\n #{selector-replace(&, $mainContainer, $mainContainer + \" .writing-mode-vertical-rl\")} {\n @content;\n }\n }\n}\n@mixin writing-mode-horizontal-tb {\n & {\n @content;\n }\n @at-root {\n #{selector-replace(&, $mainContainer, $mainContainer + \" .writing-mode-vertical-rl .writing-mode-horizontal-tb\")} {\n @content;\n }\n }\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-restricted { content: \"\\e92c\"; }\n@mixin icon-blocked { content: \"\\e92d\"; }\n@mixin icon-copy { content: \"\\e92b\"; }\n@mixin icon-align-center { content: \"\\e92a\"; }\n@mixin icon-multiple-magicwand { content: \"\\e929\"; }\n@mixin icon-sd-import { content: \"\\e91f\"; }\n@mixin icon-sd-export { content: \"\\e924\"; }\n@mixin icon-browse { content: \"\\e925\"; }\n@mixin icon-minus { content: \"\\e926\"; }\n@mixin icon-plus { content: \"\\e927\"; }\n@mixin icon-sd-save { content: \"\\e928\"; }\n@mixin icon-back-button { content: \"\\e91e\"; }\n@mixin icon-japan-incorrect { content: \"\\e91b\"; }\n@mixin icon-japan-correct { content: \"\\e91c\"; }\n@mixin icon-japan-partial { content: \"\\e91d\"; }\n@mixin icon-score-partial { content: \"\\e91a\"; }\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-duplicate { 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","@import \"inc/bootstrap\";\n\n@mixin resource-selector-actions {\n display: inline-block;\n width: 40px;\n height: 40px;\n padding: 10px 0 0 12px;\n color: $textColor;\n border-left: solid 1px $uiGeneralContentBg;\n text-shadow: 0 0 0 transparent;\n text-decoration: none;\n\n &:hover, &.active {\n color: $uiClickableHoverBg;\n @include transition(color, 200ms, linear);\n }\n}\n\n.resource-selector{\n position: relative;\n height: 100%;\n\n @include flex-container(nowrap, column);\n opacity: 0;\n\n\n background-color: $uiClickableDefaultBg;\n @include simple-border;\n\n &.rendered {\n opacity: 1;\n @include transition(opacity, 300ms, linear);\n }\n\n @import \"resource-list\";\n @import \"resource-tree\";\n @import \"filters\";\n\n nav {\n height: 40px;\n @include vendor-prefix(flex, 0 1 40px, property, (-ms-, -webkit-, ''));\n border-top: solid 1px $uiGeneralContentBorder;\n }\n\n .context {\n @include flex-container(nowrap, row);\n padding-right: 16px;\n\n .class-context {\n @include simple-flex-box;\n overflow : hidden;\n\n .class-selector{\n position: static;\n .options {\n max-height: calc(100% - 120px);\n &.folded {\n max-height: 0;\n }\n }\n }\n }\n\n & > a {\n @include resource-selector-actions;\n }\n }\n\n .selection {\n\n @include flex-container(nowrap, row);\n padding-right: 16px;\n\n .selection-control {\n\n @include vendor-prefix(flex, 0 0 80px, property, (-ms-, -webkit-, ''));\n\n & > label {\n @include resource-selector-actions;\n width: 36px;\n padding: 10px 0 0 8px;\n margin: 0;\n }\n & > a {\n @include resource-selector-actions;\n width: 38px;\n }\n .selection-toggle .icon-multi-select:before {\n @include font-size(16);\n }\n .selection-toggle.hidden{\n display: inline-block !important;\n visibility: hidden;\n }\n }\n .search {\n @include simple-flex-box;\n position: relative;\n\n padding : 6px 6px 6px 5px;\n\n &:before {\n @include tao-icon-setup;\n @include icon-find;\n position: absolute;\n left: 12px;\n top: 12px;\n opacity: .4;\n }\n input {\n @include border-radius(2);\n max-width: inherit;\n width: 100%;\n padding: 4px 25px;\n }\n\n & > a.filters-opener {\n position: absolute;\n right: 12px;\n top: 10px;\n\n @include font-size(16);\n text-decoration: none;\n }\n }\n .filters-container {\n position: absolute;\n width: 100%;\n background-color: $uiClickableDefaultBg;\n border: solid 1px $uiGeneralContentBorder;\n @include border-radius-bottom(3);\n @include box-shadow;\n left: 0;\n top: 80px;\n overflow-y: auto;\n z-index: 100;\n max-height: calc(100% - 110px);\n @include transition(max-height, 300ms, ease);\n\n &.folded {\n overflow: hidden;\n max-height: 0;\n border-width: 0;\n @include transition(max-height, 300ms, ease);\n }\n }\n }\n\n main {\n @include simple-flex-box;\n\n min-height: 150px;\n\n border-top: solid 1px $uiGeneralContentBorder;\n background-color: $uiGeneralContentBg;\n height: 100%;\n overflow-y: scroll;\n\n .no-results {\n display:inline-block;\n width: 100%;\n text-align:center;\n margin: 10px auto;\n opacity: .75;\n }\n\n .more {\n height: 45px;\n padding: 10px;\n }\n\n &.loading .more {\n opacity: 0.65;\n cursor : inherit;\n }\n }\n\n footer {\n height: 30px;\n @include vendor-prefix(flex, 0 1 30px, property, (-ms-, -webkit-, ''));\n border-top: solid 1px $uiGeneralContentBorder;\n\n background-color: $uiClickableDefaultBg;\n text-align: center;\n padding: 5px;\n }\n}\n","@import \"inc/bootstrap\";\n\n@mixin resource-selector-actions {\n display: inline-block;\n width: 40px;\n height: 40px;\n padding: 10px 0 0 12px;\n color: $textColor;\n border-left: solid 1px $uiGeneralContentBg;\n text-shadow: 0 0 0 transparent;\n text-decoration: none;\n\n &:hover, &.active {\n color: $uiClickableHoverBg;\n @include transition(color, 200ms, linear);\n }\n}\n\n.resource-selector{\n position: relative;\n height: 100%;\n\n @include flex-container(nowrap, column);\n opacity: 0;\n\n\n background-color: $uiClickableDefaultBg;\n @include simple-border;\n\n &.rendered {\n opacity: 1;\n @include transition(opacity, 300ms, linear);\n }\n\n @import \"resource-list\";\n @import \"resource-tree\";\n @import \"filters\";\n\n nav {\n height: 40px;\n @include vendor-prefix(flex, 0 1 40px, property, (-ms-, -webkit-, ''));\n border-top: solid 1px $uiGeneralContentBorder;\n }\n\n .context {\n @include flex-container(nowrap, row);\n padding-right: 16px;\n\n .class-context {\n @include simple-flex-box;\n overflow : hidden;\n\n .class-selector{\n position: static;\n .options {\n max-height: calc(100% - 120px);\n &.folded {\n max-height: 0;\n }\n }\n }\n }\n\n & > a {\n @include resource-selector-actions;\n }\n }\n\n .selection {\n\n @include flex-container(nowrap, row);\n padding-right: 16px;\n\n .selection-control {\n\n @include vendor-prefix(flex, 0 0 80px, property, (-ms-, -webkit-, ''));\n\n & > label {\n @include resource-selector-actions;\n width: 36px;\n padding: 10px 0 0 8px;\n margin: 0;\n }\n & > a {\n @include resource-selector-actions;\n width: 38px;\n }\n .selection-toggle .icon-multi-select:before {\n @include font-size(16);\n }\n .selection-toggle.hidden{\n display: inline-block !important;\n visibility: hidden;\n }\n }\n .search {\n @include simple-flex-box;\n position: relative;\n\n padding : 6px 6px 6px 5px;\n\n &:before {\n @include tao-icon-setup;\n @include icon-find;\n position: absolute;\n left: 12px;\n top: 12px;\n opacity: .4;\n }\n input {\n @include border-radius(2);\n max-width: inherit;\n width: 100%;\n padding: 4px 25px;\n }\n\n & > a.filters-opener {\n position: absolute;\n right: 12px;\n top: 10px;\n\n @include font-size(16);\n text-decoration: none;\n }\n }\n .filters-container {\n position: absolute;\n width: 100%;\n background-color: $uiClickableDefaultBg;\n border: solid 1px $uiGeneralContentBorder;\n @include border-radius-bottom(3);\n @include box-shadow;\n left: 0;\n top: 80px;\n overflow-y: auto;\n z-index: 100;\n max-height: calc(100% - 110px);\n @include transition(max-height, 300ms, ease);\n\n &.folded {\n overflow: hidden;\n max-height: 0;\n border-width: 0;\n @include transition(max-height, 300ms, ease);\n }\n }\n }\n\n main {\n @include simple-flex-box;\n\n min-height: 150px;\n\n border-top: solid 1px $uiGeneralContentBorder;\n background-color: $uiGeneralContentBg;\n height: 100%;\n overflow-y: scroll;\n\n .no-results {\n display:inline-block;\n width: 100%;\n text-align:center;\n margin: 10px auto;\n opacity: .75;\n }\n\n .more {\n height: 45px;\n padding: 10px;\n }\n\n &.loading .more {\n opacity: 0.65;\n cursor : inherit;\n }\n }\n\n footer {\n height: 30px;\n @include vendor-prefix(flex, 0 1 30px, property, (-ms-, -webkit-, ''));\n border-top: solid 1px $uiGeneralContentBorder;\n\n background-color: $uiClickableDefaultBg;\n text-align: center;\n padding: 5px;\n }\n}\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$colorBrand: #266d9c;\n$colorBrandLight: #e4ecef;\n$colorGsDark: #121212; //color ported from nextgen TAO design system\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",".resource-list {\n position: relative;\n height: 100%;\n\n opacity : 0;\n &.rendered {\n opacity: 1;\n @include transition(opacity, 300ms, linear);\n }\n\n &.multiple ul li a:after{\n display: block;\n @include transition(all, 200ms, linear);\n }\n\n &.multiple ul li[data-access=\"denied\"] a:after {\n display: none;\n }\n\n ul {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n position: relative;\n height: 40px;\n padding: 10px;\n border-bottom: solid 1px $uiGeneralContentBorder;\n\n @include transition(background-color, 200ms, linear);\n\n a {\n @include transition(color, 200ms, linear);\n color: $textColor;\n display: inline-block;\n width: 100%;\n padding-right: 25px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &:after {\n @include tao-icon-setup;\n @include icon-checkbox;\n color: $info;\n position: absolute;\n right: 17px;\n top: 12px;\n display: none;\n }\n &:hover {\n text-decoration: none;\n }\n\n & > span {\n color: $info;\n margin-right: 4px;\n @include font-size(16);\n vertical-align: top;\n }\n }\n\n &.selected, &:hover {\n background-color: $uiClickableHoverBg;\n cursor: pointer;\n @include transition(background-color, 200ms, linear);\n a {\n color: $textHighlight;\n @include transition(color, 200ms, linear);\n\n &:after {\n color: $textHighlight;\n }\n & > span {\n color: $textHighlight;\n }\n }\n }\n &.selected a:after {\n @include icon-checkbox-checked;\n }\n\n &[data-access=denied] > a, &[data-access=partial] > a {\n [class^=\"icon-\"], [class*=\" icon-\"] {\n position: relative;\n &:after {\n @include icon-lock;\n color: #555;\n position: absolute;\n left: 7px;\n top: 6px;\n }\n }\n }\n &[data-access=denied] {\n color: $uiClickableActiveBg;\n background-color: $textHighlight;\n &:hover, &:hover > a, & > a, [class^=\"icon-\"]:before, [class*=\" icon-\"]:before {\n cursor: auto;\n background-color: $textHighlight;\n color: $uiClickableActiveBg !important;\n }\n }\n }\n }\n}\n",".resource-tree{\n $nodeHeight: 40px;\n $actionWidth: 25px;\n $hoverWidth: $nodeHeight - 15px;\n\n position: relative;\n height: 100%;\n opacity : 0;\n &.rendered {\n opacity: 1;\n @include transition(opacity, 300ms, linear);\n }\n\n &.multiple ul li.selectable {\n & > a > .selector {\n display: inline-block;\n }\n }\n\n &.multiple ul li.instance[data-access=\"denied\"] a .selector {\n display: none;\n }\n\n .clickable {\n &:hover {\n &:before {\n content: \" \";\n display: inline-block;\n position: absolute;\n width: $hoverWidth;\n height: $hoverWidth;\n top: 7.5px;\n left: 0;\n border-radius: 50%;\n background-color: blacken($uiSelectableHoverBg, .2);\n opacity: .5;\n }\n }\n &:focus {\n outline: 0 none;\n }\n }\n\n ul {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n position: relative;\n cursor: pointer;\n\n & > a {\n height: $nodeHeight;\n line-height: $nodeHeight;\n display: block;\n width: 100%;\n padding-right: 30px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n border-bottom: solid 1px $uiGeneralContentBorder;\n color : $textColor;\n }\n &.class {\n .class-toggler {\n display: inline-block;\n position: relative;\n width: $actionWidth;\n height: $nodeHeight;\n text-align: center;\n &:after {\n @include tao-icon-setup;\n @include icon-down;\n @include font-size(15);\n position: relative;\n }\n }\n &.empty .class-toggler{\n visibility: hidden;\n }\n & > a {\n & > .icon-folder:before {\n @include icon-folder-open;\n color: $warning;\n margin-right: 4px;\n }\n &:hover {\n background-color: $uiSelectableHoverBg;\n color : $textColor;\n @include transition(all, 200ms, linear);\n }\n }\n\n &.selected {\n & > a {\n background-color: $uiSelectableSelectedBg;\n color: $textHighlight;\n &:before, &:after {\n color: $textHighlight;\n }\n @include transition(all, 200ms, linear);\n\n &:hover {\n background-color: $uiSelectableSelectedHoverBg;\n @include transition(all, 200ms, linear);\n }\n .clickable:hover:before {\n background-color: whiten($uiSelectableSelectedHoverBg, .2);\n }\n }\n }\n &.closed {\n & > a > .class-toggler:after {\n @include icon-right;\n }\n & > a > .icon-folder:before {\n @include icon-folder;\n }\n & > ul {\n display: none;\n }\n }\n }\n &.instance {\n & > a > [class^=\"icon-\"], & > a > [class*=\" icon-\"] {\n color: $info;\n margin-right: 4px;\n margin-left: $actionWidth;\n @include font-size(16);\n }\n &:hover {\n background-color: $uiSelectableHoverBg;\n color : $textColor;\n @include transition(all, 200ms, linear);\n }\n &.selected {\n background-color: $uiSelectableSelectedBg;\n & > a, & > a > [class^=\"icon-\"], & > a > [class*=\" icon-\"] {\n color: $textHighlight;\n }\n @include transition(all, 200ms, linear);\n\n &:hover {\n background-color: $uiSelectableSelectedHoverBg;\n @include transition(all, 200ms, linear);\n }\n .clickable:hover:before {\n background-color: whiten($uiSelectableSelectedHoverBg, .2);\n }\n }\n }\n & > a > .selector {\n display: none;\n position: absolute;\n top: 0;\n right: 8px;\n line-height: $nodeHeight;\n height: $nodeHeight;\n width: $actionWidth;\n text-align:center;\n\n &:after {\n @include transition(all, 200ms, linear);\n @include tao-icon-setup;\n @include icon-checkbox;\n @include font-size(15);\n color: $info;\n line-height: $nodeHeight;\n position: relative;\n }\n }\n &.selected > a > .selector:after {\n @include icon-checkbox-checked;\n }\n &.selected > a > .selector:after, &.selected > a:hover > .selector:after {\n color: $textHighlight;\n }\n &[data-access=denied] > a, &[data-access=partial] > a {\n [class^=\"icon-\"], [class*=\" icon-\"] {\n position: relative;\n &:after {\n @include icon-lock;\n color: #555;\n position: absolute;\n left: 7px;\n top: 6px;\n }\n }\n }\n &[data-access=denied] {\n color: $uiClickableActiveBg;\n background-color: $textHighlight;\n &:hover, &:hover > a, & > a, [class^=\"icon-\"]:before, [class*=\" icon-\"]:before {\n cursor: auto;\n background-color: $textHighlight;\n color: $uiClickableActiveBg !important;\n }\n }\n a:hover {\n text-decoration: none;\n }\n }\n }\n}\n",".filters {\n position: relative;\n height: 100%;\n opacity : 0;\n &.rendered {\n opacity: 1;\n @include transition(opacity, 300ms, linear);\n }\n\n .ui-generis-form {\n margin: 0;\n padding: 10px;\n width: 100%;\n background-color: $uiClickableDefaultBg;\n border: none;\n h2 {\n margin: 0;\n }\n .left {\n width: 100%;\n }\n .toolbar {\n margin: 0;\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../scss/inc/_functions.scss","../../../scss/inc/fonts/_tao-icon-vars.scss","../scss/selector.scss%23sass","../scss/selector.scss","../../../scss/inc/_colors.scss","../scss/_resource-list.scss","../scss/_resource-tree.scss","../scss/_filters.scss"],"names":[],"mappings":"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","file":"selector.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: calc(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: calc((($gridPx - ($numCols * $gutter)) / $numCols));\n $spanPx: $rawSpanPx * $span + (($span - 1) * $gutter);\n $spanPercent: widthPerc($spanPx, $gridPx);\n $marginPercent: widthPerc($gutter, $gridPx);\n margin-inline-start: $marginPercent;\n inline-size: $spanPercent;\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 } @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 @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 } @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 } @else {\n @include vendor-prefix(flex, 0 0 $width, property, (-ms-, -webkit-, ''));\n }\n}\n\n@mixin box-shadow($horiz: 1px, $vert: 1px, $blur: 2px, $spread: 0, $color: rgba(0, 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 calc(($colWidth * 100 / $context) * 1%);\n}\n\n@function remDist($fontSizePx) {\n @return calc(($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: calc(($remPx) * 1px) !important;\n font-size: calc(($remPx / 10) * 1rem) !important;\n } @else {\n font-size: calc(($remPx) * 1px);\n font-size: calc(($remPx / 10) * 1rem);\n }\n}\n\n@mixin keyframes($name) {\n @-o-keyframes #{$name} {\n @content;\n }\n @-moz-keyframes #{$name} {\n @content;\n }\n @-webkit-keyframes #{$name} {\n @content;\n }\n @keyframes #{$name} {\n @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 @include keyframes(fade) {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\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\n/*\n * Every style defined here must be mirrored with `writing-mode-horizontal-tb` mixin.\n Because writing-mode can be defined on 2 levels: a) item, b) text block or interaction;\n so if there's a horizontal block inside vertical item, vertical styles should *not* be used for it.\n */\n@mixin writing-mode-vertical-rl {\n @at-root {\n #{selector-replace(&, $mainContainer, $mainContainer + \" .writing-mode-vertical-rl\")} {\n @content;\n }\n }\n}\n@mixin writing-mode-horizontal-tb {\n & {\n @content;\n }\n @at-root {\n #{selector-replace(&, $mainContainer, $mainContainer + \" .writing-mode-vertical-rl .writing-mode-horizontal-tb\")} {\n @content;\n }\n }\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-restricted { content: \"\\e92c\"; }\n@mixin icon-blocked { content: \"\\e92d\"; }\n@mixin icon-copy { content: \"\\e92b\"; }\n@mixin icon-align-center { content: \"\\e92a\"; }\n@mixin icon-multiple-magicwand { content: \"\\e929\"; }\n@mixin icon-sd-import { content: \"\\e91f\"; }\n@mixin icon-sd-export { content: \"\\e924\"; }\n@mixin icon-browse { content: \"\\e925\"; }\n@mixin icon-minus { content: \"\\e926\"; }\n@mixin icon-plus { content: \"\\e927\"; }\n@mixin icon-sd-save { content: \"\\e928\"; }\n@mixin icon-back-button { content: \"\\e91e\"; }\n@mixin icon-japan-incorrect { content: \"\\e91b\"; }\n@mixin icon-japan-correct { content: \"\\e91c\"; }\n@mixin icon-japan-partial { content: \"\\e91d\"; }\n@mixin icon-score-partial { content: \"\\e91a\"; }\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-duplicate { 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","@import \"inc/bootstrap\";\n\n@mixin resource-selector-actions {\n display: inline-block;\n width: 40px;\n height: 40px;\n padding: 10px 0 0 12px;\n color: $textColor;\n border-left: solid 1px $uiGeneralContentBg;\n text-shadow: 0 0 0 transparent;\n text-decoration: none;\n\n &:hover, &.active {\n color: $uiClickableHoverBg;\n @include transition(color, 200ms, linear);\n }\n}\n\n.resource-selector{\n position: relative;\n height: 100%;\n\n @include flex-container(nowrap, column);\n opacity: 0;\n\n\n background-color: $uiClickableDefaultBg;\n @include simple-border;\n\n &.rendered {\n opacity: 1;\n @include transition(opacity, 300ms, linear);\n }\n\n @import \"resource-list\";\n @import \"resource-tree\";\n @import \"filters\";\n\n nav {\n height: 40px;\n @include vendor-prefix(flex, 0 1 40px, property, (-ms-, -webkit-, ''));\n border-top: solid 1px $uiGeneralContentBorder;\n }\n\n .context {\n @include flex-container(nowrap, row);\n padding-right: 16px;\n\n .class-context {\n @include simple-flex-box;\n overflow : hidden;\n\n .class-selector{\n position: static;\n .options {\n max-height: calc(100% - 120px);\n &.folded {\n max-height: 0;\n }\n }\n }\n }\n\n & > a {\n @include resource-selector-actions;\n }\n }\n\n .selection {\n\n @include flex-container(nowrap, row);\n padding-right: 16px;\n\n .selection-control {\n\n @include vendor-prefix(flex, 0 0 80px, property, (-ms-, -webkit-, ''));\n\n & > label {\n @include resource-selector-actions;\n width: 36px;\n padding: 10px 0 0 8px;\n margin: 0;\n }\n & > a {\n @include resource-selector-actions;\n width: 38px;\n }\n .selection-toggle .icon-multi-select:before {\n @include font-size(16);\n }\n .selection-toggle.hidden{\n display: inline-block !important;\n visibility: hidden;\n }\n }\n .search {\n @include simple-flex-box;\n position: relative;\n\n padding : 6px 6px 6px 5px;\n\n &:before {\n @include tao-icon-setup;\n @include icon-find;\n position: absolute;\n left: 12px;\n top: 12px;\n opacity: .4;\n }\n input {\n @include border-radius(2);\n max-width: inherit;\n width: 100%;\n padding: 4px 25px;\n }\n\n & > a.filters-opener {\n position: absolute;\n right: 12px;\n top: 10px;\n\n @include font-size(16);\n text-decoration: none;\n }\n }\n .filters-container {\n position: absolute;\n width: 100%;\n background-color: $uiClickableDefaultBg;\n border: solid 1px $uiGeneralContentBorder;\n @include border-radius-bottom(3);\n @include box-shadow;\n left: 0;\n top: 80px;\n overflow-y: auto;\n z-index: 100;\n max-height: calc(100% - 110px);\n @include transition(max-height, 300ms, ease);\n\n &.folded {\n overflow: hidden;\n max-height: 0;\n border-width: 0;\n @include transition(max-height, 300ms, ease);\n }\n }\n }\n\n main {\n @include simple-flex-box;\n\n min-height: 150px;\n\n border-top: solid 1px $uiGeneralContentBorder;\n background-color: $uiGeneralContentBg;\n height: 100%;\n overflow-y: scroll;\n\n .no-results {\n display:inline-block;\n width: 100%;\n text-align:center;\n margin: 10px auto;\n opacity: .75;\n }\n\n .more {\n height: 45px;\n padding: 10px;\n }\n\n &.loading .more {\n opacity: 0.65;\n cursor : inherit;\n }\n }\n\n footer {\n height: 30px;\n @include vendor-prefix(flex, 0 1 30px, property, (-ms-, -webkit-, ''));\n border-top: solid 1px $uiGeneralContentBorder;\n\n background-color: $uiClickableDefaultBg;\n text-align: center;\n padding: 5px;\n }\n}\n","@import \"inc/bootstrap\";\n\n@mixin resource-selector-actions {\n display: inline-block;\n width: 40px;\n height: 40px;\n padding: 10px 0 0 12px;\n color: $textColor;\n border-left: solid 1px $uiGeneralContentBg;\n text-shadow: 0 0 0 transparent;\n text-decoration: none;\n\n &:hover, &.active {\n color: $uiClickableHoverBg;\n @include transition(color, 200ms, linear);\n }\n}\n\n.resource-selector{\n position: relative;\n height: 100%;\n\n @include flex-container(nowrap, column);\n opacity: 0;\n\n\n background-color: $uiClickableDefaultBg;\n @include simple-border;\n\n &.rendered {\n opacity: 1;\n @include transition(opacity, 300ms, linear);\n }\n\n @import \"resource-list\";\n @import \"resource-tree\";\n @import \"filters\";\n\n nav {\n height: 40px;\n @include vendor-prefix(flex, 0 1 40px, property, (-ms-, -webkit-, ''));\n border-top: solid 1px $uiGeneralContentBorder;\n }\n\n .context {\n @include flex-container(nowrap, row);\n padding-right: 16px;\n\n .class-context {\n @include simple-flex-box;\n overflow : hidden;\n\n .class-selector{\n position: static;\n .options {\n max-height: calc(100% - 120px);\n &.folded {\n max-height: 0;\n }\n }\n }\n }\n\n & > a {\n @include resource-selector-actions;\n }\n }\n\n .selection {\n\n @include flex-container(nowrap, row);\n padding-right: 16px;\n\n .selection-control {\n\n @include vendor-prefix(flex, 0 0 80px, property, (-ms-, -webkit-, ''));\n\n & > label {\n @include resource-selector-actions;\n width: 36px;\n padding: 10px 0 0 8px;\n margin: 0;\n }\n & > a {\n @include resource-selector-actions;\n width: 38px;\n }\n .selection-toggle .icon-multi-select:before {\n @include font-size(16);\n }\n .selection-toggle.hidden{\n display: inline-block !important;\n visibility: hidden;\n }\n }\n .search {\n @include simple-flex-box;\n position: relative;\n\n padding : 6px 6px 6px 5px;\n\n &:before {\n @include tao-icon-setup;\n @include icon-find;\n position: absolute;\n left: 12px;\n top: 12px;\n opacity: .4;\n }\n input {\n @include border-radius(2);\n max-width: inherit;\n width: 100%;\n padding: 4px 25px;\n }\n\n & > a.filters-opener {\n position: absolute;\n right: 12px;\n top: 10px;\n\n @include font-size(16);\n text-decoration: none;\n }\n }\n .filters-container {\n position: absolute;\n width: 100%;\n background-color: $uiClickableDefaultBg;\n border: solid 1px $uiGeneralContentBorder;\n @include border-radius-bottom(3);\n @include box-shadow;\n left: 0;\n top: 80px;\n overflow-y: auto;\n z-index: 100;\n max-height: calc(100% - 110px);\n @include transition(max-height, 300ms, ease);\n\n &.folded {\n overflow: hidden;\n max-height: 0;\n border-width: 0;\n @include transition(max-height, 300ms, ease);\n }\n }\n }\n\n main {\n @include simple-flex-box;\n\n min-height: 150px;\n\n border-top: solid 1px $uiGeneralContentBorder;\n background-color: $uiGeneralContentBg;\n height: 100%;\n overflow-y: scroll;\n\n .no-results {\n display:inline-block;\n width: 100%;\n text-align:center;\n margin: 10px auto;\n opacity: .75;\n }\n\n .more {\n height: 45px;\n padding: 10px;\n }\n\n &.loading .more {\n opacity: 0.65;\n cursor : inherit;\n }\n }\n\n footer {\n height: 30px;\n @include vendor-prefix(flex, 0 1 30px, property, (-ms-, -webkit-, ''));\n border-top: solid 1px $uiGeneralContentBorder;\n\n background-color: $uiClickableDefaultBg;\n text-align: center;\n padding: 5px;\n }\n}\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$colorBrand: #266d9c;\n$colorBrandLight: #e4ecef;\n$colorGsDark: #121212; //color ported from nextgen TAO design system\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",".resource-list {\n position: relative;\n height: 100%;\n\n opacity : 0;\n &.rendered {\n opacity: 1;\n @include transition(opacity, 300ms, linear);\n }\n\n &.multiple ul li a:after{\n display: block;\n @include transition(all, 200ms, linear);\n }\n\n &.multiple ul li[data-access=\"denied\"] a:after {\n display: none;\n }\n\n ul {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n position: relative;\n height: 40px;\n padding: 10px;\n border-bottom: solid 1px $uiGeneralContentBorder;\n\n @include transition(background-color, 200ms, linear);\n\n a {\n @include transition(color, 200ms, linear);\n color: $textColor;\n display: inline-block;\n width: 100%;\n padding-right: 25px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &:after {\n @include tao-icon-setup;\n @include icon-checkbox;\n color: $info;\n position: absolute;\n right: 17px;\n top: 12px;\n display: none;\n }\n &:hover {\n text-decoration: none;\n }\n\n & > span {\n color: $info;\n margin-right: 4px;\n @include font-size(16);\n vertical-align: top;\n }\n }\n\n &.selected, &:hover {\n background-color: $uiClickableHoverBg;\n cursor: pointer;\n @include transition(background-color, 200ms, linear);\n a {\n color: $textHighlight;\n @include transition(color, 200ms, linear);\n\n &:after {\n color: $textHighlight;\n }\n & > span {\n color: $textHighlight;\n }\n }\n }\n &.selected a:after {\n @include icon-checkbox-checked;\n }\n\n &[data-access=denied] > a, &[data-access=partial] > a {\n [class^=\"icon-\"], [class*=\" icon-\"] {\n position: relative;\n &:after {\n @include icon-lock;\n color: #555;\n position: absolute;\n left: 7px;\n top: 6px;\n }\n }\n }\n &[data-access=denied] {\n color: $uiClickableActiveBg;\n background-color: $textHighlight;\n &:hover, &:hover > a, & > a, [class^=\"icon-\"]:before, [class*=\" icon-\"]:before {\n cursor: auto;\n background-color: $textHighlight;\n color: $uiClickableActiveBg !important;\n }\n }\n }\n }\n}\n",".resource-tree{\n $nodeHeight: 40px;\n $actionWidth: 25px;\n $hoverWidth: $nodeHeight - 15px;\n\n position: relative;\n height: 100%;\n opacity : 0;\n &.rendered {\n opacity: 1;\n @include transition(opacity, 300ms, linear);\n }\n\n &.multiple ul li.selectable {\n & > a > .selector {\n display: inline-block;\n }\n }\n\n &.multiple ul li.instance[data-access=\"denied\"] a .selector {\n display: none;\n }\n\n .clickable {\n &:hover {\n &:before {\n content: \" \";\n display: inline-block;\n position: absolute;\n width: $hoverWidth;\n height: $hoverWidth;\n top: 7.5px;\n left: 0;\n border-radius: 50%;\n background-color: blacken($uiSelectableHoverBg, .2);\n opacity: .5;\n }\n }\n &:focus {\n outline: 0 none;\n }\n }\n\n ul {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n position: relative;\n cursor: pointer;\n\n & > a {\n height: $nodeHeight;\n line-height: $nodeHeight;\n display: block;\n width: 100%;\n padding-right: 30px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n border-bottom: solid 1px $uiGeneralContentBorder;\n color : $textColor;\n }\n &.class {\n .class-toggler {\n display: inline-block;\n position: relative;\n width: $actionWidth;\n height: $nodeHeight;\n text-align: center;\n &:after {\n @include tao-icon-setup;\n @include icon-down;\n @include font-size(15);\n position: relative;\n }\n }\n &.empty .class-toggler{\n visibility: hidden;\n }\n & > a {\n & > .icon-folder:before {\n @include icon-folder-open;\n color: $warning;\n margin-right: 4px;\n }\n &:hover {\n background-color: $uiSelectableHoverBg;\n color : $textColor;\n @include transition(all, 200ms, linear);\n }\n }\n\n &.selected {\n & > a {\n background-color: $uiSelectableSelectedBg;\n color: $textHighlight;\n &:before, &:after {\n color: $textHighlight;\n }\n @include transition(all, 200ms, linear);\n\n &:hover {\n background-color: $uiSelectableSelectedHoverBg;\n @include transition(all, 200ms, linear);\n }\n .clickable:hover:before {\n background-color: whiten($uiSelectableSelectedHoverBg, .2);\n }\n }\n }\n &.closed {\n & > a > .class-toggler:after {\n @include icon-right;\n }\n & > a > .icon-folder:before {\n @include icon-folder;\n }\n & > ul {\n display: none;\n }\n }\n }\n &.instance {\n & > a > [class^=\"icon-\"], & > a > [class*=\" icon-\"] {\n color: $info;\n margin-right: 4px;\n margin-left: $actionWidth;\n @include font-size(16);\n }\n &:hover {\n background-color: $uiSelectableHoverBg;\n color : $textColor;\n @include transition(all, 200ms, linear);\n }\n &.selected {\n background-color: $uiSelectableSelectedBg;\n & > a, & > a > [class^=\"icon-\"], & > a > [class*=\" icon-\"] {\n color: $textHighlight;\n }\n @include transition(all, 200ms, linear);\n\n &:hover {\n background-color: $uiSelectableSelectedHoverBg;\n @include transition(all, 200ms, linear);\n }\n .clickable:hover:before {\n background-color: whiten($uiSelectableSelectedHoverBg, .2);\n }\n }\n }\n & > a > .selector {\n display: none;\n position: absolute;\n top: 0;\n right: 8px;\n line-height: $nodeHeight;\n height: $nodeHeight;\n width: $actionWidth;\n text-align:center;\n\n &:after {\n @include transition(all, 200ms, linear);\n @include tao-icon-setup;\n @include icon-checkbox;\n @include font-size(15);\n color: $info;\n line-height: $nodeHeight;\n position: relative;\n }\n }\n &.selected > a > .selector:after {\n @include icon-checkbox-checked;\n }\n &.selected > a > .selector:after, &.selected > a:hover > .selector:after {\n color: $textHighlight;\n }\n &[data-access=denied] > a, &[data-access=partial] > a {\n [class^=\"icon-\"], [class*=\" icon-\"] {\n position: relative;\n &:after {\n @include icon-lock;\n color: #555;\n position: absolute;\n left: 7px;\n top: 6px;\n }\n }\n }\n &[data-access=denied] {\n color: $uiClickableActiveBg;\n background-color: $textHighlight;\n &:hover, &:hover > a, & > a, [class^=\"icon-\"]:before, [class*=\" icon-\"]:before {\n cursor: auto;\n background-color: $textHighlight;\n color: $uiClickableActiveBg !important;\n }\n }\n a:hover {\n text-decoration: none;\n }\n }\n }\n}\n",".filters {\n position: relative;\n height: 100%;\n opacity : 0;\n &.rendered {\n opacity: 1;\n @include transition(opacity, 300ms, linear);\n }\n\n .ui-generis-form {\n margin: 0;\n padding: 10px;\n width: 100%;\n background-color: $uiClickableDefaultBg;\n border: none;\n h2 {\n margin: 0;\n }\n .left {\n width: 100%;\n }\n .toolbar {\n margin: 0;\n }\n }\n}\n"]}
@@ -40,7 +40,8 @@ import {
40
40
  buildSearchRequestParams,
41
41
  canSubmitScopedAssetSearch,
42
42
  isBrowseShapedSearchPayload,
43
- normalizeSearchResponse
43
+ normalizeSearchResponse,
44
+ resolveServiceUnavailableSearchMessage
44
45
  } from 'ui/resourcemgr/assetSearchContract';
45
46
  import 'ui/searchModal/css/advancedSearch.css';
46
47
 
@@ -99,7 +100,6 @@ export default function assetSearch(options) {
99
100
  const $error = $('.asset-search-error', $fileSelector);
100
101
  const $errorMessage = $('.asset-search-error-message', $error);
101
102
  const $retry = $('.asset-search-retry', $error);
102
- const $resultsRegion = $('.files-wrapper', $fileSelector);
103
103
  const $paginationContainer = $('.pagination-bottom', $container);
104
104
  const $uploadSwitcher = $('.upload-switcher', $fileSelector);
105
105
  const $modalTitle = $container.closest('.resourcemgr').find('> h2').first();
@@ -177,8 +177,9 @@ export default function assetSearch(options) {
177
177
  * Keeps the previous display name until a real label arrives (avoids URI flash).
178
178
  * @param {string} [folderLabel]
179
179
  * @param {Object} [content]
180
+ * @param {boolean} [includesSubfolders]
180
181
  */
181
- function updateScopeDisplay(folderLabel, content) {
182
+ function updateScopeDisplay(folderLabel, content, includesSubfolders) {
182
183
  if (isFolderDisplayLabel(folderLabel)) {
183
184
  scopeLabel = String(folderLabel).trim();
184
185
  }
@@ -189,7 +190,9 @@ export default function assetSearch(options) {
189
190
  } else {
190
191
  $scopeName.removeAttr('title');
191
192
  }
192
- if (folderHasSubfolders(content)) {
193
+ const showSubfolders =
194
+ includesSubfolders !== false && folderHasSubfolders(content);
195
+ if (showSubfolders) {
193
196
  $scopeSubfolders.removeClass('hidden').removeAttr('hidden');
194
197
  } else {
195
198
  $scopeSubfolders.addClass('hidden').attr('hidden', 'hidden');
@@ -500,6 +503,7 @@ export default function assetSearch(options) {
500
503
  * Detach asset-search handlers and destroy Advanced Search.
501
504
  */
502
505
  function teardown() {
506
+ setResultsTableLoading(false);
503
507
  requestSeq += 1;
504
508
  searchMode = false;
505
509
  $fileSelector.removeClass('search-mode');
@@ -637,6 +641,7 @@ export default function assetSearch(options) {
637
641
  if ($modalTitle.length && browseModalTitle) {
638
642
  $modalTitle.text(browseModalTitle);
639
643
  }
644
+ setResultsTableLoading(false);
640
645
  hideLoading();
641
646
  hideError();
642
647
  $paginationContainer.empty();
@@ -648,9 +653,13 @@ export default function assetSearch(options) {
648
653
  }
649
654
 
650
655
  /**
651
- * Execute the scoped search request.
652
- * @param {{quiet?: boolean}} [runOptions]
656
+ * Toggle the file-table loading overlay during search (including pagination).
657
+ * @param {Boolean} loading
653
658
  */
659
+ function setResultsTableLoading(loading) {
660
+ $container.trigger(`searchtableloading.${ns}`, [!!loading]);
661
+ }
662
+
654
663
  function runSearch(runOptions) {
655
664
  if (!hasActiveSearch()) {
656
665
  exitSearchMode();
@@ -659,9 +668,8 @@ export default function assetSearch(options) {
659
668
 
660
669
  const quiet = Boolean(runOptions && runOptions.quiet);
661
670
  const seq = ++requestSeq;
662
- if (quiet) {
663
- $resultsRegion.attr('aria-busy', 'true');
664
- } else {
671
+ setResultsTableLoading(true);
672
+ if (!quiet) {
665
673
  showLoading();
666
674
  }
667
675
  hideError();
@@ -688,9 +696,8 @@ export default function assetSearch(options) {
688
696
  if (seq !== requestSeq) {
689
697
  return;
690
698
  }
691
- if (quiet) {
692
- $resultsRegion.attr('aria-busy', 'false');
693
- } else {
699
+ setResultsTableLoading(false);
700
+ if (!quiet) {
694
701
  hideLoading();
695
702
  }
696
703
  let normalized = normalizeSearchResponse(response);
@@ -719,6 +726,7 @@ export default function assetSearch(options) {
719
726
  total = normalized.total;
720
727
  page = normalized.page;
721
728
  pageSize = normalized.pageSize;
729
+ updateScopeDisplay(scopeLabel, null, normalized.includesSubfolders);
722
730
 
723
731
  let emptyMessage = '';
724
732
  if (normalized.total === 0) {
@@ -749,19 +757,21 @@ export default function assetSearch(options) {
749
757
 
750
758
  renderPagination();
751
759
  })
752
- .fail(function () {
760
+ .fail(function (jqXHR) {
753
761
  if (seq !== requestSeq) {
754
762
  return;
755
763
  }
756
- if (quiet) {
757
- $resultsRegion.attr('aria-busy', 'false');
758
- } else {
764
+ setResultsTableLoading(false);
765
+ if (!quiet) {
759
766
  hideLoading();
760
767
  }
761
768
  page = 1;
762
769
  total = 0;
763
770
  $paginationContainer.empty();
764
- const message = __('Unable to search assets. Please try again.');
771
+ const message = resolveServiceUnavailableSearchMessage(
772
+ jqXHR,
773
+ __('Unable to search assets. Please try again.')
774
+ );
765
775
  showError(message);
766
776
  $container.trigger(`searchresults.${ns}`, [
767
777
  {
@@ -813,7 +823,6 @@ export default function assetSearch(options) {
813
823
  $searchButton.prop('disabled', true).addClass('is-searching').attr('aria-busy', 'true');
814
824
  $searchButtonSpinner.removeClass('hidden');
815
825
  $searchButtonLabel.text(__('Searching'));
816
- $resultsRegion.attr('aria-busy', 'true');
817
826
  }
818
827
 
819
828
  /**
@@ -824,7 +833,6 @@ export default function assetSearch(options) {
824
833
  $searchButton.removeClass('is-searching').attr('aria-busy', 'false');
825
834
  $searchButtonSpinner.addClass('hidden');
826
835
  $searchButtonLabel.text(__('Search'));
827
- $resultsRegion.attr('aria-busy', 'false');
828
836
  updateSearchActionState();
829
837
  }
830
838
 
@@ -54,6 +54,14 @@ export const DEFAULT_PAGE_SIZE = 11;
54
54
  */
55
55
  export const MIN_TEXT_QUERY_LENGTH = 3;
56
56
 
57
+ /**
58
+ * @param {*} entry
59
+ * @returns {boolean}
60
+ */
61
+ function isNonemptyCriterionValue(entry) {
62
+ return entry !== '' && entry !== null && typeof entry !== 'undefined';
63
+ }
64
+
57
65
  /**
58
66
  * Whether a rendered metadata criterion has a usable value.
59
67
  * @param {Object} criterion
@@ -70,9 +78,7 @@ export function isMetadataCriterionComplete(criterion) {
70
78
  if (!Array.isArray(criterion.value)) {
71
79
  return false;
72
80
  }
73
- return criterion.value.some(function (entry) {
74
- return entry !== '' && entry !== null && typeof entry !== 'undefined';
75
- });
81
+ return criterion.value.some(isNonemptyCriterionValue);
76
82
  }
77
83
  return true;
78
84
  }
@@ -190,10 +196,8 @@ export function buildMetadataFromCriteriaState(criteriaState) {
190
196
  return;
191
197
  }
192
198
  if (criterion.type === 'list' && Array.isArray(criterion.value)) {
193
- const first = criterion.value.find(function (entry) {
194
- return entry !== '' && entry !== null && typeof entry !== 'undefined';
195
- });
196
- if (typeof first !== 'undefined' && first !== null && first !== '') {
199
+ const first = criterion.value.find(isNonemptyCriterionValue);
200
+ if (isNonemptyCriterionValue(first)) {
197
201
  metadata[criterion.propertyUri] = String(first);
198
202
  }
199
203
  }
@@ -220,6 +224,31 @@ function normalizeMetadataMap(metadata) {
220
224
  return normalized;
221
225
  }
222
226
 
227
+ /**
228
+ * @param {number} [requestedPageSize]
229
+ * @param {number} [normalizedPageSize]
230
+ * @returns {number}
231
+ */
232
+ function resolveSearchPageSize(requestedPageSize, normalizedPageSize) {
233
+ const requested = Number(requestedPageSize);
234
+ if (requested > 0) {
235
+ return requested;
236
+ }
237
+ const fallback = Number(normalizedPageSize);
238
+ if (fallback > 0) {
239
+ return fallback;
240
+ }
241
+ return DEFAULT_PAGE_SIZE;
242
+ }
243
+
244
+ /**
245
+ * @param {{field: string, direction: string}} [sort]
246
+ * @returns {{field: string, direction: string}}
247
+ */
248
+ function mergeSortWithDefaults(sort) {
249
+ return Object.assign({}, DEFAULT_SORT, sort || {});
250
+ }
251
+
223
252
  /**
224
253
  * Normalize a search service payload into a stable picker shape.
225
254
  *
@@ -250,10 +279,37 @@ export function normalizeSearchResponse(payload) {
250
279
  items,
251
280
  total,
252
281
  page: Number.isFinite(page) && page > 0 ? page : 1,
253
- pageSize: Number.isFinite(pageSize) && pageSize > 0 ? pageSize : DEFAULT_PAGE_SIZE
282
+ pageSize: Number.isFinite(pageSize) && pageSize > 0 ? pageSize : DEFAULT_PAGE_SIZE,
283
+ includesSubfolders: body.includesSubfolders !== false
254
284
  };
255
285
  }
256
286
 
287
+ /**
288
+ * Prefer a server-provided 503 message when the search service is unavailable.
289
+ *
290
+ * @param {*} jqXHR
291
+ * @param {string} fallbackMessage
292
+ * @returns {string}
293
+ */
294
+ export function resolveServiceUnavailableSearchMessage(jqXHR, fallbackMessage) {
295
+ if (!jqXHR || jqXHR.status !== 503) {
296
+ return fallbackMessage;
297
+ }
298
+ let body = jqXHR.responseJSON;
299
+ if (!body && jqXHR.responseText) {
300
+ try {
301
+ body =
302
+ typeof jqXHR.responseText === 'string' ? JSON.parse(jqXHR.responseText) : jqXHR.responseText;
303
+ } catch (err) {
304
+ body = null;
305
+ }
306
+ }
307
+ if (body && body.message) {
308
+ return body.message;
309
+ }
310
+ return fallbackMessage;
311
+ }
312
+
257
313
  /**
258
314
  * Browse (`ItemContent/files`) responses use `children` and ignore `query`.
259
315
  * Real search responses expose `items`.
@@ -281,11 +337,8 @@ export function isBrowseShapedSearchPayload(payload) {
281
337
  */
282
338
  export function applyLocalSearchFallback(normalized, options) {
283
339
  const metadata = normalizeMetadataMap(options && options.metadata);
340
+ const pageSize = resolveSearchPageSize(options && options.pageSize, normalized.pageSize);
284
341
  if (Object.keys(metadata).length) {
285
- const pageSize =
286
- Number(options && options.pageSize) > 0
287
- ? Number(options.pageSize)
288
- : normalized.pageSize || DEFAULT_PAGE_SIZE;
289
342
  return {
290
343
  items: [],
291
344
  total: 0,
@@ -298,11 +351,7 @@ export function applyLocalSearchFallback(normalized, options) {
298
351
  const query = String((options && options.query) || '')
299
352
  .trim()
300
353
  .toLowerCase();
301
- const sort = (options && options.sort) || DEFAULT_SORT;
302
- const pageSize =
303
- Number(options && options.pageSize) > 0
304
- ? Number(options.pageSize)
305
- : normalized.pageSize || DEFAULT_PAGE_SIZE;
354
+ const sort = mergeSortWithDefaults(options && options.sort);
306
355
  const page = Number(options && options.page) > 0 ? Number(options.page) : 1;
307
356
 
308
357
  let items = (normalized.items || []).filter(isSearchableAsset);
@@ -440,7 +489,7 @@ function matchesQueryTokens(haystackText, queryTokens) {
440
489
  * @returns {Array}
441
490
  */
442
491
  export function sortAssetItems(items, sort) {
443
- const resolved = Object.assign({}, DEFAULT_SORT, sort || {});
492
+ const resolved = mergeSortWithDefaults(sort);
444
493
  return (items || []).slice().sort(function (a, b) {
445
494
  const primary = compareSortValues(
446
495
  getSortValue(a, resolved.field),