// 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 */