Core.Singleton = class extends _core { /** * Get singleton reference to object. * @param {string|jQuery} id * @param {object} parameters * @param {object} parameters.instance Modal/Page object reference */ static get(id, parameters) { if (!parameters) { parameters = {}; } if ( parameters.prototype instanceof _core || parameters.prototype instanceof _page || parameters.prototype instanceof _modal || parameters instanceof _page || parameters instanceof _modal ) { parameters = { instance: parameters }; } if (id instanceof jQuery) { if (!parameters.$container) { parameters.$container = id; } if (!id.attr('singleton-id')) { id.attr('singleton-id', 'singleton-' + uniqId()); } id = id.attr('singleton-id'); } let key = this.getClassName() + ':' + id; if (Core.Singleton.references[key]) { if (Core.Singleton.references[key].reinit(id, parameters) === false) { Core.Singleton.references[key] = null; return null; } return Core.Singleton.references[key]; } let object = eval('new ' + this.getClassName()); if (object.init(id, parameters) === false) { return null; } object._singletonId = key; Core.Singleton.references[key] = object; return object; } }; Core.Singleton.references = {};