@import '../../css/_custom-variables/libs'; $flatpickr-cell-size: 2.125rem !default; $flatpickr-month-height: 1.75rem !default; $flatpickr-week-height: 1.75rem !default; $flatpickr-content-padding: .25rem !default; $flatpickr-time-picker-height: 40px !default; $flatpickr-animation-duration: 400ms !default; $flatpickr-width: ($flatpickr-cell-size * 7)+($flatpickr-content-padding * 2); @mixin keyframes($name) { @-webkit-keyframes #{$name} { @content; } @-moz-keyframes #{$name} { @content; } @keyframes #{$name} { @content; } } .flatpickr-calendar { position: absolute; visibility: hidden; overflow: hidden; box-sizing: border-box; padding: 0; max-height: 0; border: 0; background: transparent; text-align: center; opacity: 0; animation: none; touch-action: manipulation; &.open, &.inline { visibility: visible; overflow: visible; max-height: 640px; opacity: 1; } &.open { display: inline-block; } &.animate.open { animation: fpFadeInDown 300ms cubic-bezier(.23, 1, .32, 1); } &:not(.inline):not(.open) { display: none !important; } &.inline { position: relative; top: 2px; display: block; } &.static { position: absolute; top: calc(100% + 2px); } &.static.open { z-index: 999; display: block; } &.hasWeeks { width: auto; } html:not([dir=rtl]) &.hasWeeks .flatpickr-days { border-bottom-left-radius: 0 !important; } [dir=rtl] &.hasWeeks .flatpickr-days { border-bottom-right-radius: 0 !important; } &.showTimeInput.hasTime .flatpickr-time { height: $flatpickr-time-picker-height; } &.noCalendar.hasTime .flatpickr-time { height: auto; } input[type=number] { -moz-appearance:textfield; } input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; } } .flatpickr-wrapper { position: relative; display: inline-block; } .flatpickr-month { position: relative; overflow: hidden; height: $flatpickr-month-height; text-align: center; line-height: 1; user-select: none; } .flatpickr-prev-month, .flatpickr-next-month { position: absolute; top: 0; z-index: 3; padding: 0 .5rem; height: $flatpickr-month-height; text-decoration: none; line-height: $flatpickr-month-height; opacity: .5; cursor: pointer; svg { vertical-align: middle; } } .flatpickr-prev-month i, .flatpickr-next-month i { position: relative; } .flatpickr-prev-month { &.flatpickr-prev-month { left: 0; } [dir=rtl] & { right: 0; left: auto; transform: scaleX(-1); } } .flatpickr-next-month { &.flatpickr-prev-month { right: 0; left: 0; } &.flatpickr-next-month { right: 0; } [dir=rtl] & { right: auto; left: 0; transform: scaleX(-1); } } .flatpickr-prev-month:hover, .flatpickr-next-month:hover { opacity: 1; } .flatpickr-prev-month svg, .flatpickr-next-month svg { width: 14px; } .flatpickr-prev-month svg path, .flatpickr-next-month svg path { transition: fill .1s; fill: inherit; } .numInputWrapper { position: relative; height: auto; input, span { display: inline-block; } input { width: 100%; } span { position: absolute; right: 0; display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 14px; height: 50%; line-height: 1; opacity: 0; cursor: pointer; [dir=rtl] & { right: auto; left: 0; } &:hover { background: rgba(0, 0, 0, .1); } &:active { background: rgba(0, 0, 0, .2); } &:after { content: ""; display: block; width: 0; height: 0; } &.arrowUp { top: 0; } &.arrowUp:after { border-right: 4px solid transparent; border-bottom: 4px solid rgba(72, 72, 72, .6); border-left: 4px solid transparent; } &.arrowDown { top: 50%; } &.arrowDown:after { border-top: 4px solid rgba(72, 72, 72, .6); border-right: 4px solid transparent; border-left: 4px solid transparent; } svg { width: inherit; height: auto; } svg path { fill: rgba(255, 255, 255, .5); } } &:hover { background: rgba(0, 0, 0, .05); } &:hover span { opacity: 1; } } .flatpickr-current-month { position: absolute; left: 12.5%; display: inline-block; width: 75%; height: $flatpickr-month-height; text-align: center; font-weight: 300; line-height: 1; transform: translate3d(0px, 0px, 0px); &.slideLeft { transform: translate3d(-100%, 0px, 0px); animation: fpFadeOut $flatpickr-animation-duration ease, fpSlideLeft $flatpickr-animation-duration cubic-bezier(.23, 1, .32, 1); } &.slideLeftNew { transform: translate3d(100%, 0px, 0px); animation: fpFadeIn $flatpickr-animation-duration ease, fpSlideLeftNew $flatpickr-animation-duration cubic-bezier(.23, 1, .32, 1); } &.slideRight { transform: translate3d(100%, 0px, 0px); animation: fpFadeOut $flatpickr-animation-duration ease, fpSlideRight $flatpickr-animation-duration cubic-bezier(.23, 1, .32, 1); } &.slideRightNew { transform: translate3d(0, 0, 0px); animation: fpFadeIn $flatpickr-animation-duration ease, fpSlideRightNew $flatpickr-animation-duration cubic-bezier(.23, 1, .32, 1); } span.cur-month { display: inline-block; margin-left: .5ch; padding: 0; color: inherit; font-weight: 700; font-family: inherit; [dir=rtl] & { margin-right: .5ch; margin-left: 0; } &:hover { background: rgba(0, 0, 0, .05); } } .numInputWrapper { display: inline-block; width: 6ch; width: 7ch\0; } input.cur-year { display: inline-block; box-sizing: border-box; margin: 0; padding: 0 0 0 .5ch; height: initial; border: 0; border-radius: 0; background: transparent; color: inherit; vertical-align: initial; font-weight: 300; font-size: inherit; font-family: inherit; line-height: inherit; cursor: default; [dir=rtl] & { padding-right: .5ch; padding-left: 0; } &:focus { outline: 0; } &[disabled], &[disabled]:hover { background: transparent; pointer-events: none; } &[disabled] { opacity: .5; } } } .flatpickr-weekdaycontainer { display: flex; width: 100%; } .flatpickr-weekdays { display: flex; overflow: hidden; align-items: center; width: 100%; height: $flatpickr-week-height; text-align: center; } span.flatpickr-weekday { display: block; flex: 1; margin: 0; text-align: center; line-height: 1; cursor: default; } .dayContainer, .flatpickr-weeks { padding: 1px 0 0 0; } .flatpickr-days { position: relative; display: flex; overflow: hidden; width: auto !important; &:focus { outline: 0; } .flatpickr-calendar.showTimeInput & { border-bottom: 0 !important; border-bottom-right-radius: 0 !important; border-bottom-left-radius: 0 !important; } } .dayContainer { display: inline-block; display: flex; flex-wrap: wrap; justify-content: space-around; box-sizing: border-box; padding: 0; min-width: $flatpickr-cell-size * 7; max-width: $flatpickr-cell-size * 7; width: $flatpickr-cell-size * 7; outline: 0; opacity: 1; transform: translate3d(0px, 0px, 0px); } .flatpickr-calendar.animate .dayContainer { &.slideLeft { transform: translate3d(-100%, 0px, 0px); animation: fpFadeOut $flatpickr-animation-duration cubic-bezier(.23, 1, .32, 1), fpSlideLeft $flatpickr-animation-duration cubic-bezier(.23, 1, .32, 1); } &.slideLeftNew { transform: translate3d(-100%, 0px, 0px); animation: fpFadeIn $flatpickr-animation-duration cubic-bezier(.23, 1, .32, 1), fpSlideLeft $flatpickr-animation-duration cubic-bezier(.23, 1, .32, 1); } &.slideRight { transform: translate3d(100%, 0px, 0px); animation: fpFadeOut $flatpickr-animation-duration cubic-bezier(.23, 1, .32, 1), fpSlideRight $flatpickr-animation-duration cubic-bezier(.23, 1, .32, 1); } &.slideRightNew { animation: fpFadeIn $flatpickr-animation-duration cubic-bezier(.23, 1, .32, 1), fpSlideRightNew $flatpickr-animation-duration cubic-bezier(.23, 1, .32, 1); } } .flatpickr-day { position: relative; display: inline-block; flex-basis: 14.2857143%; justify-content: center; box-sizing: border-box; margin: 0; max-width: $flatpickr-cell-size; width: 14.2857143%; height: $flatpickr-cell-size; border: 1px solid transparent; background: none; text-align: center; font-weight: 400; line-height: calc(#{$flatpickr-cell-size} - 2px); cursor: pointer; &.inRange, &.prevMonthDay.inRange, &.nextMonthDay.inRange, &.today.inRange, &.prevMonthDay.today.inRange, &.nextMonthDay.today.inRange, &:hover, &.prevMonthDay:hover, &.nextMonthDay:hover, &:focus, &.prevMonthDay:focus, &.nextMonthDay:focus { outline: 0; cursor: pointer; } &.inRange:not(.startRange):not(.endRange) { border-radius: 0 !important; } &.disabled, &.disabled:hover { border-color: transparent; background: transparent; cursor: default; pointer-events: none; } &.prevMonthDay, &.nextMonthDay { border-color: transparent; background: transparent; cursor: default; } &.notAllowed, &.notAllowed.prevMonthDay, &.notAllowed.nextMonthDay { border-color: transparent; background: transparent; cursor: default; } &.week.selected { border-radius: 0; } html:not([dir=rtl]) &.selected.startRange, html:not([dir=rtl]) &.startRange.startRange, html:not([dir=rtl]) &.endRange.startRange { border-top-right-radius: 0; border-bottom-right-radius: 0; } html:not([dir=rtl]) &.selected.endRange, html:not([dir=rtl]) &.startRange.endRange, html:not([dir=rtl]) &.endRange.endRange { border-top-left-radius: 0; border-bottom-left-radius: 0; } [dir=rtl] &.selected.startRange, [dir=rtl] &.startRange.startRange, [dir=rtl] &.endRange.startRange { border-top-left-radius: 0; border-bottom-left-radius: 0; } [dir=rtl] &.selected.endRange, [dir=rtl] &.startRange.endRange, [dir=rtl] &.endRange.endRange { border-top-right-radius: 0; border-bottom-right-radius: 0; } } .rangeMode .flatpickr-day { margin-top: 1px; } .flatpickr-weekwrapper { display: inline-block; float: left; .flatpickr-weeks { padding: $flatpickr-content-padding 0; background-clip: padding-box !important; html:not([dir=rtl]) & .flatpickr-weeks { border-bottom-right-radius: 0 !important; } [dir=rtl] & .flatpickr-weeks { border-bottom-left-radius: 0 !important; } } .flatpickr-calendar.showTimeInput .flatpickr-weeks { border-bottom: 0 !important; border-bottom-right-radius: 0 !important; border-bottom-left-radius: 0 !important; } .flatpickr-weekday { float: none; width: 100%; line-height: $flatpickr-week-height; } span.flatpickr-day { display: block; max-width: none; width: $flatpickr-cell-size; background: none !important; } } .flatpickr-calendar.hasTime.showTimeInput .flatpickr-weeks { border-bottom: 0 !important; border-bottom-left-radius: 0 !important; border-bottom-right-radius: 0 !important; } .flatpickr-innerContainer { display: block; display: flex; overflow: hidden; box-sizing: border-box; } .flatpickr-rContainer { display: inline-block; box-sizing: border-box; padding: 0; } .flatpickr-time { display: block; display: flex; overflow: hidden; box-sizing: border-box; max-height: $flatpickr-time-picker-height; height: 0; outline: 0; background-clip: padding-box !important; text-align: center; line-height: $flatpickr-time-picker-height; &:after { content: ""; display: table; clear: both; } .numInputWrapper { float: left; flex: 1; width: 40%; height: $flatpickr-time-picker-height; } &.hasSeconds .numInputWrapper { width: 26%; } &.time24hr .numInputWrapper { width: 49%; } input { position: relative; box-sizing: border-box; margin: 0; padding: 0; height: inherit; border: 0; border-radius: 0; background: transparent; box-shadow: none; text-align: center; line-height: inherit; cursor: pointer; &.flatpickr-minute, &.flatpickr-second { font-weight: normal; } &:focus { outline: 0; border: 0; } } .flatpickr-time-separator { display: inline-block; float: left; align-self: center; width: 2%; height: inherit; line-height: inherit; user-select: none; } .flatpickr-am-pm { display: inline-block; float: left; align-self: center; width: 2%; width: 18%; height: inherit; outline: 0; text-align: center; font-weight: normal; line-height: inherit; cursor: pointer; user-select: none; &:hover { background: rgba(0, 0, 0, .05); } } .flatpickr-calendar.noCalendar & { box-shadow: none !important; } .flatpickr-calendar:not(.noCalendar) & { border-top: 0; border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; } } .flatpickr-input[readonly] { cursor: pointer; } // Animations // @include keyframes(fpFadeInDown) { from { opacity: 0; transform: translate3d(0, -20px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } @include keyframes(fpFadeOut) { from { opacity: 1; } to { opacity: 0; } } @include keyframes(fpFadeIn) { from { opacity: 0; } to { opacity: 1; } } @include keyframes(fpSlideLeft) { from { transform: translate3d(0px, 0px, 0px); } to { transform: translate3d(-100%, 0px, 0px); } } @include keyframes(fpSlideLeftNew) { from { transform: translate3d(100%, 0px, 0px); } to { transform: translate3d(0px, 0px, 0px); } } @include keyframes(fpSlideRight) { from { transform: translate3d(0, 0, 0px); } to { transform: translate3d(100%, 0px, 0px); } } @include keyframes(fpSlideRightNew) { from { transform: translate3d(-100%, 0, 0px); } to { transform: translate3d(0, 0, 0px); } } .default-style { @import "../../css/_appwork/include"; // Dimensions .flatpickr-calendar, .flatpickr-days { width: calc(#{$flatpickr-width} + #{$dropdown-border-width * 2}) !important; } .flatpickr-calendar.hasWeeks { width: calc(#{$flatpickr-width + $flatpickr-cell-size} + #{$dropdown-border-width * 3}) !important; } .flatpickr-calendar.open { z-index: $zindex-popover; } .flatpickr-input[readonly] { background: $input-bg; } .flatpickr-days { padding: $flatpickr-content-padding; border: $dropdown-border-width solid opacify($dropdown-border-color, .05); border-top: 0; background: $dropdown-bg; background-clip: padding-box; @include border-bottom-radius($border-radius); } &:not([dir=rtl]) .flatpickr-calendar.hasWeeks .flatpickr-days { padding-left: calc(#{$flatpickr-content-padding} + #{$dropdown-border-width}); border-left: 0; box-shadow: $dropdown-border-width 0 0 opacify($dropdown-border-color, .05) inset; } &[dir=rtl] .flatpickr-calendar.hasWeeks .flatpickr-days { padding-right: calc(#{$flatpickr-content-padding} + #{$dropdown-border-width}); border-right: 0; box-shadow: -$dropdown-border-width 0 0 opacify($dropdown-border-color, .05) inset; } .flatpickr-calendar { box-shadow: $floating-component-shadow; font-size: $font-size-base; line-height: $line-height-base; @include border-radius($border-radius); &.showTimeInput.hasTime .flatpickr-time { box-shadow: 0 1px 0 $border-color inset; } &.hasTime:not(.noCalendar):not(.showTimeInput) .flatpickr-time { display: none !important; } } .flatpickr-month { @include border-top-radius($border-radius); } .flatpickr-current-month { padding: ($flatpickr-month-height - ($font-size-base * strip-unit($big-font-size) / 100) - .25rem) 0 0; font-size: $big-font-size; } span.flatpickr-weekday { font-weight: $font-weight-semibold; font-size: $font-size-sm; } .flatpickr-day { color: $body-color; @include border-radius($border-radius); &:hover, &:focus, &.prevMonthDay:hover, &.nextMonthDay:hover, &.today:hover, &.prevMonthDay:focus, &.nextMonthDay:focus, &.today:focus { border-color: transparent; background: $gray-100; color: $body-color; } &.prevMonthDay, &.nextMonthDay { color: $text-light; } &.disabled { color: $text-light !important; } &.selected.startRange.endRange { border-radius: $border-radius !important; } } .flatpickr-weeks { border-bottom: $dropdown-border-width solid opacify($dropdown-border-color, .05); border-left: $dropdown-border-width solid opacify($dropdown-border-color, .05); background: rgba-to-hex($gray-50); @include border-bottom-radius($border-radius); border-bottom-right-radius: 0; } &[dir=rtl] .flatpickr-weeks { border-right: $dropdown-border-width solid opacify($dropdown-border-color, .05); border-left: 0; @include border-bottom-radius($border-radius); border-bottom-left-radius: 0; } .flatpickr-time { border: $dropdown-border-width solid opacify($dropdown-border-color, .05); background: $dropdown-bg; @include border-radius($border-radius); .numInputWrapper span { &.arrowUp:after { border-bottom-color: $text-muted; } &.arrowDown:after { border-top-color: $text-muted; } } input { color: $body-color; font-size: $font-size-base; &.flatpickr-hour { font-weight: bold; } &.flatpickr-minute, &.flatpickr-second { font-weight: $font-weight-semibold; } } .flatpickr-time-separator { color: $body-color; font-weight: $font-weight-semibold; } .flatpickr-am-pm { color: $body-color; } } } .material-style { @import "../../css/_appwork/include-material"; .flatpickr-calendar, .flatpickr-days { width: calc(#{$flatpickr-width} + #{$dropdown-border-width * 2}) !important; } .flatpickr-calendar.hasWeeks, .flatpickr-calendar.hasWeeks .flatpickr-days { width: calc(#{$flatpickr-width + $flatpickr-cell-size} + #{$dropdown-border-width * 3}) !important; } .flatpickr-calendar.open { z-index: $zindex-popover; } .flatpickr-input[readonly] { background: $input-bg; } .flatpickr-days { padding: $flatpickr-content-padding; border: $dropdown-border-width solid opacify($dropdown-border-color, .05); border-top: 0; background: $dropdown-bg; background-clip: padding-box; @include border-bottom-radius($border-radius); } &:not([dir=rtl]) .flatpickr-calendar.hasWeeks .flatpickr-days { padding-left: calc(#{$flatpickr-content-padding} + #{$dropdown-border-width}); border-left: 0; box-shadow: $dropdown-border-width 0 0 opacify($dropdown-border-color, .05) inset; } &[dir=rtl] .flatpickr-calendar.hasWeeks .flatpickr-days { padding-right: calc(#{$flatpickr-content-padding} + #{$dropdown-border-width}); border-right: 0; box-shadow: -$dropdown-border-width 0 0 opacify($dropdown-border-color, .05) inset; } .flatpickr-calendar { box-shadow: $floating-component-shadow; font-size: $font-size-base; line-height: $line-height-base; @include border-radius($border-radius); &.showTimeInput.hasTime .flatpickr-time { box-shadow: 0 1px 0 $border-color inset; } &.hasTime:not(.noCalendar):not(.showTimeInput) .flatpickr-time { display: none !important; } } .flatpickr-month { @include border-top-radius($border-radius); } .flatpickr-current-month { padding: ($flatpickr-month-height - ($font-size-base * strip-unit($big-font-size) / 100) - .25rem) 0 0; font-size: $big-font-size; } span.flatpickr-weekday { font-weight: $font-weight-semibold; font-size: $font-size-sm; } .flatpickr-day { color: $body-color; font-weight: $font-weight-semibold; font-size: $font-size-sm; @include border-radius(10rem); &:hover, &:focus, &.prevMonthDay:hover, &.nextMonthDay:hover, &.today:hover, &.prevMonthDay:focus, &.nextMonthDay:focus, &.today:focus { border-color: transparent; background: $gray-100; color: $body-color; } &.prevMonthDay, &.nextMonthDay { color: $text-light; } &.disabled { color: $text-light !important; } &.selected.startRange.endRange { border-radius: 10rem !important; } } .flatpickr-weeks { border-bottom: $dropdown-border-width solid opacify($dropdown-border-color, .05); border-left: $dropdown-border-width solid opacify($dropdown-border-color, .05); background: rgba-to-hex($gray-50); @include border-bottom-radius($border-radius); } &[dir=rtl] .flatpickr-weeks { border-right: $dropdown-border-width solid opacify($dropdown-border-color, .05); border-left: 0; } .flatpickr-time { border: $dropdown-border-width solid opacify($dropdown-border-color, .05); background: $dropdown-bg; @include border-radius($border-radius); .numInputWrapper span { &.arrowUp:after { border-bottom-color: $text-muted; } &.arrowDown:after { border-top-color: $text-muted; } } input { color: $body-color; font-size: $font-size-base; &.flatpickr-hour { font-weight: bold; } &.flatpickr-minute, &.flatpickr-second { font-weight: $font-weight-semibold; } } .flatpickr-time-separator { color: $body-color; font-weight: $font-weight-semibold; } .flatpickr-am-pm { color: $body-color; } } }