1 | var hyperglue = require("hyperglue");
|
2 | var findTemplate = require("./find-template");
|
3 |
|
4 | module.exports = {
|
5 | body: body,
|
6 | template: template
|
7 | };
|
8 |
|
9 | function body (brick) {
|
10 | return template(brick, brick.defaultTemplate());
|
11 | }
|
12 |
|
13 | function 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 | }
|