From e887f4775cab8a047cb5e139ced4c3ebaec38eab Mon Sep 17 00:00:00 2001 From: Sohit2001 <115885777+Sohit2001@users.noreply.github.com> Date: Sat, 15 Oct 2022 20:46:20 +0530 Subject: [PATCH] Create bulma.js calendar --- bulma.js | 419 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 419 insertions(+) create mode 100644 bulma.js diff --git a/bulma.js b/bulma.js new file mode 100644 index 0000000..9dd8a58 --- /dev/null +++ b/bulma.js @@ -0,0 +1,419 @@ +function parseYear (dateString, additionalDigits) { + var parseTokenYYY = parseTokensYYY[additionalDigits] + var parseTokenYYYYY = parseTokensYYYYY[additionalDigits] + + var token + + // YYYY or ±YYYYY + token = parseTokenYYYY.exec(dateString) || parseTokenYYYYY.exec(dateString) + if (token) { + var yearString = token[1] + return { + year: parseInt(yearString, 10), + restDateString: dateString.slice(yearString.length) + } + } + + // YY or ±YYY + token = parseTokenYY.exec(dateString) || parseTokenYYY.exec(dateString) + if (token) { + var centuryString = token[1] + return { + year: parseInt(centuryString, 10) * 100, + restDateString: dateString.slice(centuryString.length) + } + } + + // Invalid ISO-formatted year + return { + year: null + } +} + +function parseDate (dateString, year) { + // Invalid ISO-formatted year + if (year === null) { + return null + } + + var token + var date + var month + var week + + // YYYY + if (dateString.length === 0) { + date = new Date(0) + date.setUTCFullYear(year) + return date + } + + // YYYY-MM + token = parseTokenMM.exec(dateString) + if (token) { + date = new Date(0) + month = parseInt(token[1], 10) - 1 + date.setUTCFullYear(year, month) + return date + } + + // YYYY-DDD or YYYYDDD + token = parseTokenDDD.exec(dateString) + if (token) { + date = new Date(0) + var dayOfYear = parseInt(token[1], 10) + date.setUTCFullYear(year, 0, dayOfYear) + return date + } + + // YYYY-MM-DD or YYYYMMDD + token = parseTokenMMDD.exec(dateString) + if (token) { + date = new Date(0) + month = parseInt(token[1], 10) - 1 + var day = parseInt(token[2], 10) + date.setUTCFullYear(year, month, day) + return date + } + + // YYYY-Www or YYYYWww + token = parseTokenWww.exec(dateString) + if (token) { + week = parseInt(token[1], 10) - 1 + return dayOfISOYear(year, week) + } + + // YYYY-Www-D or YYYYWwwD + token = parseTokenWwwD.exec(dateString) + if (token) { + week = parseInt(token[1], 10) - 1 + var dayOfWeek = parseInt(token[2], 10) - 1 + return dayOfISOYear(year, week, dayOfWeek) + } + + // Invalid ISO-formatted date + return null +} + +function parseTime (timeString) { + var token + var hours + var minutes + + // hh + token = parseTokenHH.exec(timeString) + if (token) { + hours = parseFloat(token[1].replace(',', '.')) + return (hours % 24) * MILLISECONDS_IN_HOUR + } + + // hh:mm or hhmm + token = parseTokenHHMM.exec(timeString) + if (token) { + hours = parseInt(token[1], 10) + minutes = parseFloat(token[2].replace(',', '.')) + return (hours % 24) * MILLISECONDS_IN_HOUR + + minutes * MILLISECONDS_IN_MINUTE + } + + // hh:mm:ss or hhmmss + token = parseTokenHHMMSS.exec(timeString) + if (token) { + hours = parseInt(token[1], 10) + minutes = parseInt(token[2], 10) + var seconds = parseFloat(token[3].replace(',', '.')) + return (hours % 24) * MILLISECONDS_IN_HOUR + + minutes * MILLISECONDS_IN_MINUTE + + seconds * 1000 + } + + // Invalid ISO-formatted time + return null +} + +function parseTimezone (timezoneString) { + var token + var absoluteOffset + + // Z + token = parseTokenTimezoneZ.exec(timezoneString) + if (token) { + return 0 + } + + // ±hh + token = parseTokenTimezoneHH.exec(timezoneString) + if (token) { + absoluteOffset = parseInt(token[2], 10) * 60 + return (token[1] === '+') ? -absoluteOffset : absoluteOffset + } + + // ±hh:mm or ±hhmm + token = parseTokenTimezoneHHMM.exec(timezoneString) + if (token) { + absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10) + return (token[1] === '+') ? -absoluteOffset : absoluteOffset + } + + return 0 +} + +function dayOfISOYear (isoYear, week, day) { + week = week || 0 + day = day || 0 + var date = new Date(0) + date.setUTCFullYear(isoYear, 0, 4) + var fourthOfJanuaryDay = date.getUTCDay() || 7 + var diff = week * 7 + day + 1 - fourthOfJanuaryDay + date.setUTCDate(date.getUTCDate() + diff) + return date +} + +module.exports = parse + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/** + * @preserve date-and-time.js (c) KNOWLEDGECODE | MIT + */ +(function (global) { + 'use strict'; + + var date = {}, + lang = 'en', + locales = { + en: { + MMMM: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], + MMM: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dddd: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + ddd: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dd: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + A: ['a.m.', 'p.m.'], + formatter: { + YYYY: function (d/*, formatString*/) { return ('000' + d.getFullYear()).slice(-4); }, + YY: function (d/*, formatString*/) { return ('0' + d.getFullYear()).slice(-2); }, + Y: function (d/*, formatString*/) { return '' + d.getFullYear(); }, + MMMM: function (d/*, formatString*/) { return this.MMMM[d.getMonth()]; }, + MMM: function (d/*, formatString*/) { return this.MMM[d.getMonth()]; }, + MM: function (d/*, formatString*/) { return ('0' + (d.getMonth() + 1)).slice(-2); }, + M: function (d/*, formatString*/) { return '' + (d.getMonth() + 1); }, + DD: function (d/*, formatString*/) { return ('0' + d.getDate()).slice(-2); }, + D: function (d/*, formatString*/) { return '' + d.getDate(); }, + HH: function (d/*, formatString*/) { return ('0' + d.getHours()).slice(-2); }, + H: function (d/*, formatString*/) { return '' + d.getHours(); }, + A: function (d/*, formatString*/) { return this.A[d.getHours() > 11 | 0]; }, + hh: function (d/*, formatString*/) { return ('0' + (d.getHours() % 12 || 12)).slice(-2); }, + h: function (d/*, formatString*/) { return '' + (d.getHours() % 12 || 12); }, + mm: function (d/*, formatString*/) { return ('0' + d.getMinutes()).slice(-2); }, + m: function (d/*, formatString*/) { return '' + d.getMinutes(); }, + ss: function (d/*, formatString*/) { return ('0' + d.getSeconds()).slice(-2); }, + s: function (d/*, formatString*/) { return '' + d.getSeconds(); }, + SSS: function (d/*, formatString*/) { return ('00' + d.getMilliseconds()).slice(-3); }, + SS: function (d/*, formatString*/) { return ('0' + (d.getMilliseconds() / 10 | 0)).slice(-2); }, + S: function (d/*, formatString*/) { return '' + (d.getMilliseconds() / 100 | 0); }, + dddd: function (d/*, formatString*/) { return this.dddd[d.getDay()]; }, + ddd: function (d/*, formatString*/) { return this.ddd[d.getDay()]; }, + dd: function (d/*, formatString*/) { return this.dd[d.getDay()]; }, + Z: function (d/*, formatString*/) { + var offset = d.utc ? 0 : d.getTimezoneOffset() / 0.6; + return (offset > 0 ? '-' : '+') + ('000' + Math.abs(offset - offset % 100 * 0.4)).slice(-4); + }, + post: function (str) { return str; } + }, + parser: { + find: function (array, str) { + var index = -1, length = 0; + + for (var i = 0, len = array.length, item; i < len; i++) { + item = array[i]; + if (!str.indexOf(item) && item.length > length) { + index = i; + length = item.length; + } + } + return { index: index, length: length }; + }, + MMMM: function (str/*, formatString*/) { + return this.parser.find(this.MMMM, str); + }, + MMM: function (str/*, formatString*/) { + return this.parser.find(this.MMM, str); + }, + A: function (str/*, formatString*/) { + return this.parser.find(this.A, str); + }, + h: function (h, a) { return (h === 12 ? 0 : h) + a * 12; }, + pre: function (str) { return str; } + } + } + }; + + /** + * formatting a date + * @param {Object} dateObj - date object + * @param {String} formatString - format string + * @param {Boolean} [utc] - output as UTC + * @returns {String} the formatted string + */ + date.format = function (dateObj, formatString, utc) { + var d = date.addMinutes(dateObj, utc ? dateObj.getTimezoneOffset() : 0), + locale = locales[lang], formatter = locale.formatter; + + d.utc = utc; + return formatString.replace(/(\[[^\[\]]*]|\[.*\][^\[]*\]|YYYY|YY|MMM?M?|DD|HH|hh|mm|ss|SSS?|ddd?d?|.)/g, function (token) { + var format = formatter[token]; + return format ? formatter.post(format.call(locale, d, formatString)) : token.replace(/\[(.*)]/, '$1'); + }); + }; + + /** + * parsing a date string + * @param {String} dateString - date string + * @param {String} formatString - format string + * @param {Boolean} [utc] - input as UTC + * @returns {Object} the constructed date + */ + date.parse = function (dateString, formatString, utc) { + var locale = locales[lang], dString = locale.parser.pre(dateString), + offset = 0, keys, i, token, length, p, str, result, dateObj, + re = /(MMMM?|A)|(YYYY)|(SSS)|(MM|DD|HH|hh|mm|ss)|(YY|M|D|H|h|m|s|SS)|(S)|(.)/g, + exp = { 2: /^\d{1,4}/, 3: /^\d{1,3}/, 4: /^\d\d/, 5: /^\d\d?/, 6: /^\d/ }, + last = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + dt = { Y: 1970, M: 1, D: 1, H: 0, m: 0, s: 0, S: 0 }; + + while ((keys = re.exec(formatString))) { + for (i = 0, length = 1, token = ''; !token;) { + token = keys[++i]; + } + p = token.charAt(0); + str = dString.slice(offset); + if (i < 2) { + result = locale.parser[token].call(locale, str, formatString); + dt[p] = result.index; + if (p === 'M') { + dt[p]++; + } + length = result.length; + } else if (i < 7) { + result = (str.match(exp[i]) || [''])[0]; + dt[p] = (p === 'S' ? (result + '000').slice(0, -token.length) : result) | 0; + length = result.length; + } else if (p !== ' ' && p !== str[0]) { + return NaN; + } + if (!length) { + return NaN; + } + offset += length; + } + if (offset !== dString.length || !result) { + return NaN; + } + dt.Y += dt.Y < 70 ? 2000 : dt.Y < 100 ? 1900 : 0; + dt.H = dt.H || locale.parser.h(dt.h || 0, dt.A || 0); + + dateObj = new Date(dt.Y, dt.M - 1, dt.D, dt.H, dt.m, dt.s, dt.S); + last[1] += date.isLeapYear(dateObj) | 0; + if (dt.M < 1 || dt.M > 12 || dt.D < 1 || dt.D > last[dt.M - 1] || dt.H > 23 || dt.m > 59 || dt.s > 59) { + return NaN; + } + return utc ? date.addMinutes(dateObj, -dateObj.getTimezoneOffset()) : dateObj; + }; + + /** + * validation + * @param {String} dateString - date string + * @param {String} formatString - format string + * @returns {Boolean} whether the date string is a valid date + */ + date.isValid = function (dateString, formatString) { + return !!date.parse(dateString, formatString); + }; + + /** + * adding years + * @param {Object} dateObj - date object + * @param {Number} years - adding year + * @returns {Object} the date after adding the value + */ + date.addYears = function (dateObj, years) { + return date.addMonths(dateObj, years * 12); + }; + + /** + * adding months + * @param {Object} dateObj - date object + * @param {Number} months - adding month + * @returns {Object} the date after adding the value + */ + date.addMonths = function (dateObj, months) { + var d = new Date(dateObj.getTime()); + + d.setMonth(d.getMonth() + months); + return d; + }; + + /** + * adding days + * @param {Object} dateObj - date object + * @param {Number} days - adding day + * @returns {Object} the date after adding the value + */ + date.addDays = function (dateObj, days) { + var d = new Date(dateObj.getTime()); + + d.setDate(d.getDate() + days); + return d; + }; + + /** + * adding hours + * @param {Object} dateObj - date object + * @param {Number} hours - adding hour + * @returns {Object} the date after adding the value + */ + date.addHours = function (dateObj, hours) { + return date.addMilliseconds(dateObj, hours * 3600000); + }; + + /** + * adding minutes + * @param {Object} dateObj - date object + * @param {Number} minutes - adding minute + * @returns {Object} the date after adding the value + */ + date.addMinutes = function (dateObj, minutes) { + return date.addMilliseconds(dateObj, minutes * 60000); + }; + + /** + * adding seconds + * @param {Object} dateObj - date object + * @param {Number} seconds - adding second + * @returns {Object} the date after adding the value + */ + date.addSeconds = function (dateObj, seconds) { + return date.addMilliseconds(dateObj, seconds * 1000); + }; + + /** + * adding milliseconds + * @param {Object} dateObj - date object + * @param {Number} milliseconds - adding millisecond + * @returns {Object} the date after adding the value + */ + date.addMilliseconds = function (dateObj, milliseconds) { + return new Date(dateObj.getTime() + milliseconds); + }; + + /** + * subtracting + * @param {Object} date1 - date object + * @param {Object} date2 - date object + * @returns {Object} the result object after subtracting the date + */ + date.subtract = function (date1, date2) { + var delta = date1.getTime() - date2.getTime();