| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | 
							- var fs = require("fs");
 
- const CLIENT_FILES_OPT = "clientFiles";
 
- /**
 
-  * Enable a element on clients
 
-  * @param clients
 
-  * @param ui
 
-  * @param bs
 
-  * @returns {Function}
 
-  */
 
- var types = {
 
-     "css": "text/css",
 
-     "js":  "application/javascript"
 
- };
 
- function enableElement (clients, ui, bs) {
 
-     return function (file) {
 
-         var uiItem   = ui.getOptionIn([CLIENT_FILES_OPT, file.name]);
 
-         var item     = uiItem.toJS();
 
-         var enableFn = uiItem.getIn(["callbacks", "enable"]);
 
-         if (item.active) {
 
-             return;
 
-         }
 
-         ui.setOptionIn([CLIENT_FILES_OPT, item.name, "active"], true, {silent: true});
 
-         if (enableFn) {
 
-             enableFn.call(ui, item);
 
-         }
 
-         if (item.file && !item.served) {
 
-             ui.setOptionIn([CLIENT_FILES_OPT, item.name, "served"], true, {silent: true});
 
-             bs.serveFile(item.src, {
 
-                 type:    types[item.type],
 
-                 content: fs.readFileSync(item.file)
 
-             });
 
-         }
 
-         addElement(clients, ui.getOptionIn([CLIENT_FILES_OPT, item.name]).toJS());
 
-     };
 
- }
 
- /**
 
-  * @param clients
 
-  * @param ui
 
-  * @returns {Function}
 
-  */
 
- function disableElement (clients, ui) {
 
-     return function (file) {
 
-         var uiItem    = ui.getOptionIn([CLIENT_FILES_OPT, file.name]);
 
-         var item      = uiItem.toJS();
 
-         var disableFn = uiItem.getIn(["callbacks", "disable"]);
 
-         if (disableFn) {
 
-             disableFn.call(ui, item);
 
-         }
 
-         ui.setOptionIn([CLIENT_FILES_OPT, item.name, "active"], false, {silent: true});
 
-         removeElement(clients, item.id);
 
-     };
 
- }
 
- /**
 
-  * @param clients
 
-  * @param item
 
-  */
 
- function addElement (clients, item) {
 
-     clients.emit("ui:element:add", item);
 
- }
 
- /**
 
-  * @param clients
 
-  * @param id
 
-  */
 
- function removeElement(clients, id) {
 
-     clients.emit("ui:element:remove", {id: id});
 
- }
 
- module.exports.addElement    = addElement;
 
- module.exports.removeElement = removeElement;
 
- module.exports.enable        = enableElement;
 
- module.exports.disable       = disableElement;
 
 
  |