mirror of
https://github.com/ant-design/ant-design.git
synced 2024-12-14 16:19:15 +08:00
407a41a142
* init generate * basic style * basic panel style * update mode panel style * update style * generate More picker * default clear icon * chore: Update separator type * feat: Add ranged start & end className * update range style * Add transition effect * support size config * adjust range style * chore: Auto fill time by showTime * auto set time by format * update disabled style * update seperator style * ranges style * support extra footer style * remove useless test case part is not usable anymore part is already tested in rc-picker * init calendar * all demos * fix calendar basic test * fix time-picker test case * update snapshot * fix tooltip test case & lint * fix locale & style lint * fix compile * fix style * fix style lint * fix calendar style * update rc-picker version * adjust style * move picker placeholder into locale file * update snapshot * add hover style * update picker version * fix icon position & style * update picker version * update deps for pading * fix: align of suffix * feat: Year & Month support range effect * adjust range style to support up-down placement * update rc-picker * update range picker style * adjust extra footer line style * update snapshot * fix: Locale error * fix: style lint * fix: add missing button style deps * update test case * fix firefox additional white line style issue * rollback demo * fix ff additional blue color * docs: Remove placeholder in demo * rangepicker ranges is tag now * connect start / end background color with picker range * update deps * update deps for fixing blur text issue * hide start-end demo * range hover style update * hover range with ranged value * black magic of inner hover style * hover style of range adjust * fix css select miss hit on DatePicker * remove one eslint rule * fade range hovered color * week should alway not show the cell selection * update style of selection * update snapshot * fix style * add margin back * update rc-picker deps * update date & time picker & form style * fix disabled demo & update form style * update docs about allowEmpty * hide arrow in time range picker * add hover & focused style * fix lint * fix style & update snapshot * raise disabled selector proirity * fix disabled today border color * extra footer provides an bottom line * time picker hover support transition background * add padding style * fix Firefox not correct calculate inline-flex * fix style * fix week picker missing today border color * rm useless padding * Force padding to 0 * test coverage * dedup eslint rule * adjust logic to imporve coverage * fix render cell logic
628 lines
14 KiB
Plaintext
628 lines
14 KiB
Plaintext
@import './index';
|
|
|
|
@picker-cell-inner-cls: ~'@{picker-prefix-cls}-cell-inner';
|
|
@picker-legacy-cell-cls: ~'@{ant-prefix}-calendar-date';
|
|
|
|
.@{picker-prefix-cls} {
|
|
@picker-basic-cell-hover-color: lighten(@primary-color, 40%);
|
|
@picker-basic-cell-hover-with-range-color: lighten(@primary-color, 35%);
|
|
@picker-border: @border-width-base @border-style-base @border-color-split;
|
|
@picker-arrow-size: 7px;
|
|
@picker-date-hover-range-border: @border-width-base dashed lighten(@primary-color, 20%);
|
|
@picker-panel-width: 280px;
|
|
@picker-year-month-cell-width: 60px;
|
|
|
|
&-panel {
|
|
display: inline-block;
|
|
text-align: center;
|
|
background: @calendar-bg;
|
|
border: @picker-border;
|
|
border-radius: @border-radius-base;
|
|
outline: none;
|
|
|
|
&-focused {
|
|
border-color: @primary-color;
|
|
}
|
|
}
|
|
|
|
// ========================================================
|
|
// = Shared Panel =
|
|
// ========================================================
|
|
&-decade-panel,
|
|
&-year-panel,
|
|
&-month-panel,
|
|
&-week-panel,
|
|
&-date-panel,
|
|
&-time-panel {
|
|
display: flex;
|
|
flex-direction: column;
|
|
width: @picker-panel-width;
|
|
}
|
|
|
|
// ======================= Header =======================
|
|
&-header {
|
|
display: flex;
|
|
padding: 0 @padding-xs;
|
|
color: @heading-color;
|
|
border-bottom: @picker-border;
|
|
|
|
> * {
|
|
flex: none;
|
|
}
|
|
|
|
button {
|
|
padding: 0;
|
|
color: @disabled-color;
|
|
line-height: @picker-text-height;
|
|
background: transparent;
|
|
border: 0;
|
|
cursor: pointer;
|
|
transition: color @animation-duration-slow;
|
|
}
|
|
|
|
> button {
|
|
min-width: 1.6em;
|
|
font-size: @font-size-base;
|
|
|
|
&:hover {
|
|
color: @text-color;
|
|
}
|
|
}
|
|
|
|
&-view {
|
|
flex: auto;
|
|
font-weight: 500;
|
|
line-height: @picker-text-height;
|
|
|
|
button {
|
|
color: inherit;
|
|
font-weight: inherit;
|
|
|
|
&:not(:first-child) {
|
|
margin-left: @padding-xs;
|
|
}
|
|
|
|
&:hover {
|
|
color: @primary-color;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Arrow button
|
|
&-prev-icon,
|
|
&-next-icon,
|
|
&-super-prev-icon,
|
|
&-super-next-icon {
|
|
position: relative;
|
|
display: inline-block;
|
|
width: @picker-arrow-size;
|
|
height: @picker-arrow-size;
|
|
|
|
&::before {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
display: inline-block;
|
|
width: @picker-arrow-size;
|
|
height: @picker-arrow-size;
|
|
border: 0 solid currentColor;
|
|
border-width: 1.5px 0 0 1.5px;
|
|
content: '';
|
|
}
|
|
}
|
|
|
|
&-super-prev-icon,
|
|
&-super-next-icon {
|
|
&::after {
|
|
position: absolute;
|
|
top: ceil(@picker-arrow-size / 2);
|
|
left: ceil(@picker-arrow-size / 2);
|
|
display: inline-block;
|
|
width: @picker-arrow-size;
|
|
height: @picker-arrow-size;
|
|
border: 0 solid currentColor;
|
|
border-width: 1.5px 0 0 1.5px;
|
|
content: '';
|
|
}
|
|
}
|
|
|
|
&-prev-icon,
|
|
&-super-prev-icon {
|
|
transform: rotate(-45deg);
|
|
}
|
|
|
|
&-next-icon,
|
|
&-super-next-icon {
|
|
transform: rotate(135deg);
|
|
}
|
|
|
|
// ======================== Body ========================
|
|
&-content {
|
|
width: 100%;
|
|
table-layout: fixed;
|
|
border-collapse: collapse;
|
|
|
|
th,
|
|
td {
|
|
position: relative;
|
|
min-width: 24px;
|
|
font-weight: 400;
|
|
}
|
|
|
|
th {
|
|
height: 30px;
|
|
color: @text-color;
|
|
line-height: 30px;
|
|
}
|
|
}
|
|
|
|
.picker-cell-inner(@cellClassName) {
|
|
&::before {
|
|
position: absolute;
|
|
top: 50%;
|
|
right: 0;
|
|
left: 0;
|
|
z-index: 1;
|
|
height: 24px;
|
|
transform: translateY(-50%);
|
|
content: '';
|
|
}
|
|
|
|
// >>> Default
|
|
.@{cellClassName} {
|
|
position: relative;
|
|
z-index: 2;
|
|
display: inline-block;
|
|
min-width: 24px;
|
|
height: 24px;
|
|
line-height: 24px;
|
|
border-radius: @border-radius-base;
|
|
transition: background @animation-duration-slow, border @animation-duration-slow;
|
|
}
|
|
|
|
// >>> Hover
|
|
&:hover:not(&-in-view),
|
|
&:hover:not(&-selected):not(&-range-start):not(&-range-end):not(&-range-hover-start):not(&-range-hover-end) {
|
|
.@{cellClassName} {
|
|
background: @picker-basic-cell-hover-color;
|
|
}
|
|
}
|
|
|
|
// >>> Today
|
|
&-in-view&-today .@{cellClassName} {
|
|
&::before {
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
z-index: 1;
|
|
border: @border-width-base @border-style-base @primary-color;
|
|
border-radius: @border-radius-base;
|
|
content: '';
|
|
}
|
|
}
|
|
|
|
// >>> In Range
|
|
&-in-view&-in-range {
|
|
position: relative;
|
|
|
|
&::before {
|
|
background: @picker-basic-cell-hover-color;
|
|
}
|
|
}
|
|
|
|
// >>> Selected
|
|
&-in-view&-selected .@{cellClassName},
|
|
&-in-view&-range-start .@{cellClassName},
|
|
&-in-view&-range-end .@{cellClassName} {
|
|
color: @text-color-inverse;
|
|
background: @primary-color;
|
|
}
|
|
|
|
&-in-view&-range-start:not(&-range-start-single),
|
|
&-in-view&-range-end:not(&-range-end-single) {
|
|
&::before {
|
|
background: @picker-basic-cell-hover-color;
|
|
}
|
|
}
|
|
|
|
&-in-view&-range-start::before {
|
|
left: 50%;
|
|
}
|
|
&-in-view&-range-end::before {
|
|
right: 50%;
|
|
}
|
|
|
|
// >>> Range Hover
|
|
&-in-view&-range-hover-start:not(&-in-range):not(&-range-start):not(&-range-end),
|
|
&-in-view&-range-hover-end:not(&-in-range):not(&-range-start):not(&-range-end),
|
|
&-in-view&-range-hover-start&-range-start-single,
|
|
&-in-view&-range-hover-end&-range-end-single,
|
|
&-in-view&-range-hover:not(&-in-range) {
|
|
&::after {
|
|
position: absolute;
|
|
top: 50%;
|
|
z-index: 0;
|
|
height: 24px;
|
|
border-top: @picker-date-hover-range-border;
|
|
border-bottom: @picker-date-hover-range-border;
|
|
transform: translateY(-50%);
|
|
content: '';
|
|
}
|
|
}
|
|
|
|
// Add space for stash
|
|
&-range-hover-start::after,
|
|
&-range-hover-end::after,
|
|
&-range-hover::after {
|
|
right: 0;
|
|
left: 2px;
|
|
}
|
|
|
|
// Hover with in range
|
|
&-in-view&-in-range&-range-hover::before,
|
|
&-in-view&-range-start&-range-hover::before,
|
|
&-in-view&-range-end&-range-hover::before,
|
|
&-in-view&-range-start:not(&-range-start-single)&-range-hover-start::before,
|
|
&-in-view&-range-end:not(&-range-end-single)&-range-hover-end::before,
|
|
.@{picker-prefix-cls}-panel
|
|
> :not(.@{picker-prefix-cls}-date-panel)
|
|
&-in-view&-in-range&-range-hover-start::before,
|
|
.@{picker-prefix-cls}-panel
|
|
> :not(.@{picker-prefix-cls}-date-panel)
|
|
&-in-view&-in-range&-range-hover-end::before {
|
|
background: @picker-basic-cell-hover-with-range-color;
|
|
}
|
|
|
|
// DatePanel only
|
|
.@{picker-prefix-cls}-date-panel &-in-view&-in-range&-range-hover-start .@{cellClassName},
|
|
.@{picker-prefix-cls}-date-panel &-in-view&-in-range&-range-hover-end .@{cellClassName} {
|
|
&::after {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
z-index: -1;
|
|
background: @picker-basic-cell-hover-with-range-color;
|
|
content: '';
|
|
}
|
|
}
|
|
.@{picker-prefix-cls}-date-panel
|
|
&-in-view&-in-range&-range-hover-start
|
|
.@{cellClassName}::after {
|
|
right: -6px - @border-width-base;
|
|
left: 0;
|
|
}
|
|
.@{picker-prefix-cls}-date-panel &-in-view&-in-range&-range-hover-end .@{cellClassName}::after {
|
|
right: 0;
|
|
left: -6px - @border-width-base;
|
|
}
|
|
|
|
// Hover with range start & end
|
|
&-range-hover&-range-start::after {
|
|
right: 50%;
|
|
}
|
|
&-range-hover&-range-end::after {
|
|
left: 50%;
|
|
}
|
|
|
|
// Edge start
|
|
tr > &-in-view&-range-hover:first-child::after,
|
|
tr > &-in-view&-range-hover-end:first-child::after,
|
|
&-in-view&-range-hover-edge-start:not(&-range-hover-edge-start-near-range)::after,
|
|
&-in-view&-range-hover-start::after {
|
|
left: 6px;
|
|
border-left: @picker-date-hover-range-border;
|
|
border-top-left-radius: @border-radius-base;
|
|
border-bottom-left-radius: @border-radius-base;
|
|
}
|
|
|
|
// Edge end
|
|
tr > &-in-view&-range-hover:last-child::after,
|
|
tr > &-in-view&-range-hover-start:last-child::after,
|
|
&-in-view&-range-hover-edge-end:not(&-range-hover-edge-end-near-range)::after,
|
|
&-in-view&-range-hover-end::after {
|
|
right: 6px;
|
|
border-right: @picker-date-hover-range-border;
|
|
border-top-right-radius: @border-radius-base;
|
|
border-bottom-right-radius: @border-radius-base;
|
|
}
|
|
|
|
// >>> Disabled
|
|
&-disabled {
|
|
pointer-events: none;
|
|
|
|
.@{cellClassName} {
|
|
color: @disabled-color;
|
|
background: transparent;
|
|
}
|
|
|
|
&::before {
|
|
background: @disabled-bg;
|
|
}
|
|
}
|
|
&-disabled&-today .@{cellClassName}::before {
|
|
border-color: @disabled-color;
|
|
}
|
|
}
|
|
|
|
&-cell {
|
|
padding: 3px 0;
|
|
color: @disabled-color;
|
|
cursor: pointer;
|
|
|
|
// In view
|
|
&-in-view {
|
|
color: @text-color;
|
|
}
|
|
|
|
// Disabled
|
|
&-disabled {
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.picker-cell-inner(~'@{picker-cell-inner-cls}');
|
|
.picker-cell-inner(~'@{picker-legacy-cell-cls}');
|
|
}
|
|
|
|
&-decade-panel,
|
|
&-year-panel,
|
|
&-month-panel {
|
|
.@{picker-prefix-cls}-content {
|
|
height: 265px;
|
|
}
|
|
|
|
.@{picker-cell-inner-cls} {
|
|
padding: 0 @padding-xs;
|
|
}
|
|
|
|
.@{picker-prefix-cls}-cell {
|
|
&-disabled .@{picker-cell-inner-cls} {
|
|
background: @disabled-bg;
|
|
}
|
|
}
|
|
}
|
|
|
|
&-decade-panel {
|
|
.@{picker-prefix-cls}-cell {
|
|
&::before {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ======================== Footer ========================
|
|
&-footer {
|
|
line-height: @picker-text-height - 2 * @border-width-base;
|
|
text-align: center;
|
|
border-bottom: @border-width-base @border-style-base transparent;
|
|
|
|
.@{picker-prefix-cls}-panel & {
|
|
border-top: @picker-border;
|
|
}
|
|
|
|
&-extra {
|
|
padding: 0 @padding-sm;
|
|
line-height: @picker-text-height - 2 * @border-width-base;
|
|
text-align: left;
|
|
|
|
&:not(:last-child) {
|
|
border-bottom: @picker-border;
|
|
}
|
|
}
|
|
}
|
|
|
|
&-now {
|
|
text-align: left;
|
|
}
|
|
|
|
&-today-btn {
|
|
color: @link-color;
|
|
|
|
&:hover {
|
|
color: @link-hover-color;
|
|
}
|
|
|
|
&:active {
|
|
color: @link-active-color;
|
|
}
|
|
}
|
|
|
|
// ========================================================
|
|
// = Special =
|
|
// ========================================================
|
|
|
|
// ===================== Decade Panel =====================
|
|
&-decade-panel {
|
|
.@{picker-cell-inner-cls} {
|
|
padding: 0 (@padding-xs / 2);
|
|
}
|
|
}
|
|
|
|
// ================== Year & Month Panel ==================
|
|
&-year-panel,
|
|
&-month-panel {
|
|
@hover-cell-fixed-distance: (
|
|
(@picker-panel-width - @padding-xs * 2) / 3 - @picker-year-month-cell-width
|
|
) / 2;
|
|
|
|
.@{picker-prefix-cls}-body {
|
|
padding: 0 @padding-xs;
|
|
}
|
|
|
|
.@{picker-cell-inner-cls} {
|
|
width: @picker-year-month-cell-width;
|
|
}
|
|
|
|
.@{picker-prefix-cls}-cell-range-hover-start::after {
|
|
left: @hover-cell-fixed-distance;
|
|
border-left: @picker-date-hover-range-border;
|
|
border-radius: @border-radius-base 0 0 @border-radius-base;
|
|
}
|
|
.@{picker-prefix-cls}-cell-range-hover-end::after {
|
|
right: @hover-cell-fixed-distance;
|
|
border-right: @picker-date-hover-range-border;
|
|
border-radius: 0 @border-radius-base @border-radius-base 0;
|
|
}
|
|
}
|
|
|
|
// ====================== Week Panel ======================
|
|
&-week-panel {
|
|
.@{picker-prefix-cls}-body {
|
|
padding: @padding-xs @padding-sm;
|
|
}
|
|
|
|
// Clear cell style
|
|
.@{picker-prefix-cls}-cell {
|
|
&:hover .@{picker-cell-inner-cls},
|
|
&-selected .@{picker-cell-inner-cls},
|
|
.@{picker-cell-inner-cls} {
|
|
background: transparent !important;
|
|
}
|
|
}
|
|
|
|
&-row {
|
|
td {
|
|
transition: background @animation-duration-slow;
|
|
}
|
|
|
|
&:hover td {
|
|
background: @picker-basic-cell-hover-color;
|
|
}
|
|
|
|
&-selected td,
|
|
&-selected:hover td {
|
|
background: @primary-color;
|
|
|
|
&.@{picker-prefix-cls}-cell-week {
|
|
color: fade(@text-color-inverse, 50%);
|
|
}
|
|
|
|
&.@{picker-prefix-cls}-cell-today .@{picker-cell-inner-cls}::before {
|
|
border-color: @text-color-inverse;
|
|
}
|
|
|
|
.@{picker-cell-inner-cls} {
|
|
color: @text-color-inverse;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// ====================== Date Panel ======================
|
|
&-date-panel {
|
|
.@{picker-prefix-cls}-body {
|
|
padding: @padding-xs @padding-sm;
|
|
}
|
|
|
|
.@{picker-prefix-cls}-content {
|
|
width: 36px * 7;
|
|
|
|
th {
|
|
width: 36px;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ==================== Datetime Panel ====================
|
|
&-datetime-panel {
|
|
display: flex;
|
|
|
|
.@{picker-prefix-cls}-time-panel {
|
|
border-left: @picker-border;
|
|
}
|
|
|
|
.@{picker-prefix-cls}-date-panel,
|
|
.@{picker-prefix-cls}-time-panel {
|
|
transition: opacity @animation-duration-slow;
|
|
}
|
|
|
|
// Keyboard
|
|
&-active {
|
|
.@{picker-prefix-cls}-date-panel,
|
|
.@{picker-prefix-cls}-time-panel {
|
|
opacity: 0.3;
|
|
|
|
&-active {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// ====================== Time Panel ======================
|
|
&-time-panel {
|
|
width: auto;
|
|
min-width: auto;
|
|
|
|
.@{picker-prefix-cls}-content {
|
|
display: flex;
|
|
flex: auto;
|
|
height: 224px;
|
|
}
|
|
|
|
&-column {
|
|
flex: 1 0 auto;
|
|
width: 56px;
|
|
margin: 0;
|
|
padding: 0 0 194px 0;
|
|
overflow-y: hidden;
|
|
text-align: left;
|
|
list-style: none;
|
|
transition: background @animation-duration-slow;
|
|
|
|
&:not(:first-child) {
|
|
border-left: @picker-border;
|
|
}
|
|
|
|
&-active {
|
|
background: fade(@calendar-item-active-bg, 20%);
|
|
}
|
|
|
|
&:hover {
|
|
overflow-y: auto;
|
|
}
|
|
|
|
> li {
|
|
margin: 0;
|
|
padding: 0;
|
|
|
|
&.@{picker-prefix-cls}-time-panel-cell {
|
|
.@{picker-prefix-cls}-time-panel-cell-inner {
|
|
display: block;
|
|
width: 100%;
|
|
height: 32px;
|
|
margin: 0;
|
|
padding: 0;
|
|
color: @text-color;
|
|
line-height: 32px;
|
|
text-align: center;
|
|
border-radius: 0;
|
|
cursor: pointer;
|
|
transition: background @animation-duration-slow;
|
|
|
|
&:hover {
|
|
background: @item-hover-bg;
|
|
}
|
|
}
|
|
|
|
&-selected {
|
|
.@{picker-prefix-cls}-time-panel-cell-inner {
|
|
background: @calendar-item-active-bg;
|
|
}
|
|
}
|
|
|
|
&-disabled {
|
|
.@{picker-prefix-cls}-time-panel-cell-inner {
|
|
color: @disabled-color;
|
|
background: transparent;
|
|
cursor: not-allowed;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|