mirror of
https://github.com/Redocly/redoc.git
synced 2025-02-05 12:30:34 +03:00
Fix path params rendering
This commit is contained in:
parent
25f65c4757
commit
fae59c7917
|
@ -12,7 +12,7 @@
|
||||||
<div>
|
<div>
|
||||||
<span class="param-type {{prop.type}}" [ngClass]="{'with-hint': prop._displayTypeHint}"
|
<span class="param-type {{prop.type}}" [ngClass]="{'with-hint': prop._displayTypeHint}"
|
||||||
title="{{prop._displayTypeHint}}"> {{prop._displayType}} {{prop._displayFormat}}</span>
|
title="{{prop._displayTypeHint}}"> {{prop._displayType}} {{prop._displayFormat}}</span>
|
||||||
<span *ngIf="prop.isRequired" class="param-required">Required</span>
|
<span *ngIf="prop.required" class="param-required">Required</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="param-description" innerHtml="{{prop.description | marked}}"></div>
|
<div class="param-description" innerHtml="{{prop.description | marked}}"></div>
|
||||||
<div class="discriminator-info" *ngIf="prop.isDiscriminator"> This field value determines the exact schema: </div>
|
<div class="discriminator-info" *ngIf="prop.isDiscriminator"> This field value determines the exact schema: </div>
|
||||||
|
|
|
@ -71,7 +71,8 @@ export default class JsonSchema extends BaseComponent {
|
||||||
let discriminatorFieldIdx = -1;
|
let discriminatorFieldIdx = -1;
|
||||||
let props = Object.keys(schema.properties).map((prop, idx) => {
|
let props = Object.keys(schema.properties).map((prop, idx) => {
|
||||||
let propData = schema.properties[prop];
|
let propData = schema.properties[prop];
|
||||||
propData = this.injectPropData(prop, propData, schema);
|
let propPointer = JsonPointer.join(this.pointer, ['properties', prop]);
|
||||||
|
propData = JsonSchema.injectPropData(propData, prop, propPointer, this.requiredMap, schema);
|
||||||
if (propData.isDiscriminator) discriminatorFieldIdx = idx;
|
if (propData.isDiscriminator) discriminatorFieldIdx = idx;
|
||||||
return propData;
|
return propData;
|
||||||
});
|
});
|
||||||
|
@ -97,18 +98,19 @@ export default class JsonSchema extends BaseComponent {
|
||||||
if (discrValues) discrValues.style.paddingLeft = maxWidth + 'px';
|
if (discrValues) discrValues.style.paddingLeft = maxWidth + 'px';
|
||||||
}
|
}
|
||||||
|
|
||||||
injectPropData(prop, propData, schema) {
|
static injectPropData(propData, propName, propPointer, requiredMap, schema) {
|
||||||
propData = Object.assign({}, propData);
|
propData = Object.assign({}, propData);
|
||||||
propData._name = prop;
|
propData._name = propName;
|
||||||
propData.isRequired = this.requiredMap[prop];
|
propData.required = propData.required || (requiredMap && requiredMap[propName]);
|
||||||
propData._displayType = propData.type;
|
propData._displayType = propData.type;
|
||||||
propData.isDiscriminator = (schema.discriminator === prop);
|
propData.isDiscriminator = (schema && schema.discriminator === propName);
|
||||||
if (propData.type === 'array') {
|
if (propData.type === 'array') {
|
||||||
let itemType = propData.items.type;
|
let itemType = propData.items.type;
|
||||||
let itemFormat = propData.items.format;
|
let itemFormat = propData.items.format;
|
||||||
if (itemType === 'object' || !itemType) {
|
if (itemType === 'object' || !itemType) {
|
||||||
itemType = propData.items.title || 'object';
|
itemType = propData.items.title || 'object';
|
||||||
propData._pointer = propData.items._pointer || JsonPointer.join(this.pointer, ['properties', prop, 'items']);
|
propData._pointer = propData.items._pointer
|
||||||
|
|| JsonPointer.join(propPointer, ['items']);
|
||||||
}
|
}
|
||||||
propData._displayType = `${itemType}`;
|
propData._displayType = `${itemType}`;
|
||||||
propData.format = itemFormat;
|
propData.format = itemFormat;
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="param-info">
|
<div class="param-info">
|
||||||
<div>
|
<div>
|
||||||
<span class="param-type" [ngClass]="param.type">{{param.type}}</span>
|
<span class="param-type {{param.type}}" [ngClass]="{'with-hint': param._displayTypeHint}"
|
||||||
|
title="{{param._displayTypeHint}}"> {{param._displayType}} {{param._displayFormat}}</span>
|
||||||
<span *ngIf="param.required" class="param-required">Required</span>
|
<span *ngIf="param.required" class="param-required">Required</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="param-description" innerHtml="{{param.description | marked}}"></div>
|
<div class="param-description" innerHtml="{{param.description | marked}}"></div>
|
||||||
|
|
|
@ -26,6 +26,11 @@ export default class ParamsList extends BaseComponent {
|
||||||
this.data.bodyParam = bodyParam;
|
this.data.bodyParam = bodyParam;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
params = params.map((paramData) => {
|
||||||
|
let propPointer = paramData._pointer;
|
||||||
|
return JsonSchema.injectPropData(paramData, paramData.name, propPointer);
|
||||||
|
});
|
||||||
|
|
||||||
this.data.noParams = !(params.length || this.data.bodyParam);
|
this.data.noParams = !(params.length || this.data.bodyParam);
|
||||||
this.data.params = params;
|
this.data.params = params;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user