carbon-components-angular
Version:
Next generation components
1,286 lines (1,136 loc) • 68.7 kB
HTML
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>carbon-components-angular documentation</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
<link rel="stylesheet" href="../styles/dark.css">
<style>
footer.carbon {
position: absolute;
bottom: 0;
width: 100%;
z-index: 9999;
}
#root > div {
/*
* Subtracting the height of the footer to prevent
* overlaying the footer ontop of content
*/
height: calc(100vh - 48px);
}
</style>
</head>
<body>
<script>
// Blocking script to avoid flickering dark mode
// Dark mode toggle button
var useDark = window.matchMedia('(prefers-color-scheme: dark)');
var darkModeState = useDark.matches;
var $darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input');
var $darkModeToggles = document.querySelectorAll('.dark-mode-switch');
var darkModeStateLocal = localStorage.getItem('compodoc_darkmode-state');
function checkToggle(check) {
for (var i = 0; i < $darkModeToggleSwitchers.length; i++) {
$darkModeToggleSwitchers[i].checked = check;
}
}
function toggleDarkMode(state) {
if (window.localStorage) {
localStorage.setItem('compodoc_darkmode-state', state);
}
checkToggle(state);
const hasClass = document.body.classList.contains('dark');
if (state) {
for (var i = 0; i < $darkModeToggles.length; i++) {
$darkModeToggles[i].classList.add('dark');
}
if (!hasClass) {
document.body.classList.add('dark');
}
} else {
for (var i = 0; i < $darkModeToggles.length; i++) {
$darkModeToggles[i].classList.remove('dark');
}
if (hasClass) {
document.body.classList.remove('dark');
}
}
}
useDark.addEventListener('change', function (evt) {
toggleDarkMode(evt.matches);
});
if (darkModeStateLocal) {
darkModeState = darkModeStateLocal === 'true';
}
toggleDarkMode(darkModeState);
</script>
<div class="navbar navbar-default navbar-fixed-top d-md-none p-0">
<div class="d-flex">
<a href="../" class="navbar-brand">carbon-components-angular documentation</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="d-none d-md-block menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li class="breadcrumb-item">Components</li>
<li class="breadcrumb-item"
>
StructuredList</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a href="#info" class="nav-link active"
role="tab" id="info-tab" data-bs-toggle="tab" data-link="info">Info</a>
</li>
<li class="nav-item">
<a href="#source" class="nav-link"
role="tab" id="source-tab" data-bs-toggle="tab" data-link="source">Source</a>
</li>
<li class="nav-item">
<a href="#tree" class="nav-link"
role="tab" id="tree-tab" data-bs-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/structured-list/structured-list.component.ts</code>
</p>
<p class="comment">
<h3>Description</h3>
</p>
<p class="comment">
<p>Structured Lists represent related tabular data. For larger datasets consider a full <code>Table</code>.</p>
<p>See <a href="https://www.carbondesignsystem.com/components/structured-list/usage">structured-list/usage</a> for usage guidance.</p>
<p>Get started with importing the module:</p>
<b>Example :</b><div><pre class="line-numbers"><code class="language-typescript">import { StructuredListModule } from 'carbon-components-angular';</code></pre></div><b>Example :</b><div><pre class="line-numbers"><code class="language-html"> <cds-structured-list>
<cds-list-header>
<cds-list-column nowrap="true">Column 1</cds-list-column>
<cds-list-column nowrap="true">Column 2</cds-list-column>
<cds-list-column>Column 3</cds-list-column>
</cds-list-header>
<cds-list-row>
<cds-list-column>Row 1</cds-list-column>
<cds-list-column nowrap="true">Row One</cds-list-column>
<cds-list-column>
Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Nunc dui magna,
finibus id tortor sed, aliquet bibendum augue.
Aenean posuere sem vel euismod dignissim. Nulla ut cursus dolor.
Pellentesque vulputate nisl a porttitor interdum.
</cds-list-column>
</cds-list-row>
<cds-list-row>
<cds-list-column>Row 2</cds-list-column>
<cds-list-column nowrap="true">Row Two</cds-list-column>
<cds-list-column>
Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Nunc dui magna,
finibus id tortor sed, aliquet bibendum augue.
Aenean posuere sem vel euismod dignissim. Nulla ut cursus dolor.
Pellentesque vulputate nisl a porttitor interdum.
</cds-list-column>
</cds-list-row>
</cds-structured-list></code></pre></div><p><a href="../../?path=/story/components-structured-list--basic">See demo</a></p>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code>AfterContentInit</code>
<code>ControlValueAccessor</code>
</p>
<section data-compodoc="block-metadata">
<h3>Metadata</h3>
<table class="table table-sm table-hover metadata">
<tbody>
<tr>
<td class="col-md-3">providers</td>
<td class="col-md-9">
<code><a href="../components/StructuredList.html" target="_self" >{
provide: NG_VALUE_ACCESSOR, useExisting: StructuredList, multi: true
}</a></code>
</td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>cds-structured-list, ibm-structured-list</code></td>
</tr>
<tr>
<td class="col-md-3">template</td>
<td class="col-md-9"><pre class="line-numbers"><code class="language-html"><div
class="cds--structured-list"
role="table"
[ngClass]="{
'cds--structured-list--flush': flushed,
'cds--structured-list--selection': selection,
'cds--structured-list--condensed': condensed,
'cds--skeleton': skeleton
}">
<ng-content select="cds-list-header,ibm-list-header"></ng-content>
<div class="cds--structured-list-tbody" role="rowgroup">
<ng-content></ng-content>
</div>
</div>
</code></pre></td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-index">
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Protected</span>
<a href="#_skeleton" >_skeleton</a>
</li>
<li>
<span class="modifier"></span>
<a href="#headers" >headers</a>
</li>
<li>
<span class="modifier">Static</span>
<a href="#listCount" >listCount</a>
</li>
<li>
<a href="#onChange" >onChange</a>
</li>
<li>
<a href="#onTouched" >onTouched</a>
</li>
<li>
<span class="modifier"></span>
<a href="#rows" >rows</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#ngAfterContentInit" >ngAfterContentInit</a>
</li>
<li>
<a href="#registerOnChange" >registerOnChange</a>
</li>
<li>
<a href="#registerOnTouched" >registerOnTouched</a>
</li>
<li>
<span class="modifier">Protected</span>
<a href="#updateChildren" >updateChildren</a>
</li>
<li>
<a href="#writeValue" >writeValue</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Inputs</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#condensed" >condensed</a>
</li>
<li>
<a href="#flushed" >flushed</a>
</li>
<li>
<a href="#name" >name</a>
</li>
<li>
<a href="#selection" >selection</a>
</li>
<li>
<a href="#skeleton" >skeleton</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Outputs</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#selected" >selected</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Accessors</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#skeleton" >skeleton</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-inputs">
<h3 id="inputs">Inputs</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="condensed"></a>
<b>condensed</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="101" class="link-to-prism">src/structured-list/structured-list.component.ts:101</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Set to <code>true</code> to apply a condensed style to the headers and rows.</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="flushed"></a>
<b>flushed</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="97" class="link-to-prism">src/structured-list/structured-list.component.ts:97</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Set to <code>true</code> to align content with margin</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="name"></a>
<b>name</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>`structured-list-${StructuredList.listCount++}`</code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="105" class="link-to-prism">src/structured-list/structured-list.component.ts:105</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Used when <code>selection = true</code> as the row radio group <code>name</code></p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="selection"></a>
<b>selection</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="93" class="link-to-prism">src/structured-list/structured-list.component.ts:93</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Set to <code>true</code> to enable radio like selection of the rows.</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="skeleton"></a>
<b>skeleton</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="111" class="link-to-prism">src/structured-list/structured-list.component.ts:111</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Sets the skeleton value for all <code>ListHeader</code> to the skeleton value of <code>StructuredList</code>.</p>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-outputs">
<h3 id="outputs">Outputs</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="selected"></a>
<b>selected</b>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>EventEmitter<literal type></code>
</td>
</tr>
<tr>
<td class="col-md-2" colspan="2">
<div class="io-line">Defined in <a href="" data-line="135" class="link-to-prism">src/structured-list/structured-list.component.ts:135</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Emits an event when the row selection changes.</p>
<p>Emits an object that looks like:</p>
<b>Example :</b><div><pre class="line-numbers"><code class="language-javascript">{
value: "something",
selected: true,
name: "structured-list-1"
}</code></pre></div></div>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-methods">
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="ngAfterContentInit"></a>
<span class="name">
<span ><b>ngAfterContentInit</b></span>
<a href="#ngAfterContentInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngAfterContentInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="146"
class="link-to-prism">src/structured-list/structured-list.component.ts:146</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="registerOnChange"></a>
<span class="name">
<span ><b>registerOnChange</b></span>
<a href="#registerOnChange"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>registerOnChange(fn: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="179"
class="link-to-prism">src/structured-list/structured-list.component.ts:179</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>fn</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="registerOnTouched"></a>
<span class="name">
<span ><b>registerOnTouched</b></span>
<a href="#registerOnTouched"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>registerOnTouched(fn: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="183"
class="link-to-prism">src/structured-list/structured-list.component.ts:183</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>fn</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="updateChildren"></a>
<span class="name">
<span class="modifier">Protected</span>
<span ><b>updateChildren</b></span>
<a href="#updateChildren"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>updateChildren()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="187"
class="link-to-prism">src/structured-list/structured-list.component.ts:187</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="writeValue"></a>
<span class="name">
<span ><b>writeValue</b></span>
<a href="#writeValue"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>writeValue(value: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="168"
class="link-to-prism">src/structured-list/structured-list.component.ts:168</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>value</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-properties">
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="_skeleton"></a>
<span class="name">
<span class="modifier">Protected</span>
<span ><b>_skeleton</b></span>
<a href="#_skeleton"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="140" class="link-to-prism">src/structured-list/structured-list.component.ts:140</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="headers"></a>
<span class="name">
<span class="modifier"></span>
<span ><b>headers</b></span>
<a href="#headers"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../directives/List.html" target="_self" >QueryList<ListHeader></a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ContentChildren(ListHeader)<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="138" class="link-to-prism">src/structured-list/structured-list.component.ts:138</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="listCount"></a>
<span class="name">
<span class="modifier">Static</span>
<span ><b>listCount</b></span>
<a href="#listCount"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>0</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="89" class="link-to-prism">src/structured-list/structured-list.component.ts:89</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>A counter to provide unique default values.</p>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onChange"></a>
<span class="name">
<span ><b>onChange</b></span>
<a href="#onChange"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>() => {...}</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="142" class="link-to-prism">src/structured-list/structured-list.component.ts:142</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="onTouched"></a>
<span class="name">
<span ><b>onTouched</b></span>
<a href="#onTouched"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>() => {...}</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="144" class="link-to-prism">src/structured-list/structured-list.component.ts:144</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="rows"></a>
<span class="name">
<span class="modifier"></span>
<span ><b>rows</b></span>
<a href="#rows"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../components/ListRow.html" target="_self" >QueryList<ListRow></a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ContentChildren(ListRow)<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="137" class="link-to-prism">src/structured-list/structured-list.component.ts:137</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-accessors">
<h3 id="accessors">
Accessors
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="skeleton"></a>
<span class="name"><b>skeleton</b><a href="#skeleton"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>get</b><code>skeleton()</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="119" class="link-to-prism">src/structured-list/structured-list.component.ts:119</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Returns the skeleton value in the <code>StructuredList</code> if there is one.</p>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</div>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>set</b><code>skeleton(value: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="111" class="link-to-prism">src/structured-list/structured-list.component.ts:111</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Sets the skeleton value for all <code>ListHeader</code> to the skeleton value of <code>StructuredList</code>.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>value</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {
Component,
Input,
ContentChildren,
QueryList,
AfterContentInit,
Output,
EventEmitter
} from "@angular/core";
import { ListRow } from "./list-row.component";
import { ListHeader } from "./list-header.component";
import { NG_VALUE_ACCESSOR, ControlValueAccessor } from "@angular/forms";
/**
* Structured Lists represent related tabular data. For larger datasets consider a full `Table`.
*
* See [structured-list/usage](https://www.carbondesignsystem.com/components/structured-list/usage) for usage guidance.
*
* Get started with importing the module:
*
* ```typescript
* import { StructuredListModule } from 'carbon-components-angular';
* ```
*
* ```html
* <cds-structured-list>
* <cds-list-header>
* <cds-list-column nowrap="true">Column 1</cds-list-column>
* <cds-list-column nowrap="true">Column 2</cds-list-column>
* <cds-list-column>Column 3</cds-list-column>
* </cds-list-header>
* <cds-list-row>
* <cds-list-column>Row 1</cds-list-column>
* <cds-list-column nowrap="true">Row One</cds-list-column>
* <cds-list-column>
* Lorem ipsum dolor sit amet,
* consectetur adipiscing elit. Nunc dui magna,
* finibus id tortor sed, aliquet bibendum augue.
* Aenean posuere sem vel euismod dignissim. Nulla ut cursus dolor.
* Pellentesque vulputate nisl a porttitor interdum.
* </cds-list-column>
* </cds-list-row>
* <cds-list-row>
* <cds-list-column>Row 2</cds-list-column>
* <cds-list-column nowrap="true">Row Two</cds-list-column>
* <cds-list-column>
* Lorem ipsum dolor sit amet,
* consectetur adipiscing elit. Nunc dui magna,
* finibus id tortor sed, aliquet bibendum augue.
* Aenean posuere sem vel euismod dignissim. Nulla ut cursus dolor.
* Pellentesque vulputate nisl a porttitor interdum.
* </cds-list-column>
* </cds-list-row>
* </cds-structured-list>
* ```
*
* [See demo](../../?path=/story/components-structured-list--basic)
*/
@Component({
selector: "cds-structured-list, ibm-structured-list",
template: `
<div
class="cds--structured-list"
role="table"
[ngClass]="{
'cds--structured-list--flush': flushed,
'cds--structured-list--selection': selection,
'cds--structured-list--condensed': condensed,
'cds--skeleton': skeleton
}">
<ng-content select="cds-list-header,ibm-list-header"></ng-content>
<div class="cds--structured-list-tbody" role="rowgroup">
<ng-content></ng-content>
</div>
</div>
`,
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: StructuredList,
multi: true
}
]
})
export class StructuredList implements AfterContentInit, ControlValueAccessor {
/**
* A counter to provide unique default values.
*/
static listCount = 0;
/**
* Set to `true` to enable radio like selection of the rows.
*/
@Input() selection = false;
/**
* Set to `true` to align content with margin
*/
@Input() flushed = false;
/**
* Set to `true` to apply a condensed style to the headers and rows.
*/
@Input() condensed = false;
/**
* Used when `selection = true` as the row radio group `name`
*/
@Input() name = `structured-list-${StructuredList.listCount++}`;
/**
* Sets the skeleton value for all `ListHeader` to the skeleton value of `StructuredList`.
*/
@Input()
set skeleton(value: any) {
this._skeleton = value;
this.updateChildren();
}
/**
* Returns the skeleton value in the `StructuredList` if there is one.
*/
get skeleton(): any {
return this._skeleton;
}
/**
* Emits an event when the row selection changes.
*
* Emits an object that looks like:
* ```javascript
* {
* value: "something",
* selected: true,
* name: "structured-list-1"
* }
* ```
*/
@Output() selected: EventEmitter<{value: string, selected: boolean, name: string}> = new EventEmitter();
@ContentChildren(ListRow) rows: QueryList<ListRow>;
@ContentChildren(ListHeader) headers: QueryList<ListHeader>;
protected _skeleton = false;
onChange = (_: any) => { };
onTouched = () => { };
ngAfterContentInit() {
const setSelection = (rowOrHeader: ListRow | ListHeader) => {
rowOrHeader.selection = this.selection;