This commit is contained in:
fenris 2025-10-19 18:47:54 +02:00
parent 1d4ee08b06
commit 9cc1cfe6a0
2 changed files with 128 additions and 93 deletions

View file

@ -35,8 +35,8 @@
.widget-menu-platform:not(.widget-menu-platform-collapsed) .widget-menu-platform:not(.widget-menu-platform-collapsed)
{ {
position: fixed; position: fixed;
top: 32px; top: 50px;
right: 32px; right: 20px;
z-index: 2; z-index: 2;
} }
@ -49,8 +49,7 @@
.widget-menu-entry .widget-menu-entry
{ {
margin: 12px 16px; margin: 8px;
padding: 8px;
text-transform: capitalize; text-transform: capitalize;
} }
@ -60,9 +59,9 @@
color: hsl(var(--hue), 0%, 100%); color: hsl(var(--hue), 0%, 100%);
} }
.widget-menu-entry:hover::after .widget-menu-entry:hover::before
{ {
content: " «"; content: "» ";
/* /*
background-color: hsl(var(--hue), 0%, 50%); background-color: hsl(var(--hue), 0%, 50%);
color: hsl(var(--hue), 0%, 100%); color: hsl(var(--hue), 0%, 100%);

View file

@ -62,6 +62,12 @@ namespace _dali.widgets.weekview
); );
/**
* [state]
*/
private vertical : boolean;
/** /**
* [state] * [state]
*/ */
@ -105,6 +111,7 @@ namespace _dali.widgets.weekview
{ {
"action_select_day": action_select_day = ((date) => {}), "action_select_day": action_select_day = ((date) => {}),
"action_select_event": action_select_event = ((event_key) => {}), "action_select_event": action_select_event = ((event_key) => {}),
"vertical": vertical = false,
"initial_year": initial_year = null, "initial_year": initial_year = null,
"initial_week": initial_week = null, "initial_week": initial_week = null,
"initial_count": initial_count = 5, "initial_count": initial_count = 5,
@ -596,6 +603,13 @@ namespace _dali.widgets.weekview
const context : Element = this.container; const context : Element = this.container;
// structure // structure
{ {
type type_row_data = Array<
{
week : int;
day_pits : Array<lib_plankton.pit.type_pit>;
}
>;
/** /**
* @todo als Variable? * @todo als Variable?
*/ */
@ -603,52 +617,67 @@ namespace _dali.widgets.weekview
const now_pit : lib_plankton.pit.type_pit = lib_plankton.pit.now(); const now_pit : lib_plankton.pit.type_pit = lib_plankton.pit.now();
const today_begin_pit : lib_plankton.pit.type_pit = lib_plankton.pit.trunc_day(now_pit); const today_begin_pit : lib_plankton.pit.type_pit = lib_plankton.pit.trunc_day(now_pit);
const today_end_pit : lib_plankton.pit.type_pit = lib_plankton.pit.shift_day(today_begin_pit, 1); const today_end_pit : lib_plankton.pit.type_pit = lib_plankton.pit.shift_day(today_begin_pit, 1);
const row_data : Array< const row_data_original : type_row_data = (
{
week : int;
data : Array<
{
pit : lib_plankton.pit.type_pit;
today : boolean;
}
>;
}
> = (
lib_plankton.list.sequence(this.count) lib_plankton.list.sequence(this.count)
.map( .map(
offset => { offset => {
const week : int = (this.week + offset); const week : int = (this.week + offset);
return { return {
"week": week, "week": week,
"data": ( "day_pits": (
lib_plankton.list.sequence(7) lib_plankton.list.sequence(7)
.map( .map(
day => { day => lib_plankton.pit.from_ywd(
const day_pit : lib_plankton.pit.type_pit = lib_plankton.pit.from_ywd( {
{ "year": this.year,
"year": this.year, "week": week,
"week": week, "day": (1 + day),
"day": (day + 1), },
}, {
{ "timezone_shift": timezone_shift,
"timezone_shift": timezone_shift, }
} )
);
return {
"pit": day_pit,
"today": lib_plankton.pit.is_between(
day_pit,
today_begin_pit,
today_end_pit
),
};
}
) )
), ),
}; };
} }
) )
); );
const row_data_alternative : type_row_data = (
lib_plankton.list.sequence(7)
.map(
day_of_week => {
return {
/*"day_of_week"*/"week": day_of_week,
/*"week_pits"*/"day_pits": (
lib_plankton.list.sequence(this.count)
.map(
offset => {
const week : int = (this.week + offset);
return lib_plankton.pit.from_ywd(
{
"year": this.year,
"week": week,
"day": (1 + day_of_week),
},
{
"timezone_shift": timezone_shift,
}
);
}
)
)
};
}
)
);
const row_data : type_row_data = (
false
?
row_data_original
:
row_data_alternative
);
context.querySelector(".weekview-table tbody").innerHTML = ( context.querySelector(".weekview-table tbody").innerHTML = (
await _dali.helpers.promise_row<string>( await _dali.helpers.promise_row<string>(
row_data row_data
@ -660,62 +689,69 @@ namespace _dali.widgets.weekview
"week": row.week.toFixed(0).padStart(2, "0"), "week": row.week.toFixed(0).padStart(2, "0"),
"cells": ( "cells": (
await _dali.helpers.promise_row<string>( await _dali.helpers.promise_row<string>(
row.data row.day_pits
.map( .map(
(cell) => async () => _dali.helpers.template_coin( (day_pit) => async () => {
"widget-weekview", const is_today : boolean = lib_plankton.pit.is_between(
"tableview-cell", day_pit,
{ today_begin_pit,
"extra_classes": ( today_end_pit
[""] );
.concat(cell.today ? ["weekview-cell-today"] : []) return _dali.helpers.template_coin(
.join(" ") "widget-weekview",
), "tableview-cell",
"title": lib_plankton.call.convey( {
cell.pit, "extra_classes": (
[ [""]
lib_plankton.pit.to_datetime_ce, .concat(is_today ? ["weekview-cell-today"] : [])
(x : lib_plankton.pit.type_datetime) => lib_plankton.string.coin( .join(" ")
"{{year}}-{{month}}-{{day}}", ),
{ "title": lib_plankton.call.convey(
"year": x.date.year.toFixed(0).padStart(4, "0"), day_pit,
"month": x.date.month.toFixed(0).padStart(2, "0"), [
"day": x.date.day.toFixed(0).padStart(2, "0"), lib_plankton.pit.to_datetime_ce,
} (x : lib_plankton.pit.type_datetime) => lib_plankton.string.coin(
), "{{year}}-{{month}}-{{day}}",
] {
), "year": x.date.year.toFixed(0).padStart(4, "0"),
"day": lib_plankton.call.convey( "month": x.date.month.toFixed(0).padStart(2, "0"),
cell.pit, "day": x.date.day.toFixed(0).padStart(2, "0"),
[ }
lib_plankton.pit.to_datetime_ce, ),
(x : lib_plankton.pit.type_datetime) => lib_plankton.string.coin( ]
"{{day}}", ),
{ "day": lib_plankton.call.convey(
"year": x.date.year.toFixed(0).padStart(4, "0"), day_pit,
"month": x.date.month.toFixed(0).padStart(2, "0"), [
"day": x.date.day.toFixed(0).padStart(2, "0"), lib_plankton.pit.to_datetime_ce,
} (x : lib_plankton.pit.type_datetime) => lib_plankton.string.coin(
), "{{day}}",
] {
), "year": x.date.year.toFixed(0).padStart(4, "0"),
"rel": lib_plankton.call.convey( "month": x.date.month.toFixed(0).padStart(2, "0"),
cell.pit, "day": x.date.day.toFixed(0).padStart(2, "0"),
[ }
lib_plankton.pit.to_datetime_ce, ),
(x : lib_plankton.pit.type_datetime) => lib_plankton.string.coin( ]
"{{year}}-{{month}}-{{day}}", ),
{ "rel": lib_plankton.call.convey(
"year": x.date.year.toFixed(0).padStart(4, "0"), day_pit,
"month": x.date.month.toFixed(0).padStart(2, "0"), [
"day": x.date.day.toFixed(0).padStart(2, "0"), lib_plankton.pit.to_datetime_ce,
} (x : lib_plankton.pit.type_datetime) => lib_plankton.string.coin(
) "{{year}}-{{month}}-{{day}}",
] {
), "year": x.date.year.toFixed(0).padStart(4, "0"),
"entries": "" "month": x.date.month.toFixed(0).padStart(2, "0"),
} "day": x.date.day.toFixed(0).padStart(2, "0"),
) }
)
]
),
"entries": ""
}
);
}
) )
) )
).join(""), ).join(""),