b.name) ? 1 : 0; }); } props[i] = null; } else { parentProp = prop; } }); props = props.filter(prop => prop != null); if (sortmembers){ props.sort(function(a, b) { return (a.name < b.name) ? -1 : (a.name > b.name) ? 1 : 0; }); } /* determine if we need extra columns, "attributes" and "default" */ props.hasAttributes = false; props.hasDefault = false; props.hasName = false; props.hasDescriptionOrSubprops = false; // a new special column for properties that are marked with ojruntime (used by the metadata types typedef) props.hasUseAtRuntime = false; props.forEach(function(prop) { if (!prop) { return; } if (prop.optional || typeof prop.nullable !== 'undefined'){ props.hasAttributes = true; } if (prop.name) { props.hasName = true; } if (prop.ojruntime) { props.hasUseAtRuntime = true; } if (typeof prop.defaultvalue !== 'undefined') { props.hasDefault = true; } if (typeof prop.description !== 'undefined' || typeof prop.subprops !== 'undefined') { props.hasDescriptionOrSubprops = true; } }); ?>
Used at Runtime | Type | Argument | Default | Description |
|
|
|
= 0 || prop.type.parsedType.typeExpression.indexOf('Function') >= 0 || (prop.type.parsedType.typeExpression.indexOf('{') >=0 && prop.type.parsedType.typeExpression.indexOf('}') >0)){ typeHandled = true; var _expression = prop.type.parsedType.typeExpression; // remove the 'optional' operator if exists if (_expression.endsWith('=')){ _expression = _expression.substr(0, _expression.length - 1); } // remove any not-null operator if (_expression.startsWith('!')){ _expression = _expression.substr(1); } // remove the parenthesis of they exists if (_expression.charCodeAt(0) == 40 && _expression.charCodeAt(_expression.length - 1) == 41){ _expression = _expression.substr(1, _expression.length - 2); } var data = _expression.split('|'); ?> |
<optional> <nullable> <not nullable> |
or <%properties%> // the token is substituted with the properties template evaluated content // look for <%typdef%> tokens let tokenStartIdx = propDesc.indexOf('<%'); while (tokenStartIdx >=0){ let tokenEndIdx = propDesc.indexOf('%>', tokenStartIdx); if ( tokenEndIdx > tokenStartIdx){ //extract the target name from the token let targetname = propDesc.substring(tokenStartIdx+2, tokenEndIdx); let properties = []; if (targetname !== 'properties' && (/([\w-]+\.)+/g).test(targetname)){ let typedefname = targetname; let typedefs = self.find({kind:"typedef", longname: typedefname}); if (typedefs.length){ // we can only pull in properties of one typedef but can inject in several places let typedefobj = typedefs[0]; if (typedefobj.properties && typedefobj.properties.length > 0){ properties = typedefobj.properties; } } } if (targetname == 'properties'){ properties = prop.subprops; } if (properties.length > 0){ skipSubProperties = true; let content = self.partial('properties.tmpl', prop.subprops); let subpropsTable = ' | 0? propDesc : prop.description) ?>
0){?>
Properties |
---|