j-Detach
Компонентът може да раздели/прикрепи всички деца (елементи на HTML). Например, ако имате елементи в панела, можете да преместите елементите например към j-Windows.
Компонентът watch пътят {Boolean} и ако стойността съдържа true, елементите ще бъдат отделени по друг начин прикрепени.
Конфигуриране:
detach {String}е връзка къмfunction(children, element)attach {String}е връзка къмfunction(children, element)remove {String}е връзка къмfunction(children)
detachсе изпълнява, когато съдържанието е изключеноattachсе изпълнява, когато съдържанието трябва да бъде върнатоremoveсе изпълнява, когато компонентът (или родителски елемент) е премахнат
Използвайте го с <ui-component name="detach">Когато компонентът все още не е зареден, jComponent Изтегляне на първия адрес в DEF.fallback (След това Componentator Източник: Питър Шерка Componentator Съставни съставки, лиценз на MIT.
<style>
body { padding: 0; margin: 0; overflow: hidden; }
</style>
<ui-component name="windows" path="common.windows"></ui-component>
<div class="center padding"><button onclick="togglewindow()">Toggle windowed mode</button></div>
<div style="margin:30px auto;border:1px solid #E0E0E0;max-width:500px;width:100%;min-height:100px;">
<ui-component name="detach" path="common.detach" config="detach:el_detach;attach:el_attach;remove:el_remove">
<div class="padding">
<h2>Your content</h2>
<div><img src="https://cdn.componentator.com/logo.svg" width="200" /></div>
</div>
</ui-component>
</div>
<script>
var common = {};
common.detach = false;
common.windows = [];
function el_detach(children, element) {
var id = 'mywin';
var div = document.createElement('DIV');
var win = {};
win.id = id;
win.cachekey = id;
win.offset = { x: 200, y: 100, width: 840, height: 500, minwidth: 450, minheight: 300 };
win.actions = { move: true, close: true, resize: true, maximize: true, minimize: false, autosave: true };
win.title = 'Example';
win.html = div;
win.close = function(next) {
SET('common.detach', false);
next();
};
for (var m of children)
div.appendChild(m);
PUSH('common.windows', win);
}
function el_attach(children, element) {
var id = 'mywin';
for (var m of children)
element[0].appendChild(m);
common.windows.splice(common.windows.findIndex('id', id), 1);
UPD('common.windows');
}
function el_remove(children) {
var id = 'mywin';
var index = common.windows.findIndex('id', id);
if (index !== -1) {
common.windows.splice(index, 1);
UPD('common.windows');
}
}
function togglewindow() {
var path = 'common.detach';
var val = GET(path);
SET(path, !val);
}
</script>