123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521 |
- (function (a) {
- if (typeof define === "function" && define.amd) {
- define(["jquery"], a)
- } else {
- if (typeof exports === "object") {
- a(require("jquery"))
- } else {
- a(jQuery)
- }
- }
- }(function (f, c) {
- if (!("indexOf" in Array.prototype)) {
- Array.prototype.indexOf = function (k, j) {
- if (j === c) {
- j = 0
- }
- if (j < 0) {
- j += this.length
- }
- if (j < 0) {
- j = 0
- }
- for (var l = this.length; j < l; j++) {
- if (j in this && this[j] === k) {
- return j
- }
- }
- return -1
- }
- }
- function e(l) {
- var k = f(l);
- var j = k.add(k.parents());
- var m = false;
- j.each(function () {
- if (f(this).css("position") === "fixed") {
- m = true;
- return false
- }
- });
- return m
- }
- function h() {
- return new Date(Date.UTC.apply(Date, arguments))
- }
- function d() {
- var j = new Date();
- return h(j.getUTCFullYear(), j.getUTCMonth(), j.getUTCDate(), j.getUTCHours(), j.getUTCMinutes(), j.getUTCSeconds(), 0)
- }
- var i = function (l, k) {
- var n = this;
- this.element = f(l);
- this.container = k.container || "body";
- this.language = k.language || this.element.data("date-language") || "en";
- this.language = this.language in a ? this.language : this.language.split("-")[0];
- this.language = this.language in a ? this.language : "en";
- this.isRTL = a[this.language].rtl || false;
- this.formatType = k.formatType || this.element.data("format-type") || "standard";
- this.format = g.parseFormat(k.format || this.element.data("date-format") || a[this.language].format || g.getDefaultFormat(this.formatType, "input"), this.formatType);
- this.isInline = false;
- this.isVisible = false;
- this.isInput = this.element.is("input");
- this.fontAwesome = k.fontAwesome || this.element.data("font-awesome") || false;
- this.bootcssVer = k.bootcssVer || (this.isInput ? (this.element.is(".form-control") ? 3 : 2) : (this.bootcssVer = this.element.is(".input-group") ? 3 : 2));
- this.component = this.element.is(".date") ? (this.bootcssVer == 3 ? this.element.find(".input-group-addon .glyphicon-th, .input-group-addon .glyphicon-time, .input-group-addon .glyphicon-remove, .input-group-addon .glyphicon-calendar, .input-group-addon .fa-calendar, .input-group-addon .fa-clock-o").parent() : this.element.find(".add-on .icon-th, .add-on .icon-time, .add-on .icon-calendar, .add-on .fa-calendar, .add-on .fa-clock-o").parent()) : false;
- this.componentReset = this.element.is(".date") ? (this.bootcssVer == 3 ? this.element.find(".input-group-addon .glyphicon-remove, .input-group-addon .fa-times").parent() : this.element.find(".add-on .icon-remove, .add-on .fa-times").parent()) : false;
- this.hasInput = this.component && this.element.find("input").length;
- if (this.component && this.component.length === 0) {
- this.component = false
- }
- this.linkField = k.linkField || this.element.data("link-field") || false;
- this.linkFormat = g.parseFormat(k.linkFormat || this.element.data("link-format") || g.getDefaultFormat(this.formatType, "link"), this.formatType);
- this.minuteStep = k.minuteStep || this.element.data("minute-step") || 5;
- this.pickerPosition = k.pickerPosition || this.element.data("picker-position") || "bottom-right";
- this.showMeridian = k.showMeridian || this.element.data("show-meridian") || false;
- this.initialDate = k.initialDate || new Date();
- this.zIndex = k.zIndex || this.element.data("z-index") || c;
- this.title = typeof k.title === "undefined" ? false : k.title;
- this.defaultTimeZone = (new Date).toString().split("(")[1].slice(0, -1);
- this.timezone = k.timezone || this.defaultTimeZone;
- this.icons = {
- leftArrow: this.fontAwesome ? "fa-arrow-left" : (this.bootcssVer === 3 ? "glyphicon-arrow-left" : "icon-arrow-left"),
- rightArrow: this.fontAwesome ? "fa-arrow-right" : (this.bootcssVer === 3 ? "glyphicon-arrow-right" : "icon-arrow-right")
- };
- this.icontype = this.fontAwesome ? "fa" : "glyphicon";
- this._attachEvents();
- this.clickedOutside = function (o) {
- if (f(o.target).closest(".datetimepicker").length === 0) {
- n.hide()
- }
- };
- this.formatViewType = "datetime";
- if ("formatViewType" in k) {
- this.formatViewType = k.formatViewType
- } else {
- if ("formatViewType" in this.element.data()) {
- this.formatViewType = this.element.data("formatViewType")
- }
- }
- this.minView = 0;
- if ("minView" in k) {
- this.minView = k.minView
- } else {
- if ("minView" in this.element.data()) {
- this.minView = this.element.data("min-view")
- }
- }
- this.minView = g.convertViewMode(this.minView);
- this.maxView = g.modes.length - 1;
- if ("maxView" in k) {
- this.maxView = k.maxView
- } else {
- if ("maxView" in this.element.data()) {
- this.maxView = this.element.data("max-view")
- }
- }
- this.maxView = g.convertViewMode(this.maxView);
- this.wheelViewModeNavigation = false;
- if ("wheelViewModeNavigation" in k) {
- this.wheelViewModeNavigation = k.wheelViewModeNavigation
- } else {
- if ("wheelViewModeNavigation" in this.element.data()) {
- this.wheelViewModeNavigation = this.element.data("view-mode-wheel-navigation")
- }
- }
- this.wheelViewModeNavigationInverseDirection = false;
- if ("wheelViewModeNavigationInverseDirection" in k) {
- this.wheelViewModeNavigationInverseDirection = k.wheelViewModeNavigationInverseDirection
- } else {
- if ("wheelViewModeNavigationInverseDirection" in this.element.data()) {
- this.wheelViewModeNavigationInverseDirection = this.element.data("view-mode-wheel-navigation-inverse-dir")
- }
- }
- this.wheelViewModeNavigationDelay = 100;
- if ("wheelViewModeNavigationDelay" in k) {
- this.wheelViewModeNavigationDelay = k.wheelViewModeNavigationDelay
- } else {
- if ("wheelViewModeNavigationDelay" in this.element.data()) {
- this.wheelViewModeNavigationDelay = this.element.data("view-mode-wheel-navigation-delay")
- }
- }
- this.startViewMode = 2;
- if ("startView" in k) {
- this.startViewMode = k.startView
- } else {
- if ("startView" in this.element.data()) {
- this.startViewMode = this.element.data("start-view")
- }
- }
- this.startViewMode = g.convertViewMode(this.startViewMode);
- this.viewMode = this.startViewMode;
- this.viewSelect = this.minView;
- if ("viewSelect" in k) {
- this.viewSelect = k.viewSelect
- } else {
- if ("viewSelect" in this.element.data()) {
- this.viewSelect = this.element.data("view-select")
- }
- }
- this.viewSelect = g.convertViewMode(this.viewSelect);
- this.forceParse = true;
- if ("forceParse" in k) {
- this.forceParse = k.forceParse
- } else {
- if ("dateForceParse" in this.element.data()) {
- this.forceParse = this.element.data("date-force-parse")
- }
- }
- var m = this.bootcssVer === 3 ? g.templateV3 : g.template;
- while (m.indexOf("{iconType}") !== -1) {
- m = m.replace("{iconType}", this.icontype)
- }
- while (m.indexOf("{leftArrow}") !== -1) {
- m = m.replace("{leftArrow}", this.icons.leftArrow)
- }
- while (m.indexOf("{rightArrow}") !== -1) {
- m = m.replace("{rightArrow}", this.icons.rightArrow)
- }
- this.picker = f(m).appendTo(this.isInline ? this.element : this.container).on({
- click: f.proxy(this.click, this),
- mousedown: f.proxy(this.mousedown, this)
- });
- if (this.wheelViewModeNavigation) {
- if (f.fn.mousewheel) {
- this.picker.on({mousewheel: f.proxy(this.mousewheel, this)})
- } else {
- console.log("Mouse Wheel event is not supported. Please include the jQuery Mouse Wheel plugin before enabling this option")
- }
- }
- if (this.isInline) {
- this.picker.addClass("datetimepicker-inline")
- } else {
- this.picker.addClass("datetimepicker-dropdown-" + this.pickerPosition + " dropdown-menu")
- }
- if (this.isRTL) {
- this.picker.addClass("datetimepicker-rtl");
- var j = this.bootcssVer === 3 ? ".prev span, .next span" : ".prev i, .next i";
- this.picker.find(j).toggleClass(this.icons.leftArrow + " " + this.icons.rightArrow)
- }
- f(document).on("mousedown", this.clickedOutside);
- this.autoclose = false;
- if ("autoclose" in k) {
- this.autoclose = k.autoclose
- } else {
- if ("dateAutoclose" in this.element.data()) {
- this.autoclose = this.element.data("date-autoclose")
- }
- }
- this.keyboardNavigation = true;
- if ("keyboardNavigation" in k) {
- this.keyboardNavigation = k.keyboardNavigation
- } else {
- if ("dateKeyboardNavigation" in this.element.data()) {
- this.keyboardNavigation = this.element.data("date-keyboard-navigation")
- }
- }
- this.todayBtn = (k.todayBtn || this.element.data("date-today-btn") || false);
- this.clearBtn = (k.clearBtn || this.element.data("date-clear-btn") || false);
- this.todayHighlight = (k.todayHighlight || this.element.data("date-today-highlight") || false);
- this.weekStart = ((k.weekStart || this.element.data("date-weekstart") || a[this.language].weekStart || 0) % 7);
- this.weekEnd = ((this.weekStart + 6) % 7);
- this.startDate = -Infinity;
- this.endDate = Infinity;
- this.datesDisabled = [];
- this.daysOfWeekDisabled = [];
- this.setStartDate(k.startDate || this.element.data("date-startdate"));
- this.setEndDate(k.endDate || this.element.data("date-enddate"));
- this.setDatesDisabled(k.datesDisabled || this.element.data("date-dates-disabled"));
- this.setDaysOfWeekDisabled(k.daysOfWeekDisabled || this.element.data("date-days-of-week-disabled"));
- this.setMinutesDisabled(k.minutesDisabled || this.element.data("date-minute-disabled"));
- this.setHoursDisabled(k.hoursDisabled || this.element.data("date-hour-disabled"));
- this.fillDow();
- this.fillMonths();
- this.update();
- this.showMode();
- if (this.isInline) {
- this.show()
- }
- };
- i.prototype = {
- constructor: i, _events: [], _attachEvents: function () {
- this._detachEvents();
- if (this.isInput) {
- this._events = [[this.element, {
- focus: f.proxy(this.show, this),
- keyup: f.proxy(this.update, this),
- keydown: f.proxy(this.keydown, this)
- }]]
- } else {
- if (this.component && this.hasInput) {
- this._events = [[this.element.find("input"), {
- focus: f.proxy(this.show, this),
- keyup: f.proxy(this.update, this),
- keydown: f.proxy(this.keydown, this)
- }], [this.component, {click: f.proxy(this.show, this)}]];
- if (this.componentReset) {
- this._events.push([this.componentReset, {click: f.proxy(this.reset, this)}])
- }
- } else {
- if (this.element.is("div")) {
- this.isInline = true
- } else {
- this._events = [[this.element, {click: f.proxy(this.show, this)}]]
- }
- }
- }
- for (var j = 0, k, l; j < this._events.length; j++) {
- k = this._events[j][0];
- l = this._events[j][1];
- k.on(l)
- }
- }, _detachEvents: function () {
- for (var j = 0, k, l; j < this._events.length; j++) {
- k = this._events[j][0];
- l = this._events[j][1];
- k.off(l)
- }
- this._events = []
- }, show: function (j) {
- this.picker.show();
- this.height = this.component ? this.component.outerHeight() : this.element.outerHeight();
- if (this.forceParse) {
- this.update()
- }
- this.place();
- f(window).on("resize", f.proxy(this.place, this));
- if (j) {
- j.stopPropagation();
- j.preventDefault()
- }
- this.isVisible = true;
- this.element.trigger({type: "show", date: this.date})
- }, hide: function (j) {
- if (!this.isVisible) {
- return
- }
- if (this.isInline) {
- return
- }
- this.picker.hide();
- f(window).off("resize", this.place);
- this.viewMode = this.startViewMode;
- this.showMode();
- if (!this.isInput) {
- f(document).off("mousedown", this.hide)
- }
- if (this.forceParse && (this.isInput && this.element.val() || this.hasInput && this.element.find("input").val())) {
- this.setValue()
- }
- this.isVisible = false;
- this.element.trigger({type: "hide", date: this.date})
- }, remove: function () {
- this._detachEvents();
- f(document).off("mousedown", this.clickedOutside);
- this.picker.remove();
- delete this.picker;
- delete this.element.data().datetimepicker
- }, getDate: function () {
- var j = this.getUTCDate();
- return new Date(j.getTime() + (j.getTimezoneOffset() * 60000))
- }, getUTCDate: function () {
- return this.date
- }, getInitialDate: function () {
- return this.initialDate
- }, setInitialDate: function (j) {
- this.initialDate = j
- }, setDate: function (j) {
- this.setUTCDate(new Date(j.getTime() - (j.getTimezoneOffset() * 60000)))
- }, setUTCDate: function (j) {
- if (j >= this.startDate && j <= this.endDate) {
- this.date = j;
- this.setValue();
- this.viewDate = this.date;
- this.fill()
- } else {
- this.element.trigger({type: "outOfRange", date: j, startDate: this.startDate, endDate: this.endDate})
- }
- }, setFormat: function (k) {
- this.format = g.parseFormat(k, this.formatType);
- var j;
- if (this.isInput) {
- j = this.element
- } else {
- if (this.component) {
- j = this.element.find("input")
- }
- }
- if (j && j.val()) {
- this.setValue()
- }
- }, setValue: function () {
- var j = this.getFormattedDate();
- if (!this.isInput) {
- if (this.component) {
- this.element.find("input").val(j)
- }
- this.element.data("date", j)
- } else {
- this.element.val(j)
- }
- if (this.linkField) {
- f("#" + this.linkField).val(this.getFormattedDate(this.linkFormat))
- }
- }, getFormattedDate: function (j) {
- if (j == c) {
- j = this.format
- }
- return g.formatDate(this.date, j, this.language, this.formatType, this.timezone)
- }, setStartDate: function (j) {
- this.startDate = j || -Infinity;
- if (this.startDate !== -Infinity) {
- this.startDate = g.parseDate(this.startDate, this.format, this.language, this.formatType, this.timezone)
- }
- this.update();
- this.updateNavArrows()
- }, setEndDate: function (j) {
- this.endDate = j || Infinity;
- if (this.endDate !== Infinity) {
- this.endDate = g.parseDate(this.endDate, this.format, this.language, this.formatType, this.timezone)
- }
- this.update();
- this.updateNavArrows()
- }, setDatesDisabled: function (j) {
- this.datesDisabled = j || [];
- if (!f.isArray(this.datesDisabled)) {
- this.datesDisabled = this.datesDisabled.split(/,\s*/)
- }
- this.datesDisabled = f.map(this.datesDisabled, function (k) {
- return g.parseDate(k, this.format, this.language, this.formatType, this.timezone).toDateString()
- });
- this.update();
- this.updateNavArrows()
- }, setTitle: function (j, k) {
- return this.picker.find(j).find("th:eq(1)").text(this.title === false ? k : this.title)
- }, setDaysOfWeekDisabled: function (j) {
- this.daysOfWeekDisabled = j || [];
- if (!f.isArray(this.daysOfWeekDisabled)) {
- this.daysOfWeekDisabled = this.daysOfWeekDisabled.split(/,\s*/)
- }
- this.daysOfWeekDisabled = f.map(this.daysOfWeekDisabled, function (k) {
- return parseInt(k, 10)
- });
- this.update();
- this.updateNavArrows()
- }, setMinutesDisabled: function (j) {
- this.minutesDisabled = j || [];
- if (!f.isArray(this.minutesDisabled)) {
- this.minutesDisabled = this.minutesDisabled.split(/,\s*/)
- }
- this.minutesDisabled = f.map(this.minutesDisabled, function (k) {
- return parseInt(k, 10)
- });
- this.update();
- this.updateNavArrows()
- }, setHoursDisabled: function (j) {
- this.hoursDisabled = j || [];
- if (!f.isArray(this.hoursDisabled)) {
- this.hoursDisabled = this.hoursDisabled.split(/,\s*/)
- }
- this.hoursDisabled = f.map(this.hoursDisabled, function (k) {
- return parseInt(k, 10)
- });
- this.update();
- this.updateNavArrows()
- }, place: function () {
- if (this.isInline) {
- return
- }
- if (!this.zIndex) {
- var k = 0;
- f("div").each(function () {
- var p = parseInt(f(this).css("zIndex"), 10);
- if (p > k) {
- k = p
- }
- });
- this.zIndex = k + 10
- }
- var o, n, m, l;
- if (this.container instanceof f) {
- l = this.container.offset()
- } else {
- l = f(this.container).offset()
- }
- if (this.component) {
- o = this.component.offset();
- m = o.left;
- if (this.pickerPosition == "bottom-left" || this.pickerPosition == "top-left") {
- m += this.component.outerWidth() - this.picker.outerWidth()
- }
- } else {
- o = this.element.offset();
- m = o.left;
- if (this.pickerPosition == "bottom-left" || this.pickerPosition == "top-left") {
- m += this.element.outerWidth() - this.picker.outerWidth()
- }
- }
- var j = document.body.clientWidth || window.innerWidth;
- if (m + 220 > j) {
- m = j - 220
- }
- if (this.pickerPosition == "top-left" || this.pickerPosition == "top-right") {
- n = o.top - this.picker.outerHeight()
- } else {
- n = o.top + this.height
- }
- n = n - l.top;
- m = m - l.left;
- this.picker.css({top: n, left: m, zIndex: this.zIndex})
- }, update: function () {
- var j, k = false;
- if (arguments && arguments.length && (typeof arguments[0] === "string" || arguments[0] instanceof Date)) {
- j = arguments[0];
- k = true
- } else {
- j = (this.isInput ? this.element.val() : this.element.find("input").val()) || this.element.data("date") || this.initialDate;
- if (typeof j == "string" || j instanceof String) {
- j = j.replace(/^\s+|\s+$/g, "")
- }
- }
- if (!j) {
- j = new Date();
- k = false
- }
- this.date = g.parseDate(j, this.format, this.language, this.formatType, this.timezone);
- if (k) {
- this.setValue()
- }
- if (this.date < this.startDate) {
- this.viewDate = new Date(this.startDate)
- } else {
- if (this.date > this.endDate) {
- this.viewDate = new Date(this.endDate)
- } else {
- this.viewDate = new Date(this.date)
- }
- }
- this.fill()
- }, fillDow: function () {
- var j = this.weekStart, k = "<tr>";
- while (j < this.weekStart + 7) {
- k += '<th class="dow">' + a[this.language].daysMin[(j++) % 7] + "</th>"
- }
- k += "</tr>";
- this.picker.find(".datetimepicker-days thead").append(k)
- }, fillMonths: function () {
- var k = "", j = 0;
- while (j < 12) {
- k += '<span class="month">' + a[this.language].monthsShort[j++] + "</span>"
- }
- this.picker.find(".datetimepicker-months td").html(k)
- }, fill: function () {
- if (this.date == null || this.viewDate == null) {
- return
- }
- var H = new Date(this.viewDate), u = H.getUTCFullYear(), I = H.getUTCMonth(), n = H.getUTCDate(), D = H.getUTCHours(), y = H.getUTCMinutes(), z = this.startDate !== -Infinity ? this.startDate.getUTCFullYear() : -Infinity, E = this.startDate !== -Infinity ? this.startDate.getUTCMonth() : -Infinity, q = this.endDate !== Infinity ? this.endDate.getUTCFullYear() : Infinity, A = this.endDate !== Infinity ? this.endDate.getUTCMonth() + 1 : Infinity, r = (new h(this.date.getUTCFullYear(), this.date.getUTCMonth(), this.date.getUTCDate())).valueOf(), G = new Date();
- this.setTitle(".datetimepicker-days", a[this.language].months[I] + " " + u);
- if (this.formatViewType == "time") {
- var k = this.getFormattedDate();
- this.setTitle(".datetimepicker-hours", k);
- this.setTitle(".datetimepicker-minutes", k)
- } else {
- this.setTitle(".datetimepicker-hours", n + " " + a[this.language].months[I] + " " + u);
- this.setTitle(".datetimepicker-minutes", n + " " + a[this.language].months[I] + " " + u)
- }
- this.picker.find("tfoot th.today").text(a[this.language].today || a.en.today).toggle(this.todayBtn !== false);
- this.picker.find("tfoot th.clear").text(a[this.language].clear || a.en.clear).toggle(this.clearBtn !== false);
- this.updateNavArrows();
- this.fillMonths();
- var K = h(u, I - 1, 28, 0, 0, 0, 0), C = g.getDaysInMonth(K.getUTCFullYear(), K.getUTCMonth());
- K.setUTCDate(C);
- K.setUTCDate(C - (K.getUTCDay() - this.weekStart + 7) % 7);
- var j = new Date(K);
- j.setUTCDate(j.getUTCDate() + 42);
- j = j.valueOf();
- var s = [];
- var v;
- while (K.valueOf() < j) {
- if (K.getUTCDay() == this.weekStart) {
- s.push("<tr>")
- }
- v = "";
- if (K.getUTCFullYear() < u || (K.getUTCFullYear() == u && K.getUTCMonth() < I)) {
- v += " old"
- } else {
- if (K.getUTCFullYear() > u || (K.getUTCFullYear() == u && K.getUTCMonth() > I)) {
- v += " new"
- }
- }
- if (this.todayHighlight && K.getUTCFullYear() == G.getFullYear() && K.getUTCMonth() == G.getMonth() && K.getUTCDate() == G.getDate()) {
- v += " today"
- }
- if (K.valueOf() == r) {
- v += " active"
- }
- if ((K.valueOf() + 86400000) <= this.startDate || K.valueOf() > this.endDate || f.inArray(K.getUTCDay(), this.daysOfWeekDisabled) !== -1 || f.inArray(K.toDateString(), this.datesDisabled) !== -1) {
- v += " disabled"
- }
- s.push('<td class="day' + v + '">' + K.getUTCDate() + "</td>");
- if (K.getUTCDay() == this.weekEnd) {
- s.push("</tr>")
- }
- K.setUTCDate(K.getUTCDate() + 1)
- }
- this.picker.find(".datetimepicker-days tbody").empty().append(s.join(""));
- s = [];
- var w = "", F = "", t = "";
- var l = this.hoursDisabled || [];
- for (var B = 0; B < 24; B++) {
- if (l.indexOf(B) !== -1) {
- continue
- }
- var x = h(u, I, n, B);
- v = "";
- if ((x.valueOf() + 3600000) <= this.startDate || x.valueOf() > this.endDate) {
- v += " disabled"
- } else {
- if (D == B) {
- v += " active"
- }
- }
- if (this.showMeridian && a[this.language].meridiem.length == 2) {
- F = (B < 12 ? a[this.language].meridiem[0] : a[this.language].meridiem[1]);
- if (F != t) {
- if (t != "") {
- s.push("</fieldset>")
- }
- s.push('<fieldset class="hour"><legend>' + F.toUpperCase() + "</legend>")
- }
- t = F;
- w = (B % 12 ? B % 12 : 12);
- s.push('<span class="hour' + v + " hour_" + (B < 12 ? "am" : "pm") + '">' + w + "</span>");
- if (B == 23) {
- s.push("</fieldset>")
- }
- } else {
- w = B + ":00";
- s.push('<span class="hour' + v + '">' + w + "</span>")
- }
- }
- this.picker.find(".datetimepicker-hours td").html(s.join(""));
- s = [];
- w = "", F = "", t = "";
- var m = this.minutesDisabled || [];
- for (var B = 0; B < 60; B += this.minuteStep) {
- if (m.indexOf(B) !== -1) {
- continue
- }
- var x = h(u, I, n, D, B, 0);
- v = "";
- if (x.valueOf() < this.startDate || x.valueOf() > this.endDate) {
- v += " disabled"
- } else {
- if (Math.floor(y / this.minuteStep) == Math.floor(B / this.minuteStep)) {
- v += " active"
- }
- }
- if (this.showMeridian && a[this.language].meridiem.length == 2) {
- F = (D < 12 ? a[this.language].meridiem[0] : a[this.language].meridiem[1]);
- if (F != t) {
- if (t != "") {
- s.push("</fieldset>")
- }
- s.push('<fieldset class="minute"><legend>' + F.toUpperCase() + "</legend>")
- }
- t = F;
- w = (D % 12 ? D % 12 : 12);
- s.push('<span class="minute' + v + '">' + w + ":" + (B < 10 ? "0" + B : B) + "</span>");
- if (B == 59) {
- s.push("</fieldset>")
- }
- } else {
- w = B + ":00";
- s.push('<span class="minute' + v + '">' + D + ":" + (B < 10 ? "0" + B : B) + "</span>")
- }
- }
- this.picker.find(".datetimepicker-minutes td").html(s.join(""));
- var L = this.date.getUTCFullYear();
- var p = this.setTitle(".datetimepicker-months", u).end().find("span").removeClass("active");
- if (L == u) {
- var o = p.length - 12;
- p.eq(this.date.getUTCMonth() + o).addClass("active")
- }
- if (u < z || u > q) {
- p.addClass("disabled")
- }
- if (u == z) {
- p.slice(0, E).addClass("disabled")
- }
- if (u == q) {
- p.slice(A).addClass("disabled")
- }
- s = "";
- u = parseInt(u / 10, 10) * 10;
- var J = this.setTitle(".datetimepicker-years", u + "-" + (u + 9)).end().find("td");
- u -= 1;
- for (var B = -1; B < 11; B++) {
- s += '<span class="year' + (B == -1 || B == 10 ? " old" : "") + (L == u ? " active" : "") + (u < z || u > q ? " disabled" : "") + '">' + u + "</span>";
- u += 1
- }
- J.html(s);
- this.place()
- }, updateNavArrows: function () {
- var n = new Date(this.viewDate), l = n.getUTCFullYear(), m = n.getUTCMonth(), k = n.getUTCDate(), j = n.getUTCHours();
- switch (this.viewMode) {
- case 0:
- if (this.startDate !== -Infinity && l <= this.startDate.getUTCFullYear() && m <= this.startDate.getUTCMonth() && k <= this.startDate.getUTCDate() && j <= this.startDate.getUTCHours()) {
- this.picker.find(".prev").css({visibility: "hidden"})
- } else {
- this.picker.find(".prev").css({visibility: "visible"})
- }
- if (this.endDate !== Infinity && l >= this.endDate.getUTCFullYear() && m >= this.endDate.getUTCMonth() && k >= this.endDate.getUTCDate() && j >= this.endDate.getUTCHours()) {
- this.picker.find(".next").css({visibility: "hidden"})
- } else {
- this.picker.find(".next").css({visibility: "visible"})
- }
- break;
- case 1:
- if (this.startDate !== -Infinity && l <= this.startDate.getUTCFullYear() && m <= this.startDate.getUTCMonth() && k <= this.startDate.getUTCDate()) {
- this.picker.find(".prev").css({visibility: "hidden"})
- } else {
- this.picker.find(".prev").css({visibility: "visible"})
- }
- if (this.endDate !== Infinity && l >= this.endDate.getUTCFullYear() && m >= this.endDate.getUTCMonth() && k >= this.endDate.getUTCDate()) {
- this.picker.find(".next").css({visibility: "hidden"})
- } else {
- this.picker.find(".next").css({visibility: "visible"})
- }
- break;
- case 2:
- if (this.startDate !== -Infinity && l <= this.startDate.getUTCFullYear() && m <= this.startDate.getUTCMonth()) {
- this.picker.find(".prev").css({visibility: "hidden"})
- } else {
- this.picker.find(".prev").css({visibility: "visible"})
- }
- if (this.endDate !== Infinity && l >= this.endDate.getUTCFullYear() && m >= this.endDate.getUTCMonth()) {
- this.picker.find(".next").css({visibility: "hidden"})
- } else {
- this.picker.find(".next").css({visibility: "visible"})
- }
- break;
- case 3:
- case 4:
- if (this.startDate !== -Infinity && l <= this.startDate.getUTCFullYear()) {
- this.picker.find(".prev").css({visibility: "hidden"})
- } else {
- this.picker.find(".prev").css({visibility: "visible"})
- }
- if (this.endDate !== Infinity && l >= this.endDate.getUTCFullYear()) {
- this.picker.find(".next").css({visibility: "hidden"})
- } else {
- this.picker.find(".next").css({visibility: "visible"})
- }
- break
- }
- }, mousewheel: function (k) {
- k.preventDefault();
- k.stopPropagation();
- if (this.wheelPause) {
- return
- }
- this.wheelPause = true;
- var j = k.originalEvent;
- var m = j.wheelDelta;
- var l = m > 0 ? 1 : (m === 0) ? 0 : -1;
- if (this.wheelViewModeNavigationInverseDirection) {
- l = -l
- }
- this.showMode(l);
- setTimeout(f.proxy(function () {
- this.wheelPause = false
- }, this), this.wheelViewModeNavigationDelay)
- }, click: function (n) {
- n.stopPropagation();
- n.preventDefault();
- var o = f(n.target).closest("span, td, th, legend");
- if (o.is("." + this.icontype)) {
- o = f(o).parent().closest("span, td, th, legend")
- }
- if (o.length == 1) {
- if (o.is(".disabled")) {
- this.element.trigger({
- type: "outOfRange",
- date: this.viewDate,
- startDate: this.startDate,
- endDate: this.endDate
- });
- return
- }
- switch (o[0].nodeName.toLowerCase()) {
- case"th":
- switch (o[0].className) {
- case"switch":
- this.showMode(1);
- break;
- case"prev":
- case"next":
- var j = g.modes[this.viewMode].navStep * (o[0].className == "prev" ? -1 : 1);
- switch (this.viewMode) {
- case 0:
- this.viewDate = this.moveHour(this.viewDate, j);
- break;
- case 1:
- this.viewDate = this.moveDate(this.viewDate, j);
- break;
- case 2:
- this.viewDate = this.moveMonth(this.viewDate, j);
- break;
- case 3:
- case 4:
- this.viewDate = this.moveYear(this.viewDate, j);
- break
- }
- this.fill();
- this.element.trigger({
- type: o[0].className + ":" + this.convertViewModeText(this.viewMode),
- date: this.viewDate,
- startDate: this.startDate,
- endDate: this.endDate
- });
- break;
- case"clear":
- this.reset();
- if (this.autoclose) {
- this.hide()
- }
- break;
- case"today":
- var k = new Date();
- k = h(k.getFullYear(), k.getMonth(), k.getDate(), k.getHours(), k.getMinutes(), k.getSeconds(), 0);
- if (k < this.startDate) {
- k = this.startDate
- } else {
- if (k > this.endDate) {
- k = this.endDate
- }
- }
- this.viewMode = this.startViewMode;
- this.showMode(0);
- this._setDate(k);
- this.fill();
- if (this.autoclose) {
- this.hide()
- }
- break
- }
- break;
- case"span":
- if (!o.is(".disabled")) {
- var q = this.viewDate.getUTCFullYear(), p = this.viewDate.getUTCMonth(), r = this.viewDate.getUTCDate(), s = this.viewDate.getUTCHours(), l = this.viewDate.getUTCMinutes(), t = this.viewDate.getUTCSeconds();
- if (o.is(".month")) {
- this.viewDate.setUTCDate(1);
- p = o.parent().find("span").index(o);
- r = this.viewDate.getUTCDate();
- this.viewDate.setUTCMonth(p);
- this.element.trigger({type: "changeMonth", date: this.viewDate});
- if (this.viewSelect >= 3) {
- this._setDate(h(q, p, r, s, l, t, 0))
- }
- } else {
- if (o.is(".year")) {
- this.viewDate.setUTCDate(1);
- q = parseInt(o.text(), 10) || 0;
- this.viewDate.setUTCFullYear(q);
- this.element.trigger({type: "changeYear", date: this.viewDate});
- if (this.viewSelect >= 4) {
- this._setDate(h(q, p, r, s, l, t, 0))
- }
- } else {
- if (o.is(".hour")) {
- s = parseInt(o.text(), 10) || 0;
- if (o.hasClass("hour_am") || o.hasClass("hour_pm")) {
- if (s == 12 && o.hasClass("hour_am")) {
- s = 0
- } else {
- if (s != 12 && o.hasClass("hour_pm")) {
- s += 12
- }
- }
- }
- this.viewDate.setUTCHours(s);
- this.element.trigger({type: "changeHour", date: this.viewDate});
- if (this.viewSelect >= 1) {
- this._setDate(h(q, p, r, s, l, t, 0))
- }
- } else {
- if (o.is(".minute")) {
- l = parseInt(o.text().substr(o.text().indexOf(":") + 1), 10) || 0;
- this.viewDate.setUTCMinutes(l);
- this.element.trigger({type: "changeMinute", date: this.viewDate});
- if (this.viewSelect >= 0) {
- this._setDate(h(q, p, r, s, l, t, 0))
- }
- }
- }
- }
- }
- if (this.viewMode != 0) {
- var m = this.viewMode;
- this.showMode(-1);
- this.fill();
- if (m == this.viewMode && this.autoclose) {
- this.hide()
- }
- } else {
- this.fill();
- if (this.autoclose) {
- this.hide()
- }
- }
- }
- break;
- case"td":
- if (o.is(".day") && !o.is(".disabled")) {
- var r = parseInt(o.text(), 10) || 1;
- var q = this.viewDate.getUTCFullYear(), p = this.viewDate.getUTCMonth(), s = this.viewDate.getUTCHours(), l = this.viewDate.getUTCMinutes(), t = this.viewDate.getUTCSeconds();
- if (o.is(".old")) {
- if (p === 0) {
- p = 11;
- q -= 1
- } else {
- p -= 1
- }
- } else {
- if (o.is(".new")) {
- if (p == 11) {
- p = 0;
- q += 1
- } else {
- p += 1
- }
- }
- }
- this.viewDate.setUTCFullYear(q);
- this.viewDate.setUTCMonth(p, r);
- this.element.trigger({type: "changeDay", date: this.viewDate});
- if (this.viewSelect >= 2) {
- this._setDate(h(q, p, r, s, l, t, 0))
- }
- }
- var m = this.viewMode;
- this.showMode(-1);
- this.fill();
- if (m == this.viewMode && this.autoclose) {
- this.hide()
- }
- break
- }
- }
- }, _setDate: function (j, l) {
- if (!l || l == "date") {
- this.date = j
- }
- if (!l || l == "view") {
- this.viewDate = j
- }
- this.fill();
- this.setValue();
- var k;
- if (this.isInput) {
- k = this.element
- } else {
- if (this.component) {
- k = this.element.find("input")
- }
- }
- if (k) {
- k.change();
- if (this.autoclose && (!l || l == "date")) {
- }
- }
- this.element.trigger({type: "changeDate", date: this.getDate()});
- if (j == null) {
- this.date = this.viewDate
- }
- }, moveMinute: function (k, j) {
- if (!j) {
- return k
- }
- var l = new Date(k.valueOf());
- l.setUTCMinutes(l.getUTCMinutes() + (j * this.minuteStep));
- return l
- }, moveHour: function (k, j) {
- if (!j) {
- return k
- }
- var l = new Date(k.valueOf());
- l.setUTCHours(l.getUTCHours() + j);
- return l
- }, moveDate: function (k, j) {
- if (!j) {
- return k
- }
- var l = new Date(k.valueOf());
- l.setUTCDate(l.getUTCDate() + j);
- return l
- }, moveMonth: function (j, k) {
- if (!k) {
- return j
- }
- var n = new Date(j.valueOf()), r = n.getUTCDate(), o = n.getUTCMonth(), m = Math.abs(k), q, p;
- k = k > 0 ? 1 : -1;
- if (m == 1) {
- p = k == -1 ? function () {
- return n.getUTCMonth() == o
- } : function () {
- return n.getUTCMonth() != q
- };
- q = o + k;
- n.setUTCMonth(q);
- if (q < 0 || q > 11) {
- q = (q + 12) % 12
- }
- } else {
- for (var l = 0; l < m; l++) {
- n = this.moveMonth(n, k)
- }
- q = n.getUTCMonth();
- n.setUTCDate(r);
- p = function () {
- return q != n.getUTCMonth()
- }
- }
- while (p()) {
- n.setUTCDate(--r);
- n.setUTCMonth(q)
- }
- return n
- }, moveYear: function (k, j) {
- return this.moveMonth(k, j * 12)
- }, dateWithinRange: function (j) {
- return j >= this.startDate && j <= this.endDate
- }, keydown: function (n) {
- if (this.picker.is(":not(:visible)")) {
- if (n.keyCode == 27) {
- this.show()
- }
- return
- }
- var p = false, k, q, o, r, j;
- switch (n.keyCode) {
- case 27:
- this.hide();
- n.preventDefault();
- break;
- case 37:
- case 39:
- if (!this.keyboardNavigation) {
- break
- }
- k = n.keyCode == 37 ? -1 : 1;
- viewMode = this.viewMode;
- if (n.ctrlKey) {
- viewMode += 2
- } else {
- if (n.shiftKey) {
- viewMode += 1
- }
- }
- if (viewMode == 4) {
- r = this.moveYear(this.date, k);
- j = this.moveYear(this.viewDate, k)
- } else {
- if (viewMode == 3) {
- r = this.moveMonth(this.date, k);
- j = this.moveMonth(this.viewDate, k)
- } else {
- if (viewMode == 2) {
- r = this.moveDate(this.date, k);
- j = this.moveDate(this.viewDate, k)
- } else {
- if (viewMode == 1) {
- r = this.moveHour(this.date, k);
- j = this.moveHour(this.viewDate, k)
- } else {
- if (viewMode == 0) {
- r = this.moveMinute(this.date, k);
- j = this.moveMinute(this.viewDate, k)
- }
- }
- }
- }
- }
- if (this.dateWithinRange(r)) {
- this.date = r;
- this.viewDate = j;
- this.setValue();
- this.update();
- n.preventDefault();
- p = true
- }
- break;
- case 38:
- case 40:
- if (!this.keyboardNavigation) {
- break
- }
- k = n.keyCode == 38 ? -1 : 1;
- viewMode = this.viewMode;
- if (n.ctrlKey) {
- viewMode += 2
- } else {
- if (n.shiftKey) {
- viewMode += 1
- }
- }
- if (viewMode == 4) {
- r = this.moveYear(this.date, k);
- j = this.moveYear(this.viewDate, k)
- } else {
- if (viewMode == 3) {
- r = this.moveMonth(this.date, k);
- j = this.moveMonth(this.viewDate, k)
- } else {
- if (viewMode == 2) {
- r = this.moveDate(this.date, k * 7);
- j = this.moveDate(this.viewDate, k * 7)
- } else {
- if (viewMode == 1) {
- if (this.showMeridian) {
- r = this.moveHour(this.date, k * 6);
- j = this.moveHour(this.viewDate, k * 6)
- } else {
- r = this.moveHour(this.date, k * 4);
- j = this.moveHour(this.viewDate, k * 4)
- }
- } else {
- if (viewMode == 0) {
- r = this.moveMinute(this.date, k * 4);
- j = this.moveMinute(this.viewDate, k * 4)
- }
- }
- }
- }
- }
- if (this.dateWithinRange(r)) {
- this.date = r;
- this.viewDate = j;
- this.setValue();
- this.update();
- n.preventDefault();
- p = true
- }
- break;
- case 13:
- if (this.viewMode != 0) {
- var m = this.viewMode;
- this.showMode(-1);
- this.fill();
- if (m == this.viewMode && this.autoclose) {
- this.hide()
- }
- } else {
- this.fill();
- if (this.autoclose) {
- this.hide()
- }
- }
- n.preventDefault();
- break;
- case 9:
- this.hide();
- break
- }
- if (p) {
- var l;
- if (this.isInput) {
- l = this.element
- } else {
- if (this.component) {
- l = this.element.find("input")
- }
- }
- if (l) {
- l.change()
- }
- this.element.trigger({type: "changeDate", date: this.getDate()})
- }
- }, showMode: function (j) {
- if (j) {
- var k = Math.max(0, Math.min(g.modes.length - 1, this.viewMode + j));
- if (k >= this.minView && k <= this.maxView) {
- this.element.trigger({
- type: "changeMode",
- date: this.viewDate,
- oldViewMode: this.viewMode,
- newViewMode: k
- });
- this.viewMode = k
- }
- }
- this.picker.find(">div").hide().filter(".datetimepicker-" + g.modes[this.viewMode].clsName).css("display", "block");
- this.updateNavArrows()
- }, reset: function (j) {
- this._setDate(null, "date")
- }, convertViewModeText: function (j) {
- switch (j) {
- case 4:
- return "decade";
- case 3:
- return "year";
- case 2:
- return "month";
- case 1:
- return "day";
- case 0:
- return "hour"
- }
- }
- };
- var b = f.fn.datetimepicker;
- f.fn.datetimepicker = function (l) {
- var j = Array.apply(null, arguments);
- j.shift();
- var k;
- this.each(function () {
- var o = f(this), n = o.data("datetimepicker"), m = typeof l == "object" && l;
- if (!n) {
- o.data("datetimepicker", (n = new i(this, f.extend({}, f.fn.datetimepicker.defaults, m))))
- }
- if (typeof l == "string" && typeof n[l] == "function") {
- k = n[l].apply(n, j);
- if (k !== c) {
- return false
- }
- }
- });
- if (k !== c) {
- return k
- } else {
- return this
- }
- };
- f.fn.datetimepicker.defaults = {};
- f.fn.datetimepicker.Constructor = i;
- var a = f.fn.datetimepicker.dates = {
- en: {
- days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
- daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
- daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
- 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"],
- meridiem: ["am", "pm"],
- suffix: ["st", "nd", "rd", "th"],
- today: "Today",
- clear: "Clear"
- }
- };
- var g = {
- modes: [{clsName: "minutes", navFnc: "Hours", navStep: 1}, {
- clsName: "hours",
- navFnc: "Date",
- navStep: 1
- }, {clsName: "days", navFnc: "Month", navStep: 1}, {
- clsName: "months",
- navFnc: "FullYear",
- navStep: 1
- }, {clsName: "years", navFnc: "FullYear", navStep: 10}],
- isLeapYear: function (j) {
- return (((j % 4 === 0) && (j % 100 !== 0)) || (j % 400 === 0))
- },
- getDaysInMonth: function (j, k) {
- return [31, (g.isLeapYear(j) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][k]
- },
- getDefaultFormat: function (j, k) {
- if (j == "standard") {
- if (k == "input") {
- return "yyyy-mm-dd hh:ii"
- } else {
- return "yyyy-mm-dd hh:ii:ss"
- }
- } else {
- if (j == "php") {
- if (k == "input") {
- return "Y-m-d H:i"
- } else {
- return "Y-m-d H:i:s"
- }
- } else {
- throw new Error("Invalid format type.")
- }
- }
- },
- validParts: function (j) {
- if (j == "standard") {
- return /t|hh?|HH?|p|P|z|Z|ii?|ss?|dd?|DD?|mm?|MM?|yy(?:yy)?/g
- } else {
- if (j == "php") {
- return /[dDjlNwzFmMnStyYaABgGhHis]/g
- } else {
- throw new Error("Invalid format type.")
- }
- }
- },
- nonpunctuation: /[^ -\/:-@\[-`{-~\t\n\rTZ]+/g,
- parseFormat: function (m, k) {
- var j = m.replace(this.validParts(k), "\0").split("\0"), l = m.match(this.validParts(k));
- if (!j || !j.length || !l || l.length == 0) {
- throw new Error("Invalid date format.")
- }
- return {separators: j, parts: l}
- },
- parseDate: function (A, y, v, j, r) {
- if (A instanceof Date) {
- var u = new Date(A.valueOf() - A.getTimezoneOffset() * 60000);
- u.setMilliseconds(0);
- return u
- }
- if (/^\d{4}\-\d{1,2}\-\d{1,2}$/.test(A)) {
- y = this.parseFormat("yyyy-mm-dd", j)
- }
- if (/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}$/.test(A)) {
- y = this.parseFormat("yyyy-mm-dd hh:ii", j)
- }
- if (/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}\:\d{1,2}[Z]{0,1}$/.test(A)) {
- y = this.parseFormat("yyyy-mm-dd hh:ii:ss", j)
- }
- if (/^[-+]\d+[dmwy]([\s,]+[-+]\d+[dmwy])*$/.test(A)) {
- var l = /([-+]\d+)([dmwy])/, q = A.match(/([-+]\d+)([dmwy])/g), t, p;
- A = new Date();
- for (var x = 0; x < q.length; x++) {
- t = l.exec(q[x]);
- p = parseInt(t[1]);
- switch (t[2]) {
- case"d":
- A.setUTCDate(A.getUTCDate() + p);
- break;
- case"m":
- A = i.prototype.moveMonth.call(i.prototype, A, p);
- break;
- case"w":
- A.setUTCDate(A.getUTCDate() + p * 7);
- break;
- case"y":
- A = i.prototype.moveYear.call(i.prototype, A, p);
- break
- }
- }
- return h(A.getUTCFullYear(), A.getUTCMonth(), A.getUTCDate(), A.getUTCHours(), A.getUTCMinutes(), A.getUTCSeconds(), 0)
- }
- var q = A && A.toString().match(this.nonpunctuation) || [], A = new Date(0, 0, 0, 0, 0, 0, 0), m = {}, z = ["hh", "h", "ii", "i", "ss", "s", "yyyy", "yy", "M", "MM", "m", "mm", "D", "DD", "d", "dd", "H", "HH", "p", "P", "z", "Z"], o = {
- hh: function (C, s) {
- return C.setUTCHours(s)
- }, h: function (C, s) {
- return C.setUTCHours(s)
- }, HH: function (C, s) {
- return C.setUTCHours(s == 12 ? 0 : s)
- }, H: function (C, s) {
- return C.setUTCHours(s == 12 ? 0 : s)
- }, ii: function (C, s) {
- return C.setUTCMinutes(s)
- }, i: function (C, s) {
- return C.setUTCMinutes(s)
- }, ss: function (C, s) {
- return C.setUTCSeconds(s)
- }, s: function (C, s) {
- return C.setUTCSeconds(s)
- }, yyyy: function (C, s) {
- return C.setUTCFullYear(s)
- }, yy: function (C, s) {
- return C.setUTCFullYear(2000 + s)
- }, m: function (C, s) {
- s -= 1;
- while (s < 0) {
- s += 12
- }
- s %= 12;
- C.setUTCMonth(s);
- while (C.getUTCMonth() != s) {
- if (isNaN(C.getUTCMonth())) {
- return C
- } else {
- C.setUTCDate(C.getUTCDate() - 1)
- }
- }
- return C
- }, d: function (C, s) {
- return C.setUTCDate(s)
- }, p: function (C, s) {
- return C.setUTCHours(s == 1 ? C.getUTCHours() + 12 : C.getUTCHours())
- }, z: function () {
- return r
- }
- }, B, k, t;
- o.M = o.MM = o.mm = o.m;
- o.dd = o.d;
- o.P = o.p;
- o.Z = o.z;
- A = h(A.getFullYear(), A.getMonth(), A.getDate(), A.getHours(), A.getMinutes(), A.getSeconds());
- if (q.length == y.parts.length) {
- for (var x = 0, w = y.parts.length; x < w; x++) {
- B = parseInt(q[x], 10);
- t = y.parts[x];
- if (isNaN(B)) {
- switch (t) {
- case"MM":
- k = f(a[v].months).filter(function () {
- var s = this.slice(0, q[x].length), C = q[x].slice(0, s.length);
- return s == C
- });
- B = f.inArray(k[0], a[v].months) + 1;
- break;
- case"M":
- k = f(a[v].monthsShort).filter(function () {
- var s = this.slice(0, q[x].length), C = q[x].slice(0, s.length);
- return s.toLowerCase() == C.toLowerCase()
- });
- B = f.inArray(k[0], a[v].monthsShort) + 1;
- break;
- case"p":
- case"P":
- B = f.inArray(q[x].toLowerCase(), a[v].meridiem);
- break;
- case"z":
- case"Z":
- r;
- break
- }
- }
- m[t] = B
- }
- for (var x = 0, n; x < z.length; x++) {
- n = z[x];
- if (n in m && !isNaN(m[n])) {
- o[n](A, m[n])
- }
- }
- }
- return A
- },
- formatDate: function (l, q, m, p, o) {
- if (l == null) {
- return ""
- }
- var k;
- if (p == "standard") {
- k = {
- t: l.getTime(),
- yy: l.getUTCFullYear().toString().substring(2),
- yyyy: l.getUTCFullYear(),
- m: l.getUTCMonth() + 1,
- M: a[m].monthsShort[l.getUTCMonth()],
- MM: a[m].months[l.getUTCMonth()],
- d: l.getUTCDate(),
- D: a[m].daysShort[l.getUTCDay()],
- DD: a[m].days[l.getUTCDay()],
- p: (a[m].meridiem.length == 2 ? a[m].meridiem[l.getUTCHours() < 12 ? 0 : 1] : ""),
- h: l.getUTCHours(),
- i: l.getUTCMinutes(),
- s: l.getUTCSeconds(),
- z: o
- };
- if (a[m].meridiem.length == 2) {
- k.H = (k.h % 12 == 0 ? 12 : k.h % 12)
- } else {
- k.H = k.h
- }
- k.HH = (k.H < 10 ? "0" : "") + k.H;
- k.P = k.p.toUpperCase();
- k.Z = k.z;
- k.hh = (k.h < 10 ? "0" : "") + k.h;
- k.ii = (k.i < 10 ? "0" : "") + k.i;
- k.ss = (k.s < 10 ? "0" : "") + k.s;
- k.dd = (k.d < 10 ? "0" : "") + k.d;
- k.mm = (k.m < 10 ? "0" : "") + k.m
- } else {
- if (p == "php") {
- k = {
- y: l.getUTCFullYear().toString().substring(2),
- Y: l.getUTCFullYear(),
- F: a[m].months[l.getUTCMonth()],
- M: a[m].monthsShort[l.getUTCMonth()],
- n: l.getUTCMonth() + 1,
- t: g.getDaysInMonth(l.getUTCFullYear(), l.getUTCMonth()),
- j: l.getUTCDate(),
- l: a[m].days[l.getUTCDay()],
- D: a[m].daysShort[l.getUTCDay()],
- w: l.getUTCDay(),
- N: (l.getUTCDay() == 0 ? 7 : l.getUTCDay()),
- S: (l.getUTCDate() % 10 <= a[m].suffix.length ? a[m].suffix[l.getUTCDate() % 10 - 1] : ""),
- a: (a[m].meridiem.length == 2 ? a[m].meridiem[l.getUTCHours() < 12 ? 0 : 1] : ""),
- g: (l.getUTCHours() % 12 == 0 ? 12 : l.getUTCHours() % 12),
- G: l.getUTCHours(),
- i: l.getUTCMinutes(),
- s: l.getUTCSeconds()
- };
- k.m = (k.n < 10 ? "0" : "") + k.n;
- k.d = (k.j < 10 ? "0" : "") + k.j;
- k.A = k.a.toString().toUpperCase();
- k.h = (k.g < 10 ? "0" : "") + k.g;
- k.H = (k.G < 10 ? "0" : "") + k.G;
- k.i = (k.i < 10 ? "0" : "") + k.i;
- k.s = (k.s < 10 ? "0" : "") + k.s
- } else {
- throw new Error("Invalid format type.")
- }
- }
- var l = [], r = f.extend([], q.separators);
- for (var n = 0, j = q.parts.length; n < j; n++) {
- if (r.length) {
- l.push(r.shift())
- }
- l.push(k[q.parts[n]])
- }
- if (r.length) {
- l.push(r.shift())
- }
- return l.join("")
- },
- convertViewMode: function (j) {
- switch (j) {
- case 4:
- case"decade":
- j = 4;
- break;
- case 3:
- case"year":
- j = 3;
- break;
- case 2:
- case"month":
- j = 2;
- break;
- case 1:
- case"day":
- j = 1;
- break;
- case 0:
- case"hour":
- j = 0;
- break
- }
- return j
- },
- headTemplate: '<thead><tr><th class="prev"><i class="{iconType} {leftArrow}"/></th><th colspan="5" class="switch"></th><th class="next"><i class="{iconType} {rightArrow}"/></th></tr></thead>',
- headTemplateV3: '<thead><tr><th class="prev"><span class="{iconType} {leftArrow}"></span> </th><th colspan="5" class="switch"></th><th class="next"><span class="{iconType} {rightArrow}"></span> </th></tr></thead>',
- contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
- footTemplate: '<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'
- };
- g.template = '<div class="datetimepicker"><div class="datetimepicker-minutes"><table class=" table-condensed">' + g.headTemplate + g.contTemplate + g.footTemplate + '</table></div><div class="datetimepicker-hours"><table class=" table-condensed">' + g.headTemplate + g.contTemplate + g.footTemplate + '</table></div><div class="datetimepicker-days"><table class=" table-condensed">' + g.headTemplate + "<tbody></tbody>" + g.footTemplate + '</table></div><div class="datetimepicker-months"><table class="table-condensed">' + g.headTemplate + g.contTemplate + g.footTemplate + '</table></div><div class="datetimepicker-years"><table class="table-condensed">' + g.headTemplate + g.contTemplate + g.footTemplate + "</table></div></div>";
- g.templateV3 = '<div class="datetimepicker"><div class="datetimepicker-minutes"><table class=" table-condensed">' + g.headTemplateV3 + g.contTemplate + g.footTemplate + '</table></div><div class="datetimepicker-hours"><table class=" table-condensed">' + g.headTemplateV3 + g.contTemplate + g.footTemplate + '</table></div><div class="datetimepicker-days"><table class=" table-condensed">' + g.headTemplateV3 + "<tbody></tbody>" + g.footTemplate + '</table></div><div class="datetimepicker-months"><table class="table-condensed">' + g.headTemplateV3 + g.contTemplate + g.footTemplate + '</table></div><div class="datetimepicker-years"><table class="table-condensed">' + g.headTemplateV3 + g.contTemplate + g.footTemplate + "</table></div></div>";
- f.fn.datetimepicker.DPGlobal = g;
- f.fn.datetimepicker.noConflict = function () {
- f.fn.datetimepicker = b;
- return this
- };
- f(document).on("focus.datetimepicker.data-api click.datetimepicker.data-api", '[data-provide="datetimepicker"]', function (k) {
- var j = f(this);
- if (j.data("datetimepicker")) {
- return
- }
- k.preventDefault();
- j.datetimepicker("show")
- });
- f(function () {
- f('[data-provide="datetimepicker-inline"]').datetimepicker()
- })
- }));
|