diff --git a/src/lib/components/CalendarList.svelte b/src/lib/components/CalendarList.svelte index a79a18bf..215ec3f5 100644 --- a/src/lib/components/CalendarList.svelte +++ b/src/lib/components/CalendarList.svelte @@ -37,11 +37,15 @@
{#if !event} - {(segment.event || event)[event && event.shortname ? 'shortname' : 'name']} + {#if (segment.event || event).hidden} + {(segment.event || event)[event && event.shortname ? 'shortname' : 'name']}* + {:else} + {(segment.event || event)[event && event.shortname ? 'shortname' : 'name']} + {/if} {:else} {event.shortname || event.name} {/if} diff --git a/src/lib/components/CollectionList.svelte b/src/lib/components/CollectionList.svelte index 7e44d2cd..f3b1ecd0 100644 --- a/src/lib/components/CollectionList.svelte +++ b/src/lib/components/CollectionList.svelte @@ -31,16 +31,14 @@ return it; } - const _url = (col, item) => `/${entry}/${col}/${item.id}`; + const _url = (col, item) => (item.hidden ? '' : `/${entry}/${col}/${item.id}`); {#each arr.map((k) => findObject(k)) as item}
{#if col === 'benefit'} @@ -50,6 +48,7 @@
{/if} + {#if col !== 'media-partner'}
-

- {item.shortname || item.name} -

+ {#if item.hidden} + {item.shortname || item.name}* + {:else} +

+ {item.shortname || item.name} +

+ {/if} {#if col === 'event'}
{formatItemDate(item)} diff --git a/src/lib/components/DisclaimerHidden.svelte b/src/lib/components/DisclaimerHidden.svelte new file mode 100644 index 00000000..45893f59 --- /dev/null +++ b/src/lib/components/DisclaimerHidden.svelte @@ -0,0 +1,4 @@ +
+ *Not a part of #PBW23. The organizers of this event explicitly declined to be presented as part of + #PBW23. Thus, we list them for context only. +
diff --git a/src/lib/components/TimelineHeatmap.svelte b/src/lib/components/TimelineHeatmap.svelte index bd2dc509..23d8403e 100644 --- a/src/lib/components/TimelineHeatmap.svelte +++ b/src/lib/components/TimelineHeatmap.svelte @@ -10,6 +10,16 @@ const segmentMinutes = 60; const bundle = data.bundle; + let popupWidth; + let timelineWidth; + let selectedSegment = null; + + $: selectedSegmentEvents = selectedSegment + ? selectedSegment.data.events.map((e) => { + return [eventDetail(e[0]), e[1]]; + }) + : []; + const days = []; let currentDate = startDate; while (compareAsc(new Date(currentDate), new Date(endDate)) <= 0) { @@ -86,8 +96,6 @@ it.perc = it.score / (segmentsMax / 100); } - let selectedSegment = null; - function makeSelected(day, segment, keys) { const baseDate = new Date(`${day}T${segment}`); const title = @@ -126,29 +134,40 @@ class="absolute top-[81px] w-[300px] border dark:border-gray-400 bg-white dark:bg-pbw-dark dark:text-gray-200 z-50 py-2 px-4 {selectedSegment ? 'hidden md:block' : 'hidden'}" - style="left: {selectedSegment.event.layerX}px;" + style="left: {selectedSegment.event.layerX + popupWidth < timelineWidth + ? selectedSegment.event.layerX + : selectedSegment.event.layerX - popupWidth}px;" + bind:clientWidth={popupWidth} >
{selectedSegment.title}
-
- {#each selectedSegment.data.events.map((e) => { - return [eventDetail(e[0]), e[1]]; - }) as [item, segmentId]} -
-
- + {#if selectedSegmentEvents.length > 0} +
+ {#each selectedSegmentEvents as [item, segmentId]} +
+
+ +
+
+ {item.shortname || item.name}{#if item.hidden}*{/if} + {#if item.segments[segmentId].title} + - {item.segments[segmentId].title} + {/if} +
-
- {item.shortname || item.name} - {#if item.segments[segmentId].title} - - {item.segments[segmentId].title} - {/if} -
-
- {/each} -
+ {/each} + {#if selectedSegmentEvents.find((e) => e[0].hidden)} +
*Not a part of #PBW23
+ {/if} +
+ {:else} +
No events
+ {/if}
{/if} -
+
{#each days as day}
Speakers ({data.bundle.speakers.length}) - -

International 🌎

+
diff --git a/src/routes/[entry]/[type]/+page.svelte b/src/routes/[entry]/[type]/+page.svelte index 0cf22c82..cf2be39f 100644 --- a/src/routes/[entry]/[type]/+page.svelte +++ b/src/routes/[entry]/[type]/+page.svelte @@ -13,6 +13,7 @@ import TimelineHeatmap from '$lib/components/TimelineHeatmap.svelte'; import ItemLogo from '$lib/components/ItemLogo.svelte'; import Disclaimer from '$lib/components/Disclaimer.svelte'; + import DisclaimerHidden from '$lib/components/DisclaimerHidden.svelte'; import { compareAsc, compareDesc, addMinutes } from 'date-fns'; import { writable } from 'svelte/store'; @@ -73,9 +74,6 @@

{tc.title} ({processedItems.length})

- {#if ['events', 'speakers'].includes(type)} - - {/if}
@@ -127,9 +125,14 @@
- {item.name} + {#if item.hidden} + {item.name}* + {:else} + {item.name} + {/if}
+ {#if type === 'events'} + + {/if} + {#if ['events', 'speakers'].includes(type)} + + {/if}
diff --git a/src/routes/[entry]/[type]/[slug]/+page.svelte b/src/routes/[entry]/[type]/[slug]/+page.svelte index 5f9be468..a536e645 100644 --- a/src/routes/[entry]/[type]/[slug]/+page.svelte +++ b/src/routes/[entry]/[type]/[slug]/+page.svelte @@ -5,6 +5,7 @@ import CalendarList from '$lib/components/CalendarList.svelte'; import ItemLogo from '$lib/components/ItemLogo.svelte'; import EventTypeBadge from '$lib/components/EventTypeBadge.svelte'; + import DisclaimerHidden from '$lib/components/DisclaimerHidden.svelte'; import Footer from '$lib/components/Footer.svelte'; import Header from '$lib/components/Header.svelte'; import SvelteMarkdown from 'svelte-markdown'; @@ -430,6 +431,9 @@ img="logo" />
+ {#if data.bundle.events.filter((e) => e.venues?.includes(item.id)).find((e) => e.hidden)} + + {/if} {/if} {#if col === 'chain'}

diff --git a/src/routes/[entry]/day/[date]/+page.svelte b/src/routes/[entry]/day/[date]/+page.svelte index de02b292..8d5430d5 100644 --- a/src/routes/[entry]/day/[date]/+page.svelte +++ b/src/routes/[entry]/day/[date]/+page.svelte @@ -4,6 +4,8 @@ import CalendarList from '$lib/components/CalendarList.svelte'; import Footer from '$lib/components/Footer.svelte'; import Header from '$lib/components/Header.svelte'; + import DisclaimerHidden from '$lib/components/DisclaimerHidden.svelte'; + import Disclaimer from '$lib/components/Disclaimer.svelte'; import { format, compareAsc } from 'date-fns'; @@ -41,6 +43,15 @@ } $: segments = makeSegments(data.bundle.events, $page.params.date); + + $: haveHiddenEvents = (() => { + for (const s of segments) { + if (s.event && s.event.hidden) { + return true; + } + } + return false; + })(); @@ -57,7 +68,7 @@

{format(new Date($page.params.date), 'MMMM d, yyyy - EEEE')}

-
+
+ {#if haveHiddenEvents} + + {/if} +

-