@quasar/quasar-ui-qcalendar
Advanced tools
Comparing version 1.5.8 to 2.0.0
@@ -74,2 +74,6 @@ { | ||
}, | ||
"q-calendar/sticky": { | ||
"type": "boolean", | ||
"description": "Turns on sticky resources and intervals" | ||
}, | ||
"q-calendar/transition-prev": { | ||
@@ -119,2 +123,6 @@ "type": "string", | ||
}, | ||
"q-calendar/interval-width": { | ||
"type": "number|string", | ||
"description": "The maximum width in pixels for the interval width" | ||
}, | ||
"q-calendar/interval-style": { | ||
@@ -121,0 +129,0 @@ "type": "function", |
@@ -22,2 +22,3 @@ { | ||
"animated", | ||
"sticky", | ||
"transition-prev", | ||
@@ -34,2 +35,3 @@ "transition-next", | ||
"interval-height", | ||
"interval-width", | ||
"interval-style", | ||
@@ -36,0 +38,0 @@ "interval-minutes", |
{ | ||
"name": "@quasar/quasar-ui-qcalendar", | ||
"version": "1.5.8", | ||
"version": "2.0.0", | ||
"author": "Jeff Galbraith <jeff@quasar.dev>", | ||
@@ -57,7 +57,7 @@ "description": "QCalendar - Day/Month/Week Calendars, Popups, Schedules, Agendas and Planners for your Quasar Apps", | ||
"@rollup/plugin-buble": "^0.21.3", | ||
"@rollup/plugin-commonjs": "^11.1.0", | ||
"@rollup/plugin-commonjs": "^12.0.0", | ||
"@rollup/plugin-json": "^4.0.3", | ||
"@rollup/plugin-node-resolve": "^7.1.3", | ||
"@rollup/plugin-node-resolve": "^8.0.0", | ||
"@vue/eslint-config-standard": "^5.1.2", | ||
"autoprefixer": "^9.7.6", | ||
"autoprefixer": "^9.8.0", | ||
"babel-core": "^6.26.3", | ||
@@ -86,6 +86,6 @@ "babel-eslint": "^10.1.0", | ||
"promise": "^8.1.0", | ||
"quasar": "^1.11.2", | ||
"quasar": "^1.11.3", | ||
"quasar-json-api": "^0.0.21", | ||
"rimraf": "^3.0.2", | ||
"rollup": "^2.10.2", | ||
"rollup": "^2.10.5", | ||
"uglify-es": "^3.3.9", | ||
@@ -92,0 +92,0 @@ "vue-jest": "^3.0.5", |
@@ -28,2 +28,3 @@ // Mixins | ||
import QCalendarAgenda from './QCalendarAgenda' | ||
import QCalendarResource from './QCalendarResource' | ||
@@ -43,2 +44,3 @@ /* @vue/component */ | ||
...props.scheduler, | ||
...props.resource, | ||
...props.agenda | ||
@@ -149,4 +151,10 @@ }, | ||
break | ||
case 'resource': | ||
case 'day-resource': | ||
component = QCalendarResource | ||
maxDays = 1 | ||
end = relativeDays(copyTimestamp(end), nextDay, maxDays, this.weekdays) | ||
updateFormatted(end) | ||
break | ||
} | ||
return { component, start, end, maxDays } | ||
@@ -247,2 +255,7 @@ } | ||
break | ||
case 'resource': | ||
case 'day-resource': | ||
maxDays = 1 | ||
relativeDays(moved, mover, maxDays, this.weekdays) | ||
break | ||
} | ||
@@ -277,3 +290,13 @@ } | ||
timeStartPosX (time, clamp = true) { | ||
const c = this.$children[0] | ||
if (c && c.timeStartPosX) { | ||
return c.timeStartPosX(time, clamp) | ||
} else { | ||
return false | ||
} | ||
}, | ||
timeDurationHeight (minutes) { | ||
debugger | ||
const c = this.$children[0] | ||
@@ -287,2 +310,12 @@ if (c && c.timeDurationHeight) { | ||
timeDurationWidth (minutes) { | ||
debugger | ||
const c = this.$children[0] | ||
if (c && c.timeDurationWidth) { | ||
return c.timeDurationWidth(minutes) | ||
} else { | ||
return -1 | ||
} | ||
}, | ||
scrollToTime (time) { | ||
@@ -297,2 +330,11 @@ const c = this.$children[0] | ||
scrollToTimeX (time) { | ||
const c = this.$children[0] | ||
if (c && c.scrollToTimeX) { | ||
return c.scrollToTimeX(time) | ||
} else { | ||
return false | ||
} | ||
}, | ||
__renderComponent (h, component, data) { | ||
@@ -311,3 +353,3 @@ return h(component, data) | ||
class: { | ||
'q-calendar-daily__bordered': this.bordered | ||
'q-calendar__bordered': this.bordered | ||
}, | ||
@@ -314,0 +356,0 @@ key: this.keyValue, |
@@ -78,3 +78,3 @@ // Quasar | ||
__renderHeadIntervals (h) { | ||
const intervalsHeader = this.$scopedSlots['intervals-header'] | ||
const slot = this.$scopedSlots['intervals-header'] | ||
@@ -93,3 +93,3 @@ let colors = new Map(), color, backgroundColor | ||
}), [ | ||
intervalsHeader && intervalsHeader(this.days) | ||
slot && slot(this.days) | ||
]) | ||
@@ -96,0 +96,0 @@ }, |
@@ -43,2 +43,6 @@ // Mixins | ||
parsedIntervalWidth () { | ||
return parseFloat(this.intervalWidth) | ||
}, | ||
startMinute () { | ||
@@ -52,2 +56,6 @@ return this.parsedIntervalStart * this.parsedIntervalMinutes | ||
bodyWidth () { | ||
return this.parsedIntervalCount * this.parsedIntervalWidth | ||
}, | ||
days () { | ||
@@ -142,2 +150,15 @@ return createDayList( | ||
scrollToTimeX (time) { | ||
const x = this.timeStartPosX(time) | ||
const pane = this.$refs.scrollArea | ||
if (x === false || !pane) { | ||
return false | ||
} | ||
pane.scrollLeft = x | ||
return true | ||
}, | ||
timeDurationHeight (minutes) { | ||
@@ -147,2 +168,6 @@ return minutes / this.parsedIntervalMinutes * this.parsedIntervalHeight | ||
timeDurationWidth (minutes) { | ||
return minutes / this.parsedIntervalMinutes * this.parsedIntervalWidth | ||
}, | ||
timeStartPos (time, clamp = true) { | ||
@@ -167,4 +192,25 @@ const minutes = parseTime(time) | ||
return y | ||
}, | ||
timeStartPosX (time, clamp = true) { | ||
const minutes = parseTime(time) | ||
if (minutes === false) return false | ||
const min = this.startMinute | ||
const gap = this.parsedIntervalCount * this.parsedIntervalMinutes | ||
const delta = (minutes - min) / gap | ||
let x = delta * this.bodyWidth | ||
if (clamp) { | ||
if (x < 0) { | ||
x = 0 | ||
} | ||
if (x > this.bodyWidth) { | ||
x = this.bodyWidth | ||
} | ||
} | ||
return x | ||
} | ||
} | ||
} |
@@ -194,2 +194,34 @@ import { validateNumber, validateTimestamp } from './timestamp' | ||
}, | ||
resource: { | ||
resources: Array, | ||
resourceKey: { | ||
type: String, | ||
default: 'label' | ||
}, | ||
resourceHeight: { | ||
type: [Number, String], | ||
default: 70, | ||
validator: validateNumber | ||
}, | ||
resourceWidth: { | ||
type: [Number, String], | ||
default: 100, | ||
validator: v => v === void 0 || validateNumber(v) | ||
}, | ||
resourceStyle: { | ||
type: Function, | ||
default: null | ||
}, | ||
intervalWidth: { | ||
type: [Number, String], | ||
default: 100, | ||
validator: validateNumber | ||
}, | ||
intervalHeight: { | ||
type: [Number, String], | ||
default: 20, | ||
validator: validateNumber | ||
}, | ||
sticky: Boolean | ||
}, | ||
agenda: { | ||
@@ -196,0 +228,0 @@ leftColumnOptions: Array, |
@@ -8,2 +8,3 @@ export function validateView (view) { | ||
'4day-scheduler', '5day-scheduler', '6day-scheduler', | ||
'resource', 'day-resource', | ||
'month-agenda', 'week-agenda', 'custom-agenda', | ||
@@ -10,0 +11,0 @@ 'agenda', 'day-agenda', '2day-agenda', '3day-agenda', |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
974652
42
17309