mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Merge commit '65c3d1bf3868ad3e1caec9fc77021735df53f989' into issue-711
This commit is contained in:
@@ -54,7 +54,6 @@
|
||||
"requireCamelCaseOrUpperCaseIdentifiers": "ignoreProperties",
|
||||
"disallowKeywords": ["with"],
|
||||
"disallowMultipleLineStrings": true,
|
||||
"validateLineBreaks": "LF",
|
||||
"validateIndentation": 4,
|
||||
"disallowTrailingWhitespace": true,
|
||||
"disallowTrailingComma": true,
|
||||
|
@@ -1,7 +1,9 @@
|
||||
Submitting Issues
|
||||
=================
|
||||
|
||||
If you are submitting a bug, please test and/or fork [this jsfiddle](http://jsfiddle.net/kmbo576p/) demonstrating the issue. Code issues and fringe case bugs that do not include a jsfiddle (or similar) will be closed.
|
||||
If you are submitting a bug, please test and/or fork [this jsfiddle](http://jsfiddle.net/Eonasdan/0Ltv25o8/) demonstrating the issue. Code issues and fringe case bugs that do not include a jsfiddle (or similar) will be closed.
|
||||
|
||||
Issues that are submitted without a description (title only) will be closed with no further explanation.
|
||||
|
||||
Contributing code
|
||||
=================
|
||||
@@ -22,6 +24,9 @@ Very important notes
|
||||
|
||||
* **Pull requests to the `master` branch will be closed.** Please submit all pull requests to the `development` branch.
|
||||
* **Do not include the minified files in your pull request.** Don't worry, we'll build them when we cut a release.
|
||||
* Pull requests that do not include a description (title only) and the following will be closed:
|
||||
* What the change does
|
||||
* A use case (for new features or enhancements)
|
||||
|
||||
Grunt tasks
|
||||
===========
|
||||
@@ -30,3 +35,4 @@ We use Grunt for managing the build. Here are some useful Grunt tasks:
|
||||
|
||||
* `grunt` The default task lints the code and runs the tests. You should make sure you do this before submitting a PR.
|
||||
* `grunt build` Compiles the less stylesheet and minifies the javascript source in build directory.
|
||||
* `grunt build:travis` Compliles and runs the jasmine/travis tests. **All PR's MUST pass tests in place**
|
||||
|
@@ -24,11 +24,12 @@ module.exports = function (grunt) {
|
||||
|
||||
jshint: {
|
||||
all: [
|
||||
'Gruntfile.js', 'src/js/*.js'
|
||||
'Gruntfile.js', 'src/js/*.js', 'test/*.js'
|
||||
],
|
||||
options: {
|
||||
'browser' : true,
|
||||
'node' : true,
|
||||
'jquery' : true,
|
||||
'boss' : false,
|
||||
'curly' : true,
|
||||
'debug' : false,
|
||||
@@ -57,15 +58,24 @@ module.exports = function (grunt) {
|
||||
'quotmark' : 'single',
|
||||
'globals': {
|
||||
'define': false,
|
||||
'jQuery': false,
|
||||
'moment': false
|
||||
'moment': false,
|
||||
// Jasmine
|
||||
'jasmine': false,
|
||||
'describe': false,
|
||||
'xdescribe': false,
|
||||
'expect': false,
|
||||
'it': false,
|
||||
'xit': false,
|
||||
'spyOn': false,
|
||||
'beforeEach': false,
|
||||
'afterEach': false
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
jscs: {
|
||||
all: [
|
||||
'Gruntfile.js', 'src/js/*.js'
|
||||
'Gruntfile.js', 'src/js/*.js', 'test/*.js'
|
||||
],
|
||||
options: {
|
||||
config: '.jscs.json'
|
||||
@@ -86,22 +96,49 @@ module.exports = function (grunt) {
|
||||
'build/css/bootstrap-datetimepicker.css': 'src/less/bootstrap-datetimepicker-build.less'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
jasmine: {
|
||||
customTemplate: {
|
||||
src: 'src/js/*.js',
|
||||
options: {
|
||||
specs: 'test/*Spec.js',
|
||||
helpers: 'test/*Helper.js',
|
||||
styles: [
|
||||
'node_modules/bootstrap/dist/css/bootstrap.min.css',
|
||||
'build/css/bootstrap-datetimepicker.min.css'
|
||||
],
|
||||
vendor: [
|
||||
'node_modules/jquery/dist/jquery.min.js',
|
||||
'node_modules/moment/min/moment-with-locales.min.js',
|
||||
'node_modules/bootstrap/dist/js/bootstrap.min.js'
|
||||
],
|
||||
display: 'none',
|
||||
summary: 'true'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
grunt.loadTasks('tasks');
|
||||
|
||||
grunt.loadNpmTasks('grunt-contrib-jasmine');
|
||||
|
||||
// These plugins provide necessary tasks.
|
||||
require('load-grunt-tasks')(grunt);
|
||||
|
||||
// Default task.
|
||||
grunt.registerTask('default', ['jshint', 'jscs']);
|
||||
grunt.registerTask('default', ['jshint', 'jscs', 'less', 'jasmine']);
|
||||
|
||||
// travis build task
|
||||
grunt.registerTask('build:travis', [
|
||||
// code style
|
||||
'jshint', 'jscs'
|
||||
'jshint', 'jscs',
|
||||
// build
|
||||
'uglify', 'less',
|
||||
// tests
|
||||
'jasmine'
|
||||
]);
|
||||
|
||||
// Task to be run when building
|
||||
@@ -131,7 +168,7 @@ module.exports = function (grunt) {
|
||||
done();
|
||||
});
|
||||
}
|
||||
else {
|
||||
else { //--target=css
|
||||
grunt.util.spawn({
|
||||
cmd: 'src/nuget/nuget.exe',
|
||||
args: [
|
||||
@@ -152,4 +189,6 @@ module.exports = function (grunt) {
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
grunt.registerTask('test', ['jshint', 'jscs', 'uglify', 'less', 'jasmine']);
|
||||
};
|
||||
|
@@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Eonasdan, nikoskalogridis
|
||||
Copyright (c) 2015 Jonathan Peterson (@Eonasdan)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
@@ -1,17 +1,25 @@
|
||||
# Bootstrap v3 datetimepicker widget  
|
||||
# Bootstrap 3 Date/Time Picker
|
||||
 
|
||||
|
||||

|
||||
|
||||
## [View the manual and demos](http://eonasdan.github.io/bootstrap-datetimepicker/)
|
||||
|
||||
#v4
|
||||
v4 is out now! For v4 related bugs and issues see: /Eonasdan/bootstrap-datetimepicker/labels/v4.
|
||||
|
||||
v3 is going into an archive state. Please be sure to check the documents. v4 has breaking changes and is a major rewrite.
|
||||
|
||||
## Submitting Issues
|
||||
Please test and/or fork [this jsfiddle](http://jsfiddle.net/kmbo576p/) with an example of your issue before you post an issue here.
|
||||
If you have issues, please check the following first:
|
||||
* Have you read the docs?
|
||||
* Do you have the latest version of momentjs?
|
||||
* Do you have the latest version of jQuery?
|
||||
* Please test and/or fork [this jsfiddle](http://jsfiddle.net/Eonasdan/0Ltv25o8/) with an example of your issue before you post an issue here.
|
||||
|
||||
## Where do you use this?
|
||||
I'd love to know if your public site is using this plugin and list your logo on the documentation site. Please email me `eonasdan at outlook dot com`. Do not submit issue/feature request to this email, they will be ignored.
|
||||
I'd love to know if your public site is using this plugin and list your logo on the documentation site. Please email me `eonasdan at outlook dot com`. Do not submit issue/feature request to this email, they will be **ignored**.
|
||||
|
||||
## [Installation instructions](https://github.com/Eonasdan/bootstrap-datetimepicker/wiki/Installation)
|
||||
Installation instructions has been moved to the wiki
|
||||
## [Installation instructions](http://eonasdan.github.io/bootstrap-datetimepicker/Installing/)
|
||||
|
||||
## [Change Log](https://github.com/Eonasdan/bootstrap-datetimepicker/wiki/Change-Log)
|
||||
The change log has moved to the wiki
|
||||
## [Change Log](http://eonasdan.github.io/bootstrap-datetimepicker/Version%204%20Changelog/)
|
||||
|
@@ -1,13 +1,15 @@
|
||||
{
|
||||
"name": "eonasdan-bootstrap-datetimepicker",
|
||||
"version": "3.1.3",
|
||||
"version": "4.7.14",
|
||||
"main": [
|
||||
"build/css/bootstrap-datetimepicker.min.css",
|
||||
"build/js/bootstrap-datetimepicker.min.js"
|
||||
"build/js/bootstrap-datetimepicker.min.js",
|
||||
"src/less/_bootstrap-datetimepicker.less",
|
||||
"src/less/bootstrap-datetimepicker-build.less",
|
||||
"src/js/bootstrap-datetimepicker.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"jquery": ">=1.8.3",
|
||||
"bootstrap": ">= 3.0",
|
||||
"moment": ">=2.8.0"
|
||||
},
|
||||
"homepage": "https://github.com/Eonasdan/bootstrap-datetimepicker",
|
||||
|
@@ -1,75 +1,76 @@
|
||||
/*!
|
||||
* Datetimepicker for Bootstrap v3
|
||||
//! version : 3.1.3
|
||||
* Datetimepicker for Bootstrap 3
|
||||
* ! version : 4.7.14
|
||||
* https://github.com/Eonasdan/bootstrap-datetimepicker/
|
||||
*/
|
||||
.bootstrap-datetimepicker-widget {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 250px;
|
||||
list-style: none;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu {
|
||||
margin: 2px 0;
|
||||
padding: 4px;
|
||||
margin-top: 1px;
|
||||
z-index: 99999 !important;
|
||||
border-radius: 4px;
|
||||
width: 19em;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.timepicker-sbs {
|
||||
width: 600px;
|
||||
@media (min-width: 768px) {
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
|
||||
width: 38em;
|
||||
}
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.bottom:before {
|
||||
@media (min-width: 992px) {
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
|
||||
width: 38em;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
|
||||
width: 38em;
|
||||
}
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu:before,
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before {
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-bottom: 7px solid #ccc;
|
||||
border-bottom: 7px solid #cccccc;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
left: 7px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.bottom:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid white;
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
left: 8px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.top:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.top:before {
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-top: 7px solid #ccc;
|
||||
border-top: 7px solid #cccccc;
|
||||
border-top-color: rgba(0, 0, 0, 0.2);
|
||||
position: absolute;
|
||||
bottom: -7px;
|
||||
left: 6px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.top:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.top:after {
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-top: 6px solid white;
|
||||
position: absolute;
|
||||
bottom: -6px;
|
||||
left: 7px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .dow {
|
||||
width: 14.2857%;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.pull-right:before {
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before {
|
||||
left: auto;
|
||||
right: 6px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.pull-right:after {
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after {
|
||||
left: auto;
|
||||
right: 7px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget > ul {
|
||||
list-style-type: none;
|
||||
.bootstrap-datetimepicker-widget .list-unstyled {
|
||||
margin: 0;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget a[data-action] {
|
||||
@@ -89,82 +90,238 @@
|
||||
.bootstrap-datetimepicker-widget button[data-action] {
|
||||
padding: 6px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table[data-hour-format="12"] .separator {
|
||||
width: 4px;
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Increment Hours";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .datepicker > div {
|
||||
display: none;
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Increment Minutes";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Decrement Hours";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Decrement Minutes";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Show Hours";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Show Minutes";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Toggle AM/PM";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Clear the picker";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="today"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Set the date to today";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .picker-switch {
|
||||
text-align: center;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .picker-switch::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Toggle Date and Time Screens";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .picker-switch td {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: auto;
|
||||
width: auto;
|
||||
line-height: inherit;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .picker-switch td span {
|
||||
line-height: 2.5;
|
||||
height: 2.5em;
|
||||
width: 100%;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td,
|
||||
.bootstrap-datetimepicker-widget th {
|
||||
.bootstrap-datetimepicker-widget table td,
|
||||
.bootstrap-datetimepicker-widget table th {
|
||||
text-align: center;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td {
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
width: 54px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td.cw {
|
||||
font-size: 10px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
color: #777777;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td.day {
|
||||
.bootstrap-datetimepicker-widget table th {
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
width: 20px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td.day:hover,
|
||||
.bootstrap-datetimepicker-widget td.hour:hover,
|
||||
.bootstrap-datetimepicker-widget td.minute:hover,
|
||||
.bootstrap-datetimepicker-widget td.second:hover {
|
||||
.bootstrap-datetimepicker-widget table th.picker-switch {
|
||||
width: 145px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table th.disabled,
|
||||
.bootstrap-datetimepicker-widget table th.disabled:hover {
|
||||
background: none;
|
||||
color: #777777;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table th.prev::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Previous Month";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table th.next::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Next Month";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table thead tr:first-child th {
|
||||
cursor: pointer;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table thead tr:first-child th:hover {
|
||||
background: #eeeeee;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td {
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
width: 54px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td.cw {
|
||||
font-size: .8em;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
color: #777777;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td.day {
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
width: 20px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td.day:hover,
|
||||
.bootstrap-datetimepicker-widget table td.hour:hover,
|
||||
.bootstrap-datetimepicker-widget table td.minute:hover,
|
||||
.bootstrap-datetimepicker-widget table td.second:hover {
|
||||
background: #eeeeee;
|
||||
cursor: pointer;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td.old,
|
||||
.bootstrap-datetimepicker-widget td.new {
|
||||
.bootstrap-datetimepicker-widget table td.old,
|
||||
.bootstrap-datetimepicker-widget table td.new {
|
||||
color: #777777;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td.today {
|
||||
.bootstrap-datetimepicker-widget table td.today {
|
||||
position: relative;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td.today:before {
|
||||
.bootstrap-datetimepicker-widget table td.today:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 7px solid transparent;
|
||||
border-bottom: 7px solid #428bca;
|
||||
border: 0 0 7px 7px solid transparent;
|
||||
border-bottom-color: #337ab7;
|
||||
border-top-color: rgba(0, 0, 0, 0.2);
|
||||
position: absolute;
|
||||
bottom: 4px;
|
||||
right: 4px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td.active,
|
||||
.bootstrap-datetimepicker-widget td.active:hover {
|
||||
background-color: #428bca;
|
||||
.bootstrap-datetimepicker-widget table td.active,
|
||||
.bootstrap-datetimepicker-widget table td.active:hover {
|
||||
background-color: #337ab7;
|
||||
color: #ffffff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td.active.today:before {
|
||||
.bootstrap-datetimepicker-widget table td.active.today:before {
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td.disabled,
|
||||
.bootstrap-datetimepicker-widget td.disabled:hover {
|
||||
.bootstrap-datetimepicker-widget table td.disabled,
|
||||
.bootstrap-datetimepicker-widget table td.disabled:hover {
|
||||
background: none;
|
||||
color: #777777;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td span {
|
||||
.bootstrap-datetimepicker-widget table td span {
|
||||
display: inline-block;
|
||||
width: 54px;
|
||||
height: 54px;
|
||||
@@ -173,66 +330,37 @@
|
||||
cursor: pointer;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td span:hover {
|
||||
.bootstrap-datetimepicker-widget table td span:hover {
|
||||
background: #eeeeee;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td span.active {
|
||||
background-color: #428bca;
|
||||
.bootstrap-datetimepicker-widget table td span.active {
|
||||
background-color: #337ab7;
|
||||
color: #ffffff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td span.old {
|
||||
.bootstrap-datetimepicker-widget table td span.old {
|
||||
color: #777777;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget td span.disabled,
|
||||
.bootstrap-datetimepicker-widget td span.disabled:hover {
|
||||
.bootstrap-datetimepicker-widget table td span.disabled,
|
||||
.bootstrap-datetimepicker-widget table td span.disabled:hover {
|
||||
background: none;
|
||||
color: #777777;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget th {
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
width: 20px;
|
||||
.bootstrap-datetimepicker-widget.usetwentyfour td.hour {
|
||||
height: 27px;
|
||||
line-height: 27px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget th.picker-switch {
|
||||
width: 145px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget th.next,
|
||||
.bootstrap-datetimepicker-widget th.prev {
|
||||
font-size: 21px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget th.disabled,
|
||||
.bootstrap-datetimepicker-widget th.disabled:hover {
|
||||
background: none;
|
||||
color: #777777;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget thead tr:first-child th {
|
||||
.input-group.date .input-group-addon {
|
||||
cursor: pointer;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget thead tr:first-child th:hover {
|
||||
background: #eeeeee;
|
||||
}
|
||||
.input-group.date .input-group-addon span {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.left-oriented:before {
|
||||
left: auto;
|
||||
right: 6px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.left-oriented:after {
|
||||
left: auto;
|
||||
right: 7px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget ul.list-unstyled li div.timepicker div.timepicker-picker table.table-condensed tbody > tr > td {
|
||||
padding: 0px !important;
|
||||
}
|
||||
@media screen and (max-width: 767px) {
|
||||
.bootstrap-datetimepicker-widget.timepicker-sbs {
|
||||
width: 283px;
|
||||
}
|
||||
.sr-only {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
}
|
||||
|
@@ -1,5 +1,366 @@
|
||||
/*!
|
||||
* Datetimepicker for Bootstrap v3
|
||||
//! version : 3.1.3
|
||||
* Datetimepicker for Bootstrap 3
|
||||
* ! version : 4.7.14
|
||||
* https://github.com/Eonasdan/bootstrap-datetimepicker/
|
||||
*/.bootstrap-datetimepicker-widget{top:0;left:0;width:250px;padding:4px;margin-top:1px;z-index:99999!important;border-radius:4px}.bootstrap-datetimepicker-widget.timepicker-sbs{width:600px}.bootstrap-datetimepicker-widget.bottom:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2);position:absolute;top:-7px;left:7px}.bootstrap-datetimepicker-widget.bottom:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;top:-6px;left:8px}.bootstrap-datetimepicker-widget.top:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;border-top-color:rgba(0,0,0,.2);position:absolute;bottom:-7px;left:6px}.bootstrap-datetimepicker-widget.top:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #fff;position:absolute;bottom:-6px;left:7px}.bootstrap-datetimepicker-widget .dow{width:14.2857%}.bootstrap-datetimepicker-widget.pull-right:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.pull-right:after{left:auto;right:7px}.bootstrap-datetimepicker-widget>ul{list-style-type:none;margin:0}.bootstrap-datetimepicker-widget a[data-action]{padding:6px 0}.bootstrap-datetimepicker-widget a[data-action]:active{box-shadow:none}.bootstrap-datetimepicker-widget .timepicker-hour,.bootstrap-datetimepicker-widget .timepicker-minute,.bootstrap-datetimepicker-widget .timepicker-second{width:54px;font-weight:700;font-size:1.2em;margin:0}.bootstrap-datetimepicker-widget button[data-action]{padding:6px}.bootstrap-datetimepicker-widget table[data-hour-format="12"] .separator{width:4px;padding:0;margin:0}.bootstrap-datetimepicker-widget .datepicker>div{display:none}.bootstrap-datetimepicker-widget .picker-switch{text-align:center}.bootstrap-datetimepicker-widget table{width:100%;margin:0}.bootstrap-datetimepicker-widget td,.bootstrap-datetimepicker-widget th{text-align:center;border-radius:4px}.bootstrap-datetimepicker-widget td{height:54px;line-height:54px;width:54px}.bootstrap-datetimepicker-widget td.cw{font-size:10px;height:20px;line-height:20px;color:#777}.bootstrap-datetimepicker-widget td.day{height:20px;line-height:20px;width:20px}.bootstrap-datetimepicker-widget td.day:hover,.bootstrap-datetimepicker-widget td.hour:hover,.bootstrap-datetimepicker-widget td.minute:hover,.bootstrap-datetimepicker-widget td.second:hover{background:#eee;cursor:pointer}.bootstrap-datetimepicker-widget td.old,.bootstrap-datetimepicker-widget td.new{color:#777}.bootstrap-datetimepicker-widget td.today{position:relative}.bootstrap-datetimepicker-widget td.today:before{content:'';display:inline-block;border-left:7px solid transparent;border-bottom:7px solid #428bca;border-top-color:rgba(0,0,0,.2);position:absolute;bottom:4px;right:4px}.bootstrap-datetimepicker-widget td.active,.bootstrap-datetimepicker-widget td.active:hover{background-color:#428bca;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.bootstrap-datetimepicker-widget td.active.today:before{border-bottom-color:#fff}.bootstrap-datetimepicker-widget td.disabled,.bootstrap-datetimepicker-widget td.disabled:hover{background:0 0;color:#777;cursor:not-allowed}.bootstrap-datetimepicker-widget td span{display:inline-block;width:54px;height:54px;line-height:54px;margin:2px 1.5px;cursor:pointer;border-radius:4px}.bootstrap-datetimepicker-widget td span:hover{background:#eee}.bootstrap-datetimepicker-widget td span.active{background-color:#428bca;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.bootstrap-datetimepicker-widget td span.old{color:#777}.bootstrap-datetimepicker-widget td span.disabled,.bootstrap-datetimepicker-widget td span.disabled:hover{background:0 0;color:#777;cursor:not-allowed}.bootstrap-datetimepicker-widget th{height:20px;line-height:20px;width:20px}.bootstrap-datetimepicker-widget th.picker-switch{width:145px}.bootstrap-datetimepicker-widget th.next,.bootstrap-datetimepicker-widget th.prev{font-size:21px}.bootstrap-datetimepicker-widget th.disabled,.bootstrap-datetimepicker-widget th.disabled:hover{background:0 0;color:#777;cursor:not-allowed}.bootstrap-datetimepicker-widget thead tr:first-child th{cursor:pointer}.bootstrap-datetimepicker-widget thead tr:first-child th:hover{background:#eee}.input-group.date .input-group-addon span{display:block;cursor:pointer;width:16px;height:16px}.bootstrap-datetimepicker-widget.left-oriented:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.left-oriented:after{left:auto;right:7px}.bootstrap-datetimepicker-widget ul.list-unstyled li div.timepicker div.timepicker-picker table.table-condensed tbody>tr>td{padding:0!important}@media screen and (max-width:767px){.bootstrap-datetimepicker-widget.timepicker-sbs{width:283px}}
|
||||
*/
|
||||
.bootstrap-datetimepicker-widget {
|
||||
list-style: none;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu {
|
||||
margin: 2px 0;
|
||||
padding: 4px;
|
||||
width: 19em;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
|
||||
width: 38em;
|
||||
}
|
||||
}
|
||||
@media (min-width: 992px) {
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
|
||||
width: 38em;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
|
||||
width: 38em;
|
||||
}
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu:before,
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before {
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-bottom: 7px solid #cccccc;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||
top: -7px;
|
||||
left: 7px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid white;
|
||||
top: -6px;
|
||||
left: 8px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.top:before {
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-top: 7px solid #cccccc;
|
||||
border-top-color: rgba(0, 0, 0, 0.2);
|
||||
bottom: -7px;
|
||||
left: 6px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.top:after {
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-top: 6px solid white;
|
||||
bottom: -6px;
|
||||
left: 7px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before {
|
||||
left: auto;
|
||||
right: 6px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after {
|
||||
left: auto;
|
||||
right: 7px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .list-unstyled {
|
||||
margin: 0;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget a[data-action] {
|
||||
padding: 6px 0;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget a[data-action]:active {
|
||||
box-shadow: none;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .timepicker-hour,
|
||||
.bootstrap-datetimepicker-widget .timepicker-minute,
|
||||
.bootstrap-datetimepicker-widget .timepicker-second {
|
||||
width: 54px;
|
||||
font-weight: bold;
|
||||
font-size: 1.2em;
|
||||
margin: 0;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget button[data-action] {
|
||||
padding: 6px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Increment Hours";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Increment Minutes";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Decrement Hours";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Decrement Minutes";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Show Hours";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Show Minutes";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Toggle AM/PM";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Clear the picker";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .btn[data-action="today"]::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Set the date to today";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .picker-switch {
|
||||
text-align: center;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .picker-switch::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Toggle Date and Time Screens";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .picker-switch td {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: auto;
|
||||
width: auto;
|
||||
line-height: inherit;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget .picker-switch td span {
|
||||
line-height: 2.5;
|
||||
height: 2.5em;
|
||||
width: 100%;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td,
|
||||
.bootstrap-datetimepicker-widget table th {
|
||||
text-align: center;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table th {
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
width: 20px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table th.picker-switch {
|
||||
width: 145px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table th.disabled,
|
||||
.bootstrap-datetimepicker-widget table th.disabled:hover {
|
||||
background: none;
|
||||
color: #777777;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table th.prev::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Previous Month";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table th.next::after {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
content: "Next Month";
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table thead tr:first-child th {
|
||||
cursor: pointer;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table thead tr:first-child th:hover {
|
||||
background: #eeeeee;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td {
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
width: 54px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td.cw {
|
||||
font-size: .8em;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
color: #777777;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td.day {
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
width: 20px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td.day:hover,
|
||||
.bootstrap-datetimepicker-widget table td.hour:hover,
|
||||
.bootstrap-datetimepicker-widget table td.minute:hover,
|
||||
.bootstrap-datetimepicker-widget table td.second:hover {
|
||||
background: #eeeeee;
|
||||
cursor: pointer;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td.old,
|
||||
.bootstrap-datetimepicker-widget table td.new {
|
||||
color: #777777;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td.today {
|
||||
position: relative;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td.today:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border: 0 0 7px 7px solid transparent;
|
||||
border-bottom-color: #337ab7;
|
||||
border-top-color: rgba(0, 0, 0, 0.2);
|
||||
position: absolute;
|
||||
bottom: 4px;
|
||||
right: 4px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td.active,
|
||||
.bootstrap-datetimepicker-widget table td.active:hover {
|
||||
background-color: #337ab7;
|
||||
color: #ffffff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td.active.today:before {
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td.disabled,
|
||||
.bootstrap-datetimepicker-widget table td.disabled:hover {
|
||||
background: none;
|
||||
color: #777777;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td span {
|
||||
display: inline-block;
|
||||
width: 54px;
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
margin: 2px 1.5px;
|
||||
cursor: pointer;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td span:hover {
|
||||
background: #eeeeee;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td span.active {
|
||||
background-color: #337ab7;
|
||||
color: #ffffff;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td span.old {
|
||||
color: #777777;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget table td span.disabled,
|
||||
.bootstrap-datetimepicker-widget table td span.disabled:hover {
|
||||
background: none;
|
||||
color: #777777;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.bootstrap-datetimepicker-widget.usetwentyfour td.hour {
|
||||
height: 27px;
|
||||
line-height: 27px;
|
||||
}
|
||||
.input-group.date .input-group-addon {
|
||||
cursor: pointer;
|
||||
}
|
||||
.sr-only {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
@@ -1,10 +1,9 @@
|
||||
{
|
||||
"name": "bootstrap-datetimepicker",
|
||||
"version": "3.1.3",
|
||||
"main": ["build/css/bootstrap-datetimepicker.min.css","build/js/bootstrap-datetimepicker.min.js"],
|
||||
"version": "4.7.14",
|
||||
"main": ["build/css/bootstrap-datetimepicker.min.css","build/js/bootstrap-datetimepicker.min.js","src/less/_bootstrap-datetimepicker.less","src/less/bootstrap-datetimepicker-build.less","src/js/bootstrap-datetimepicker.js"],
|
||||
"dependencies": {
|
||||
"jquery" : ">=1.8.3",
|
||||
"bootstrap" : ">=3.0",
|
||||
"moment": ">=2.8.0"
|
||||
}
|
||||
}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "eonasdan/bootstrap-datetimepicker",
|
||||
"type": "component",
|
||||
"version": "3.1.3",
|
||||
"version": "4.7.14",
|
||||
"description": "Date/time picker widget based on twitter bootstrap",
|
||||
"keywords": [
|
||||
"bootstrap",
|
||||
@@ -12,7 +12,6 @@
|
||||
"require": {
|
||||
"robloach/component-installer": "*",
|
||||
"components/jquery": ">=1.9.1",
|
||||
"components/bootstrap": "3.*",
|
||||
"moment/moment": ">=2.8"
|
||||
},
|
||||
"extra": {
|
||||
@@ -23,7 +22,9 @@
|
||||
"files": [
|
||||
"build/js/bootstrap-datetimepicker.min.js",
|
||||
"build/css/bootstrap-datetimepicker.css",
|
||||
"build/css/bootstrap-datetimepicker.min.css"
|
||||
"build/css/bootstrap-datetimepicker.min.css",
|
||||
"src/less/_bootstrap-datetimepicker.less",
|
||||
"src/less/bootstrap-datetimepicker-build.less"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "bootstrap-datetimepicker",
|
||||
"main": "src/js/bootstrap-datetimepicker.js",
|
||||
"version": "3.1.3",
|
||||
"version": "4.7.14",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/eonasdan/bootstrap-datetimepicker.git"
|
||||
@@ -15,21 +15,21 @@
|
||||
"datepicker",
|
||||
"datetimepicker",
|
||||
"timepicker",
|
||||
"moment"
|
||||
"moment"
|
||||
],
|
||||
"dependencies": {
|
||||
"moment": "~2.8.1",
|
||||
"bootstrap": "^3.0",
|
||||
"jquery": "^1.8.3"
|
||||
"moment": "~2.8.2",
|
||||
"bootstrap": "^3.0",
|
||||
"jquery": "latest"
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt": "latest",
|
||||
"grunt-contrib-jasmine": "^0.7.0",
|
||||
"grunt-contrib-jshint": "latest",
|
||||
"grunt-contrib-less": "latest",
|
||||
"grunt-contrib-uglify": "latest",
|
||||
"grunt-jscs": "latest",
|
||||
"load-grunt-tasks": "latest",
|
||||
"grunt-string-replace": "latest",
|
||||
"grunt-contrib-less": "latest",
|
||||
"bootstrap": "latest"
|
||||
"load-grunt-tasks": "latest"
|
||||
}
|
||||
}
|
||||
|
3081
html/js/datetime/src/js/bootstrap-datetimepicker.js
vendored
3081
html/js/datetime/src/js/bootstrap-datetimepicker.js
vendored
File diff suppressed because it is too large
Load Diff
343
html/js/datetime/src/less/_bootstrap-datetimepicker.less
Normal file
343
html/js/datetime/src/less/_bootstrap-datetimepicker.less
Normal file
@@ -0,0 +1,343 @@
|
||||
/*!
|
||||
* Datetimepicker for Bootstrap 3
|
||||
* ! version : 4.7.14
|
||||
* https://github.com/Eonasdan/bootstrap-datetimepicker/
|
||||
*/
|
||||
@bs-datetimepicker-timepicker-font-size: 1.2em;
|
||||
@bs-datetimepicker-active-bg: @btn-primary-bg;
|
||||
@bs-datetimepicker-active-color: @btn-primary-color;
|
||||
@bs-datetimepicker-border-radius: @border-radius-base;
|
||||
@bs-datetimepicker-btn-hover-bg: @gray-lighter;
|
||||
@bs-datetimepicker-disabled-color: @gray-light;
|
||||
@bs-datetimepicker-alternate-color: @gray-light;
|
||||
@bs-datetimepicker-secondary-border-color: #ccc;
|
||||
@bs-datetimepicker-secondary-border-color-rgba: rgba(0, 0, 0, 0.2);
|
||||
@bs-datetimepicker-primary-border-color: white;
|
||||
@bs-datetimepicker-text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
|
||||
.bootstrap-datetimepicker-widget {
|
||||
list-style: none;
|
||||
|
||||
&.dropdown-menu {
|
||||
margin: 2px 0;
|
||||
padding: 4px;
|
||||
width: 19em;
|
||||
|
||||
&.timepicker-sbs {
|
||||
@media (min-width: @screen-sm-min) {
|
||||
width: 38em;
|
||||
}
|
||||
|
||||
@media (min-width: @screen-md-min) {
|
||||
width: 38em;
|
||||
}
|
||||
|
||||
@media (min-width: @screen-lg-min) {
|
||||
width: 38em;
|
||||
}
|
||||
}
|
||||
|
||||
&:before, &:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
&.bottom {
|
||||
&:before {
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-bottom: 7px solid @bs-datetimepicker-secondary-border-color;
|
||||
border-bottom-color: @bs-datetimepicker-secondary-border-color-rgba;
|
||||
top: -7px;
|
||||
left: 7px;
|
||||
}
|
||||
|
||||
&:after {
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid @bs-datetimepicker-primary-border-color;
|
||||
top: -6px;
|
||||
left: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
&.top {
|
||||
&:before {
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-top: 7px solid @bs-datetimepicker-secondary-border-color;
|
||||
border-top-color: @bs-datetimepicker-secondary-border-color-rgba;
|
||||
bottom: -7px;
|
||||
left: 6px;
|
||||
}
|
||||
|
||||
&:after {
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-top: 6px solid @bs-datetimepicker-primary-border-color;
|
||||
bottom: -6px;
|
||||
left: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
&.pull-right {
|
||||
&:before {
|
||||
left: auto;
|
||||
right: 6px;
|
||||
}
|
||||
|
||||
&:after {
|
||||
left: auto;
|
||||
right: 7px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.list-unstyled {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
a[data-action] {
|
||||
padding: 6px 0;
|
||||
}
|
||||
|
||||
a[data-action]:active {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.timepicker-hour, .timepicker-minute, .timepicker-second {
|
||||
width: 54px;
|
||||
font-weight: bold;
|
||||
font-size: @bs-datetimepicker-timepicker-font-size;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
button[data-action] {
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
.btn[data-action="incrementHours"]::after {
|
||||
.sr-only();
|
||||
content: "Increment Hours";
|
||||
}
|
||||
|
||||
.btn[data-action="incrementMinutes"]::after {
|
||||
.sr-only();
|
||||
content: "Increment Minutes";
|
||||
}
|
||||
|
||||
.btn[data-action="decrementHours"]::after {
|
||||
.sr-only();
|
||||
content: "Decrement Hours";
|
||||
}
|
||||
|
||||
.btn[data-action="decrementMinutes"]::after {
|
||||
.sr-only();
|
||||
content: "Decrement Minutes";
|
||||
}
|
||||
|
||||
.btn[data-action="showHours"]::after {
|
||||
.sr-only();
|
||||
content: "Show Hours";
|
||||
}
|
||||
|
||||
.btn[data-action="showMinutes"]::after {
|
||||
.sr-only();
|
||||
content: "Show Minutes";
|
||||
}
|
||||
|
||||
.btn[data-action="togglePeriod"]::after {
|
||||
.sr-only();
|
||||
content: "Toggle AM/PM";
|
||||
}
|
||||
|
||||
.btn[data-action="clear"]::after {
|
||||
.sr-only();
|
||||
content: "Clear the picker";
|
||||
}
|
||||
|
||||
.btn[data-action="today"]::after {
|
||||
.sr-only();
|
||||
content: "Set the date to today";
|
||||
}
|
||||
|
||||
.picker-switch {
|
||||
text-align: center;
|
||||
|
||||
&::after {
|
||||
.sr-only();
|
||||
content: "Toggle Date and Time Screens";
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
height: auto;
|
||||
width: auto;
|
||||
line-height: inherit;
|
||||
|
||||
span {
|
||||
line-height: 2.5;
|
||||
height: 2.5em;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
|
||||
|
||||
& td,
|
||||
& th {
|
||||
text-align: center;
|
||||
border-radius: @bs-datetimepicker-border-radius;
|
||||
}
|
||||
|
||||
& th {
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
width: 20px;
|
||||
|
||||
&.picker-switch {
|
||||
width: 145px;
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
background: none;
|
||||
color: @bs-datetimepicker-disabled-color;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
&.prev::after {
|
||||
.sr-only();
|
||||
content: "Previous Month";
|
||||
}
|
||||
|
||||
&.next::after {
|
||||
.sr-only();
|
||||
content: "Next Month";
|
||||
}
|
||||
}
|
||||
|
||||
& thead tr:first-child th {
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background: @bs-datetimepicker-btn-hover-bg;
|
||||
}
|
||||
}
|
||||
|
||||
& td {
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
width: 54px;
|
||||
|
||||
&.cw {
|
||||
font-size: .8em;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
color: @bs-datetimepicker-alternate-color;
|
||||
}
|
||||
|
||||
&.day {
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
&.day:hover,
|
||||
&.hour:hover,
|
||||
&.minute:hover,
|
||||
&.second:hover {
|
||||
background: @bs-datetimepicker-btn-hover-bg;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
&.old,
|
||||
&.new {
|
||||
color: @bs-datetimepicker-alternate-color;
|
||||
}
|
||||
|
||||
&.today {
|
||||
position: relative;
|
||||
|
||||
&:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border: 0 0 7px 7px solid transparent;
|
||||
border-bottom-color: @bs-datetimepicker-active-bg;
|
||||
border-top-color: @bs-datetimepicker-secondary-border-color-rgba;
|
||||
position: absolute;
|
||||
bottom: 4px;
|
||||
right: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
&.active,
|
||||
&.active:hover {
|
||||
background-color: @bs-datetimepicker-active-bg;
|
||||
color: @bs-datetimepicker-active-color;
|
||||
text-shadow: @bs-datetimepicker-text-shadow;
|
||||
}
|
||||
|
||||
&.active.today:before {
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
background: none;
|
||||
color: @bs-datetimepicker-disabled-color;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
width: 54px;
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
margin: 2px 1.5px;
|
||||
cursor: pointer;
|
||||
border-radius: @bs-datetimepicker-border-radius;
|
||||
|
||||
&:hover {
|
||||
background: @bs-datetimepicker-btn-hover-bg;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background-color: @bs-datetimepicker-active-bg;
|
||||
color: @bs-datetimepicker-active-color;
|
||||
text-shadow: @bs-datetimepicker-text-shadow;
|
||||
}
|
||||
|
||||
&.old {
|
||||
color: @bs-datetimepicker-alternate-color;
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
background: none;
|
||||
color: @bs-datetimepicker-disabled-color;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.usetwentyfour {
|
||||
td.hour {
|
||||
height: 27px;
|
||||
line-height: 27px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.input-group.date {
|
||||
& .input-group-addon {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
@@ -1,5 +1,17 @@
|
||||
// Import boostrap variables including default color palette and fonts
|
||||
// Import bootstrap variables including default color palette and fonts
|
||||
@import "../../node_modules/bootstrap/less/variables.less";
|
||||
|
||||
// Import datepicker component
|
||||
@import "bootstrap-datetimepicker.less";
|
||||
@import "_bootstrap-datetimepicker.less";
|
||||
|
||||
|
||||
.sr-only {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0,0,0,0);
|
||||
border: 0;
|
||||
}
|
||||
|
@@ -1,294 +0,0 @@
|
||||
/*!
|
||||
* Datetimepicker for Bootstrap v3
|
||||
//! version : 3.1.3
|
||||
* https://github.com/Eonasdan/bootstrap-datetimepicker/
|
||||
*/
|
||||
.bootstrap-datetimepicker-widget {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 250px;
|
||||
padding: 4px;
|
||||
margin-top: 1px;
|
||||
z-index: 99999 !important;
|
||||
border-radius: @border-radius-base;
|
||||
|
||||
&.timepicker-sbs {
|
||||
width: 600px;
|
||||
}
|
||||
|
||||
&.bottom {
|
||||
&:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-bottom: 7px solid #ccc;
|
||||
border-bottom-color: rgba(0,0,0,.2);
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
left: 7px;
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid white;
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
left: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
&.top {
|
||||
&:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-top: 7px solid #ccc;
|
||||
border-top-color: rgba(0,0,0,.2);
|
||||
position: absolute;
|
||||
bottom: -7px;
|
||||
left: 6px;
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-top: 6px solid white;
|
||||
position: absolute;
|
||||
bottom: -6px;
|
||||
left: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
& .dow {
|
||||
width: 14.2857%;
|
||||
}
|
||||
|
||||
&.pull-right {
|
||||
&:before {
|
||||
left: auto;
|
||||
right: 6px;
|
||||
}
|
||||
|
||||
&:after {
|
||||
left: auto;
|
||||
right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
>ul {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
a[data-action] {
|
||||
padding: 6px 0;
|
||||
}
|
||||
|
||||
a[data-action]:active {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.timepicker-hour, .timepicker-minute, .timepicker-second {
|
||||
width: 54px;
|
||||
font-weight: bold;
|
||||
font-size: 1.2em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
button[data-action] {
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
table[data-hour-format="12"] .separator {
|
||||
width: 4px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.datepicker > div {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.picker-switch {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
text-align: center;
|
||||
border-radius: @border-radius-base;
|
||||
}
|
||||
|
||||
td {
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
width: 54px;
|
||||
|
||||
&.cw
|
||||
{
|
||||
font-size: 10px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
color: @gray-light;
|
||||
}
|
||||
|
||||
&.day
|
||||
{
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
&.day:hover,
|
||||
&.hour:hover,
|
||||
&.minute:hover,
|
||||
&.second:hover {
|
||||
background: @gray-lighter;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
&.old,
|
||||
&.new {
|
||||
color: @gray-light;
|
||||
}
|
||||
|
||||
&.today {
|
||||
position: relative;
|
||||
|
||||
&:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 7px solid transparent;
|
||||
border-bottom: 7px solid @btn-primary-bg;
|
||||
border-top-color: rgba(0, 0, 0, 0.2);
|
||||
position: absolute;
|
||||
bottom: 4px;
|
||||
right: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
&.active,
|
||||
&.active:hover {
|
||||
background-color: @btn-primary-bg;
|
||||
color: @btn-primary-color;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
||||
}
|
||||
|
||||
&.active.today:before {
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
background: none;
|
||||
color: @gray-light;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
width: 54px;
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
margin: 2px 1.5px;
|
||||
cursor: pointer;
|
||||
border-radius: @border-radius-base;
|
||||
|
||||
&:hover {
|
||||
background: @gray-lighter;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background-color: @btn-primary-bg;
|
||||
color: @btn-primary-color;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
||||
}
|
||||
|
||||
&.old {
|
||||
color: @gray-light;
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
background: none;
|
||||
color: @gray-light;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
th {
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
width: 20px;
|
||||
|
||||
&.picker-switch {
|
||||
width: 145px;
|
||||
}
|
||||
|
||||
&.next,
|
||||
&.prev {
|
||||
font-size: @font-size-base * 1.5;
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
background: none;
|
||||
color: @gray-light;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
|
||||
thead tr:first-child th {
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background: @gray-lighter;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.input-group {
|
||||
&.date {
|
||||
.input-group-addon span {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bootstrap-datetimepicker-widget.left-oriented {
|
||||
&:before {
|
||||
left: auto;
|
||||
right: 6px;
|
||||
}
|
||||
|
||||
&:after {
|
||||
left: auto;
|
||||
right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.bootstrap-datetimepicker-widget ul.list-unstyled li div.timepicker div.timepicker-picker table.table-condensed tbody > tr > td {
|
||||
padding: 0px !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
.bootstrap-datetimepicker-widget.timepicker-sbs {
|
||||
width: 283px;
|
||||
}
|
||||
}
|
@@ -2,7 +2,7 @@
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>Bootstrap.v3.Datetimepicker.CSS</id>
|
||||
<version>3.1.2</version>
|
||||
<version>4.0.0</version>
|
||||
<title>Bootstrap 3 Datetimepicker CSS</title>
|
||||
<authors>Eonasdan</authors>
|
||||
<owners>Eonasdan</owners>
|
||||
@@ -12,12 +12,12 @@
|
||||
|
||||
For usage, installation and demos see Project Site on GitHub
|
||||
|
||||
For CSS version install Bootstrap.v3.Datetimepicker.CSS</description>
|
||||
For LESS version install Bootstrap.v3.Datetimepicker</description>
|
||||
<releaseNotes>Check the change log on Github at https://github.com/Eonasdan/bootstrap-datetimepicker/wiki/Change-Log</releaseNotes>
|
||||
<tags>bootstrap date time picker datetimepicker datepicker jquery</tags>
|
||||
<dependencies>
|
||||
<dependency id="Twitter.Bootstrap.Less" version="3.0.0" />
|
||||
<dependency id="Moment.js" version="2.8.1" />
|
||||
<dependency id="Moment.js" version="2.8.4" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>Bootstrap.v3.Datetimepicker</id>
|
||||
<version>3.1.2</version>
|
||||
<version>4.0.0</version>
|
||||
<title>Bootstrap 3 Datetimepicker</title>
|
||||
<authors>Eonasdan</authors>
|
||||
<owners>Eonasdan</owners>
|
||||
@@ -17,13 +17,13 @@ For CSS version install Bootstrap.v3.Datetimepicker.CSS</description>
|
||||
<tags>bootstrap date time picker datetimepicker datepicker jquery</tags>
|
||||
<dependencies>
|
||||
<dependency id="Twitter.Bootstrap.Less" version="3.0.0" />
|
||||
<dependency id="Moment.js" version="2.8.1" />
|
||||
<dependency id="Moment.js" version="2.8.4" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
<file src="..\..\src\js\bootstrap-datetimepicker.js" target="content\Scripts" />
|
||||
<file src="..\..\build\js\bootstrap-datetimepicker.min.js" target="content\Scripts" />
|
||||
<file src="..\..\src\less\bootstrap-datetimepicker.less" target="content\Content\less" />
|
||||
<file src="..\..\src\less\_bootstrap-datetimepicker.less" target="content\Content\less" />
|
||||
<file src="..\..\src\less\bootstrap-datetimepicker-build.less" target="content\Content\less" />
|
||||
<file src="install.ps1" target="tools\" />
|
||||
</files>
|
||||
|
@@ -1,2 +1,2 @@
|
||||
# install.ps1
|
||||
$DTE.ItemOperations.Navigate("https://github.com/Eonasdan/bootstrap-datetimepicker#change-log", $DTE.vsNavigateOptions.vsNavigateOptionsNewWindow)
|
||||
$DTE.ItemOperations.Navigate("http://eonasdan.github.io/bootstrap-datetimepicker/", $DTE.vsNavigateOptions.vsNavigateOptionsNewWindow)
|
||||
|
700
html/js/datetime/test/publicApiSpec.js
Normal file
700
html/js/datetime/test/publicApiSpec.js
Normal file
@@ -0,0 +1,700 @@
|
||||
describe('Plugin initialization and component basic construction', function () {
|
||||
'use strict';
|
||||
|
||||
it('loads jquery plugin properly', function () {
|
||||
expect($('<div>').datetimepicker).toBeDefined();
|
||||
expect(typeof $('<div>').datetimepicker).toEqual('function');
|
||||
expect($('<div>').datetimepicker.defaults).toBeDefined();
|
||||
});
|
||||
|
||||
it('creates the component with default options on an input element', function () {
|
||||
var dtp = $('<input>');
|
||||
$(document).find('body').append(dtp);
|
||||
|
||||
expect(function () {
|
||||
dtp = dtp.datetimepicker();
|
||||
}).not.toThrow();
|
||||
|
||||
expect(dtp).not.toBe(null);
|
||||
});
|
||||
|
||||
xit('calls destroy when Element that the component is attached is removed', function () {
|
||||
var dtpElement = $('<div>').attr('class', 'row').append($('<div>').attr('class', 'col-md-12').append($('<input>'))),
|
||||
dtp;
|
||||
$(document).find('body').append(dtpElement);
|
||||
dtpElement.datetimepicker();
|
||||
dtp = dtpElement.data('DateTimePicker');
|
||||
spyOn(dtp, 'destroy').and.callThrough();
|
||||
dtpElement.remove();
|
||||
expect(dtp.destroy).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Public API method tests', function () {
|
||||
'use strict';
|
||||
var dtp,
|
||||
dtpElement,
|
||||
dpChangeSpy,
|
||||
dpShowSpy,
|
||||
dpHideSpy,
|
||||
dpErrorSpy;
|
||||
|
||||
beforeEach(function () {
|
||||
dpChangeSpy = jasmine.createSpy('dp.change event Spy');
|
||||
dpShowSpy = jasmine.createSpy('dp.show event Spy');
|
||||
dpHideSpy = jasmine.createSpy('dp.hide event Spy');
|
||||
dpErrorSpy = jasmine.createSpy('dp.error event Spy');
|
||||
dtpElement = $('<input>').attr('id', 'dtp');
|
||||
|
||||
$(document).find('body').append($('<div>').attr('class', 'row').append($('<div>').attr('class', 'col-md-12').append(dtpElement)));
|
||||
$(document).find('body').on('dp.change', dpChangeSpy);
|
||||
$(document).find('body').on('dp.show', dpShowSpy);
|
||||
$(document).find('body').on('dp.hide', dpHideSpy);
|
||||
$(document).find('body').on('dp.error', dpErrorSpy);
|
||||
|
||||
dtpElement.datetimepicker();
|
||||
dtp = dtpElement.data('DateTimePicker');
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
dtp.destroy();
|
||||
dtpElement.remove();
|
||||
});
|
||||
|
||||
describe('configuration option name match to public api function', function () {
|
||||
Object.getOwnPropertyNames($.fn.datetimepicker.defaults).forEach(function (key) {
|
||||
it('has function ' + key + '()', function () {
|
||||
expect(dtp[key]).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('date() function', function () {
|
||||
describe('typechecking', function () {
|
||||
it('accepts a null', function () {
|
||||
expect(function () {
|
||||
dtp.date(null);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('accepts a string', function () {
|
||||
expect(function () {
|
||||
dtp.date('2013/05/24');
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('accepts a Date object', function () {
|
||||
expect(function () {
|
||||
dtp.date(new Date());
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('accepts a Moment object', function () {
|
||||
expect(function () {
|
||||
dtp.date(moment());
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('does not accept undefined', function () {
|
||||
expect(function () {
|
||||
dtp.date(undefined);
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('does not accept a number', function () {
|
||||
expect(function () {
|
||||
dtp.date(0);
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('does not accept a generic Object', function () {
|
||||
expect(function () {
|
||||
dtp.date({});
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('does not accept a boolean', function () {
|
||||
expect(function () {
|
||||
dtp.date(false);
|
||||
}).toThrow();
|
||||
});
|
||||
});
|
||||
|
||||
describe('functionality', function () {
|
||||
it('has no date set upon construction', function () {
|
||||
expect(dtp.date()).toBe(null);
|
||||
});
|
||||
|
||||
it('sets the date correctly', function () {
|
||||
var timestamp = moment();
|
||||
dtp.date(timestamp);
|
||||
expect(dtp.date().isSame(timestamp)).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('format() function', function () {
|
||||
describe('typechecking', function () {
|
||||
it('accepts a false value', function () {
|
||||
expect(function () {
|
||||
dtp.format(false);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('accepts a string', function () {
|
||||
expect(function () {
|
||||
dtp.format('YYYY-MM-DD');
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('does not accept undefined', function () {
|
||||
expect(function () {
|
||||
dtp.format(undefined);
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('does not accept true', function () {
|
||||
expect(function () {
|
||||
dtp.format(true);
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('does not accept a generic Object', function () {
|
||||
expect(function () {
|
||||
dtp.format({});
|
||||
}).toThrow();
|
||||
});
|
||||
});
|
||||
|
||||
describe('functionality', function () {
|
||||
it('returns no format before format is set', function () {
|
||||
expect(dtp.format()).toBe(false);
|
||||
});
|
||||
|
||||
it('sets the format correctly', function () {
|
||||
dtp.format('YYYY-MM-DD');
|
||||
expect(dtp.format()).toBe('YYYY-MM-DD');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('destroy() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.destroy).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('toggle() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.toggle).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
// describe('functionality', function () {
|
||||
// it('')
|
||||
// });
|
||||
});
|
||||
|
||||
describe('show() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.show).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('functionality', function () {
|
||||
it('emits a show event when called while widget is hidden', function () {
|
||||
dtp.show();
|
||||
expect(dpShowSpy).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('does not emit a show event when called and widget is already showing', function () {
|
||||
dtp.hide();
|
||||
dtp.show();
|
||||
dpShowSpy.calls.reset();
|
||||
dtp.show();
|
||||
expect(dpShowSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('actually shows the widget', function () {
|
||||
dtp.show();
|
||||
expect($(document).find('body').find('.bootstrap-datetimepicker-widget').length).toEqual(1);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('hide() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.hide).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('functionality', function () {
|
||||
it('emits a hide event when called while widget is shown', function () {
|
||||
dtp.show();
|
||||
dtp.hide();
|
||||
expect(dpHideSpy).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('does not emit a hide event when called while widget is hidden', function () {
|
||||
dtp.hide();
|
||||
expect(dpHideSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('actually hides the widget', function () {
|
||||
dtp.show();
|
||||
dtp.hide();
|
||||
expect($(document).find('body').find('.bootstrap-datetimepicker-widget').length).toEqual(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('disable() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.disable).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('enable() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.enable).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('options() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.options).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('disabledDates() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.disabledDates).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('enabledDates() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.enabledDates).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('daysOfWeekDisabled() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.daysOfWeekDisabled).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('maxDate() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.maxDate).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('minDate() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.minDate).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('defaultDate() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.defaultDate).toBeDefined();
|
||||
});
|
||||
});
|
||||
describe('functionality', function () {
|
||||
it('returns no defaultDate before defaultDate is set', function () {
|
||||
expect(dtp.defaultDate()).toBe(false);
|
||||
});
|
||||
|
||||
it('sets the defaultDate correctly', function () {
|
||||
var timestamp = moment();
|
||||
dtp.defaultDate(timestamp);
|
||||
expect(dtp.defaultDate().isSame(timestamp)).toBe(true);
|
||||
expect(dtp.date().isSame(timestamp)).toBe(true);
|
||||
});
|
||||
|
||||
it('triggers a change event upon setting a default date and input field is empty', function () {
|
||||
dtp.date(null);
|
||||
dtp.defaultDate(moment());
|
||||
expect(dpChangeSpy).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('does not override input value if it already has one', function () {
|
||||
var timestamp = moment();
|
||||
dtp.date(timestamp);
|
||||
dtp.defaultDate(moment().year(2000));
|
||||
expect(dtp.date().isSame(timestamp)).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('locale() function', function () {
|
||||
describe('functionality', function () {
|
||||
it('it has the same locale as the global moment locale with default options', function () {
|
||||
expect(dtp.locale()).toBe(moment.locale());
|
||||
});
|
||||
|
||||
it('it switches to a selected locale without affecting global moment locale', function () {
|
||||
dtp.locale('el');
|
||||
dtp.date(moment());
|
||||
expect(dtp.locale()).toBe('el');
|
||||
expect(dtp.date().locale()).toBe('el');
|
||||
expect(moment.locale()).toBe('en');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('useCurrent() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.useCurrent).toBeDefined();
|
||||
});
|
||||
});
|
||||
describe('check type and parameter validity', function () {
|
||||
it('accepts either a boolean value or string', function () {
|
||||
var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute'];
|
||||
|
||||
expect(function () {
|
||||
dtp.useCurrent(false);
|
||||
}).not.toThrow();
|
||||
expect(function () {
|
||||
dtp.useCurrent(true);
|
||||
}).not.toThrow();
|
||||
|
||||
useCurrentOptions.forEach(function (value) {
|
||||
expect(function () {
|
||||
dtp.useCurrent(value);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
expect(function () {
|
||||
dtp.useCurrent('test');
|
||||
}).toThrow();
|
||||
expect(function () {
|
||||
dtp.useCurrent({});
|
||||
}).toThrow();
|
||||
});
|
||||
});
|
||||
describe('functionality', function () {
|
||||
it('triggers a change event upon show() and input field is empty', function () {
|
||||
dtp.useCurrent(true);
|
||||
dtp.show();
|
||||
expect(dpChangeSpy).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('ignoreReadonly() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.ignoreReadonly).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('stepping() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.stepping).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('collapse() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.collapse).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('icons() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.icons).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('useStrict() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.useStrict).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('sideBySide() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.sideBySide).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('viewMode() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.viewMode).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('widgetPositioning() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.widgetPositioning).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('calendarWeeks() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.calendarWeeks).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('showTodayButton() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.showTodayButton).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('showClear() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.showClear).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('dayViewHeaderFormat() function', function () {
|
||||
describe('typechecking', function () {
|
||||
it('does not accept a false value', function () {
|
||||
expect(function () {
|
||||
dtp.dayViewHeaderFormat(false);
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('accepts a string', function () {
|
||||
expect(function () {
|
||||
dtp.dayViewHeaderFormat('YYYY-MM-DD');
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('does not accept undefined', function () {
|
||||
expect(function () {
|
||||
dtp.dayViewHeaderFormat(undefined);
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('does not accept true', function () {
|
||||
expect(function () {
|
||||
dtp.dayViewHeaderFormat(true);
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('does not accept a generic Object', function () {
|
||||
expect(function () {
|
||||
dtp.dayViewHeaderFormat({});
|
||||
}).toThrow();
|
||||
});
|
||||
});
|
||||
|
||||
describe('functionality', function () {
|
||||
it('expects dayViewHeaderFormat to be default of MMMM YYYY', function () {
|
||||
expect(dtp.dayViewHeaderFormat()).toBe('MMMM YYYY');
|
||||
});
|
||||
|
||||
it('sets the dayViewHeaderFormat correctly', function () {
|
||||
dtp.dayViewHeaderFormat('MM YY');
|
||||
expect(dtp.dayViewHeaderFormat()).toBe('MM YY');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('extraFormats() function', function () {
|
||||
describe('typechecking', function () {
|
||||
it('accepts a false value', function () {
|
||||
expect(function () {
|
||||
dtp.extraFormats(false);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('does not accept a string', function () {
|
||||
expect(function () {
|
||||
dtp.extraFormats('YYYY-MM-DD');
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('does not accept undefined', function () {
|
||||
expect(function () {
|
||||
dtp.extraFormats(undefined);
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('does not accept true', function () {
|
||||
expect(function () {
|
||||
dtp.extraFormats(true);
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('accepts an Array', function () {
|
||||
expect(function () {
|
||||
dtp.extraFormats(['YYYY-MM-DD']);
|
||||
}).not.toThrow();
|
||||
});
|
||||
});
|
||||
|
||||
describe('functionality', function () {
|
||||
it('returns no extraFormats before extraFormats is set', function () {
|
||||
expect(dtp.extraFormats()).toBe(false);
|
||||
});
|
||||
|
||||
it('sets the extraFormats correctly', function () {
|
||||
dtp.extraFormats(['YYYY-MM-DD']);
|
||||
expect(dtp.extraFormats()[0]).toBe('YYYY-MM-DD');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('toolbarPlacement() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.toolbarPlacement).toBeDefined();
|
||||
});
|
||||
});
|
||||
describe('check type and parameter validity', function () {
|
||||
it('does not accept a false value', function () {
|
||||
expect(function () {
|
||||
dtp.dayViewHeaderFormat(false);
|
||||
}).toThrow();
|
||||
});
|
||||
it('does not accept a false value', function () {
|
||||
expect(function () {
|
||||
dtp.dayViewHeaderFormat(false);
|
||||
}).toThrow();
|
||||
});
|
||||
it('accepts a string', function () {
|
||||
var toolbarPlacementOptions = ['default', 'top', 'bottom'];
|
||||
|
||||
toolbarPlacementOptions.forEach(function (value) {
|
||||
expect(function () {
|
||||
dtp.toolbarPlacement(value);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
expect(function () {
|
||||
dtp.toolbarPlacement('test');
|
||||
}).toThrow();
|
||||
expect(function () {
|
||||
dtp.toolbarPlacement({});
|
||||
}).toThrow();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('widgetParent() function', function () {
|
||||
describe('typechecking', function () {
|
||||
it('accepts a null', function () {
|
||||
expect(function () {
|
||||
dtp.widgetParent(null);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('accepts a string', function () {
|
||||
expect(function () {
|
||||
dtp.widgetParent('testDiv');
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('accepts a jquery object', function () {
|
||||
expect(function () {
|
||||
dtp.widgetParent($('#testDiv'));
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
it('does not accept undefined', function () {
|
||||
expect(function () {
|
||||
dtp.widgetParent(undefined);
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('does not accept a number', function () {
|
||||
expect(function () {
|
||||
dtp.widgetParent(0);
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('does not accept a generic Object', function () {
|
||||
expect(function () {
|
||||
dtp.widgetParent({});
|
||||
}).toThrow();
|
||||
});
|
||||
|
||||
it('does not accept a boolean', function () {
|
||||
expect(function () {
|
||||
dtp.widgetParent(false);
|
||||
}).toThrow();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('keepOpen() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.keepOpen).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('inline() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.inline).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('clear() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.clear).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('keyBinds() function', function () {
|
||||
describe('existence', function () {
|
||||
it('is defined', function () {
|
||||
expect(dtp.keyBinds).toBeDefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user