WebWindow
My modal library
by Felipe Alfaro
JavaScript
function WebWindow(id) {}
function WebWindowState() {}
var WebWindowEngine = (function () {
var engine = {},
handlers = {},
collection = [],
instances = {
used: [],
loaded: []
};
function sendError(description) {
throw new Error(description);
}
function setEngineToWindow(windowInstance) {
return Object.defineProperties(windowInstance, (function () {
var properties = {};
Object.keys(handlers).forEach(function (propertyName) {
properties[propertyName] = {
value: handlers[propertyName],
writable: false
}
});
return properties;
})());
}
function isInCollection(windowInstance) {
var currentWindow;
for (var i = 0; i < collection.length; i++) {
if (windowInstance === collection[i]) {
return true;
}
}
return false;
}
function validationResponse(defaultValue, debugMessage) {
return debugMessage ? sendError(debugMessage) : Boolean(defaultValue);
}
function debugMessage() {}
function isNewInstance(windowInstance, debugIfTrue, debugIfFalse) {
for (var i = 0; i < collection.length; i++) {
if (windowInstance === collection[i]) {
return validationResponse(false, debugIfFalse ? windowInstance + ' is already added' : false);
}
else if (windowInstance.id === collection[i].id) {
return validationResponse(false, debugIfFalse ? windowInstance + ' taken id' : false);
}
}
return validationResponse(true, debugIfFalse ? windowInstance + ' has not beed added' : false);
}
function isInstance(windowInstance) {
return (
windowInstance instanceof WebWindow || sendError('Is not instance of WebWindow')
)
}
function isValidReference(windowInstanceOrId) {
if (isInstance(windowInstanceOrId)){}
}
function addWindow(windowInstance) {
if (isInstance(windowInstance) && isNewInstance(windowInstance)) {
...