Convert galaxy.js imports; minor fixup.

This commit is contained in:
Dannon Baker
2017-10-23 14:59:02 -04:00
parent 5b196ccdfe
commit d745423732
7 changed files with 265 additions and 289 deletions
+259 -283
View File
@@ -1,25 +1,13 @@
define(
[
"libs/underscore",
"libs/backbone",
"mvc/base-mvc",
"mvc/user/user-model",
"utils/metrics-logger",
"utils/add-logging",
"utils/localization"
],
function(
_,
Backbone,
BASE_MVC,
userModel,
metricsLogger,
addLogging,
localize
) {
// TODO: move into a singleton pattern and have dependents import Galaxy
// ============================================================================
/** Base galaxy client-side application.
import _ from "libs/underscore";
import Backbone from "libs/backbone";
import BASE_MVC from "mvc/base-mvc";
import userModel from "mvc/user/user-model";
import metricsLogger from "utils/metrics-logger";
import addLogging from "utils/add-logging";
import localize from "utils/localization";
// TODO: move into a singleton pattern and have dependents import Galaxy
// ============================================================================
/** Base galaxy client-side application.
* Iniitializes:
* logger : the logger/metrics-logger
* localize : the string localizer
@@ -27,278 +15,266 @@ define(
* galaxy.ini available from the configuration API)
* user : the current user (as a mvc/user/user-model)
*/
function GalaxyApp(options, bootstrapped) {
var self = this;
return self._init(options || {}, bootstrapped || {});
function GalaxyApp(options, bootstrapped) {
var self = this;
return self._init(options || {}, bootstrapped || {});
}
// add logging shortcuts for this object
addLogging(GalaxyApp, "GalaxyApp");
// a debug flag can be set via local storage and made available during script/page loading
var DEBUGGING_KEY = "galaxy:debug",
NAMESPACE_KEY = DEBUGGING_KEY + ":namespaces",
localDebugging = false;
try {
localDebugging = localStorage.getItem(DEBUGGING_KEY) == "true";
} catch (storageErr) {
console.log(
localize("localStorage not available for debug flag retrieval")
);
}
/** initalize options and sub-components */
GalaxyApp.prototype._init = function __init(options, bootstrapped) {
var self = this;
_.extend(self, Backbone.Events);
if (localDebugging) {
self.logger = console;
console.debug(
"debugging galaxy:",
"options:",
options,
"bootstrapped:",
bootstrapped
);
}
self._processOptions(options);
// add root and url parameters
self.root = options.root || "/";
self.params = options.params || {};
self.session_csrf_token = options.session_csrf_token || null;
self._initConfig(options.config || {});
self._patchGalaxy(window.Galaxy);
self._initLogger(self.options.loggerOptions || {});
// at this point, either logging or not and namespaces are enabled - chat it up
self.debug("GalaxyApp.options: ", self.options);
self.debug("GalaxyApp.config: ", self.config);
self.debug("GalaxyApp.logger: ", self.logger);
self._initLocale();
self.debug("GalaxyApp.localize: ", self.localize);
self.config = options.config || {};
self.debug("GalaxyApp.config: ", self.config);
self._initUser(options.user || {});
self.debug("GalaxyApp.user: ", self.user);
self._setUpListeners();
self.trigger("ready", self);
return self;
};
/** default options */
GalaxyApp.prototype.defaultOptions = {
/** monkey patch attributes from existing window.Galaxy object? */
patchExisting: true,
/** root url of this app */
root: "/",
session_csrf_token: null
};
/** filter to options present in defaultOptions (and default to them) */
GalaxyApp.prototype._processOptions = function _processOptions(options) {
var self = this,
defaults = self.defaultOptions;
self.options = {};
for (var k in defaults) {
if (defaults.hasOwnProperty(k)) {
self.options[k] = options.hasOwnProperty(k)
? options[k]
: defaults[k];
}
}
return self;
};
// add logging shortcuts for this object
addLogging(GalaxyApp, "GalaxyApp");
/** parse the config and any extra info derived from it */
GalaxyApp.prototype._initConfig = function _initConfig(config) {
var self = this;
self.config = config;
// a debug flag can be set via local storage and made available during script/page loading
var DEBUGGING_KEY = "galaxy:debug",
NAMESPACE_KEY = DEBUGGING_KEY + ":namespaces",
localDebugging = false;
// give precendence to localdebugging for this setting
self.config.debug = localDebugging || self.config.debug;
return self;
};
/** add an option from options if the key matches an option in defaultOptions */
GalaxyApp.prototype._patchGalaxy = function _patchGalaxy(patchWith) {
var self = this;
// in case req or plain script tag order has created a prev. version of the Galaxy obj...
if (self.options.patchExisting && patchWith) {
// self.debug( 'found existing Galaxy object:', patchWith );
// ...(for now) monkey patch any added attributes that the previous Galaxy may have had
//TODO: move those attributes to more formal assignment in GalaxyApp
for (var k in patchWith) {
if (patchWith.hasOwnProperty(k)) {
// self.debug( '\t patching in ' + k + ' to Galaxy:', self[ k ] );
self[k] = patchWith[k];
}
}
}
};
/** set up the metrics logger (utils/metrics-logger) and pass loggerOptions */
GalaxyApp.prototype._initLogger = function _initLogger(loggerOptions) {
var self = this;
// default to console logging at the debug level if the debug flag is set
if (self.config.debug) {
loggerOptions.consoleLogger = loggerOptions.consoleLogger || console;
loggerOptions.consoleLevel =
loggerOptions.consoleLevel || metricsLogger.MetricsLogger.ALL;
// load any logging namespaces from localStorage if we can
try {
localDebugging = localStorage.getItem(DEBUGGING_KEY) == "true";
} catch (storageErr) {
console.log(
localize("localStorage not available for debug flag retrieval")
loggerOptions.consoleNamespaceWhitelist = localStorage
.getItem(NAMESPACE_KEY)
.split(",");
} catch (storageErr) {}
}
self.logger = new metricsLogger.MetricsLogger(loggerOptions);
self.emit = {};
["log", "debug", "info", "warn", "error", "metric"].map(function(i) {
self.emit[i] = function(data) {
self.logger.emit(
i,
arguments[0],
Array.prototype.slice.call(arguments, 1)
);
};
});
if (self.config.debug) {
// add this logger to mvc's loggable mixin so that all models can use the logger
BASE_MVC.LoggableMixin.logger = self.logger;
}
return self;
};
/** add the localize fn to this object and the window namespace (as '_l') */
GalaxyApp.prototype._initLocale = function _initLocale(options) {
var self = this;
self.debug("_initLocale:", options);
self.localize = localize;
// add to window as global shortened alias
// TODO: temporary - remove when can require for plugins
window._l = self.localize;
return self;
};
/** set up the current user as a Backbone model (mvc/user/user-model) */
GalaxyApp.prototype._initUser = function _initUser(userJSON) {
var self = this;
self.debug("_initUser:", userJSON);
self.user = new userModel.User(userJSON);
self.user.logger = self.logger;
return self;
};
/** Set up DOM/jQuery/Backbone event listeners enabled for all pages */
GalaxyApp.prototype._setUpListeners = function _setUpListeners() {
var self = this;
// hook to jq beforeSend to record the most recent ajax call and cache some data about it
/** cached info about the last ajax call made through jQuery */
self.lastAjax = {};
$(document).bind("ajaxSend", function(ev, xhr, options) {
var data = options.data;
try {
data = JSON.parse(data);
} catch (err) {}
self.lastAjax = {
url: location.href.slice(0, -1) + options.url,
data: data
};
//TODO:?? we might somehow manage to *retry* ajax using either this hook or Backbone.sync
});
return self;
};
/** Turn debugging/console-output on/off by passing boolean. Pass nothing to get current setting. */
GalaxyApp.prototype.debugging = function _debugging(setting) {
var self = this;
try {
if (setting === undefined) {
return localStorage.getItem(DEBUGGING_KEY) === "true";
}
if (setting) {
localStorage.setItem(DEBUGGING_KEY, true);
return true;
}
/** initalize options and sub-components */
GalaxyApp.prototype._init = function __init(options, bootstrapped) {
var self = this;
_.extend(self, Backbone.Events);
if (localDebugging) {
self.logger = console;
console.debug(
"debugging galaxy:",
"options:",
options,
"bootstrapped:",
bootstrapped
);
}
localStorage.removeItem(DEBUGGING_KEY);
// also remove all namespaces
self.debuggingNamespaces(null);
} catch (storageErr) {
console.log(
localize("localStorage not available for debug flag retrieval")
);
}
return false;
};
self._processOptions(options);
// add root and url parameters
self.root = options.root || "/";
self.params = options.params || {};
self.session_csrf_token = options.session_csrf_token || null;
self._initConfig(options.config || {});
self._patchGalaxy(window.Galaxy);
self._initLogger(self.options.loggerOptions || {});
// at this point, either logging or not and namespaces are enabled - chat it up
self.debug("GalaxyApp.options: ", self.options);
self.debug("GalaxyApp.config: ", self.config);
self.debug("GalaxyApp.logger: ", self.logger);
self._initLocale();
self.debug("GalaxyApp.localize: ", self.localize);
self.config = options.config || {};
self.debug("GalaxyApp.config: ", self.config);
self._initUser(options.user || {});
self.debug("GalaxyApp.user: ", self.user);
self._setUpListeners();
self.trigger("ready", self);
return self;
};
/** default options */
GalaxyApp.prototype.defaultOptions = {
/** monkey patch attributes from existing window.Galaxy object? */
patchExisting: true,
/** root url of this app */
root: "/",
session_csrf_token: null
};
/** filter to options present in defaultOptions (and default to them) */
GalaxyApp.prototype._processOptions = function _processOptions(
options
) {
var self = this,
defaults = self.defaultOptions;
self.options = {};
for (var k in defaults) {
if (defaults.hasOwnProperty(k)) {
self.options[k] = options.hasOwnProperty(k)
? options[k]
: defaults[k];
}
}
return self;
};
/** parse the config and any extra info derived from it */
GalaxyApp.prototype._initConfig = function _initConfig(config) {
var self = this;
self.config = config;
// give precendence to localdebugging for this setting
self.config.debug = localDebugging || self.config.debug;
return self;
};
/** add an option from options if the key matches an option in defaultOptions */
GalaxyApp.prototype._patchGalaxy = function _patchGalaxy(patchWith) {
var self = this;
// in case req or plain script tag order has created a prev. version of the Galaxy obj...
if (self.options.patchExisting && patchWith) {
// self.debug( 'found existing Galaxy object:', patchWith );
// ...(for now) monkey patch any added attributes that the previous Galaxy may have had
//TODO: move those attributes to more formal assignment in GalaxyApp
for (var k in patchWith) {
if (patchWith.hasOwnProperty(k)) {
// self.debug( '\t patching in ' + k + ' to Galaxy:', self[ k ] );
self[k] = patchWith[k];
}
}
}
};
/** set up the metrics logger (utils/metrics-logger) and pass loggerOptions */
GalaxyApp.prototype._initLogger = function _initLogger(loggerOptions) {
var self = this;
// default to console logging at the debug level if the debug flag is set
if (self.config.debug) {
loggerOptions.consoleLogger =
loggerOptions.consoleLogger || console;
loggerOptions.consoleLevel =
loggerOptions.consoleLevel ||
metricsLogger.MetricsLogger.ALL;
// load any logging namespaces from localStorage if we can
try {
loggerOptions.consoleNamespaceWhitelist = localStorage
.getItem(NAMESPACE_KEY)
.split(",");
} catch (storageErr) {}
}
self.logger = new metricsLogger.MetricsLogger(loggerOptions);
self.emit = {};
["log", "debug", "info", "warn", "error", "metric"].map(function(
i
) {
self.emit[i] = function(data) {
self.logger.emit(
i,
arguments[0],
Array.prototype.slice.call(arguments, 1)
);
};
});
if (self.config.debug) {
// add this logger to mvc's loggable mixin so that all models can use the logger
BASE_MVC.LoggableMixin.logger = self.logger;
}
return self;
};
/** add the localize fn to this object and the window namespace (as '_l') */
GalaxyApp.prototype._initLocale = function _initLocale(options) {
var self = this;
self.debug("_initLocale:", options);
self.localize = localize;
// add to window as global shortened alias
// TODO: temporary - remove when can require for plugins
window._l = self.localize;
return self;
};
/** set up the current user as a Backbone model (mvc/user/user-model) */
GalaxyApp.prototype._initUser = function _initUser(userJSON) {
var self = this;
self.debug("_initUser:", userJSON);
self.user = new userModel.User(userJSON);
self.user.logger = self.logger;
return self;
};
/** Set up DOM/jQuery/Backbone event listeners enabled for all pages */
GalaxyApp.prototype._setUpListeners = function _setUpListeners() {
var self = this;
// hook to jq beforeSend to record the most recent ajax call and cache some data about it
/** cached info about the last ajax call made through jQuery */
self.lastAjax = {};
$(document).bind("ajaxSend", function(ev, xhr, options) {
var data = options.data;
try {
data = JSON.parse(data);
} catch (err) {}
self.lastAjax = {
url: location.href.slice(0, -1) + options.url,
data: data
};
//TODO:?? we might somehow manage to *retry* ajax using either this hook or Backbone.sync
});
return self;
};
/** Turn debugging/console-output on/off by passing boolean. Pass nothing to get current setting. */
GalaxyApp.prototype.debugging = function _debugging(setting) {
var self = this;
try {
if (setting === undefined) {
return localStorage.getItem(DEBUGGING_KEY) === "true";
}
if (setting) {
localStorage.setItem(DEBUGGING_KEY, true);
return true;
}
localStorage.removeItem(DEBUGGING_KEY);
// also remove all namespaces
self.debuggingNamespaces(null);
} catch (storageErr) {
console.log(
localize(
"localStorage not available for debug flag retrieval"
)
);
}
return false;
};
/** Add, remove, or clear namespaces from the debugging filters
/** Add, remove, or clear namespaces from the debugging filters
* Pass no arguments to retrieve the existing namespaces as an array.
* Pass in null to clear all namespaces (all logging messages will show now).
* Pass in an array of strings or single string of the namespaces to filter to.
* Returns the new/current namespaces as an array;
*/
GalaxyApp.prototype.debuggingNamespaces = function _debuggingNamespaces(
namespaces
) {
var self = this;
try {
if (namespaces === undefined) {
var csv = localStorage.getItem(NAMESPACE_KEY);
return typeof csv === "string" ? csv.split(",") : [];
} else if (namespaces === null) {
localStorage.removeItem(NAMESPACE_KEY);
} else {
localStorage.setItem(NAMESPACE_KEY, namespaces);
}
var newSettings = self.debuggingNamespaces();
if (self.logger) {
self.logger.options.consoleNamespaceWhitelist = newSettings;
}
return newSettings;
} catch (storageErr) {
console.log(
localize(
"localStorage not available for debug namespace retrieval"
)
);
}
};
/** string rep */
GalaxyApp.prototype.toString = function toString() {
var userEmail = this.user
? this.user.get("email") || "(anonymous)"
: "uninitialized";
return "GalaxyApp(" + userEmail + ")";
};
// ============================================================================
return {
GalaxyApp: GalaxyApp
};
GalaxyApp.prototype.debuggingNamespaces = function _debuggingNamespaces(
namespaces
) {
var self = this;
try {
if (namespaces === undefined) {
var csv = localStorage.getItem(NAMESPACE_KEY);
return typeof csv === "string" ? csv.split(",") : [];
} else if (namespaces === null) {
localStorage.removeItem(NAMESPACE_KEY);
} else {
localStorage.setItem(NAMESPACE_KEY, namespaces);
}
var newSettings = self.debuggingNamespaces();
if (self.logger) {
self.logger.options.consoleNamespaceWhitelist = newSettings;
}
return newSettings;
} catch (storageErr) {
console.log(
localize("localStorage not available for debug namespace retrieval")
);
}
);
};
/** string rep */
GalaxyApp.prototype.toString = function toString() {
var userEmail = this.user
? this.user.get("email") || "(anonymous)"
: "uninitialized";
return "GalaxyApp(" + userEmail + ")";
};
// ============================================================================
export default {
GalaxyApp: GalaxyApp
};
+1 -1
View File
@@ -22,7 +22,7 @@ window.async_save_text = async_save_text;
import POPUPMENU from "ui/popupmenu";
window.make_popupmenu = POPUPMENU.make_popupmenu;
window.make_popup_menus = POPUPMENU.make_popup_menus;
import init_tag_click_function from 'ui/autocom_tagging';
import init_tag_click_function from "ui/autocom_tagging";
window.init_tag_click_function = init_tag_click_function;
import TOURS from "mvc/tours";
import QUERY_STRING from "utils/query-string-parsing";
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,2 +1,2 @@
define([],function(){"use strict";define(["libs/underscore","libs/backbone","mvc/base-mvc","mvc/user/user-model","utils/metrics-logger","utils/add-logging","utils/localization"],function(e,o,t,r,i,a,n){function l(e,o){return this._init(e||{},o||{})}a(l,"GalaxyApp");var g="galaxy:debug:namespaces",s=!1;try{s="true"==localStorage.getItem("galaxy:debug")}catch(e){console.log(n("localStorage not available for debug flag retrieval"))}return l.prototype._init=function(t,r){var i=this;return e.extend(i,o.Events),s&&(i.logger=console,console.debug("debugging galaxy:","options:",t,"bootstrapped:",r)),i._processOptions(t),i.root=t.root||"/",i.params=t.params||{},i.session_csrf_token=t.session_csrf_token||null,i._initConfig(t.config||{}),i._patchGalaxy(window.Galaxy),i._initLogger(i.options.loggerOptions||{}),i.debug("GalaxyApp.options: ",i.options),i.debug("GalaxyApp.config: ",i.config),i.debug("GalaxyApp.logger: ",i.logger),i._initLocale(),i.debug("GalaxyApp.localize: ",i.localize),i.config=t.config||{},i.debug("GalaxyApp.config: ",i.config),i._initUser(t.user||{}),i.debug("GalaxyApp.user: ",i.user),i._setUpListeners(),i.trigger("ready",i),i},l.prototype.defaultOptions={patchExisting:!0,root:"/",session_csrf_token:null},l.prototype._processOptions=function(e){var o=this,t=o.defaultOptions;o.options={};for(var r in t)t.hasOwnProperty(r)&&(o.options[r]=e.hasOwnProperty(r)?e[r]:t[r]);return o},l.prototype._initConfig=function(e){var o=this;return o.config=e,o.config.debug=s||o.config.debug,o},l.prototype._patchGalaxy=function(e){var o=this;if(o.options.patchExisting&&e)for(var t in e)e.hasOwnProperty(t)&&(o[t]=e[t])},l.prototype._initLogger=function(e){var o=this;if(o.config.debug){e.consoleLogger=e.consoleLogger||console,e.consoleLevel=e.consoleLevel||i.MetricsLogger.ALL;try{e.consoleNamespaceWhitelist=localStorage.getItem(g).split(",")}catch(e){}}return o.logger=new i.MetricsLogger(e),o.emit={},["log","debug","info","warn","error","metric"].map(function(e){o.emit[e]=function(t){o.logger.emit(e,arguments[0],Array.prototype.slice.call(arguments,1))}}),o.config.debug&&(t.LoggableMixin.logger=o.logger),o},l.prototype._initLocale=function(e){var o=this;return o.debug("_initLocale:",e),o.localize=n,window._l=o.localize,o},l.prototype._initUser=function(e){var o=this;return o.debug("_initUser:",e),o.user=new r.User(e),o.user.logger=o.logger,o},l.prototype._setUpListeners=function(){var e=this;return e.lastAjax={},$(document).bind("ajaxSend",function(o,t,r){var i=r.data;try{i=JSON.parse(i)}catch(e){}e.lastAjax={url:location.href.slice(0,-1)+r.url,data:i}}),e},l.prototype.debugging=function(e){var o=this;try{if(void 0===e)return"true"===localStorage.getItem("galaxy:debug");if(e)return localStorage.setItem("galaxy:debug",!0),!0;localStorage.removeItem("galaxy:debug"),o.debuggingNamespaces(null)}catch(e){console.log(n("localStorage not available for debug flag retrieval"))}return!1},l.prototype.debuggingNamespaces=function(e){var o=this;try{if(void 0===e){var t=localStorage.getItem(g);return"string"==typeof t?t.split(","):[]}null===e?localStorage.removeItem(g):localStorage.setItem(g,e);var r=o.debuggingNamespaces();return o.logger&&(o.logger.options.consoleNamespaceWhitelist=r),r}catch(e){console.log(n("localStorage not available for debug namespace retrieval"))}},l.prototype.toString=function(){return"GalaxyApp("+(this.user?this.user.get("email")||"(anonymous)":"uninitialized")+")"},{GalaxyApp:l}})});
define(["exports","libs/underscore","libs/backbone","mvc/base-mvc","mvc/user/user-model","utils/metrics-logger","utils/add-logging","utils/localization"],function(e,t,o,a,r,i,n,l){"use strict";function g(e){return e&&e.__esModule?e:{default:e}}function s(e,t){return this._init(e||{},t||{})}Object.defineProperty(e,"__esModule",{value:!0});var c=g(t),u=g(o),p=g(a),f=g(r),d=g(i),y=g(n),b=g(l);(0,y.default)(s,"GalaxyApp");var v="galaxy:debug:namespaces",m=!1;try{m="true"==localStorage.getItem("galaxy:debug")}catch(e){console.log((0,b.default)("localStorage not available for debug flag retrieval"))}s.prototype._init=function(e,t){var o=this;return c.default.extend(o,u.default.Events),m&&(o.logger=console,console.debug("debugging galaxy:","options:",e,"bootstrapped:",t)),o._processOptions(e),o.root=e.root||"/",o.params=e.params||{},o.session_csrf_token=e.session_csrf_token||null,o._initConfig(e.config||{}),o._patchGalaxy(window.Galaxy),o._initLogger(o.options.loggerOptions||{}),o.debug("GalaxyApp.options: ",o.options),o.debug("GalaxyApp.config: ",o.config),o.debug("GalaxyApp.logger: ",o.logger),o._initLocale(),o.debug("GalaxyApp.localize: ",o.localize),o.config=e.config||{},o.debug("GalaxyApp.config: ",o.config),o._initUser(e.user||{}),o.debug("GalaxyApp.user: ",o.user),o._setUpListeners(),o.trigger("ready",o),o},s.prototype.defaultOptions={patchExisting:!0,root:"/",session_csrf_token:null},s.prototype._processOptions=function(e){var t=this,o=t.defaultOptions;t.options={};for(var a in o)o.hasOwnProperty(a)&&(t.options[a]=e.hasOwnProperty(a)?e[a]:o[a]);return t},s.prototype._initConfig=function(e){var t=this;return t.config=e,t.config.debug=m||t.config.debug,t},s.prototype._patchGalaxy=function(e){var t=this;if(t.options.patchExisting&&e)for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o])},s.prototype._initLogger=function(e){var t=this;if(t.config.debug){e.consoleLogger=e.consoleLogger||console,e.consoleLevel=e.consoleLevel||d.default.MetricsLogger.ALL;try{e.consoleNamespaceWhitelist=localStorage.getItem(v).split(",")}catch(e){}}return t.logger=new d.default.MetricsLogger(e),t.emit={},["log","debug","info","warn","error","metric"].map(function(e){t.emit[e]=function(o){t.logger.emit(e,arguments[0],Array.prototype.slice.call(arguments,1))}}),t.config.debug&&(p.default.LoggableMixin.logger=t.logger),t},s.prototype._initLocale=function(e){var t=this;return t.debug("_initLocale:",e),t.localize=b.default,window._l=t.localize,t},s.prototype._initUser=function(e){var t=this;return t.debug("_initUser:",e),t.user=new f.default.User(e),t.user.logger=t.logger,t},s.prototype._setUpListeners=function(){var e=this;return e.lastAjax={},$(document).bind("ajaxSend",function(t,o,a){var r=a.data;try{r=JSON.parse(r)}catch(e){}e.lastAjax={url:location.href.slice(0,-1)+a.url,data:r}}),e},s.prototype.debugging=function(e){var t=this;try{if(void 0===e)return"true"===localStorage.getItem("galaxy:debug");if(e)return localStorage.setItem("galaxy:debug",!0),!0;localStorage.removeItem("galaxy:debug"),t.debuggingNamespaces(null)}catch(e){console.log((0,b.default)("localStorage not available for debug flag retrieval"))}return!1},s.prototype.debuggingNamespaces=function(e){var t=this;try{if(void 0===e){var o=localStorage.getItem(v);return"string"==typeof o?o.split(","):[]}null===e?localStorage.removeItem(v):localStorage.setItem(v,e);var a=t.debuggingNamespaces();return t.logger&&(t.logger.options.consoleNamespaceWhitelist=a),a}catch(e){console.log((0,b.default)("localStorage not available for debug namespace retrieval"))}},s.prototype.toString=function(){return"GalaxyApp("+(this.user?this.user.get("email")||"(anonymous)":"uninitialized")+")"},e.default={GalaxyApp:s}});
//# sourceMappingURL=../maps/galaxy.js.map