Files
OSIT-AE-App-Svelte/public/ae_bridge_init.js
2024-02-15 09:20:57 -05:00

176 lines
6.4 KiB
JavaScript

// These localStorage values were created when generating the HTML
// let ae_local = window.localStorage.getItem('ae'); // Includes: cfg, client, page, other
// let ae_session = window.sessionStorage.getItem('ae'); // Includes: cfg, client, page, other
// let ae_com_local = window.localStorage.getItem('ae_com');
// let ae_com_session = window.sessionStorage.getItem('ae_com');
if (window.localStorage.getItem('ae') === null) {
window.localStorage.setItem('ae', JSON.stringify({ 'cfg': {}, 'client': {}, 'page': {}, 'other': {}, 'test': {} }));
}
if (window.sessionStorage.getItem('ae') === null) {
window.sessionStorage.setItem('ae', JSON.stringify({ 'cfg': {}, 'client': {}, 'page': {}, 'other': {}, 'test': {} }));
}
// JSON.parse(window.sessionStorage.getItem('ae'))
// export let ae_bridge = {
const ae_bridge = {
// example_var: 'Example Default Value',
// get example() {
// return this.example_var;
// },
// set example(new_value) {
// this.example_var = new_value;
// this.example_var_listener(new_value);
// this.example_var_core_listener(new_value);
// this.example_var_mods_listener(new_value);
// },
// example_var_listener: function (new_value) {},
// registerNewListener: function (external_listener_function) {
// this.example_var_listener = external_listener_function;
// },
// example_var_core_listener: function (new_value) {},
// registerNewCoreListener: function (external_core_listener_function) {
// this.example_var_core_listener = external_core_listener_function;
// },
// example_var_mods_listener: function (new_value) {},
// registerNewModsListener: function (external_mods_listener_function) {
// this.example_var_mods_listener = external_mods_listener_function;
// },
// Monitor change in **local** storage AE
// Created and set when generating and then rendering the inital HTML and JS
// ae_local_var: true,
ae_local_var: JSON.parse(window.localStorage.getItem('ae')),
get ae_local() {
return this.ae_local_var;
},
set ae_local(new_value) {
console.log('ae_local_var: new_value: ', new_value);
this.ae_local_var = new_value;
this.ae_local_listener(new_value);
window.localStorage.setItem('ae', new_value);
},
ae_local_listener: function (new_value) {},
register_ae_local_listener: function (external_listener_function) {
this.ae_local_listener = external_listener_function;
},
// Monitor change in **session* storage AE
// Created and set when generating and then rendering the inital HTML and JS
// ae_session_var: true,
// ae_session_var: JSON.parse((window.sessionStorage.getItem('ae') ? window.sessionStorage.getItem('ae') : {'cfg': true, 'client': true, 'page': true, 'other': true})),
// ae_session_var: {'example': 'This is just an example from init.js!'},
ae_session_var: JSON.parse(window.sessionStorage.getItem('ae')),
get ae_session() {
return this.ae_session_var;
},
set ae_session(new_value) {
console.log('ae_session_var: new_value: ', new_value);
this.ae_session_var = new_value;
this.ae_session_listener(new_value);
window.sessionStorage.setItem('ae', new_value);
},
ae_session_listener: function (new_value) {},
register_ae_session_listener: function (external_listener_function) {
this.ae_session_listener = external_listener_function;
},
// Monitor change in Access Type
access_type_var: 'anonymous',
get access_type() {
return this.access_type_var;
},
set access_type(new_value) {
this.access_type_var = new_value;
this.access_type_var_core_listener(new_value);
this.access_type_var_mods_listener(new_value);
},
access_type_var_core_listener: function (new_value) {},
register_core_access_type_listener: function (external_core_listener_function) {
this.access_type_var_core_listener = external_core_listener_function;
},
access_type_var_mods_listener: function (new_value) {},
register_mods_access_type_listener: function (external_mods_listener_function) {
this.access_type_var_mods_listener = external_mods_listener_function;
},
// Monitor change in AE Common
// ae_com_var: true,
ae_com_var: JSON.parse(window.localStorage.getItem('ae_com')),
get ae_com() {
return this.ae_com_var;
},
set ae_com(new_value) {
this.ae_com_var = new_value;
this.ae_com_var_core_listener(new_value);
this.ae_com_var_mods_listener(new_value);
},
ae_com_var_core_listener: function (new_value) {},
register_core_ae_com_listener: function (external_core_listener_function) {
this.ae_com_var_core_listener = external_core_listener_function;
},
ae_com_var_mods_listener: function (new_value) {},
register_mods_ae_com_listener: function (external_mods_listener_function) {
this.ae_com_var_mods_listener = external_mods_listener_function;
},
// Monitor change in Client
client_var: true,
get client() {
return this.client_var;
},
set client(new_value) {
this.client_var = new_value;
this.client_var_core_listener(new_value);
this.client_var_mods_listener(new_value);
},
client_var_core_listener: function (new_value) {},
register_core_client_listener: function (external_core_listener_function) {
this.client_var_core_listener = external_core_listener_function;
},
client_var_mods_listener: function (new_value) {},
register_mods_client_listener: function (external_mods_listener_function) {
this.client_var_mods_listener = external_mods_listener_function;
},
};
console.log('ae_bridge_init.js loaded');
// Updated: 2024-02-09
/* BEGIN: Add this to the stores.ts */
// This adds a listener to the ae_bridge object. This can then be exported and used in the Svelte components.
// export let ae_example = writable(ae_bridge.ae_example);
// ae_bridge.register_ae_example_listener((new_value) => {
// console.log(`AE Bridge: AE Example: ${new_value}`);
// console.log(new_value);
// ae_example.set(new_value);
// console.log(ae_example);
// });
/* END: Add this to the stores.ts */
/* BEGIN: Add this to the Svelte components */
// import { ae_example } from './stores';
/* END: Add this to the Svelte components */