function renderDocItem()

in legacy/js/docTool/schemaHelper.js [408:494]


    function renderDocItem(
        handlerName, renderBase, schemaItem, optionPathItemName, relationInfo, enumInfo, arrayFrom
    ) {
        var subRenderBase = renderBase;
        var typeEnum = enumInfo === IS_ENUM_ITEM ? getTypeEnum(schemaItem) : null;

        // makeSubRenderBase
        if (handlerName !== 'hasArrayItems') {
            var descInfo = retrieveDescFromSchemaItem(schemaItem, relationInfo, enumInfo, arrayFrom);
            subRenderBase = {
                value: 'id-' + dtLib.localUID(),
                parent: renderBase,
                hasObjectProperties: handlerName === 'hasObjectProperties',
                isEnumParent: enumInfo === IS_ENUM_PARENT,
                type: schemaItem.type,
                typeEnum: typeEnum,
                description: descInfo.description,
                defau: descInfo.defau,
                // optionPath: context.optionPath.slice(),
                defaultValueText: schemaHelper.getDefaultValueText(descInfo.defau),
                itemEncodeHTML: false,
                tooltipEncodeHTML: false
            };

            if (enumInfo !== IS_ENUM_ITEM) {
                subRenderBase.propertyName = optionPathItemName;
            }
            if (relationInfo === IS_ARRAY_ITEM) {
                subRenderBase.arrayDepth = arrayFrom.length;
            }

            (renderBase.children = renderBase.children || []).push(subRenderBase);
        }

        // Make prefix, suffix and childrenBrief.
        var prefix = '';
        var suffix = '';
        var childrenBrief = '...';
        if (enumInfo === IS_ENUM_ITEM) {
            childrenBrief = 'type: \'' + encodeHTML(typeEnum) + '\', ...';
        }
        else {
            if (optionPathItemName) {
                prefix = '<span class="ecdoc-api-tree-text-prop">' + encodeHTML(optionPathItemName) + '</span>';
                if (!docUtil.getGlobalArg('pureTitle')) {
                    prefix += ': ';
                }
            }
            if (arrayFrom && arrayFrom.length) {
                // Simple optimize.
                if (arrayFrom.length === 1) {
                    prefix += '[';
                    suffix += ']';
                }
                else {
                    var tmpArr = new Array(arrayFrom.length + 1);
                    prefix += tmpArr.join('[');
                    suffix += tmpArr.join(']');
                }
            }
        }

        // Make tree item text and children.
        if (handlerName === 'hasObjectProperties') {
            subRenderBase.childrenPre = prefix + '{';
            subRenderBase.childrenPost = '}' + suffix + ',';
            subRenderBase.childrenBrief = childrenBrief;
        }
        else if (handlerName === 'isAtom') {
            var defaultValueText = schemaHelper.getDefaultValueText(
                subRenderBase.defau, {getBrief: true}
            );
            subRenderBase.text = prefix;
            if (!docUtil.getGlobalArg('pureTitle')) {
                subRenderBase.text += ''
                + '<span class="ecdoc-api-tree-text-default">' + encodeHTML(defaultValueText) + '</span>'
                + suffix + ',';
            }
        }
        else if (handlerName === 'isEnumParent') {
            subRenderBase.childrenPre = prefix;
            subRenderBase.childrenPost = suffix + ',';
            subRenderBase.childrenBrief = childrenBrief;
        }

        return subRenderBase;
    }