blob: d60ece69544014c0075fce7af80e0ee232b2b186 [file] [log] [blame]
////
/// @group layout/cash-register
////
/// Styles related to POS/Cash register application. To receive these styles, components need to be placed inside a global layout with style name "os-cash-register".
@mixin os-cash-register {
/* cash-field-width set in _textfield */
.os-cash-register {
@if $font-size-adjustment < 1 { $font-size-adjustment: 1; }
/* font-size in anything not affected by font-size-adjustment (?)
stuff that would get too small depending on $os-cash-zoom-factor
*/
.v-gridlayout-slot, .v-slot-l-control {
$font: $v-font-size;
@if $os-cash-zoom-factor < $v-scaling-factor--huge {$font: $v-font-size * $v-scaling-factor--huge; }
@if $os-cash-zoom-factor < $v-scaling-factor--large {$font: $v-font-size * $v-scaling-factor--large; }
@if $os-cash-zoom-factor <= 1 {$font: $v-font-size;}
line-height: $font;
}
$header-footer-height: make_even($v-font-size * $font-size-adjustment * 1.6);
$caption-height: $v-unit-size * $os-cash-zoom-factor;
/* Remove paddings around containers in POS/Cash area. */
.v-verticallayout, .v-horizontallayout, .v-gridlayout {
padding: 0px;
left: 0px !important;
&.os-no-spacing >.v-spacing {
height: 0px;
}
@include os-context-group;
}
@include os-button-cash;
/* basic textfield size */
.v-textfield, .v-datefield ,.o-XSuggestBox, .v-filterselect, .v-filterselect-input, .v-filterselect [class*="input"] {
@include os-textfield-cash;
}
.v-datefield [class*="textfield"] {
/* padding-left: $unit-size * 1.2; VALO DEFAULT */
padding-left: $v-unit-size * $os-cash-zoom-factor * 1.2;
}
.v-filterselect-button, .v-datefield button {
width: $cash-button-base-height + $half-spacing;
&:before {
width: $cash-button-base-height + $half-spacing;
}
}
/* should accomplish that groups of fields fill the entire width of a formlayout row */
.os-alt-button > .v-component-group, .os-alt-button > .l-beansearchfield {
display: block;
> .v-slot > .v-button {
position: relative;
height: $cash-button-base-height;
width: $cash-button-base-height;
min-width: $cash-button-base-height;
top: -1 * $cash-button-base-height;
left: -1 * $cash-button-base-height;
}
}
.v-component-group > .v-slot > .v-button {
height: $cash-button-base-height + $half-spacing;
}
.v-textarea {
font-size: $v-font-size * $os-cash-zoom-factor;
&.v-disabled, &.v-disabled > .v-textfield {
@include os-textfield-readonly;
opacity: 0.75;
}
}
.v-textarea.os-monospace {
font-size: $v-font-size * $os-cash-zoom-factor;
}
.o-XSuggestBox {
@include o-XSuggestBox-mod($os-cash-zoom-factor);
}
/* basic textfield width and o-XSuggestBox */
@include os-textfield-mod($width-mod: 1);
@include os-textfield-mod($width-mod: 1);
/* local */
/* ALSO COVERS o-XSuggestBox !! */
@include os-textfield-mod($width-mod: 0.5,$secondary-stylename: os-span-h-half);
@include os-textfield-mod($width-mod: 1, $secondary-stylename: os-span-h-single);
@include os-textfield-mod($width-mod: 2, $secondary-stylename: os-span-h-double);
@include os-textfield-mod($width-mod: 3, $secondary-stylename: os-span-h-triple);
@include os-textfield-mod($width-mod: 4, $secondary-stylename: os-span-h-quad);
/* single button styles */
@include os-button-mod($width-mod: 1, $primary-stylename: v-button\.os-span-h-single);
@include os-button-mod($width-mod: 1.5, $primary-stylename: v-button\.os-span-h-odd);
@include os-button-mod($width-mod: 2, $primary-stylename: v-button\.os-span-h-double);
@include os-button-mod($width-mod: 3, $primary-stylename: v-button\.os-span-h-triple);
@include os-button-mod($width-mod: 4, $primary-stylename: v-button\.os-span-h-quad);
@include os-button-mod($height-mod: 1, $primary-stylename: v-button\.os-span-v-single);
@include os-button-mod($height-mod: 2, $primary-stylename: v-button\.os-span-v-double);
@include os-button-mod($height-mod: 3, $primary-stylename: v-button\.os-span-v-triple);
@include os-button-mod($height-mod: 4, $primary-stylename: v-button\.os-span-v-quad);
/* Height and width modifications for all components (table, textfield, button, textarea...)
to put components in a grid-like size relation to each other. */
/* horizontal mods */
.os-field-h-half {
@include os-textfield-mod($width-mod: 0.5);
}
.os-button-h-single {
@include os-button-mod($width-mod: 1);
}
.os-table-h-single, .v-table.os-span-h-single {
@include os-table-mod($width-mod: 1);
&.os-table-h-extend {
@include os-table-mod($width-mod: 1, $modify: 1);
}
&.os-table-h-reduce {
@include os-table-mod($width-mod: 1, $modify: -1);
}
}
.os-button-h-odd {
@include os-button-mod($width-mod: 1.5);
}
.os-field-h-double {
@include os-textfield-mod($width-mod:2);
@include os-textarea-mod($width-mod: 2);
}
.os-table-h-double, .v-table.os-span-h-double {
@include os-table-mod($width-mod: 2);
&.os-table-h-extend {
@include os-table-mod($width-mod: 2, $modify: 1);
}
&.os-table-h-reduce {
@include os-table-mod($width-mod: 2, $modify: -1);
}
}
.os-button-h-double {
@include os-button-mod($width-mod: 2);
}
.os-field-h-triple {
@include os-textfield-mod($width-mod: 3);
@include os-textarea-mod($width-mod: 3);
}
.os-table-h-triple, .v-table.os-span-h-triple {
@include os-table-mod($width-mod: 3);
&.os-table-h-extend {
@include os-table-mod($width-mod: 3, $modify: 1);
}
&.os-table-h-reduce {
@include os-table-mod($width-mod: 3, $modify: -1);
}
}
.os-button-h-triple {
@include os-button-mod($width-mod: 3);
}
.os-field-h-quad {
@include os-textfield-mod($width-mod: 4);
@include os-textarea-mod($width-mod: 4);
}
.os-table-h-quad, .v-table.os-span-h-quad {
@include os-table-mod($width-mod: 4);
&.os-table-h-extend {
@include os-table-mod($width-mod: 4, $modify: 1);
}
&.os-table-h-reduce {
@include os-table-mod($width-mod: 4, $modify: -1);
}
}
.os-button-h-quad {
@include os-button-mod($width-mod: 4);
}
/* vertical mods */
.os-field-v-single {
@include os-textarea-mod($height-mod: 1);
}
.os-table-frame-v-single {
/* @include os-table-mod($height-mod: 1, $header-footer-height: $header-footer-height, $layout-level: 1); */
}
.os-table-v-single, .os-span-v-single {
@include os-table-mod($height-mod: 1, $header-footer-height: $header-footer-height);
}
/* reduce actual component height when it has a caption on top (must be after other height definitions) */
/* applies to table, textarea... */
.os-table-v-single .v-caption-on-top, .v-caption-on-top .v-table.os-span-v-single {
@include os-table-mod ($height-mod: 1, $has-caption: 1, $header-footer-height: $header-footer-height);
}
.os-button-v-single {
@include os-button-mod($height-mod: 1);
}
.os-field-v-double {
@include os-textarea-mod($height-mod: 2);
.v-caption-on-top {
@include os-textarea-mod ($height-mod: 2, $has-caption: 1);
}
}
.os-table-frame-v-double {
/* @include os-table-mod($height-mod: 2, $header-footer-height: $header-footer-height, $layout-level: 1); */
}
.os-table-v-double, .os-span-v-double {
@include os-table-mod($height-mod: 2, $header-footer-height: $header-footer-height);
}
.os-table-v-double .v-caption-on-top, .v-caption-on-top .v-table.os-span-v-double {
@include os-table-mod ($height-mod: 2, $has-caption: 1, $header-footer-height: $header-footer-height);
}
.os-button-v-double {
@include os-button-mod($height-mod: 2);
}
.os-field-v-triple {
@include os-textarea-mod($height-mod: 3);
.v-caption-on-top {
@include os-textarea-mod ($height-mod: 3, $has-caption: 1);
}
}
.os-table-frame-v-triple {
/* @include os-table-mod($height-mod: 3, $header-footer-height: $header-footer-height, $layout-level: 1); */
}
.os-table-v-triple, .os-span-v-triple {
@include os-table-mod($height-mod: 3, $header-footer-height: $header-footer-height);
}
.os-table-v-triple .v-caption-on-top, .v-caption-on-top .v-table.os-span-v-triple {
@include os-table-mod ($height-mod: 3, $has-caption: 1, $header-footer-height: $header-footer-height);
}
.os-button-v-triple {
@include os-button-mod($height-mod: 3);
}
.os-field-v-quad {
@include os-textarea-mod($height-mod: 4);
.v-caption-on-top {
@include os-textarea-mod ($height-mod: 4, $has-caption: 1);
}
}
.os-table-frame-v-quad {
/* @include os-table-mod($height-mod: 4, $header-footer-height: $header-footer-height, $layout-level: 1); */
}
.os-table-v-quad, .os-span-v-quad {
@include os-table-mod($height-mod: 4, $header-footer-height: $header-footer-height);
}
.os-table-v-quad .v-caption-on-top, .v-caption-on-top .v-table.os-span-v-quad {
@include os-table-mod ($height-mod: 4, $has-caption: 1, $header-footer-height: $header-footer-height);
}
.os-button-v-quad {
@include os-button-mod($height-mod: 4);
}
.os-cash-total, .os-cash-xl {
.v-textfield, .v-caption {
font-weight: bold;
}
.v-captiontext {
font-weight: normal;
}
.v-formlayout > table {
width: 100%;
}
.v-textfield {
@include os-textfield-cash-total;
text-align: right;
}
.v-formlayout-row>.v-formlayout-captioncell>.v-caption {
height: $v-unit-size * (1.5 * $os-cash-zoom-factor) - first-number($v-border) !important;
line-height: $v-unit-size * (1.5 * $os-cash-zoom-factor);
}
.os-span-h-half .v-textfield {
width: $cash-field-width / 2;
}
.v-button {
@include os-button-mod($col-1: #4caf6a);
&.v-disabled {
}
}
}
.v-caption-on-top > .v-caption {
@if $os-cash-zoom-factor != 1 {
$caption-padd: make_even($v-unit-size * 0.5);
height: $v-unit-size * $os-cash-zoom-factor - $caption-padd;
padding-top: $caption-padd;
padding-bottom: 0px;
}
@else {
padding-top: 0px;
}
}
.v-caption, .v-captiontext, .v-caption-on-top > .v-caption-l-control > .v-captiontext {
font-size: $v-font-size * $font-size-adjustment;
line-height: $v-unit-size * $font-size-adjustment - first-number($v-border);
}
.v-formlayout {
.v-caption, .v-captiontext {
font-size: $v-font-size * $os-cash-zoom-factor;
line-height: $v-unit-size * $os-cash-zoom-factor - first-number($v-border);
}
}
.v-table-header-wrap, .v-table-caption-container, .v-table-sort-indicator, .v-table-resizer {
/* table header height specified (also overwrites height-definition in _dialog) */
height: $header-footer-height;
/* line-height: $v-font-size * $font-size-adjustment * 1.6; */
font-size: $v-font-size * $font-size-adjustment;
}
.v-table-cell-content {
/* height: floor($v-unit-size * $font-size-adjustment) * 3; */
height: floor($v-unit-size * $font-size-adjustment);
font-size: $v-font-size * $font-size-adjustment;
}
/* OLD */
/* .os-row-odd .v-table-cell-content { */
/* @include os-row-mod($rows-in-one: 1.5); */
/* } */
/* .os-row-double .v-table-cell-content { */
/* @include os-row-mod($rows-in-one: 2); */
/* } */
/* .os-table-bigrow .v-table-cell-content, .os-row-triple .v-table-cell-content { */
/* @include os-row-mod($rows-in-one: 3); */
/* } */
/* NEW */
.os-row-odd .v-table-cell-content {
@include os-row-mod($rows-in-one: 2, $font-adjust: 1.5);
}
.os-row-double .v-table-cell-content {
@include os-row-mod($rows-in-one: 2.5, $font-adjust: 2);
}
.os-row-triple .v-table-cell-content {
@include os-row-mod($rows-in-one: 3.5, $font-adjust: 3);
}
.os-table-bigrow .v-table-cell-content {
$rows-in-one: 3;
$bigrow-factor: $rows-in-one/2.25;
height: floor($v-unit-size * $bigrow-factor) * $rows-in-one;
font-size: $v-font-size * $font-size-adjustment * $bigrow-factor;
}
/* LINE BREAK IN TABLE CELLS
.v-table-cell-wrapper {
white-space: normal;
}*/
/* fixed width font */
.os-monospace {
font-family: monospace;
}
/*
/// sets spacer width for os-table-frame-* workaround
.v-slot-os-table-frame-v-single, .v-slot-os-table-frame-v-double,
.v-slot-os-table-frame-v-triple, .v-slot-os-table-frame-v-quad {
+ .v-spacing {
width: 0px;
}
}
*/
/* some spacers */
.os-spacer-top { @include os-spacer(top, 1); }
.os-spacer-left { @include os-spacer(left, 1); }
.os-spacer-right { @include os-spacer(right, 1); }
.os-spacer-bottom { @include os-spacer(bottom, 1); }
.os-spacer-top-double { @include os-spacer(top, 2); }
.os-spacer-left-double { @include os-spacer(left, 2); }
.os-spacer-right-double { @include os-spacer(right, 2); }
.os-spacer-bottom-double { @include os-spacer(bottom, 2); }
.os-spacer-top-triple { @include os-spacer(top, 3); }
.os-spacer-left-triple { @include os-spacer(left, 3); }
.os-spacer-right-triple { @include os-spacer(right, 3); }
.os-spacer-bottom-triple { @include os-spacer(bottom, 3); }
.os-spacer-top-quad { @include os-spacer(top, 4); }
.os-spacer-left-quad { @include os-spacer(left, 4); }
.os-spacer-right-quad { @include os-spacer(right, 4); }
.os-spacer-bottom-quad { @include os-spacer(bottom, 4); }
/// Styles related to the external cash display (800x600).
/// Zoom can be set seperately by using $os-cash-display-zoom-factor in _variables
&.os-cash-display {
.os-cash-total, .os-cash-xl {
.v-formlayout-captioncell {
vertical-align: inherit;
}
.v-textfield {
@include os-textfield-cash-total($os-cash-display-zoom-factor);
width: $cash-display-field-width;
}
.v-caption {
$cap-slightly-smaller: make_even($os-cash-display-zoom-factor * 0.25);
@include os-textfield-cash-total($cap-slightly-smaller);
min-width: $cash-display-field-width;
/* line-height: $v-unit-size * (1.5 * $os-cash-display-zoom-factor); */
}
}
/* Height and width modifications for all components (table, textfield, button, textarea...)
to put components in a grid-like size relation to each other. */
/* horizontal mods */
.os-table-h-single, .v-table.os-span-h-single {
@include os-table-mod($width-mod: 1, $external-display: 1);
&.os-table-h-extend {
@include os-table-mod($width-mod: 1, $modify: 1, $external-display: 1 );
}
&.os-table-h-reduce {
@include os-table-mod($width-mod: 1, $modify: -1, $external-display: 1);
}
}
.os-table-h-double, .v-table.os-span-h-double {
@include os-table-mod($width-mod: 2, $external-display: 1);
&.os-table-h-extend {
@include os-table-mod($width-mod: 2, $modify: 1, $external-display: 1);
}
&.os-table-h-reduce {
@include os-table-mod($width-mod: 2, $modify: -1, $external-display: 1);
}
}
.os-table-h-triple, .v-table.os-span-h-triple {
@include os-table-mod($width-mod: 3, $external-display: 1);
&.os-table-h-extend {
@include os-table-mod($width-mod: 3, $modify: 1, $external-display: 1);
}
&.os-table-h-reduce {
@include os-table-mod($width-mod: 3, $modify: -1, $external-display: 1);
}
}
.os-table-h-quad, .v-table.os-span-h-quad {
@include os-table-mod($width-mod: 4, $external-display: 1);
&.os-table-h-extend {
@include os-table-mod($width-mod: 4, $modify: 1, $external-display: 1);
}
&.os-table-h-reduce {
@include os-table-mod($width-mod: 4, $modify: -1, $external-display: 1);
}
}
/* vertical mods */
.os-table-frame-v-single {
@include os-table-mod($height-mod: 1, $header-footer-height: $header-footer-height, $layout-level: 1, $external-display: 1);
}
.os-table-v-single, .os-span-v-single {
@include os-table-mod($height-mod: 1, $header-footer-height: $header-footer-height, $external-display: 1);
}
/* reduce actual component height when it has a caption on top (must be after other height definitions)
applies to table, textarea... */
.os-table-v-single .v-caption-on-top, .v-caption-on-top .v-table.os-span-v-single {
@include os-table-mod ($height-mod: 1, $has-caption: 1, $header-footer-height: $header-footer-height, $external-display: 1);
}
.os-table-frame-v-double {
@include os-table-mod($height-mod: 2, $header-footer-height: $header-footer-height, $layout-level: 1, $external-display: 1);
}
.os-table-v-double, .os-span-v-double {
@include os-table-mod($height-mod: 2, $header-footer-height: $header-footer-height, $external-display: 1);
}
.os-table-v-double .v-caption-on-top, .v-caption-on-top .v-table.os-span-v-double {
@include os-table-mod ($height-mod: 2, $has-caption: 1, $header-footer-height: $header-footer-height, $external-display: 1);
}
.os-table-frame-v-triple {
@include os-table-mod($height-mod: 3, $header-footer-height: $header-footer-height, $layout-level: 1, $external-display: 1);
}
.os-table-v-triple, .os-span-v-triple {
@include os-table-mod($height-mod: 3, $header-footer-height: $header-footer-height, $external-display: 1);
}
.os-table-v-triple .v-caption-on-top, .v-caption-on-top .v-table.os-span-v-triple {
@include os-table-mod ($height-mod: 3, $has-caption: 1, $header-footer-height: $header-footer-height, $external-display: 1);
}
.os-table-frame-v-quad {
@include os-table-mod($height-mod: 4, $header-footer-height: $header-footer-height, $layout-level: 1, $external-display: 1);
}
.os-table-v-quad, .os-span-v-quad {
@include os-table-mod($height-mod: 4, $header-footer-height: $header-footer-height, $external-display: 1);
}
.os-table-v-quad .v-caption-on-top, .v-caption-on-top .v-table.os-span-v-quad {
@include os-table-mod ($height-mod: 4, $has-caption: 1, $header-footer-height: $header-footer-height, $external-display: 1);
}
}
}
/// This should make popup content appear larger than in other views, but it doesn't work because
/// suggesttext popup containers are rendered outside of osbp's main container and therefore
/// outside of os-cash-register. As it can't be put into context, these popups can only be styled globally for now.
.o-SuggestBoxPopup {
//@include os-popup-suggest(2);
}
}