From cf83d041586de348b8e7afd4d1d3182a812362ea Mon Sep 17 00:00:00 2001 From: Marc Ducobu Date: Tue, 11 Nov 2014 11:53:59 +0100 Subject: [PATCH] Adding pikaday --- Resources/Gruntfile.js | 30 +- Resources/bower.json | 5 +- Resources/public/css/pikaday.css | 173 + Resources/public/moment.js | 2856 +++++++++++++++++ Resources/public/pikaday.js | 920 ++++++ Resources/public/plugins/pikaday.jquery.js | 52 + .../public/stylesheets/sass/_custom.scss | 2 +- Resources/public/stylesheets/scratch.css | 75 +- Resources/public/stylesheets/scratch.css.map | 2 +- Resources/views/layout.html.twig | 43 +- 10 files changed, 4093 insertions(+), 65 deletions(-) create mode 100644 Resources/public/css/pikaday.css create mode 100644 Resources/public/moment.js create mode 100644 Resources/public/pikaday.js create mode 100644 Resources/public/plugins/pikaday.jquery.js diff --git a/Resources/Gruntfile.js b/Resources/Gruntfile.js index dc243f418..e12ab7b59 100644 --- a/Resources/Gruntfile.js +++ b/Resources/Gruntfile.js @@ -4,13 +4,14 @@ module.exports = function(grunt) { chill: { folders: { - fonts: './public/fonts', + pub: './public', + fonts: '<%= chill.folders.pub %>/fonts', bower: './bower_components/', css: { - dist: './public/stylesheets/', + dist: '<%= chill.folders.pub %>/stylesheets/', }, sass: { - src: './public/stylesheets/sass/', + src: '<%= chill.folders.css.dist %>/sass/', } } }, @@ -20,7 +21,8 @@ module.exports = function(grunt) { targetDir: '<%= chill.folders.bower %>', install: true, copy: false, - cleanBowerDir: true + //cleanBowerDir: true, + verbose: true } } }, @@ -41,6 +43,26 @@ module.exports = function(grunt) { } ] }, + pikaday: { + files: [ + { + cwd: '<%= chill.folders.bower %>pikaday', + src: ['css/pikaday.css', 'pikaday.js', 'plugins/pikaday.jquery.js'], + dest: '<%= chill.folders.pub %>', + expand: true, + } + ] + }, + moment: { + files: [ + { + cwd: '<%= chill.folders.bower %>moment', + src: ['moment.js'], + dest: '<%= chill.folders.pub %>', + expand: true, + } + ] + }, chill_standard: { files: [ { diff --git a/Resources/bower.json b/Resources/bower.json index 43a28bf60..66fd17124 100644 --- a/Resources/bower.json +++ b/Resources/bower.json @@ -8,8 +8,9 @@ "description": "JS-CSS files for Chill, a software for social workers", "private": true, "devDependencies": { - "Scratch-CSS-Design": "git@github.com:Champs-Libres/ScratchCSS.git#master", - "pikaday": "https://github.com/dbushell/Pikaday.git#~1.2.0" + "Scratch-CSS-Design": "git@github.com:Champs-Libres/ScratchCSS.git", + "pikaday": "https://github.com/dbushell/Pikaday.git#~1.2.0", + "moment": "~2.8.3" }, "license": "MIT" } diff --git a/Resources/public/css/pikaday.css b/Resources/public/css/pikaday.css new file mode 100644 index 000000000..495802417 --- /dev/null +++ b/Resources/public/css/pikaday.css @@ -0,0 +1,173 @@ +@charset "UTF-8"; + +/*! + * Pikaday + * Copyright © 2014 David Bushell | BSD & MIT license | http://dbushell.com/ + */ + +.pika-single { + z-index: 9999; + display: block; + position: relative; + width: 240px; + padding: 8px; + color: #333; + background: #fff; + border: 1px solid #ccc; + border-bottom-color: #bbb; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +.pika-single.is-hidden { + display: none; +} + +.pika-single.is-bound { + position: absolute; + box-shadow: 0 5px 15px -5px rgba(0,0,0,.5); +} + +.pika-title { + position: relative; + text-align: center; +} + +.pika-label { + display: inline-block; + *display: inline; + position: relative; + z-index: 9999; + overflow: hidden; + margin: 0; + padding: 5px 3px; + font-size: 14px; + line-height: 20px; + font-weight: bold; + background-color: #fff; +} +.pika-title select { + cursor: pointer; + position: absolute; + z-index: 9998; + margin: 0; + left: 0; + top: 5px; + filter: alpha(opacity=0); + opacity: 0; +} + +.pika-prev, +.pika-next { + display: block; + cursor: pointer; + position: relative; + outline: none; + border: 0; + padding: 0; + width: 20px; + height: 30px; + /* hide text using text-indent trick, using width value (it's enough) */ + text-indent: 20px; + white-space: nowrap; + overflow: hidden; + background-color: transparent; + background-position: center center; + background-repeat: no-repeat; + background-size: 75% 75%; + opacity: .5; + *position: absolute; + *top: 0; +} + +.pika-prev:hover, +.pika-next:hover { + opacity: 1; +} + +.pika-prev, +.is-rtl .pika-next { + float: left; + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg=='); + *left: 0; +} + +.pika-next, +.is-rtl .pika-prev { + float: right; + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII='); + *right: 0; +} + +.pika-prev.is-disabled, +.pika-next.is-disabled { + cursor: default; + opacity: .2; +} + +.pika-select { + display: inline-block; + *display: inline; +} + +.pika-table { + width: 100%; + border-collapse: collapse; + border-spacing: 0; + border: 0; +} + +.pika-table th, +.pika-table td { + width: 14.285714285714286%; + padding: 0; +} + +.pika-table th { + color: #999; + font-size: 12px; + line-height: 25px; + font-weight: bold; + text-align: center; +} + +.pika-button { + cursor: pointer; + display: block; + outline: none; + border: 0; + margin: 0; + width: 100%; + padding: 5px; + color: #666; + font-size: 12px; + line-height: 15px; + text-align: right; + background: #f5f5f5; +} + +.is-today .pika-button { + color: #33aaff; + font-weight: bold; +} + +.is-selected .pika-button { + color: #fff; + font-weight: bold; + background: #33aaff; + box-shadow: inset 0 1px 3px #178fe5; + border-radius: 3px; +} + +.is-disabled .pika-button { + pointer-events: none; + cursor: default; + color: #999; + opacity: .3; +} + +.pika-button:hover { + color: #fff !important; + background: #ff8000 !important; + box-shadow: none !important; + border-radius: 3px !important; +} diff --git a/Resources/public/moment.js b/Resources/public/moment.js new file mode 100644 index 000000000..d100a9c40 --- /dev/null +++ b/Resources/public/moment.js @@ -0,0 +1,2856 @@ +//! moment.js +//! version : 2.8.3 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +(function (undefined) { + /************************************ + Constants + ************************************/ + + var moment, + VERSION = '2.8.3', + // the global-scope this is NOT the global object in Node.js + globalScope = typeof global !== 'undefined' ? global : this, + oldGlobalMoment, + round = Math.round, + hasOwnProperty = Object.prototype.hasOwnProperty, + i, + + YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + + // internal storage for locale config files + locales = {}, + + // extra moment internal properties (plugins register props here) + momentProperties = [], + + // check for nodeJS + hasModule = (typeof module !== 'undefined' && module.exports), + + // ASP.NET json date format regex + aspNetJsonRegex = /^\/?Date\((\-?\d+)/i, + aspNetTimeSpanJsonRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/, + + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + isoDurationRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/, + + // format tokens + formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g, + + // parsing token regexes + parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99 + parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999 + parseTokenOneToFourDigits = /\d{1,4}/, // 0 - 9999 + parseTokenOneToSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999 + parseTokenDigits = /\d+/, // nonzero number of digits + parseTokenWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic. + parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + parseTokenT = /T/i, // T (ISO separator) + parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + parseTokenOrdinal = /\d{1,2}/, + + //strict parsing regexes + parseTokenOneDigit = /\d/, // 0 - 9 + parseTokenTwoDigits = /\d\d/, // 00 - 99 + parseTokenThreeDigits = /\d{3}/, // 000 - 999 + parseTokenFourDigits = /\d{4}/, // 0000 - 9999 + parseTokenSixDigits = /[+-]?\d{6}/, // -999,999 - 999,999 + parseTokenSignedNumber = /[+-]?\d+/, // -inf - inf + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + + isoFormat = 'YYYY-MM-DDTHH:mm:ssZ', + + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/], + ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/], + ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/], + ['GGGG-[W]WW', /\d{4}-W\d{2}/], + ['YYYY-DDD', /\d{4}-\d{3}/] + ], + + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /(T| )\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/], + ['HH:mm', /(T| )\d\d:\d\d/], + ['HH', /(T| )\d\d/] + ], + + // timezone chunker '+10:00' > ['10', '00'] or '-1530' > ['-15', '30'] + parseTimezoneChunker = /([\+\-]|\d\d)/gi, + + // getter and setter names + proxyGettersAndSetters = 'Date|Hours|Minutes|Seconds|Milliseconds'.split('|'), + unitMillisecondFactors = { + 'Milliseconds' : 1, + 'Seconds' : 1e3, + 'Minutes' : 6e4, + 'Hours' : 36e5, + 'Days' : 864e5, + 'Months' : 2592e6, + 'Years' : 31536e6 + }, + + unitAliases = { + ms : 'millisecond', + s : 'second', + m : 'minute', + h : 'hour', + d : 'day', + D : 'date', + w : 'week', + W : 'isoWeek', + M : 'month', + Q : 'quarter', + y : 'year', + DDD : 'dayOfYear', + e : 'weekday', + E : 'isoWeekday', + gg: 'weekYear', + GG: 'isoWeekYear' + }, + + camelFunctions = { + dayofyear : 'dayOfYear', + isoweekday : 'isoWeekday', + isoweek : 'isoWeek', + weekyear : 'weekYear', + isoweekyear : 'isoWeekYear' + }, + + // format function strings + formatFunctions = {}, + + // default relative time thresholds + relativeTimeThresholds = { + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month + M: 11 // months to year + }, + + // tokens to ordinalize and pad + ordinalizeTokens = 'DDD w W M D d'.split(' '), + paddedTokens = 'M D H h m s w W'.split(' '), + + formatTokenFunctions = { + M : function () { + return this.month() + 1; + }, + MMM : function (format) { + return this.localeData().monthsShort(this, format); + }, + MMMM : function (format) { + return this.localeData().months(this, format); + }, + D : function () { + return this.date(); + }, + DDD : function () { + return this.dayOfYear(); + }, + d : function () { + return this.day(); + }, + dd : function (format) { + return this.localeData().weekdaysMin(this, format); + }, + ddd : function (format) { + return this.localeData().weekdaysShort(this, format); + }, + dddd : function (format) { + return this.localeData().weekdays(this, format); + }, + w : function () { + return this.week(); + }, + W : function () { + return this.isoWeek(); + }, + YY : function () { + return leftZeroFill(this.year() % 100, 2); + }, + YYYY : function () { + return leftZeroFill(this.year(), 4); + }, + YYYYY : function () { + return leftZeroFill(this.year(), 5); + }, + YYYYYY : function () { + var y = this.year(), sign = y >= 0 ? '+' : '-'; + return sign + leftZeroFill(Math.abs(y), 6); + }, + gg : function () { + return leftZeroFill(this.weekYear() % 100, 2); + }, + gggg : function () { + return leftZeroFill(this.weekYear(), 4); + }, + ggggg : function () { + return leftZeroFill(this.weekYear(), 5); + }, + GG : function () { + return leftZeroFill(this.isoWeekYear() % 100, 2); + }, + GGGG : function () { + return leftZeroFill(this.isoWeekYear(), 4); + }, + GGGGG : function () { + return leftZeroFill(this.isoWeekYear(), 5); + }, + e : function () { + return this.weekday(); + }, + E : function () { + return this.isoWeekday(); + }, + a : function () { + return this.localeData().meridiem(this.hours(), this.minutes(), true); + }, + A : function () { + return this.localeData().meridiem(this.hours(), this.minutes(), false); + }, + H : function () { + return this.hours(); + }, + h : function () { + return this.hours() % 12 || 12; + }, + m : function () { + return this.minutes(); + }, + s : function () { + return this.seconds(); + }, + S : function () { + return toInt(this.milliseconds() / 100); + }, + SS : function () { + return leftZeroFill(toInt(this.milliseconds() / 10), 2); + }, + SSS : function () { + return leftZeroFill(this.milliseconds(), 3); + }, + SSSS : function () { + return leftZeroFill(this.milliseconds(), 3); + }, + Z : function () { + var a = -this.zone(), + b = '+'; + if (a < 0) { + a = -a; + b = '-'; + } + return b + leftZeroFill(toInt(a / 60), 2) + ':' + leftZeroFill(toInt(a) % 60, 2); + }, + ZZ : function () { + var a = -this.zone(), + b = '+'; + if (a < 0) { + a = -a; + b = '-'; + } + return b + leftZeroFill(toInt(a / 60), 2) + leftZeroFill(toInt(a) % 60, 2); + }, + z : function () { + return this.zoneAbbr(); + }, + zz : function () { + return this.zoneName(); + }, + X : function () { + return this.unix(); + }, + Q : function () { + return this.quarter(); + } + }, + + deprecations = {}, + + lists = ['months', 'monthsShort', 'weekdays', 'weekdaysShort', 'weekdaysMin']; + + // Pick the first defined of two or three arguments. dfl comes from + // default. + function dfl(a, b, c) { + switch (arguments.length) { + case 2: return a != null ? a : b; + case 3: return a != null ? a : b != null ? b : c; + default: throw new Error('Implement me'); + } + } + + function hasOwnProp(a, b) { + return hasOwnProperty.call(a, b); + } + + function defaultParsingFlags() { + // We need to deep clone this object, and es5 standard is not very + // helpful. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso: false + }; + } + + function printMsg(msg) { + if (moment.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + return extend(function () { + if (firstTime) { + printMsg(msg); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + function deprecateSimple(name, msg) { + if (!deprecations[name]) { + printMsg(msg); + deprecations[name] = true; + } + } + + function padToken(func, count) { + return function (a) { + return leftZeroFill(func.call(this, a), count); + }; + } + function ordinalizeToken(func, period) { + return function (a) { + return this.localeData().ordinal(func.call(this, a), period); + }; + } + + while (ordinalizeTokens.length) { + i = ordinalizeTokens.pop(); + formatTokenFunctions[i + 'o'] = ordinalizeToken(formatTokenFunctions[i], i); + } + while (paddedTokens.length) { + i = paddedTokens.pop(); + formatTokenFunctions[i + i] = padToken(formatTokenFunctions[i], 2); + } + formatTokenFunctions.DDDD = padToken(formatTokenFunctions.DDD, 3); + + + /************************************ + Constructors + ************************************/ + + function Locale() { + } + + // Moment prototype object + function Moment(config, skipOverflow) { + if (skipOverflow !== false) { + checkOverflow(config); + } + copyConfig(this, config); + this._d = new Date(+config._d); + } + + // Duration Constructor + function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 36e5; // 1000 * 60 * 60 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; + + this._data = {}; + + this._locale = moment.localeData(); + + this._bubble(); + } + + /************************************ + Helpers + ************************************/ + + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function copyConfig(to, from) { + var i, prop, val; + + if (typeof from._isAMomentObject !== 'undefined') { + to._isAMomentObject = from._isAMomentObject; + } + if (typeof from._i !== 'undefined') { + to._i = from._i; + } + if (typeof from._f !== 'undefined') { + to._f = from._f; + } + if (typeof from._l !== 'undefined') { + to._l = from._l; + } + if (typeof from._strict !== 'undefined') { + to._strict = from._strict; + } + if (typeof from._tzm !== 'undefined') { + to._tzm = from._tzm; + } + if (typeof from._isUTC !== 'undefined') { + to._isUTC = from._isUTC; + } + if (typeof from._offset !== 'undefined') { + to._offset = from._offset; + } + if (typeof from._pf !== 'undefined') { + to._pf = from._pf; + } + if (typeof from._locale !== 'undefined') { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i in momentProperties) { + prop = momentProperties[i]; + val = from[prop]; + if (typeof val !== 'undefined') { + to[prop] = val; + } + } + } + + return to; + } + + function absRound(number) { + if (number < 0) { + return Math.ceil(number); + } else { + return Math.floor(number); + } + } + + // left zero fill a number + // see http://jsperf.com/left-zero-filling for performance comparison + function leftZeroFill(number, targetLength, forceSign) { + var output = '' + Math.abs(number), + sign = number >= 0; + + while (output.length < targetLength) { + output = '0' + output; + } + return (sign ? (forceSign ? '+' : '') : '-') + output; + } + + function positiveMomentsDifference(base, other) { + var res = {milliseconds: 0, months: 0}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + other = makeAs(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = moment.duration(val, period); + addOrSubtractDurationFromMoment(this, dur, direction); + return this; + }; + } + + function addOrSubtractDurationFromMoment(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = duration._days, + months = duration._months; + updateOffset = updateOffset == null ? true : updateOffset; + + if (milliseconds) { + mom._d.setTime(+mom._d + milliseconds * isAdding); + } + if (days) { + rawSetter(mom, 'Date', rawGetter(mom, 'Date') + days * isAdding); + } + if (months) { + rawMonthSetter(mom, rawGetter(mom, 'Month') + months * isAdding); + } + if (updateOffset) { + moment.updateOffset(mom, days || months); + } + } + + // check if is an array + function isArray(input) { + return Object.prototype.toString.call(input) === '[object Array]'; + } + + function isDate(input) { + return Object.prototype.toString.call(input) === '[object Date]' || + input instanceof Date; + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function normalizeUnits(units) { + if (units) { + var lowered = units.toLowerCase().replace(/(.)s$/, '$1'); + units = unitAliases[units] || camelFunctions[lowered] || lowered; + } + return units; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + function makeList(field) { + var count, setter; + + if (field.indexOf('week') === 0) { + count = 7; + setter = 'day'; + } + else if (field.indexOf('month') === 0) { + count = 12; + setter = 'month'; + } + else { + return; + } + + moment[field] = function (format, index) { + var i, getter, + method = moment._locale[field], + results = []; + + if (typeof format === 'number') { + index = format; + format = undefined; + } + + getter = function (i) { + var m = moment().utc().set(setter, i); + return method.call(moment._locale, m, format || ''); + }; + + if (index != null) { + return getter(index); + } + else { + for (i = 0; i < count; i++) { + results.push(getter(i)); + } + return results; + } + }; + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + if (coercedNumber >= 0) { + value = Math.floor(coercedNumber); + } else { + value = Math.ceil(coercedNumber); + } + } + + return value; + } + + function daysInMonth(year, month) { + return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); + } + + function weeksInYear(year, dow, doy) { + return weekOfYear(moment([year, 11, 31 + dow - doy]), dow, doy).week; + } + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + function checkOverflow(m) { + var overflow; + if (m._a && m._pf.overflow === -2) { + overflow = + m._a[MONTH] < 0 || m._a[MONTH] > 11 ? MONTH : + m._a[DATE] < 1 || m._a[DATE] > daysInMonth(m._a[YEAR], m._a[MONTH]) ? DATE : + m._a[HOUR] < 0 || m._a[HOUR] > 23 ? HOUR : + m._a[MINUTE] < 0 || m._a[MINUTE] > 59 ? MINUTE : + m._a[SECOND] < 0 || m._a[SECOND] > 59 ? SECOND : + m._a[MILLISECOND] < 0 || m._a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + + m._pf.overflow = overflow; + } + } + + function isValid(m) { + if (m._isValid == null) { + m._isValid = !isNaN(m._d.getTime()) && + m._pf.overflow < 0 && + !m._pf.empty && + !m._pf.invalidMonth && + !m._pf.nullInput && + !m._pf.invalidFormat && + !m._pf.userInvalidated; + + if (m._strict) { + m._isValid = m._isValid && + m._pf.charsLeftOver === 0 && + m._pf.unusedTokens.length === 0; + } + } + return m._isValid; + } + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return null; + } + + function loadLocale(name) { + var oldLocale = null; + if (!locales[name] && hasModule) { + try { + oldLocale = moment.locale(); + require('./locale/' + name); + // because defineLocale currently also sets the global locale, we want to undo that for lazy loaded locales + moment.locale(oldLocale); + } catch (e) { } + } + return locales[name]; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function makeAs(input, model) { + return model._isUTC ? moment(input).zone(model._offset || 0) : + moment(input).local(); + } + + /************************************ + Locale + ************************************/ + + + extend(Locale.prototype, { + + set : function (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (typeof prop === 'function') { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + }, + + _months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + months : function (m) { + return this._months[m.month()]; + }, + + _monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + monthsShort : function (m) { + return this._monthsShort[m.month()]; + }, + + monthsParse : function (monthName) { + var i, mom, regex; + + if (!this._monthsParse) { + this._monthsParse = []; + } + + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + if (!this._monthsParse[i]) { + mom = moment.utc([2000, i]); + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (this._monthsParse[i].test(monthName)) { + return i; + } + } + }, + + _weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + weekdays : function (m) { + return this._weekdays[m.day()]; + }, + + _weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysShort : function (m) { + return this._weekdaysShort[m.day()]; + }, + + _weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + weekdaysMin : function (m) { + return this._weekdaysMin[m.day()]; + }, + + weekdaysParse : function (weekdayName) { + var i, mom, regex; + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + if (!this._weekdaysParse[i]) { + mom = moment([2000, 1]).day(i); + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + }, + + _longDateFormat : { + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY LT', + LLLL : 'dddd, MMMM D, YYYY LT' + }, + longDateFormat : function (key) { + var output = this._longDateFormat[key]; + if (!output && this._longDateFormat[key.toUpperCase()]) { + output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + this._longDateFormat[key] = output; + } + return output; + }, + + isPM : function (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + }, + + _meridiemParse : /[ap]\.?m?\.?/i, + meridiem : function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + }, + + _calendar : { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }, + calendar : function (key, mom) { + var output = this._calendar[key]; + return typeof output === 'function' ? output.apply(mom) : output; + }, + + _relativeTime : { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }, + + relativeTime : function (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (typeof output === 'function') ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + }, + + pastFuture : function (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return typeof format === 'function' ? format(output) : format.replace(/%s/i, output); + }, + + ordinal : function (number) { + return this._ordinal.replace('%d', number); + }, + _ordinal : '%d', + + preparse : function (string) { + return string; + }, + + postformat : function (string) { + return string; + }, + + week : function (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + }, + + _week : { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }, + + _invalidDate: 'Invalid date', + invalidDate: function () { + return this._invalidDate; + } + }); + + /************************************ + Formatting + ************************************/ + + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = ''; + for (i = 0; i < length; i++) { + output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + + if (!formatFunctions[format]) { + formatFunctions[format] = makeFormatFunction(format); + } + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + + /************************************ + Parsing + ************************************/ + + + // get the regex to find the next token + function getParseRegexForToken(token, config) { + var a, strict = config._strict; + switch (token) { + case 'Q': + return parseTokenOneDigit; + case 'DDDD': + return parseTokenThreeDigits; + case 'YYYY': + case 'GGGG': + case 'gggg': + return strict ? parseTokenFourDigits : parseTokenOneToFourDigits; + case 'Y': + case 'G': + case 'g': + return parseTokenSignedNumber; + case 'YYYYYY': + case 'YYYYY': + case 'GGGGG': + case 'ggggg': + return strict ? parseTokenSixDigits : parseTokenOneToSixDigits; + case 'S': + if (strict) { + return parseTokenOneDigit; + } + /* falls through */ + case 'SS': + if (strict) { + return parseTokenTwoDigits; + } + /* falls through */ + case 'SSS': + if (strict) { + return parseTokenThreeDigits; + } + /* falls through */ + case 'DDD': + return parseTokenOneToThreeDigits; + case 'MMM': + case 'MMMM': + case 'dd': + case 'ddd': + case 'dddd': + return parseTokenWord; + case 'a': + case 'A': + return config._locale._meridiemParse; + case 'X': + return parseTokenTimestampMs; + case 'Z': + case 'ZZ': + return parseTokenTimezone; + case 'T': + return parseTokenT; + case 'SSSS': + return parseTokenDigits; + case 'MM': + case 'DD': + case 'YY': + case 'GG': + case 'gg': + case 'HH': + case 'hh': + case 'mm': + case 'ss': + case 'ww': + case 'WW': + return strict ? parseTokenTwoDigits : parseTokenOneOrTwoDigits; + case 'M': + case 'D': + case 'd': + case 'H': + case 'h': + case 'm': + case 's': + case 'w': + case 'W': + case 'e': + case 'E': + return parseTokenOneOrTwoDigits; + case 'Do': + return parseTokenOrdinal; + default : + a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), 'i')); + return a; + } + } + + function timezoneMinutesFromString(string) { + string = string || ''; + var possibleTzMatches = (string.match(parseTokenTimezone) || []), + tzChunk = possibleTzMatches[possibleTzMatches.length - 1] || [], + parts = (tzChunk + '').match(parseTimezoneChunker) || ['-', 0, 0], + minutes = +(parts[1] * 60) + toInt(parts[2]); + + return parts[0] === '+' ? -minutes : minutes; + } + + // function to convert string input to date + function addTimeToArrayFromToken(token, input, config) { + var a, datePartArray = config._a; + + switch (token) { + // QUARTER + case 'Q': + if (input != null) { + datePartArray[MONTH] = (toInt(input) - 1) * 3; + } + break; + // MONTH + case 'M' : // fall through to MM + case 'MM' : + if (input != null) { + datePartArray[MONTH] = toInt(input) - 1; + } + break; + case 'MMM' : // fall through to MMMM + case 'MMMM' : + a = config._locale.monthsParse(input); + // if we didn't find a month name, mark the date as invalid. + if (a != null) { + datePartArray[MONTH] = a; + } else { + config._pf.invalidMonth = input; + } + break; + // DAY OF MONTH + case 'D' : // fall through to DD + case 'DD' : + if (input != null) { + datePartArray[DATE] = toInt(input); + } + break; + case 'Do' : + if (input != null) { + datePartArray[DATE] = toInt(parseInt(input, 10)); + } + break; + // DAY OF YEAR + case 'DDD' : // fall through to DDDD + case 'DDDD' : + if (input != null) { + config._dayOfYear = toInt(input); + } + + break; + // YEAR + case 'YY' : + datePartArray[YEAR] = moment.parseTwoDigitYear(input); + break; + case 'YYYY' : + case 'YYYYY' : + case 'YYYYYY' : + datePartArray[YEAR] = toInt(input); + break; + // AM / PM + case 'a' : // fall through to A + case 'A' : + config._isPm = config._locale.isPM(input); + break; + // 24 HOUR + case 'H' : // fall through to hh + case 'HH' : // fall through to hh + case 'h' : // fall through to hh + case 'hh' : + datePartArray[HOUR] = toInt(input); + break; + // MINUTE + case 'm' : // fall through to mm + case 'mm' : + datePartArray[MINUTE] = toInt(input); + break; + // SECOND + case 's' : // fall through to ss + case 'ss' : + datePartArray[SECOND] = toInt(input); + break; + // MILLISECOND + case 'S' : + case 'SS' : + case 'SSS' : + case 'SSSS' : + datePartArray[MILLISECOND] = toInt(('0.' + input) * 1000); + break; + // UNIX TIMESTAMP WITH MS + case 'X': + config._d = new Date(parseFloat(input) * 1000); + break; + // TIMEZONE + case 'Z' : // fall through to ZZ + case 'ZZ' : + config._useUTC = true; + config._tzm = timezoneMinutesFromString(input); + break; + // WEEKDAY - human + case 'dd': + case 'ddd': + case 'dddd': + a = config._locale.weekdaysParse(input); + // if we didn't get a weekday name, mark the date as invalid + if (a != null) { + config._w = config._w || {}; + config._w['d'] = a; + } else { + config._pf.invalidWeekday = input; + } + break; + // WEEK, WEEK DAY - numeric + case 'w': + case 'ww': + case 'W': + case 'WW': + case 'd': + case 'e': + case 'E': + token = token.substr(0, 1); + /* falls through */ + case 'gggg': + case 'GGGG': + case 'GGGGG': + token = token.substr(0, 2); + if (input) { + config._w = config._w || {}; + config._w[token] = toInt(input); + } + break; + case 'gg': + case 'GG': + config._w = config._w || {}; + config._w[token] = moment.parseTwoDigitYear(input); + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = dfl(w.GG, config._a[YEAR], weekOfYear(moment(), 1, 4).year); + week = dfl(w.W, 1); + weekday = dfl(w.E, 1); + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + weekYear = dfl(w.gg, config._a[YEAR], weekOfYear(moment(), dow, doy).year); + week = dfl(w.w, 1); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < dow) { + ++week; + } + } else if (w.e != null) { + // local weekday -- counting starts from begining of week + weekday = w.e + dow; + } else { + // default to begining of week + weekday = dow; + } + } + temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow); + + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function dateFromConfig(config) { + var i, date, input = [], currentDate, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear) { + yearToUse = dfl(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse)) { + config._pf._overflowDayOfYear = true; + } + + date = makeUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + config._d = (config._useUTC ? makeUTCDate : makeDate).apply(null, input); + // Apply timezone offset from input. The actual zone can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() + config._tzm); + } + } + + function dateFromObject(config) { + var normalizedInput; + + if (config._d) { + return; + } + + normalizedInput = normalizeObjectUnits(config._i); + config._a = [ + normalizedInput.year, + normalizedInput.month, + normalizedInput.day, + normalizedInput.hour, + normalizedInput.minute, + normalizedInput.second, + normalizedInput.millisecond + ]; + + dateFromConfig(config); + } + + function currentDateArray(config) { + var now = new Date(); + if (config._useUTC) { + return [ + now.getUTCFullYear(), + now.getUTCMonth(), + now.getUTCDate() + ]; + } else { + return [now.getFullYear(), now.getMonth(), now.getDate()]; + } + } + + // date from string and format string + function makeDateFromStringAndFormat(config) { + if (config._f === moment.ISO_8601) { + parseISO(config); + return; + } + + config._a = []; + config._pf.empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + config._pf.unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + config._pf.empty = false; + } + else { + config._pf.unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + config._pf.unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + config._pf.charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + config._pf.unusedInput.push(string); + } + + // handle am pm + if (config._isPm && config._a[HOUR] < 12) { + config._a[HOUR] += 12; + } + // if is 12 am, change hours to 0 + if (config._isPm === false && config._a[HOUR] === 12) { + config._a[HOUR] = 0; + } + + dateFromConfig(config); + checkOverflow(config); + } + + function unescapeFormat(s) { + return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + }); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function regexpEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + // date from string and array of format strings + function makeDateFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + config._pf.invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._pf = defaultParsingFlags(); + tempConfig._f = config._f[i]; + makeDateFromStringAndFormat(tempConfig); + + if (!isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += tempConfig._pf.charsLeftOver; + + //or tokens + currentScore += tempConfig._pf.unusedTokens.length * 10; + + tempConfig._pf.score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + // date from iso format + function parseISO(config) { + var i, l, + string = config._i, + match = isoRegex.exec(string); + + if (match) { + config._pf.iso = true; + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(string)) { + // match[5] should be 'T' or undefined + config._f = isoDates[i][0] + (match[6] || ' '); + break; + } + } + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(string)) { + config._f += isoTimes[i][0]; + break; + } + } + if (string.match(parseTokenTimezone)) { + config._f += 'Z'; + } + makeDateFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function makeDateFromString(config) { + parseISO(config); + if (config._isValid === false) { + delete config._isValid; + moment.createFromInputFallback(config); + } + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function makeDateFromInput(config) { + var input = config._i, matched; + if (input === undefined) { + config._d = new Date(); + } else if (isDate(input)) { + config._d = new Date(+input); + } else if ((matched = aspNetJsonRegex.exec(input)) !== null) { + config._d = new Date(+matched[1]); + } else if (typeof input === 'string') { + makeDateFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + dateFromConfig(config); + } else if (typeof(input) === 'object') { + dateFromObject(config); + } else if (typeof(input) === 'number') { + // from milliseconds + config._d = new Date(input); + } else { + moment.createFromInputFallback(config); + } + } + + function makeDate(y, m, d, h, M, s, ms) { + //can't just apply() to create a date: + //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply + var date = new Date(y, m, d, h, M, s, ms); + + //the date constructor doesn't accept years < 1970 + if (y < 1970) { + date.setFullYear(y); + } + return date; + } + + function makeUTCDate(y) { + var date = new Date(Date.UTC.apply(null, arguments)); + if (y < 1970) { + date.setUTCFullYear(y); + } + return date; + } + + function parseWeekday(input, locale) { + if (typeof input === 'string') { + if (!isNaN(input)) { + input = parseInt(input, 10); + } + else { + input = locale.weekdaysParse(input); + if (typeof input !== 'number') { + return null; + } + } + } + return input; + } + + /************************************ + Relative Time + ************************************/ + + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function relativeTime(posNegDuration, withoutSuffix, locale) { + var duration = moment.duration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + years = round(duration.as('y')), + + args = seconds < relativeTimeThresholds.s && ['s', seconds] || + minutes === 1 && ['m'] || + minutes < relativeTimeThresholds.m && ['mm', minutes] || + hours === 1 && ['h'] || + hours < relativeTimeThresholds.h && ['hh', hours] || + days === 1 && ['d'] || + days < relativeTimeThresholds.d && ['dd', days] || + months === 1 && ['M'] || + months < relativeTimeThresholds.M && ['MM', months] || + years === 1 && ['y'] || ['yy', years]; + + args[2] = withoutSuffix; + args[3] = +posNegDuration > 0; + args[4] = locale; + return substituteTimeAgo.apply({}, args); + } + + + /************************************ + Week of Year + ************************************/ + + + // firstDayOfWeek 0 = sun, 6 = sat + // the day of the week that starts the week + // (usually sunday or monday) + // firstDayOfWeekOfYear 0 = sun, 6 = sat + // the first week is the week that contains the first + // of this day of the week + // (eg. ISO weeks use thursday (4)) + function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) { + var end = firstDayOfWeekOfYear - firstDayOfWeek, + daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(), + adjustedMoment; + + + if (daysToDayOfWeek > end) { + daysToDayOfWeek -= 7; + } + + if (daysToDayOfWeek < end - 7) { + daysToDayOfWeek += 7; + } + + adjustedMoment = moment(mom).add(daysToDayOfWeek, 'd'); + return { + week: Math.ceil(adjustedMoment.dayOfYear() / 7), + year: adjustedMoment.year() + }; + } + + //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) { + var d = makeUTCDate(year, 0, 1).getUTCDay(), daysToAdd, dayOfYear; + + d = d === 0 ? 7 : d; + weekday = weekday != null ? weekday : firstDayOfWeek; + daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0) - (d < firstDayOfWeek ? 7 : 0); + dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1; + + return { + year: dayOfYear > 0 ? year : year - 1, + dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear + }; + } + + /************************************ + Top Level Functions + ************************************/ + + function makeMoment(config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || moment.localeData(config._l); + + if (input === null || (format === undefined && input === '')) { + return moment.invalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (moment.isMoment(input)) { + return new Moment(input, true); + } else if (format) { + if (isArray(format)) { + makeDateFromStringAndArray(config); + } else { + makeDateFromStringAndFormat(config); + } + } else { + makeDateFromInput(config); + } + + return new Moment(config); + } + + moment = function (input, format, locale, strict) { + var c; + + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c = {}; + c._isAMomentObject = true; + c._i = input; + c._f = format; + c._l = locale; + c._strict = strict; + c._isUTC = false; + c._pf = defaultParsingFlags(); + + return makeMoment(c); + }; + + moment.suppressDeprecationWarnings = false; + + moment.createFromInputFallback = deprecate( + 'moment construction falls back to js Date. This is ' + + 'discouraged and will be removed in upcoming major ' + + 'release. Please refer to ' + + 'https://github.com/moment/moment/issues/1407 for more info.', + function (config) { + config._d = new Date(config._i); + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return moment(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + moment.min = function () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + }; + + moment.max = function () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + }; + + // creating with utc + moment.utc = function (input, format, locale, strict) { + var c; + + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c = {}; + c._isAMomentObject = true; + c._useUTC = true; + c._isUTC = true; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + c._pf = defaultParsingFlags(); + + return makeMoment(c).utc(); + }; + + // creating with unix timestamp (in seconds) + moment.unix = function (input) { + return moment(input * 1000); + }; + + // duration + moment.duration = function (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + parseIso, + diffRes; + + if (moment.isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months + }; + } else if (typeof input === 'number') { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetTimeSpanJsonRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(match[MILLISECOND]) * sign + }; + } else if (!!(match = isoDurationRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + parseIso = function (inp) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + }; + duration = { + y: parseIso(match[2]), + M: parseIso(match[3]), + d: parseIso(match[4]), + h: parseIso(match[5]), + m: parseIso(match[6]), + s: parseIso(match[7]), + w: parseIso(match[8]) + }; + } else if (typeof duration === 'object' && + ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(moment(duration.from), moment(duration.to)); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (moment.isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + }; + + // version number + moment.version = VERSION; + + // default format + moment.defaultFormat = isoFormat; + + // constant that refers to the ISO standard + moment.ISO_8601 = function () {}; + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + moment.momentProperties = momentProperties; + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + moment.updateOffset = function () {}; + + // This function allows you to set a threshold for relative time strings + moment.relativeTimeThreshold = function (threshold, limit) { + if (relativeTimeThresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return relativeTimeThresholds[threshold]; + } + relativeTimeThresholds[threshold] = limit; + return true; + }; + + moment.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + function (key, value) { + return moment.locale(key, value); + } + ); + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + moment.locale = function (key, values) { + var data; + if (key) { + if (typeof(values) !== 'undefined') { + data = moment.defineLocale(key, values); + } + else { + data = moment.localeData(key); + } + + if (data) { + moment.duration._locale = moment._locale = data; + } + } + + return moment._locale._abbr; + }; + + moment.defineLocale = function (name, values) { + if (values !== null) { + values.abbr = name; + if (!locales[name]) { + locales[name] = new Locale(); + } + locales[name].set(values); + + // backwards compat for now: also set the locale + moment.locale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + }; + + moment.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + function (key) { + return moment.localeData(key); + } + ); + + // returns locale data + moment.localeData = function (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return moment._locale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + }; + + // compare moment object + moment.isMoment = function (obj) { + return obj instanceof Moment || + (obj != null && hasOwnProp(obj, '_isAMomentObject')); + }; + + // for typechecking Duration objects + moment.isDuration = function (obj) { + return obj instanceof Duration; + }; + + for (i = lists.length - 1; i >= 0; --i) { + makeList(lists[i]); + } + + moment.normalizeUnits = function (units) { + return normalizeUnits(units); + }; + + moment.invalid = function (flags) { + var m = moment.utc(NaN); + if (flags != null) { + extend(m._pf, flags); + } + else { + m._pf.userInvalidated = true; + } + + return m; + }; + + moment.parseZone = function () { + return moment.apply(null, arguments).parseZone(); + }; + + moment.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + /************************************ + Moment Prototype + ************************************/ + + + extend(moment.fn = Moment.prototype, { + + clone : function () { + return moment(this); + }, + + valueOf : function () { + return +this._d + ((this._offset || 0) * 60000); + }, + + unix : function () { + return Math.floor(+this / 1000); + }, + + toString : function () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + }, + + toDate : function () { + return this._offset ? new Date(+this) : this._d; + }, + + toISOString : function () { + var m = moment(this).utc(); + if (0 < m.year() && m.year() <= 9999) { + return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } else { + return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + }, + + toArray : function () { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hours(), + m.minutes(), + m.seconds(), + m.milliseconds() + ]; + }, + + isValid : function () { + return isValid(this); + }, + + isDSTShifted : function () { + if (this._a) { + return this.isValid() && compareArrays(this._a, (this._isUTC ? moment.utc(this._a) : moment(this._a)).toArray()) > 0; + } + + return false; + }, + + parsingFlags : function () { + return extend({}, this._pf); + }, + + invalidAt: function () { + return this._pf.overflow; + }, + + utc : function (keepLocalTime) { + return this.zone(0, keepLocalTime); + }, + + local : function (keepLocalTime) { + if (this._isUTC) { + this.zone(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.add(this._dateTzOffset(), 'm'); + } + } + return this; + }, + + format : function (inputString) { + var output = formatMoment(this, inputString || moment.defaultFormat); + return this.localeData().postformat(output); + }, + + add : createAdder(1, 'add'), + + subtract : createAdder(-1, 'subtract'), + + diff : function (input, units, asFloat) { + var that = makeAs(input, this), + zoneDiff = (this.zone() - that.zone()) * 6e4, + diff, output, daysAdjust; + + units = normalizeUnits(units); + + if (units === 'year' || units === 'month') { + // average number of days in the months in the given dates + diff = (this.daysInMonth() + that.daysInMonth()) * 432e5; // 24 * 60 * 60 * 1000 / 2 + // difference in months + output = ((this.year() - that.year()) * 12) + (this.month() - that.month()); + // adjust by taking difference in days, average number of days + // and dst in the given months. + daysAdjust = (this - moment(this).startOf('month')) - + (that - moment(that).startOf('month')); + // same as above but with zones, to negate all dst + daysAdjust -= ((this.zone() - moment(this).startOf('month').zone()) - + (that.zone() - moment(that).startOf('month').zone())) * 6e4; + output += daysAdjust / diff; + if (units === 'year') { + output = output / 12; + } + } else { + diff = (this - that); + output = units === 'second' ? diff / 1e3 : // 1000 + units === 'minute' ? diff / 6e4 : // 1000 * 60 + units === 'hour' ? diff / 36e5 : // 1000 * 60 * 60 + units === 'day' ? (diff - zoneDiff) / 864e5 : // 1000 * 60 * 60 * 24, negate dst + units === 'week' ? (diff - zoneDiff) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst + diff; + } + return asFloat ? output : absRound(output); + }, + + from : function (time, withoutSuffix) { + return moment.duration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + }, + + fromNow : function (withoutSuffix) { + return this.from(moment(), withoutSuffix); + }, + + calendar : function (time) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're zone'd or not. + var now = time || moment(), + sod = makeAs(now, this).startOf('day'), + diff = this.diff(sod, 'days', true), + format = diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + return this.format(this.localeData().calendar(format, this)); + }, + + isLeapYear : function () { + return isLeapYear(this.year()); + }, + + isDST : function () { + return (this.zone() < this.clone().month(0).zone() || + this.zone() < this.clone().month(5).zone()); + }, + + day : function (input) { + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + }, + + month : makeAccessor('Month', true), + + startOf : function (units) { + units = normalizeUnits(units); + // the following switch intentionally omits break keywords + // to utilize falling through the cases. + switch (units) { + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); + /* falls through */ + } + + // weeks are a special case + if (units === 'week') { + this.weekday(0); + } else if (units === 'isoWeek') { + this.isoWeekday(1); + } + + // quarters are also special + if (units === 'quarter') { + this.month(Math.floor(this.month() / 3) * 3); + } + + return this; + }, + + endOf: function (units) { + units = normalizeUnits(units); + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); + }, + + isAfter: function (input, units) { + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = moment.isMoment(input) ? input : moment(input); + return +this > +input; + } else { + return +this.clone().startOf(units) > +moment(input).startOf(units); + } + }, + + isBefore: function (input, units) { + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = moment.isMoment(input) ? input : moment(input); + return +this < +input; + } else { + return +this.clone().startOf(units) < +moment(input).startOf(units); + } + }, + + isSame: function (input, units) { + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + input = moment.isMoment(input) ? input : moment(input); + return +this === +input; + } else { + return +this.clone().startOf(units) === +makeAs(input, this).startOf(units); + } + }, + + min: deprecate( + 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', + function (other) { + other = moment.apply(null, arguments); + return other < this ? this : other; + } + ), + + max: deprecate( + 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', + function (other) { + other = moment.apply(null, arguments); + return other > this ? this : other; + } + ), + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[zone(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist int zone + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + zone : function (input, keepLocalTime) { + var offset = this._offset || 0, + localAdjust; + if (input != null) { + if (typeof input === 'string') { + input = timezoneMinutesFromString(input); + } + if (Math.abs(input) < 16) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = this._dateTzOffset(); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.subtract(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addOrSubtractDurationFromMoment(this, + moment.duration(offset - input, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + moment.updateOffset(this, true); + this._changeInProgress = null; + } + } + } else { + return this._isUTC ? offset : this._dateTzOffset(); + } + return this; + }, + + zoneAbbr : function () { + return this._isUTC ? 'UTC' : ''; + }, + + zoneName : function () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + }, + + parseZone : function () { + if (this._tzm) { + this.zone(this._tzm); + } else if (typeof this._i === 'string') { + this.zone(this._i); + } + return this; + }, + + hasAlignedHourOffset : function (input) { + if (!input) { + input = 0; + } + else { + input = moment(input).zone(); + } + + return (this.zone() - input) % 60 === 0; + }, + + daysInMonth : function () { + return daysInMonth(this.year(), this.month()); + }, + + dayOfYear : function (input) { + var dayOfYear = round((moment(this).startOf('day') - moment(this).startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + }, + + quarter : function (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + }, + + weekYear : function (input) { + var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year; + return input == null ? year : this.add((input - year), 'y'); + }, + + isoWeekYear : function (input) { + var year = weekOfYear(this, 1, 4).year; + return input == null ? year : this.add((input - year), 'y'); + }, + + week : function (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + }, + + isoWeek : function (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + }, + + weekday : function (input) { + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + }, + + isoWeekday : function (input) { + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); + }, + + isoWeeksInYear : function () { + return weeksInYear(this.year(), 1, 4); + }, + + weeksInYear : function () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + }, + + get : function (units) { + units = normalizeUnits(units); + return this[units](); + }, + + set : function (units, value) { + units = normalizeUnits(units); + if (typeof this[units] === 'function') { + this[units](value); + } + return this; + }, + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + locale : function (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = moment.localeData(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + }, + + lang : deprecate( + 'moment().lang() is deprecated. Use moment().localeData() instead.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ), + + localeData : function () { + return this._locale; + }, + + _dateTzOffset : function () { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return Math.round(this._d.getTimezoneOffset() / 15) * 15; + } + }); + + function rawMonthSetter(mom, value) { + var dayOfMonth; + + // TODO: Move this out of here! + if (typeof value === 'string') { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (typeof value !== 'number') { + return mom; + } + } + + dayOfMonth = Math.min(mom.date(), + daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function rawGetter(mom, unit) { + return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit](); + } + + function rawSetter(mom, unit, value) { + if (unit === 'Month') { + return rawMonthSetter(mom, value); + } else { + return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + + function makeAccessor(unit, keepTime) { + return function (value) { + if (value != null) { + rawSetter(this, unit, value); + moment.updateOffset(this, keepTime); + return this; + } else { + return rawGetter(this, unit); + } + }; + } + + moment.fn.millisecond = moment.fn.milliseconds = makeAccessor('Milliseconds', false); + moment.fn.second = moment.fn.seconds = makeAccessor('Seconds', false); + moment.fn.minute = moment.fn.minutes = makeAccessor('Minutes', false); + // Setting the hour should keep the time, because the user explicitly + // specified which hour he wants. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + moment.fn.hour = moment.fn.hours = makeAccessor('Hours', true); + // moment.fn.month is defined separately + moment.fn.date = makeAccessor('Date', true); + moment.fn.dates = deprecate('dates accessor is deprecated. Use date instead.', makeAccessor('Date', true)); + moment.fn.year = makeAccessor('FullYear', true); + moment.fn.years = deprecate('years accessor is deprecated. Use year instead.', makeAccessor('FullYear', true)); + + // add plural methods + moment.fn.days = moment.fn.day; + moment.fn.months = moment.fn.month; + moment.fn.weeks = moment.fn.week; + moment.fn.isoWeeks = moment.fn.isoWeek; + moment.fn.quarters = moment.fn.quarter; + + // add aliased format methods + moment.fn.toJSON = moment.fn.toISOString; + + /************************************ + Duration Prototype + ************************************/ + + + function daysToYears (days) { + // 400 years have 146097 days (taking into account leap year rules) + return days * 400 / 146097; + } + + function yearsToDays (years) { + // years * 365 + absRound(years / 4) - + // absRound(years / 100) + absRound(years / 400); + return years * 146097 / 400; + } + + extend(moment.duration.fn = Duration.prototype, { + + _bubble : function () { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, minutes, hours, years = 0; + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absRound(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absRound(seconds / 60); + data.minutes = minutes % 60; + + hours = absRound(minutes / 60); + data.hours = hours % 24; + + days += absRound(hours / 24); + + // Accurately convert days to years, assume start from year 0. + years = absRound(daysToYears(days)); + days -= absRound(yearsToDays(years)); + + // 30 days to a month + // TODO (iskren): Use anchor date (like 1st Jan) to compute this. + months += absRound(days / 30); + days %= 30; + + // 12 months -> 1 year + years += absRound(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + }, + + abs : function () { + this._milliseconds = Math.abs(this._milliseconds); + this._days = Math.abs(this._days); + this._months = Math.abs(this._months); + + this._data.milliseconds = Math.abs(this._data.milliseconds); + this._data.seconds = Math.abs(this._data.seconds); + this._data.minutes = Math.abs(this._data.minutes); + this._data.hours = Math.abs(this._data.hours); + this._data.months = Math.abs(this._data.months); + this._data.years = Math.abs(this._data.years); + + return this; + }, + + weeks : function () { + return absRound(this.days() / 7); + }, + + valueOf : function () { + return this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6; + }, + + humanize : function (withSuffix) { + var output = relativeTime(this, !withSuffix, this.localeData()); + + if (withSuffix) { + output = this.localeData().pastFuture(+this, output); + } + + return this.localeData().postformat(output); + }, + + add : function (input, val) { + // supports only 2.0-style add(1, 's') or add(moment) + var dur = moment.duration(input, val); + + this._milliseconds += dur._milliseconds; + this._days += dur._days; + this._months += dur._months; + + this._bubble(); + + return this; + }, + + subtract : function (input, val) { + var dur = moment.duration(input, val); + + this._milliseconds -= dur._milliseconds; + this._days -= dur._days; + this._months -= dur._months; + + this._bubble(); + + return this; + }, + + get : function (units) { + units = normalizeUnits(units); + return this[units.toLowerCase() + 's'](); + }, + + as : function (units) { + var days, months; + units = normalizeUnits(units); + + if (units === 'month' || units === 'year') { + days = this._days + this._milliseconds / 864e5; + months = this._months + daysToYears(days) * 12; + return units === 'month' ? months : months / 12; + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + yearsToDays(this._months / 12); + switch (units) { + case 'week': return days / 7 + this._milliseconds / 6048e5; + case 'day': return days + this._milliseconds / 864e5; + case 'hour': return days * 24 + this._milliseconds / 36e5; + case 'minute': return days * 24 * 60 + this._milliseconds / 6e4; + case 'second': return days * 24 * 60 * 60 + this._milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 24 * 60 * 60 * 1000) + this._milliseconds; + default: throw new Error('Unknown unit ' + units); + } + } + }, + + lang : moment.fn.lang, + locale : moment.fn.locale, + + toIsoString : deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead ' + + '(notice the capitals)', + function () { + return this.toISOString(); + } + ), + + toISOString : function () { + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var years = Math.abs(this.years()), + months = Math.abs(this.months()), + days = Math.abs(this.days()), + hours = Math.abs(this.hours()), + minutes = Math.abs(this.minutes()), + seconds = Math.abs(this.seconds() + this.milliseconds() / 1000); + + if (!this.asSeconds()) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + return (this.asSeconds() < 0 ? '-' : '') + + 'P' + + (years ? years + 'Y' : '') + + (months ? months + 'M' : '') + + (days ? days + 'D' : '') + + ((hours || minutes || seconds) ? 'T' : '') + + (hours ? hours + 'H' : '') + + (minutes ? minutes + 'M' : '') + + (seconds ? seconds + 'S' : ''); + }, + + localeData : function () { + return this._locale; + } + }); + + moment.duration.fn.toString = moment.duration.fn.toISOString; + + function makeDurationGetter(name) { + moment.duration.fn[name] = function () { + return this._data[name]; + }; + } + + for (i in unitMillisecondFactors) { + if (hasOwnProp(unitMillisecondFactors, i)) { + makeDurationGetter(i.toLowerCase()); + } + } + + moment.duration.fn.asMilliseconds = function () { + return this.as('ms'); + }; + moment.duration.fn.asSeconds = function () { + return this.as('s'); + }; + moment.duration.fn.asMinutes = function () { + return this.as('m'); + }; + moment.duration.fn.asHours = function () { + return this.as('h'); + }; + moment.duration.fn.asDays = function () { + return this.as('d'); + }; + moment.duration.fn.asWeeks = function () { + return this.as('weeks'); + }; + moment.duration.fn.asMonths = function () { + return this.as('M'); + }; + moment.duration.fn.asYears = function () { + return this.as('y'); + }; + + /************************************ + Default Locale + ************************************/ + + + // Set default locale, other locale will inherit from English. + moment.locale('en', { + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + /* EMBED_LOCALES */ + + /************************************ + Exposing Moment + ************************************/ + + function makeGlobal(shouldDeprecate) { + /*global ender:false */ + if (typeof ender !== 'undefined') { + return; + } + oldGlobalMoment = globalScope.moment; + if (shouldDeprecate) { + globalScope.moment = deprecate( + 'Accessing Moment through the global scope is ' + + 'deprecated, and will be removed in an upcoming ' + + 'release.', + moment); + } else { + globalScope.moment = moment; + } + } + + // CommonJS module is defined + if (hasModule) { + module.exports = moment; + } else if (typeof define === 'function' && define.amd) { + define('moment', function (require, exports, module) { + if (module.config && module.config() && module.config().noGlobal === true) { + // release the global variable + globalScope.moment = oldGlobalMoment; + } + + return moment; + }); + makeGlobal(true); + } else { + makeGlobal(); + } +}).call(this); diff --git a/Resources/public/pikaday.js b/Resources/public/pikaday.js new file mode 100644 index 000000000..4d74cebfa --- /dev/null +++ b/Resources/public/pikaday.js @@ -0,0 +1,920 @@ +/*! + * Pikaday + * + * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/dbushell/Pikaday + */ + +(function (root, factory) +{ + 'use strict'; + + var moment; + if (typeof exports === 'object') { + // CommonJS module + // Load moment.js as an optional dependency + try { moment = require('moment'); } catch (e) {} + module.exports = factory(moment); + } else if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(function (req) + { + // Load moment.js as an optional dependency + var id = 'moment'; + moment = req.defined && req.defined(id) ? req(id) : undefined; + return factory(moment); + }); + } else { + root.Pikaday = factory(root.moment); + } +}(this, function (moment) +{ + 'use strict'; + + /** + * feature detection and helper functions + */ + var hasMoment = typeof moment === 'function', + + hasEventListeners = !!window.addEventListener, + + document = window.document, + + sto = window.setTimeout, + + addEvent = function(el, e, callback, capture) + { + if (hasEventListeners) { + el.addEventListener(e, callback, !!capture); + } else { + el.attachEvent('on' + e, callback); + } + }, + + removeEvent = function(el, e, callback, capture) + { + if (hasEventListeners) { + el.removeEventListener(e, callback, !!capture); + } else { + el.detachEvent('on' + e, callback); + } + }, + + fireEvent = function(el, eventName, data) + { + var ev; + + if (document.createEvent) { + ev = document.createEvent('HTMLEvents'); + ev.initEvent(eventName, true, false); + ev = extend(ev, data); + el.dispatchEvent(ev); + } else if (document.createEventObject) { + ev = document.createEventObject(); + ev = extend(ev, data); + el.fireEvent('on' + eventName, ev); + } + }, + + trim = function(str) + { + return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g,''); + }, + + hasClass = function(el, cn) + { + return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1; + }, + + addClass = function(el, cn) + { + if (!hasClass(el, cn)) { + el.className = (el.className === '') ? cn : el.className + ' ' + cn; + } + }, + + removeClass = function(el, cn) + { + el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' ')); + }, + + isArray = function(obj) + { + return (/Array/).test(Object.prototype.toString.call(obj)); + }, + + isDate = function(obj) + { + return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime()); + }, + + isLeapYear = function(year) + { + // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951 + return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; + }, + + getDaysInMonth = function(year, month) + { + return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; + }, + + setToStartOfDay = function(date) + { + if (isDate(date)) date.setHours(0,0,0,0); + }, + + compareDates = function(a,b) + { + // weak date comparison (use setToStartOfDay(date) to ensure correct result) + return a.getTime() === b.getTime(); + }, + + extend = function(to, from, overwrite) + { + var prop, hasProp; + for (prop in from) { + hasProp = to[prop] !== undefined; + if (hasProp && typeof from[prop] === 'object' && from[prop].nodeName === undefined) { + if (isDate(from[prop])) { + if (overwrite) { + to[prop] = new Date(from[prop].getTime()); + } + } + else if (isArray(from[prop])) { + if (overwrite) { + to[prop] = from[prop].slice(0); + } + } else { + to[prop] = extend({}, from[prop], overwrite); + } + } else if (overwrite || !hasProp) { + to[prop] = from[prop]; + } + } + return to; + }, + + + /** + * defaults and localisation + */ + defaults = { + + // bind the picker to a form field + field: null, + + // automatically show/hide the picker on `field` focus (default `true` if `field` is set) + bound: undefined, + + // position of the datepicker, relative to the field (default to bottom & left) + // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position) + position: 'bottom left', + + // the default output format for `.toString()` and `field` value + format: 'YYYY-MM-DD', + + // the initial date to view when first opened + defaultDate: null, + + // make the `defaultDate` the initial selected value + setDefaultDate: false, + + // first day of week (0: Sunday, 1: Monday etc) + firstDay: 0, + + // the minimum/earliest date that can be selected + minDate: null, + // the maximum/latest date that can be selected + maxDate: null, + + // number of years either side, or array of upper/lower range + yearRange: 10, + + // used internally (don't config outside) + minYear: 0, + maxYear: 9999, + minMonth: undefined, + maxMonth: undefined, + + isRTL: false, + + // Additional text to append to the year in the calendar title + yearSuffix: '', + + // Render the month after year in the calendar title + showMonthAfterYear: false, + + // how many months are visible (not implemented yet) + numberOfMonths: 1, + + // internationalization + i18n: { + previousMonth : 'Previous Month', + nextMonth : 'Next Month', + months : ['January','February','March','April','May','June','July','August','September','October','November','December'], + weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'], + weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'] + }, + + // callback function + onSelect: null, + onOpen: null, + onClose: null, + onDraw: null + }, + + + /** + * templating functions to abstract HTML rendering + */ + renderDayName = function(opts, day, abbr) + { + day += opts.firstDay; + while (day >= 7) { + day -= 7; + } + return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day]; + }, + + renderDay = function(i, isSelected, isToday, isDisabled, isEmpty) + { + if (isEmpty) { + return ''; + } + var arr = []; + if (isDisabled) { + arr.push('is-disabled'); + } + if (isToday) { + arr.push('is-today'); + } + if (isSelected) { + arr.push('is-selected'); + } + return '' + ''; + }, + + renderRow = function(days, isRTL) + { + return '' + (isRTL ? days.reverse() : days).join('') + ''; + }, + + renderBody = function(rows) + { + return '' + rows.join('') + ''; + }, + + renderHead = function(opts) + { + var i, arr = []; + for (i = 0; i < 7; i++) { + arr.push('' + renderDayName(opts, i, true) + ''); + } + return '' + (opts.isRTL ? arr.reverse() : arr).join('') + ''; + }, + + renderTitle = function(instance) + { + var i, j, arr, + opts = instance._o, + month = instance._m, + year = instance._y, + isMinYear = year === opts.minYear, + isMaxYear = year === opts.maxYear, + html = '
', + monthHtml, + yearHtml, + prev = true, + next = true; + + for (arr = [], i = 0; i < 12; i++) { + arr.push(''); + } + monthHtml = '
' + opts.i18n.months[month] + '
'; + + if (isArray(opts.yearRange)) { + i = opts.yearRange[0]; + j = opts.yearRange[1] + 1; + } else { + i = year - opts.yearRange; + j = 1 + year + opts.yearRange; + } + + for (arr = []; i < j && i <= opts.maxYear; i++) { + if (i >= opts.minYear) { + arr.push(''); + } + } + yearHtml = '
' + year + opts.yearSuffix + '
'; + + if (opts.showMonthAfterYear) { + html += yearHtml + monthHtml; + } else { + html += monthHtml + yearHtml; + } + + if (isMinYear && (month === 0 || opts.minMonth >= month)) { + prev = false; + } + + if (isMaxYear && (month === 11 || opts.maxMonth <= month)) { + next = false; + } + + html += ''; + html += ''; + + return html += '
'; + }, + + renderTable = function(opts, data) + { + return '' + renderHead(opts) + renderBody(data) + '
'; + }, + + + /** + * Pikaday constructor + */ + Pikaday = function(options) + { + var self = this, + opts = self.config(options); + + self._onMouseDown = function(e) + { + if (!self._v) { + return; + } + e = e || window.event; + var target = e.target || e.srcElement; + if (!target) { + return; + } + + if (!hasClass(target, 'is-disabled')) { + if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty')) { + self.setDate(new Date(self._y, self._m, parseInt(target.innerHTML, 10))); + if (opts.bound) { + sto(function() { + self.hide(); + }, 100); + } + return; + } + else if (hasClass(target, 'pika-prev')) { + self.prevMonth(); + } + else if (hasClass(target, 'pika-next')) { + self.nextMonth(); + } + } + if (!hasClass(target, 'pika-select')) { + if (e.preventDefault) { + e.preventDefault(); + } else { + e.returnValue = false; + return false; + } + } else { + self._c = true; + } + }; + + self._onChange = function(e) + { + e = e || window.event; + var target = e.target || e.srcElement; + if (!target) { + return; + } + if (hasClass(target, 'pika-select-month')) { + self.gotoMonth(target.value); + } + else if (hasClass(target, 'pika-select-year')) { + self.gotoYear(target.value); + } + }; + + self._onInputChange = function(e) + { + var date; + + if (e.firedBy === self) { + return; + } + if (hasMoment) { + date = moment(opts.field.value, opts.format); + date = (date && date.isValid()) ? date.toDate() : null; + } + else { + date = new Date(Date.parse(opts.field.value)); + } + self.setDate(isDate(date) ? date : null); + if (!self._v) { + self.show(); + } + }; + + self._onInputFocus = function() + { + self.show(); + }; + + self._onInputClick = function() + { + self.show(); + }; + + self._onInputBlur = function() + { + if (!self._c) { + self._b = sto(function() { + self.hide(); + }, 50); + } + self._c = false; + }; + + self._onClick = function(e) + { + e = e || window.event; + var target = e.target || e.srcElement, + pEl = target; + if (!target) { + return; + } + if (!hasEventListeners && hasClass(target, 'pika-select')) { + if (!target.onchange) { + target.setAttribute('onchange', 'return;'); + addEvent(target, 'change', self._onChange); + } + } + do { + if (hasClass(pEl, 'pika-single')) { + return; + } + } + while ((pEl = pEl.parentNode)); + if (self._v && target !== opts.trigger) { + self.hide(); + } + }; + + self.el = document.createElement('div'); + self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : ''); + + addEvent(self.el, 'mousedown', self._onMouseDown, true); + addEvent(self.el, 'change', self._onChange); + + if (opts.field) { + if (opts.bound) { + document.body.appendChild(self.el); + } else { + opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling); + } + addEvent(opts.field, 'change', self._onInputChange); + + if (!opts.defaultDate) { + if (hasMoment && opts.field.value) { + opts.defaultDate = moment(opts.field.value, opts.format).toDate(); + } else { + opts.defaultDate = new Date(Date.parse(opts.field.value)); + } + opts.setDefaultDate = true; + } + } + + var defDate = opts.defaultDate; + + if (isDate(defDate)) { + if (opts.setDefaultDate) { + self.setDate(defDate, true); + } else { + self.gotoDate(defDate); + } + } else { + self.gotoDate(new Date()); + } + + if (opts.bound) { + this.hide(); + self.el.className += ' is-bound'; + addEvent(opts.trigger, 'click', self._onInputClick); + addEvent(opts.trigger, 'focus', self._onInputFocus); + addEvent(opts.trigger, 'blur', self._onInputBlur); + } else { + this.show(); + } + + }; + + + /** + * public Pikaday API + */ + Pikaday.prototype = { + + + /** + * configure functionality + */ + config: function(options) + { + if (!this._o) { + this._o = extend({}, defaults, true); + } + + var opts = extend(this._o, options, true); + + opts.isRTL = !!opts.isRTL; + + opts.field = (opts.field && opts.field.nodeName) ? opts.field : null; + + opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field); + + opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field; + + var nom = parseInt(opts.numberOfMonths, 10) || 1; + opts.numberOfMonths = nom > 4 ? 4 : nom; + + if (!isDate(opts.minDate)) { + opts.minDate = false; + } + if (!isDate(opts.maxDate)) { + opts.maxDate = false; + } + if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) { + opts.maxDate = opts.minDate = false; + } + if (opts.minDate) { + setToStartOfDay(opts.minDate); + opts.minYear = opts.minDate.getFullYear(); + opts.minMonth = opts.minDate.getMonth(); + } + if (opts.maxDate) { + setToStartOfDay(opts.maxDate); + opts.maxYear = opts.maxDate.getFullYear(); + opts.maxMonth = opts.maxDate.getMonth(); + } + + if (isArray(opts.yearRange)) { + var fallback = new Date().getFullYear() - 10; + opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback; + opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback; + } else { + opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange; + if (opts.yearRange > 100) { + opts.yearRange = 100; + } + } + + return opts; + }, + + /** + * return a formatted string of the current selection (using Moment.js if available) + */ + toString: function(format) + { + return !isDate(this._d) ? '' : hasMoment ? moment(this._d).format(format || this._o.format) : this._d.toDateString(); + }, + + /** + * return a Moment.js object of the current selection (if available) + */ + getMoment: function() + { + return hasMoment ? moment(this._d) : null; + }, + + /** + * set the current selection from a Moment.js object (if available) + */ + setMoment: function(date, preventOnSelect) + { + if (hasMoment && moment.isMoment(date)) { + this.setDate(date.toDate(), preventOnSelect); + } + }, + + /** + * return a Date object of the current selection + */ + getDate: function() + { + return isDate(this._d) ? new Date(this._d.getTime()) : null; + }, + + /** + * set the current selection + */ + setDate: function(date, preventOnSelect) + { + if (!date) { + this._d = null; + return this.draw(); + } + if (typeof date === 'string') { + date = new Date(Date.parse(date)); + } + if (!isDate(date)) { + return; + } + + var min = this._o.minDate, + max = this._o.maxDate; + + if (isDate(min) && date < min) { + date = min; + } else if (isDate(max) && date > max) { + date = max; + } + + this._d = new Date(date.getTime()); + setToStartOfDay(this._d); + this.gotoDate(this._d); + + if (this._o.field) { + this._o.field.value = this.toString(); + fireEvent(this._o.field, 'change', { firedBy: this }); + } + if (!preventOnSelect && typeof this._o.onSelect === 'function') { + this._o.onSelect.call(this, this.getDate()); + } + }, + + /** + * change view to a specific date + */ + gotoDate: function(date) + { + if (!isDate(date)) { + return; + } + this._y = date.getFullYear(); + this._m = date.getMonth(); + this.draw(); + }, + + gotoToday: function() + { + this.gotoDate(new Date()); + }, + + /** + * change view to a specific month (zero-index, e.g. 0: January) + */ + gotoMonth: function(month) + { + if (!isNaN( (month = parseInt(month, 10)) )) { + this._m = month < 0 ? 0 : month > 11 ? 11 : month; + this.draw(); + } + }, + + nextMonth: function() + { + if (++this._m > 11) { + this._m = 0; + this._y++; + } + this.draw(); + }, + + prevMonth: function() + { + if (--this._m < 0) { + this._m = 11; + this._y--; + } + this.draw(); + }, + + /** + * change view to a specific full year (e.g. "2012") + */ + gotoYear: function(year) + { + if (!isNaN(year)) { + this._y = parseInt(year, 10); + this.draw(); + } + }, + + /** + * change the minDate + */ + setMinDate: function(value) + { + this._o.minDate = value; + }, + + /** + * change the maxDate + */ + setMaxDate: function(value) + { + this._o.maxDate = value; + }, + + /** + * refresh the HTML + */ + draw: function(force) + { + if (!this._v && !force) { + return; + } + var opts = this._o, + minYear = opts.minYear, + maxYear = opts.maxYear, + minMonth = opts.minMonth, + maxMonth = opts.maxMonth; + + if (this._y <= minYear) { + this._y = minYear; + if (!isNaN(minMonth) && this._m < minMonth) { + this._m = minMonth; + } + } + if (this._y >= maxYear) { + this._y = maxYear; + if (!isNaN(maxMonth) && this._m > maxMonth) { + this._m = maxMonth; + } + } + + this.el.innerHTML = renderTitle(this) + this.render(this._y, this._m); + + if (opts.bound) { + this.adjustPosition(); + if(opts.field.type !== 'hidden') { + sto(function() { + opts.trigger.focus(); + }, 1); + } + } + + if (typeof this._o.onDraw === 'function') { + var self = this; + sto(function() { + self._o.onDraw.call(self); + }, 0); + } + }, + + adjustPosition: function() + { + var field = this._o.trigger, pEl = field, + width = this.el.offsetWidth, height = this.el.offsetHeight, + viewportWidth = window.innerWidth || document.documentElement.clientWidth, + viewportHeight = window.innerHeight || document.documentElement.clientHeight, + scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop, + left, top, clientRect; + + if (typeof field.getBoundingClientRect === 'function') { + clientRect = field.getBoundingClientRect(); + left = clientRect.left + window.pageXOffset; + top = clientRect.bottom + window.pageYOffset; + } else { + left = pEl.offsetLeft; + top = pEl.offsetTop + pEl.offsetHeight; + while((pEl = pEl.offsetParent)) { + left += pEl.offsetLeft; + top += pEl.offsetTop; + } + } + + // default position is bottom & left + if (left + width > viewportWidth || + ( + this._o.position.indexOf('right') > -1 && + left - width + field.offsetWidth > 0 + ) + ) { + left = left - width + field.offsetWidth; + } + if (top + height > viewportHeight + scrollTop || + ( + this._o.position.indexOf('top') > -1 && + top - height - field.offsetHeight > 0 + ) + ) { + top = top - height - field.offsetHeight; + } + this.el.style.cssText = [ + 'position: absolute', + 'left: ' + left + 'px', + 'top: ' + top + 'px' + ].join(';'); + }, + + /** + * render HTML for a particular month + */ + render: function(year, month) + { + var opts = this._o, + now = new Date(), + days = getDaysInMonth(year, month), + before = new Date(year, month, 1).getDay(), + data = [], + row = []; + setToStartOfDay(now); + if (opts.firstDay > 0) { + before -= opts.firstDay; + if (before < 0) { + before += 7; + } + } + var cells = days + before, + after = cells; + while(after > 7) { + after -= 7; + } + cells += 7 - after; + for (var i = 0, r = 0; i < cells; i++) + { + var day = new Date(year, month, 1 + (i - before)), + isDisabled = (opts.minDate && day < opts.minDate) || (opts.maxDate && day > opts.maxDate), + isSelected = isDate(this._d) ? compareDates(day, this._d) : false, + isToday = compareDates(day, now), + isEmpty = i < before || i >= (days + before); + + row.push(renderDay(1 + (i - before), isSelected, isToday, isDisabled, isEmpty)); + + if (++r === 7) { + data.push(renderRow(row, opts.isRTL)); + row = []; + r = 0; + } + } + return renderTable(opts, data); + }, + + isVisible: function() + { + return this._v; + }, + + show: function() + { + if (!this._v) { + if (this._o.bound) { + addEvent(document, 'click', this._onClick); + } + removeClass(this.el, 'is-hidden'); + this._v = true; + this.draw(); + if (typeof this._o.onOpen === 'function') { + this._o.onOpen.call(this); + } + } + }, + + hide: function() + { + var v = this._v; + if (v !== false) { + if (this._o.bound) { + removeEvent(document, 'click', this._onClick); + } + this.el.style.cssText = ''; + addClass(this.el, 'is-hidden'); + this._v = false; + if (v !== undefined && typeof this._o.onClose === 'function') { + this._o.onClose.call(this); + } + } + }, + + /** + * GAME OVER + */ + destroy: function() + { + this.hide(); + removeEvent(this.el, 'mousedown', this._onMouseDown, true); + removeEvent(this.el, 'change', this._onChange); + if (this._o.field) { + removeEvent(this._o.field, 'change', this._onInputChange); + if (this._o.bound) { + removeEvent(this._o.trigger, 'click', this._onInputClick); + removeEvent(this._o.trigger, 'focus', this._onInputFocus); + removeEvent(this._o.trigger, 'blur', this._onInputBlur); + } + } + if (this.el.parentNode) { + this.el.parentNode.removeChild(this.el); + } + } + + }; + + return Pikaday; + +})); diff --git a/Resources/public/plugins/pikaday.jquery.js b/Resources/public/plugins/pikaday.jquery.js new file mode 100644 index 000000000..a95ddc59b --- /dev/null +++ b/Resources/public/plugins/pikaday.jquery.js @@ -0,0 +1,52 @@ +/*! + * Pikaday jQuery plugin. + * + * Copyright © 2013 David Bushell | BSD & MIT license | https://github.com/dbushell/Pikaday + */ + +(function (root, factory) +{ + 'use strict'; + + if (typeof exports === 'object') { + // CommonJS module + factory(require('jquery'), require('../pikaday')); + } else if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['jquery', 'pikaday'], factory); + } else { + // Browser globals + factory(root.jQuery, root.Pikaday); + } +}(this, function ($, Pikaday) +{ + 'use strict'; + + $.fn.pikaday = function() + { + var args = arguments; + + if (!args || !args.length) { + args = [{ }]; + } + + return this.each(function() + { + var self = $(this), + plugin = self.data('pikaday'); + + if (!(plugin instanceof Pikaday)) { + if (typeof args[0] === 'object') { + var options = $.extend({}, args[0]); + options.field = self[0]; + self.data('pikaday', new Pikaday(options)); + } + } else { + if (typeof args[0] === 'string' && typeof plugin[args[0]] === 'function') { + plugin[args[0]].apply(plugin, Array.prototype.slice.call(args,1)); + } + } + }); + }; + +})); diff --git a/Resources/public/stylesheets/sass/_custom.scss b/Resources/public/stylesheets/sass/_custom.scss index d4be817cf..83f23b42b 100644 --- a/Resources/public/stylesheets/sass/_custom.scss +++ b/Resources/public/stylesheets/sass/_custom.scss @@ -13,4 +13,4 @@ html,body { min-height:100%; } .subtitle { font-size: 1.5em; -} \ No newline at end of file +} diff --git a/Resources/public/stylesheets/scratch.css b/Resources/public/stylesheets/scratch.css index 5c350024d..507e5df05 100644 --- a/Resources/public/stylesheets/scratch.css +++ b/Resources/public/stylesheets/scratch.css @@ -2019,9 +2019,12 @@ th { content: ""; } /* etrange pour les forms */ -*, *:before, *:after { +* { box-sizing: inherit; } +html { + box-sizing: border-box; } + .container:after { content: ""; display: table; @@ -2807,7 +2810,7 @@ form li label { display: inline-block; font-weight: normal; } -.button { +.sc-button { color: #000; background: #d9d9d9; border: medium none; @@ -2823,18 +2826,18 @@ form li label { border-top-right-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; } - .button:hover, .button:active { + .sc-button:hover, .sc-button:active { background: #cccccc; color: #000; text-decoration: none; } - .button:focus { + .sc-button:focus { background: #cccccc; } - .button[disabled] { + .sc-button[disabled] { background: rgba(217, 217, 217, 0.6); color: #bfbfbf; } - .button[disabled]:hover { + .sc-button[disabled]:hover { box-shadow: none; } - .button.blue { + .sc-button.blue { color: #fff; background: #2980b9; border: medium none; @@ -2850,18 +2853,18 @@ form li label { border-top-right-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; } - .button.blue:hover, .button.blue:active { + .sc-button.blue:hover, .sc-button.blue:active { background: #2472a4; color: #fff; text-decoration: none; } - .button.blue:focus { + .sc-button.blue:focus { background: #2472a4; } - .button.blue[disabled] { + .sc-button.blue[disabled] { background: rgba(41, 128, 185, 0.6); color: #20638f; } - .button.blue[disabled]:hover { + .sc-button.blue[disabled]:hover { box-shadow: none; } - .button.green { + .sc-button.green { color: #fff; background: #4a9b17; border: medium none; @@ -2877,18 +2880,18 @@ form li label { border-top-right-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; } - .button.green:hover, .button.green:active { + .sc-button.green:hover, .sc-button.green:active { background: #3f8514; color: #fff; text-decoration: none; } - .button.green:focus { + .sc-button.green:focus { background: #3f8514; } - .button.green[disabled] { + .sc-button.green[disabled] { background: rgba(74, 155, 23, 0.6); color: #356f10; } - .button.green[disabled]:hover { + .sc-button.green[disabled]:hover { box-shadow: none; } - .button.orange { + .sc-button.orange { color: #fff; background: #ff9c00; border: medium none; @@ -2904,18 +2907,18 @@ form li label { border-top-right-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; } - .button.orange:hover, .button.orange:active { + .sc-button.orange:hover, .sc-button.orange:active { background: #e68c00; color: #fff; text-decoration: none; } - .button.orange:focus { + .sc-button.orange:focus { background: #e68c00; } - .button.orange[disabled] { + .sc-button.orange[disabled] { background: rgba(255, 156, 0, 0.6); color: #cc7d00; } - .button.orange[disabled]:hover { + .sc-button.orange[disabled]:hover { box-shadow: none; } - .button.red { + .sc-button.red { color: #fff; background: #c91111; border: medium none; @@ -2931,18 +2934,18 @@ form li label { border-top-right-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; } - .button.red:hover, .button.red:active { + .sc-button.red:hover, .sc-button.red:active { background: #b10f0f; color: #fff; text-decoration: none; } - .button.red:focus { + .sc-button.red:focus { background: #b10f0f; } - .button.red[disabled] { + .sc-button.red[disabled] { background: rgba(201, 17, 17, 0.6); color: #9a0d0d; } - .button.red[disabled]:hover { + .sc-button.red[disabled]:hover { box-shadow: none; } - .button.black { + .sc-button.black { color: #fff; background: #1a1a1a; border: medium none; @@ -2958,18 +2961,18 @@ form li label { border-top-right-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; } - .button.black:hover, .button.black:active { + .sc-button.black:hover, .sc-button.black:active { background: #0d0d0d; color: #fff; text-decoration: none; } - .button.black:focus { + .sc-button.black:focus { background: #0d0d0d; } - .button.black[disabled] { + .sc-button.black[disabled] { background: rgba(26, 26, 26, 0.6); color: black; } - .button.black[disabled]:hover { + .sc-button.black[disabled]:hover { box-shadow: none; } - .button.white { + .sc-button.white { color: #555; background: #fff; border: medium none; @@ -2985,16 +2988,16 @@ form li label { border-top-right-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; } - .button.white:hover, .button.white:active { + .sc-button.white:hover, .sc-button.white:active { background: #f2f2f2; color: #555; text-decoration: none; } - .button.white:focus { + .sc-button.white:focus { background: #f2f2f2; } - .button.white[disabled] { + .sc-button.white[disabled] { background: rgba(255, 255, 255, 0.6); color: #e6e6e6; } - .button.white[disabled]:hover { + .sc-button.white[disabled]:hover { box-shadow: none; } /* Tabs */ diff --git a/Resources/public/stylesheets/scratch.css.map b/Resources/public/stylesheets/scratch.css.map index 5d81ce08d..6f01a8a65 100644 --- a/Resources/public/stylesheets/scratch.css.map +++ b/Resources/public/stylesheets/scratch.css.map @@ -1,6 +1,6 @@ { "version": 3, -"mappings": "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", +"mappings": "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", "sources": ["sass/contrib/normalize/_normalize.scss","sass/contrib/fontawesome/_path.scss","sass/contrib/fontawesome/_core.scss","sass/contrib/fontawesome/_larger.scss","sass/contrib/fontawesome/_fixed-width.scss","sass/contrib/fontawesome/_list.scss","sass/contrib/fontawesome/_variables.scss","sass/contrib/fontawesome/_bordered-pulled.scss","sass/contrib/fontawesome/_spinning.scss","sass/contrib/fontawesome/_rotated-flipped.scss","sass/contrib/fontawesome/_mixins.scss","sass/contrib/fontawesome/_stacked.scss","sass/contrib/fontawesome/_icons.scss","sass/scratch.scss","sass/contrib/gridle/gridle/_silent-classes.scss","sass/contrib/gridle/gridle/_generate-mixins.scss","sass/contrib/gridle/gridle/_common-mixins.scss","sass/contrib/gridle/gridle/_mixins.scss","sass/modules/_typography.scss","sass/config/_colors.scss","sass/config/_variables.scss","sass/modules/_navigation.scss","sass/contrib/bourbon/addons/_position.scss","sass/modules/_footer.scss","sass/modules/_alerts.scss","sass/mixins/_alerts.scss","sass/modules/_forms.scss","sass/contrib/bourbon/addons/_prefixer.scss","sass/modules/_buttons.scss","sass/mixins/_buttons.scss","sass/config/_buttons.scss","sass/modules/_tabs.scss","sass/_custom.scss"], "names": [], "file": "scratch.css" diff --git a/Resources/views/layout.html.twig b/Resources/views/layout.html.twig index 32fc3ff90..28869b5fe 100644 --- a/Resources/views/layout.html.twig +++ b/Resources/views/layout.html.twig @@ -7,6 +7,7 @@ {% stylesheets output="css/all.css" filter="cssrewrite" "bundles/chillmain/stylesheets/scratch.css" "bundles/chillmain/css/chillmain.css" + "bundles/chillmain/css/pikaday.css" "bundles/chillmain/js/lib_jquery_ui_pickadate/jquery-ui-1.10.3.pickadate.css" %} {% endstylesheets %} @@ -16,35 +17,25 @@ {% javascripts output="js/libs.js" "bundles/chillmain/js/modernizr-2.6.2.min.js" "bundles/chillmain/js/jquery-2.0.2.min.js" + "bundles/chillmain/moment.js" + "bundles/chillmain/pikaday.js" + "bundles/chillmain/plugins/pikaday.jquery.js" "bundles/chillmain/js/lib_jquery_ui_pickadate/jquery-ui-1.10.3.pickadate.js" %} {% endjavascripts %} - - - - {# Flash messages ! - - {% if (app.session.flashbag.get('success').length > 0 - OR app.session.flashbag.get('danger').length > 0 - OR app.session.flashbag.get('info').length > 0 ) %}#} + {# Flash messages ! #}
{% for flashMessage in app.session.flashbag.get('success') %}
@@ -106,7 +93,6 @@
{% endfor %}
- {# {% endif %} #}
{% block content %} @@ -122,5 +108,20 @@

License AGPL

+ + + \ No newline at end of file