vuetify eingebunden + erster Versuch Combobox

This commit is contained in:
2019-04-17 15:58:15 +02:00
parent 24642ca1a8
commit 56f4a3f940
1846 changed files with 219701 additions and 53848 deletions
+117
View File
@@ -0,0 +1,117 @@
import { validateTimestamp, parseDate } from './timestamp';
export default {
base: {
start: {
type: String,
validate: validateTimestamp,
default: function _default() {
return parseDate(new Date()).date;
}
},
end: {
type: String,
validate: validateTimestamp,
default: '0000-00-00'
},
weekdays: {
type: Array,
default: function _default() {
return [0, 1, 2, 3, 4, 5, 6];
}
},
hideHeader: {
type: Boolean,
default: false
},
shortWeekdays: {
type: Boolean,
default: true
},
weekdayFormat: {
type: Function,
default: null
},
dayFormat: {
type: Function,
default: null
},
locale: {
type: String,
default: 'en-us'
}
},
intervals: {
maxDays: {
type: Number,
default: 7
},
shortIntervals: {
type: Boolean,
default: true
},
intervalHeight: {
type: [Number, String],
default: 40,
validate: validateNumber
},
intervalMinutes: {
type: [Number, String],
default: 60,
validate: validateNumber
},
firstInterval: {
type: [Number, String],
default: 0,
validate: validateNumber
},
intervalCount: {
type: [Number, String],
default: 24,
validate: validateNumber
},
intervalFormat: {
type: Function,
default: null
},
intervalStyle: {
type: Function,
default: null
},
showIntervalLabel: {
type: Function,
default: null
}
},
weeks: {
minWeeks: {
validate: validateNumber,
default: 1
},
shortMonths: {
type: Boolean,
default: true
},
showMonthOnFirst: {
type: Boolean,
default: true
},
monthFormat: {
type: Function,
default: null
}
},
calendar: {
type: {
type: String,
default: 'month'
},
value: {
type: String,
validate: validateTimestamp
}
}
};
function validateNumber(input) {
return isFinite(parseInt(input));
}
//# sourceMappingURL=props.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/components/VCalendar/util/props.ts"],"names":[],"mappings":"AACA,SAAS,iBAAT,EAA4B,SAA5B,QAA6C,aAA7C;AAEA,eAAe;AACb,UAAM;AACJ,eAAO;AACL,kBAAM,MADD;AAEL,sBAAU,iBAFL;AAGL,qBAAS;AAAA,uBAAM,UAAU,IAAI,IAAJ,EAAV,EAAsB,IAA5B;AAAA;AAHJ,SADH;AAMJ,aAAK;AACH,kBAAM,MADH;AAEH,sBAAU,iBAFP;AAGH,qBAAS;AAHN,SAND;AAWJ,kBAAU;AACR,kBAAM,KADE;AAER,qBAAS;AAAA,uBAAM,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,CAAN;AAAA;AAFD,SAXN;AAeJ,oBAAY;AACV,kBAAM,OADI;AAEV,qBAAS;AAFC,SAfR;AAmBJ,uBAAe;AACb,kBAAM,OADO;AAEb,qBAAS;AAFI,SAnBX;AAuBJ,uBAAe;AACb,kBAAM,QADO;AAEb,qBAAS;AAFI,SAvBX;AA2BJ,mBAAW;AACT,kBAAM,QADG;AAET,qBAAS;AAFA,SA3BP;AA+BJ,gBAAQ;AACN,kBAAM,MADA;AAEN,qBAAS;AAFH;AA/BJ,KADO;AAqCb,eAAW;AACT,iBAAS;AACP,kBAAM,MADC;AAEP,qBAAS;AAFF,SADA;AAKT,wBAAgB;AACd,kBAAM,OADQ;AAEd,qBAAS;AAFK,SALP;AAST,wBAAgB;AACd,kBAAM,CAAC,MAAD,EAAS,MAAT,CADQ;AAEd,qBAAS,EAFK;AAGd,sBAAU;AAHI,SATP;AAcT,yBAAiB;AACf,kBAAM,CAAC,MAAD,EAAS,MAAT,CADS;AAEf,qBAAS,EAFM;AAGf,sBAAU;AAHK,SAdR;AAmBT,uBAAe;AACb,kBAAM,CAAC,MAAD,EAAS,MAAT,CADO;AAEb,qBAAS,CAFI;AAGb,sBAAU;AAHG,SAnBN;AAwBT,uBAAe;AACb,kBAAM,CAAC,MAAD,EAAS,MAAT,CADO;AAEb,qBAAS,EAFI;AAGb,sBAAU;AAHG,SAxBN;AA6BT,wBAAgB;AACd,kBAAM,QADQ;AAEd,qBAAS;AAFK,SA7BP;AAiCT,uBAAe;AACb,kBAAM,QADO;AAEb,qBAAS;AAFI,SAjCN;AAqCT,2BAAmB;AACjB,kBAAM,QADW;AAEjB,qBAAS;AAFQ;AArCV,KArCE;AA+Eb,WAAO;AACL,kBAAU;AACR,sBAAU,cADF;AAER,qBAAS;AAFD,SADL;AAKL,qBAAa;AACX,kBAAM,OADK;AAEX,qBAAS;AAFE,SALR;AASL,0BAAkB;AAChB,kBAAM,OADU;AAEhB,qBAAS;AAFO,SATb;AAaL,qBAAa;AACX,kBAAM,QADK;AAEX,qBAAS;AAFE;AAbR,KA/EM;AAiGb,cAAU;AACR,cAAM;AACJ,kBAAM,MADF;AAEJ,qBAAS;AAFL,SADE;AAKR,eAAO;AACL,kBAAM,MADD;AAEL,sBAAU;AAFL;AALC;AAjGG,CAAf;AA6GA,SAAS,cAAT,CAAyB,KAAzB,EAAmC;AACjC,WAAO,SAAS,SAAS,KAAT,CAAT,CAAP;AACD","sourcesContent":["\nimport { validateTimestamp, parseDate } from './timestamp'\n\nexport default {\n base: {\n start: {\n type: String,\n validate: validateTimestamp,\n default: () => parseDate(new Date()).date\n },\n end: {\n type: String,\n validate: validateTimestamp,\n default: '0000-00-00'\n },\n weekdays: {\n type: Array as () => number[],\n default: () => [0, 1, 2, 3, 4, 5, 6]\n },\n hideHeader: {\n type: Boolean,\n default: false\n },\n shortWeekdays: {\n type: Boolean,\n default: true\n },\n weekdayFormat: {\n type: Function, // VTimestampFormatter,\n default: null\n },\n dayFormat: {\n type: Function, // VTimestampFormatter,\n default: null\n },\n locale: {\n type: String,\n default: 'en-us'\n }\n },\n intervals: {\n maxDays: {\n type: Number,\n default: 7\n },\n shortIntervals: {\n type: Boolean,\n default: true\n },\n intervalHeight: {\n type: [Number, String],\n default: 40,\n validate: validateNumber\n },\n intervalMinutes: {\n type: [Number, String],\n default: 60,\n validate: validateNumber\n },\n firstInterval: {\n type: [Number, String],\n default: 0,\n validate: validateNumber\n },\n intervalCount: {\n type: [Number, String],\n default: 24,\n validate: validateNumber\n },\n intervalFormat: {\n type: Function, // VTimestampFormatter,\n default: null\n },\n intervalStyle: {\n type: Function, // (interval: VTimestamp): object\n default: null\n },\n showIntervalLabel: {\n type: Function, // (interval: VTimestamp): boolean\n default: null\n }\n },\n weeks: {\n minWeeks: {\n validate: validateNumber,\n default: 1\n },\n shortMonths: {\n type: Boolean,\n default: true\n },\n showMonthOnFirst: {\n type: Boolean,\n default: true\n },\n monthFormat: {\n type: Function, // VTimestampFormatter,\n default: null\n }\n },\n calendar: {\n type: {\n type: String,\n default: 'month'\n },\n value: {\n type: String,\n validate: validateTimestamp\n }\n }\n}\n\nfunction validateNumber (input: any): boolean {\n return isFinite(parseInt(input))\n}\n"],"sourceRoot":""}
+336
View File
@@ -0,0 +1,336 @@
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
export var PARSE_REGEX = /^(\d{4})-(\d{1,2})(-(\d{1,2}))?([^\d]+(\d{1,2}))?(:(\d{1,2}))?(:(\d{1,2}))?$/;
export var PARSE_TIME = /(\d\d?)(:(\d\d?)|)(:(\d\d?)|)/;
export var DAYS_IN_MONTH = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
export var DAYS_IN_MONTH_LEAP = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
export var DAYS_IN_MONTH_MIN = 28;
export var DAYS_IN_MONTH_MAX = 31;
export var MONTH_MAX = 12;
export var MONTH_MIN = 1;
export var DAY_MIN = 1;
export var DAYS_IN_WEEK = 7;
export var MINUTES_IN_HOUR = 60;
export var HOURS_IN_DAY = 24;
export var FIRST_HOUR = 0;
export function getStartOfWeek(timestamp, weekdays, today) {
var start = copyTimestamp(timestamp);
findWeekday(start, weekdays[0], prevDay);
updateFormatted(start);
if (today) {
updateRelative(start, today, start.hasTime);
}
return start;
}
export function getEndOfWeek(timestamp, weekdays, today) {
var end = copyTimestamp(timestamp);
findWeekday(end, weekdays[weekdays.length - 1]);
updateFormatted(end);
if (today) {
updateRelative(end, today, end.hasTime);
}
return end;
}
export function getStartOfMonth(timestamp) {
var start = copyTimestamp(timestamp);
start.day = DAY_MIN;
updateWeekday(start);
updateFormatted(start);
return start;
}
export function getEndOfMonth(timestamp) {
var end = copyTimestamp(timestamp);
end.day = daysInMonth(end.year, end.month);
updateWeekday(end);
updateFormatted(end);
return end;
}
export function parseTime(input) {
if (typeof input === 'number') {
// when a number is given, it's minutes since 12:00am
return input;
} else if (typeof input === 'string') {
// when a string is given, it's a hh:mm:ss format where seconds are optional
var parts = PARSE_TIME.exec(input);
if (!parts) {
return false;
}
return parseInt(parts[1]) * 60 + parseInt(parts[3] || 0);
} else if ((typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object') {
// when an object is given, it must have hour and minute
if (typeof input.hour !== 'number' || typeof input.minute !== 'number') {
return false;
}
return input.hour * 60 + input.minute;
} else {
// unsupported type
return false;
}
}
export function validateTimestamp(input) {
return !!PARSE_REGEX.exec(input);
}
export function parseTimestamp(input, now) {
// YYYY-MM-DD hh:mm:ss
var parts = PARSE_REGEX.exec(input);
if (!parts) return null;
var timestamp = {
date: input,
time: '',
year: parseInt(parts[1]),
month: parseInt(parts[2]),
day: parseInt(parts[4]) || 1,
hour: parseInt(parts[6]) || 0,
minute: parseInt(parts[8]) || 0,
weekday: 0,
hasDay: !!parts[4],
hasTime: !!(parts[6] && parts[8]),
past: false,
present: false,
future: false
};
updateWeekday(timestamp);
updateFormatted(timestamp);
if (now) {
updateRelative(timestamp, now, timestamp.hasTime);
}
return timestamp;
}
export function parseDate(date) {
return updateFormatted({
date: '',
time: '',
year: date.getFullYear(),
month: date.getMonth() + 1,
day: date.getDate(),
weekday: date.getDay(),
hour: date.getHours(),
minute: date.getMinutes(),
hasDay: true,
hasTime: true,
past: false,
present: true,
future: false
});
}
export function getDayIdentifier(timestamp) {
return timestamp.year * 10000 + timestamp.month * 100 + timestamp.day;
}
export function getTimeIdentifier(timestamp) {
return timestamp.hour * 100 + timestamp.minute;
}
export function updateRelative(timestamp, now) {
var time = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var a = getDayIdentifier(now);
var b = getDayIdentifier(timestamp);
var present = a === b;
if (timestamp.hasTime && time && present) {
a = getTimeIdentifier(now);
b = getTimeIdentifier(timestamp);
present = a === b;
}
timestamp.past = b < a;
timestamp.present = present;
timestamp.future = b > a;
return timestamp;
}
export function updateMinutes(timestamp, minutes, now) {
timestamp.hasTime = true;
timestamp.hour = Math.floor(minutes / MINUTES_IN_HOUR);
timestamp.minute = minutes % MINUTES_IN_HOUR;
timestamp.time = getTime(timestamp);
if (now) {
updateRelative(timestamp, now, true);
}
return timestamp;
}
export function updateWeekday(timestamp) {
timestamp.weekday = getWeekday(timestamp);
return timestamp;
}
export function updateFormatted(timestamp) {
timestamp.time = getTime(timestamp);
timestamp.date = getDate(timestamp);
return timestamp;
}
export function getWeekday(timestamp) {
if (timestamp.hasDay) {
var _ = Math.floor;
var k = timestamp.day;
var m = (timestamp.month + 9) % MONTH_MAX + 1;
var C = _(timestamp.year / 100);
var Y = timestamp.year % 100 - (timestamp.month <= 2 ? 1 : 0);
return ((k + _(2.6 * m - 0.2) - 2 * C + Y + _(Y / 4) + _(C / 4)) % 7 + 7) % 7;
}
return timestamp.weekday;
}
export function isLeapYear(year) {
return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
}
export function daysInMonth(year, month) {
return isLeapYear(year) ? DAYS_IN_MONTH_LEAP[month] : DAYS_IN_MONTH[month];
}
export function copyTimestamp(timestamp) {
var date = timestamp.date,
time = timestamp.time,
year = timestamp.year,
month = timestamp.month,
day = timestamp.day,
weekday = timestamp.weekday,
hour = timestamp.hour,
minute = timestamp.minute,
hasDay = timestamp.hasDay,
hasTime = timestamp.hasTime,
past = timestamp.past,
present = timestamp.present,
future = timestamp.future;
return { date: date, time: time, year: year, month: month, day: day, weekday: weekday, hour: hour, minute: minute, hasDay: hasDay, hasTime: hasTime, past: past, present: present, future: future };
}
export function padNumber(x, length) {
var padded = String(x);
while (padded.length < length) {
padded = '0' + padded;
}
return padded;
}
export function getDate(timestamp) {
var str = padNumber(timestamp.year, 4) + '-' + padNumber(timestamp.month, 2);
if (timestamp.hasDay) str += '-' + padNumber(timestamp.day, 2);
return str;
}
export function getTime(timestamp) {
if (!timestamp.hasTime) {
return '';
}
return padNumber(timestamp.hour, 2) + ':' + padNumber(timestamp.minute, 2);
}
export function nextMinutes(timestamp, minutes) {
timestamp.minute += minutes;
while (timestamp.minute > MINUTES_IN_HOUR) {
timestamp.minute -= MINUTES_IN_HOUR;
timestamp.hour++;
if (timestamp.hour >= HOURS_IN_DAY) {
nextDay(timestamp);
timestamp.hour = FIRST_HOUR;
}
}
return timestamp;
}
export function nextDay(timestamp) {
timestamp.day++;
timestamp.weekday = (timestamp.weekday + 1) % DAYS_IN_WEEK;
if (timestamp.day > DAYS_IN_MONTH_MIN && timestamp.day > daysInMonth(timestamp.year, timestamp.month)) {
timestamp.day = DAY_MIN;
timestamp.month++;
if (timestamp.month > MONTH_MAX) {
timestamp.month = MONTH_MIN;
timestamp.year++;
}
}
return timestamp;
}
export function prevDay(timestamp) {
timestamp.day--;
timestamp.weekday = (timestamp.weekday + 6) % DAYS_IN_WEEK;
if (timestamp.day < DAY_MIN) {
timestamp.month--;
if (timestamp.month < MONTH_MIN) {
timestamp.year--;
timestamp.month = MONTH_MAX;
}
timestamp.day = daysInMonth(timestamp.year, timestamp.month);
}
return timestamp;
}
export function relativeDays(timestamp) {
var mover = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : nextDay;
var days = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
while (--days >= 0) {
mover(timestamp);
}return timestamp;
}
export function findWeekday(timestamp, weekday) {
var mover = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : nextDay;
var maxDays = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 6;
while (timestamp.weekday !== weekday && --maxDays >= 0) {
mover(timestamp);
}return timestamp;
}
export function getWeekdaySkips(weekdays) {
var skips = [1, 1, 1, 1, 1, 1, 1];
var filled = [0, 0, 0, 0, 0, 0, 0];
for (var i = 0; i < weekdays.length; i++) {
filled[weekdays[i]] = 1;
}
for (var k = 0; k < DAYS_IN_WEEK; k++) {
var skip = 1;
for (var j = 1; j < DAYS_IN_WEEK; j++) {
var next = (k + j) % DAYS_IN_WEEK;
if (filled[next]) {
break;
}
skip++;
}
skips[k] = filled[k] * skip;
}
return skips;
}
export function createDayList(start, end, now, weekdaySkips) {
var max = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 42;
var min = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
var stop = getDayIdentifier(end);
var days = [];
var current = copyTimestamp(start);
var currentIdentifier = 0;
var stopped = currentIdentifier === stop;
if (stop < getDayIdentifier(start)) {
return days;
}
while ((!stopped || days.length < min) && days.length < max) {
currentIdentifier = getDayIdentifier(current);
stopped = stopped || currentIdentifier === stop;
if (weekdaySkips[current.weekday] === 0) {
current = nextDay(current);
continue;
}
var day = copyTimestamp(current);
updateFormatted(day);
updateRelative(day, now);
days.push(day);
current = relativeDays(current, nextDay, weekdaySkips[current.weekday]);
}
return days;
}
export function createIntervalList(timestamp, first, minutes, count, now) {
var intervals = [];
for (var i = 0; i < count; i++) {
var mins = (first + i) * minutes;
var int = copyTimestamp(timestamp);
intervals.push(updateMinutes(int, mins, now));
}
return intervals;
}
export function createNativeLocaleFormatter(locale, getOptions) {
var emptyFormatter = function emptyFormatter(_t, _s) {
return '';
};
if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat === 'undefined') {
return emptyFormatter;
}
return function (timestamp, short) {
try {
var intlFormatter = new Intl.DateTimeFormat(locale || undefined, getOptions(timestamp, short));
var time = padNumber(timestamp.hour, 2) + ':' + padNumber(timestamp.minute, 2);
var date = timestamp.date;
return intlFormatter.format(new Date(date + 'T' + time + ':00+00:00'));
} catch (e) {
return '';
}
};
}
//# sourceMappingURL=timestamp.js.map
File diff suppressed because one or more lines are too long