AnPv2/Public/ecma/Application/AnP.ecma.js

67 lines
1.7 KiB
JavaScript

"use strict";
import {I18NManager} from "../Managers/I18NManager.ecma.js";
import {SettingsManager} from "../Managers/SettingsManager.ecma.js";
import {Components} from "./Components.ecma.js";
import {FilesDriver} from "../Drivers/FilesDriver.ecma.js";
/**
* @class AnP
* @constructor
* @param {?(Object.<string, any|null>|Array.<any|null>)} [inputs = null]
* @returns {void}
* @access public
* @static
*/
export const AnP = (function(){
/**
* @constructs AnP
* @param {?(Object.<string, any|null>|Array.<any|null>)} [inputs = null]
* @returns {void}
* @access private
* @static
*/
const AnP = function(inputs = null){
/** @type {AnP} */
const self = this;
/** @type {boolean} */
let started = false,
/** @type {boolean} */
closed = false;
/** @type {SettingsManager}*/
this.settings = new SettingsManager(self, inputs);
/** @type {I18NManager}*/
this.i18n = new I18NManager(self);
/** @type {Components} */
this.comp = this.components = new Components(self);
/** @type {FilesDriver} */
this.files = new FilesDriver(self);
/**
* @returns {void}
* @access private
*/
const constructor = () => {};
this.start = (callback = null) => {};
/**
* @param {!any} module
* @returns {void}
* @access public
*/
this.extends = module => {
for(const key in self)
module[key] === undefined &&
(module[key] = self[key]);
};
constructor();
};
return AnP;
})();