81 lines
2.6 KiB
JavaScript
81 lines
2.6 KiB
JavaScript
/**
|
|
* Virtual Banker Widget Loader
|
|
*
|
|
* Usage:
|
|
* <script src="path/to/widget.js"
|
|
* data-tenant-id="your-tenant-id"
|
|
* data-user-id="user-id"
|
|
* data-auth-token="jwt-token"
|
|
* data-api-url="https://api.example.com"
|
|
* data-avatar-enabled="true"></script>
|
|
* <div id="virtual-banker-widget"></div>
|
|
*/
|
|
|
|
(function() {
|
|
'use strict';
|
|
|
|
// Get configuration from script tag
|
|
const script = document.currentScript;
|
|
const config = {
|
|
tenantId: script.getAttribute('data-tenant-id') || 'default',
|
|
userId: script.getAttribute('data-user-id') || undefined,
|
|
authToken: script.getAttribute('data-auth-token') || undefined,
|
|
apiUrl: script.getAttribute('data-api-url') || undefined,
|
|
avatarEnabled: script.getAttribute('data-avatar-enabled') !== 'false',
|
|
};
|
|
|
|
// Load React and ReactDOM (should be loaded separately or bundled)
|
|
// For now, this is a placeholder - the actual widget will be loaded via the built bundle
|
|
console.log('Virtual Banker Widget Loader initialized', config);
|
|
|
|
// Create container if it doesn't exist
|
|
let container = document.getElementById('virtual-banker-widget');
|
|
if (!container) {
|
|
container = document.createElement('div');
|
|
container.id = 'virtual-banker-widget';
|
|
document.body.appendChild(container);
|
|
}
|
|
|
|
// Store config for widget initialization
|
|
container.dataset.tenantId = config.tenantId;
|
|
if (config.userId) container.dataset.userId = config.userId;
|
|
if (config.authToken) container.dataset.authToken = config.authToken;
|
|
if (config.apiUrl) container.dataset.apiUrl = config.apiUrl;
|
|
container.dataset.avatarEnabled = config.avatarEnabled.toString();
|
|
|
|
// Export API for programmatic control
|
|
window.VirtualBankerWidgetAPI = {
|
|
open: function() {
|
|
const widget = document.getElementById('virtual-banker-widget');
|
|
if (widget) {
|
|
widget.style.display = 'block';
|
|
}
|
|
},
|
|
close: function() {
|
|
const widget = document.getElementById('virtual-banker-widget');
|
|
if (widget) {
|
|
widget.style.display = 'none';
|
|
}
|
|
},
|
|
minimize: function() {
|
|
const widget = document.getElementById('virtual-banker-widget');
|
|
if (widget) {
|
|
widget.classList.add('minimized');
|
|
}
|
|
},
|
|
setContext: function(context) {
|
|
const widget = document.getElementById('virtual-banker-widget');
|
|
if (widget) {
|
|
widget.dataset.context = JSON.stringify(context);
|
|
}
|
|
},
|
|
setAuthToken: function(token) {
|
|
const widget = document.getElementById('virtual-banker-widget');
|
|
if (widget) {
|
|
widget.dataset.authToken = token;
|
|
}
|
|
},
|
|
};
|
|
})();
|
|
|