67 lines
1.7 KiB
JavaScript
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;
|
|
})(); |