Moving away from Azure Devops #1

Merged
Janus007 merged 113 commits from refac into master 2026-02-03 00:04:27 +01:00
3 changed files with 83 additions and 84 deletions
Showing only changes of commit 899c600e44 - Show all commits

View file

@ -12,9 +12,9 @@ export class DateService {
return new Intl.DateTimeFormat(this.config.locale, { weekday: format }).format(date); return new Intl.DateTimeFormat(this.config.locale, { weekday: format }).format(date);
} }
getWeekDates(offset = 0): string[] { getWeekDates(offset = 0, days = 7): string[] {
const monday = dayjs().startOf('week').add(1, 'day').add(offset, 'week'); const monday = dayjs().startOf('week').add(1, 'day').add(offset, 'week');
return Array.from({ length: 7 }, (_, i) => return Array.from({ length: days }, (_, i) =>
monday.add(i, 'day').format('YYYY-MM-DD') monday.add(i, 'day').format('YYYY-MM-DD')
); );
} }

View file

@ -50,8 +50,8 @@ export class DemoApp {
} }
}; };
// Render time axis // Render time axis (06:00 - 18:00)
this.timeAxisRenderer.render(document.getElementById('time-axis') as HTMLElement); this.timeAxisRenderer.render(document.getElementById('time-axis') as HTMLElement, 6, 18);
// Init scroll synkronisering // Init scroll synkronisering
this.scrollManager.init(this.container); this.scrollManager.init(this.container);

View file

@ -3,8 +3,8 @@
--time-axis-width: 60px; --time-axis-width: 60px;
--grid-columns: 7; --grid-columns: 7;
--day-column-min-width: 200px; --day-column-min-width: 200px;
--day-start-hour: 0; --day-start-hour: 6;
--day-end-hour: 24; --day-end-hour: 18;
--color-border: #e0e0e0; --color-border: #e0e0e0;
--color-surface: #fff; --color-surface: #fff;
--color-text-secondary: #666; --color-text-secondary: #666;
@ -48,14 +48,13 @@ swp-nav-button {
border-radius: 4px; border-radius: 4px;
cursor: pointer; cursor: pointer;
background: var(--color-surface); background: var(--color-surface);
}
swp-nav-button:hover { background: #f0f0f0; } &:hover { background: #f0f0f0; }
}
swp-week-info { swp-week-info {
margin-left: auto; margin-left: auto;
text-align: right; text-align: right;
}
swp-week-number { swp-week-number {
font-weight: 600; font-weight: 600;
@ -66,6 +65,7 @@ swp-date-range {
font-size: 12px; font-size: 12px;
color: var(--color-text-secondary); color: var(--color-text-secondary);
} }
}
/* Container */ /* Container */
swp-calendar-container { swp-calendar-container {
@ -108,9 +108,8 @@ swp-hour-marker {
color: var(--color-text-secondary); color: var(--color-text-secondary);
text-align: right; text-align: right;
position: relative; position: relative;
}
swp-hour-marker::after { &::after {
content: ''; content: '';
position: absolute; position: absolute;
top: -1px; top: -1px;
@ -119,6 +118,7 @@ swp-hour-marker::after {
height: 1px; height: 1px;
background: var(--color-hour-line); background: var(--color-hour-line);
} }
}
/* Grid container */ /* Grid container */
swp-grid-container { swp-grid-container {
@ -141,21 +141,19 @@ swp-content-viewport {
swp-header-track { swp-header-track {
display: flex; display: flex;
> swp-calendar-header { flex: 0 0 100%; }
} }
swp-content-track { swp-content-track {
display: flex; display: flex;
height: 100%; height: 100%;
}
swp-header-track > swp-calendar-header { > swp-scrollable-content {
flex: 0 0 100%;
}
swp-content-track > swp-scrollable-content {
flex: 0 0 100%; flex: 0 0 100%;
height: 100%; height: 100%;
} }
}
/* Header */ /* Header */
swp-calendar-header { swp-calendar-header {
@ -166,25 +164,24 @@ swp-calendar-header {
background: var(--color-surface); background: var(--color-surface);
overflow-y: scroll; overflow-y: scroll;
overflow-x: hidden; overflow-x: hidden;
&::-webkit-scrollbar { background: transparent; }
&::-webkit-scrollbar-thumb { background: transparent; }
&[data-levels="date"] > swp-day-header { grid-row: 1; }
&[data-levels="resource date"] {
> swp-resource-header { grid-row: 1; }
> swp-day-header { grid-row: 2; }
} }
swp-calendar-header::-webkit-scrollbar { &[data-levels="team resource date"] {
background: transparent; > swp-team-header { grid-row: 1; }
> swp-resource-header { grid-row: 2; }
> swp-day-header { grid-row: 3; }
} }
swp-calendar-header::-webkit-scrollbar-thumb {
background: transparent;
} }
swp-calendar-header[data-levels="date"] > swp-day-header { grid-row: 1; }
swp-calendar-header[data-levels="resource date"] > swp-resource-header { grid-row: 1; }
swp-calendar-header[data-levels="resource date"] > swp-day-header { grid-row: 2; }
swp-calendar-header[data-levels="team resource date"] > swp-team-header { grid-row: 1; }
swp-calendar-header[data-levels="team resource date"] > swp-resource-header { grid-row: 2; }
swp-calendar-header[data-levels="team resource date"] > swp-day-header { grid-row: 3; }
swp-day-header, swp-day-header,
swp-resource-header, swp-resource-header,
swp-team-header { swp-team-header {
@ -205,6 +202,7 @@ swp-resource-header {
font-size: 13px; font-size: 13px;
} }
swp-day-header {
swp-day-name { swp-day-name {
display: block; display: block;
font-size: 11px; font-size: 11px;
@ -217,6 +215,7 @@ swp-day-date {
font-size: 24px; font-size: 24px;
font-weight: 300; font-weight: 300;
} }
}
/* Scrollable content */ /* Scrollable content */
swp-scrollable-content { swp-scrollable-content {
@ -229,10 +228,9 @@ swp-time-grid {
position: relative; position: relative;
min-height: calc((var(--day-end-hour) - var(--day-start-hour)) * var(--hour-height)); min-height: calc((var(--day-end-hour) - var(--day-start-hour)) * var(--hour-height));
min-width: calc(var(--grid-columns) * var(--day-column-min-width)); min-width: calc(var(--grid-columns) * var(--day-column-min-width));
}
/* Timelinjer via ::after */ /* Timelinjer */
swp-time-grid::after { &::after {
content: ''; content: '';
position: absolute; position: absolute;
inset: 0; inset: 0;
@ -246,6 +244,7 @@ swp-time-grid::after {
); );
pointer-events: none; pointer-events: none;
} }
}
/* Kvarterlinjer - 3 linjer per time (15, 30, 45 min), ikke ved timegrænsen */ /* Kvarterlinjer - 3 linjer per time (15, 30, 45 min), ikke ved timegrænsen */
swp-grid-lines { swp-grid-lines {
@ -299,7 +298,6 @@ swp-event {
padding: 4px 6px; padding: 4px 6px;
font-size: 12px; font-size: 12px;
overflow: hidden; overflow: hidden;
}
swp-event-time { swp-event-time {
display: block; display: block;
@ -311,3 +309,4 @@ swp-event-title {
display: block; display: block;
font-weight: 500; font-weight: 500;
} }
}