Skip to content

Commit 0ba108a

Browse files
Hans Aarne LiblikHans Aarne Liblik
authored andcommitted
schema-tree: Null marker to array-of-arrays/objects/primitives/union
1 parent f58999e commit 0ba108a

1 file changed

Lines changed: 16 additions & 12 deletions

File tree

‎packages/rapidoc/src/components/schema-tree.js‎

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -172,17 +172,19 @@ export default class SchemaTree extends LitElement {
172172
<path d="M2 2L8 8M2 8L8 2" />
173173
</svg>`
174174
: '';
175+
const nullClass = node.nullable ? 'nullable' : '';
175176

176177
// 1. Array kind
177178
if (node.kind === 'array') {
179+
const nullMarker = node.nullable ? 'null┃' : '';
178180
const items = node.items;
179181
if (!items) {
180182
return html`
181-
<div class="tr ${isExpanded ? 'expanded' : 'collapsed'} array" title="${node.deprecated ? 'Deprecated' : ''}">
183+
<div class="tr ${isExpanded ? 'expanded' : 'collapsed'} array ${nullClass}" title="${node.deprecated ? 'Deprecated' : ''}">
182184
<div class="td key ${node.deprecated ? 'deprecated' : ''}" style="min-width:${minFieldColWidth}px">
183185
${deprecatedIcon}
184186
${node.name ? html`<span class="key-label" title="${readWriteTip}">${node.name}${node.required ? html`<span style="color:var(--red)">*</span>` : ''}${readWriteBadge}:</span>` : ''}
185-
<span class="open-bracket array">[ ]</span>
187+
<span class="open-bracket array">${nullMarker}[ ]</span>
186188
</div>
187189
<div class="td key-descr m-markdown-small">${unsafeHTML(sanitizeHTML(marked(node.description || '')))}</div>
188190
</div>
@@ -222,11 +224,11 @@ export default class SchemaTree extends LitElement {
222224
`;
223225

224226
return html`
225-
<div class="tr primitive" title="${node.deprecated || items.deprecated ? 'Deprecated' : ''}">
227+
<div class="tr primitive ${nullClass}" title="${node.deprecated || items.deprecated ? 'Deprecated' : ''}">
226228
<div class="td key ${node.deprecated || items.deprecated ? 'deprecated' : ''}" style="min-width:${minFieldColWidth}px">
227229
${deprecatedIcon}
228230
${node.name ? html`<span class="key-label" title="${readWriteTip}">${node.name}${node.required ? html`<span style="color:var(--red)">*</span>` : ''}:</span>` : ''}
229-
<span class="${dataTypeCss}" title="${readWriteTip}">[${itemType}]${readWriteBadge}</span>
231+
<span class="${dataTypeCss}" title="${readWriteTip}">${nullMarker}[${itemType}]${readWriteBadge}</span>
230232
</div>
231233
<div class="td key-descr">
232234
${
@@ -245,7 +247,7 @@ export default class SchemaTree extends LitElement {
245247
// If array of objects
246248
if (items.kind === 'object') {
247249
const openBracket = html`<span class="open-bracket array-of-object"
248-
><span class="open-bracket-expanded">[{</span><span class="open-bracket-collapsed">[{...}]</span></span
250+
>${nullMarker}<span class="open-bracket-expanded">[{</span><span class="open-bracket-collapsed">[{...}]</span></span
249251
>`;
250252
const closeBracket = '}]';
251253

@@ -256,7 +258,7 @@ export default class SchemaTree extends LitElement {
256258

257259
return html`
258260
<div
259-
class="tr ${isExpanded ? 'expanded' : 'collapsed'} object ${items.nullable ? 'nullable' : ''}"
261+
class="tr ${isExpanded ? 'expanded' : 'collapsed'} object ${nullClass}"
260262
title="${node.deprecated || items.deprecated ? 'Deprecated' : ''}"
261263
>
262264
<div class="td key ${node.deprecated || items.deprecated ? 'deprecated' : ''}" style="min-width:${minFieldColWidth}px">
@@ -282,7 +284,7 @@ export default class SchemaTree extends LitElement {
282284
if (items.kind === 'array') {
283285
const arrType = node.arrayType !== 'object' ? node.arrayType : '';
284286
const openBracket = html`<span class="open-bracket array-of-array" data-array-type="${arrType}"
285-
><span class="open-bracket-expanded">[[ ${arrType} </span><span class="open-bracket-collapsed">[[...]]</span></span
287+
>${nullMarker}<span class="open-bracket-expanded">[[ ${arrType} </span><span class="open-bracket-collapsed">[[...]]</span></span
286288
>`;
287289
const closeBracket = ']]';
288290

@@ -293,7 +295,7 @@ export default class SchemaTree extends LitElement {
293295

294296
return html`
295297
<div
296-
class="tr ${isExpanded ? 'expanded' : 'collapsed'} array ${node.nullable ? 'nullable' : ''}"
298+
class="tr ${isExpanded ? 'expanded' : 'collapsed'} array ${nullClass}"
297299
title="${node.deprecated ? 'Deprecated' : ''}"
298300
>
299301
<div class="td key ${node.deprecated ? 'deprecated' : ''}" style="min-width:${minFieldColWidth}px">
@@ -318,12 +320,12 @@ export default class SchemaTree extends LitElement {
318320
? html`<span class="descr-expand-toggle ${this.schemaDescriptionExpanded === 'true' ? 'expanded-descr' : ''}">➔</span>`
319321
: '';
320322
return html`
321-
<div class="tr ${isExpanded ? 'expanded' : 'collapsed'} array" title="${node.deprecated ? 'Deprecated' : ''}">
323+
<div class="tr ${isExpanded ? 'expanded' : 'collapsed'} array ${nullClass}" title="${node.deprecated ? 'Deprecated' : ''}">
322324
<div class="td key ${node.deprecated ? 'deprecated' : ''}" style="min-width:${minFieldColWidth}px">
323325
${deprecatedIcon}
324326
${node.name ? html`<span class="key-label" title="${readWriteTip}">${node.name}${node.required ? html`<span style="color:var(--red)">*</span>` : ''}${readWriteBadge}:</span>` : ''}
325327
<span class="open-bracket array"
326-
><span class="open-bracket-expanded">[</span><span class="open-bracket-collapsed">[...]</span></span
328+
>${nullMarker}<span class="open-bracket-expanded">[</span><span class="open-bracket-collapsed">[...]</span></span
327329
>
328330
</div>
329331
<div class="td key-descr m-markdown-small">${descrExpander} ${unsafeHTML(sanitizeHTML(marked(node.description || '')))}</div>
@@ -337,8 +339,10 @@ export default class SchemaTree extends LitElement {
337339

338340
// 2. Object kind
339341
if (node.kind === 'object') {
342+
const nullClass = node.nullable ? 'nullable' : '';
343+
const nullMarker = node.nullable ? 'null┃' : '';
340344
const openBracket = html`<span class="open-bracket object"
341-
>${node.nullable ? 'null┃' : ''}<span class="open-bracket-expanded">{</span><span class="open-bracket-collapsed">{...}</span></span
345+
>${nullMarker}<span class="open-bracket-expanded">{</span><span class="open-bracket-collapsed">{...}</span></span
342346
>`;
343347
const closeBracket = '}';
344348

@@ -349,7 +353,7 @@ export default class SchemaTree extends LitElement {
349353

350354
return html`
351355
<div
352-
class="tr ${isExpanded ? 'expanded' : 'collapsed'} object ${node.nullable ? 'nullable' : ''}"
356+
class="tr ${isExpanded ? 'expanded' : 'collapsed'} object ${nullClass}"
353357
title="${node.deprecated ? 'Deprecated' : ''}"
354358
>
355359
<div class="td key ${node.deprecated ? 'deprecated' : ''}" style="min-width:${minFieldColWidth}px">

0 commit comments

Comments
 (0)