mirror of
https://github.com/bunkerity/bunkerized-nginx
synced 2023-12-13 21:30:18 +01:00
change logs datepicker
*change datepicker lib to flatpickr *change format to valid js date to convert to timestamp *force EN datepicker langage *add darkmode style and enhance light mode
This commit is contained in:
parent
8b0d8a9d3d
commit
cb77a70106
192 changed files with 4447 additions and 5735 deletions
814
src/ui/static/css/flatpickr.css
Normal file
814
src/ui/static/css/flatpickr.css
Normal file
|
@ -0,0 +1,814 @@
|
|||
.flatpickr-calendar {
|
||||
background: transparent;
|
||||
opacity: 0;
|
||||
display: none;
|
||||
text-align: center;
|
||||
visibility: hidden;
|
||||
padding: 0;
|
||||
-webkit-animation: none;
|
||||
animation: none;
|
||||
direction: ltr;
|
||||
border: 0;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
border-radius: 5px;
|
||||
position: absolute;
|
||||
width: 307.875px;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-ms-touch-action: manipulation;
|
||||
touch-action: manipulation;
|
||||
-webkit-box-shadow: 0 3px 13px rgba(0, 0, 0, 0.08);
|
||||
box-shadow: 0 3px 13px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
.flatpickr-calendar.open,
|
||||
.flatpickr-calendar.inline {
|
||||
opacity: 1;
|
||||
max-height: 640px;
|
||||
visibility: visible;
|
||||
}
|
||||
.flatpickr-calendar.open {
|
||||
display: inline-block;
|
||||
z-index: 99999;
|
||||
}
|
||||
.flatpickr-calendar.animate.open {
|
||||
-webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
|
||||
animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
|
||||
}
|
||||
.flatpickr-calendar.inline {
|
||||
display: block;
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
.flatpickr-calendar.static {
|
||||
position: absolute;
|
||||
top: calc(100% + 2px);
|
||||
}
|
||||
.flatpickr-calendar.static.open {
|
||||
z-index: 999;
|
||||
display: block;
|
||||
}
|
||||
.flatpickr-calendar.multiMonth
|
||||
.flatpickr-days
|
||||
.dayContainer:nth-child(n + 1)
|
||||
.flatpickr-day.inRange:nth-child(7n + 7) {
|
||||
-webkit-box-shadow: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.flatpickr-calendar.multiMonth
|
||||
.flatpickr-days
|
||||
.dayContainer:nth-child(n + 2)
|
||||
.flatpickr-day.inRange:nth-child(7n + 1) {
|
||||
-webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
|
||||
box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
|
||||
}
|
||||
.flatpickr-calendar .hasWeeks .dayContainer,
|
||||
.flatpickr-calendar .hasTime .dayContainer {
|
||||
border-bottom: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.flatpickr-calendar .hasWeeks .dayContainer {
|
||||
border-left: 0;
|
||||
}
|
||||
.flatpickr-calendar.hasTime .flatpickr-time {
|
||||
height: 40px;
|
||||
border-top: 1px solid rgba(72, 72, 72, 0.2);
|
||||
}
|
||||
.flatpickr-calendar.hasTime .flatpickr-innerContainer {
|
||||
border-bottom: 0;
|
||||
}
|
||||
.flatpickr-calendar.hasTime .flatpickr-time {
|
||||
border: 1px solid rgba(72, 72, 72, 0.2);
|
||||
}
|
||||
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
|
||||
height: auto;
|
||||
}
|
||||
.flatpickr-calendar:before,
|
||||
.flatpickr-calendar:after {
|
||||
position: absolute;
|
||||
display: block;
|
||||
pointer-events: none;
|
||||
border: solid transparent;
|
||||
content: "";
|
||||
height: 0;
|
||||
width: 0;
|
||||
left: 22px;
|
||||
}
|
||||
.flatpickr-calendar.rightMost:before,
|
||||
.flatpickr-calendar.arrowRight:before,
|
||||
.flatpickr-calendar.rightMost:after,
|
||||
.flatpickr-calendar.arrowRight:after {
|
||||
left: auto;
|
||||
right: 22px;
|
||||
}
|
||||
.flatpickr-calendar.arrowCenter:before,
|
||||
.flatpickr-calendar.arrowCenter:after {
|
||||
left: 50%;
|
||||
right: 50%;
|
||||
}
|
||||
.flatpickr-calendar:before {
|
||||
border-width: 5px;
|
||||
margin: 0 -5px;
|
||||
}
|
||||
.flatpickr-calendar:after {
|
||||
border-width: 4px;
|
||||
margin: 0 -4px;
|
||||
}
|
||||
.flatpickr-calendar.arrowTop:before,
|
||||
.flatpickr-calendar.arrowTop:after {
|
||||
bottom: 100%;
|
||||
}
|
||||
.flatpickr-calendar.arrowTop:before {
|
||||
border-bottom-color: rgba(72, 72, 72, 0.2);
|
||||
}
|
||||
.flatpickr-calendar.arrowTop:after {
|
||||
border-bottom-color: #085577;
|
||||
}
|
||||
.flatpickr-calendar.arrowBottom:before,
|
||||
.flatpickr-calendar.arrowBottom:after {
|
||||
top: 100%;
|
||||
}
|
||||
.flatpickr-calendar.arrowBottom:before {
|
||||
border-top-color: rgba(72, 72, 72, 0.2);
|
||||
}
|
||||
.flatpickr-calendar.arrowBottom:after {
|
||||
border-top-color: #085577;
|
||||
}
|
||||
.flatpickr-calendar:focus {
|
||||
outline: 0;
|
||||
}
|
||||
.flatpickr-wrapper {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
.flatpickr-months {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
}
|
||||
.flatpickr-months .flatpickr-month {
|
||||
border-radius: 5px 5px 0 0;
|
||||
background: #085577;
|
||||
color: #fff;
|
||||
fill: #fff;
|
||||
height: 34px;
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
overflow: hidden;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month,
|
||||
.flatpickr-months .flatpickr-next-month {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
height: 34px;
|
||||
padding: 10px;
|
||||
z-index: 3;
|
||||
color: #fff;
|
||||
fill: #fff;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
|
||||
.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
|
||||
display: none;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month i,
|
||||
.flatpickr-months .flatpickr-next-month i {
|
||||
position: relative;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
|
||||
.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
|
||||
/*
|
||||
/*rtl:begin:ignore*/
|
||||
/*
|
||||
*/
|
||||
left: 0;
|
||||
/*
|
||||
/*rtl:end:ignore*/
|
||||
/*
|
||||
*/
|
||||
}
|
||||
/*
|
||||
/*rtl:begin:ignore*/
|
||||
/*
|
||||
/*rtl:end:ignore*/
|
||||
.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
|
||||
.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
|
||||
/*
|
||||
/*rtl:begin:ignore*/
|
||||
/*
|
||||
*/
|
||||
right: 0;
|
||||
/*
|
||||
/*rtl:end:ignore*/
|
||||
/*
|
||||
*/
|
||||
}
|
||||
/*
|
||||
/*rtl:begin:ignore*/
|
||||
/*
|
||||
/*rtl:end:ignore*/
|
||||
.flatpickr-months .flatpickr-prev-month:hover,
|
||||
.flatpickr-months .flatpickr-next-month:hover {
|
||||
color: #bbb;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month:hover svg,
|
||||
.flatpickr-months .flatpickr-next-month:hover svg {
|
||||
fill: #40bb6b;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month svg,
|
||||
.flatpickr-months .flatpickr-next-month svg {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month svg path,
|
||||
.flatpickr-months .flatpickr-next-month svg path {
|
||||
-webkit-transition: fill 0.1s;
|
||||
transition: fill 0.1s;
|
||||
fill: inherit;
|
||||
}
|
||||
.numInputWrapper {
|
||||
position: relative;
|
||||
height: auto;
|
||||
}
|
||||
.numInputWrapper input,
|
||||
.numInputWrapper span {
|
||||
display: inline-block;
|
||||
}
|
||||
.numInputWrapper input {
|
||||
width: 100%;
|
||||
}
|
||||
.numInputWrapper input::-ms-clear {
|
||||
display: none;
|
||||
}
|
||||
.numInputWrapper input::-webkit-outer-spin-button,
|
||||
.numInputWrapper input::-webkit-inner-spin-button {
|
||||
margin: 0;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
.numInputWrapper span {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 14px;
|
||||
padding: 0 4px 0 2px;
|
||||
height: 50%;
|
||||
line-height: 50%;
|
||||
opacity: 0;
|
||||
cursor: pointer;
|
||||
border: 1px solid rgba(72, 72, 72, 0.15);
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.numInputWrapper span:hover {
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.numInputWrapper span:active {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
.numInputWrapper span:after {
|
||||
display: block;
|
||||
content: "";
|
||||
position: absolute;
|
||||
}
|
||||
.numInputWrapper span.arrowUp {
|
||||
top: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
.numInputWrapper span.arrowUp:after {
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-bottom: 4px solid rgba(72, 72, 72, 0.6);
|
||||
top: 26%;
|
||||
}
|
||||
.numInputWrapper span.arrowDown {
|
||||
top: 50%;
|
||||
}
|
||||
.numInputWrapper span.arrowDown:after {
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 4px solid rgba(72, 72, 72, 0.6);
|
||||
top: 40%;
|
||||
}
|
||||
.numInputWrapper span svg {
|
||||
width: inherit;
|
||||
height: auto;
|
||||
}
|
||||
.numInputWrapper span svg path {
|
||||
fill: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.numInputWrapper:hover {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.numInputWrapper:hover span {
|
||||
opacity: 1;
|
||||
}
|
||||
.flatpickr-current-month {
|
||||
font-size: 135%;
|
||||
line-height: inherit;
|
||||
font-weight: 300;
|
||||
color: inherit;
|
||||
position: absolute;
|
||||
width: 75%;
|
||||
left: 12.5%;
|
||||
padding: 7.48px 0 0 0;
|
||||
line-height: 1;
|
||||
height: 34px;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
-webkit-transform: translate3d(0px, 0px, 0px);
|
||||
transform: translate3d(0px, 0px, 0px);
|
||||
}
|
||||
.flatpickr-current-month span.cur-month {
|
||||
font-family: inherit;
|
||||
font-weight: 700;
|
||||
color: inherit;
|
||||
display: inline-block;
|
||||
margin-left: 0.5ch;
|
||||
padding: 0;
|
||||
}
|
||||
.flatpickr-current-month span.cur-month:hover {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.flatpickr-current-month .numInputWrapper {
|
||||
width: 6ch;
|
||||
width: 7ch\0;
|
||||
display: inline-block;
|
||||
}
|
||||
.flatpickr-current-month .numInputWrapper span.arrowUp:after {
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.flatpickr-current-month .numInputWrapper span.arrowDown:after {
|
||||
border-top-color: #fff;
|
||||
}
|
||||
.flatpickr-current-month input.cur-year {
|
||||
background: transparent;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
color: inherit;
|
||||
cursor: text;
|
||||
padding: 0 0 0 0.5ch;
|
||||
margin: 0;
|
||||
display: inline-block;
|
||||
font-size: inherit;
|
||||
font-family: inherit;
|
||||
font-weight: 300;
|
||||
line-height: inherit;
|
||||
height: auto;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
vertical-align: initial;
|
||||
-webkit-appearance: textfield;
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
.flatpickr-current-month input.cur-year:focus {
|
||||
outline: 0;
|
||||
}
|
||||
.flatpickr-current-month input.cur-year[disabled],
|
||||
.flatpickr-current-month input.cur-year[disabled]:hover {
|
||||
font-size: 100%;
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
background: transparent;
|
||||
pointer-events: none;
|
||||
}
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months {
|
||||
appearance: menulist;
|
||||
background: #085577;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
box-sizing: border-box;
|
||||
color: inherit;
|
||||
cursor: pointer;
|
||||
font-size: inherit;
|
||||
font-family: inherit;
|
||||
font-weight: 300;
|
||||
height: auto;
|
||||
line-height: inherit;
|
||||
margin: -1px 0 0 0;
|
||||
outline: none;
|
||||
padding: 0 0 0 0.5ch;
|
||||
position: relative;
|
||||
vertical-align: initial;
|
||||
-webkit-box-sizing: border-box;
|
||||
-webkit-appearance: menulist;
|
||||
-moz-appearance: menulist;
|
||||
width: auto;
|
||||
}
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months:active {
|
||||
outline: none;
|
||||
}
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.flatpickr-current-month
|
||||
.flatpickr-monthDropdown-months
|
||||
.flatpickr-monthDropdown-month {
|
||||
background-color: #085577;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
}
|
||||
.flatpickr-weekdays {
|
||||
background: #085577;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
height: 28px;
|
||||
}
|
||||
.flatpickr-weekdays .flatpickr-weekdaycontainer {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
span.flatpickr-weekday {
|
||||
cursor: default;
|
||||
font-size: 90%;
|
||||
background: #085577;
|
||||
color: white;
|
||||
line-height: 1;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
display: block;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
font-weight: bolder;
|
||||
}
|
||||
.dayContainer,
|
||||
.flatpickr-weeks {
|
||||
padding: 1px 0 0 0;
|
||||
}
|
||||
.flatpickr-days {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: start;
|
||||
-webkit-align-items: flex-start;
|
||||
-ms-flex-align: start;
|
||||
align-items: flex-start;
|
||||
width: 307.875px;
|
||||
border-left: 1px solid rgba(72, 72, 72, 0.2);
|
||||
border-right: 1px solid rgba(72, 72, 72, 0.2);
|
||||
}
|
||||
.flatpickr-days:focus {
|
||||
outline: 0;
|
||||
}
|
||||
.dayContainer {
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
text-align: left;
|
||||
width: 307.875px;
|
||||
min-width: 307.875px;
|
||||
max-width: 307.875px;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
display: -ms-flexbox;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
-ms-flex-wrap: wrap;
|
||||
-ms-flex-pack: justify;
|
||||
-webkit-justify-content: space-around;
|
||||
justify-content: space-around;
|
||||
-webkit-transform: translate3d(0px, 0px, 0px);
|
||||
transform: translate3d(0px, 0px, 0px);
|
||||
opacity: 1;
|
||||
}
|
||||
.dayContainer + .dayContainer {
|
||||
-webkit-box-shadow: -1px 0 0 rgba(72, 72, 72, 0.2);
|
||||
box-shadow: -1px 0 0 rgba(72, 72, 72, 0.2);
|
||||
}
|
||||
.flatpickr-day {
|
||||
background: none;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 150px;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
color: #484848;
|
||||
cursor: pointer;
|
||||
font-weight: 400;
|
||||
width: 14.2857143%;
|
||||
-webkit-flex-basis: 14.2857143%;
|
||||
-ms-flex-preferred-size: 14.2857143%;
|
||||
flex-basis: 14.2857143%;
|
||||
max-width: 39px;
|
||||
height: 39px;
|
||||
line-height: 39px;
|
||||
margin: 0;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
.flatpickr-day.inRange,
|
||||
.flatpickr-day.prevMonthDay.inRange,
|
||||
.flatpickr-day.nextMonthDay.inRange,
|
||||
.flatpickr-day.today.inRange,
|
||||
.flatpickr-day.prevMonthDay.today.inRange,
|
||||
.flatpickr-day.nextMonthDay.today.inRange,
|
||||
.flatpickr-day:hover,
|
||||
.flatpickr-day.prevMonthDay:hover,
|
||||
.flatpickr-day.nextMonthDay:hover,
|
||||
.flatpickr-day:focus,
|
||||
.flatpickr-day.prevMonthDay:focus,
|
||||
.flatpickr-day.nextMonthDay:focus {
|
||||
cursor: pointer;
|
||||
outline: 0;
|
||||
background: #e2e2e2;
|
||||
border-color: #e2e2e2;
|
||||
}
|
||||
.flatpickr-day.today {
|
||||
border-color: #bbb;
|
||||
}
|
||||
.flatpickr-day.today:hover,
|
||||
.flatpickr-day.today:focus {
|
||||
border-color: #bbb;
|
||||
background: #bbb;
|
||||
color: #fff;
|
||||
}
|
||||
.flatpickr-day.selected,
|
||||
.flatpickr-day.startRange,
|
||||
.flatpickr-day.endRange,
|
||||
.flatpickr-day.selected.inRange,
|
||||
.flatpickr-day.startRange.inRange,
|
||||
.flatpickr-day.endRange.inRange,
|
||||
.flatpickr-day.selected:focus,
|
||||
.flatpickr-day.startRange:focus,
|
||||
.flatpickr-day.endRange:focus,
|
||||
.flatpickr-day.selected:hover,
|
||||
.flatpickr-day.startRange:hover,
|
||||
.flatpickr-day.endRange:hover,
|
||||
.flatpickr-day.selected.prevMonthDay,
|
||||
.flatpickr-day.startRange.prevMonthDay,
|
||||
.flatpickr-day.endRange.prevMonthDay,
|
||||
.flatpickr-day.selected.nextMonthDay,
|
||||
.flatpickr-day.startRange.nextMonthDay,
|
||||
.flatpickr-day.endRange.nextMonthDay {
|
||||
background: #40bb6b;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
color: #fff;
|
||||
border-color: #40bb6b;
|
||||
}
|
||||
.flatpickr-day.selected.startRange,
|
||||
.flatpickr-day.startRange.startRange,
|
||||
.flatpickr-day.endRange.startRange {
|
||||
border-radius: 50px 0 0 50px;
|
||||
}
|
||||
.flatpickr-day.selected.endRange,
|
||||
.flatpickr-day.startRange.endRange,
|
||||
.flatpickr-day.endRange.endRange {
|
||||
border-radius: 0 50px 50px 0;
|
||||
}
|
||||
.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n + 1)),
|
||||
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n + 1)),
|
||||
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n + 1)) {
|
||||
-webkit-box-shadow: -10px 0 0 #085577;
|
||||
box-shadow: -10px 0 0 #085577;
|
||||
}
|
||||
.flatpickr-day.selected.startRange.endRange,
|
||||
.flatpickr-day.startRange.startRange.endRange,
|
||||
.flatpickr-day.endRange.startRange.endRange {
|
||||
border-radius: 50px;
|
||||
}
|
||||
.flatpickr-day.inRange {
|
||||
border-radius: 0;
|
||||
-webkit-box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
|
||||
box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
|
||||
}
|
||||
.flatpickr-day.flatpickr-disabled,
|
||||
.flatpickr-day.flatpickr-disabled:hover,
|
||||
.flatpickr-day.prevMonthDay,
|
||||
.flatpickr-day.nextMonthDay,
|
||||
.flatpickr-day.notAllowed,
|
||||
.flatpickr-day.notAllowed.prevMonthDay,
|
||||
.flatpickr-day.notAllowed.nextMonthDay {
|
||||
color: rgba(72, 72, 72, 0.3);
|
||||
background: transparent;
|
||||
border-color: transparent;
|
||||
cursor: default;
|
||||
}
|
||||
.flatpickr-day.flatpickr-disabled,
|
||||
.flatpickr-day.flatpickr-disabled:hover {
|
||||
cursor: not-allowed;
|
||||
color: rgba(72, 72, 72, 0.1);
|
||||
}
|
||||
.flatpickr-day.week.selected {
|
||||
border-radius: 0;
|
||||
-webkit-box-shadow: -5px 0 0 #085577, 5px 0 0 #085577;
|
||||
box-shadow: -5px 0 0 #085577, 5px 0 0 #085577;
|
||||
}
|
||||
.flatpickr-day.hidden {
|
||||
visibility: hidden;
|
||||
}
|
||||
.rangeMode .flatpickr-day {
|
||||
margin-top: 1px;
|
||||
}
|
||||
.flatpickr-weekwrapper {
|
||||
float: left;
|
||||
}
|
||||
.flatpickr-weekwrapper .flatpickr-weeks {
|
||||
padding: 0 12px;
|
||||
border-left: 1px solid rgba(72, 72, 72, 0.2);
|
||||
}
|
||||
.flatpickr-weekwrapper .flatpickr-weekday {
|
||||
float: none;
|
||||
width: 100%;
|
||||
line-height: 28px;
|
||||
}
|
||||
.flatpickr-weekwrapper span.flatpickr-day,
|
||||
.flatpickr-weekwrapper span.flatpickr-day:hover {
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
color: rgba(72, 72, 72, 0.3);
|
||||
background: transparent;
|
||||
cursor: default;
|
||||
border: none;
|
||||
}
|
||||
.flatpickr-innerContainer {
|
||||
display: block;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
background: #fff;
|
||||
border-bottom: 1px solid rgba(72, 72, 72, 0.2);
|
||||
}
|
||||
.flatpickr-rContainer {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.flatpickr-time {
|
||||
text-align: center;
|
||||
outline: 0;
|
||||
display: block;
|
||||
height: 0;
|
||||
line-height: 40px;
|
||||
max-height: 40px;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
background: #fff;
|
||||
border-radius: 0 0 5px 5px;
|
||||
}
|
||||
.flatpickr-time:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
.flatpickr-time .numInputWrapper {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
width: 40%;
|
||||
height: 40px;
|
||||
float: left;
|
||||
}
|
||||
.flatpickr-time .numInputWrapper span.arrowUp:after {
|
||||
border-bottom-color: #484848;
|
||||
}
|
||||
.flatpickr-time .numInputWrapper span.arrowDown:after {
|
||||
border-top-color: #484848;
|
||||
}
|
||||
.flatpickr-time.hasSeconds .numInputWrapper {
|
||||
width: 26%;
|
||||
}
|
||||
.flatpickr-time.time24hr .numInputWrapper {
|
||||
width: 49%;
|
||||
}
|
||||
.flatpickr-time input {
|
||||
background: transparent;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: inherit;
|
||||
line-height: inherit;
|
||||
color: #484848;
|
||||
font-size: 14px;
|
||||
position: relative;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-webkit-appearance: textfield;
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
.flatpickr-time input.flatpickr-hour {
|
||||
font-weight: bold;
|
||||
}
|
||||
.flatpickr-time input.flatpickr-minute,
|
||||
.flatpickr-time input.flatpickr-second {
|
||||
font-weight: 400;
|
||||
}
|
||||
.flatpickr-time input:focus {
|
||||
outline: 0;
|
||||
border: 0;
|
||||
}
|
||||
.flatpickr-time .flatpickr-time-separator,
|
||||
.flatpickr-time .flatpickr-am-pm {
|
||||
height: inherit;
|
||||
float: left;
|
||||
line-height: inherit;
|
||||
color: #484848;
|
||||
font-weight: bold;
|
||||
width: 2%;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-align-self: center;
|
||||
-ms-flex-item-align: center;
|
||||
align-self: center;
|
||||
}
|
||||
.flatpickr-time .flatpickr-am-pm {
|
||||
outline: 0;
|
||||
width: 18%;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
font-weight: 400;
|
||||
}
|
||||
.flatpickr-time input:hover,
|
||||
.flatpickr-time .flatpickr-am-pm:hover,
|
||||
.flatpickr-time input:focus,
|
||||
.flatpickr-time .flatpickr-am-pm:focus {
|
||||
background: #eaeaea;
|
||||
}
|
||||
.flatpickr-input[readonly] {
|
||||
cursor: pointer;
|
||||
}
|
||||
@-webkit-keyframes fpFadeInDown {
|
||||
from {
|
||||
opacity: 0;
|
||||
-webkit-transform: translate3d(0, -20px, 0);
|
||||
transform: translate3d(0, -20px, 0);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
||||
@keyframes fpFadeInDown {
|
||||
from {
|
||||
opacity: 0;
|
||||
-webkit-transform: translate3d(0, -20px, 0);
|
||||
transform: translate3d(0, -20px, 0);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
816
src/ui/static/css/flatpickr.dark.css
Normal file
816
src/ui/static/css/flatpickr.dark.css
Normal file
|
@ -0,0 +1,816 @@
|
|||
.dark .flatpickr-calendar {
|
||||
background: transparent;
|
||||
opacity: 0;
|
||||
display: none;
|
||||
text-align: center;
|
||||
visibility: hidden;
|
||||
padding: 0;
|
||||
-webkit-animation: none;
|
||||
animation: none;
|
||||
direction: ltr;
|
||||
border: 0;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
border-radius: 5px;
|
||||
position: absolute;
|
||||
width: 307.875px;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-ms-touch-action: manipulation;
|
||||
touch-action: manipulation;
|
||||
background: #3f4458;
|
||||
-webkit-box-shadow: 1px 0 0 #20222c, -1px 0 0 #20222c, 0 1px 0 #20222c,
|
||||
0 -1px 0 #20222c, 0 3px 13px rgba(0, 0, 0, 0.08);
|
||||
box-shadow: 1px 0 0 #20222c, -1px 0 0 #20222c, 0 1px 0 #20222c,
|
||||
0 -1px 0 #20222c, 0 3px 13px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
.dark .flatpickr-calendar.open,
|
||||
.dark .flatpickr-calendar.inline {
|
||||
opacity: 1;
|
||||
max-height: 640px;
|
||||
visibility: visible;
|
||||
}
|
||||
.dark .flatpickr-calendar.open {
|
||||
display: inline-block;
|
||||
z-index: 99999;
|
||||
}
|
||||
.dark .flatpickr-calendar.animate.open {
|
||||
-webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
|
||||
animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
|
||||
}
|
||||
.dark .flatpickr-calendar.inline {
|
||||
display: block;
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
.dark .flatpickr-calendar.static {
|
||||
position: absolute;
|
||||
top: calc(100% + 2px);
|
||||
}
|
||||
.dark .flatpickr-calendar.static.open {
|
||||
z-index: 999;
|
||||
display: block;
|
||||
}
|
||||
.dark
|
||||
.flatpickr-calendar.multiMonth
|
||||
.flatpickr-days
|
||||
.dayContainer:nth-child(n + 1)
|
||||
.flatpickr-day.inRange:nth-child(7n + 7) {
|
||||
-webkit-box-shadow: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.dark
|
||||
.flatpickr-calendar.multiMonth
|
||||
.flatpickr-days
|
||||
.dayContainer:nth-child(n + 2)
|
||||
.flatpickr-day.inRange:nth-child(7n + 1) {
|
||||
-webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
|
||||
box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
|
||||
}
|
||||
.dark .flatpickr-calendar .hasWeeks .dayContainer,
|
||||
.dark .flatpickr-calendar .hasTime .dayContainer {
|
||||
border-bottom: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.dark .flatpickr-calendar .hasWeeks .dayContainer {
|
||||
border-left: 0;
|
||||
}
|
||||
.dark .flatpickr-calendar.hasTime .flatpickr-time {
|
||||
height: 40px;
|
||||
border-top: 1px solid #20222c;
|
||||
}
|
||||
.dark .flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
|
||||
height: auto;
|
||||
}
|
||||
.dark .flatpickr-calendar:before,
|
||||
.dark .flatpickr-calendar:after {
|
||||
position: absolute;
|
||||
display: block;
|
||||
pointer-events: none;
|
||||
border: solid transparent;
|
||||
content: "";
|
||||
height: 0;
|
||||
width: 0;
|
||||
left: 22px;
|
||||
}
|
||||
.dark .flatpickr-calendar.rightMost:before,
|
||||
.dark .flatpickr-calendar.arrowRight:before,
|
||||
.dark .flatpickr-calendar.rightMost:after,
|
||||
.dark .flatpickr-calendar.arrowRight:after {
|
||||
left: auto;
|
||||
right: 22px;
|
||||
}
|
||||
.dark .flatpickr-calendar.arrowCenter:before,
|
||||
.dark .flatpickr-calendar.arrowCenter:after {
|
||||
left: 50%;
|
||||
right: 50%;
|
||||
}
|
||||
.dark .flatpickr-calendar:before {
|
||||
border-width: 5px;
|
||||
margin: 0 -5px;
|
||||
}
|
||||
.dark .flatpickr-calendar:after {
|
||||
border-width: 4px;
|
||||
margin: 0 -4px;
|
||||
}
|
||||
.dark .flatpickr-calendar.arrowTop:before,
|
||||
.dark .flatpickr-calendar.arrowTop:after {
|
||||
bottom: 100%;
|
||||
}
|
||||
.dark .flatpickr-calendar.arrowTop:before {
|
||||
border-bottom-color: #20222c;
|
||||
}
|
||||
.dark .flatpickr-calendar.arrowTop:after {
|
||||
border-bottom-color: #3f4458;
|
||||
}
|
||||
.dark .flatpickr-calendar.arrowBottom:before,
|
||||
.dark .flatpickr-calendar.arrowBottom:after {
|
||||
top: 100%;
|
||||
}
|
||||
.dark .flatpickr-calendar.arrowBottom:before {
|
||||
border-top-color: #20222c;
|
||||
}
|
||||
.dark .flatpickr-calendar.arrowBottom:after {
|
||||
border-top-color: #3f4458;
|
||||
}
|
||||
.dark .flatpickr-calendar:focus {
|
||||
outline: 0;
|
||||
}
|
||||
.dark .flatpickr-wrapper {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
.dark .flatpickr-months {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
}
|
||||
.dark .flatpickr-months .flatpickr-month {
|
||||
background: #085577;
|
||||
color: #fff;
|
||||
fill: #fff;
|
||||
height: 34px;
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
overflow: hidden;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
.dark .flatpickr-months .flatpickr-prev-month,
|
||||
.dark .flatpickr-months .flatpickr-next-month {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
height: 34px;
|
||||
padding: 10px;
|
||||
z-index: 3;
|
||||
color: #fff;
|
||||
fill: #fff;
|
||||
}
|
||||
.dark .flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
|
||||
.dark .flatpickr-months .flatpickr-next-month.flatpickr-disabled {
|
||||
display: none;
|
||||
}
|
||||
.dark .flatpickr-months .flatpickr-prev-month i,
|
||||
.dark .flatpickr-months .flatpickr-next-month i {
|
||||
position: relative;
|
||||
}
|
||||
.dark .flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
|
||||
.dark .flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
|
||||
/*
|
||||
/*rtl:begin:ignore*/
|
||||
/*
|
||||
*/
|
||||
left: 0;
|
||||
/*
|
||||
/*rtl:end:ignore*/
|
||||
/*
|
||||
*/
|
||||
}
|
||||
/*
|
||||
/*rtl:begin:ignore*/
|
||||
/*
|
||||
/*rtl:end:ignore*/
|
||||
.dark .flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
|
||||
.dark .flatpickr-months .flatpickr-next-month.flatpickr-next-month {
|
||||
/*
|
||||
/*rtl:begin:ignore*/
|
||||
/*
|
||||
*/
|
||||
right: 0;
|
||||
/*
|
||||
/*rtl:end:ignore*/
|
||||
/*
|
||||
*/
|
||||
}
|
||||
/*
|
||||
/*rtl:begin:ignore*/
|
||||
/*
|
||||
/*rtl:end:ignore*/
|
||||
.dark .flatpickr-months .flatpickr-prev-month:hover,
|
||||
.dark .flatpickr-months .flatpickr-next-month:hover {
|
||||
color: #eee;
|
||||
}
|
||||
.dark .flatpickr-months .flatpickr-prev-month:hover svg,
|
||||
.dark.flatpickr-months .flatpickr-next-month:hover svg {
|
||||
fill: #40bb6b;
|
||||
}
|
||||
.dark .flatpickr-months .flatpickr-prev-month svg,
|
||||
.dark .flatpickr-months .flatpickr-next-month svg {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
.dark .flatpickr-months .flatpickr-prev-month svg path,
|
||||
.dark .flatpickr-months .flatpickr-next-month svg path {
|
||||
-webkit-transition: fill 0.1s;
|
||||
transition: fill 0.1s;
|
||||
fill: inherit;
|
||||
}
|
||||
|
||||
.dark .numInputWrapper {
|
||||
position: relative;
|
||||
height: auto;
|
||||
}
|
||||
.dark .numInputWrapper input,
|
||||
.dark .numInputWrapper span {
|
||||
display: inline-block;
|
||||
}
|
||||
.dark .numInputWrapper input {
|
||||
width: 100%;
|
||||
}
|
||||
.dark .numInputWrapper input::-ms-clear {
|
||||
display: none;
|
||||
}
|
||||
.dark .numInputWrapper input::-webkit-outer-spin-button,
|
||||
.dark .numInputWrapper input::-webkit-inner-spin-button {
|
||||
margin: 0;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
.dark .numInputWrapper span {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 14px;
|
||||
padding: 0 4px 0 2px;
|
||||
height: 50%;
|
||||
line-height: 50%;
|
||||
opacity: 0;
|
||||
cursor: pointer;
|
||||
border: 1px solid rgba(255, 255, 255, 0.15);
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.dark .numInputWrapper span:hover {
|
||||
background: rgba(192, 187, 167, 0.1);
|
||||
}
|
||||
.dark .numInputWrapper span:active {
|
||||
background: rgba(192, 187, 167, 0.2);
|
||||
}
|
||||
.dark .numInputWrapper span:after {
|
||||
display: block;
|
||||
content: "";
|
||||
position: absolute;
|
||||
}
|
||||
.dark .numInputWrapper span.arrowUp {
|
||||
top: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
.dark .numInputWrapper span.arrowUp:after {
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-bottom: 4px solid rgba(255, 255, 255, 0.6);
|
||||
top: 26%;
|
||||
}
|
||||
.dark .numInputWrapper span.arrowDown {
|
||||
top: 50%;
|
||||
}
|
||||
.dark .numInputWrapper span.arrowDown:after {
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 4px solid rgba(255, 255, 255, 0.6);
|
||||
top: 40%;
|
||||
}
|
||||
.dark .numInputWrapper span svg {
|
||||
width: inherit;
|
||||
height: auto;
|
||||
}
|
||||
.dark .numInputWrapper span svg path {
|
||||
fill: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.dark .numInputWrapper:hover {
|
||||
background: rgba(192, 187, 167, 0.05);
|
||||
}
|
||||
.dark .numInputWrapper:hover span {
|
||||
opacity: 1;
|
||||
}
|
||||
.dark .flatpickr-current-month {
|
||||
font-size: 135%;
|
||||
line-height: inherit;
|
||||
font-weight: 300;
|
||||
color: inherit;
|
||||
position: absolute;
|
||||
width: 75%;
|
||||
left: 12.5%;
|
||||
padding: 7.48px 0 0 0;
|
||||
line-height: 1;
|
||||
height: 34px;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
-webkit-transform: translate3d(0px, 0px, 0px);
|
||||
transform: translate3d(0px, 0px, 0px);
|
||||
}
|
||||
.dark .flatpickr-current-month span.cur-month {
|
||||
font-family: inherit;
|
||||
font-weight: 700;
|
||||
color: inherit;
|
||||
display: inline-block;
|
||||
margin-left: 0.5ch;
|
||||
padding: 0;
|
||||
}
|
||||
.dark .flatpickr-current-month span.cur-month:hover {
|
||||
background: rgba(192, 187, 167, 0.05);
|
||||
}
|
||||
.dark .flatpickr-current-month .numInputWrapper {
|
||||
width: 6ch;
|
||||
width: 7ch\0;
|
||||
display: inline-block;
|
||||
}
|
||||
.dark .flatpickr-current-month .numInputWrapper span.arrowUp:after {
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.dark .flatpickr-current-month .numInputWrapper span.arrowDown:after {
|
||||
border-top-color: #fff;
|
||||
}
|
||||
.dark .flatpickr-current-month input.cur-year {
|
||||
background: transparent;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
color: inherit;
|
||||
cursor: text;
|
||||
padding: 0 0 0 0.5ch;
|
||||
margin: 0;
|
||||
display: inline-block;
|
||||
font-size: inherit;
|
||||
font-family: inherit;
|
||||
font-weight: 300;
|
||||
line-height: inherit;
|
||||
height: auto;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
vertical-align: initial;
|
||||
-webkit-appearance: textfield;
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
.dark .flatpickr-current-month input.cur-year:focus {
|
||||
outline: 0;
|
||||
}
|
||||
.dark .flatpickr-current-month input.cur-year[disabled],
|
||||
.dark .flatpickr-current-month input.cur-year[disabled]:hover {
|
||||
font-size: 100%;
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
background: transparent;
|
||||
pointer-events: none;
|
||||
}
|
||||
.dark .flatpickr-current-month .flatpickr-monthDropdown-months {
|
||||
appearance: menulist;
|
||||
background: #085577;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
box-sizing: border-box;
|
||||
color: inherit;
|
||||
cursor: pointer;
|
||||
font-size: inherit;
|
||||
font-family: inherit;
|
||||
font-weight: 300;
|
||||
height: auto;
|
||||
line-height: inherit;
|
||||
margin: -1px 0 0 0;
|
||||
outline: none;
|
||||
padding: 0 0 0 0.5ch;
|
||||
position: relative;
|
||||
vertical-align: initial;
|
||||
-webkit-box-sizing: border-box;
|
||||
-webkit-appearance: menulist;
|
||||
-moz-appearance: menulist;
|
||||
width: auto;
|
||||
}
|
||||
.dark .flatpickr-current-month .flatpickr-monthDropdown-months:focus,
|
||||
.dark .flatpickr-current-month .flatpickr-monthDropdown-months:active {
|
||||
outline: none;
|
||||
}
|
||||
.dark .flatpickr-current-month .flatpickr-monthDropdown-months:hover {
|
||||
background: rgba(192, 187, 167, 0.05);
|
||||
}
|
||||
.dark
|
||||
.flatpickr-current-month
|
||||
.flatpickr-monthDropdown-months
|
||||
.flatpickr-monthDropdown-month {
|
||||
background-color: #085577;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
}
|
||||
.dark .flatpickr-weekdays {
|
||||
background: #085577;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
height: 28px;
|
||||
}
|
||||
.dark .flatpickr-weekdays .flatpickr-weekdaycontainer {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
.dark span.flatpickr-weekday {
|
||||
cursor: default;
|
||||
font-size: 90%;
|
||||
background: #085577;
|
||||
color: #fff;
|
||||
line-height: 1;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
display: block;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.dark .dayContainer {
|
||||
background: #1e3969;
|
||||
}
|
||||
|
||||
.dark .dayContainer,
|
||||
.flatpickr-weeks {
|
||||
padding: 1px 0 0 0;
|
||||
}
|
||||
.dark .flatpickr-days {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: start;
|
||||
-webkit-align-items: flex-start;
|
||||
-ms-flex-align: start;
|
||||
align-items: flex-start;
|
||||
width: 307.875px;
|
||||
border: none;
|
||||
}
|
||||
.dark .flatpickr-days:focus {
|
||||
outline: 0;
|
||||
}
|
||||
.dark .dayContainer {
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
text-align: left;
|
||||
width: 307.875px;
|
||||
min-width: 307.875px;
|
||||
max-width: 307.875px;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
display: -ms-flexbox;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
-ms-flex-wrap: wrap;
|
||||
-ms-flex-pack: justify;
|
||||
-webkit-justify-content: space-around;
|
||||
justify-content: space-around;
|
||||
-webkit-transform: translate3d(0px, 0px, 0px);
|
||||
transform: translate3d(0px, 0px, 0px);
|
||||
opacity: 1;
|
||||
}
|
||||
.dark .dayContainer + .dark .dayContainer {
|
||||
-webkit-box-shadow: -1px 0 0 #20222c;
|
||||
box-shadow: -1px 0 0 #20222c;
|
||||
}
|
||||
.dark .flatpickr-day {
|
||||
background: none;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 150px;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
color: rgba(255, 255, 255, 0.95);
|
||||
cursor: pointer;
|
||||
font-weight: 400;
|
||||
width: 14.2857143%;
|
||||
-webkit-flex-basis: 14.2857143%;
|
||||
-ms-flex-preferred-size: 14.2857143%;
|
||||
flex-basis: 14.2857143%;
|
||||
max-width: 39px;
|
||||
height: 39px;
|
||||
line-height: 39px;
|
||||
margin: 0;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
.dark .flatpickr-day.inRange,
|
||||
.dark .flatpickr-day.prevMonthDay.inRange,
|
||||
.dark .flatpickr-day.nextMonthDay.inRange,
|
||||
.dark .flatpickr-day.today.inRange,
|
||||
.dark .flatpickr-day.prevMonthDay.today.inRange,
|
||||
.dark .flatpickr-day.nextMonthDay.today.inRange,
|
||||
.dark .flatpickr-day:hover,
|
||||
.dark .flatpickr-day.prevMonthDay:hover,
|
||||
.dark .flatpickr-day.nextMonthDay:hover,
|
||||
.dark .flatpickr-day:focus,
|
||||
.dark .flatpickr-day.prevMonthDay:focus,
|
||||
.dark .flatpickr-day.nextMonthDay:focus {
|
||||
cursor: pointer;
|
||||
outline: 0;
|
||||
background: #646c8c;
|
||||
border-color: #646c8c;
|
||||
}
|
||||
.dark .flatpickr-day.today {
|
||||
border-color: #eee;
|
||||
}
|
||||
.dark .flatpickr-day.today:hover,
|
||||
.dark .flatpickr-day.today:focus {
|
||||
border-color: #eee;
|
||||
background: #eee;
|
||||
color: #3f4458;
|
||||
}
|
||||
.dark .flatpickr-day.selected,
|
||||
.dark .flatpickr-day.startRange,
|
||||
.dark .flatpickr-day.endRange,
|
||||
.dark .flatpickr-day.selected.inRange,
|
||||
.dark .flatpickr-day.startRange.inRange,
|
||||
.dark .flatpickr-day.endRange.inRange,
|
||||
.dark .flatpickr-day.selected:focus,
|
||||
.dark .flatpickr-day.startRange:focus,
|
||||
.dark .flatpickr-day.endRange:focus,
|
||||
.dark .flatpickr-day.selected:hover,
|
||||
.dark .flatpickr-day.startRange:hover,
|
||||
.dark .flatpickr-day.endRange:hover,
|
||||
.dark .flatpickr-day.selected.prevMonthDay,
|
||||
.dark .flatpickr-day.startRange.prevMonthDay,
|
||||
.dark .flatpickr-day.endRange.prevMonthDay,
|
||||
.dark .flatpickr-day.selected.nextMonthDay,
|
||||
.dark .flatpickr-day.startRange.nextMonthDay,
|
||||
.dark .flatpickr-day.endRange.nextMonthDay {
|
||||
background: #40bb6b;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
color: #fff;
|
||||
border-color: #40bb6b;
|
||||
}
|
||||
.dark .flatpickr-day.selected.startRange,
|
||||
.dark .flatpickr-day.startRange.startRange,
|
||||
.dark .flatpickr-day.endRange.startRange {
|
||||
border-radius: 50px 0 0 50px;
|
||||
}
|
||||
.dark .flatpickr-day.selected.endRange,
|
||||
.dark .flatpickr-day.startRange.endRange,
|
||||
.dark .flatpickr-day.endRange.endRange {
|
||||
border-radius: 0 50px 50px 0;
|
||||
}
|
||||
.dark .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n + 1)),
|
||||
.dark .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n + 1)),
|
||||
.dark .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n + 1)) {
|
||||
-webkit-box-shadow: -10px 0 0 #80cbc4;
|
||||
box-shadow: -10px 0 0 #80cbc4;
|
||||
}
|
||||
.dark .flatpickr-day.selected.startRange.endRange,
|
||||
.dark .flatpickr-day.startRange.startRange.endRange,
|
||||
.dark .flatpickr-day.endRange.startRange.endRange {
|
||||
border-radius: 50px;
|
||||
}
|
||||
.dark .flatpickr-day.inRange {
|
||||
border-radius: 0;
|
||||
-webkit-box-shadow: -5px 0 0 #646c8c, 5px 0 0 #646c8c;
|
||||
box-shadow: -5px 0 0 #646c8c, 5px 0 0 #646c8c;
|
||||
}
|
||||
.dark .flatpickr-day.flatpickr-disabled,
|
||||
.dark .flatpickr-day.flatpickr-disabled:hover,
|
||||
.dark .flatpickr-day.prevMonthDay,
|
||||
.dark .flatpickr-day.nextMonthDay,
|
||||
.dark .flatpickr-day.notAllowed,
|
||||
.dark .flatpickr-day.notAllowed.prevMonthDay,
|
||||
.dark .flatpickr-day.notAllowed.nextMonthDay {
|
||||
color: rgba(255, 255, 255, 0.3);
|
||||
background: transparent;
|
||||
border-color: transparent;
|
||||
cursor: default;
|
||||
}
|
||||
.dark .flatpickr-day.flatpickr-disabled,
|
||||
.dark .flatpickr-day.flatpickr-disabled:hover {
|
||||
cursor: not-allowed;
|
||||
color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
.dark .flatpickr-day.week.selected {
|
||||
border-radius: 0;
|
||||
-webkit-box-shadow: -5px 0 0 #80cbc4, 5px 0 0 #80cbc4;
|
||||
box-shadow: -5px 0 0 #80cbc4, 5px 0 0 #80cbc4;
|
||||
}
|
||||
.dark .flatpickr-day.hidden {
|
||||
visibility: hidden;
|
||||
}
|
||||
.dark .rangeMode .flatpickr-day {
|
||||
margin-top: 1px;
|
||||
}
|
||||
.dark .flatpickr-weekwrapper {
|
||||
float: left;
|
||||
}
|
||||
.dark .flatpickr-weekwrapper .flatpickr-weeks {
|
||||
padding: 0 12px;
|
||||
-webkit-box-shadow: 1px 0 0 #20222c;
|
||||
box-shadow: 1px 0 0 #20222c;
|
||||
}
|
||||
.dark .flatpickr-weekwrapper .flatpickr-weekday {
|
||||
float: none;
|
||||
width: 100%;
|
||||
line-height: 28px;
|
||||
}
|
||||
.dark .flatpickr-weekwrapper span.flatpickr-day,
|
||||
.dark .flatpickr-weekwrapper span.flatpickr-day:hover {
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
color: rgba(255, 255, 255, 0.3);
|
||||
background: transparent;
|
||||
cursor: default;
|
||||
border: none;
|
||||
}
|
||||
.dark .flatpickr-innerContainer {
|
||||
display: block;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
border-bottom: none;
|
||||
}
|
||||
.dark .flatpickr-rContainer {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.dark .flatpickr-time {
|
||||
text-align: center;
|
||||
outline: 0;
|
||||
display: block;
|
||||
height: 0;
|
||||
line-height: 40px;
|
||||
max-height: 40px;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
}
|
||||
.dark .flatpickr-time:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
.dark .flatpickr-time .numInputWrapper {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
width: 40%;
|
||||
height: 40px;
|
||||
float: left;
|
||||
}
|
||||
.dark .flatpickr-time .numInputWrapper span.arrowUp:after {
|
||||
border-bottom-color: rgba(255, 255, 255, 0.95);
|
||||
}
|
||||
.dark .flatpickr-time .numInputWrapper span.arrowDown:after {
|
||||
border-top-color: rgba(255, 255, 255, 0.95);
|
||||
}
|
||||
.dark .flatpickr-time.hasSeconds .numInputWrapper {
|
||||
width: 26%;
|
||||
}
|
||||
.dark .flatpickr-time.time24hr .numInputWrapper {
|
||||
width: 49%;
|
||||
}
|
||||
.dark .flatpickr-time input {
|
||||
background: transparent;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: inherit;
|
||||
line-height: inherit;
|
||||
color: rgba(255, 255, 255, 0.95);
|
||||
font-size: 14px;
|
||||
position: relative;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-webkit-appearance: textfield;
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
.dark .flatpickr-time input.flatpickr-hour {
|
||||
font-weight: bold;
|
||||
}
|
||||
.dark .flatpickr-time input.flatpickr-minute,
|
||||
.dark .flatpickr-time input.flatpickr-second {
|
||||
font-weight: 400;
|
||||
}
|
||||
.dark .flatpickr-time input:focus {
|
||||
outline: 0;
|
||||
border: 0;
|
||||
}
|
||||
.dark .flatpickr-time .flatpickr-time-separator,
|
||||
.dark .flatpickr-time .flatpickr-am-pm {
|
||||
height: inherit;
|
||||
float: left;
|
||||
line-height: inherit;
|
||||
color: rgba(255, 255, 255, 0.95);
|
||||
font-weight: bold;
|
||||
width: 2%;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-align-self: center;
|
||||
-ms-flex-item-align: center;
|
||||
align-self: center;
|
||||
}
|
||||
.dark .flatpickr-time .flatpickr-am-pm {
|
||||
outline: 0;
|
||||
width: 18%;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
font-weight: 400;
|
||||
}
|
||||
.dark .flatpickr-time input:hover,
|
||||
.dark .flatpickr-time .flatpickr-am-pm:hover,
|
||||
.dark .flatpickr-time input:focus,
|
||||
.dark .flatpickr-time .flatpickr-am-pm:focus {
|
||||
background: #6a7395;
|
||||
}
|
||||
.dark .flatpickr-input[readonly] {
|
||||
cursor: pointer;
|
||||
}
|
||||
@-webkit-keyframes fpFadeInDown {
|
||||
from {
|
||||
opacity: 0;
|
||||
-webkit-transform: translate3d(0, -20px, 0);
|
||||
transform: translate3d(0, -20px, 0);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
||||
@keyframes fpFadeInDown {
|
||||
from {
|
||||
opacity: 0;
|
||||
-webkit-transform: translate3d(0, -20px, 0);
|
||||
transform: translate3d(0, -20px, 0);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
|
@ -1,210 +0,0 @@
|
|||
import {registerListeners, unregisterListeners} from './lib/event.js';
|
||||
import {formatDate} from './lib/date-format.js';
|
||||
import Datepicker from './datepicker.js';
|
||||
|
||||
// filter out the config options inapproprite to pass to Datepicker
|
||||
function filterOptions(options) {
|
||||
const newOpts = Object.assign({}, options);
|
||||
|
||||
delete newOpts.inputs;
|
||||
delete newOpts.allowOneSidedRange;
|
||||
delete newOpts.maxNumberOfDates; // to ensure each datepicker handles a single date
|
||||
|
||||
return newOpts;
|
||||
}
|
||||
|
||||
function setupDatepicker(rangepicker, changeDateListener, el, options) {
|
||||
registerListeners(rangepicker, [
|
||||
[el, 'changeDate', changeDateListener],
|
||||
]);
|
||||
new Datepicker(el, options, rangepicker);
|
||||
}
|
||||
|
||||
function onChangeDate(rangepicker, ev) {
|
||||
// to prevent both datepickers trigger the other side's update each other
|
||||
if (rangepicker._updating) {
|
||||
return;
|
||||
}
|
||||
rangepicker._updating = true;
|
||||
|
||||
const target = ev.target;
|
||||
if (target.datepicker === undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
const datepickers = rangepicker.datepickers;
|
||||
const setDateOptions = {render: false};
|
||||
const changedSide = rangepicker.inputs.indexOf(target);
|
||||
const otherSide = changedSide === 0 ? 1 : 0;
|
||||
const changedDate = datepickers[changedSide].dates[0];
|
||||
const otherDate = datepickers[otherSide].dates[0];
|
||||
|
||||
if (changedDate !== undefined && otherDate !== undefined) {
|
||||
// if the start of the range > the end, swap them
|
||||
if (changedSide === 0 && changedDate > otherDate) {
|
||||
datepickers[0].setDate(otherDate, setDateOptions);
|
||||
datepickers[1].setDate(changedDate, setDateOptions);
|
||||
} else if (changedSide === 1 && changedDate < otherDate) {
|
||||
datepickers[0].setDate(changedDate, setDateOptions);
|
||||
datepickers[1].setDate(otherDate, setDateOptions);
|
||||
}
|
||||
} else if (!rangepicker.allowOneSidedRange) {
|
||||
// to prevent the range from becoming one-sided, copy changed side's
|
||||
// selection (no matter if it's empty) to the other side
|
||||
if (changedDate !== undefined || otherDate !== undefined) {
|
||||
setDateOptions.clear = true;
|
||||
datepickers[otherSide].setDate(datepickers[changedSide].dates, setDateOptions);
|
||||
}
|
||||
}
|
||||
datepickers[0].picker.update().render();
|
||||
datepickers[1].picker.update().render();
|
||||
delete rangepicker._updating;
|
||||
}
|
||||
|
||||
/**
|
||||
* Class representing a date range picker
|
||||
*/
|
||||
export default class DateRangePicker {
|
||||
/**
|
||||
* Create a date range picker
|
||||
* @param {Element} element - element to bind a date range picker
|
||||
* @param {Object} [options] - config options
|
||||
*/
|
||||
constructor(element, options = {}) {
|
||||
const inputs = Array.isArray(options.inputs)
|
||||
? options.inputs
|
||||
: Array.from(element.querySelectorAll('input'));
|
||||
if (inputs.length < 2) {
|
||||
return;
|
||||
}
|
||||
|
||||
element.rangepicker = this;
|
||||
this.element = element;
|
||||
this.inputs = inputs.slice(0, 2);
|
||||
this.allowOneSidedRange = !!options.allowOneSidedRange;
|
||||
|
||||
const changeDateListener = onChangeDate.bind(null, this);
|
||||
const cleanOptions = filterOptions(options);
|
||||
// in order for initial date setup to work right when pcicLvel > 0,
|
||||
// let Datepicker constructor add the instance to the rangepicker
|
||||
const datepickers = [];
|
||||
Object.defineProperty(this, 'datepickers', {
|
||||
get() {
|
||||
return datepickers;
|
||||
},
|
||||
});
|
||||
setupDatepicker(this, changeDateListener, this.inputs[0], cleanOptions);
|
||||
setupDatepicker(this, changeDateListener, this.inputs[1], cleanOptions);
|
||||
Object.freeze(datepickers);
|
||||
// normalize the range if inital dates are given
|
||||
if (datepickers[0].dates.length > 0) {
|
||||
onChangeDate(this, {target: this.inputs[0]});
|
||||
} else if (datepickers[1].dates.length > 0) {
|
||||
onChangeDate(this, {target: this.inputs[1]});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @type {Array} - selected date of the linked date pickers
|
||||
*/
|
||||
get dates() {
|
||||
return this.datepickers.length === 2
|
||||
? [
|
||||
this.datepickers[0].dates[0],
|
||||
this.datepickers[1].dates[0],
|
||||
]
|
||||
: undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set new values to the config options
|
||||
* @param {Object} options - config options to update
|
||||
*/
|
||||
setOptions(options) {
|
||||
this.allowOneSidedRange = !!options.allowOneSidedRange;
|
||||
|
||||
const cleanOptions = filterOptions(options);
|
||||
this.datepickers[0].setOptions(cleanOptions);
|
||||
this.datepickers[1].setOptions(cleanOptions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroy the DateRangePicker instance
|
||||
* @return {DateRangePicker} - the instance destroyed
|
||||
*/
|
||||
destroy() {
|
||||
this.datepickers[0].destroy();
|
||||
this.datepickers[1].destroy();
|
||||
unregisterListeners(this);
|
||||
delete this.element.rangepicker;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the start and end dates of the date range
|
||||
*
|
||||
* The method returns Date objects by default. If format string is passed,
|
||||
* it returns date strings formatted in given format.
|
||||
* The result array always contains 2 items (start date/end date) and
|
||||
* undefined is used for unselected side. (e.g. If none is selected,
|
||||
* the result will be [undefined, undefined]. If only the end date is set
|
||||
* when allowOneSidedRange config option is true, [undefined, endDate] will
|
||||
* be returned.)
|
||||
*
|
||||
* @param {String} [format] - Format string to stringify the dates
|
||||
* @return {Array} - Start and end dates
|
||||
*/
|
||||
getDates(format = undefined) {
|
||||
const callback = format
|
||||
? date => formatDate(date, format, this.datepickers[0].config.locale)
|
||||
: date => new Date(date);
|
||||
|
||||
return this.dates.map(date => date === undefined ? date : callback(date));
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the start and end dates of the date range
|
||||
*
|
||||
* The method calls datepicker.setDate() internally using each of the
|
||||
* arguments in start→end order.
|
||||
*
|
||||
* When a clear: true option object is passed instead of a date, the method
|
||||
* clears the date.
|
||||
*
|
||||
* If an invalid date, the same date as the current one or an option object
|
||||
* without clear: true is passed, the method considers that argument as an
|
||||
* "ineffective" argument because calling datepicker.setDate() with those
|
||||
* values makes no changes to the date selection.
|
||||
*
|
||||
* When the allowOneSidedRange config option is false, passing {clear: true}
|
||||
* to clear the range works only when it is done to the last effective
|
||||
* argument (in other words, passed to rangeEnd or to rangeStart along with
|
||||
* ineffective rangeEnd). This is because when the date range is changed,
|
||||
* it gets normalized based on the last change at the end of the changing
|
||||
* process.
|
||||
*
|
||||
* @param {Date|Number|String|Object} rangeStart - Start date of the range
|
||||
* or {clear: true} to clear the date
|
||||
* @param {Date|Number|String|Object} rangeEnd - End date of the range
|
||||
* or {clear: true} to clear the date
|
||||
*/
|
||||
setDates(rangeStart, rangeEnd) {
|
||||
const [datepicker0, datepicker1] = this.datepickers;
|
||||
const origDates = this.dates;
|
||||
|
||||
// If range normalization runs on every change, we can't set a new range
|
||||
// that starts after the end of the current range correctly because the
|
||||
// normalization process swaps start↔︎end right after setting the new start
|
||||
// date. To prevent this, the normalization process needs to run once after
|
||||
// both of the new dates are set.
|
||||
this._updating = true;
|
||||
datepicker0.setDate(rangeStart);
|
||||
datepicker1.setDate(rangeEnd);
|
||||
delete this._updating;
|
||||
|
||||
if (datepicker1.dates[0] !== origDates[1]) {
|
||||
onChangeDate(this, {target: this.inputs[1]});
|
||||
} else if (datepicker0.dates[0] !== origDates[0]) {
|
||||
onChangeDate(this, {target: this.inputs[0]});
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
import Datepicker from './datepicker.js';
|
||||
import DateRangePicker from './dateRangePicker.js';
|
||||
|
||||
window.Datepicker = Datepicker;
|
||||
window.DateRangePicker = DateRangePicker;
|
File diff suppressed because one or more lines are too long
|
@ -1,502 +0,0 @@
|
|||
import {lastItemOf, stringToArray, isInRange} from './lib/utils.js';
|
||||
import {today, regularizeDate} from './lib/date.js';
|
||||
import {parseDate, formatDate} from './lib/date-format.js';
|
||||
import {isActiveElement} from './lib/dom.js';
|
||||
import {registerListeners, unregisterListeners} from './lib/event.js';
|
||||
import {locales} from './i18n/base-locales.js';
|
||||
import defaultOptions from './options/defaultOptions.js';
|
||||
import processOptions from './options/processOptions.js';
|
||||
import Picker from './picker/Picker.js';
|
||||
import {triggerDatepickerEvent} from './events/functions.js';
|
||||
import {onKeydown, onFocus, onMousedown, onClickInput, onPaste} from './events/inputFieldListeners.js';
|
||||
import {onClickOutside} from './events/otherListeners.js';
|
||||
|
||||
function stringifyDates(dates, config) {
|
||||
return dates
|
||||
.map(dt => formatDate(dt, config.format, config.locale))
|
||||
.join(config.dateDelimiter);
|
||||
}
|
||||
|
||||
// parse input dates and create an array of time values for selection
|
||||
// returns undefined if there are no valid dates in inputDates
|
||||
// when origDates (current selection) is passed, the function works to mix
|
||||
// the input dates into the current selection
|
||||
function processInputDates(datepicker, inputDates, clear = false) {
|
||||
// const {config, dates: origDates, rangepicker} = datepicker;
|
||||
const {config, dates: origDates, rangeSideIndex} = datepicker;
|
||||
if (inputDates.length === 0) {
|
||||
// empty input is considered valid unless origiDates is passed
|
||||
return clear ? [] : undefined;
|
||||
}
|
||||
|
||||
// const rangeEnd = rangepicker && datepicker === rangepicker.datepickers[1];
|
||||
let newDates = inputDates.reduce((dates, dt) => {
|
||||
let date = parseDate(dt, config.format, config.locale);
|
||||
if (date === undefined) {
|
||||
return dates;
|
||||
}
|
||||
// adjust to 1st of the month/Jan 1st of the year
|
||||
// or to the last day of the monh/Dec 31st of the year if the datepicker
|
||||
// is the range-end picker of a rangepicker
|
||||
date = regularizeDate(date, config.pickLevel, rangeSideIndex);
|
||||
if (
|
||||
isInRange(date, config.minDate, config.maxDate)
|
||||
&& !dates.includes(date)
|
||||
&& !config.datesDisabled.includes(date)
|
||||
&& (config.pickLevel > 0 || !config.daysOfWeekDisabled.includes(new Date(date).getDay()))
|
||||
) {
|
||||
dates.push(date);
|
||||
}
|
||||
return dates;
|
||||
}, []);
|
||||
if (newDates.length === 0) {
|
||||
return;
|
||||
}
|
||||
if (config.multidate && !clear) {
|
||||
// get the synmetric difference between origDates and newDates
|
||||
newDates = newDates.reduce((dates, date) => {
|
||||
if (!origDates.includes(date)) {
|
||||
dates.push(date);
|
||||
}
|
||||
return dates;
|
||||
}, origDates.filter(date => !newDates.includes(date)));
|
||||
}
|
||||
// do length check always because user can input multiple dates regardless of the mode
|
||||
return config.maxNumberOfDates && newDates.length > config.maxNumberOfDates
|
||||
? newDates.slice(config.maxNumberOfDates * -1)
|
||||
: newDates;
|
||||
}
|
||||
|
||||
// refresh the UI elements
|
||||
// modes: 1: input only, 2, picker only, 3 both
|
||||
function refreshUI(datepicker, mode = 3, quickRender = true) {
|
||||
const {config, picker, inputField} = datepicker;
|
||||
if (mode & 2) {
|
||||
const newView = picker.active ? config.pickLevel : config.startView;
|
||||
picker.update().changeView(newView).render(quickRender);
|
||||
}
|
||||
if (mode & 1 && inputField) {
|
||||
inputField.value = stringifyDates(datepicker.dates, config);
|
||||
}
|
||||
}
|
||||
|
||||
function setDate(datepicker, inputDates, options) {
|
||||
let {clear, render, autohide, revert} = options;
|
||||
if (render === undefined) {
|
||||
render = true;
|
||||
}
|
||||
if (!render) {
|
||||
autohide = false;
|
||||
} else if (autohide === undefined) {
|
||||
autohide = datepicker.config.autohide;
|
||||
}
|
||||
|
||||
const newDates = processInputDates(datepicker, inputDates, clear);
|
||||
if (!newDates && !revert) {
|
||||
return;
|
||||
}
|
||||
if (newDates && newDates.toString() !== datepicker.dates.toString()) {
|
||||
datepicker.dates = newDates;
|
||||
refreshUI(datepicker, render ? 3 : 1);
|
||||
triggerDatepickerEvent(datepicker, 'changeDate');
|
||||
} else {
|
||||
refreshUI(datepicker, 1);
|
||||
}
|
||||
|
||||
if (autohide) {
|
||||
datepicker.hide();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Class representing a date picker
|
||||
*/
|
||||
export default class Datepicker {
|
||||
/**
|
||||
* Create a date picker
|
||||
* @param {Element} element - element to bind a date picker
|
||||
* @param {Object} [options] - config options
|
||||
* @param {DateRangePicker} [rangepicker] - DateRangePicker instance the
|
||||
* date picker belongs to. Use this only when creating date picker as a part
|
||||
* of date range picker
|
||||
*/
|
||||
constructor(element, options = {}, rangepicker = undefined) {
|
||||
element.datepicker = this;
|
||||
this.element = element;
|
||||
|
||||
const config = this.config = Object.assign({
|
||||
buttonClass: (options.buttonClass && String(options.buttonClass)) || 'button',
|
||||
container: null,
|
||||
defaultViewDate: today(),
|
||||
maxDate: undefined,
|
||||
minDate: undefined,
|
||||
}, processOptions(defaultOptions, this));
|
||||
// configure by type
|
||||
const inline = this.inline = element.tagName !== 'INPUT';
|
||||
let inputField;
|
||||
if (inline) {
|
||||
config.container = element;
|
||||
} else {
|
||||
if (options.container) {
|
||||
// omit string type check because it doesn't guarantee to avoid errors
|
||||
// (invalid selector string causes abend with sytax error)
|
||||
config.container = options.container instanceof HTMLElement
|
||||
? options.container
|
||||
: document.querySelector(options.container);
|
||||
}
|
||||
inputField = this.inputField = element;
|
||||
inputField.classList.add('datepicker-input');
|
||||
}
|
||||
if (rangepicker) {
|
||||
// check validiry
|
||||
const index = rangepicker.inputs.indexOf(inputField);
|
||||
const datepickers = rangepicker.datepickers;
|
||||
if (index < 0 || index > 1 || !Array.isArray(datepickers)) {
|
||||
throw Error('Invalid rangepicker object.');
|
||||
}
|
||||
// attach itaelf to the rangepicker here so that processInputDates() can
|
||||
// determine if this is the range-end picker of the rangepicker while
|
||||
// setting inital values when pickLevel > 0
|
||||
datepickers[index] = this;
|
||||
// add getter for rangepicker
|
||||
Object.defineProperty(this, 'rangepicker', {
|
||||
get() {
|
||||
return rangepicker;
|
||||
},
|
||||
});
|
||||
Object.defineProperty(this, 'rangeSideIndex', {
|
||||
get() {
|
||||
return index;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
// set up config
|
||||
this._options = options;
|
||||
Object.assign(config, processOptions(options, this));
|
||||
|
||||
// set initial dates
|
||||
let initialDates;
|
||||
if (inline) {
|
||||
initialDates = stringToArray(element.dataset.date, config.dateDelimiter);
|
||||
delete element.dataset.date;
|
||||
} else {
|
||||
initialDates = stringToArray(inputField.value, config.dateDelimiter);
|
||||
}
|
||||
this.dates = [];
|
||||
// process initial value
|
||||
const inputDateValues = processInputDates(this, initialDates);
|
||||
if (inputDateValues && inputDateValues.length > 0) {
|
||||
this.dates = inputDateValues;
|
||||
}
|
||||
if (inputField) {
|
||||
inputField.value = stringifyDates(this.dates, config);
|
||||
}
|
||||
|
||||
const picker = this.picker = new Picker(this);
|
||||
|
||||
if (inline) {
|
||||
this.show();
|
||||
} else {
|
||||
// set up event listeners in other modes
|
||||
const onMousedownDocument = onClickOutside.bind(null, this);
|
||||
const listeners = [
|
||||
[inputField, 'keydown', onKeydown.bind(null, this)],
|
||||
[inputField, 'focus', onFocus.bind(null, this)],
|
||||
[inputField, 'mousedown', onMousedown.bind(null, this)],
|
||||
[inputField, 'click', onClickInput.bind(null, this)],
|
||||
[inputField, 'paste', onPaste.bind(null, this)],
|
||||
[document, 'mousedown', onMousedownDocument],
|
||||
[document, 'touchstart', onMousedownDocument],
|
||||
[window, 'resize', picker.place.bind(picker)]
|
||||
];
|
||||
registerListeners(this, listeners);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Format Date object or time value in given format and language
|
||||
* @param {Date|Number} date - date or time value to format
|
||||
* @param {String|Object} format - format string or object that contains
|
||||
* toDisplay() custom formatter, whose signature is
|
||||
* - args:
|
||||
* - date: {Date} - Date instance of the date passed to the method
|
||||
* - format: {Object} - the format object passed to the method
|
||||
* - locale: {Object} - locale for the language specified by `lang`
|
||||
* - return:
|
||||
* {String} formatted date
|
||||
* @param {String} [lang=en] - language code for the locale to use
|
||||
* @return {String} formatted date
|
||||
*/
|
||||
static formatDate(date, format, lang) {
|
||||
return formatDate(date, format, lang && locales[lang] || locales.en);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse date string
|
||||
* @param {String|Date|Number} dateStr - date string, Date object or time
|
||||
* value to parse
|
||||
* @param {String|Object} format - format string or object that contains
|
||||
* toValue() custom parser, whose signature is
|
||||
* - args:
|
||||
* - dateStr: {String|Date|Number} - the dateStr passed to the method
|
||||
* - format: {Object} - the format object passed to the method
|
||||
* - locale: {Object} - locale for the language specified by `lang`
|
||||
* - return:
|
||||
* {Date|Number} parsed date or its time value
|
||||
* @param {String} [lang=en] - language code for the locale to use
|
||||
* @return {Number} time value of parsed date
|
||||
*/
|
||||
static parseDate(dateStr, format, lang) {
|
||||
return parseDate(dateStr, format, lang && locales[lang] || locales.en);
|
||||
}
|
||||
|
||||
/**
|
||||
* @type {Object} - Installed locales in `[languageCode]: localeObject` format
|
||||
* en`:_English (US)_ is pre-installed.
|
||||
*/
|
||||
static get locales() {
|
||||
return locales;
|
||||
}
|
||||
|
||||
/**
|
||||
* @type {Boolean} - Whether the picker element is shown. `true` whne shown
|
||||
*/
|
||||
get active() {
|
||||
return !!(this.picker && this.picker.active);
|
||||
}
|
||||
|
||||
/**
|
||||
* @type {HTMLDivElement} - DOM object of picker element
|
||||
*/
|
||||
get pickerElement() {
|
||||
return this.picker ? this.picker.element : undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set new values to the config options
|
||||
* @param {Object} options - config options to update
|
||||
*/
|
||||
setOptions(options) {
|
||||
const picker = this.picker;
|
||||
const newOptions = processOptions(options, this);
|
||||
Object.assign(this._options, options);
|
||||
Object.assign(this.config, newOptions);
|
||||
picker.setOptions(newOptions);
|
||||
|
||||
refreshUI(this, 3);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the picker element
|
||||
*/
|
||||
show() {
|
||||
if (this.inputField) {
|
||||
if (this.inputField.disabled) {
|
||||
return;
|
||||
}
|
||||
if (!isActiveElement(this.inputField) && !this.config.disableTouchKeyboard) {
|
||||
this._showing = true;
|
||||
this.inputField.focus();
|
||||
delete this._showing;
|
||||
}
|
||||
}
|
||||
this.picker.show();
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide the picker element
|
||||
* Not available on inline picker
|
||||
*/
|
||||
hide() {
|
||||
if (this.inline) {
|
||||
return;
|
||||
}
|
||||
this.picker.hide();
|
||||
this.picker.update().changeView(this.config.startView).render();
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroy the Datepicker instance
|
||||
* @return {Detepicker} - the instance destroyed
|
||||
*/
|
||||
destroy() {
|
||||
this.hide();
|
||||
unregisterListeners(this);
|
||||
this.picker.detach();
|
||||
if (!this.inline) {
|
||||
this.inputField.classList.remove('datepicker-input');
|
||||
}
|
||||
delete this.element.datepicker;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the selected date(s)
|
||||
*
|
||||
* The method returns a Date object of selected date by default, and returns
|
||||
* an array of selected dates in multidate mode. If format string is passed,
|
||||
* it returns date string(s) formatted in given format.
|
||||
*
|
||||
* @param {String} [format] - Format string to stringify the date(s)
|
||||
* @return {Date|String|Date[]|String[]} - selected date(s), or if none is
|
||||
* selected, empty array in multidate mode and untitled in sigledate mode
|
||||
*/
|
||||
getDate(format = undefined) {
|
||||
const callback = format
|
||||
? date => formatDate(date, format, this.config.locale)
|
||||
: date => new Date(date);
|
||||
|
||||
if (this.config.multidate) {
|
||||
return this.dates.map(callback);
|
||||
}
|
||||
if (this.dates.length > 0) {
|
||||
return callback(this.dates[0]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set selected date(s)
|
||||
*
|
||||
* In multidate mode, you can pass multiple dates as a series of arguments
|
||||
* or an array. (Since each date is parsed individually, the type of the
|
||||
* dates doesn't have to be the same.)
|
||||
* The given dates are used to toggle the select status of each date. The
|
||||
* number of selected dates is kept from exceeding the length set to
|
||||
* maxNumberOfDates.
|
||||
*
|
||||
* With clear: true option, the method can be used to clear the selection
|
||||
* and to replace the selection instead of toggling in multidate mode.
|
||||
* If the option is passed with no date arguments or an empty dates array,
|
||||
* it works as "clear" (clear the selection then set nothing), and if the
|
||||
* option is passed with new dates to select, it works as "replace" (clear
|
||||
* the selection then set the given dates)
|
||||
*
|
||||
* When render: false option is used, the method omits re-rendering the
|
||||
* picker element. In this case, you need to call refresh() method later in
|
||||
* order for the picker element to reflect the changes. The input field is
|
||||
* refreshed always regardless of this option.
|
||||
*
|
||||
* When invalid (unparsable, repeated, disabled or out-of-range) dates are
|
||||
* passed, the method ignores them and applies only valid ones. In the case
|
||||
* that all the given dates are invalid, which is distinguished from passing
|
||||
* no dates, the method considers it as an error and leaves the selection
|
||||
* untouched. (The input field also remains untouched unless revert: true
|
||||
* option is used.)
|
||||
*
|
||||
* @param {...(Date|Number|String)|Array} [dates] - Date strings, Date
|
||||
* objects, time values or mix of those for new selection
|
||||
* @param {Object} [options] - function options
|
||||
* - clear: {boolean} - Whether to clear the existing selection
|
||||
* defualt: false
|
||||
* - render: {boolean} - Whether to re-render the picker element
|
||||
* default: true
|
||||
* - autohide: {boolean} - Whether to hide the picker element after re-render
|
||||
* Ignored when used with render: false
|
||||
* default: config.autohide
|
||||
* - revert: {boolean} - Whether to refresh the input field when all the
|
||||
* passed dates are invalid
|
||||
* default: false
|
||||
*/
|
||||
setDate(...args) {
|
||||
const dates = [...args];
|
||||
const opts = {};
|
||||
const lastArg = lastItemOf(args);
|
||||
if (
|
||||
typeof lastArg === 'object'
|
||||
&& !Array.isArray(lastArg)
|
||||
&& !(lastArg instanceof Date)
|
||||
&& lastArg
|
||||
) {
|
||||
Object.assign(opts, dates.pop());
|
||||
}
|
||||
|
||||
const inputDates = Array.isArray(dates[0]) ? dates[0] : dates;
|
||||
setDate(this, inputDates, opts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the selected date(s) with input field's value
|
||||
* Not available on inline picker
|
||||
*
|
||||
* The input field will be refreshed with properly formatted date string.
|
||||
*
|
||||
* In the case that all the entered dates are invalid (unparsable, repeated,
|
||||
* disabled or out-of-range), whixh is distinguished from empty input field,
|
||||
* the method leaves the input field untouched as well as the selection by
|
||||
* default. If revert: true option is used in this case, the input field is
|
||||
* refreshed with the existing selection.
|
||||
*
|
||||
* @param {Object} [options] - function options
|
||||
* - autohide: {boolean} - whether to hide the picker element after refresh
|
||||
* default: false
|
||||
* - revert: {boolean} - Whether to refresh the input field when all the
|
||||
* passed dates are invalid
|
||||
* default: false
|
||||
*/
|
||||
update(options = undefined) {
|
||||
if (this.inline) {
|
||||
return;
|
||||
}
|
||||
|
||||
const opts = Object.assign(options || {}, {clear: true, render: true});
|
||||
const inputDates = stringToArray(this.inputField.value, this.config.dateDelimiter);
|
||||
setDate(this, inputDates, opts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Refresh the picker element and the associated input field
|
||||
* @param {String} [target] - target item when refreshing one item only
|
||||
* 'picker' or 'input'
|
||||
* @param {Boolean} [forceRender] - whether to re-render the picker element
|
||||
* regardless of its state instead of optimized refresh
|
||||
*/
|
||||
refresh(target = undefined, forceRender = false) {
|
||||
if (target && typeof target !== 'string') {
|
||||
forceRender = target;
|
||||
target = undefined;
|
||||
}
|
||||
|
||||
let mode;
|
||||
if (target === 'picker') {
|
||||
mode = 2;
|
||||
} else if (target === 'input') {
|
||||
mode = 1;
|
||||
} else {
|
||||
mode = 3;
|
||||
}
|
||||
refreshUI(this, mode, !forceRender);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enter edit mode
|
||||
* Not available on inline picker or when the picker element is hidden
|
||||
*/
|
||||
enterEditMode() {
|
||||
if (this.inline || !this.picker.active || this.editMode) {
|
||||
return;
|
||||
}
|
||||
this.editMode = true;
|
||||
this.inputField.classList.add('in-edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Exit from edit mode
|
||||
* Not available on inline picker
|
||||
* @param {Object} [options] - function options
|
||||
* - update: {boolean} - whether to call update() after exiting
|
||||
* If false, input field is revert to the existing selection
|
||||
* default: false
|
||||
*/
|
||||
exitEditMode(options = undefined) {
|
||||
if (this.inline || !this.editMode) {
|
||||
return;
|
||||
}
|
||||
const opts = Object.assign({update: false}, options);
|
||||
delete this.editMode;
|
||||
this.inputField.classList.remove('in-edit');
|
||||
if (opts.update) {
|
||||
this.update(opts);
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -1,48 +0,0 @@
|
|||
import {limitToRange} from '../lib/utils.js';
|
||||
import {addMonths, addYears} from '../lib/date.js';
|
||||
|
||||
export function triggerDatepickerEvent(datepicker, type) {
|
||||
const detail = {
|
||||
date: datepicker.getDate(),
|
||||
viewDate: new Date(datepicker.picker.viewDate),
|
||||
viewId: datepicker.picker.currentView.id,
|
||||
datepicker,
|
||||
};
|
||||
datepicker.element.dispatchEvent(new CustomEvent(type, {detail}));
|
||||
}
|
||||
|
||||
// direction: -1 (to previous), 1 (to next)
|
||||
export function goToPrevOrNext(datepicker, direction) {
|
||||
const {minDate, maxDate} = datepicker.config;
|
||||
const {currentView, viewDate} = datepicker.picker;
|
||||
let newViewDate;
|
||||
switch (currentView.id) {
|
||||
case 0:
|
||||
newViewDate = addMonths(viewDate, direction);
|
||||
break;
|
||||
case 1:
|
||||
newViewDate = addYears(viewDate, direction);
|
||||
break;
|
||||
default:
|
||||
newViewDate = addYears(viewDate, direction * currentView.navStep);
|
||||
}
|
||||
newViewDate = limitToRange(newViewDate, minDate, maxDate);
|
||||
datepicker.picker.changeFocus(newViewDate).render();
|
||||
}
|
||||
|
||||
export function switchView(datepicker) {
|
||||
const viewId = datepicker.picker.currentView.id;
|
||||
if (viewId === datepicker.config.maxView) {
|
||||
return;
|
||||
}
|
||||
datepicker.picker.changeView(viewId + 1).render();
|
||||
}
|
||||
|
||||
export function unfocus(datepicker) {
|
||||
if (datepicker.config.updateOnBlur) {
|
||||
datepicker.update({revert: true});
|
||||
} else {
|
||||
datepicker.refresh('input');
|
||||
}
|
||||
datepicker.hide();
|
||||
}
|
|
@ -1,195 +0,0 @@
|
|||
import {isInRange} from '../lib/utils.js';
|
||||
import {isActiveElement} from '../lib/dom.js';
|
||||
import {addDays, addMonths, addYears, startOfYearPeriod} from '../lib/date.js';
|
||||
import {goToPrevOrNext, switchView, unfocus} from './functions.js';
|
||||
|
||||
// Find the closest date that doesn't meet the condition for unavailable date
|
||||
// Returns undefined if no available date is found
|
||||
// addFn: function to calculate the next date
|
||||
// - args: time value, amount
|
||||
// increase: amount to pass to addFn
|
||||
// testFn: function to test the unavailablity of the date
|
||||
// - args: time value; retun: true if unavailable
|
||||
function findNextAvailableOne(date, addFn, increase, testFn, min, max) {
|
||||
if (!isInRange(date, min, max)) {
|
||||
return;
|
||||
}
|
||||
if (testFn(date)) {
|
||||
const newDate = addFn(date, increase);
|
||||
return findNextAvailableOne(newDate, addFn, increase, testFn, min, max);
|
||||
}
|
||||
return date;
|
||||
}
|
||||
|
||||
// direction: -1 (left/up), 1 (right/down)
|
||||
// vertical: true for up/down, false for left/right
|
||||
function moveByArrowKey(datepicker, ev, direction, vertical) {
|
||||
const picker = datepicker.picker;
|
||||
const currentView = picker.currentView;
|
||||
const step = currentView.step || 1;
|
||||
let viewDate = picker.viewDate;
|
||||
let addFn;
|
||||
let testFn;
|
||||
switch (currentView.id) {
|
||||
case 0:
|
||||
if (vertical) {
|
||||
viewDate = addDays(viewDate, direction * 7);
|
||||
} else if (ev.ctrlKey || ev.metaKey) {
|
||||
viewDate = addYears(viewDate, direction);
|
||||
} else {
|
||||
viewDate = addDays(viewDate, direction);
|
||||
}
|
||||
addFn = addDays;
|
||||
testFn = (date) => currentView.disabled.includes(date);
|
||||
break;
|
||||
case 1:
|
||||
viewDate = addMonths(viewDate, vertical ? direction * 4 : direction);
|
||||
addFn = addMonths;
|
||||
testFn = (date) => {
|
||||
const dt = new Date(date);
|
||||
const {year, disabled} = currentView;
|
||||
return dt.getFullYear() === year && disabled.includes(dt.getMonth());
|
||||
};
|
||||
break;
|
||||
default:
|
||||
viewDate = addYears(viewDate, direction * (vertical ? 4 : 1) * step);
|
||||
addFn = addYears;
|
||||
testFn = date => currentView.disabled.includes(startOfYearPeriod(date, step));
|
||||
}
|
||||
viewDate = findNextAvailableOne(
|
||||
viewDate,
|
||||
addFn,
|
||||
direction < 0 ? -step : step,
|
||||
testFn,
|
||||
currentView.minDate,
|
||||
currentView.maxDate
|
||||
);
|
||||
if (viewDate !== undefined) {
|
||||
picker.changeFocus(viewDate).render();
|
||||
}
|
||||
}
|
||||
|
||||
export function onKeydown(datepicker, ev) {
|
||||
const key = ev.key;
|
||||
if (key === 'Tab') {
|
||||
unfocus(datepicker);
|
||||
return;
|
||||
}
|
||||
|
||||
const picker = datepicker.picker;
|
||||
const {id, isMinView} = picker.currentView;
|
||||
if (!picker.active) {
|
||||
if (key === 'ArrowDown') {
|
||||
picker.show();
|
||||
} else {
|
||||
if (key === 'Enter') {
|
||||
datepicker.update();
|
||||
} else if (key === 'Escape') {
|
||||
picker.show();
|
||||
}
|
||||
return;
|
||||
}
|
||||
} else if (datepicker.editMode) {
|
||||
if (key === 'Enter') {
|
||||
datepicker.exitEditMode({update: true, autohide: datepicker.config.autohide});
|
||||
} else if (key === 'Escape') {
|
||||
picker.hide();
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
if (key === 'ArrowLeft') {
|
||||
if (ev.ctrlKey || ev.metaKey) {
|
||||
goToPrevOrNext(datepicker, -1);
|
||||
} else if (ev.shiftKey) {
|
||||
datepicker.enterEditMode();
|
||||
return;
|
||||
} else {
|
||||
moveByArrowKey(datepicker, ev, -1, false);
|
||||
}
|
||||
} else if (key === 'ArrowRight') {
|
||||
if (ev.ctrlKey || ev.metaKey) {
|
||||
goToPrevOrNext(datepicker, 1);
|
||||
} else if (ev.shiftKey) {
|
||||
datepicker.enterEditMode();
|
||||
return;
|
||||
} else {
|
||||
moveByArrowKey(datepicker, ev, 1, false);
|
||||
}
|
||||
} else if (key === 'ArrowUp') {
|
||||
if (ev.ctrlKey || ev.metaKey) {
|
||||
switchView(datepicker);
|
||||
} else if (ev.shiftKey) {
|
||||
datepicker.enterEditMode();
|
||||
return;
|
||||
} else {
|
||||
moveByArrowKey(datepicker, ev, -1, true);
|
||||
}
|
||||
} else if (key === 'ArrowDown') {
|
||||
if (ev.shiftKey && !ev.ctrlKey && !ev.metaKey) {
|
||||
datepicker.enterEditMode();
|
||||
return;
|
||||
}
|
||||
moveByArrowKey(datepicker, ev, 1, true);
|
||||
} else if (key === 'Enter') {
|
||||
if (isMinView) {
|
||||
datepicker.setDate(picker.viewDate);
|
||||
return;
|
||||
}
|
||||
picker.changeView(id - 1).render();
|
||||
} else {
|
||||
if (key === 'Escape') {
|
||||
picker.hide();
|
||||
} else if (
|
||||
key === 'Backspace'
|
||||
|| key === 'Delete'
|
||||
|| (key.length === 1 && !ev.ctrlKey && !ev.metaKey)
|
||||
) {
|
||||
datepicker.enterEditMode();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
ev.preventDefault();
|
||||
}
|
||||
|
||||
export function onFocus(datepicker) {
|
||||
if (datepicker.config.showOnFocus && !datepicker._showing) {
|
||||
datepicker.show();
|
||||
}
|
||||
}
|
||||
|
||||
// for the prevention for entering edit mode while getting focus on click
|
||||
export function onMousedown(datepicker, ev) {
|
||||
const el = ev.target;
|
||||
if (datepicker.picker.active || datepicker.config.showOnClick) {
|
||||
el._active = isActiveElement(el);
|
||||
el._clicking = setTimeout(() => {
|
||||
delete el._active;
|
||||
delete el._clicking;
|
||||
}, 2000);
|
||||
}
|
||||
}
|
||||
|
||||
export function onClickInput(datepicker, ev) {
|
||||
const el = ev.target;
|
||||
if (!el._clicking) {
|
||||
return;
|
||||
}
|
||||
clearTimeout(el._clicking);
|
||||
delete el._clicking;
|
||||
|
||||
if (el._active) {
|
||||
datepicker.enterEditMode();
|
||||
}
|
||||
delete el._active;
|
||||
|
||||
if (datepicker.config.showOnClick) {
|
||||
datepicker.show();
|
||||
}
|
||||
}
|
||||
|
||||
export function onPaste(datepicker, ev) {
|
||||
if (ev.clipboardData.types.includes('text/plain')) {
|
||||
datepicker.enterEditMode();
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
import {isActiveElement} from '../lib/dom.js';
|
||||
import {findElementInEventPath} from '../lib/event.js';
|
||||
import {unfocus} from './functions.js';
|
||||
|
||||
// for the `document` to delegate the events from outside the picker/input field
|
||||
export function onClickOutside(datepicker, ev) {
|
||||
const {element, picker} = datepicker;
|
||||
// check both picker's and input's activeness to make updateOnBlur work in
|
||||
// the cases where...
|
||||
// - picker is hidden by ESC key press → input stays focused
|
||||
// - input is unfocused by closing mobile keyboard → piker is kept shown
|
||||
if (!picker.active && !isActiveElement(element)) {
|
||||
return;
|
||||
}
|
||||
const pickerElem = picker.element;
|
||||
if (findElementInEventPath(ev, el => el === element || el === pickerElem)) {
|
||||
return;
|
||||
}
|
||||
unfocus(datepicker);
|
||||
}
|
|
@ -1,68 +0,0 @@
|
|||
import {today, addMonths, addYears} from '../lib/date.js';
|
||||
import {findElementInEventPath} from '../lib/event.js';
|
||||
import {goToPrevOrNext, switchView} from './functions.js';
|
||||
|
||||
function goToSelectedMonthOrYear(datepicker, selection) {
|
||||
const picker = datepicker.picker;
|
||||
const viewDate = new Date(picker.viewDate);
|
||||
const viewId = picker.currentView.id;
|
||||
const newDate = viewId === 1
|
||||
? addMonths(viewDate, selection - viewDate.getMonth())
|
||||
: addYears(viewDate, selection - viewDate.getFullYear());
|
||||
|
||||
picker.changeFocus(newDate).changeView(viewId - 1).render();
|
||||
}
|
||||
|
||||
export function onClickTodayBtn(datepicker) {
|
||||
const picker = datepicker.picker;
|
||||
const currentDate = today();
|
||||
if (datepicker.config.todayBtnMode === 1) {
|
||||
if (datepicker.config.autohide) {
|
||||
datepicker.setDate(currentDate);
|
||||
return;
|
||||
}
|
||||
datepicker.setDate(currentDate, {render: false});
|
||||
picker.update();
|
||||
}
|
||||
if (picker.viewDate !== currentDate) {
|
||||
picker.changeFocus(currentDate);
|
||||
}
|
||||
picker.changeView(0).render();
|
||||
}
|
||||
|
||||
export function onClickClearBtn(datepicker) {
|
||||
datepicker.setDate({clear: true});
|
||||
}
|
||||
|
||||
export function onClickViewSwitch(datepicker) {
|
||||
switchView(datepicker);
|
||||
}
|
||||
|
||||
export function onClickPrevBtn(datepicker) {
|
||||
goToPrevOrNext(datepicker, -1);
|
||||
}
|
||||
|
||||
export function onClickNextBtn(datepicker) {
|
||||
goToPrevOrNext(datepicker, 1);
|
||||
}
|
||||
|
||||
// For the picker's main block to delegete the events from `datepicker-cell`s
|
||||
export function onClickView(datepicker, ev) {
|
||||
const target = findElementInEventPath(ev, '.datepicker-cell');
|
||||
if (!target || target.classList.contains('disabled')) {
|
||||
return;
|
||||
}
|
||||
|
||||
const {id, isMinView} = datepicker.picker.currentView;
|
||||
if (isMinView) {
|
||||
datepicker.setDate(Number(target.dataset.date));
|
||||
} else if (id === 1) {
|
||||
goToSelectedMonthOrYear(datepicker, Number(target.dataset.month));
|
||||
} else {
|
||||
goToSelectedMonthOrYear(datepicker, Number(target.dataset.year));
|
||||
}
|
||||
}
|
||||
|
||||
export function onMousedownPicker(ev) {
|
||||
ev.preventDefault();
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
// default locales
|
||||
export const locales = {
|
||||
en: {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
clear: "Clear",
|
||||
titleFormat: "MM y"
|
||||
}
|
||||
};
|
|
@ -1,19 +0,0 @@
|
|||
/**
|
||||
* Arabic-Algeria translation for bootstrap-datepicker
|
||||
* Rabah Saadi <infosrabah@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'ar-DZ': {
|
||||
days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"],
|
||||
daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"],
|
||||
daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"],
|
||||
months: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],
|
||||
monthsShort: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],
|
||||
today: "هذا اليوم",
|
||||
rtl: true,
|
||||
monthsTitle: "أشهر",
|
||||
clear: "إزالة",
|
||||
format: "yyyy/mm/dd",
|
||||
weekStart: 0
|
||||
}
|
||||
};
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Arabic-Tunisia translation for bootstrap-datepicker
|
||||
* Souhaieb Besbes <besbes.souhaieb@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'ar-tn': {
|
||||
days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"],
|
||||
daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"],
|
||||
daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"],
|
||||
months: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],
|
||||
monthsShort: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],
|
||||
today: "هذا اليوم",
|
||||
rtl: true
|
||||
}
|
||||
};
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Arabic translation for bootstrap-datepicker
|
||||
* Mohammed Alshehri <alshehri866@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
ar: {
|
||||
days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"],
|
||||
daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"],
|
||||
daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"],
|
||||
months: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"],
|
||||
monthsShort: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"],
|
||||
today: "هذا اليوم",
|
||||
rtl: true
|
||||
}
|
||||
};
|
|
@ -1,14 +0,0 @@
|
|||
// Azerbaijani
|
||||
export default {
|
||||
az: {
|
||||
days: ["Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə"],
|
||||
daysShort: ["B.", "B.e", "Ç.a", "Ç.", "C.a", "C.", "Ş."],
|
||||
daysMin: ["B.", "B.e", "Ç.a", "Ç.", "C.a", "C.", "Ş."],
|
||||
months: ["Yanvar", "Fevral", "Mart", "Aprel", "May", "İyun", "İyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr"],
|
||||
monthsShort: ["Yan", "Fev", "Mar", "Apr", "May", "İyun", "İyul", "Avq", "Sen", "Okt", "Noy", "Dek"],
|
||||
today: "Bu gün",
|
||||
weekStart: 1,
|
||||
clear: "Təmizlə",
|
||||
monthsTitle: 'Aylar'
|
||||
}
|
||||
};
|
|
@ -1,14 +0,0 @@
|
|||
/**
|
||||
* Bulgarian translation for bootstrap-datepicker
|
||||
* Apostol Apostolov <apostol.s.apostolov@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
bg: {
|
||||
days: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"],
|
||||
daysShort: ["Нед", "Пон", "Вто", "Сря", "Чет", "Пет", "Съб"],
|
||||
daysMin: ["Н", "П", "В", "С", "Ч", "П", "С"],
|
||||
months: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"],
|
||||
monthsShort: ["Ян", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Ное", "Дек"],
|
||||
today: "днес"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Bamanankan (bm) translation for bootstrap-datepicker
|
||||
* Fatou Fall <fatou@medicmobile.org>
|
||||
*/
|
||||
export default {
|
||||
bm: {
|
||||
days: ["Kari","Ntɛnɛn","Tarata","Araba","Alamisa","Juma","Sibiri"],
|
||||
daysShort: ["Kar","Ntɛ","Tar","Ara","Ala","Jum","Sib"],
|
||||
daysMin: ["Ka","Nt","Ta","Ar","Al","Ju","Si"],
|
||||
months: ["Zanwuyekalo","Fewuruyekalo","Marisikalo","Awirilikalo","Mɛkalo","Zuwɛnkalo","Zuluyekalo","Utikalo","Sɛtanburukalo","ɔkutɔburukalo","Nowanburukalo","Desanburukalo"],
|
||||
monthsShort: ["Zan","Few","Mar","Awi","Mɛ","Zuw","Zul","Uti","Sɛt","ɔku","Now","Des"],
|
||||
today: "Bi",
|
||||
monthsTitle: "Kalo",
|
||||
clear: "Ka jɔsi",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,19 +0,0 @@
|
|||
/**
|
||||
* Bengali (Bangla) translation for bootstrap-datepicker
|
||||
* Karim Khan <kkhancse91@gmail.com>
|
||||
* Orif N. Jr. <orif.zade@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
bn: {
|
||||
days: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],
|
||||
daysShort: ["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],
|
||||
daysMin: ["রবি","সোম","মঙ্গল","বুধ","বৃহস্পতি","শুক্র","শনি"],
|
||||
months: ["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],
|
||||
monthsShort: ["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],
|
||||
today: "আজ",
|
||||
monthsTitle: "মাস",
|
||||
clear: "পরিষ্কার",
|
||||
weekStart: 0,
|
||||
format: "mm/dd/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Breton translation for bootstrap-datepicker
|
||||
* Gwenn Meynier <tornoz@laposte.net>
|
||||
*/
|
||||
export default {
|
||||
br: {
|
||||
days: ["Sul", "Lun", "Meurzh", "Merc'her", "Yaou", "Gwener", "Sadorn"],
|
||||
daysShort: ["Sul", "Lun", "Meu.", "Mer.", "Yao.", "Gwe.", "Sad."],
|
||||
daysMin: ["Su", "L", "Meu", "Mer", "Y", "G", "Sa"],
|
||||
months: ["Genver", "C'hwevrer", "Meurzh", "Ebrel", "Mae", "Mezheven", "Gouere", "Eost", "Gwengolo", "Here", "Du", "Kerzu"],
|
||||
monthsShort: ["Genv.", "C'hw.", "Meur.", "Ebre.", "Mae", "Mezh.", "Goue.", "Eost", "Gwen.", "Here", "Du", "Kerz."],
|
||||
today: "Hiziv",
|
||||
monthsTitle: "Miz",
|
||||
clear: "Dilemel",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Bosnian translation for bootstrap-datepicker
|
||||
*/
|
||||
export default {
|
||||
bs: {
|
||||
days: ["Nedjelja","Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
|
||||
daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su"],
|
||||
months: ["Januar", "Februar", "Mart", "April", "Maj", "Juni", "Juli", "August", "Septembar", "Oktobar", "Novembar", "Decembar"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Danas",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Catalan translation for bootstrap-datepicker
|
||||
* J. Garcia <jogaco.en@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
ca: {
|
||||
days: ["diumenge", "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte"],
|
||||
daysShort: ["dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."],
|
||||
daysMin: ["dg", "dl", "dt", "dc", "dj", "dv", "ds"],
|
||||
months: ["gener", "febrer", "març", "abril", "maig", "juny", "juliol", "agost", "setembre", "octubre", "novembre", "desembre"],
|
||||
monthsShort: ["gen.", "febr.", "març", "abr.", "maig", "juny", "jul.", "ag.", "set.", "oct.", "nov.", "des."],
|
||||
today: "Avui",
|
||||
monthsTitle: "Mesos",
|
||||
clear: "Esborra",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,19 +0,0 @@
|
|||
/**
|
||||
* Czech translation for bootstrap-datepicker
|
||||
* Matěj Koubík <matej@koubik.name>
|
||||
* Fixes by Michal Remiš <michal.remis@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
cs: {
|
||||
days: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"],
|
||||
daysShort: ["Ned", "Pon", "Úte", "Stř", "Čtv", "Pát", "Sob"],
|
||||
daysMin: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"],
|
||||
months: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"],
|
||||
monthsShort: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čnc", "Srp", "Zář", "Říj", "Lis", "Pro"],
|
||||
today: "Dnes",
|
||||
clear: "Vymazat",
|
||||
monthsTitle: "Měsíc",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,14 +0,0 @@
|
|||
/**
|
||||
* Welsh translation for bootstrap-datepicker
|
||||
* S. Morris <s.morris@bangor.ac.uk>
|
||||
*/
|
||||
export default {
|
||||
cy: {
|
||||
days: ["Sul", "Llun", "Mawrth", "Mercher", "Iau", "Gwener", "Sadwrn"],
|
||||
daysShort: ["Sul", "Llu", "Maw", "Mer", "Iau", "Gwe", "Sad"],
|
||||
daysMin: ["Su", "Ll", "Ma", "Me", "Ia", "Gwe", "Sa"],
|
||||
months: ["Ionawr", "Chewfror", "Mawrth", "Ebrill", "Mai", "Mehefin", "Gorfennaf", "Awst", "Medi", "Hydref", "Tachwedd", "Rhagfyr"],
|
||||
monthsShort: ["Ion", "Chw", "Maw", "Ebr", "Mai", "Meh", "Gor", "Aws", "Med", "Hyd", "Tach", "Rha"],
|
||||
today: "Heddiw"
|
||||
}
|
||||
};
|
|
@ -1,19 +0,0 @@
|
|||
/**
|
||||
* Danish translation for bootstrap-datepicker
|
||||
* Christian Pedersen <https: //github.com/chripede>
|
||||
* Ivan Mylyanyk <https: //github.com/imylyanyk>
|
||||
*/
|
||||
export default {
|
||||
da: {
|
||||
days: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"],
|
||||
daysShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"],
|
||||
daysMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"],
|
||||
months: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "I Dag",
|
||||
weekStart: 1,
|
||||
clear: "Nulstil",
|
||||
format: "dd/mm/yyyy",
|
||||
monthsTitle: "Måneder"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* German translation for bootstrap-datepicker
|
||||
* Sam Zurcher <sam@orelias.ch>
|
||||
*/
|
||||
export default {
|
||||
de: {
|
||||
days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
|
||||
daysShort: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
|
||||
daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
|
||||
months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
|
||||
monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
|
||||
today: "Heute",
|
||||
monthsTitle: "Monate",
|
||||
clear: "Löschen",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,16 +0,0 @@
|
|||
/**
|
||||
* Greek translation for bootstrap-datepicker
|
||||
*/
|
||||
export default {
|
||||
el: {
|
||||
days: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"],
|
||||
daysShort: ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"],
|
||||
daysMin: ["Κυ", "Δε", "Τρ", "Τε", "Πε", "Πα", "Σα"],
|
||||
months: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"],
|
||||
monthsShort: ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μάι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"],
|
||||
today: "Σήμερα",
|
||||
clear: "Καθαρισμός",
|
||||
weekStart: 1,
|
||||
format: "d/m/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Australian English translation for bootstrap-datepicker
|
||||
* Steve Chapman <steven.p.chapman@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'en-AU': {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
monthsTitle: "Months",
|
||||
clear: "Clear",
|
||||
weekStart: 1,
|
||||
format: "d/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Canadian English translation for bootstrap-datepicker
|
||||
* Mike Nacey <mnacey@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'en-CA': {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
monthsTitle: "Months",
|
||||
clear: "Clear",
|
||||
weekStart: 0,
|
||||
format: "yyyy-mm-dd"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* British English translation for bootstrap-datepicker
|
||||
* Xavier Dutreilh <xavier@dutreilh.com>
|
||||
*/
|
||||
export default {
|
||||
'en-GB': {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
monthsTitle: "Months",
|
||||
clear: "Clear",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Irish English translation for bootstrap-datepicker
|
||||
*/
|
||||
export default {
|
||||
'en-IE': {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
monthsTitle: "Months",
|
||||
clear: "Clear",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* New Zealand English translation for bootstrap-datepicker
|
||||
*/
|
||||
export default {
|
||||
'en-NZ': {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
monthsTitle: "Months",
|
||||
clear: "Clear",
|
||||
weekStart: 1,
|
||||
format: "d/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* South African English translation for bootstrap-datepicker
|
||||
*/
|
||||
export default {
|
||||
'en-ZA': {
|
||||
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
||||
months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Today",
|
||||
monthsTitle: "Months",
|
||||
clear: "Clear",
|
||||
weekStart: 1,
|
||||
format: "yyyy/mm/d"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Esperanto translation for bootstrap-datepicker
|
||||
* Emmanuel Debanne <https: //github.com/debanne>
|
||||
*/
|
||||
export default {
|
||||
eo: {
|
||||
days: ["dimanĉo", "lundo", "mardo", "merkredo", "ĵaŭdo", "vendredo", "sabato"],
|
||||
daysShort: ["dim.", "lun.", "mar.", "mer.", "ĵaŭ.", "ven.", "sam."],
|
||||
daysMin: ["d", "l", "ma", "me", "ĵ", "v", "s"],
|
||||
months: ["januaro", "februaro", "marto", "aprilo", "majo", "junio", "julio", "aŭgusto", "septembro", "oktobro", "novembro", "decembro"],
|
||||
monthsShort: ["jan.", "feb.", "mar.", "apr.", "majo", "jun.", "jul.", "aŭg.", "sep.", "okt.", "nov.", "dec."],
|
||||
today: "Hodiaŭ",
|
||||
clear: "Nuligi",
|
||||
weekStart: 1,
|
||||
format: "yyyy-mm-dd"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Spanish translation for bootstrap-datepicker
|
||||
* Bruno Bonamin <bruno.bonamin@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
es: {
|
||||
days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
|
||||
daysShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"],
|
||||
daysMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"],
|
||||
months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
|
||||
monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
|
||||
today: "Hoy",
|
||||
monthsTitle: "Meses",
|
||||
clear: "Borrar",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Estonian translation for bootstrap-datepicker
|
||||
* Ando Roots <https: //github.com/anroots>
|
||||
* Fixes by Illimar Tambek <<https: //github.com/ragulka>
|
||||
*/
|
||||
export default {
|
||||
et: {
|
||||
days: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev"],
|
||||
daysShort: ["Pühap", "Esmasp", "Teisip", "Kolmap", "Neljap", "Reede", "Laup"],
|
||||
daysMin: ["P", "E", "T", "K", "N", "R", "L"],
|
||||
months: ["Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember"],
|
||||
monthsShort: ["Jaan", "Veebr", "Märts", "Apr", "Mai", "Juuni", "Juuli", "Aug", "Sept", "Okt", "Nov", "Dets"],
|
||||
today: "Täna",
|
||||
clear: "Tühjenda",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Basque translation for bootstrap-datepicker
|
||||
* Arkaitz Etxeberria <kondi80@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
eu: {
|
||||
days: ['Igandea', 'Astelehena', 'Asteartea', 'Asteazkena', 'Osteguna', 'Ostirala', 'Larunbata'],
|
||||
daysShort: ['Ig', 'Al', 'Ar', 'Az', 'Og', 'Ol', 'Lr'],
|
||||
daysMin: ['Ig', 'Al', 'Ar', 'Az', 'Og', 'Ol', 'Lr'],
|
||||
months: ['Urtarrila', 'Otsaila', 'Martxoa', 'Apirila', 'Maiatza', 'Ekaina', 'Uztaila', 'Abuztua', 'Iraila', 'Urria', 'Azaroa', 'Abendua'],
|
||||
monthsShort: ['Urt', 'Ots', 'Mar', 'Api', 'Mai', 'Eka', 'Uzt', 'Abu', 'Ira', 'Urr', 'Aza', 'Abe'],
|
||||
today: "Gaur",
|
||||
monthsTitle: "Hilabeteak",
|
||||
clear: "Ezabatu",
|
||||
weekStart: 1,
|
||||
format: "yyyy/mm/dd"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Persian translation for bootstrap-datepicker
|
||||
* Mostafa Rokooie <mostafa.rokooie@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
fa: {
|
||||
days: ["یکشنبه", "دوشنبه", "سهشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه", "یکشنبه"],
|
||||
daysShort: ["یک", "دو", "سه", "چهار", "پنج", "جمعه", "شنبه", "یک"],
|
||||
daysMin: ["ی", "د", "س", "چ", "پ", "ج", "ش", "ی"],
|
||||
months: ["ژانویه", "فوریه", "مارس", "آوریل", "مه", "ژوئن", "ژوئیه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "دسامبر"],
|
||||
monthsShort: ["ژان", "فور", "مار", "آور", "مه", "ژون", "ژوی", "اوت", "سپت", "اکت", "نوا", "دسا"],
|
||||
today: "امروز",
|
||||
clear: "پاک کن",
|
||||
weekStart: 1,
|
||||
format: "yyyy/mm/dd"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Finnish translation for bootstrap-datepicker
|
||||
* Jaakko Salonen <https: //github.com/jsalonen>
|
||||
*/
|
||||
export default {
|
||||
fi: {
|
||||
days: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"],
|
||||
daysShort: ["sun", "maa", "tii", "kes", "tor", "per", "lau"],
|
||||
daysMin: ["su", "ma", "ti", "ke", "to", "pe", "la"],
|
||||
months: ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"],
|
||||
monthsShort: ["tammi", "helmi", "maalis", "huhti", "touko", "kesä", "heinä", "elo", "syys", "loka", "marras", "joulu"],
|
||||
today: "tänään",
|
||||
clear: "Tyhjennä",
|
||||
weekStart: 1,
|
||||
format: "d.m.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Faroese translation for bootstrap-datepicker
|
||||
* Theodor Johannesen <https: //github.com/theodorjohannesen>
|
||||
*/
|
||||
export default {
|
||||
fo: {
|
||||
days: ["Sunnudagur", "Mánadagur", "Týsdagur", "Mikudagur", "Hósdagur", "Fríggjadagur", "Leygardagur"],
|
||||
daysShort: ["Sun", "Mán", "Týs", "Mik", "Hós", "Frí", "Ley"],
|
||||
daysMin: ["Su", "Má", "Tý", "Mi", "Hó", "Fr", "Le"],
|
||||
months: ["Januar", "Februar", "Marts", "Apríl", "Mei", "Juni", "Juli", "August", "Septembur", "Oktobur", "Novembur", "Desembur"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"],
|
||||
today: "Í Dag",
|
||||
clear: "Reinsa"
|
||||
}
|
||||
};
|
|
@ -1,21 +0,0 @@
|
|||
/**
|
||||
* French (Switzerland) translation for bootstrap-datepicker
|
||||
* Christoph Jossi <c.jossi@ascami.ch>
|
||||
* Based on
|
||||
* French translation for bootstrap-datepicker
|
||||
* Nico Mollet <nico.mollet@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'fr-CH': {
|
||||
days: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"],
|
||||
daysShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"],
|
||||
daysMin: ["D", "L", "Ma", "Me", "J", "V", "S"],
|
||||
months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
|
||||
monthsShort: ["Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Déc"],
|
||||
today: "Aujourd'hui",
|
||||
monthsTitle: "Mois",
|
||||
clear: "Effacer",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* French translation for bootstrap-datepicker
|
||||
* Nico Mollet <nico.mollet@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
fr: {
|
||||
days: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"],
|
||||
daysShort: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
|
||||
daysMin: ["d", "l", "ma", "me", "j", "v", "s"],
|
||||
months: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"],
|
||||
monthsShort: ["janv.", "févr.", "mars", "avril", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."],
|
||||
today: "Aujourd'hui",
|
||||
monthsTitle: "Mois",
|
||||
clear: "Effacer",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,16 +0,0 @@
|
|||
/**
|
||||
* Galician translation
|
||||
*/
|
||||
export default {
|
||||
gl: {
|
||||
days: ["Domingo", "Luns", "Martes", "Mércores", "Xoves", "Venres", "Sábado"],
|
||||
daysShort: ["Dom", "Lun", "Mar", "Mér", "Xov", "Ven", "Sáb"],
|
||||
daysMin: ["Do", "Lu", "Ma", "Me", "Xo", "Ve", "Sa"],
|
||||
months: ["Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", "Xuño", "Xullo", "Agosto", "Setembro", "Outubro", "Novembro", "Decembro"],
|
||||
monthsShort: ["Xan", "Feb", "Mar", "Abr", "Mai", "Xun", "Xul", "Ago", "Sep", "Out", "Nov", "Dec"],
|
||||
today: "Hoxe",
|
||||
clear: "Limpar",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Hebrew translation for bootstrap-datepicker
|
||||
* Sagie Maoz <sagie@maoz.info>
|
||||
*/
|
||||
export default {
|
||||
he: {
|
||||
days: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"],
|
||||
daysShort: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"],
|
||||
daysMin: ["א", "ב", "ג", "ד", "ה", "ו", "ש", "א"],
|
||||
months: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"],
|
||||
monthsShort: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"],
|
||||
today: "היום",
|
||||
rtl: true
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Hindi translation for bootstrap-datepicker
|
||||
* Visar Uruqi <visar.uruqi@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
hi: {
|
||||
days: ["रविवार", "सोमवार", "मंगलवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार"],
|
||||
daysShort: ["सूर्य", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि"],
|
||||
daysMin: ["र", "सो", "मं", "बु", "गु", "शु", "श"],
|
||||
months: ["जनवरी", "फ़रवरी", "मार्च", "अप्रैल", "मई", "जून", "जुलाई", "अगस्त", "सितम्बर", "अक्टूबर", "नवंबर", "दिसम्बर"],
|
||||
monthsShort: ["जन", "फ़रवरी", "मार्च", "अप्रैल", "मई", "जून", "जुलाई", "अगस्त", "सितं", "अक्टूबर", "नवं", "दिसम्बर"],
|
||||
today: "आज",
|
||||
monthsTitle: "महीने",
|
||||
clear: "साफ",
|
||||
weekStart: 1,
|
||||
format: "dd / mm / yyyy"
|
||||
}
|
||||
};
|
|
@ -1,13 +0,0 @@
|
|||
/**
|
||||
* Croatian localisation
|
||||
*/
|
||||
export default {
|
||||
hr: {
|
||||
days: ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
|
||||
daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su"],
|
||||
months: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"],
|
||||
monthsShort: ["Sij", "Velj", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro"],
|
||||
today: "Danas"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Hungarian translation for bootstrap-datepicker
|
||||
* Sotus László <lacisan@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
hu: {
|
||||
days: ["vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"],
|
||||
daysShort: ["vas", "hét", "ked", "sze", "csü", "pén", "szo"],
|
||||
daysMin: ["V", "H", "K", "Sze", "Cs", "P", "Szo"],
|
||||
months: ["január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december"],
|
||||
monthsShort: ["jan", "feb", "már", "ápr", "máj", "jún", "júl", "aug", "sze", "okt", "nov", "dec"],
|
||||
today: "ma",
|
||||
weekStart: 1,
|
||||
clear: "töröl",
|
||||
titleFormat: "y. MM",
|
||||
format: "yyyy.mm.dd"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Armenian translation for bootstrap-datepicker
|
||||
* Hayk Chamyan <hamshen@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
hy: {
|
||||
days: ["Կիրակի", "Երկուշաբթի", "Երեքշաբթի", "Չորեքշաբթի", "Հինգշաբթի", "Ուրբաթ", "Շաբաթ"],
|
||||
daysShort: ["Կիր", "Երկ", "Երե", "Չոր", "Հին", "Ուրբ", "Շաբ"],
|
||||
daysMin: ["Կի", "Եկ", "Եք", "Չո", "Հի", "Ու", "Շա"],
|
||||
months: ["Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր"],
|
||||
monthsShort: ["Հնվ", "Փետ", "Մար", "Ապր", "Մայ", "Հուն", "Հուլ", "Օգս", "Սեպ", "Հոկ", "Նոյ", "Դեկ"],
|
||||
today: "Այսօր",
|
||||
clear: "Ջնջել",
|
||||
format: "dd.mm.yyyy",
|
||||
weekStart: 1,
|
||||
monthsTitle: 'Ամիսնէր'
|
||||
}
|
||||
};
|
|
@ -1,19 +0,0 @@
|
|||
/**
|
||||
* Bahasa translation for bootstrap-datepicker
|
||||
* Azwar Akbar <azwar.akbar@gmail.com>
|
||||
* Ardeman <mail@ardeman.com>
|
||||
*/
|
||||
export default {
|
||||
id: {
|
||||
days: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"],
|
||||
daysShort: ["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"],
|
||||
daysMin: ["Mg", "Sn", "Sl", "Rb", "Km", "Jm", "Sb"],
|
||||
months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agt", "Sep", "Okt", "Nov", "Des"],
|
||||
today: "Hari Ini",
|
||||
monthsTitle: "Bulan",
|
||||
clear: "Kosongkan",
|
||||
weekStart: 0,
|
||||
format: "dd-mm-yyyy"
|
||||
}
|
||||
};
|
|
@ -1,14 +0,0 @@
|
|||
/**
|
||||
* Icelandic translation for bootstrap-datepicker
|
||||
* Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
is: {
|
||||
days: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur"],
|
||||
daysShort: ["Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau"],
|
||||
daysMin: ["Su", "Má", "Þr", "Mi", "Fi", "Fö", "La"],
|
||||
months: ["Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Okt", "Nóv", "Des"],
|
||||
today: "Í Dag"
|
||||
}
|
||||
};
|
|
@ -1,20 +0,0 @@
|
|||
/**
|
||||
* Italian (Switzerland) translation for bootstrap-datepicker
|
||||
* Christoph Jossi <c.jossi@ascami.ch>
|
||||
* Based on
|
||||
* Italian translation for bootstrap-datepicker
|
||||
* Enrico Rubboli <rubboli@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'it-CH': {
|
||||
days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"],
|
||||
daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"],
|
||||
daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"],
|
||||
months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
|
||||
monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
|
||||
today: "Oggi",
|
||||
clear: "Cancella",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Italian translation for bootstrap-datepicker
|
||||
* Enrico Rubboli <rubboli@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
it: {
|
||||
days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"],
|
||||
daysShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"],
|
||||
daysMin: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"],
|
||||
months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
|
||||
monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
|
||||
today: "Oggi",
|
||||
monthsTitle: "Mesi",
|
||||
clear: "Cancella",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Japanese translation for bootstrap-datepicker
|
||||
* Norio Suzuki <https: //github.com/suzuki/>
|
||||
*/
|
||||
export default {
|
||||
ja: {
|
||||
days: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜"],
|
||||
daysShort: ["日", "月", "火", "水", "木", "金", "土"],
|
||||
daysMin: ["日", "月", "火", "水", "木", "金", "土"],
|
||||
months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
|
||||
monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
|
||||
today: "今日",
|
||||
format: "yyyy/mm/dd",
|
||||
titleFormat: "y年mm月",
|
||||
clear: "クリア"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Georgian translation for bootstrap-datepicker
|
||||
* Levan Melikishvili <levani0101@yahoo.com>
|
||||
*/
|
||||
export default {
|
||||
ka: {
|
||||
days: ["კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"],
|
||||
daysShort: ["კვი", "ორშ", "სამ", "ოთხ", "ხუთ", "პარ", "შაბ"],
|
||||
daysMin: ["კვ", "ორ", "სა", "ოთ", "ხუ", "პა", "შა"],
|
||||
months: ["იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი", "დეკემბერი"],
|
||||
monthsShort: ["იან", "თებ", "მარ", "აპრ", "მაი", "ივნ", "ივლ", "აგვ", "სექ", "ოქტ", "ნოე", "დეკ"],
|
||||
today: "დღეს",
|
||||
clear: "გასუფთავება",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Kazakh translation for bootstrap-datepicker
|
||||
* Yerzhan Tolekov <era.tolekov@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
kk: {
|
||||
days: ["Жексенбі", "Дүйсенбі", "Сейсенбі", "Сәрсенбі", "Бейсенбі", "Жұма", "Сенбі"],
|
||||
daysShort: ["Жек", "Дүй", "Сей", "Сәр", "Бей", "Жұм", "Сен"],
|
||||
daysMin: ["Жк", "Дс", "Сс", "Ср", "Бс", "Жм", "Сн"],
|
||||
months: ["Қаңтар", "Ақпан", "Наурыз", "Сәуір", "Мамыр", "Маусым", "Шілде", "Тамыз", "Қыркүйек", "Қазан", "Қараша", "Желтоқсан"],
|
||||
monthsShort: ["Қаң", "Ақп", "Нау", "Сәу", "Мам", "Мау", "Шіл", "Там", "Қыр", "Қаз", "Қар", "Жел"],
|
||||
today: "Бүгін",
|
||||
weekStart: 1
|
||||
}
|
||||
};
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Khmer translation for bootstrap-datepicker
|
||||
* This is the Updated Version of: https: //github.com/uxsolutions/bootstrap-datepicker/blob/71308d42cce9524284c50c6fac50422d1790ac0f/js/locales/bootstrap-datepicker.kh.js
|
||||
*/
|
||||
export default {
|
||||
km: {
|
||||
days: ["អាទិត្យ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រហស្បតិ៍", "សុក្រ", "សៅរ៍"],
|
||||
daysShort: ["អា.ទិ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រ.ហ", "សុក្រ", "សៅរ៍"],
|
||||
daysMin: ["អា.ទិ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រ.ហ", "សុក្រ", "សៅរ៍"],
|
||||
months: ["មករា", "កុម្ភះ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"],
|
||||
monthsShort: ["មករា", "កុម្ភះ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"],
|
||||
today: "ថ្ងៃនេះ",
|
||||
clear: "សំអាត"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Korean translation for bootstrap-datepicker
|
||||
* This is a port from https: //github.com/moment/moment/blob/develop/src/locale/ko.js
|
||||
*/
|
||||
export default {
|
||||
ko: {
|
||||
days: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"],
|
||||
daysShort: ["일", "월", "화", "수", "목", "금", "토"],
|
||||
daysMin: ["일", "월", "화", "수", "목", "금", "토"],
|
||||
months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
|
||||
monthsShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
|
||||
today: "오늘",
|
||||
clear: "삭제",
|
||||
format: "yyyy-mm-dd",
|
||||
titleFormat: "y년mm월",
|
||||
weekStart: 0
|
||||
}
|
||||
};
|
|
@ -1,19 +0,0 @@
|
|||
/**
|
||||
* Lithuanian translation for bootstrap-datepicker
|
||||
* Šarūnas Gliebus <ssharunas@yahoo.co.uk>
|
||||
*/
|
||||
|
||||
export default {
|
||||
lt: {
|
||||
days: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"],
|
||||
daysShort: ["S", "Pr", "A", "T", "K", "Pn", "Š"],
|
||||
daysMin: ["Sk", "Pr", "An", "Tr", "Ke", "Pn", "Št"],
|
||||
months: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"],
|
||||
monthsShort: ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugp", "Rugs", "Spa", "Lap", "Gru"],
|
||||
today: "Šiandien",
|
||||
monthsTitle: "Mėnesiai",
|
||||
clear: "Išvalyti",
|
||||
weekStart: 1,
|
||||
format: "yyyy-mm-dd"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Latvian translation for bootstrap-datepicker
|
||||
* Artis Avotins <artis@apit.lv>
|
||||
*/
|
||||
|
||||
export default {
|
||||
lv: {
|
||||
days: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena"],
|
||||
daysShort: ["Sv", "P", "O", "T", "C", "Pk", "S"],
|
||||
daysMin: ["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "Se"],
|
||||
months: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jūn", "Jūl", "Aug", "Sep", "Okt", "Nov", "Dec"],
|
||||
monthsTitle: "Mēneši",
|
||||
today: "Šodien",
|
||||
clear: "Nodzēst",
|
||||
weekStart: 1
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Montenegrin translation for bootstrap-datepicker
|
||||
* Miodrag Nikač <miodrag@restartit.me>
|
||||
*/
|
||||
export default {
|
||||
me: {
|
||||
days: ["Nedjelja","Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
|
||||
daysMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su"],
|
||||
months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Danas",
|
||||
weekStart: 1,
|
||||
clear: "Izbriši",
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Macedonian translation for bootstrap-datepicker
|
||||
* Marko Aleksic <psybaron@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
mk: {
|
||||
days: ["Недела", "Понеделник", "Вторник", "Среда", "Четврток", "Петок", "Сабота"],
|
||||
daysShort: ["Нед", "Пон", "Вто", "Сре", "Чет", "Пет", "Саб"],
|
||||
daysMin: ["Не", "По", "Вт", "Ср", "Че", "Пе", "Са"],
|
||||
months: ["Јануари", "Февруари", "Март", "Април", "Мај", "Јуни", "Јули", "Август", "Септември", "Октомври", "Ноември", "Декември"],
|
||||
monthsShort: ["Јан", "Фев", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Ное", "Дек"],
|
||||
today: "Денес",
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Mongolian translation for bootstrap-datepicker
|
||||
* Andrey Torsunov <andrey.torsunov@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
mn: {
|
||||
days: ["Ням", "Даваа", "Мягмар", "Лхагва", "Пүрэв", "Баасан", "Бямба"],
|
||||
daysShort: ["Ням", "Дав", "Мяг", "Лха", "Пүр", "Баа", "Бям"],
|
||||
daysMin: ["Ня", "Да", "Мя", "Лх", "Пү", "Ба", "Бя"],
|
||||
months: ["Хулгана", "Үхэр", "Бар", "Туулай", "Луу", "Могой", "Морь", "Хонь", "Бич", "Тахиа", "Нохой", "Гахай"],
|
||||
monthsShort: ["Хул", "Үхэ", "Бар", "Туу", "Луу", "Мог", "Мор", "Хон", "Бич", "Тах", "Нох", "Гах"],
|
||||
today: "Өнөөдөр",
|
||||
clear: "Тодорхой",
|
||||
format: "yyyy.mm.dd",
|
||||
weekStart: 1
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Marathi translation for bootstrap-datepicker
|
||||
* Sushant Pimple <pimplesushant@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
mr: {
|
||||
days: ["रविवार", "सोमवार", "मंगळवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार"],
|
||||
daysShort: ["रवि", "सोम", "मंगळ", "बुध", "गुरु", "शुक्र", "शनि"],
|
||||
daysMin: ["र", "सो", "मं", "बु", "गु", "शु", "श"],
|
||||
months: ["जानेवारी", "फेब्रुवारी", "मार्च", "एप्रिल", "मे", "जून", "जुलै", "ऑगस्ट", "सप्टेंबर", "ऑक्टोबर", "नोव्हेंबर", "डिसेंबर"],
|
||||
monthsShort: ["जाने.", "फेब्रु.", "मार्च", "एप्रिल", "मे", "जून", "जुलै", "ऑगस्ट", "सप्टें.", "ऑक्टो.", "नोव्हें.", "डिसें."],
|
||||
today: "आज",
|
||||
monthsTitle: "महीने",
|
||||
clear: "हटवा",
|
||||
weekStart: 1,
|
||||
format: "dd / mm / yyyy"
|
||||
}
|
||||
};
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Malay translation for bootstrap-datepicker
|
||||
* Ateman Faiz <noorulfaiz@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
ms: {
|
||||
days: ["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"],
|
||||
daysShort: ["Aha", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab"],
|
||||
daysMin: ["Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa"],
|
||||
months: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ogo", "Sep", "Okt", "Nov", "Dis"],
|
||||
today: "Hari Ini",
|
||||
clear: "Bersihkan"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Belgium-Dutch translation for bootstrap-datepicker
|
||||
* Julien Poulin <poulin_julien@hotmail.com>
|
||||
*/
|
||||
export default {
|
||||
'nl-BE': {
|
||||
days: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"],
|
||||
daysShort: ["zo", "ma", "di", "wo", "do", "vr", "za"],
|
||||
daysMin: ["zo", "ma", "di", "wo", "do", "vr", "za"],
|
||||
months: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"],
|
||||
monthsShort: ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
|
||||
today: "Vandaag",
|
||||
monthsTitle: "Maanden",
|
||||
clear: "Leegmaken",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Dutch translation for bootstrap-datepicker
|
||||
* Reinier Goltstein <mrgoltstein@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
nl: {
|
||||
days: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"],
|
||||
daysShort: ["zo", "ma", "di", "wo", "do", "vr", "za"],
|
||||
daysMin: ["zo", "ma", "di", "wo", "do", "vr", "za"],
|
||||
months: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"],
|
||||
monthsShort: ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
|
||||
today: "Vandaag",
|
||||
monthsTitle: "Maanden",
|
||||
clear: "Wissen",
|
||||
weekStart: 1,
|
||||
format: "dd-mm-yyyy"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Norwegian translation for bootstrap-datepicker
|
||||
* George Gooding <george@nettsentrisk.no>
|
||||
*/
|
||||
export default {
|
||||
no: {
|
||||
days: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'],
|
||||
daysShort: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],
|
||||
daysMin: ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],
|
||||
months: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'],
|
||||
monthsShort: ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],
|
||||
today: 'i dag',
|
||||
monthsTitle: 'Måneder',
|
||||
clear: 'Nullstill',
|
||||
weekStart: 1,
|
||||
format: 'dd.mm.yyyy'
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Occitan translation for bootstrap-datepicker
|
||||
*/
|
||||
export default {
|
||||
oc: {
|
||||
days: ["Dimenge", "Diluns", "Dimars", "Dimècres", "Dijòus", "Divendres", "Dissabte"],
|
||||
daysShort: ["Dim", "Dil", "Dmr", "Dmc", "Dij", "Div", "Dis"],
|
||||
daysMin: ["dg", "dl", "dr", "dc", "dj", "dv", "ds"],
|
||||
months: ["Genièr", "Febrièr", "Març", "Abrial", "Mai", "Junh", "Julhet", "Agost", "Setembre", "Octobre", "Novembre", "Decembre"],
|
||||
monthsShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Dec"],
|
||||
today: "Uèi",
|
||||
monthsTitle: "Meses",
|
||||
clear: "Escafar",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Polish translation for bootstrap-datepicker
|
||||
* Robert <rtpm@gazeta.pl>
|
||||
*/
|
||||
export default {
|
||||
pl: {
|
||||
days: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"],
|
||||
daysShort: ["Niedz.", "Pon.", "Wt.", "Śr.", "Czw.", "Piąt.", "Sob."],
|
||||
daysMin: ["Ndz.", "Pn.", "Wt.", "Śr.", "Czw.", "Pt.", "Sob."],
|
||||
months: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"],
|
||||
monthsShort: ["Sty.", "Lut.", "Mar.", "Kwi.", "Maj", "Cze.", "Lip.", "Sie.", "Wrz.", "Paź.", "Lis.", "Gru."],
|
||||
today: "Dzisiaj",
|
||||
weekStart: 1,
|
||||
clear: "Wyczyść",
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Brazilian translation for bootstrap-datepicker
|
||||
* Cauan Cabral <cauan@radig.com.br>
|
||||
*/
|
||||
export default {
|
||||
'pt-BR': {
|
||||
days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"],
|
||||
daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
|
||||
daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"],
|
||||
months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
|
||||
monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
|
||||
today: "Hoje",
|
||||
monthsTitle: "Meses",
|
||||
clear: "Limpar",
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Portuguese translation for bootstrap-datepicker
|
||||
* Original code: Cauan Cabral <cauan@radig.com.br>
|
||||
* Tiago Melo <tiago.blackcode@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
pt: {
|
||||
days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"],
|
||||
daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
|
||||
daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"],
|
||||
months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
|
||||
monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
|
||||
today: "Hoje",
|
||||
monthsTitle: "Meses",
|
||||
clear: "Limpar",
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Romanian translation for bootstrap-datepicker
|
||||
* Cristian Vasile <cristi.mie@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
ro: {
|
||||
days: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă"],
|
||||
daysShort: ["Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm"],
|
||||
daysMin: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ"],
|
||||
months: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"],
|
||||
monthsShort: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"],
|
||||
today: "Astăzi",
|
||||
clear: "Șterge",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Russian translation for bootstrap-datepicker
|
||||
* Victor Taranenko <darwin@snowdale.com>
|
||||
*/
|
||||
export default {
|
||||
ru: {
|
||||
days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"],
|
||||
daysShort: ["Вск", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб"],
|
||||
daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"],
|
||||
months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"],
|
||||
monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"],
|
||||
today: "Сегодня",
|
||||
clear: "Очистить",
|
||||
format: "dd.mm.yyyy",
|
||||
weekStart: 1,
|
||||
monthsTitle: 'Месяцы'
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Sinhala translation for bootstrap-datepicker
|
||||
* Chanaka Fernando <chanaka.fernando@hotmail.com>
|
||||
*/
|
||||
export default {
|
||||
si: {
|
||||
days: ["ඉරිදා", "සඳුදා", "අඟහරුවාදා", "බදාදා", "බ්රහස්පතින්දා", "සිකුරාදා", "සෙනසුරාදා"],
|
||||
daysShort: ["ඉරි", "සඳු", "අඟ", "බදා", "බ්රහ", "සිකු", "සෙන"],
|
||||
daysMin: ["ඉ", "ස", "අ", "බ", "බ්ර", "සි", "සෙ"],
|
||||
months: ["ජනවාරි", "පෙබරවාරි", "මාර්තු", "අප්රේල්", "මැයි", "ජුනි", "ජූලි", "අගෝස්තු", "සැප්තැම්බර්", "ඔක්තෝබර්", "නොවැම්බර්", "දෙසැම්බර්"],
|
||||
monthsShort: ["ජන", "පෙබ", "මාර්", "අප්රේ", "මැයි", "ජුනි", "ජූලි", "අගෝ", "සැප්", "ඔක්", "නොවැ", "දෙසැ"],
|
||||
today: "අද",
|
||||
monthsTitle: "මාස",
|
||||
clear: "මකන්න",
|
||||
weekStart: 0,
|
||||
format: "yyyy-mm-dd"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Slovak translation for bootstrap-datepicker
|
||||
* Marek Lichtner <marek@licht.sk>
|
||||
* Fixes by Michal Remiš <michal.remis@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
sk: {
|
||||
days: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Str", "Štv", "Pia", "Sob"],
|
||||
daysMin: ["Ne", "Po", "Ut", "St", "Št", "Pia", "So"],
|
||||
months: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Dnes",
|
||||
clear: "Vymazať",
|
||||
weekStart: 1,
|
||||
format: "d.m.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Slovene translation for bootstrap-datepicker
|
||||
* Gregor Rudolf <gregor.rudolf@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
sl: {
|
||||
days: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"],
|
||||
daysShort: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob"],
|
||||
daysMin: ["Ne", "Po", "To", "Sr", "Če", "Pe", "So"],
|
||||
months: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Danes",
|
||||
weekStart: 1
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Albanian translation for bootstrap-datepicker
|
||||
* Tomor Pupovci <https: //www.github.com/ttomor>
|
||||
*/
|
||||
export default {
|
||||
sq: {
|
||||
days: ["E Diel", "E Hënë", "E Martē", "E Mërkurë", "E Enjte", "E Premte", "E Shtunë"],
|
||||
daysShort: ["Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Shtu"],
|
||||
daysMin: ["Di", "Hë", "Ma", "Më", "En", "Pr", "Sht"],
|
||||
months: ["Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nëntor", "Dhjetor"],
|
||||
monthsShort: ["Jan", "Shk", "Mar", "Pri", "Maj", "Qer", "Korr", "Gu", "Sht", "Tet", "Nën", "Dhjet"],
|
||||
monthsTitle: "Muaj",
|
||||
today: "Sot",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy",
|
||||
clear: "Pastro"
|
||||
}
|
||||
};
|
|
@ -1,16 +0,0 @@
|
|||
/**
|
||||
* Serbian latin translation for bootstrap-datepicker
|
||||
* Bojan Milosavlević <milboj@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'sr-latn': {
|
||||
days: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota"],
|
||||
daysShort: ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub"],
|
||||
daysMin: ["N", "Po", "U", "Sr", "Č", "Pe", "Su"],
|
||||
months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"],
|
||||
monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec"],
|
||||
today: "Danas",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,16 +0,0 @@
|
|||
/**
|
||||
* Serbian cyrillic translation for bootstrap-datepicker
|
||||
* Bojan Milosavlević <milboj@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
sr: {
|
||||
days: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"],
|
||||
daysShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб"],
|
||||
daysMin: ["Н", "По", "У", "Ср", "Ч", "Пе", "Су"],
|
||||
months: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"],
|
||||
monthsShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"],
|
||||
today: "Данас",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Swedish translation for bootstrap-datepicker
|
||||
* Patrik Ragnarsson <patrik@starkast.net>
|
||||
*/
|
||||
export default {
|
||||
sv: {
|
||||
days: ["söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"],
|
||||
daysShort: ["sön", "mån", "tis", "ons", "tor", "fre", "lör"],
|
||||
daysMin: ["sö", "må", "ti", "on", "to", "fr", "lö"],
|
||||
months: ["januari", "februari", "mars", "april", "maj", "juni", "juli", "augusti", "september", "oktober", "november", "december"],
|
||||
monthsShort: ["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
|
||||
today: "Idag",
|
||||
format: "yyyy-mm-dd",
|
||||
weekStart: 1,
|
||||
clear: "Rensa"
|
||||
}
|
||||
};
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Swahili translation for bootstrap-datepicker
|
||||
* Edwin Mugendi <https: //github.com/edwinmugendi>
|
||||
* Source: http: //scriptsource.org/cms/scripts/page.php?item_id=entry_detail&uid=xnfaqyzcku
|
||||
*/
|
||||
export default {
|
||||
sw: {
|
||||
days: ["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"],
|
||||
daysShort: ["J2", "J3", "J4", "J5", "Alh", "Ij", "J1"],
|
||||
daysMin: ["2", "3", "4", "5", "A", "I", "1"],
|
||||
months: ["Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"],
|
||||
monthsShort: ["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"],
|
||||
today: "Leo"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Tamil translation for bootstrap-datepicker
|
||||
* Abubacker Siddik A <abuabdul86@hotmail.com>
|
||||
*/
|
||||
export default {
|
||||
ta: {
|
||||
days: ["ஞாயிறு", "திங்கள்", "செவ்வாய்", "புதன்", "வியாழன்", "வெள்ளி", "சனி"],
|
||||
daysShort: ["ஞாயி", "திங்", "செவ்", "புத", "வியா", "வெள்", "சனி"],
|
||||
daysMin: ["ஞா", "தி", "செ", "பு", "வி", "வெ", "ச"],
|
||||
months: ["ஜனவரி", "பிப்ரவரி", "மார்ச்", "ஏப்ரல்", "மே", "ஜூன்", "ஜூலை", "ஆகஸ்டு", "செப்டம்பர்", "அக்டோபர்", "நவம்பர்", "டிசம்பர்"],
|
||||
monthsShort: ["ஜன", "பிப்", "மார்", "ஏப்", "மே", "ஜூன்", "ஜூலை", "ஆக", "செப்", "அக்", "நவ", "டிச"],
|
||||
today: "இன்று",
|
||||
monthsTitle: "மாதங்கள்",
|
||||
clear: "நீக்கு",
|
||||
weekStart: 1,
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,19 +0,0 @@
|
|||
/**
|
||||
* Tajik (cyrillic) translation for bootstrap-datepicker
|
||||
* Bakhtiyor Bahritidinov <i@bakhtiyor.tj>
|
||||
* Orif N. Jr. <orif.zade@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
tg: {
|
||||
days: ["Якшанбе", "Душанбе", "Сешанбе", "Чоршанбе", "Панҷшанбе", "Ҷумъа", "Шанбе"],
|
||||
daysShort: ["Яшб", "Дшб", "Сшб", "Чшб", "Пшб", "Ҷум", "Шнб"],
|
||||
daysMin: ["Яш", "Дш", "Сш", "Чш", "Пш", "Ҷм", "Шб"],
|
||||
months: ["Январ", "Феврал", "Март", "Апрел", "Май", "Июн", "Июл", "Август", "Сентябр", "Октябр", "Ноябр", "Декабр"],
|
||||
monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"],
|
||||
today: "Имрӯз",
|
||||
monthsTitle: "Моҳҳо",
|
||||
clear: "Тоза намудан",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,14 +0,0 @@
|
|||
/**
|
||||
* Thai translation for bootstrap-datepicker
|
||||
* Suchau Jiraprapot <seroz24@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
th: {
|
||||
days: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"],
|
||||
daysShort: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"],
|
||||
daysMin: ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"],
|
||||
months: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"],
|
||||
monthsShort: ["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."],
|
||||
today: "วันนี้"
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Turkmen translation for bootstrap-datepicker
|
||||
* N'Bayramberdiyev <nbayramberdiyev@outlook.com>
|
||||
*/
|
||||
export default {
|
||||
tk: {
|
||||
days: ["Ýekşenbe", "Duşenbe", "Sişenbe", "Çarşenbe", "Penşenbe", "Anna", "Şenbe"],
|
||||
daysShort: ["Ýek", "Duş", "Siş", "Çar", "Pen", "Ann", "Şen"],
|
||||
daysMin: ["Ýe", "Du", "Si", "Ça", "Pe", "An", "Şe"],
|
||||
months: ["Ýanwar", "Fewral", "Mart", "Aprel", "Maý", "Iýun", "Iýul", "Awgust", "Sentýabr", "Oktýabr", "Noýabr", "Dekabr"],
|
||||
monthsShort: ["Ýan", "Few", "Mar", "Apr", "Maý", "Iýn", "Iýl", "Awg", "Sen", "Okt", "Noý", "Dek"],
|
||||
today: "Bu gün",
|
||||
monthsTitle: "Aýlar",
|
||||
clear: "Aýyr",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Turkish translation for bootstrap-datepicker
|
||||
* Serkan Algur <kaisercrazy_2@hotmail.com>
|
||||
*/
|
||||
export default {
|
||||
tr: {
|
||||
days: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"],
|
||||
daysShort: ["Pz", "Pzt", "Sal", "Çrş", "Prş", "Cu", "Cts"],
|
||||
daysMin: ["Pz", "Pzt", "Sa", "Çr", "Pr", "Cu", "Ct"],
|
||||
months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
|
||||
monthsShort: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"],
|
||||
today: "Bugün",
|
||||
clear: "Temizle",
|
||||
weekStart: 1,
|
||||
format: "dd.mm.yyyy"
|
||||
}
|
||||
};
|
|
@ -1,17 +0,0 @@
|
|||
/**
|
||||
* Ukrainian translation for bootstrap-datepicker
|
||||
* Igor Polynets
|
||||
*/
|
||||
export default {
|
||||
uk: {
|
||||
days: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"],
|
||||
daysShort: ["Нед", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Суб"],
|
||||
daysMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"],
|
||||
months: ["Cічень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"],
|
||||
monthsShort: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"],
|
||||
today: "Сьогодні",
|
||||
clear: "Очистити",
|
||||
format: "dd.mm.yyyy",
|
||||
weekStart: 1
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Uzbek cyrillic translation for bootstrap-datepicker
|
||||
* Kakhramonov Javlonbek <kakjavlon@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'uz-cyrl': {
|
||||
days: ["Якшанба", "Душанба", "Сешанба", "Чоршанба", "Пайшанба", "Жума", "Шанба"],
|
||||
daysShort: ["Якш", "Ду", "Се", "Чор", "Пай", "Жу", "Ша"],
|
||||
daysMin: ["Як", "Ду", "Се", "Чо", "Па", "Жу", "Ша"],
|
||||
months: ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],
|
||||
monthsShort: ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],
|
||||
today: "Бугун",
|
||||
clear: "Ўчириш",
|
||||
format: "dd.mm.yyyy",
|
||||
weekStart: 1,
|
||||
monthsTitle: 'Ойлар'
|
||||
}
|
||||
};
|
|
@ -1,18 +0,0 @@
|
|||
/**
|
||||
* Uzbek latin translation for bootstrap-datepicker
|
||||
* Kakhramonov Javlonbek <kakjavlon@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'uz-latn': {
|
||||
days: ["Yakshanba", "Dushanba", "Seshanba", "Chorshanba", "Payshanba", "Juma", "Shanba"],
|
||||
daysShort: ["Yak", "Du", "Se", "Chor", "Pay", "Ju", "Sha"],
|
||||
daysMin: ["Ya", "Du", "Se", "Cho", "Pa", "Ju", "Sha"],
|
||||
months: ["Yanvar", "Fevral", "Mart", "Aprel", "May", "Iyun", "Iyul", "Avgust", "Sentabr", "Oktabr", "Noyabr", "Dekabr"],
|
||||
monthsShort: ["Yan", "Fev", "Mar", "Apr", "May", "Iyn", "Iyl", "Avg", "Sen", "Okt", "Noy", "Dek"],
|
||||
today: "Bugun",
|
||||
clear: "O'chirish",
|
||||
format: "dd.mm.yyyy",
|
||||
weekStart: 1,
|
||||
monthsTitle: 'Oylar'
|
||||
}
|
||||
};
|
|
@ -1,16 +0,0 @@
|
|||
/**
|
||||
* Vietnamese translation for bootstrap-datepicker
|
||||
* An Vo <https: //github.com/anvoz/>
|
||||
*/
|
||||
export default {
|
||||
vi: {
|
||||
days: ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"],
|
||||
daysShort: ["CN", "Thứ 2", "Thứ 3", "Thứ 4", "Thứ 5", "Thứ 6", "Thứ 7"],
|
||||
daysMin: ["CN", "T2", "T3", "T4", "T5", "T6", "T7"],
|
||||
months: ["Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12"],
|
||||
monthsShort: ["Th1", "Th2", "Th3", "Th4", "Th5", "Th6", "Th7", "Th8", "Th9", "Th10", "Th11", "Th12"],
|
||||
today: "Hôm nay",
|
||||
clear: "Xóa",
|
||||
format: "dd/mm/yyyy"
|
||||
}
|
||||
};
|
|
@ -1,19 +0,0 @@
|
|||
/**
|
||||
* Simplified Chinese translation for bootstrap-datepicker
|
||||
* Yuan Cheung <advanimal@gmail.com>
|
||||
*/
|
||||
export default {
|
||||
'zh-CN': {
|
||||
days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
|
||||
daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
|
||||
daysMin: ["日", "一", "二", "三", "四", "五", "六"],
|
||||
months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
|
||||
monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
|
||||
today: "今天",
|
||||
monthsTitle: "选择月份",
|
||||
clear: "清除",
|
||||
format: "yyyy-mm-dd",
|
||||
titleFormat: "y年mm月",
|
||||
weekStart: 1
|
||||
}
|
||||
};
|
|
@ -1,20 +0,0 @@
|
|||
/**
|
||||
* Traditional Chinese translation for bootstrap-datepicker
|
||||
* Rung-Sheng Jang <daniel@i-trend.co.cc>
|
||||
* FrankWu <frankwu100@gmail.com> Fix more appropriate use of Traditional Chinese habit
|
||||
*/
|
||||
export default {
|
||||
'zh-TW': {
|
||||
days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
|
||||
daysShort: ["週日", "週一", "週二", "週三", "週四", "週五", "週六"],
|
||||
daysMin: ["日", "一", "二", "三", "四", "五", "六"],
|
||||
months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
|
||||
monthsShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
|
||||
today: "今天",
|
||||
monthsTitle: "月份",
|
||||
format: "yyyy/mm/dd",
|
||||
weekStart: 0,
|
||||
titleFormat: "y年mm月",
|
||||
clear: "清除"
|
||||
}
|
||||
};
|
|
@ -1,185 +0,0 @@
|
|||
import {stripTime, today} from './date.js';
|
||||
import {lastItemOf} from './utils.js';
|
||||
|
||||
// pattern for format parts
|
||||
export const reFormatTokens = /dd?|DD?|mm?|MM?|yy?(?:yy)?/;
|
||||
// pattern for non date parts
|
||||
export const reNonDateParts = /[\s!-/:-@[-`{-~年月日]+/;
|
||||
// cache for persed formats
|
||||
let knownFormats = {};
|
||||
// parse funtions for date parts
|
||||
const parseFns = {
|
||||
y(date, year) {
|
||||
return new Date(date).setFullYear(parseInt(year, 10));
|
||||
},
|
||||
m(date, month, locale) {
|
||||
const newDate = new Date(date);
|
||||
let monthIndex = parseInt(month, 10) - 1;
|
||||
|
||||
if (isNaN(monthIndex)) {
|
||||
if (!month) {
|
||||
return NaN;
|
||||
}
|
||||
|
||||
const monthName = month.toLowerCase();
|
||||
const compareNames = name => name.toLowerCase().startsWith(monthName);
|
||||
// compare with both short and full names because some locales have periods
|
||||
// in the short names (not equal to the first X letters of the full names)
|
||||
monthIndex = locale.monthsShort.findIndex(compareNames);
|
||||
if (monthIndex < 0) {
|
||||
monthIndex = locale.months.findIndex(compareNames);
|
||||
}
|
||||
if (monthIndex < 0) {
|
||||
return NaN;
|
||||
}
|
||||
}
|
||||
|
||||
newDate.setMonth(monthIndex);
|
||||
return newDate.getMonth() !== normalizeMonth(monthIndex)
|
||||
? newDate.setDate(0)
|
||||
: newDate.getTime();
|
||||
},
|
||||
d(date, day) {
|
||||
return new Date(date).setDate(parseInt(day, 10));
|
||||
},
|
||||
};
|
||||
// format functions for date parts
|
||||
const formatFns = {
|
||||
d(date) {
|
||||
return date.getDate();
|
||||
},
|
||||
dd(date) {
|
||||
return padZero(date.getDate(), 2);
|
||||
},
|
||||
D(date, locale) {
|
||||
return locale.daysShort[date.getDay()];
|
||||
},
|
||||
DD(date, locale) {
|
||||
return locale.days[date.getDay()];
|
||||
},
|
||||
m(date) {
|
||||
return date.getMonth() + 1;
|
||||
},
|
||||
mm(date) {
|
||||
return padZero(date.getMonth() + 1, 2);
|
||||
},
|
||||
M(date, locale) {
|
||||
return locale.monthsShort[date.getMonth()];
|
||||
},
|
||||
MM(date, locale) {
|
||||
return locale.months[date.getMonth()];
|
||||
},
|
||||
y(date) {
|
||||
return date.getFullYear();
|
||||
},
|
||||
yy(date) {
|
||||
return padZero(date.getFullYear(), 2).slice(-2);
|
||||
},
|
||||
yyyy(date) {
|
||||
return padZero(date.getFullYear(), 4);
|
||||
},
|
||||
};
|
||||
|
||||
// get month index in normal range (0 - 11) from any number
|
||||
function normalizeMonth(monthIndex) {
|
||||
return monthIndex > -1 ? monthIndex % 12 : normalizeMonth(monthIndex + 12);
|
||||
}
|
||||
|
||||
function padZero(num, length) {
|
||||
return num.toString().padStart(length, '0');
|
||||
}
|
||||
|
||||
function parseFormatString(format) {
|
||||
if (typeof format !== 'string') {
|
||||
throw new Error("Invalid date format.");
|
||||
}
|
||||
if (format in knownFormats) {
|
||||
return knownFormats[format];
|
||||
}
|
||||
|
||||
// sprit the format string into parts and seprators
|
||||
const separators = format.split(reFormatTokens);
|
||||
const parts = format.match(new RegExp(reFormatTokens, 'g'));
|
||||
if (separators.length === 0 || !parts) {
|
||||
throw new Error("Invalid date format.");
|
||||
}
|
||||
|
||||
// collect format functions used in the format
|
||||
const partFormatters = parts.map(token => formatFns[token]);
|
||||
|
||||
// collect parse function keys used in the format
|
||||
// iterate over parseFns' keys in order to keep the order of the keys.
|
||||
const partParserKeys = Object.keys(parseFns).reduce((keys, key) => {
|
||||
const token = parts.find(part => part[0] !== 'D' && part[0].toLowerCase() === key);
|
||||
if (token) {
|
||||
keys.push(key);
|
||||
}
|
||||
return keys;
|
||||
}, []);
|
||||
|
||||
return knownFormats[format] = {
|
||||
parser(dateStr, locale) {
|
||||
const dateParts = dateStr.split(reNonDateParts).reduce((dtParts, part, index) => {
|
||||
if (part.length > 0 && parts[index]) {
|
||||
const token = parts[index][0];
|
||||
if (token === 'M') {
|
||||
dtParts.m = part;
|
||||
} else if (token !== 'D') {
|
||||
dtParts[token] = part;
|
||||
}
|
||||
}
|
||||
return dtParts;
|
||||
}, {});
|
||||
|
||||
// iterate over partParserkeys so that the parsing is made in the oder
|
||||
// of year, month and day to prevent the day parser from correcting last
|
||||
// day of month wrongly
|
||||
return partParserKeys.reduce((origDate, key) => {
|
||||
const newDate = parseFns[key](origDate, dateParts[key], locale);
|
||||
// ingnore the part failed to parse
|
||||
return isNaN(newDate) ? origDate : newDate;
|
||||
}, today());
|
||||
},
|
||||
formatter(date, locale) {
|
||||
let dateStr = partFormatters.reduce((str, fn, index) => {
|
||||
return str += `${separators[index]}${fn(date, locale)}`;
|
||||
}, '');
|
||||
// separators' length is always parts' length + 1,
|
||||
return dateStr += lastItemOf(separators);
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export function parseDate(dateStr, format, locale) {
|
||||
if (dateStr instanceof Date || typeof dateStr === 'number') {
|
||||
const date = stripTime(dateStr);
|
||||
return isNaN(date) ? undefined : date;
|
||||
}
|
||||
if (!dateStr) {
|
||||
return undefined;
|
||||
}
|
||||
if (dateStr === 'today') {
|
||||
return today();
|
||||
}
|
||||
|
||||
if (format && format.toValue) {
|
||||
const date = format.toValue(dateStr, format, locale);
|
||||
return isNaN(date) ? undefined : stripTime(date);
|
||||
}
|
||||
|
||||
return parseFormatString(format).parser(dateStr, locale);
|
||||
}
|
||||
|
||||
export function formatDate(date, format, locale) {
|
||||
if (isNaN(date) || (!date && date !== 0)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
const dateObj = typeof date === 'number' ? new Date(date) : date;
|
||||
|
||||
if (format.toDisplay) {
|
||||
return format.toDisplay(dateObj, format, locale);
|
||||
}
|
||||
|
||||
return parseFormatString(format).formatter(dateObj, locale);
|
||||
}
|
|
@ -1,100 +0,0 @@
|
|||
export function stripTime(timeValue) {
|
||||
return new Date(timeValue).setHours(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
export function today() {
|
||||
return new Date().setHours(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
// Get the time value of the start of given date or year, month and day
|
||||
export function dateValue(...args) {
|
||||
switch (args.length) {
|
||||
case 0:
|
||||
return today();
|
||||
case 1:
|
||||
return stripTime(args[0]);
|
||||
}
|
||||
|
||||
// use setFullYear() to keep 2-digit year from being mapped to 1900-1999
|
||||
const newDate = new Date(0);
|
||||
newDate.setFullYear(...args);
|
||||
return newDate.setHours(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
export function addDays(date, amount) {
|
||||
const newDate = new Date(date);
|
||||
return newDate.setDate(newDate.getDate() + amount);
|
||||
}
|
||||
|
||||
export function addWeeks(date, amount) {
|
||||
return addDays(date, amount * 7);
|
||||
}
|
||||
|
||||
export function addMonths(date, amount) {
|
||||
// If the day of the date is not in the new month, the last day of the new
|
||||
// month will be returned. e.g. Jan 31 + 1 month → Feb 28 (not Mar 03)
|
||||
const newDate = new Date(date);
|
||||
const monthsToSet = newDate.getMonth() + amount;
|
||||
let expectedMonth = monthsToSet % 12;
|
||||
if (expectedMonth < 0) {
|
||||
expectedMonth += 12;
|
||||
}
|
||||
|
||||
const time = newDate.setMonth(monthsToSet);
|
||||
return newDate.getMonth() !== expectedMonth ? newDate.setDate(0) : time;
|
||||
}
|
||||
|
||||
export function addYears(date, amount) {
|
||||
// If the date is Feb 29 and the new year is not a leap year, Feb 28 of the
|
||||
// new year will be returned.
|
||||
const newDate = new Date(date);
|
||||
const expectedMonth = newDate.getMonth();
|
||||
const time = newDate.setFullYear(newDate.getFullYear() + amount);
|
||||
return expectedMonth === 1 && newDate.getMonth() === 2 ? newDate.setDate(0) : time;
|
||||
}
|
||||
|
||||
// Calculate the distance bettwen 2 days of the week
|
||||
function dayDiff(day, from) {
|
||||
return (day - from + 7) % 7;
|
||||
}
|
||||
|
||||
// Get the date of the specified day of the week of given base date
|
||||
export function dayOfTheWeekOf(baseDate, dayOfWeek, weekStart = 0) {
|
||||
const baseDay = new Date(baseDate).getDay();
|
||||
return addDays(baseDate, dayDiff(dayOfWeek, weekStart) - dayDiff(baseDay, weekStart));
|
||||
}
|
||||
|
||||
// Get the ISO week of a date
|
||||
export function getWeek(date) {
|
||||
// start of ISO week is Monday
|
||||
const thuOfTheWeek = dayOfTheWeekOf(date, 4, 1);
|
||||
// 1st week == the week where the 4th of January is in
|
||||
const firstThu = dayOfTheWeekOf(new Date(thuOfTheWeek).setMonth(0, 4), 4, 1);
|
||||
return Math.round((thuOfTheWeek - firstThu) / 604800000) + 1;
|
||||
}
|
||||
|
||||
// Get the start year of the period of years that includes given date
|
||||
// years: length of the year period
|
||||
export function startOfYearPeriod(date, years) {
|
||||
/* @see https://en.wikipedia.org/wiki/Year_zero#ISO_8601 */
|
||||
const year = new Date(date).getFullYear();
|
||||
return Math.floor(year / years) * years;
|
||||
}
|
||||
|
||||
// Convert date to the first/last date of the month/year of the date
|
||||
export function regularizeDate(date, timeSpan, useLastDate) {
|
||||
if (timeSpan !== 1 && timeSpan !== 2) {
|
||||
return date;
|
||||
}
|
||||
const newDate = new Date(date);
|
||||
if (timeSpan === 1) {
|
||||
useLastDate
|
||||
? newDate.setMonth(newDate.getMonth() + 1, 0)
|
||||
: newDate.setDate(1);
|
||||
} else {
|
||||
useLastDate
|
||||
? newDate.setFullYear(newDate.getFullYear() + 1, 0, 0)
|
||||
: newDate.setMonth(0, 1);
|
||||
}
|
||||
return newDate.setHours(0, 0, 0, 0);
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
const range = document.createRange();
|
||||
|
||||
export function parseHTML(html) {
|
||||
return range.createContextualFragment(html);
|
||||
}
|
||||
|
||||
export function getParent(el) {
|
||||
return el.parentElement
|
||||
|| (el.parentNode instanceof ShadowRoot ? el.parentNode.host : undefined);
|
||||
}
|
||||
|
||||
export function isActiveElement(el) {
|
||||
return el.getRootNode().activeElement === el;
|
||||
}
|
||||
|
||||
// equivalent to jQuery's :visble
|
||||
export function isVisible(el) {
|
||||
return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);
|
||||
}
|
||||
|
||||
export function hideElement(el) {
|
||||
if (el.style.display === 'none') {
|
||||
return;
|
||||
}
|
||||
// back up the existing display setting in data-style-display
|
||||
if (el.style.display) {
|
||||
el.dataset.styleDisplay = el.style.display;
|
||||
}
|
||||
el.style.display = 'none';
|
||||
}
|
||||
|
||||
export function showElement(el) {
|
||||
if (el.style.display !== 'none') {
|
||||
return;
|
||||
}
|
||||
if (el.dataset.styleDisplay) {
|
||||
// restore backed-up dispay property
|
||||
el.style.display = el.dataset.styleDisplay;
|
||||
delete el.dataset.styleDisplay;
|
||||
} else {
|
||||
el.style.display = '';
|
||||
}
|
||||
}
|
||||
|
||||
export function emptyChildNodes(el) {
|
||||
if (el.firstChild) {
|
||||
el.removeChild(el.firstChild);
|
||||
emptyChildNodes(el);
|
||||
}
|
||||
}
|
||||
|
||||
export function replaceChildNodes(el, newChildNodes) {
|
||||
emptyChildNodes(el);
|
||||
if (newChildNodes instanceof DocumentFragment) {
|
||||
el.appendChild(newChildNodes);
|
||||
} else if (typeof newChildNodes === 'string') {
|
||||
el.appendChild(parseHTML(newChildNodes));
|
||||
} else if (typeof newChildNodes.forEach === 'function') {
|
||||
newChildNodes.forEach((node) => {
|
||||
el.appendChild(node);
|
||||
});
|
||||
}
|
||||
}
|
|
@ -1,71 +0,0 @@
|
|||
const listenerRegistry = new WeakMap();
|
||||
const {addEventListener, removeEventListener} = EventTarget.prototype;
|
||||
|
||||
// Register event listeners to a key object
|
||||
// listeners: array of listener definitions;
|
||||
// - each definition must be a flat array of event target and the arguments
|
||||
// used to call addEventListener() on the target
|
||||
export function registerListeners(keyObj, listeners) {
|
||||
let registered = listenerRegistry.get(keyObj);
|
||||
if (!registered) {
|
||||
registered = [];
|
||||
listenerRegistry.set(keyObj, registered);
|
||||
}
|
||||
listeners.forEach((listener) => {
|
||||
addEventListener.call(...listener);
|
||||
registered.push(listener);
|
||||
});
|
||||
}
|
||||
|
||||
export function unregisterListeners(keyObj) {
|
||||
let listeners = listenerRegistry.get(keyObj);
|
||||
if (!listeners) {
|
||||
return;
|
||||
}
|
||||
listeners.forEach((listener) => {
|
||||
removeEventListener.call(...listener);
|
||||
});
|
||||
listenerRegistry.delete(keyObj);
|
||||
}
|
||||
|
||||
// Event.composedPath() polyfill for Edge
|
||||
// based on https://gist.github.com/kleinfreund/e9787d73776c0e3750dcfcdc89f100ec
|
||||
if (!Event.prototype.composedPath) {
|
||||
const getComposedPath = (node, path = []) => {
|
||||
path.push(node);
|
||||
|
||||
let parent;
|
||||
if (node.parentNode) {
|
||||
parent = node.parentNode;
|
||||
} else if (node.host) { // ShadowRoot
|
||||
parent = node.host;
|
||||
} else if (node.defaultView) { // Document
|
||||
parent = node.defaultView;
|
||||
}
|
||||
return parent ? getComposedPath(parent, path) : path;
|
||||
};
|
||||
|
||||
Event.prototype.composedPath = function () {
|
||||
return getComposedPath(this.target);
|
||||
};
|
||||
}
|
||||
|
||||
function findFromPath(path, criteria, currentTarget) {
|
||||
const [node, ...rest] = path;
|
||||
if (criteria(node)) {
|
||||
return node;
|
||||
}
|
||||
if (node === currentTarget || node.tagName === 'HTML' || rest.length === 0) {
|
||||
// stop when reaching currentTarget or <html>
|
||||
return;
|
||||
}
|
||||
return findFromPath(rest, criteria, currentTarget);
|
||||
}
|
||||
|
||||
// Search for the actual target of a delegated event
|
||||
export function findElementInEventPath(ev, selector) {
|
||||
const criteria = typeof selector === 'function'
|
||||
? selector
|
||||
: el => el instanceof Element && el.matches(selector);
|
||||
return findFromPath(ev.composedPath(), criteria, ev.currentTarget);
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
export function hasProperty(obj, prop) {
|
||||
return Object.prototype.hasOwnProperty.call(obj, prop);
|
||||
}
|
||||
|
||||
export function lastItemOf(arr) {
|
||||
return arr[arr.length - 1];
|
||||
}
|
||||
|
||||
// push only the items not included in the array
|
||||
export function pushUnique(arr, ...items) {
|
||||
items.forEach((item) => {
|
||||
if (arr.includes(item)) {
|
||||
return;
|
||||
}
|
||||
arr.push(item);
|
||||
});
|
||||
return arr;
|
||||
}
|
||||
|
||||
export function stringToArray(str, separator) {
|
||||
// convert empty string to an empty array
|
||||
return str ? str.split(separator) : [];
|
||||
}
|
||||
|
||||
export function isInRange(testVal, min, max) {
|
||||
const minOK = min === undefined || testVal >= min;
|
||||
const maxOK = max === undefined || testVal <= max;
|
||||
return minOK && maxOK;
|
||||
}
|
||||
|
||||
export function limitToRange(val, min, max) {
|
||||
if (val < min) {
|
||||
return min;
|
||||
}
|
||||
if (val > max) {
|
||||
return max;
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
export function createTagRepeat(tagName, repeat, attributes = {}, index = 0, html = '') {
|
||||
const openTagSrc = Object.keys(attributes).reduce((src, attr) => {
|
||||
let val = attributes[attr];
|
||||
if (typeof val === 'function') {
|
||||
val = val(index);
|
||||
}
|
||||
return `${src} ${attr}="${val}"`;
|
||||
}, tagName);
|
||||
html += `<${openTagSrc}></${tagName}>`;
|
||||
|
||||
const next = index + 1;
|
||||
return next < repeat
|
||||
? createTagRepeat(tagName, repeat, attributes, next, html)
|
||||
: html;
|
||||
}
|
||||
|
||||
// Remove the spacing surrounding tags for HTML parser not to create text nodes
|
||||
// before/after elements
|
||||
export function optimizeTemplateHTML(html) {
|
||||
return html.replace(/>\s+/g, '>').replace(/\s+</, '<');
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
/**
|
||||
* Arabic-Algeria translation for bootstrap-datepicker
|
||||
* Rabah Saadi <infosrabah@gmail.com>
|
||||
*/
|
||||
(function () {
|
||||
Datepicker.locales['ar-DZ'] = {
|
||||
days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"],
|
||||
daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"],
|
||||
daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"],
|
||||
months: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],
|
||||
monthsShort: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],
|
||||
today: "هذا اليوم",
|
||||
rtl: true,
|
||||
monthsTitle: "أشهر",
|
||||
clear: "إزالة",
|
||||
format: "yyyy/mm/dd",
|
||||
weekStart: 0
|
||||
};
|
||||
}());
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Arabic-Tunisia translation for bootstrap-datepicker
|
||||
* Souhaieb Besbes <besbes.souhaieb@gmail.com>
|
||||
*/
|
||||
(function () {
|
||||
Datepicker.locales['ar-tn'] = {
|
||||
days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"],
|
||||
daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"],
|
||||
daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"],
|
||||
months: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],
|
||||
monthsShort: ["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],
|
||||
today: "هذا اليوم",
|
||||
rtl: true
|
||||
};
|
||||
}());
|
|
@ -1,15 +0,0 @@
|
|||
/**
|
||||
* Arabic translation for bootstrap-datepicker
|
||||
* Mohammed Alshehri <alshehri866@gmail.com>
|
||||
*/
|
||||
(function () {
|
||||
Datepicker.locales.ar = {
|
||||
days: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"],
|
||||
daysShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت", "أحد"],
|
||||
daysMin: ["ح", "ن", "ث", "ع", "خ", "ج", "س", "ح"],
|
||||
months: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"],
|
||||
monthsShort: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"],
|
||||
today: "هذا اليوم",
|
||||
rtl: true
|
||||
};
|
||||
}());
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue