965 Zeilen
26 KiB
Text
965 Zeilen
26 KiB
Text
|
/*******************************************************************************
|
||
|
* Common Styles for Fancytree Skins.
|
||
|
*
|
||
|
* This section is automatically generated from the `skin-common.less` template.
|
||
|
*
|
||
|
* Copyright (c) 2008-2021, Martin Wendt (https://wwWendt.de)
|
||
|
* Released under the MIT license
|
||
|
* https://github.com/mar10/fancytree/wiki/LicenseInfo
|
||
|
*
|
||
|
* @version 2.38.0
|
||
|
* @date 2021-02-09T20:03:49Z
|
||
|
******************************************************************************/
|
||
|
|
||
|
// Variables (defaults, may be overwritten by the including .less files)
|
||
|
@fancy-use-sprites: true; // false: suppress all background images (i.e. icons)
|
||
|
// @fancy-hide-connectors: true; // false: show vertical connector lines
|
||
|
|
||
|
@fancy-level-indent: 16px;
|
||
|
@fancy-line-height: 16px; // height of a nodes selection bar including borders
|
||
|
@fancy-node-v-spacing: 1px; // gap between two node borders
|
||
|
@fancy-icon-width: 16px;
|
||
|
@fancy-icon-height: 16px;
|
||
|
@fancy-icon-spacing: 3px; // margin between icon/icon or icon/title
|
||
|
@fancy-icon-ofs-top: 0px; // extra vertical offset for expander, checkbox and icon
|
||
|
@fancy-title-ofs-top: 0px; // extra vertical offset for title
|
||
|
@fancy-node-border-width: 1px;
|
||
|
@fancy-node-border-radius: 0px;
|
||
|
@fancy-node-outline-width: 1px;
|
||
|
|
||
|
// @fancy-line-ofs-top: (@fancy-line-height - @fancy-icon-height) / 2;
|
||
|
|
||
|
// webpack uses /dist/skin-common.less as root path
|
||
|
// grunt-less uses /dist/skin-Xxx/ui.fancyree.less as root path
|
||
|
// So we define our theme LESS files for webpack compatibility, i.e.
|
||
|
// define the image path n every main LESS file instead of here.
|
||
|
// Prefix may be set to "", "/", "./", or any other value
|
||
|
// Note: this variable must be defined by the main LESS files:
|
||
|
// @fancy-image-prefix: "";
|
||
|
|
||
|
// Use 'url(...)' to link to the throbber image, or
|
||
|
// use data-uri(...)' to inline the data in css instead:
|
||
|
// @fancy-loading-url: url("@{fancy-image-prefix}loading.gif");
|
||
|
@fancy-loading-url: data-uri("@{fancy-image-prefix}loading.gif");
|
||
|
|
||
|
// Set to `true` to use `data-uri(...)` instead of a `url(...)` link:
|
||
|
@fancy-inline-sprites: false;
|
||
|
|
||
|
@fancy-font-size: 10pt;
|
||
|
@fancy-font-family: tahoma, arial, helvetica;
|
||
|
@fancy-font-color: black;
|
||
|
@fancy-font-color-dimm: #c0c0c0;
|
||
|
@fancy-font-error-color: red;
|
||
|
|
||
|
//------------------------------------------------------------------------------
|
||
|
// Mixins
|
||
|
//------------------------------------------------------------------------------
|
||
|
.setBgPos(@x, @y, @cond:true) when (@cond) {
|
||
|
background-position: (@x * -@fancy-icon-width) (@y * -@fancy-icon-height);
|
||
|
}
|
||
|
.clearBgImage(@cond:true) when (@cond) {
|
||
|
background-image: none;
|
||
|
}
|
||
|
.setBgImageUrl(@url) when (@fancy-use-sprites) and not (@fancy-inline-sprites) {
|
||
|
background-image: url("@{fancy-image-prefix}@{url}");
|
||
|
}
|
||
|
.setBgImageUrl(@url) when (@fancy-use-sprites) and (@fancy-inline-sprites) {
|
||
|
background-image: data-uri("@{fancy-image-prefix}@{url}");
|
||
|
}
|
||
|
.useSprite(@x, @y) when (@fancy-use-sprites) {
|
||
|
.setBgPos(@x, @y);
|
||
|
}
|
||
|
.rounded-corners(@radius) {
|
||
|
-webkit-border-radius: @radius;
|
||
|
-moz-border-radius: @radius;
|
||
|
-ms-border-radius: @radius;
|
||
|
-o-border-radius: @radius;
|
||
|
border-radius: @radius;
|
||
|
}
|
||
|
.spanStyleMixin(@color, @bgcolor, @bordercolor) {
|
||
|
border-color: @bordercolor;
|
||
|
background: @bgcolor;
|
||
|
color: @color;
|
||
|
}
|
||
|
.spanStyleMixin(@color, @bgcolor, @bordercolor, @startColor, @stopColor) {
|
||
|
.spanStyleMixin(@color, @bgcolor, @bordercolor);
|
||
|
// @c-start: argb(@startColor);
|
||
|
// @c-end: argb(@stopColor);
|
||
|
background: -moz-linear-gradient(
|
||
|
top,
|
||
|
@startColor 0%,
|
||
|
@stopColor 100%
|
||
|
); // FF3.6+
|
||
|
background: -webkit-gradient(
|
||
|
linear,
|
||
|
left top,
|
||
|
left bottom,
|
||
|
color-stop(0%, @startColor),
|
||
|
color-stop(100%, @stopColor)
|
||
|
); // Chrome,Safari4+
|
||
|
background: -webkit-linear-gradient(
|
||
|
top,
|
||
|
@startColor 0%,
|
||
|
@stopColor 100%
|
||
|
); // Chrome10+,Safari5.1+
|
||
|
background: -o-linear-gradient(
|
||
|
top,
|
||
|
@startColor 0%,
|
||
|
@stopColor 100%
|
||
|
); // Opera 11.10+
|
||
|
background: -ms-linear-gradient(
|
||
|
top,
|
||
|
@startColor 0%,
|
||
|
@stopColor 100%
|
||
|
); // IE10+
|
||
|
background: linear-gradient(
|
||
|
to bottom,
|
||
|
@startColor 0%,
|
||
|
@stopColor 100%
|
||
|
); // W3C
|
||
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='@{startColor}', endColorstr='@{stopColor}',GradientType=0 ); // IE6-9
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* Helpers
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
// Redefine, in case jQuery-UI is not included
|
||
|
// .ui-helper-hidden,
|
||
|
.fancytree-helper-hidden {
|
||
|
display: none;
|
||
|
}
|
||
|
.fancytree-helper-indeterminate-cb {
|
||
|
// tri-state checkbox
|
||
|
color: #777;
|
||
|
}
|
||
|
.fancytree-helper-disabled {
|
||
|
color: @fancy-font-color-dimm;
|
||
|
}
|
||
|
|
||
|
/* Helper to allow spinning loader icon with glyph-, ligature-, and SVG-icons. */
|
||
|
.fancytree-helper-spin {
|
||
|
-webkit-animation: spin 1000ms infinite linear;
|
||
|
animation: spin 1000ms infinite linear;
|
||
|
}
|
||
|
@-webkit-keyframes spin {
|
||
|
0% {
|
||
|
-webkit-transform: rotate(0deg);
|
||
|
transform: rotate(0deg);
|
||
|
}
|
||
|
100% {
|
||
|
-webkit-transform: rotate(359deg);
|
||
|
transform: rotate(359deg);
|
||
|
}
|
||
|
}
|
||
|
@keyframes spin {
|
||
|
0% {
|
||
|
-webkit-transform: rotate(0deg);
|
||
|
transform: rotate(0deg);
|
||
|
}
|
||
|
100% {
|
||
|
-webkit-transform: rotate(359deg);
|
||
|
transform: rotate(359deg);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* Container and UL / LI
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
|
||
|
ul.fancytree-container {
|
||
|
font-family: @fancy-font-family;
|
||
|
font-size: @fancy-font-size;
|
||
|
white-space: nowrap;
|
||
|
padding: 3px;
|
||
|
margin: 0; // DT issue 201
|
||
|
background-color: white;
|
||
|
border: 1px dotted gray;
|
||
|
// overflow: auto; // ext-dnd5: otherwise this is always the scroll parent
|
||
|
// height: 100%; // DT issue 263, 470
|
||
|
min-height: 0%; // #192
|
||
|
position: relative; // #235
|
||
|
ul {
|
||
|
padding: 0 0 0 @fancy-level-indent;
|
||
|
margin: 0;
|
||
|
}
|
||
|
ul > li:before {
|
||
|
// #538
|
||
|
content: none;
|
||
|
}
|
||
|
li {
|
||
|
list-style-image: none;
|
||
|
list-style-position: outside;
|
||
|
list-style-type: none;
|
||
|
-moz-background-clip: border;
|
||
|
-moz-background-inline-policy: continuous;
|
||
|
-moz-background-origin: padding;
|
||
|
background-attachment: scroll;
|
||
|
background-color: transparent;
|
||
|
.setBgPos(0, 0);
|
||
|
background-repeat: repeat-y;
|
||
|
background-image: none; // no v-lines
|
||
|
|
||
|
margin: 0;
|
||
|
// padding: 1px 0 0 0; // issue #246
|
||
|
}
|
||
|
// Suppress lines for last child node
|
||
|
li.fancytree-lastsib {
|
||
|
background-image: none;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Style, when control is disabled
|
||
|
.ui-fancytree-disabled ul.fancytree-container {
|
||
|
opacity: 0.5;
|
||
|
// filter: alpha(opacity=50); // Yields a css warning
|
||
|
background-color: silver;
|
||
|
}
|
||
|
|
||
|
ul.fancytree-connectors.fancytree-container {
|
||
|
li {
|
||
|
// Use 'data-uri(...)' to embed the image into CSS instead of linking to 'loading.gif':
|
||
|
background-image: data-uri("@{fancy-image-prefix}vline.gif");
|
||
|
background-position: 0 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Suppress lines for last child node
|
||
|
ul.fancytree-container li.fancytree-lastsib,
|
||
|
// Suppress lines if level is fixed expanded (option minExpandLevel)
|
||
|
ul.fancytree-no-connector > li {
|
||
|
background-image: none;
|
||
|
}
|
||
|
|
||
|
// Fix jQuery UI 'blind' animation for jQuery UI (#717)
|
||
|
li.fancytree-animating {
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* Common icon definitions
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
|
||
|
span.fancytree-empty,
|
||
|
span.fancytree-vline,
|
||
|
span.fancytree-expander,
|
||
|
span.fancytree-icon,
|
||
|
span.fancytree-checkbox,
|
||
|
// span.fancytree-radio,
|
||
|
span.fancytree-drag-helper-img,
|
||
|
#fancytree-drop-marker {
|
||
|
width: @fancy-icon-width;
|
||
|
height: @fancy-icon-height;
|
||
|
// display: -moz-inline-box; // @ FF 1+2 removed for issue 221
|
||
|
// -moz-box-align: start; /* issue 221 */
|
||
|
display: inline-block; // Required to make a span sizeable
|
||
|
vertical-align: top;
|
||
|
background-repeat: no-repeat;
|
||
|
// background-position: left;
|
||
|
.setBgImageUrl("icons.gif");
|
||
|
.setBgPos(0, 0);
|
||
|
}
|
||
|
span.fancytree-icon,
|
||
|
span.fancytree-checkbox,
|
||
|
span.fancytree-expander,
|
||
|
// span.fancytree-radio,
|
||
|
span.fancytree-custom-icon {
|
||
|
margin-top: @fancy-icon-ofs-top;
|
||
|
}
|
||
|
/* Used by icon option: */
|
||
|
span.fancytree-custom-icon {
|
||
|
width: @fancy-icon-width;
|
||
|
height: @fancy-icon-height;
|
||
|
display: inline-block;
|
||
|
margin-left: @fancy-icon-spacing;
|
||
|
.setBgPos(0, 0);
|
||
|
}
|
||
|
/* Used by 'icon' node option: */
|
||
|
img.fancytree-icon {
|
||
|
width: @fancy-icon-width;
|
||
|
height: @fancy-icon-height;
|
||
|
margin-left: @fancy-icon-spacing;
|
||
|
margin-top: @fancy-icon-ofs-top;
|
||
|
vertical-align: top;
|
||
|
border-style: none;
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* Expander icon
|
||
|
*
|
||
|
* Note: IE6 doesn't correctly evaluate multiples class names,
|
||
|
* so we create combined class names that can be used in the CSS.
|
||
|
*
|
||
|
* Prefix: fancytree-exp-
|
||
|
* 1st character: 'e': expanded, 'c': collapsed, 'n': no children
|
||
|
* 2nd character (optional): 'd': lazy (Delayed)
|
||
|
* 3rd character (optional): 'l': Last sibling
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
|
||
|
span.fancytree-expander {
|
||
|
// .useSprite(0, 5);
|
||
|
cursor: pointer;
|
||
|
}
|
||
|
// span.fancytree-expander:hover {
|
||
|
// // .useSprite(1, 5);
|
||
|
// }
|
||
|
|
||
|
// --- End nodes (use connectors instead of expanders)
|
||
|
|
||
|
.fancytree-exp-n span.fancytree-expander,
|
||
|
.fancytree-exp-nl span.fancytree-expander {
|
||
|
// .clearBgImage( @fancy-hide-connectors );
|
||
|
background-image: none;
|
||
|
cursor: default;
|
||
|
}
|
||
|
.fancytree-connectors {
|
||
|
.fancytree-exp-n span.fancytree-expander,
|
||
|
.fancytree-exp-nl span.fancytree-expander {
|
||
|
.setBgImageUrl("icons.gif");
|
||
|
margin-top: 0;
|
||
|
}
|
||
|
.fancytree-exp-n span.fancytree-expander, // End-node, not last sibling
|
||
|
.fancytree-exp-n span.fancytree-expander:hover {
|
||
|
.useSprite(0, 4);
|
||
|
}
|
||
|
.fancytree-exp-nl span.fancytree-expander, // End-node, last sibling
|
||
|
.fancytree-exp-nl span.fancytree-expander:hover {
|
||
|
.useSprite(1, 4);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// --- Collapsed
|
||
|
|
||
|
.fancytree-exp-c span.fancytree-expander {
|
||
|
// Collapsed, not delayed, not last sibling
|
||
|
.useSprite(0, 5);
|
||
|
}
|
||
|
.fancytree-exp-c span.fancytree-expander:hover {
|
||
|
.useSprite(1, 5);
|
||
|
}
|
||
|
.fancytree-exp-cl span.fancytree-expander {
|
||
|
// Collapsed, not delayed, last sibling
|
||
|
.useSprite(0, 6);
|
||
|
}
|
||
|
.fancytree-exp-cl span.fancytree-expander:hover {
|
||
|
.useSprite(1, 6);
|
||
|
}
|
||
|
.fancytree-exp-cd span.fancytree-expander {
|
||
|
// Collapsed, delayed, not last sibling
|
||
|
.useSprite(4, 5);
|
||
|
}
|
||
|
.fancytree-exp-cd span.fancytree-expander:hover {
|
||
|
.useSprite(5, 5);
|
||
|
}
|
||
|
.fancytree-exp-cdl span.fancytree-expander {
|
||
|
// Collapsed, delayed, last sibling
|
||
|
.useSprite(4, 6);
|
||
|
}
|
||
|
.fancytree-exp-cdl span.fancytree-expander:hover {
|
||
|
.useSprite(5, 6);
|
||
|
}
|
||
|
|
||
|
// --- Expanded
|
||
|
|
||
|
.fancytree-exp-e span.fancytree-expander, // Expanded, not delayed, not last sibling
|
||
|
.fancytree-exp-ed span.fancytree-expander {
|
||
|
// Expanded, delayed, not last sibling
|
||
|
.useSprite(2, 5);
|
||
|
}
|
||
|
.fancytree-exp-e span.fancytree-expander:hover,
|
||
|
.fancytree-exp-ed span.fancytree-expander:hover {
|
||
|
.useSprite(3, 5);
|
||
|
}
|
||
|
.fancytree-exp-el span.fancytree-expander, // Expanded, not delayed, last sibling
|
||
|
.fancytree-exp-edl span.fancytree-expander {
|
||
|
// Expanded, delayed, last sibling
|
||
|
.useSprite(2, 6);
|
||
|
}
|
||
|
.fancytree-exp-el span.fancytree-expander:hover,
|
||
|
.fancytree-exp-edl span.fancytree-expander:hover {
|
||
|
.useSprite(3, 6);
|
||
|
}
|
||
|
|
||
|
/* Fade out expanders, when container is not hovered or active */
|
||
|
.fancytree-fade-expander {
|
||
|
span.fancytree-expander {
|
||
|
transition: opacity 1.5s;
|
||
|
opacity: 0;
|
||
|
}
|
||
|
&:hover span.fancytree-expander,
|
||
|
&.fancytree-treefocus span.fancytree-expander,
|
||
|
.fancytree-treefocus span.fancytree-expander,
|
||
|
[class*="fancytree-statusnode-"] span.fancytree-expander {
|
||
|
transition: opacity 0.6s;
|
||
|
opacity: 1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* Checkbox icon
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
|
||
|
span.fancytree-checkbox {
|
||
|
margin-left: @fancy-icon-spacing;
|
||
|
.useSprite(0, 2);
|
||
|
&:hover {
|
||
|
.useSprite(1, 2);
|
||
|
}
|
||
|
&.fancytree-radio {
|
||
|
.useSprite(0, 3);
|
||
|
}
|
||
|
&.fancytree-radio:hover {
|
||
|
.useSprite(1, 3);
|
||
|
}
|
||
|
}
|
||
|
.fancytree-partsel span.fancytree-checkbox {
|
||
|
.useSprite(4, 2);
|
||
|
&:hover {
|
||
|
.useSprite(5, 2);
|
||
|
}
|
||
|
&.fancytree-radio {
|
||
|
.useSprite(4, 3);
|
||
|
}
|
||
|
&.fancytree-radio:hover {
|
||
|
.useSprite(5, 3);
|
||
|
}
|
||
|
}
|
||
|
// selected after partsel, so it takes precedence:
|
||
|
.fancytree-selected span.fancytree-checkbox {
|
||
|
.useSprite(2, 2);
|
||
|
&:hover {
|
||
|
.useSprite(3, 2);
|
||
|
}
|
||
|
&.fancytree-radio {
|
||
|
.useSprite(2, 3);
|
||
|
}
|
||
|
&.fancytree-radio:hover {
|
||
|
.useSprite(3, 3);
|
||
|
}
|
||
|
}
|
||
|
// Unselectable is dimmed, without hover effects
|
||
|
.fancytree-unselectable {
|
||
|
span.fancytree-checkbox {
|
||
|
opacity: 0.4;
|
||
|
filter: alpha(opacity=40);
|
||
|
}
|
||
|
span.fancytree-checkbox:hover {
|
||
|
.useSprite(0, 2);
|
||
|
}
|
||
|
span.fancytree-checkbox.fancytree-radio:hover {
|
||
|
.useSprite(0, 3);
|
||
|
}
|
||
|
&.fancytree-partsel span.fancytree-checkbox:hover {
|
||
|
.useSprite(4, 2);
|
||
|
}
|
||
|
&.fancytree-selected span.fancytree-checkbox:hover {
|
||
|
.useSprite(2, 2);
|
||
|
}
|
||
|
&.fancytree-selected span.fancytree-checkbox.fancytree-radio:hover {
|
||
|
.useSprite(2, 3);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Auto-hide checkboxes unless selected or hovered
|
||
|
.fancytree-container.fancytree-checkbox-auto-hide {
|
||
|
span.fancytree-checkbox {
|
||
|
visibility: hidden;
|
||
|
}
|
||
|
.fancytree-node:hover span.fancytree-checkbox,
|
||
|
tr:hover td span.fancytree-checkbox,
|
||
|
.fancytree-node.fancytree-selected span.fancytree-checkbox,
|
||
|
tr.fancytree-selected td span.fancytree-checkbox {
|
||
|
visibility: unset;
|
||
|
}
|
||
|
&.fancytree-treefocus {
|
||
|
.fancytree-node.fancytree-active span.fancytree-checkbox,
|
||
|
tr.fancytree-active td span.fancytree-checkbox {
|
||
|
visibility: unset;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* Node type icon
|
||
|
* Note: IE6 doesn't correctly evaluate multiples class names,
|
||
|
* so we create combined class names that can be used in the CSS.
|
||
|
*
|
||
|
* Prefix: fancytree-ico-
|
||
|
* 1st character: 'e': expanded, 'c': collapsed
|
||
|
* 2nd character (optional): 'f': folder
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
|
||
|
span.fancytree-icon {
|
||
|
// Default icon
|
||
|
margin-left: @fancy-icon-spacing;
|
||
|
.useSprite(0, 0);
|
||
|
}
|
||
|
|
||
|
/* Documents */
|
||
|
.fancytree-ico-c span.fancytree-icon {
|
||
|
// Collapsed folder (empty)
|
||
|
// .useSprite(0, 0);
|
||
|
}
|
||
|
.fancytree-ico-c span.fancytree-icon:hover {
|
||
|
.useSprite(1, 0);
|
||
|
}
|
||
|
.fancytree-has-children.fancytree-ico-c span.fancytree-icon {
|
||
|
// Collapsed folder (not empty)
|
||
|
.useSprite(2, 0);
|
||
|
}
|
||
|
.fancytree-has-children.fancytree-ico-c span.fancytree-icon:hover {
|
||
|
.useSprite(3, 0);
|
||
|
}
|
||
|
.fancytree-ico-e span.fancytree-icon {
|
||
|
// Expanded folder
|
||
|
.useSprite(4, 0);
|
||
|
}
|
||
|
.fancytree-ico-e span.fancytree-icon:hover {
|
||
|
.useSprite(5, 0);
|
||
|
}
|
||
|
|
||
|
/* Folders */
|
||
|
.fancytree-ico-cf span.fancytree-icon {
|
||
|
// Collapsed folder (empty)
|
||
|
.useSprite(0, 1);
|
||
|
}
|
||
|
.fancytree-ico-cf span.fancytree-icon:hover {
|
||
|
.useSprite(1, 1);
|
||
|
}
|
||
|
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon {
|
||
|
// Collapsed folder (not empty)
|
||
|
.useSprite(2, 1);
|
||
|
}
|
||
|
.fancytree-has-children.fancytree-ico-cf span.fancytree-icon:hover {
|
||
|
.useSprite(3, 1);
|
||
|
}
|
||
|
.fancytree-ico-ef span.fancytree-icon {
|
||
|
// Expanded folder
|
||
|
.useSprite(4, 1);
|
||
|
}
|
||
|
.fancytree-ico-ef span.fancytree-icon:hover {
|
||
|
.useSprite(5, 1);
|
||
|
}
|
||
|
|
||
|
// 'Loading' status overrides all others
|
||
|
.fancytree-loading span.fancytree-expander,
|
||
|
.fancytree-loading span.fancytree-expander:hover,
|
||
|
.fancytree-statusnode-loading span.fancytree-icon,
|
||
|
.fancytree-statusnode-loading span.fancytree-icon:hover,
|
||
|
span.fancytree-icon.fancytree-icon-loading {
|
||
|
background-image: @fancy-loading-url;
|
||
|
.useSprite(0, 0);
|
||
|
}
|
||
|
|
||
|
/* Status node icons */
|
||
|
|
||
|
.fancytree-statusnode-error span.fancytree-icon,
|
||
|
.fancytree-statusnode-error span.fancytree-icon:hover {
|
||
|
.useSprite(0, 7);
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* Node titles and highlighting
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
|
||
|
span.fancytree-node {
|
||
|
/* See #117 */
|
||
|
display: inherit; // #117, resolves to 'display: list-item;' for standard trees
|
||
|
width: 100%;
|
||
|
margin-top: @fancy-node-v-spacing;
|
||
|
min-height: @fancy-line-height;
|
||
|
}
|
||
|
span.fancytree-title {
|
||
|
color: @fancy-font-color; // inherit doesn't work on IE
|
||
|
cursor: pointer;
|
||
|
display: inline-block; // Better alignment, when title contains <br>
|
||
|
vertical-align: top;
|
||
|
min-height: @fancy-line-height;
|
||
|
padding: 0 3px 0 3px; // Otherwise italic font will be outside right bounds
|
||
|
margin: @fancy-title-ofs-top 0 0 @fancy-icon-spacing;
|
||
|
// margin: 0px;
|
||
|
// margin-top: @fancy-line-ofs-top;
|
||
|
// margin-left: @fancy-icon-spacing;
|
||
|
border: @fancy-node-border-width solid transparent; // avoid jumping, when a border is added on hover
|
||
|
.rounded-corners(@fancy-node-border-radius);
|
||
|
// outline: 0; // @ Firefox, prevent dotted border after click
|
||
|
// Set transparent border to prevent jumping when active node gets a border
|
||
|
// (we can do this, because this theme doesn't use vertical lines)
|
||
|
// border: 1px solid white; // Note: 'transparent' would not work in IE6
|
||
|
}
|
||
|
span.fancytree-node.fancytree-error span.fancytree-title {
|
||
|
color: @fancy-font-error-color;
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* Drag'n'drop support
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
/* ext-dnd5: */
|
||
|
span.fancytree-childcounter {
|
||
|
color: #fff;
|
||
|
background: #337ab7; // bootstrap blue
|
||
|
border: 1px solid gray;
|
||
|
border-radius: 10px;
|
||
|
padding: 2px;
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
/* ext-dnd: */
|
||
|
div.fancytree-drag-helper {
|
||
|
span.fancytree-childcounter,
|
||
|
span.fancytree-dnd-modifier {
|
||
|
display: inline-block;
|
||
|
color: #fff;
|
||
|
background: #337ab7; // bootstrap blue
|
||
|
border: 1px solid gray;
|
||
|
min-width: 10px;
|
||
|
// min-height: 16px;
|
||
|
height: 10px;
|
||
|
line-height: 1;
|
||
|
vertical-align: baseline;
|
||
|
border-radius: 10px;
|
||
|
padding: 2px;
|
||
|
text-align: center;
|
||
|
font-size: 9px;
|
||
|
}
|
||
|
span.fancytree-childcounter {
|
||
|
position: absolute;
|
||
|
// left: 16px;
|
||
|
top: -6px;
|
||
|
right: -6px;
|
||
|
}
|
||
|
span.fancytree-dnd-modifier {
|
||
|
background: #5cb85c; // bootstrap green
|
||
|
border: none;
|
||
|
// min-height: 16px;
|
||
|
// font-size: 12px;
|
||
|
font-weight: bolder;
|
||
|
}
|
||
|
&.fancytree-drop-accept {
|
||
|
span.fancytree-drag-helper-img {
|
||
|
.useSprite(2, 7);
|
||
|
}
|
||
|
}
|
||
|
&.fancytree-drop-reject {
|
||
|
span.fancytree-drag-helper-img {
|
||
|
.useSprite(1, 7);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*** Drop marker icon *********************************************************/
|
||
|
#fancytree-drop-marker {
|
||
|
width: 2 * @fancy-icon-width; // was 24px, but 32 should be correct
|
||
|
position: absolute;
|
||
|
.useSprite(0, 8);
|
||
|
margin: 0;
|
||
|
&.fancytree-drop-after,
|
||
|
&.fancytree-drop-before {
|
||
|
width: 4 * @fancy-icon-width; // 64px;
|
||
|
.useSprite(0, 9);
|
||
|
}
|
||
|
&.fancytree-drop-copy {
|
||
|
.useSprite(4, 8);
|
||
|
}
|
||
|
&.fancytree-drop-move {
|
||
|
.useSprite(2, 8);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*** Source node while dragging ***********************************************/
|
||
|
|
||
|
span.fancytree-drag-source {
|
||
|
&.fancytree-drag-remove {
|
||
|
// text-decoration: line-through;
|
||
|
opacity: 0.15;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*** Target node while dragging cursor is over it *****************************/
|
||
|
|
||
|
span.fancytree-drop-target {
|
||
|
&.fancytree-drop-accept {
|
||
|
// outline: 1px dotted #5cb85c; // bootstrap sucess
|
||
|
}
|
||
|
}
|
||
|
span.fancytree-drop-reject {
|
||
|
// outline: 1px dotted #d9534f; // boostrap warning
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* 'rtl' option
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
|
||
|
.fancytree-container.fancytree-rtl {
|
||
|
.fancytree-title {
|
||
|
/*unicode-bidi: bidi-override;*/ /* optional: reverse title letters */
|
||
|
}
|
||
|
span.fancytree-connector,
|
||
|
span.fancytree-expander,
|
||
|
span.fancytree-icon,
|
||
|
span.fancytree-drag-helper-img {
|
||
|
.setBgImageUrl("icons-rtl.gif");
|
||
|
}
|
||
|
.fancytree-exp-n span.fancytree-expander,
|
||
|
.fancytree-exp-nl span.fancytree-expander {
|
||
|
background-image: none;
|
||
|
}
|
||
|
&.fancytree-connectors .fancytree-exp-n span.fancytree-expander,
|
||
|
&.fancytree-connectors .fancytree-exp-nl span.fancytree-expander {
|
||
|
.setBgImageUrl("icons-rtl.gif");
|
||
|
}
|
||
|
}
|
||
|
ul.fancytree-container.fancytree-rtl {
|
||
|
ul {
|
||
|
padding: 0 16px 0 0;
|
||
|
}
|
||
|
&.fancytree-connectors li {
|
||
|
background-position: right 0;
|
||
|
background-image: url("@{fancy-image-prefix}vline-rtl.gif");
|
||
|
}
|
||
|
// Suppress lines for last child node
|
||
|
li.fancytree-lastsib,
|
||
|
// Suppress lines if level is fixed expanded (option minExpandLevel)
|
||
|
&.fancytree-no-connector > li {
|
||
|
background-image: none;
|
||
|
}
|
||
|
}
|
||
|
#fancytree-drop-marker.fancytree-rtl {
|
||
|
.setBgImageUrl("icons-rtl.gif");
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* 'table' extension
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
|
||
|
table.fancytree-ext-table {
|
||
|
font-family: @fancy-font-family;
|
||
|
font-size: @fancy-font-size;
|
||
|
border-collapse: collapse;
|
||
|
span.fancytree-node {
|
||
|
display: inline-block; // #117
|
||
|
box-sizing: border-box; // #562
|
||
|
}
|
||
|
td.fancytree-status-merged {
|
||
|
text-align: center;
|
||
|
// font-weight: bold;
|
||
|
font-style: italic;
|
||
|
// line-height: 100px;
|
||
|
color: @fancy-font-color-dimm;
|
||
|
}
|
||
|
tr.fancytree-statusnode-error td.fancytree-status-merged {
|
||
|
color: @fancy-font-error-color;
|
||
|
}
|
||
|
/* ext-ariagrid */
|
||
|
&.fancytree-ext-ariagrid.fancytree-cell-mode {
|
||
|
> tbody > tr.fancytree-active > td {
|
||
|
background-color: #eee;
|
||
|
}
|
||
|
> tbody > tr > td.fancytree-active-cell {
|
||
|
background-color: #cbe8f6;
|
||
|
}
|
||
|
&.fancytree-cell-nav-mode > tbody > tr > td.fancytree-active-cell {
|
||
|
background-color: #3875d7;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* 'columnview' extension
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
|
||
|
table.fancytree-ext-columnview {
|
||
|
// border-collapse: collapse;
|
||
|
// width: 100%;
|
||
|
tbody tr td {
|
||
|
position: relative;
|
||
|
border: 1px solid gray;
|
||
|
vertical-align: top;
|
||
|
overflow: auto;
|
||
|
> ul {
|
||
|
padding: 0;
|
||
|
li {
|
||
|
list-style-image: none;
|
||
|
list-style-position: outside;
|
||
|
list-style-type: none;
|
||
|
-moz-background-clip: border;
|
||
|
-moz-background-inline-policy: continuous;
|
||
|
-moz-background-origin: padding;
|
||
|
background-attachment: scroll;
|
||
|
background-color: transparent;
|
||
|
.setBgPos(0, 0);
|
||
|
background-repeat: repeat-y;
|
||
|
background-image: none; /* no v-lines */
|
||
|
|
||
|
margin: 0;
|
||
|
// padding: 1px 0 0 0; // issue #246
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
span.fancytree-node {
|
||
|
position: relative; /* allow positioning of embedded spans */
|
||
|
display: inline-block; // #117
|
||
|
}
|
||
|
span.fancytree-node.fancytree-expanded {
|
||
|
background-color: #e0e0e0;
|
||
|
}
|
||
|
span.fancytree-node.fancytree-active {
|
||
|
background-color: #cbe8f6;
|
||
|
// background-color: royalblue;
|
||
|
}
|
||
|
.fancytree-has-children span.fancytree-cv-right {
|
||
|
position: absolute;
|
||
|
right: 3px;
|
||
|
.useSprite(0, 5);
|
||
|
&:hover {
|
||
|
.useSprite(1, 5);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* 'filter' extension
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
|
||
|
.fancytree-ext-filter-dimm {
|
||
|
span.fancytree-node span.fancytree-title {
|
||
|
color: @fancy-font-color-dimm;
|
||
|
font-weight: lighter;
|
||
|
}
|
||
|
tr.fancytree-submatch span.fancytree-title,
|
||
|
span.fancytree-node.fancytree-submatch span.fancytree-title {
|
||
|
color: black;
|
||
|
font-weight: normal;
|
||
|
}
|
||
|
tr.fancytree-match span.fancytree-title,
|
||
|
span.fancytree-node.fancytree-match span.fancytree-title {
|
||
|
color: black;
|
||
|
font-weight: bold;
|
||
|
}
|
||
|
}
|
||
|
.fancytree-ext-filter-hide {
|
||
|
tr.fancytree-hide,
|
||
|
span.fancytree-node.fancytree-hide {
|
||
|
display: none;
|
||
|
}
|
||
|
tr.fancytree-submatch span.fancytree-title,
|
||
|
span.fancytree-node.fancytree-submatch span.fancytree-title {
|
||
|
color: @fancy-font-color-dimm;
|
||
|
font-weight: lighter;
|
||
|
}
|
||
|
tr.fancytree-match span.fancytree-title,
|
||
|
span.fancytree-node.fancytree-match span.fancytree-title {
|
||
|
color: black;
|
||
|
font-weight: normal;
|
||
|
}
|
||
|
}
|
||
|
/* Hide expanders if all child nodes are hidden by filter */
|
||
|
.fancytree-ext-filter-hide-expanders {
|
||
|
tr.fancytree-match span.fancytree-expander,
|
||
|
span.fancytree-node.fancytree-match span.fancytree-expander {
|
||
|
visibility: hidden;
|
||
|
}
|
||
|
tr.fancytree-submatch span.fancytree-expander,
|
||
|
span.fancytree-node.fancytree-submatch span.fancytree-expander {
|
||
|
visibility: visible;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.fancytree-ext-childcounter,
|
||
|
.fancytree-ext-filter {
|
||
|
// span.fancytree-title mark {
|
||
|
// font-style: normal;
|
||
|
// background-color: #ead61c; // yellow
|
||
|
// border-radius: 3px;
|
||
|
// }
|
||
|
span.fancytree-icon,
|
||
|
span.fancytree-custom-icon {
|
||
|
position: relative;
|
||
|
}
|
||
|
span.fancytree-childcounter {
|
||
|
color: #fff;
|
||
|
background: #777; // #337ab7; // bootstrap blue
|
||
|
border: 1px solid gray;
|
||
|
position: absolute;
|
||
|
top: -6px;
|
||
|
right: -6px;
|
||
|
min-width: 10px;
|
||
|
height: 10px;
|
||
|
line-height: 1;
|
||
|
vertical-align: baseline;
|
||
|
border-radius: 10px;
|
||
|
padding: 2px;
|
||
|
text-align: center;
|
||
|
font-size: 9px;
|
||
|
}
|
||
|
}
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* 'wide' extension
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
|
||
|
ul.fancytree-ext-wide {
|
||
|
position: relative;
|
||
|
min-width: 100%;
|
||
|
z-index: 2;
|
||
|
|
||
|
-webkit-box-sizing: border-box;
|
||
|
-moz-box-sizing: border-box;
|
||
|
box-sizing: border-box;
|
||
|
|
||
|
span.fancytree-node > span {
|
||
|
position: relative;
|
||
|
z-index: 2;
|
||
|
}
|
||
|
span.fancytree-node span.fancytree-title {
|
||
|
position: absolute; // Allow left: 0. Note: prevents smooth dropdown animation
|
||
|
z-index: 1; // Behind expander and checkbox
|
||
|
left: 0px;
|
||
|
min-width: 100%;
|
||
|
margin-left: 0;
|
||
|
margin-right: 0;
|
||
|
|
||
|
-webkit-box-sizing: border-box;
|
||
|
-moz-box-sizing: border-box;
|
||
|
box-sizing: border-box;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*------------------------------------------------------------------------------
|
||
|
* 'fixed' extension
|
||
|
*----------------------------------------------------------------------------*/
|
||
|
|
||
|
.fancytree-ext-fixed-wrapper {
|
||
|
.fancytree-ext-fixed-hidden {
|
||
|
display: none;
|
||
|
}
|
||
|
div.fancytree-ext-fixed-scroll-border-bottom {
|
||
|
border-bottom: 3px solid rgba(0, 0, 0, 0.75);
|
||
|
}
|
||
|
div.fancytree-ext-fixed-scroll-border-right {
|
||
|
border-right: 3px solid rgba(0, 0, 0, 0.75);
|
||
|
}
|
||
|
div.fancytree-ext-fixed-wrapper-tl {
|
||
|
position: absolute;
|
||
|
overflow: hidden;
|
||
|
z-index: 3;
|
||
|
top: 0px;
|
||
|
left: 0px;
|
||
|
}
|
||
|
div.fancytree-ext-fixed-wrapper-tr {
|
||
|
position: absolute;
|
||
|
overflow: hidden;
|
||
|
z-index: 2;
|
||
|
top: 0px;
|
||
|
}
|
||
|
div.fancytree-ext-fixed-wrapper-bl {
|
||
|
position: absolute;
|
||
|
overflow: hidden;
|
||
|
z-index: 2;
|
||
|
left: 0px;
|
||
|
}
|
||
|
div.fancytree-ext-fixed-wrapper-br {
|
||
|
position: absolute;
|
||
|
overflow: scroll;
|
||
|
z-index: 1;
|
||
|
}
|
||
|
}
|