46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
/*****************
|
|
* Configurations *
|
|
******************/
|
|
|
|
const { applyConfig, updateConfig } = (function() {
|
|
const DEFAULT_APP_CONFIG = {
|
|
changeEventsEnabled: true,
|
|
// `autoRefreshState` is mostly used for unit testing puposes.
|
|
// states: disabled | waiting | started | syncing | complete
|
|
autoRefreshState: "disabled",
|
|
theme: undefined, // dark | light (will be set via `initTheme` if undefined)
|
|
diagramPreviewType: "png",
|
|
editorWatcherTimeout: 500,
|
|
editorCreateOptions: {
|
|
automaticLayout: true,
|
|
fixedOverflowWidgets: true,
|
|
minimap: { enabled: false },
|
|
scrollbar: { alwaysConsumeMouseWheel: false },
|
|
scrollBeyondLastLine: false,
|
|
tabSize: 2,
|
|
theme: "vs", // "vs-dark"
|
|
}
|
|
};
|
|
|
|
function applyConfig() {
|
|
setTheme(document.appConfig.theme);
|
|
document.editor?.updateOptions(document.appConfig.editorCreateOptions);
|
|
document.settingsEditor?.updateOptions(document.appConfig.editorCreateOptions);
|
|
}
|
|
function updateConfig(appConfig) {
|
|
localStorage.setItem("document.appConfig", JSON.stringify(appConfig));
|
|
sendMessage({
|
|
sender: "config",
|
|
data: { appConfig },
|
|
synchronize: true,
|
|
});
|
|
}
|
|
|
|
document.appConfig = Object.assign({}, window.opener?.document.appConfig);
|
|
if (Object.keys(document.appConfig).length === 0) {
|
|
document.appConfig = JSON.parse(localStorage.getItem("document.appConfig")) || DEFAULT_APP_CONFIG;
|
|
}
|
|
|
|
return { applyConfig, updateConfig };
|
|
})();
|