Форк Rambox
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

154 lines
5.6 KiB

/**
* Creates a visual theme for checkboxes and radio buttons. Note this mixin only provides
* styling for the checkbox/radio button and its {@link #boxLabel}, The {@link #fieldLabel}
* and error icon/message are styled by {@link #extjs-label-ui}.
*
* @param {string} $ui
* The name of the UI being created. Can not included spaces or special punctuation
* (used in CSS class names).
*
* @param {number} [$ui-field-height=$form-field-height]
* The height of the field body that the checkbox must fit within. This does not set the
* height of the field, only allows the checkbox to be centered inside the field body.
* (The height of the field body is determined by {@link #extjs-label-ui}).
*
* @param {number} [$ui-checkbox-size=$form-checkbox-size]
* The size of the checkbox
*
* @param {string} [$ui-checkbox-background-image=$form-checkbox-background-image]
* The background-image of the checkbox
*
* @param {string} [$ui-radio-background-image=$form-radio-background-image]
* The background-image of the radio button
*
* @param {color} [$ui-label-color=$form-checkbox-label-color]
* The color of the checkbox's {@link #boxLabel}
*
* @param {string} [$ui-label-font-weight=$form-checkbox-label-font-weight]
* The font-weight of the checkbox's {@link #boxLabel}
*
* @param {string} [$ui-label-font-size=$form-checkbox-label-font-size]
* The font-size of the checkbox's {@link #boxLabel}
*
* @param {string} [$ui-label-font-family=$form-checkbox-label-font-family]
* The font-family of the checkbox's {@link #boxLabel}
*
* @param {string} [$ui-label-line-height=$form-checkbox-label-line-height]
* The line-height of the checkbox's {@link #boxLabel}
*
* @param {number} [$ui-label-spacing=$form-checkbox-label-spacing]
* The space between the boxLabel and the checkbox.
*
* @member Ext.form.field.Checkbox
*/
@mixin extjs-checkbox-ui(
$ui: null,
$ui-field-height: $form-field-height,
$ui-checkbox-size: $form-checkbox-size,
$ui-checkbox-background-image: $form-checkbox-background-image,
$ui-radio-background-image: $form-radio-background-image,
$ui-label-color: $form-checkbox-label-color,
$ui-label-font-weight: $form-checkbox-label-font-weight,
$ui-label-font-size: $form-checkbox-label-font-size,
$ui-label-font-family: $form-checkbox-label-font-family,
$ui-label-line-height: $form-checkbox-label-line-height,
$ui-label-spacing: $form-checkbox-label-spacing
) {
.#{$prefix}form-cb-wrap-#{$ui} {
height: $ui-field-height;
}
.#{$prefix}form-cb-#{$ui} {
// vertically center the checkbox
margin-top: round(($ui-field-height - $ui-checkbox-size) / 2);
}
.#{$prefix}form-checkbox-#{$ui},
.#{$prefix}form-radio-#{$ui} {
width: $ui-checkbox-size;
height: $ui-checkbox-size;
}
.#{$prefix}form-radio-#{$ui} {
background: theme-background-image($ui-radio-background-image) no-repeat;
.#{$prefix}form-cb-checked & {
background-position: 0 (0 - $ui-checkbox-size);
}
}
.#{$prefix}form-checkbox-#{$ui} {
background: theme-background-image($ui-checkbox-background-image) no-repeat;
.#{$prefix}form-cb-checked & {
background-position: 0 (0 - $ui-checkbox-size);
}
}
.#{$prefix}field-#{$ui}-form-checkbox-focus {
background-position: (0 - $ui-checkbox-size) 0;
.#{$prefix}form-cb-checked & {
background-position: (0 - $ui-checkbox-size) (0 - $ui-checkbox-size);
}
}
.#{$prefix}form-cb-label-#{$ui} {
margin-top: round(($ui-field-height - $ui-label-line-height) / 2);
font: $ui-label-font-weight #{$ui-label-font-size}/#{$ui-label-line-height} $ui-label-font-family;
&.#{$prefix}form-cb-label-before {
padding-right: $ui-label-spacing + $ui-checkbox-size;
@if $include-rtl {
&.#{$prefix}rtl {
padding-right: 0;
padding-left: $ui-label-spacing + $ui-checkbox-size;
}
}
}
&.#{$prefix}form-cb-label-after {
padding-left: $ui-label-spacing + $ui-checkbox-size;
}
@if $include-rtl {
&.#{$prefix}rtl {
padding-left: 0;
padding-right: $ui-label-spacing + $ui-checkbox-size;
}
}
}
// Checkbox field or subclass inside cell - calculate top/bottom padding to keep row height correct
@if $include-ext-grid-column-widget or $include-ext-grid-plugin-editing {
.#{$prefix}checkbox-#{$ui}-cell > .#{$prefix}grid-cell-inner {
padding-top: max(ceil(($grid-row-height - $ui-field-height) / 2), 0);
padding-bottom: max(floor(($grid-row-height - $ui-field-height) / 2), 0);
}
}
}
@if $include-checkbox-default-ui {
@include extjs-checkbox-ui(
$ui: 'default'
);
}
@if $include-checkbox-toolbar-ui {
@include extjs-checkbox-ui(
$ui: 'toolbar',
$ui-field-height: $form-toolbar-field-height,
$ui-checkbox-size: $form-toolbar-checkbox-size,
$ui-checkbox-background-image: $form-toolbar-checkbox-background-image,
$ui-radio-background-image: $form-toolbar-radio-background-image,
$ui-label-color: $form-toolbar-checkbox-label-color,
$ui-label-font-weight: $form-toolbar-checkbox-label-font-weight,
$ui-label-font-size: $form-toolbar-checkbox-label-font-size,
$ui-label-font-family: $form-toolbar-checkbox-label-font-family,
$ui-label-line-height: $form-toolbar-checkbox-label-line-height,
$ui-label-spacing: $form-toolbar-checkbox-label-spacing
);
}