nscomponentsreact
Version:
React Wrapper Components for NSComponents
136 lines (129 loc) • 3.24 kB
JavaScript
var nsModuleExport = function(root,name,prototype)
{
if(typeof exports === 'object' && typeof module === 'object')
{
module.exports[name] = prototype;
}
else if (typeof define === "function" && define.amd)
{
define(name,[], function () {return prototype;});
}
else if(typeof exports === 'object')
{
exports[name] = prototype;
}
else
{
root[name] = prototype;
}
};var __nsGlobal = (function () {
if (typeof globalThis !== "undefined") return globalThis;
if (typeof self !== "undefined") return self;
if (typeof window !== "undefined") return window;
if (typeof global !== "undefined") return global;
return Function("return this")();
})();var nsIsWeb = function(root)
{
if(typeof exports === 'object' && typeof module === 'object')
{
return false;
}
else if (typeof define === "function" && define.amd)
{
return false;
}
else if(typeof exports === 'object')
{
return false;
}
else
{
return true;
}
};if(!nsIsWeb())
{
var nsutilRef = require('./nsUtil.min.js');
var NSUtil = nsutilRef.NSUtil;
}
;
var NSEvent = (function()
{
function NSEvent()
{
var self = this;
var objEvents = {};
var addListener = function(event, callback)
{
if (typeof callback !== 'function')
{
console.error("The listener callback must be a function");
return false;
}
if (typeof event !== 'string')
{
console.error("The event name must be a string");
return false;
}
if (!objEvents[event])
{
objEvents[event] = {listeners: []};
}
objEvents[event].listeners.push(callback);
return true;
};
var removeListener = function(event, callback)
{
if (!objEvents[event])
{
console.error("The event: " + event + " does not exist");
return false;
}
var filter = function(listener)
{
return listener.toString() !== callback.toString();
};
objEvents[event].listeners = objEvents[event].listeners.filter(filter);
return true;
};
var hasListener = function(event, callback)
{
if (!objEvents[event])
{
return false;
}
var filter = function(listener)
{
return listener.toString() == callback.toString();
};
var tempListener = objEvents[event].listeners.filter(filter);
return !(!tempListener);
};
var dispatch = function(event, details)
{
var retValue = true;
if (objEvents[event])
{
for(var index = 0;index < objEvents[event].listeners.length;index++)
{
var listener = objEvents[event].listeners[index];
retValue = listener({type: event,details: details},details);
if(retValue !== undefined && retValue !== null && retValue == false)
{
return false;
}
}
}
else
{
console.log("The event: " + event + " does not exist");
}
return true;
};
self.addListener = addListener;
self.removeListener = removeListener;
self.hasListener = hasListener;
self.dispatch = dispatch;
};
return NSEvent;
})();
nsModuleExport(__nsGlobal,"NSEvent",NSEvent);