"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.|Array.)} [inputs = null] * @returns {void} * @access public * @static */ export const AnP = (function(){ /** * @constructs AnP * @param {?(Object.|Array.)} [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; })();