123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- @import "table";
-
- $v-grid-row-background-color: valo-table-background-color() !default;
- $v-grid-row-stripe-background-color: scale-color($v-grid-row-background-color, $lightness: if(color-luminance($v-grid-row-background-color) < 10, 4%, -4%)) !default;
-
- $v-grid-border-color-source: $v-grid-row-background-color !default;
- $v-grid-border: flatten-list(valo-border($color: $v-grid-border-color-source, $strength: 0.8)) !default;
- $v-grid-cell-focused-border: max(2px, first-number($v-border)) solid $v-selection-color !default;
-
- $v-grid-row-height: $v-table-row-height !default;
- $v-grid-row-selected-background-color: $v-selection-color !default;
-
- $v-grid-header-font-size: $v-table-header-font-size !default;
- $v-grid-header-background-color: $v-background-color !default;
-
- $v-grid-cell-padding-horizontal: $v-table-cell-padding-horizontal !default;
-
- $v-grid-animations-enabled: $v-animations-enabled !default;
-
- $v-grid-details-marker-width: first-number($v-grid-border) * 2 !default;
- $v-grid-details-marker-color: $v-selection-color !default;
- $v-grid-details-border-top: valo-border($color: $v-grid-border-color-source, $strength: 0.3) !default;
- $v-grid-details-border-top-stripe: valo-border($color: $v-grid-row-stripe-background-color, $strength: 0.3) !default;
- $v-grid-details-border-bottom: $v-grid-cell-horizontal-border !default;
- $v-grid-details-border-bottom-stripe: $v-grid-cell-horizontal-border !default;
-
- @import "../../base/grid/grid";
-
- /**
- *
- *
- * @param {string} $primary-stylename (v-grid) -
- *
- * @group grid
- */
- @mixin valo-grid ($primary-stylename: v-grid) {
-
- @include base-grid($primary-stylename);
-
- .#{$primary-stylename} {
- @include user-select(text);
- background-color: $v-background-color;
- }
-
- .#{$primary-stylename}-header .#{$primary-stylename}-cell {
- @include valo-gradient($v-grid-header-background-color);
- text-shadow: valo-text-shadow($font-color: valo-font-color($v-grid-header-background-color), $background-color: $v-grid-header-background-color);
- }
-
- .#{$primary-stylename}-header .#{$primary-stylename}-cell.dragged {
- @include opacity(0.5, false);
- @include transition (opacity .3s ease-in-out);
- }
-
- .#{$primary-stylename}-header .#{$primary-stylename}-cell.dragged-column-header {
- margin-top: round($v-grid-row-height/-2);
- }
-
- .#{$primary-stylename}-footer .#{$primary-stylename}-cell {
- @include valo-gradient($v-grid-footer-background-color);
- text-shadow: valo-text-shadow($font-color: valo-font-color($v-grid-footer-background-color), $background-color: $v-grid-footer-background-color);
- }
-
- .#{$primary-stylename}-header-deco {
- @include valo-gradient($v-grid-header-background-color);
- }
-
- .#{$primary-stylename}-footer-deco,
- .#{$primary-stylename}-horizontal-scrollbar-deco {
- @include valo-gradient($v-grid-footer-background-color);
- }
-
- // Selected
- .#{$primary-stylename}-row-selected {
- $grid-sel-bg: $v-grid-row-selected-background-color;
-
- > .#{$primary-stylename}-cell {
- @include valo-gradient($grid-sel-bg);
- color: valo-font-color($grid-sel-bg);
- text-shadow: valo-text-shadow($font-color: valo-font-color($grid-sel-bg), $background-color: $grid-sel-bg);
- border-color: adjust-color($grid-sel-bg, $lightness: -8%, $saturation: -8%);
- }
-
- > .#{$primary-stylename}-cell-focused:before {
- border-color: adjust-color($grid-sel-bg, $lightness: 20%);
- }
- }
-
- .#{$primary-stylename}-editor {
- @include valo-focus-style;
- border-color: $v-focus-color;
- }
-
- .#{$primary-stylename}-editor-footer {
- font-size: $v-font-size--small;
- padding: 0 round($v-layout-spacing-horizontal / 2);
- background: $v-app-background-color;
- @if $v-grid-animations-enabled {
- @include animation(valo-grid-editor-footer-animate-in 200ms 120ms backwards);
- }
- }
-
- @if $v-grid-animations-enabled {
- .#{$primary-stylename}-editor-footer:first-child {
- @include animation(valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards);
- }
- }
-
- .#{$primary-stylename}-editor-cells {
- z-index: 1;
- }
-
- .#{$primary-stylename}-editor-cells > div {
- // Vertical centering for widgets
- &:before {
- content: "";
- display: inline-block;
- height: 100%;
- vertical-align: middle;
- }
-
- .error::before {
- border-top: round($v-unit-size / 4) solid $v-error-indicator-color;
- border-right: round($v-unit-size / 4) solid transparent;
- }
-
- .error,
- .error > input {
- // taken from @mixin valo-textfield-error-style()
- background-color: scale-color($v-error-indicator-color, $lightness: 98%);
- }
-
- .v-textfield,
- .v-textfield-focus,
- .v-datefield,
- .v-datefield .v-textfield-focus,
- .v-filterselect-input,
- .v-filterselect-input:focus {
- border: none;
- border-radius: 0;
- background: transparent;
-
- @if $v-textfield-bevel {
- @include box-shadow(valo-bevel-and-shadow($bevel: $v-textfield-bevel));
- } @else {
- @include box-shadow(none);
- }
- }
-
- .v-datefield-button {
- .v-ie8 & {
- margin-left: 0px;
- }
- }
-
- .v-filterselect-button {
- .v-ie8 & {
- margin-left: 0px;
- }
- }
-
- .v-textfield-focus,
- .v-datefield .v-textfield-focus,
- .v-filterselect-input:focus {
- position: relative;
- }
-
- .v-select {
- padding-left: round($v-grid-cell-padding-horizontal / 2);
- padding-right: round($v-grid-cell-padding-horizontal / 2);
- }
-
- .v-checkbox {
- margin: 0 round($v-grid-cell-padding-horizontal / 2);
-
- label {
- white-space: nowrap;
- }
- }
- }
-
- .#{$primary-stylename}-editor-message > div:before {
- display: inline-block;
- @include valo-error-indicator-style($is-pseudo-element: true);
- }
-
- .#{$primary-stylename}-editor-save,
- .#{$primary-stylename}-editor-cancel {
- @include valo-link-style;
- font-weight: $v-font-weight + 100;
- text-decoration: none;
- border: none;
- background: transparent;
- padding: round($v-layout-spacing-vertical / 2) round($v-layout-spacing-horizontal / 2);
- margin: 0;
- outline: none;
- }
-
- .#{$primary-stylename}-spacer {
- margin-top: first-number($v-grid-border) * -1;
- }
-
- // Sidebar
- .#{$primary-stylename}-sidebar.v-contextmenu {
- &.open {
-
- .#{$primary-stylename}-sidebar-content {
- margin: 0 0 2px;
- padding: 4px 4px 2px;
- }
- }
-
- &.closed {
- @include valo-gradient($v-grid-header-background-color);
- }
- }
-
- // Customize scrollbars
- .#{$primary-stylename}-scroller {
- &::-webkit-scrollbar {
- border: none;
- }
-
- &::-webkit-scrollbar-thumb {
- border-radius: 10px;
- border: 4px solid transparent;
- background: if(is-dark-color($v-grid-header-background-color), rgba(255,255,255,.3), rgba(0,0,0,.3));
- -webkit-background-clip: content-box;
- background-clip: content-box;
- }
- }
-
- .#{$primary-stylename}-scroller-vertical::-webkit-scrollbar-thumb {
- min-height: 30px;
- }
-
- .#{$primary-stylename}-scroller-horizontal::-webkit-scrollbar-thumb {
- min-width: 30px;
- }
-
- }
-
-
- @include keyframes(valo-grid-editor-footer-animate-in) {
- 0% {
- margin-top: -$v-grid-row-height;
- }
- }
-
- @include keyframes(valo-grid-editor-footer-animate-in-alt) {
- 0% {
- margin-bottom: -$v-grid-row-height - first-number($v-grid-cell-horizontal-border);
- }
- 100% {
- margin-bottom: first-number($v-grid-cell-horizontal-border) * -1;
- }
- }
|