UNPKG

carbon-components-angular

Version:
1,085 lines (944 loc) 59.4 kB
<!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" > ExpandableTile</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/tiles/expandable-tile.component.ts</code> </p> <p class="comment"> <h3>Description</h3> </p> <p class="comment"> <p>Get started with importing the module:</p> <b>Example :</b><div><pre class="line-numbers"><code class="language-typescript">import { TilesModule } from &#39;carbon-components-angular&#39;;</code></pre></div><p><a href="../../?path=/story/components-tiles-expandable--basic">See demo</a></p> </p> <p class="comment"> <h3>Implements</h3> </p> <p class="comment"> <code>AfterViewInit</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">selector</td> <td class="col-md-9"><code>cds-expandable-tile, ibm-expandable-tile</code></td> </tr> <tr> <td class="col-md-3">template</td> <td class="col-md-9"><pre class="line-numbers"><code class="language-html">&lt;button *ngIf&#x3D;&quot;!interactive&quot; class&#x3D;&quot;cds--tile cds--tile--expandable&quot; [ngClass]&#x3D;&quot;{ &#x27;cds--tile--is-expanded&#x27; : expanded, &#x27;cds--tile--light&#x27;: theme &#x3D;&#x3D;&#x3D; &#x27;light&#x27; }&quot; [ngStyle]&#x3D;&quot;{&#x27;max-height&#x27;: expandedHeight + &#x27;px&#x27;}&quot; type&#x3D;&quot;button&quot; (click)&#x3D;&quot;onClick()&quot; [attr.aria-expanded]&#x3D;&quot;expanded&quot; [attr.title]&#x3D;&quot;(expanded ? collapse.subject : expand.subject) | async&quot;&gt; &lt;ng-container *ngTemplateOutlet&#x3D;&quot;expandableTileContent&quot;&gt;&lt;/ng-container&gt; &lt;/button&gt; &lt;div *ngIf&#x3D;&quot;interactive&quot; class&#x3D;&quot;cds--tile cds--tile--expandable cds--tile--expandable--interactive&quot; [ngClass]&#x3D;&quot;{ &#x27;cds--tile--is-expanded&#x27; : expanded, &#x27;cds--tile--light&#x27;: theme &#x3D;&#x3D;&#x3D; &#x27;light&#x27; }&quot; [ngStyle]&#x3D;&quot;{&#x27;max-height&#x27;: expandedHeight + &#x27;px&#x27;}&quot; [attr.title]&#x3D;&quot;(expanded ? collapse.subject : expand.subject) | async&quot;&gt; &lt;ng-container *ngTemplateOutlet&#x3D;&quot;expandableTileContent&quot;&gt;&lt;/ng-container&gt; &lt;/div&gt; &lt;ng-template #chevronIcon&gt; &lt;svg cdsIcon&#x3D;&quot;chevron--down&quot; size&#x3D;&quot;16&quot;&gt;&lt;/svg&gt; &lt;/ng-template&gt; &lt;ng-template #expandableTileContent&gt; &lt;div #container&gt; &lt;div class&#x3D;&quot;cds--tile-content&quot;&gt; &lt;ng-content select&#x3D;&quot;[cdsAboveFold],[ibmAboveFold],.cds--tile-content__above-the-fold&quot;&gt;&lt;/ng-content&gt; &lt;/div&gt; &lt;div *ngIf&#x3D;&quot;!interactive&quot; class&#x3D;&quot;cds--tile__chevron&quot;&gt; &lt;ng-container *ngTemplateOutlet&#x3D;&quot;chevronIcon&quot;&gt;&lt;/ng-container&gt; &lt;/div&gt; &lt;button *ngIf&#x3D;&quot;interactive&quot; class&#x3D;&quot;cds--tile__chevron cds--tile__chevron--interactive&quot; type&#x3D;&quot;button&quot; (click)&#x3D;&quot;onClick()&quot; [attr.aria-expanded]&#x3D;&quot;expanded&quot; [attr.aria-label]&#x3D;&quot;(expanded ? collapse.subject : expand.subject) | async&quot;&gt; &lt;ng-container *ngTemplateOutlet&#x3D;&quot;chevronIcon&quot;&gt;&lt;/ng-container&gt; &lt;/button&gt; &lt;div class&#x3D;&quot;cds--tile-content&quot;&gt; &lt;ng-content select&#x3D;&quot;[cdsBelowFold],[ibmBelowFold],.cds--tile-content__below-the-fold&quot;&gt;&lt;/ng-content&gt; &lt;/div&gt; &lt;/div&gt; &lt;/ng-template&gt; </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> <a href="#collapse" >collapse</a> </li> <li> <a href="#currentExpandedHeight" >currentExpandedHeight</a> </li> <li> <a href="#expand" >expand</a> </li> <li> <span class="modifier"></span> <a href="#tileContainer" >tileContainer</a> </li> <li> <a href="#tileMaxHeight" >tileMaxHeight</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="#ngAfterViewInit" >ngAfterViewInit</a> </li> <li> <a href="#onClick" >onClick</a> </li> <li> <a href="#updateMaxHeight" >updateMaxHeight</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="#expanded" >expanded</a> </li> <li> <a href="#interactive" >interactive</a> </li> <li> <a href="#theme" class="deprecated-name">theme</a> </li> <li> <a href="#translations" >translations</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="#translations" >translations</a> </li> <li> <a href="#expandedHeight" >expandedHeight</a> </li> </ul> </td> </tr> </tbody> </table> </section> <section data-compodoc="block-constructor"> <h3 id="constructor">Constructor</h3> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <code>constructor(i18n: <a href="../injectables/I18n.html" target="_self">I18n</a>, element: ElementRef)</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="120" class="link-to-prism">src/tiles/expandable-tile.component.ts:120</a></div> </td> </tr> <tr> <td class="col-md-4"> <div> <b>Parameters :</b> <table class="params"> <thead> <tr> <td>Name</td> <td>Type</td> <td>Optional</td> </tr> </thead> <tbody> <tr> <td>i18n</td> <td> <code><a href="../injectables/I18n.html" target="_self" >I18n</a></code> </td> <td> No </td> </tr> <tr> <td>element</td> <td> <code>ElementRef</code> </td> <td> No </td> </tr> </tbody> </table> </div> </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="expanded"></a> <b>expanded</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/tiles/expandable-tile.component.ts:93</a></div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-description"><p>Controls the expanded state</p> </div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="interactive"></a> <b>interactive</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/tiles/expandable-tile.component.ts:97</a></div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-description"><p>Controls the interactive state</p> </div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="theme"></a> <b>theme</b> </td> </tr> <tr> <td class="col-md-4"> <i>Type : </i> <code>&quot;light&quot; | &quot;dark&quot;</code> </td> </tr> <tr> <td class="col-md-4"> <i>Default value : </i><code>&quot;dark&quot;</code> </td> </tr> <tr> <td class="col-md-2" colspan="2"> <div class="io-line">Defined in <a href="" data-line="88" class="link-to-prism">src/tiles/expandable-tile.component.ts:88</a></div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="translations"></a> <b>translations</b> </td> </tr> <tr> <td class="col-md-4"> <i>Type : </i> <code><a href="../interfaces/ExpandableTileTranslations.html" target="_self" >ExpandableTileTranslations</a></code> </td> </tr> <tr> <td class="col-md-2" colspan="2"> <div class="io-line">Defined in <a href="" data-line="108" class="link-to-prism">src/tiles/expandable-tile.component.ts:108</a></div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-description"><p>Expects an object that contains some or all of:</p> <b>Example :</b><div><pre class="line-numbers"><code class="language-none">{ &quot;EXPAND&quot;: &quot;Expand&quot;, &quot;COLLAPSE&quot;: &quot;Collapse&quot;, }</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="ngAfterViewInit"></a> <span class="name"> <span ><b>ngAfterViewInit</b></span> <a href="#ngAfterViewInit"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <code>ngAfterViewInit()</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="124" class="link-to-prism">src/tiles/expandable-tile.component.ts:124</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="onClick"></a> <span class="name"> <span ><b>onClick</b></span> <a href="#onClick"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <code>onClick()</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="147" class="link-to-prism">src/tiles/expandable-tile.component.ts:147</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="updateMaxHeight"></a> <span class="name"> <span ><b>updateMaxHeight</b></span> <a href="#updateMaxHeight"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <code>updateMaxHeight()</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="139" class="link-to-prism">src/tiles/expandable-tile.component.ts:139</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> </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="collapse"></a> <span class="name"> <span ><b>collapse</b></span> <a href="#collapse"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <i>Default value : </i><code>this.i18n.getOverridable(&quot;TILES.COLLAPSE&quot;)</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="120" class="link-to-prism">src/tiles/expandable-tile.component.ts:120</a></div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="currentExpandedHeight"></a> <span class="name"> <span ><b>currentExpandedHeight</b></span> <a href="#currentExpandedHeight"><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="117" class="link-to-prism">src/tiles/expandable-tile.component.ts:117</a></div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="expand"></a> <span class="name"> <span ><b>expand</b></span> <a href="#expand"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <i>Default value : </i><code>this.i18n.getOverridable(&quot;TILES.EXPAND&quot;)</code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="119" class="link-to-prism">src/tiles/expandable-tile.component.ts:119</a></div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="tileContainer"></a> <span class="name"> <span class="modifier"></span> <span ><b>tileContainer</b></span> <a href="#tileContainer"><span class="icon ion-ios-link"></span></a> </span> </td> </tr> <tr> <td class="col-md-4"> <i>Type : </i> <code>ElementRef</code> </td> </tr> <tr> <td class="col-md-4"> <b>Decorators : </b> <br /> <code> @ViewChild(&#x27;container&#x27;)<br /> </code> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="114" class="link-to-prism">src/tiles/expandable-tile.component.ts:114</a></div> </td> </tr> </tbody> </table> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="tileMaxHeight"></a> <span class="name"> <span ><b>tileMaxHeight</b></span> <a href="#tileMaxHeight"><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="116" class="link-to-prism">src/tiles/expandable-tile.component.ts:116</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="translations"></a> <span class="name"><b>translations</b><a href="#translations"><span class="icon ion-ios-link"></span></a></span> </td> </tr> <tr> <td class="col-md-4"> <span class="accessor"><b>set</b><code>translations(value: <a href="../interfaces/ExpandableTileTranslations.html" target="_self">ExpandableTileTranslations</a>)</code></span> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="108" class="link-to-prism">src/tiles/expandable-tile.component.ts:108</a></div> </td> </tr> <tr> <td class="col-md-4"> <div class="io-description"><p>Expects an object that contains some or all of:</p> <b>Example :</b><div><pre class="line-numbers"><code class="language-none">{ &quot;EXPAND&quot;: &quot;Expand&quot;, &quot;COLLAPSE&quot;: &quot;Collapse&quot;, }</code></pre></div></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="../interfaces/ExpandableTileTranslations.html" target="_self" >ExpandableTileTranslations</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> <table class="table table-sm table-bordered"> <tbody> <tr> <td class="col-md-4"> <a name="expandedHeight"></a> <span class="name"><b>expandedHeight</b><a href="#expandedHeight"><span class="icon ion-ios-link"></span></a></span> </td> </tr> <tr> <td class="col-md-4"> <span class="accessor"><b>get</b><code>expandedHeight()</code></span> </td> </tr> <tr> <td class="col-md-4"> <div class="io-line">Defined in <a href="" data-line="128" class="link-to-prism">src/tiles/expandable-tile.component.ts:128</a></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, ElementRef, AfterViewInit, ViewChild } from &quot;@angular/core&quot;; import { I18n } from &quot;carbon-components-angular/i18n&quot;; import { merge } from &quot;carbon-components-angular/utils&quot;; export interface ExpandableTileTranslations { EXPAND: string; COLLAPSE: string; } /** * Get started with importing the module: * * &#x60;&#x60;&#x60;typescript * import { TilesModule } from &#x27;carbon-components-angular&#x27;; * &#x60;&#x60;&#x60; * * [See demo](../../?path&#x3D;/story/components-tiles-expandable--basic) */ @Component({ selector: &quot;cds-expandable-tile, ibm-expandable-tile&quot;, template: &#x60; &lt;button *ngIf&#x3D;&quot;!interactive&quot; class&#x3D;&quot;cds--tile cds--tile--expandable&quot; [ngClass]&#x3D;&quot;{ &#x27;cds--tile--is-expanded&#x27; : expanded, &#x27;cds--tile--light&#x27;: theme &#x3D;&#x3D;&#x3D; &#x27;light&#x27; }&quot; [ngStyle]&#x3D;&quot;{&#x27;max-height&#x27;: expandedHeight + &#x27;px&#x27;}&quot; type&#x3D;&quot;button&quot; (click)&#x3D;&quot;onClick()&quot; [attr.aria-expanded]&#x3D;&quot;expanded&quot; [attr.title]&#x3D;&quot;(expanded ? collapse.subject : expand.subject) | async&quot;&gt; &lt;ng-container *ngTemplateOutlet&#x3D;&quot;expandableTileContent&quot;&gt;&lt;/ng-container&gt; &lt;/button&gt; &lt;div *ngIf&#x3D;&quot;interactive&quot; class&#x3D;&quot;cds--tile cds--tile--expandable cds--tile--expandable--interactive&quot; [ngClass]&#x3D;&quot;{ &#x27;cds--tile--is-expanded&#x27; : expanded, &#x27;cds--tile--light&#x27;: theme &#x3D;&#x3D;&#x3D; &#x27;light&#x27; }&quot; [ngStyle]&#x3D;&quot;{&#x27;max-height&#x27;: expandedHeight + &#x27;px&#x27;}&quot; [attr.title]&#x3D;&quot;(expanded ? collapse.subject : expand.subject) | async&quot;&gt; &lt;ng-container *ngTemplateOutlet&#x3D;&quot;expandableTileContent&quot;&gt;&lt;/ng-container&gt; &lt;/div&gt; &lt;ng-template #chevronIcon&gt; &lt;svg cdsIcon&#x3D;&quot;chevron--down&quot; size&#x3D;&quot;16&quot;&gt;&lt;/svg&gt; &lt;/ng-template&gt; &lt;ng-template #expandableTileContent&gt; &lt;div #container&gt; &lt;div class&#x3D;&quot;cds--tile-content&quot;&gt; &lt;ng-content select&#x3D;&quot;[cdsAboveFold],[ibmAboveFold],.cds--tile-content__above-the-fold&quot;&gt;&lt;/ng-content&gt; &lt;/div&gt; &lt;div *ngIf&#x3D;&quot;!interactive&quot; class&#x3D;&quot;cds--tile__chevron&quot;&gt; &lt;ng-container *ngTemplateOutlet&#x3D;&quot;chevronIcon&quot;&gt;&lt;/ng-container&gt; &lt;/div&gt; &lt;button *ngIf&#x3D;&quot;interactive&quot; class&#x3D;&quot;cds--tile__chevron cds--tile__chevron--interactive&quot; type&#x3D;&quot;button&quot; (click)&#x3D;&quot;onClick()&quot; [attr.aria-expanded]&#x3D;&quot;expanded&quot; [attr.aria-label]&#x3D;&quot;(expanded ? collapse.subject : expand.subject) | async&quot;&gt; &lt;ng-container *ngTemplateOutlet&#x3D;&quot;chevronIcon&quot;&gt;&lt;/ng-container&gt; &lt;/button&gt; &lt;div class&#x3D;&quot;cds--tile-content&quot;&gt; &lt;ng-content select&#x3D;&quot;[cdsBelowFold],[ibmBelowFold],.cds--tile-content__below-the-fold&quot;&gt;&lt;/ng-content&gt; &lt;/div&gt; &lt;/div&gt; &lt;/ng-template&gt; &#x60; }) export class ExpandableTile implements AfterViewInit { /** * @deprecated since v5 - Use &#x60;cdsLayer&#x60; directive instead * Set to &#x60;&quot;light&quot;&#x60; to apply the light style */ @Input() theme: &quot;light&quot; | &quot;dark&quot; &#x3D; &quot;dark&quot;; /** * Controls the expanded state */ @Input() expanded &#x3D; false; /** * Controls the interactive state */ @Input() interactive &#x3D; false; /** * Expects an object that contains some or all of: * &#x60;&#x60;&#x60; * { * &quot;EXPAND&quot;: &quot;Expand&quot;, * &quot;COLLAPSE&quot;: &quot;Collapse&quot;, * } * &#x60;&#x60;&#x60; */ @Input() set translations(value: ExpandableTileTranslations) { const valueWithDefaults &#x3D; merge(this.i18n.getMultiple(&quot;TILES&quot;), value); this.expand.override(valueWithDefaults.EXPAND); this.collapse.override(valueWithDefaults.COLLAPSE); } @ViewChild(&quot;container&quot;) tileContainer: ElementRef; tileMaxHeight &#x3D; 0; currentExpandedHeight &#x3D; 0; expand &#x3D; this.i18n.getOverridable(&quot;TILES.EXPAND&quot;); collapse &#x3D; this.i18n.getOverridable(&quot;TILES.COLLAPSE&quot;); constructor(protected i18n: I18n, protected element: ElementRef) {} ngAfterViewInit() { this.updateMaxHeight(); } get expandedHeight() { const tile &#x3D; this.element.nativeElement.querySelector(&quot;.cds--tile&quot;); const tilePadding &#x3D; parseInt(getComputedStyle(tile).paddingBottom, 10) + parseInt(getComputedStyle(tile).paddingTop, 10); const expandedHeight &#x3D; this.tileMaxHeight + tilePadding; if (!isNaN(expandedHeight)) { this.currentExpandedHeight &#x3D; expandedHeight; } return this.currentExpandedHeight; } updateMaxHeight() { if (this.expanded) { this.tileMaxHeight &#x3D; this.tileContainer.nativeElement.getBoundingClientRect().height; } else { this.tileMaxHeight &#x3D; this.element.nativeElement.querySelector(&quot;.cds--tile-content__above-the-fold&quot;).getBoundingClientRect().height; } } onClick() { this.expanded &#x3D; !this.expanded; this.updateMaxHeight(); } } </code></pre> </div> <div class="tab-pane fade " id="tree"> <div id="tree-container"></div> <div class="tree-legend"> <div class="title"> <b>Legend</b> </div> <div> <div class="color htmlelement"></div><span>Html element</span> </div> <div> <div class="color component"></div><span>Component</span> </div> <div> <div class="color directive"></div><span>Html element with directive</span> </div> </div> </div> </div> <script src="../js/libs/vis.min.js"></script> <script src="../js/libs/htmlparser.js"></script> <script src="../js/libs/deep-iterator.js"></script> <script> var COMPONENT_TEMPLATE = '<div><button *ngIf="!interactive" class="cds--tile cds--tile--expandable" [ngClass]="{ \'cds--tile--is-expanded\' : expanded, \'cds--tile--light\': theme === \'light\' }" [ngStyle]="{\'max-height\': expandedHeight + \'px\'}" type="button" (click)="onClick()" [attr.aria-expanded]="expanded" [attr.title]="(expanded ? collapse.subject : expand.subject) | async"> <ng-container *ngTemplateOutlet="expandableTileContent"></ng-container></button><div *ngIf="interactive" class="cds--tile cds--tile--expandable cds--tile--expandable--interactive" [ngClass]="{ \'cds--tile--is-expanded\' : expanded, \'cds--tile--light\': theme === \'light\' }" [ngStyle]="{\'max-height\': expandedHeight + \'px\'}" [attr.title]="(expanded ? collapse.subject : expand.subject) | async"> <ng-container *ngTemplateOutlet="expandableTileContent"></ng-container></div><ng-template #chevronIcon> <svg cdsIcon="chevron--down" size="16"></svg></ng-template><ng-template #expandableTileContent> <div #container> <div class="cds--tile-content"> <ng-content select="[cdsAboveFold],[ibmAboveFold],.cds--tile-content__above-the-fold"></ng-content> </div> <div *ngIf="!interactive" class="cds--tile__chevron"> <ng-container *ngTemplateOutlet="chevronIcon"></ng-container> </div> <button *ngIf="interactive" class="cds--tile__chevron cds--tile__chevron--interactive" type="button" (click)="onClick()" [attr.aria-expanded]="expanded" [attr.aria-label]="(expanded ? collapse.subject : expand.subject) | async"> <ng-container *ngTemplateOutlet="chevronIcon"></ng-container> </button> <div class="cds--tile-content"> <ng-content select="[cdsBelowFold],[ibmBelowFold],.cds--tile-content__below-the-fold"></ng-content> </div> </div></ng-template> </div>' var COMPONENTS = [{'name': 'Accordion', 'selector': 'cds-accordion, ibm-accordion'},{'name': 'AccordionItem', 'selector': 'cds-accordion-item, ibm-accordion-item'},{'name': 'ActionableNotification', 'selector': 'cds-actionable-notification, ibm-actionable-notification'},{'name': 'AlertModal', 'selector': 'cds-alert-modal, ibm-alert-modal'},{'name': 'BaseIconButton', 'selector': ''},{'name': 'BaseNotification', 'selector': ''},{'name': 'BaseTabHeader', 'selector': ''},{'name': 'Breadcrumb', 'selector': 'cds-breadcrumb, ibm-breadcrumb'},{'name': 'BreadcrumbItemComponent', 'selector': 'cds-breadcrumb-item, ibm-breadcrumb-item'},{'name': 'ButtonSet', 'selector': 'cds-button-set, ibm-button-set'},{'name': 'Checkbox', 'selector': 'cds-checkbox, ibm-checkbox'},{'name': 'ClickableTile', 'selector': 'cds-clickable-tile, ibm-clickable-tile'},{'name': 'CodeSnippet', 'selector': 'cds-code-snippet, ibm-code-snippet'},{'name': 'ComboBox', 'selector': 'cds-combo-box, ibm-combo-box'},{'name': 'ComboButtonComponent', 'selector': 'cds-combo-button'},{'name': 'ContainedList', 'selector': 'cds-contained-list, ibm-contained-list'},{'name': 'ContainedListItem', 'selector': 'cds-contained-list-item, ibm-contained-list-item'},{'name': 'ContentSwitcher', 'selector': 'cds-content-switcher, ibm-content-switcher'},{'name': 'ContextMenuComponent', 'selector': 'cds-menu, cds-context-menu, ibm-context-menu'},{'name': 'ContextMenuDividerComponent', 'selector': 'cds-menu-divider, cds-context-menu-divider, ibm-context-menu-divider'},{'name': 'ContextMenuGroupComponent', 'selector': 'cds-menu-group, cds-context-menu-group, ibm-context-menu-group'},{'name': 'ContextMenuItemComponent', 'selector': 'cds-menu-item, cds-context-menu-item, ibm-context-menu-item'},{'name': 'DatePicker', 'selector': 'cds-date-picker, ibm-date-picker'},{'name': 'DatePickerInput', 'selector': 'cds-date-picker-input, ibm-date-picker-input'},{'name': 'Dialog', 'selector': 'cds-dialog, ibm-dialog'},{'name': 'Documentation', 'selector': 'cds-documentation'},{'name': 'Dropdown', 'selector': 'cds-dropdown, ibm-dropdown'},{'name': 'DropdownList', 'selector': 'cds-dropdown-list, ibm-dropdown-list'},{'name': 'ExpandableTile', 'selector': 'cds-expandable-tile, ibm-expandable-tile'},{'name': 'FileComponent', 'selector': 'cds-file, ibm-file'},{'name': 'FileUploader', 'selector': 'cds-file-uploader, ibm-file-uploader'},{'name': 'Hamburger', 'selector': 'cds-hamburger, ibm-hamburger'},{'name': 'Header', 'selector': 'cds-header, ibm-header'},{'name': 'HeaderAction', 'selector': 'cds-header-action, ibm-header-action'},{'name': 'HeaderGlobal', 'selector': 'cds-header-global, ibm-header-global'},{'name': 'HeaderItem', 'selector': 'cds-header-item, ibm-header-item'},{'name': 'HeaderMenu', 'selector': 'cds-header-menu, ibm-header-menu'},{'name': 'HeaderNavigation', 'selector': 'cds-header-navigation, ibm-header-navigation'},{'name': 'IconButton', 'selector': 'cds-icon-button, ibm-icon-button'},{'name': 'InlineLoading', 'selector': 'cds-inline-loading, ibm-inline-loading'},{'name': 'Label', 'selector': 'cds-label, ibm-label'},{'name': 'ListColumn', 'selector': 'cds-list-column, ibm-list-column'},{'name': 'ListHeader', 'selector': 'cds-list-header, ibm-list-header'},{'name': 'ListRow', 'selector': 'cds-list-row, ibm-list-row'},{'name': 'Loading', 'selector': 'cds-loading, ibm-loading'},{'name': 'MenuButtonComponent', 'selector': 'cds-menu-button'},{'name': 'Modal', 'selector': 'cds-modal, ibm-modal'},{'name': 'ModalFooter', 'selector': 'cds-modal-footer, ibm-modal-footer'},{'name': 'ModalHeader', 'selector': 'cds-modal-header, ibm-modal-header'},{'name': 'Notification', 'selector': 'cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification'},{'name': 'NumberComponent', 'selector': 'cds-number, ibm-number'},{'name': 'OverflowMenu', 'selector': 'cds-overflow-menu, ibm-overflow-menu'},{'name': 'OverflowMenuCustomPane', 'selector': 'cds-overflow-custom-menu-pane, ibm-overflow-custom-menu-pane'},{'name': 'OverflowMenuOption', 'selector': 'cds-overflow-menu-option, ibm-overflow-menu-option'},{'name': 'OverflowMenuPane', 'selector': 'cds-overflow-menu-pane, ibm-overflow-menu-pane'},{'name': 'Overlay', 'selector': 'cds-overlay, ibm-overlay'},{'name': 'Pagination', 'selector': 'cds-pagination, ibm-pagination'},{'name': 'PaginationNav', 'selector': 'cds-pagination-nav, ibm-pagination-navm'},{'name': 'PaginationNavItem', 'selector': 'cds-pagination-nav-item, ibm-pagination-nav-item'},{'name': 'PaginationOverflow', 'selector': 'cds-pagination-overflow, ibm-pagination-overflow'},{'name': 'Panel', 'selector': 'cds-panel, ibm-panel'},{'name': 'PasswordInputLabelComponent', 'selector': 'cds-password-label, ibm-password-label'},{'name': 'Placeholder', 'selector': 'cds-placeholder, ibm-placeholder'},{'name': 'PopoverContent', 'selector': 'cds-popover-content, ibm-popover-content'},{'name': 'ProgressBar', 'selector': 'cds-progress-bar, ibm-progress-bar'},{'name': 'ProgressIndicator', 'selector': 'cds-progress-indicator, ibm-progress-indicator'},{'name': 'Radio', 'selector': 'cds-radio, ibm-radio'},{'name': 'RadioGroup', 'selector': 'cds-radio-group, ibm-radio-group'},{'name': 'Search', 'selector': 'cds-search, ibm-search'},{'name': 'Select', 'selector': 'cds-select, ibm-select'},{'name': 'SelectionTile', 'selector': 'cds-selection-tile, ibm-selection-tile'},{'name': 'SideNav', 'selector': 'cds-sidenav, ibm-sidenav'},{'name': 'SideNavItem', 'selector': 'cds-sidenav-item, ibm-sidenav-item'},{'name': 'SideNavMenu', 'selector': 'cds-sidenav-menu, ibm-sidenav-menu'},{'name': 'SkeletonPlaceholder', 'selector': 'cds-skeleton-placeholder, ibm-skeleton-placeholder'},{'name': 'SkeletonText', 'selector': 'cds-skeleton-text, ibm-skeleton-text'},{'name': 'Slider', 'selector': 'cds-slider, ibm-slider'},{'name': 'StructuredList', 'selector': 'cds-structured-list, ibm-structured-list'},{'name': 'SwitcherList', 'selector': 'cds-switcher-list, ibm-switcher-list'},{'name': 'SwitcherListItem', 'selector': 'cds-switcher-list-item, ibm-switcher-list-item'},{'name': 'Tab', 'selector': 'cds-tab, ibm-tab'},{'name': 'TabHeaderGroup', 'selector': 'cds-tab-header-group, ibm-tab-header-group'},{'name': 'TabHeaders', 'selector': 'cds-tab-headers, ibm-tab-headers'},{'name': 'Table', 'selector': 'cds-table, ibm-table'},{'name': 'TableBody', 'selector': '[cdsTableBody], [ibmTableBody]'},{'name': 'TableCheckbox', 'selector': '[cdsTableCheckbox], [ibmTableCheckbox]'},{'name': 'TableContainer', 'selector': 'cds-table-container, ibm-table-container'},{'name': 'TableData', 'selector': '[cdsTableData], [ibmTableData]'},{'name': 'TableExpandButton', 'selector': '[cdsTableExpandButton], [ibmTableExpandButton]'},{'name': 'TableExpandedRow', 'selector': '[cdsTableExpandedRow], [ibmTableExpandedRow]'},{'name': 'TableHead', 'selector': '[cdsTableHead], [ibmTableHead]'},{'name': 'TableHeadCell', 'selector': '[cdsTableHeadCell], [ibmTableHeadCell]'},{'name': 'TableHeadCheckbox', 'selector': '[cdsTableHeadCheckbox], [ibmTableHeadCheckbox]'},{'name': 'TableHeader', 'selector': 'cds-table-header, ibm-table-header'},{'name': 'TableHeadExpand', 'selector':