The posters look pretty good now. A lot more is configurable.

This commit is contained in:
Scott Idem
2025-10-15 12:52:27 -04:00
parent f459c09fbc
commit 6b8f4d54ed
6 changed files with 299 additions and 34 deletions

View File

@@ -114,7 +114,14 @@ let events_local_data_struct: key_val = {
qry_limit__presenters: 75, qry_limit__presenters: 75,
qry_limit__sessions: 50, qry_limit__sessions: 50,
hide__launcher_header: false,
hide__launcher_menu: true,
hide__launcher_footer: false,
hide__modal_header_title: false,
hide_drawer__debug: true, hide_drawer__debug: true,
hide__ws_element: true,
hide__ws_form: true, hide__ws_form: true,
hide__ws_messages: true, hide__ws_messages: true,
hide__ws_commands: true, hide__ws_commands: true,

View File

@@ -12,6 +12,7 @@ interface Props {
type?: null|string; // msg, cmd, json, hello, bye type?: null|string; // msg, cmd, json, hello, bye
trigger_send?: any; trigger_send?: any;
classes?: string; classes?: string;
hide__ws_element?: boolean;
hide__ws_form?: boolean; hide__ws_form?: boolean;
hide__ws_messages?: boolean; hide__ws_messages?: boolean;
hide__ws_commands?: boolean; hide__ws_commands?: boolean;
@@ -34,6 +35,7 @@ let {
type = null, type = null,
trigger_send = $bindable(null), trigger_send = $bindable(null),
classes = 'container p-1 bg-pink-100 text-xs mx-auto pb-16 mb-20 sm:mb-12 md:mb-8', classes = 'container p-1 bg-pink-100 text-xs mx-auto pb-16 mb-20 sm:mb-12 md:mb-8',
hide__ws_element = $bindable(false),
hide__ws_form = $bindable(true), hide__ws_form = $bindable(true),
hide__ws_messages = $bindable(false), hide__ws_messages = $bindable(false),
hide__ws_commands = $bindable(false), hide__ws_commands = $bindable(false),
@@ -310,7 +312,10 @@ function preventDefault(fn) {
</script> </script>
<section class="ae_element__websocket container p-1 bg-pink-100 text-xs mx-auto pb-16 mt-32 mb-32 relative"> <section
class:hidden={!ws_connect || hide__ws_element}
class="ae_element__websocket container p-1 bg-pink-100 text-xs mx-auto pb-16 mt-32 mb-32 relative"
>
<span class="absolute top-0 right-0 flex flex-col gap-1"> <span class="absolute top-0 right-0 flex flex-col gap-1">
<button <button

View File

@@ -124,6 +124,34 @@ let lq__event_obj = $derived(liveQuery(async () => {
return results; return results;
})); }));
// Event Device
let lq__event_device_obj = $derived(liveQuery(async () => {
if (log_lvl) {
console.log(`lq__event_device_obj: event_device_id = ${$events_slct?.event_device_id}`);
}
let results = await db_events.device
.get($events_slct.event_device_id);
if (log_lvl) {
console.log(`lq__event_device_obj: results = `, results);
}
// Check if results are different than the current session version stored under $events_slct
if ($events_slct.event_device_obj && results) {
if (JSON.stringify($events_slct.event_device_obj) !== JSON.stringify(results)) {
$events_slct.event_device_obj = { ...results};
if (log_lvl) {
console.log(`Device slct stored version has changed for ID = ${$events_slct.event_device_id}`, $events_slct.event_device_obj);
}
} else {
if (log_lvl > 1) {
console.log(`Device slct stored version has not changed for ID = ${$events_slct.event_device_id}`);
}
}
}
return results;
}));
// Event File - For Event // Event File - For Event
let lq__event_event_file_obj_li = $derived(liveQuery(async () => { let lq__event_event_file_obj_li = $derived(liveQuery(async () => {
let results = await db_events.file let results = await db_events.file
@@ -699,23 +727,23 @@ $effect(() => {
</title> </title>
</svelte:head> </svelte:head>
<!-- max-w-(--breakpoint-xl) --> <!-- outline-2 outline-red-500 -->
<div <div
class=" class="
static static
m-auto m-auto
border-x border-gray-200 dark:border-gray-600 border-x border-gray-200 dark:border-gray-600
mt-12 mb-14 sm:mb-12 mt-4 mb-16 sm:mb-12
h-full h-full
w-full max-w-7xl w-full max-w-7xl
outline transition-all
" "
> >
<header <header
id="Main-Header" id="Main-Header"
class:hidden={$events_loc.launcher.hide__launcher_header}
class=" class="
z-20 z-20
absolute top-0 left-0 right-0 absolute top-0 left-0 right-0
@@ -913,6 +941,7 @@ $effect(() => {
<footer <footer
id="Main-Footer" id="Main-Footer"
class:hidden={$events_loc.launcher.hide__launcher_footer}
class=" class="
z-20 z-20
absolute bottom-0 left-0 right-0 absolute bottom-0 left-0 right-0
@@ -935,24 +964,25 @@ $effect(() => {
[Help] [Help]
</div> --> </div> -->
<div class="slct_location_name"> <div class="slct_location_name transition-all duration-1000">
<span class="fas fa-map-marker-alt"></span> <span class="fas fa-map-marker-alt"></span>
{$lq__event_location_obj?.name} {$lq__event_location_obj?.name}
{$lq__event_device_obj?.name}
</div> </div>
<span <span
class="*:hover:inline px-1 rounded-md"
class:preset-tonal-warning={!$events_loc.launcher.ws_connect} class:preset-tonal-warning={!$events_loc.launcher.ws_connect}
class:preset-tonal-success={$events_loc.launcher.ws_connect} class:preset-tonal-success={$events_loc.launcher.ws_connect}
class="group px-1 rounded-md transition-all duration-1000"
> >
{#if $events_sess.launcher.ws_connect_status == 'connected'} {#if $events_sess.launcher.ws_connect_status == 'connected'}
<span class="fas fa-wifi mx-1"></span> <span class="fas fa-wifi mx-1"></span>
<span class="hidden"> <span class="hidden group-hover:inline">
WebSocket Connected WebSocket Connected
</span> </span>
{:else} {:else}
<span class="fas fa-times mx-1"></span> <span class="fas fa-times mx-1"></span>
<span class="hidden"> <span class="hidden group-hover:inline">
WebSocket Disconnected WebSocket Disconnected
</span> </span>
{/if} {/if}
@@ -1015,7 +1045,7 @@ $effect(() => {
easing: sineIn easing: sineIn
} }
} }
width={'min-w-80 w-1/2 max-w-(--breakpoint-lg)'} width={'w-md'}
bind:hidden={$events_loc.launcher.hide_drawer__cfg} bind:hidden={$events_loc.launcher.hide_drawer__cfg}
id="sidebar1" id="sidebar1"
> >
@@ -1023,9 +1053,9 @@ $effect(() => {
<Launcher_cfg></Launcher_cfg> <Launcher_cfg></Launcher_cfg>
<hr /> <hr class="my-2 border-gray-300 dark:border-gray-600" />
<div class="flex flex-row flex-wrap gap-0.5 items-center justify-center"> <div class="flex flex-row flex-wrap gap-0.5 items-center justify-center max-w-md">
<a href="/events/{$events_slct.event_id}" class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"> <a href="/events/{$events_slct.event_id}" class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500">
<span class="fas fa-search m-1"></span> <span class="fas fa-search m-1"></span>
Session Search Session Search
@@ -1051,6 +1081,7 @@ $effect(() => {
class="btn btn-sm variant-ghost-tertiary hover:variant-filled-tertiary" class="btn btn-sm variant-ghost-tertiary hover:variant-filled-tertiary"
>Test 2</button> --> >Test 2</button> -->
</div> </div>
</Drawer> </Drawer>
@@ -1120,7 +1151,7 @@ $effect(() => {
min-w-full min-w-full
" "
bodyClass='p-0 overflow-y-auto overscroll-contain' bodyClass='p-0 overflow-y-auto overscroll-contain'
headerClass={`fixed top-0 right-0 left-0 z-20 p-1 md:p-2 flex flex-row items-center justify-between ${$events_loc.launcher.controller == 'remote' ? 'hidden' : ''} bg-white dark:bg-gray-800 opacity-50`} headerClass={`fixed top-0 right-0 left-0 p-1 md:p-2 flex flex-row items-center ${$events_loc.launcher.controller == 'remote' ? 'hidden' : ''} bg-white dark:bg-gray-800 opacity-50 ${$events_loc.launcher.hide__modal_header_title ? 'justify-center' : 'justify-between'}`}
footerClass='text-center' footerClass='text-center'
onclose={async () => { onclose={async () => {
$events_sess.launcher.modal__open_event_file_id = null; $events_sess.launcher.modal__open_event_file_id = null;
@@ -1141,11 +1172,14 @@ $effect(() => {
{#snippet header()} {#snippet header()}
<!-- <div class="flex flex-row items-center justify-between"> --> <!-- <div class="flex flex-row items-center justify-between"> -->
<h3 class="text-lg font-semibold"> <h3
class:hidden={$events_loc.launcher.hide__modal_header_title}
class="text-lg font-semibold opacity-20 hover:opacity-100 transition-all">
{$events_sess.launcher?.modal__title ?? 'Digital Poster Display'} {$events_sess.launcher?.modal__title ?? 'Digital Poster Display'}
</h3> </h3>
<button <button
type="button" type="button"
class="btn flex-row-reverse group transition-all justify-self-end"
onclick={() => { onclick={() => {
$events_sess.launcher.modal__open_event_file_id = null; $events_sess.launcher.modal__open_event_file_id = null;
if ($events_loc.launcher.controller == 'local_push' && $events_sess.launcher.ws_connect_status == 'connected') { if ($events_loc.launcher.controller == 'local_push' && $events_sess.launcher.ws_connect_status == 'connected') {
@@ -1153,8 +1187,9 @@ $effect(() => {
}} }}
title="Close Modal" title="Close Modal"
> >
<span class="fas fa-times m-1"></span> <span class="fas fa-times my-1.5"></span>
<span class="hidden ">Close</span> <span class="hidden group-hover:inline">
Close</span>
</button> </button>
<!-- </div> --> <!-- </div> -->
{/snippet} {/snippet}
@@ -1174,10 +1209,18 @@ $effect(() => {
$events_sess.launcher.controller_trigger_send = true; $events_sess.launcher.controller_trigger_send = true;
// $events_sess.launcher.modal__open = false; // $events_sess.launcher.modal__open = false;
}} }}
class="absolute top-0 right-20 m-1 p-1 btn btn-sm preset-tonal-error hover:preset-filled-error-500" class="
absolute top-0 right-12
m-1 p-1
btn btn-sm
preset-tonal-error preset-outlined-error hover:preset-filled-success-200-800
transition-all
"
class:hidden={$events_loc.launcher.controller != 'local_push' || $events_sess.launcher.ws_connect_status != 'connected'} class:hidden={$events_loc.launcher.controller != 'local_push' || $events_sess.launcher.ws_connect_status != 'connected'}
title="Close the remote device's display of the poster"
> >
<span class="fas fa-times m-1"></span> <span class="fas fa-times m-1"></span>
<span class="fas fa-tv"></span>
Close Remote Poster Display Only Close Remote Poster Display Only
</button> </button>
<!-- Open: {$ae_api.base_url} {$events_sess.launcher.modal__open_event_file_id} --> <!-- Open: {$ae_api.base_url} {$events_sess.launcher.modal__open_event_file_id} -->
@@ -1206,10 +1249,18 @@ $effect(() => {
$events_sess.launcher.controller_trigger_send = true; $events_sess.launcher.controller_trigger_send = true;
// $events_sess.launcher.modal__open = false; // $events_sess.launcher.modal__open = false;
}} }}
class="absolute bottom-0 left-20 m-1 p-1 btn btn-sm preset-tonal-error hover:preset-filled-error-500" class="
absolute bottom-0 left-12
m-1 p-1
btn btn-sm
preset-tonal-error preset-outlined-error hover:preset-filled-success-200-800
transition-all
"
class:hidden={$events_loc.launcher.controller != 'local_push' || $events_sess.launcher.ws_connect_status != 'connected'} class:hidden={$events_loc.launcher.controller != 'local_push' || $events_sess.launcher.ws_connect_status != 'connected'}
title="Close the remote device's display of the poster"
> >
<span class="fas fa-times m-1"></span> <span class="fas fa-times m-1"></span>
<span class="fas fa-tv"></span>
Close Remote Poster Display Only Close Remote Poster Display Only
</button> </button>
@@ -1222,11 +1273,25 @@ $effect(() => {
$events_sess.launcher.modal__open_event_file_id = null; $events_sess.launcher.modal__open_event_file_id = null;
$events_sess.launcher.modal__event_file_obj = null; $events_sess.launcher.modal__event_file_obj = null;
}} }}
class="absolute bottom-0 right-20 m-1 p-1 btn btn-sm preset-tonal-warning hover:preset-tonal-warning border border-warning-500" class="
absolute bottom-0 right-12
m-1 p-1
btn btn-sm
preset-tonal-success preset-outlined-success hover:preset-filled-success-200-800
transition-all
"
class:hidden={!$ae_loc.trusted_access && ($events_loc.launcher.controller != 'local_push' || $events_sess.launcher.ws_connect_status != 'connected')} class:hidden={!$ae_loc.trusted_access && ($events_loc.launcher.controller != 'local_push' || $events_sess.launcher.ws_connect_status != 'connected')}
title="Close this controller's local modal display of this poster"
> >
<span class="fas fa-times m-1"></span> <span class="fas fa-times m-1"></span>
Close Controller Poster Only <span class="fas fa-list"></span>
Close
<!-- Controller -->
<!-- Local -->
Poster
<!-- Here -->
on This Device
<!-- Only -->
</button> </button>
<!-- <svelte:fragment slot="footer"> <!-- <svelte:fragment slot="footer">
@@ -1264,6 +1329,7 @@ $effect(() => {
type={'cmd'} type={'cmd'}
bind:trigger_send={$events_sess.launcher.controller_trigger_send} bind:trigger_send={$events_sess.launcher.controller_trigger_send}
bind:hide__ws_element={$events_loc.launcher.hide__ws_element}
bind:hide__ws_form={$events_loc.launcher.hide__ws_form} bind:hide__ws_form={$events_loc.launcher.hide__ws_form}
bind:hide__ws_messages={$events_loc.launcher.hide__ws_messages} bind:hide__ws_messages={$events_loc.launcher.hide__ws_messages}
bind:hide__ws_commands={$events_loc.launcher.hide__ws_commands} bind:hide__ws_commands={$events_loc.launcher.hide__ws_commands}

View File

@@ -11,7 +11,14 @@ import { events_loc, events_sess, events_slct, events_trigger, events_trig } fro
</script> </script>
<div class="flex flex-row items-center justify-between"> <div
class="
flex flex-col gap-1 items-center justify-start
w-full max-w-md
"
>
<div class="flex flex-row items-center justify-between w-full">
<h2 <h2
class="text-center mb-4 text-base font-semibold text-gray-500 dark:text-gray-400" class="text-center mb-4 text-base font-semibold text-gray-500 dark:text-gray-400"
> >
@@ -28,11 +35,11 @@ import { events_loc, events_sess, events_slct, events_trigger, events_trig } fro
</div> </div>
<hr> <hr class="my-2 border-gray-300 dark:border-gray-600" />
<section class="controller"> <section class="controller w-full">
<h3 <h3
class="text-center mb-4 text-sm font-semibold" class="text-center mb-2 text-sm font-semibold"
> >
<button <button
onclick={() => { onclick={() => {
@@ -123,17 +130,20 @@ import { events_loc, events_sess, events_slct, events_trigger, events_trig } fro
</div> </div>
</section> </section>
<hr> <hr class="my-2 border-gray-300 dark:border-gray-600" />
<section class="screen_saver w-full">
<h3 <h3
class="text-center mb-4 text-sm font-semibold" class="text-center mb-2 text-sm font-semibold w-full"
> >
Screen Saver Screen Saver
</h3> </h3>
</section>
<hr>
<hr class="my-2 border-gray-300 dark:border-gray-600" />
<!-- App Modes: default (browser), onsite (browser onsite), native (Electron app onsite) --> <!-- App Modes: default (browser), onsite (browser onsite), native (Electron app onsite) -->
@@ -146,9 +156,9 @@ import { events_loc, events_sess, events_slct, events_trigger, events_trig } fro
* native Electron caching and open method (download to cache, copy and then open) * native Electron caching and open method (download to cache, copy and then open)
* URL: new browser window * URL: new browser window
--> -->
<section class="app_modes"> <section class="app_modes w-full">
<h3 <h3
class="text-center mb-4 text-sm font-semibold" class="text-center mb-2 text-sm font-semibold"
> >
<button <button
onclick={() => { onclick={() => {
@@ -167,10 +177,11 @@ import { events_loc, events_sess, events_slct, events_trigger, events_trig } fro
</h3> </h3>
<div <div
class="grid grid-cols-2 gap-2" class="flex flex-col gap-1 items-center justify-start w-full"
class:hidden={!$events_loc.launcher.show_section__app_modes} class:hidden={!$events_loc.launcher.show_section__app_modes}
> >
<div class="flex flex-row flex-wrap gap-1 items-center justify-center w-full">
{#if !$events_loc.launcher.app_mode || $events_loc.launcher.app_mode != 'default'} {#if !$events_loc.launcher.app_mode || $events_loc.launcher.app_mode != 'default'}
<button <button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500" class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
@@ -210,8 +221,9 @@ import { events_loc, events_sess, events_slct, events_trigger, events_trig } fro
Change to Onsite Mode Change to Onsite Mode
</button> </button>
{/if} {/if}
</div>
<div class="flex flex-row flex-wrap gap-1 items-center justify-center w-full">
{#if $events_loc.launcher.hide__launcher_menu} {#if $events_loc.launcher.hide__launcher_menu}
<button <button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500" class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
@@ -225,6 +237,61 @@ import { events_loc, events_sess, events_slct, events_trigger, events_trig } fro
Show Launcher Menu Show Launcher Menu
</button> </button>
{/if} {/if}
{#if !$events_loc.launcher.hide__launcher_header}
<button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
onclick={() => {
$events_loc.launcher.hide__launcher_header = true;
// ae_event_launcher.set($ae_event_launcher);
// console.log($events_loc.launcher);
}}
title="Hide launcher header"
>
Hide Launcher Header
</button>
{/if}
{#if $events_loc.launcher.hide__launcher_header}
<button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
onclick={() => {
$events_loc.launcher.hide__launcher_header = false;
// ae_event_launcher.set($ae_event_launcher);
// console.log($events_loc.launcher);
}}
title="Show launcher header"
>
Show Launcher Header
</button>
{/if}
{#if !$events_loc.launcher.hide__launcher_footer}
<button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
onclick={() => {
$events_loc.launcher.hide__launcher_footer = true;
// ae_event_launcher.set($ae_event_launcher);
// console.log($events_loc.launcher);
}}
title="Hide launcher footer"
>
Hide Launcher Footer
</button>
{/if}
{#if $events_loc.launcher.hide__launcher_footer}
<button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
onclick={() => {
$events_loc.launcher.hide__launcher_footer = false;
// ae_event_launcher.set($ae_event_launcher);
// console.log($events_loc.launcher);
}}
title="Show launcher footer"
>
Show Launcher Footer
</button>
{/if}
<!-- Show/Hide Launcher Menu -->
{#if !$events_loc.launcher.hide__launcher_menu} {#if !$events_loc.launcher.hide__launcher_menu}
<button <button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500" class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
@@ -238,21 +305,132 @@ import { events_loc, events_sess, events_slct, events_trigger, events_trig } fro
Hide Launcher Menu Hide Launcher Menu
</button> </button>
{/if} {/if}
<!-- Show/Hide Session Start/End Datetimes hide__session_datetimes -->
{#if !$events_loc.launcher.hide__session_datetimes}
<button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
onclick={() => {
$events_loc.launcher.hide__session_datetimes = true;
// ae_event_launcher.set($ae_event_launcher);
// console.log($events_loc.launcher);
}}
title="Hide session start/end datetimes"
>
Hide Session Datetimes
</button>
{/if}
{#if $events_loc.launcher.hide__session_datetimes}
<button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
onclick={() => {
$events_loc.launcher.hide__session_datetimes = false;
// ae_event_launcher.set($ae_event_launcher);
// console.log($events_loc.launcher);
}}
title="Show session start/end datetimes"
>
Show Session Datetimes
</button>
{/if}
<button
type="button"
onclick={() => {
if ($events_loc.launcher.time_format == 'time_12_short') {
// $events_loc.launcher.datetime_format = 'datetime_long';
$events_loc.launcher.time_format = 'time_short';
$events_loc.launcher.time_hours = 24;
} else {
$events_loc.launcher.time_format = 'time_12_short';
// $events_loc.launcher.datetime_format = 'datetime_12_long';
$events_loc.launcher.time_hours = 12;
}
}}
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
>
Time Format:
{#if $events_loc.launcher.time_format == 'time_12_short'}
12-hour
{:else}
24-hour
{/if}
</button>
<!-- Show/Hide Websocket element hide__ws_element -->
{#if !$events_loc.launcher.hide__ws_element}
<button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
onclick={() => {
$events_loc.launcher.hide__ws_element = true;
// ae_event_launcher.set($ae_event_launcher);
// console.log($events_loc.launcher);
}}
title="Hide WebSocket element"
>
Hide WebSocket Element
</button>
{/if}
{#if $events_loc.launcher.hide__ws_element}
<button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
onclick={() => {
$events_loc.launcher.hide__ws_element = false;
// ae_event_launcher.set($ae_event_launcher);
// console.log($events_loc.launcher);
}}
title="Show WebSocket element"
>
Show WebSocket Element
</button>
{/if}
<!-- Show/Hide modal header title hide__modal_header_title -->
{#if !$events_loc.launcher.hide__modal_header_title}
<button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
onclick={() => {
$events_loc.launcher.hide__modal_header_title = true;
// ae_event_launcher.set($ae_event_launcher);
// console.log($events_loc.launcher);
}}
title="Hide modal header title"
>
Hide Modal Header Title
</button>
{/if}
{#if $events_loc.launcher.hide__modal_header_title}
<button
class="btn btn-sm preset-tonal-primary hover:preset-filled-primary-500"
onclick={() => {
$events_loc.launcher.hide__modal_header_title = false;
// ae_event_launcher.set($ae_event_launcher);
// console.log($events_loc.launcher);
}}
title="Show modal header title"
>
Show Modal Header Title
</button>
{/if}
</div>
</div> </div>
</section> </section>
<section class="local_cfg_refresh w-full">
<h3 <h3
class="text-center mb-4 text-sm font-semibold" class="text-center mb-2 text-sm font-semibold"
> >
Local Config Refresh Local Config Refresh
</h3> </h3>
</section>
<hr />
<hr class="my-2 border-gray-300 dark:border-gray-600" />
<div class="text-center"> <div class="text-center">
@@ -265,3 +443,5 @@ import { events_loc, events_sess, events_slct, events_trigger, events_trig } fro
<!-- Debug --> <!-- Debug -->
</button> </button>
</div> </div>
</div>

View File

@@ -260,6 +260,7 @@ async function handle_open_file() {
flex flex-col md:flex-row flex-wrap flex flex-col md:flex-row flex-wrap
gap-1 items-center gap-1 items-center
max-w-full max-w-full
transition-all
" "
class:justify-between={!hide_meta} class:justify-between={!hide_meta}
class:justify-center={hide_meta} class:justify-center={hide_meta}

View File

@@ -28,6 +28,7 @@ import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$
import { db_events } from "$lib/ae_events/db_events"; import { db_events } from "$lib/ae_events/db_events";
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores'; import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores';
import { events_func } from '$lib/ae_events_functions'; import { events_func } from '$lib/ae_events_functions';
import { hide } from '@popperjs/core';
// let load_event_session_obj = events_func.load_ae_obj_id__event_session({ // let load_event_session_obj = events_func.load_ae_obj_id__event_session({
@@ -239,6 +240,7 @@ let ae_promises: key_val = $state({});
<header class="event_session_about text-center border-b-2 border-gray-400 flex flex-row flex-wrap gap-2 items-center justify-between"> <header class="event_session_about text-center border-b-2 border-gray-400 flex flex-row flex-wrap gap-2 items-center justify-between">
<h3 <h3
class:hidden={!$lq__event_session_obj?.start_datetime || $events_loc.launcher.hide__session_datetimes}
class="shrink event_session_datetimes" class="shrink event_session_datetimes"
> >
<button <button
@@ -267,7 +269,11 @@ let ae_promises: key_val = $state({});
</button> </button>
</h3> </h3>
<span class="grow flex flex-row gap-2 items-center justify-end"> <span
class:justify-between={$events_loc.launcher.hide__session_datetimes}
class:justify-end={!$events_loc.launcher.hide__session_datetimes}
class="grow flex flex-row gap-2 items-center"
>
<h2 <h2
class="shrink text-xl" class="shrink text-xl"
title={`Name: ${$lq__event_session_obj.name}\nType: ${$lq__event_session_obj.type_code} \nCode: ${$lq__event_session_obj.code} \nID: ${$lq__event_session_obj.event_session_id_random} \nStart Date/Time: ${ae_util.iso_datetime_formatter($lq__event_session_obj.start_datetime, 'week_long')} ${ae_util.iso_datetime_formatter($lq__event_session_obj.start_datetime, $events_loc.launcher.time_format)} \nEnd Date/Time: ${ae_util.iso_datetime_formatter($lq__event_session_obj.end_datetime, $events_loc.launcher.time_format)}`} title={`Name: ${$lq__event_session_obj.name}\nType: ${$lq__event_session_obj.type_code} \nCode: ${$lq__event_session_obj.code} \nID: ${$lq__event_session_obj.event_session_id_random} \nStart Date/Time: ${ae_util.iso_datetime_formatter($lq__event_session_obj.start_datetime, 'week_long')} ${ae_util.iso_datetime_formatter($lq__event_session_obj.start_datetime, $events_loc.launcher.time_format)} \nEnd Date/Time: ${ae_util.iso_datetime_formatter($lq__event_session_obj.end_datetime, $events_loc.launcher.time_format)}`}