293 lines
9.3 KiB
TypeScript
293 lines
9.3 KiB
TypeScript
import { localStorageStore } from '@skeletonlabs/skeleton';
|
|
import { writable } from 'svelte/store';
|
|
import type { Writable } from 'svelte/store';
|
|
|
|
|
|
import { PUBLIC_TESTING, PUBLIC_AE_API_PROTOCOL, PUBLIC_AE_API_SERVER, PUBLIC_AE_API_BAK_SERVER, PUBLIC_AE_API_PORT, PUBLIC_AE_API_PATH, PUBLIC_AE_API_SECRET_KEY, PUBLIC_AE_API_CRUD_SUPER_KEY, PUBLIC_AE_NO_ACCOUNT_ID, PUBLIC_AE_NO_ACCOUNT_ID_TOKEN, PUBLIC_AE_ACCOUNT_ID, PUBLIC_AE_EVENT_ID, PUBLIC_AE_SPONSORSHIP_CFG_ID } from '$env/static/public';
|
|
console.log(`AE Stores - PUBLIC_TESTING:`, PUBLIC_TESTING);
|
|
|
|
const api_base_url = `${PUBLIC_AE_API_PROTOCOL}://${PUBLIC_AE_API_SERVER}:${PUBLIC_AE_API_PORT}${PUBLIC_AE_API_PATH}`;
|
|
const api_base_url_bak = `${PUBLIC_AE_API_PROTOCOL}://${PUBLIC_AE_API_BAK_SERVER}:${PUBLIC_AE_API_PORT}${PUBLIC_AE_API_PATH}`;
|
|
|
|
const api_secret_key = PUBLIC_AE_API_SECRET_KEY;
|
|
const api_crud_super_key = PUBLIC_AE_API_CRUD_SUPER_KEY;
|
|
|
|
// const ae_account_id = PUBLIC_AE_ACCOUNT_ID;
|
|
let ae_account_id: null|string = null;
|
|
const ae_no_account_id = PUBLIC_AE_NO_ACCOUNT_ID;
|
|
const ae_no_account_id_token = PUBLIC_AE_NO_ACCOUNT_ID_TOKEN;
|
|
const ae_event_id = PUBLIC_AE_EVENT_ID;
|
|
const ae_sponsorship_cfg_id = PUBLIC_AE_SPONSORSHIP_CFG_ID;
|
|
|
|
// import { getStores, navigating, page, updated } from '$app/stores';
|
|
// import { assets, base, resolveRoute } from '$app/paths';
|
|
// console.log(page.path); // Everything after the domain name
|
|
|
|
// console.log(import.meta.env.MODE);
|
|
// console.log(import.meta.env.BASE_URL);
|
|
|
|
|
|
// Export the key_val type for use in other files.
|
|
export type key_val = {
|
|
[key: string]: any; // variable key
|
|
// name: string;
|
|
};
|
|
// export type key_val = key_val;
|
|
|
|
// *** BEGIN *** Longer-term app data. This should be stored to local storage.
|
|
export let ae_app_local_data_struct: key_val = {
|
|
'ver': '2024-05-01_15',
|
|
'name': 'Aether - App Hub (SvelteKit 2.x Svelte 4.x)',
|
|
'theme': 'light',
|
|
'iframe': false,
|
|
'title': `OSIT's Æ`, // - Dev SvelteKit`, // Æ
|
|
|
|
'debug': false, // A simple flag to know if we should show debug information.
|
|
|
|
'account_id': ae_account_id, // OSIT Demo _XY7DXtc9MY
|
|
'account_code': 'not_set',
|
|
'account_name': 'Account Name Not Set',
|
|
'site_domain': null, // https://example.com, https://dev.example.com, etc.
|
|
'site_cfg_json': {
|
|
slct__event_id: null,
|
|
slct__event_badge_template_id: null,
|
|
slct__sponsorship_cfg_id: null,
|
|
header_image_path: null,
|
|
},
|
|
|
|
'page_access_code_li': {'administrator': '11500', 'trusted': '19111', 'authenticated': '00000'},
|
|
'administrator_passcode': '11500',
|
|
'trusted_passcode': '19111',
|
|
|
|
'access_type': 'anonymous',
|
|
'administrator_access': false,
|
|
'trusted_access': false,
|
|
'public_access': false,
|
|
'authenticated_access': false,
|
|
'anonymous_access': true,
|
|
|
|
'user_email': null,
|
|
|
|
'qry__enabled': 'enabled', // all, disabled, enabled
|
|
'qry__hidden': 'not_hidden', // all, hidden, not_hidden
|
|
'qry__limit': 20,
|
|
'qry__offset': 0,
|
|
|
|
qr_scanner_version: 'one',
|
|
|
|
'admin': {
|
|
show_element__sql_qry: false,
|
|
show_element__sql_qry_results: false,
|
|
},
|
|
|
|
'ds': {},
|
|
'hub': {
|
|
'show_element__cfg': true,
|
|
'show_element__cfg_detail': false,
|
|
'show_element__access_type': true,
|
|
'theme_mode': 'dark',
|
|
'theme_name': 'wintry',
|
|
|
|
'classes__form': 'border border-surface-200 p-4 space-y-4 rounded-container-token',
|
|
|
|
'qr': {},
|
|
},
|
|
'mod': {
|
|
'archives': {},
|
|
|
|
'events': {
|
|
'event_id': null,
|
|
|
|
show_edit__event_presenter_obj: false,
|
|
show_list__event_presenter_obj_li: true,
|
|
show_view__event_presenter_obj: false,
|
|
|
|
submit_status: null, // 'saving', 'created', 'updated'
|
|
|
|
// Badge Printing
|
|
|
|
// Lead Retrievals
|
|
|
|
// Presentation Management
|
|
|
|
// Speakers Management
|
|
'default_session_id': null, // Assign to presenters by default
|
|
|
|
// other
|
|
},
|
|
|
|
'journals': {},
|
|
|
|
'posts': {},
|
|
|
|
'sponsorships': {
|
|
'cfg_id': ae_sponsorship_cfg_id,
|
|
|
|
for_type: null,
|
|
for_id: null,
|
|
|
|
level_guest_max_li: {
|
|
0: 0,
|
|
1: 4, // CHOW 2024 - Friend
|
|
2: 8, // CHOW 2024 - Supporter
|
|
3: 8, // CHOW 2024 - Advocate
|
|
4: 8, // CHOW 2024 - Champion
|
|
5: 8, // CHOW 2024 - Presenting Partner
|
|
6: 16, // CHOW 2024 - Signature Partner
|
|
7: 16, // CHOW 2024 - Premier Partner
|
|
},
|
|
|
|
show_edit__sponsorship_obj: false,
|
|
show_list__sponsorship_obj_li: true,
|
|
show_view__sponsorship_obj: false,
|
|
|
|
show_question__accommodations: false,
|
|
|
|
submit_status: null, // 'saving', 'created', 'updated'
|
|
},
|
|
|
|
'testing': {},
|
|
},
|
|
}
|
|
// console.log(`AE Stores - App Local Storage Data:`, ae_app_local_data_struct);
|
|
|
|
// This works, but does not uses local storage:
|
|
// export let ae_loc = writable(ae_app_local_data_struct);
|
|
|
|
// This works and uses local storage:
|
|
export let ae_loc: Writable<key_val> = localStorageStore('ae_loc', ae_app_local_data_struct);
|
|
// console.log(`AE Stores - App Local Storage Data:`, get(ae_loc));
|
|
|
|
|
|
// *** BEGIN *** Temporary app data. This should be stored to session storage.
|
|
export let ae_app_session_data_struct: key_val = {
|
|
'ver': '2024-02-27_13',
|
|
// 'name': 'Aether App Template',
|
|
// 'theme': 'light',
|
|
// 'account_id': ae_account_id,
|
|
'ds': {
|
|
'submit_status': null,
|
|
},
|
|
'ds_loaded': {
|
|
},
|
|
'hub': {
|
|
'show_xyz': null,
|
|
},
|
|
'mod': {
|
|
'archives': {},
|
|
'events': {
|
|
// Badge Printing
|
|
|
|
// Lead Retrievals
|
|
|
|
// Presentation Management
|
|
|
|
// Speakers Management
|
|
|
|
// other
|
|
},
|
|
'journals': {},
|
|
'posts': {},
|
|
'sponsorships': {
|
|
disable_submit__sponsorship_obj: false,
|
|
slct__level_num: 0,
|
|
show_question__accommodations: false,
|
|
submit_status: null, // 'saving', 'created', 'updated', 'saved'
|
|
},
|
|
'testing': {},
|
|
},
|
|
|
|
'download': {},
|
|
'download_li': {},
|
|
};
|
|
// console.log(`AE Stores - App Session Storage Data:`, ae_app_session_data_struct);
|
|
export let ae_sess = writable(ae_app_session_data_struct);
|
|
|
|
|
|
// *** BEGIN *** Temporary API data. This should be stored to session storage.
|
|
export let ae_api_data_struct: key_val = {
|
|
'ver': '2024-02-22_17',
|
|
'base_url': api_base_url,
|
|
'base_url_bak': api_base_url_bak,
|
|
'api_secret_key': api_secret_key, // 'YOUR_API_SECRET_KEY',
|
|
'api_secret_key_bak': api_secret_key, // 'YOUR_API_SECRET_KEY',
|
|
'api_crud_super_key': api_crud_super_key, // 'YOUR_SUPER_KEY' 'zp5PtX4zUsI'
|
|
'headers': {},
|
|
'account_id': ae_account_id,
|
|
};
|
|
|
|
let ae_api_headers: key_val = {};
|
|
ae_api_headers['Access-Control-Allow-Origin'] = '*';
|
|
ae_api_headers['content-type'] = 'application/json';
|
|
ae_api_headers['x-aether-api-key'] = ae_api_data_struct.api_secret_key;
|
|
ae_api_headers['x-aether-api-token'] = 'fake-temp-token';
|
|
ae_api_headers['x-aether-api-expire-on'] = '';
|
|
if (ae_account_id) {
|
|
ae_api_headers['x-account-id'] = ae_account_id;
|
|
} else {
|
|
// ae_api_headers['x-account-id'] = ;
|
|
}
|
|
if (ae_no_account_id) {
|
|
ae_api_headers['x-no-account-id'] = ae_no_account_id;
|
|
}
|
|
ae_api_data_struct['headers'] = ae_api_headers;
|
|
|
|
console.log(`AE Stores - API Data:`, ae_api_data_struct);
|
|
export let ae_api = writable(ae_api_data_struct);
|
|
|
|
// *** BEGIN *** Trigger to update the slct variables and other things.
|
|
let ae_trig_template: key_val = {};
|
|
export let ae_trig = writable(ae_trig_template);
|
|
|
|
|
|
/* *** BEGIN *** Initialize slct and slct_trigger */
|
|
/* The slct and slct_trigger variable should not be stored in local storage. Only use session storage because browser tabs can be open to different accounts, events, sponsorships, etc. */
|
|
|
|
// Intended for temporary session storage.
|
|
// Updated 2024-03-15
|
|
let slct_obj_template: key_val = {
|
|
'account_id': ae_account_id,
|
|
'account_obj': {},
|
|
'event_id': null,
|
|
'event_obj': {},
|
|
'event_obj_li': [],
|
|
// 'event_exhibit_id': null,
|
|
// 'event_exhibit_obj': {},
|
|
// 'event_exhibit_obj_li': [],
|
|
'event_presentation_id': null,
|
|
'event_presentation_obj': {},
|
|
'event_presentation_obj_li': [],
|
|
'event_presenter_id': null,
|
|
'event_presenter_obj': {},
|
|
'event_presenter_obj_li': [],
|
|
'event_session_id': null,
|
|
'event_session_obj': {},
|
|
'event_session_obj_li': [],
|
|
'sponsorship_id': null,
|
|
'sponsorship_obj': {},
|
|
'sponsorship_obj_li': [],
|
|
'sponsorship_cfg_id': ae_sponsorship_cfg_id,
|
|
'sponsorship_cfg_obj': {},
|
|
'sponsorship_cfg_obj_li': [],
|
|
'post_id': null,
|
|
'post_obj': {},
|
|
'post_obj_li': [],
|
|
'post_comment_id': null,
|
|
'post_comment_obj': {},
|
|
'post_comment_obj_li': []
|
|
};
|
|
// console.log(`AE Stores - Selected Objects:`, slct_obj_template);
|
|
|
|
// This works, and uses *session* (not local) storage:
|
|
export let slct = writable(slct_obj_template);
|
|
|
|
// This works and uses *local* storage:
|
|
// export let slct: Writable<key_val> = localStorageStore('ae_slct', slct_obj_template);
|
|
|
|
|
|
/* *** BEGIN *** Initialize slct_trigger */
|
|
// Intended for temporary session storage.
|
|
// Updated 2024-02-27
|
|
export let slct_trigger: any = writable(null);
|
|
// console.log(`AE Stores - Selected Trigger:`, slct_trigger);
|