UNPKG

930 BJavaScriptView Raw
1var hyperglue = require("hyperglue");
2var findTemplate = require("./find-template");
3
4module.exports = {
5 body: body,
6 template: template
7};
8
9function body (brick) {
10 return template(brick, brick.defaultTemplate());
11}
12
13function template (brick, name) {
14 var template = findTemplate(brick, name);
15 var isDefaultTemplate = brick.defaultTemplate() == name;
16
17 if (!template) return [];
18
19 var source;
20
21 if (isDefaultTemplate) {
22 source = '<div>';
23 } else {
24 source = '<div class="brick-' + brick.key + '-template-' + name + '">';
25 }
26
27 source += template() + '</div>';
28
29 var options = {};
30 var key;
31
32 for (key in brick.bindings) {
33 options[key] = brick.bindings[key].options;
34 }
35
36 var rendered = hyperglue(source, options);
37 var coll;
38
39 if (isDefaultTemplate) {
40 coll = Array.prototype.slice.call(rendered.children);
41 } else {
42 coll = [rendered];
43 coll.isBrickTemplate = true;
44 }
45
46 return coll;
47}