3 var endUser = env.conf.templates.endUser;
5 /* sort subprops under their parent props (like opts.classname) */
7 props.forEach(function(prop, i) {
9 if ( parentProp && prop.name && prop.name.indexOf(parentProp.name + '.') === 0 ) {
10 prop.name = prop.name.substr(parentProp.name.length+1);
11 parentProp.subprops = parentProp.subprops || [];
12 parentProp.subprops.push(prop);
20 /* determine if we need extra columns, "attributes" and "default" */
21 props.hasAttributes = false;
22 props.hasDefault = false;
23 props.hasName = false;
25 props.forEach(function(prop) {
26 if (!prop) { return; }
28 if (prop.optional || prop.nullable) {
29 props.hasAttributes = true;
36 if (typeof prop.defaultvalue !== 'undefined') {
37 props.hasDefault = true;
45 <?js if (props.hasName) {?>
49 <?js if (!endUser) {?>
53 <?js if (props.hasAttributes) {?>
57 <?js if (props.hasDefault) {?>
61 <th class="last">Reference</th>
68 props.forEach(function(prop) {
69 if (!prop) { return; }
70 if (!prop.description) {
71 // don't futz with a falsy description
72 } else if(endUser && prop.description.indexOf("()") >= 0) {
73 // () means: don't display this prop at all to the end user
76 // don't show square-bracketed text to end users.
77 prop.description = prop.description.replace(/\[.*?\]/, "");
78 prop.description = prop.description.replace("(", "").replace(")", "");
80 prop.description = prop.description.replace(/\(.*?\)/, "");
81 prop.description = prop.description.replace("[", "").replace("]", "");
86 <?js if (props.hasName) {?>
87 <td class="name"><code><?js= prop.name ?></code></td>
90 <?js if (!endUser) {?>
92 <?js if (prop.type && prop.type.names) {?>
93 <?js= self.partial('type.tmpl', prop.type.names) ?>
98 <?js if (props.hasAttributes) {?>
99 <td class="attributes">
100 <?js if (prop.optional) { ?>
104 <?js if (prop.nullable) { ?>
110 <?js if (props.hasDefault) {?>
112 <?js if (typeof prop.defaultvalue !== 'undefined') { ?>
113 <?js= self.htmlsafe(prop.defaultvalue) ?>
118 <td class="description last"><?js= prop.description ?><?js if (prop.subprops) { ?>
119 <h6>Properties</h6><?js= self.partial('properties.tmpl', prop.subprops) ?>