Friendiiverse/App/Elems.js

58 lines
1.2 KiB
JavaScript
Raw Normal View History

2023-04-25 23:35:34 +02:00
var ElsCfg = {
ListMenu: {
FullControl: {Append: true, Remove: true,},
},
};
2023-04-25 00:55:20 +02:00
function MkHtmlEl(Tag, Attrs) {
2023-04-24 15:03:51 +02:00
var El = document.createElement(Tag);
2023-04-23 19:46:01 +02:00
if (Attrs) {
Object.keys(Attrs).forEach(function(Attr){
2023-04-24 15:03:51 +02:00
El[Attr] = Attrs[Attr];
2023-04-23 19:46:01 +02:00
});
};
2023-04-25 23:35:34 +02:00
El.className += ` ${RndHtmlId(Tag)}`;
2023-04-24 15:03:51 +02:00
return El;
};
2023-04-25 00:55:20 +02:00
function MkWindow(Attrs) {
var Window = MkHtmlEl('div', Attrs);
2023-04-23 19:46:01 +02:00
Window.className += ' Window';
Root.appendChild(Window);
return Window;
};
2023-04-24 15:03:51 +02:00
2023-04-25 00:55:20 +02:00
function MkSelectMenu(Opts, Attrs) {
var Menu = MkHtmlEl('div', Attrs);
var OptsHtml = '';
Opts.forEach(function(Opt){
OptsHtml += '<li>' + MkHtmlEl('button', Opt).outerHTML + '</li>';
});
Menu.innerHTML = `
<button onclick="var El = this.nextElementSibling; El.hidden = !El.hidden;">
Select
</button>
<ul hidden="true">
${OptsHtml}
</ul>
`;
Menu.className += ' SelectMenu';
2023-04-24 15:03:51 +02:00
return Menu;
};
2023-04-25 23:35:34 +02:00
function MkListMenu(Opts, Conf, Attrs) {
var Menu = MkHtmlEl('div', Attrs);
var OptsHtml = '';
Object.keys(Opts).forEach(function(Opt){
OptsHtml += `<li><button>${Opt}</button><button>X</button></li>`;
});
Menu.innerHTML = `
<ul>
${Conf.Append ? '<li><button>Add New</button></li>' : ''}
${OptsHtml}
</ul>
`;
Menu.className += ' ListMenu';
return Menu;
};