UNPKG

carbon-components-angular

Version:
1,762 lines 65.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 directive">
                   <div class="content-data">







<ol class="breadcrumb">
  <li class="breadcrumb-item">Directives</li>
  <li class="breadcrumb-item" >ScrollableList</li>
</ol>

<ul class="nav nav-tabs" role="tablist">
        <li class="nav-item">
            <a href="#info" 
                class="nav-link"
                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>
</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/dropdown/scrollable-list.directive.ts</code>
        </p>




            <p class="comment">
                <h3>Implements</h3>
            </p>
            <p class="comment">
                        <code>OnChanges</code>
                        <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>[cdsScrollableList], [ibmScrollableList]</code></td>
                    </tr>



                    <tr>
                        <td class="col-md-3">exportAs</td>
                        <td class="col-md-9"><code>scrollable-list</code></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="#canScrollDown" >canScrollDown</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#canScrollUp" >canScrollUp</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#hoverScrollInterval" >hoverScrollInterval</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#lastTouch" >lastTouch</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#list" >list</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>
                                    <span class="modifier">Protected</span>
                                <a href="#checkScrollArrows" >checkScrollArrows</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#hoverScrollBy" >hoverScrollBy</a>
                            </li>
                            <li>
                                <a href="#ngAfterViewInit" >ngAfterViewInit</a>
                            </li>
                            <li>
                                <a href="#ngOnChanges" >ngOnChanges</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#onHoverDown" >onHoverDown</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#onHoverUp" >onHoverUp</a>
                            </li>
                            <li>
                                    <span class="modifier"></span>
                                    <span class="modifier">Protected</span>
                                <a href="#onKeyDown" >onKeyDown</a>
                            </li>
                            <li>
                                    <span class="modifier"></span>
                                    <span class="modifier">Protected</span>
                                <a href="#onTouchMove" >onTouchMove</a>
                            </li>
                            <li>
                                    <span class="modifier"></span>
                                    <span class="modifier">Protected</span>
                                <a href="#onTouchStart" >onTouchStart</a>
                            </li>
                            <li>
                                    <span class="modifier"></span>
                                    <span class="modifier">Protected</span>
                                <a href="#onWheel" >onWheel</a>
                            </li>
                            <li>
                                    <span class="modifier">Public</span>
                                <a href="#updateScrollHeight" >updateScrollHeight</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="#nScrollableList" >nScrollableList</a>
                            </li>
                            <li>
                                <a href="#scrollBy" >scrollBy</a>
                            </li>
                            <li>
                                <a href="#scrollDownTarget" >scrollDownTarget</a>
                            </li>
                            <li>
                                <a href="#scrollEnabled" >scrollEnabled</a>
                            </li>
                            <li>
                                <a href="#scrollUpTarget" >scrollUpTarget</a>
                            </li>
                        </ul>
                    </td>
                </tr>



                <tr>
                    <td class="col-md-4">
                        <h6><b>HostListeners</b></h6>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <ul class="index-list">
                            <li>
                                <a href="#keydown" >keydown</a>
                            </li>
                            <li>
                                <a href="#touchmove" >touchmove</a>
                            </li>
                            <li>
                                <a href="#touchstart" >touchstart</a>
                            </li>
                            <li>
                                <a href="#wheel" >wheel</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(elementRef: ElementRef)</code>
                    </td>
                </tr>
                        <tr>
                            <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="44" class="link-to-prism">src/dropdown/scrollable-list.directive.ts:44</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>elementRef</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="nScrollableList"></a>
                        <b>nScrollableList</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>null</code>
                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="19" class="link-to-prism">src/dropdown/scrollable-list.directive.ts:19</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Optional target list to scroll</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="scrollBy"></a>
                        <b>scrollBy</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/number" target="_blank" >number</a></code>

                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Default value : </i><code>10</code>
                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="36" class="link-to-prism">src/dropdown/scrollable-list.directive.ts:36</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>How many lines to scroll by each time <code>wheel</code> fires
Defaults to 10 - based on testing this isn&#39;t too fast or slow on any platform</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="scrollDownTarget"></a>
                        <b>scrollDownTarget</b>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>HTMLElement</code>

                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="31" class="link-to-prism">src/dropdown/scrollable-list.directive.ts:31</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Sets the target used for hover scrolling down</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="scrollEnabled"></a>
                        <b>scrollEnabled</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>true</code>
                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="23" class="link-to-prism">src/dropdown/scrollable-list.directive.ts:23</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Enables or disables scrolling for the whole directive</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="scrollUpTarget"></a>
                        <b>scrollUpTarget</b>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>HTMLElement</code>

                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="27" class="link-to-prism">src/dropdown/scrollable-list.directive.ts:27</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Sets the target used for hover scrolling up</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
</section>


            <section data-compodoc="block-host-listener">
    <h3>HostListeners</h3>    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="keydown"></a>
                    <span class="name">
                        <b>
                            keydown
                        </b>
                        <a href="#keydown"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <i>Arguments : </i><code>'$event' </code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="182"
                            class="link-to-prism">src/dropdown/scrollable-list.directive.ts:182</a></div>
                </td>
            </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="touchmove"></a>
                    <span class="name">
                        <b>
                            touchmove
                        </b>
                        <a href="#touchmove"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <i>Arguments : </i><code>'$event' </code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="148"
                            class="link-to-prism">src/dropdown/scrollable-list.directive.ts:148</a></div>
                </td>
            </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="touchstart"></a>
                    <span class="name">
                        <b>
                            touchstart
                        </b>
                        <a href="#touchstart"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <i>Arguments : </i><code>'$event' </code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="141"
                            class="link-to-prism">src/dropdown/scrollable-list.directive.ts:141</a></div>
                </td>
            </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="wheel"></a>
                    <span class="name">
                        <b>
                            wheel
                        </b>
                        <a href="#wheel"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
                    <i>Arguments : </i><code>'$event' </code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="126"
                            class="link-to-prism">src/dropdown/scrollable-list.directive.ts:126</a></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="checkScrollArrows"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>checkScrollArrows</b></span>
                        <a href="#checkScrollArrows"><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>checkScrollArrows()</code>
                </td>
            </tr>


                    <tr>
                        <td class="col-md-4">
                            <div class="io-line">Defined in <a href="" data-line="96"
                                    class="link-to-prism">src/dropdown/scrollable-list.directive.ts:96</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="hoverScrollBy"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>hoverScrollBy</b></span>
                        <a href="#hoverScrollBy"><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>hoverScrollBy(hovering, amount)</code>
                </td>
            </tr>


                    <tr>
                        <td class="col-md-4">
                            <div class="io-line">Defined in <a href="" data-line="159"
                                    class="link-to-prism">src/dropdown/scrollable-list.directive.ts:159</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>Optional</td>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                                <td>hovering</td>

                                            <td>
                                                    No
                                            </td>


                                        </tr>
                                        <tr>
                                                <td>amount</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="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="73"
                                    class="link-to-prism">src/dropdown/scrollable-list.directive.ts:73</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="ngOnChanges"></a>
                    <span class="name">
                        <span ><b>ngOnChanges</b></span>
                        <a href="#ngOnChanges"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>ngOnChanges(changes: SimpleChanges)</code>
                </td>
            </tr>


                    <tr>
                        <td class="col-md-4">
                            <div class="io-line">Defined in <a href="" data-line="48"
                                    class="link-to-prism">src/dropdown/scrollable-list.directive.ts:48</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>changes</td>
                                            <td>
                                                        <code>SimpleChanges</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="onHoverDown"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>onHoverDown</b></span>
                        <a href="#onHoverDown"><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>onHoverDown(hovering)</code>
                </td>
            </tr>


                    <tr>
                        <td class="col-md-4">
                            <div class="io-line">Defined in <a href="" data-line="177"
                                    class="link-to-prism">src/dropdown/scrollable-list.directive.ts:177</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>Optional</td>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                                <td>hovering</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="onHoverUp"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>onHoverUp</b></span>
                        <a href="#onHoverUp"><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>onHoverUp(hovering)</code>
                </td>
            </tr>


                    <tr>
                        <td class="col-md-4">
                            <div class="io-line">Defined in <a href="" data-line="170"
                                    class="link-to-prism">src/dropdown/scrollable-list.directive.ts:170</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>Optional</td>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                                <td>hovering</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="onKeyDown"></a>
                    <span class="name">
                            <span class="modifier"></span>
                            <span class="modifier">Protected</span>
                        <span ><b>onKeyDown</b></span>
                        <a href="#onKeyDown"><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>onKeyDown(event)</code>
                </td>
            </tr>

            <tr>
                <td class="col-md-4">
                    <b>Decorators : </b>
                    <br />
                    <code>@HostListener(&#x27;keydown&#x27;, [&#x27;$event&#x27;])<br /></code>
                </td>
            </tr>

                    <tr>
                        <td class="col-md-4">
                            <div class="io-line">Defined in <a href="" data-line="182"
                                    class="link-to-prism">src/dropdown/scrollable-list.directive.ts:182</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>Optional</td>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                                <td>event</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="onTouchMove"></a>
                    <span class="name">
                            <span class="modifier"></span>
                            <span class="modifier">Protected</span>
                        <span ><b>onTouchMove</b></span>
                        <a href="#onTouchMove"><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>onTouchMove(event)</code>
                </td>
            </tr>

            <tr>
                <td class="col-md-4">
                    <b>Decorators : </b>
                    <br />
                    <code>@HostListener(&#x27;touchmove&#x27;, [&#x27;$event&#x27;])<br /></code>
                </td>
            </tr>

                    <tr>
                        <td class="col-md-4">
                            <div class="io-line">Defined in <a href="" data-line="148"
                                    class="link-to-prism">src/dropdown/scrollable-list.directive.ts:148</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>Optional</td>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                                <td>event</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="onTouchStart"></a>
                    <span class="name">
                            <span class="modifier"></span>
                            <span class="modifier">Protected</span>
                        <span ><b>onTouchStart</b></span>
                        <a href="#onTouchStart"><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>onTouchStart(event)</code>
                </td>
            </tr>

            <tr>
                <td class="col-md-4">
                    <b>Decorators : </b>
                    <br />
                    <code>@HostListener(&#x27;touchstart&#x27;, [&#x27;$event&#x27;])<br /></code>
                </td>
            </tr>

                    <tr>
                        <td class="col-md-4">
                            <div class="io-line">Defined in <a href="" data-line="141"
                                    class="link-to-prism">src/dropdown/scrollable-list.directive.ts:141</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>Optional</td>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                                <td>event</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="onWheel"></a>
                    <span class="name">
                            <span class="modifier"></span>
                            <span class="modifier">Protected</span>
                        <span ><b>onWheel</b></span>
                        <a href="#onWheel"><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>onWheel(event)</code>
                </td>
            </tr>

            <tr>
                <td class="col-md-4">
                    <b>Decorators : </b>
                    <br />
                    <code>@HostListener(&#x27;wheel&#x27;, [&#x27;$event&#x27;])<br /></code>
                </td>
            </tr>

                    <tr>
                        <td class="col-md-4">
                            <div class="io-line">Defined in <a href="" data-line="126"
                                    class="link-to-prism">src/dropdown/scrollable-list.directive.ts:126</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>Optional</td>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                                <td>event</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="updateScrollHeight"></a>
                    <span class="name">
                            <span class="modifier">Public</span>
                        <span ><b>updateScrollHeight</b></span>
                        <a href="#updateScrollHeight"><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>updateScrollHeight()</code>
                </td>
            </tr>


                    <tr>
                        <td class="col-md-4">
                            <div class="io-line">Defined in <a href="" data-line="83"
                                    class="link-to-prism">src/dropdown/scrollable-list.directive.ts:83</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="canScrollDown"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>canScrollDown</b></span>
                        <a href="#canScrollDown"><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="43" class="link-to-prism">src/dropdown/scrollable-list.directive.ts:43</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="canScrollUp"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>canScrollUp</b></span>
                        <a href="#canScrollUp"><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="42" class="link-to-prism">src/dropdown/scrollable-list.directive.ts:42</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="hoverScrollInterval"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>hoverScrollInterval</b></span>
                        <a href="#hoverScrollInterval"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
                    <tr>
                        <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="39" class="link-to-prism">src/dropdown/scrollable-list.directive.ts:39</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="lastTouch"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>lastTouch</b></span>
                        <a href="#lastTouch"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
                    <tr>
                        <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="41" class="link-to-prism">src/dropdown/scrollable-list.directive.ts:41</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="list"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>list</b></span>
                        <a href="#list"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Default value : </i><code>this.elementRef.nativeElement</code>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="44" class="link-to-prism">src/dropdown/scrollable-list.directive.ts:44</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 {
	Input,
	Directive,
	ElementRef,
	HostListener,
	OnChanges,
	SimpleChanges,
	AfterViewInit
} from &quot;@angular/core&quot;;

@Directive({
	selector: &quot;[cdsScrollableList], [ibmScrollableList]&quot;,
	exportAs: &quot;scrollable-list&quot;
})
export class ScrollableList implements OnChanges, AfterViewInit {
	/**
	 * Optional target list to scroll
	 */
	@Input() nScrollableList: string &#x3D; null;
	/**
	 * Enables or disables scrolling for the whole directive
	 */
	@Input() scrollEnabled &#x3D; true;
	/**
	 * Sets the target used for hover scrolling up
	 */
	@Input() scrollUpTarget: HTMLElement;
	/**
	 * Sets the target used for hover scrolling down
	 */
	@Input() scrollDownTarget: HTMLElement;
	/**
	 * How many lines to scroll by each time &#x60;wheel&#x60; fires
	 * Defaults to 10 - based on testing this isn&#x27;t too fast or slow on any platform
	 */
	@Input() scrollBy &#x3D; 10;

	// keeps track of the setInterval for hover scrolling
	protected hoverScrollInterval;
	// tracks the last touch event
	protected lastTouch;
	protected canScrollUp &#x3D; false;
	protected canScrollDown &#x3D; false;
	protected list &#x3D; this.elementRef.nativeElement;

	constructor(protected elementRef: ElementRef) {}

	ngOnChanges(changes: SimpleChanges) {
		if (changes.scrollEnabled) {
			if (changes.scrollEnabled.currentValue) {
				this.list.style.overflow &#x3D; &quot;hidden&quot;;
				this.scrollUpTarget.style.display &#x3D; &quot;flex&quot;;
				this.scrollDownTarget.style.display &#x3D; &quot;flex&quot;;
				this.canScrollUp &#x3D; true;
				this.canScrollDown &#x3D; true;
				this.updateScrollHeight();
				this.checkScrollArrows();
				setTimeout(() &#x3D;&gt; {
					this.checkScrollArrows();
				});
			} else {
				this.scrollUpTarget.style.display &#x3D; &quot;none&quot;;
				this.scrollDownTarget.style.display &#x3D; &quot;none&quot;;
				this.canScrollUp &#x3D; false;
				this.canScrollDown &#x3D; false;
				this.list.style.height &#x3D; null;
				this.list.style.overflow &#x3D; null;
				clearInterval(this.hoverScrollInterval);
			}
		}
	}

	ngAfterViewInit() {
		if (this.nScrollableList) {
			this.list &#x3D; this.elementRef.nativeElement.querySelector(this.nScrollableList);
		}
		this.scrollUpTarget.addEventListener(&quot;mouseover&quot;, () &#x3D;&gt; this.onHoverUp(true));
		this.scrollUpTarget.addEventListener(&quot;mouseout&quot;, () &#x3D;&gt; this.onHoverUp(false));
		this.scrollDownTarget.addEventListener(&quot;mouseover&quot;, () &#x3D;&gt; this.onHoverDown(true));
		this.scrollDownTarget.addEventListener(&quot;mouseout&quot;, () &#x3D;&gt; this.onHoverDown(false));
	}

	public updateScrollHeight() {
		if (this.scrollEnabled) {
			const container &#x3D; this.elementRef.nativeElement.parentElement;
			const containerRect &#x3D; container.getBoundingClientRect();
			const innerHeightDiff &#x3D; this.list.getBoundingClientRect().top - containerRect.top;
			const outerHeightDiff &#x3D; containerRect.height - (containerRect.bottom - window.innerHeight);
			// 40 gives us some padding between the bottom of the list,
			// the bottom of the window, and the scroll down button
			const height &#x3D; outerHeightDiff - innerHeightDiff - 40;
			this.list.style.height &#x3D; &#x60;${height}px&#x60;;
		}
	}

	protected checkScrollArrows() {
		const scrollUpHeight &#x3D; this.scrollUpTarget.offsetHeight;
		const scrollDownHeight &#x3D; this.scrollDownTarget.offsetHeight;
		if (this.list.scrollTop &#x3D;&#x3D;&#x3D; 0) {
			if (this.canScrollUp) {
				this.list.style.height &#x3D; &#x60;${parseInt(this.list.style.height, 10) + scrollUpHeight}px&#x60;;
			}
			this.scrollUpTarget.style.display &#x3D; &quot;none&quot;;
			this.canScrollUp &#x3D; false;
		} else if (this.list.scrollTop &#x3D;&#x3D;&#x3D; this.list.scrollTopMax) {
			if (this.canScrollDown) {
				this.list.style.height &#x3D; &#x60;${parseInt(this.list.style.height, 10) + scrollDownHeight}px&#x60;;
			}
			this.scrollDownTarget.style.display &#x3D; &quot;none&quot;;
			this.canScrollDown &#x3D; false;
		} else {
			if (!this.canScrollUp) {
				this.list.style.height &#x3D; &#x60;${parseInt(this.list.style.height, 10) - scrollUpHeight}px&#x60;;
			}
			if (!this.canScrollDown) {
				this.list.style.height &#x3D; &#x60;${parseInt(this.list.style.height, 10) - scrollDownHeight}px&#x60;;
			}
			this.scrollUpTarget.style.display &#x3D; &quot;flex&quot;;
			this.scrollDownTarget.style.display &#x3D; &quot;flex&quot;;
			this.canScrollUp &#x3D; true;
			this.canScrollDown &#x3D; true;
		}
	}

	@HostListener(&quot;wheel&quot;, [&quot;$event&quot;])
	protected onWheel(event) {
		if (event.deltaY &lt; 0) {
			this.list.scrollTop -&#x3D; this.scrollBy;
		} else {
			this.list.scrollTop +&#x3D; this.scrollBy;
		}
		// only prevent the parent/window from scrolling if we can scroll
		if (!(this.list.scrollTop &#x3D;&#x3D;&#x3D; this.list.scrollTopMax || this.list.scrollTop &#x3D;&#x3D;&#x3D; 0)) {
			event.preventDefault();
			event.stopPropagation();
		}
		this.checkScrollArrows();
	}

	@HostListener(&quot;touchstart&quot;, [&quot;$event&quot;])
	protected onTouchStart(event) {
		if (event.touches[0]) {
			this.lastTouch &#x3D; event.touches[0].clientY;
		}
	}

	@HostListener(&quot;touchmove&quot;, [&quot;$event&quot;])
	protected onTouchMove(event) {
		event.preventDefault();
		event.stopPropagation();
		if (event.touches[0]) {
			const touch &#x3D; event.touches[0];
			this.list.scrollTop +&#x3D; this.lastTouch - touch.clientY;
			this.lastTouch &#x3D; touch.clientY;
			this.checkScrollArrows();
		}
	}

	protected hoverScrollBy(hovering, amount) {
		if (hovering) {
			this.hoverScrollInterval &#x3D; setInterval(() &#x3D;&gt; {
				this.list.scrollTop +&#x3D; amount;
				this.checkScrollArrows();
			}, 1);
		} else {
			clearInterval(this.hoverScrollInterval);
		}
	}

	protected onHoverUp(hovering) {
		// how many px/lines to scroll by on hover
		// 3 is just a random number that felt good
		// 1 and 2 are too slow, 4 works but it might be a tad fast
		this.hoverScrollBy(hovering, -3);
	}

	protected onHoverDown(hovering) {
		this.hoverScrollBy(hovering, 3);
	}

	@HostListener(&quot;keydown&quot;, [&quot;$event&quot;])
	protected onKeyDown(event) {
		if (event.key &#x3D;&#x3D;&#x3D; &quot;ArrowDown&quot; || event.key &#x3D;&#x3D;&#x3D; &quot;ArrowUp&quot;) {
			this.checkScrollArrows();
		}
	}
}
</code></pre>
    </div>

</div>














                   </div><div class="search-results">
    <div class="has-results">
        <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
        <ul class="search-results-list"></ul>
    </div>
    <div class="no-results">
        <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
    </div>
</div>
</div>
               <!-- END CONTENT -->
           </div>
       </div>

          <label class="dark-mode-switch">
               <input type="checkbox">
               <span class="slider">
                    <svg class="slider-icon" viewBox="0 0 24 24" fill="none" height="20" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg">
                    <path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
                    </svg>
               </span>
          </label>

       <script>
            var COMPODOC_CURRENT_PAGE_DEPTH = 1;
            var COMPODOC_CURRENT_PAGE_CONTEXT = 'directive';
            var COMPODOC_CURRENT_PAGE_URL = 'ScrollableList.html';
            var MAX_SEARCH_RESULTS = 15;
       </script>

       <script>
               $darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input');
               checkToggle(darkModeState);
               if ($darkModeToggleSwitchers.length > 0) {
                    for (var i = 0; i < $darkModeToggleSwitchers.length; i++) {
                         $darkModeToggleSwitchers[i].addEventListener('change', function (event) {
                              darkModeState = !darkModeState;
                              toggleDarkMode(darkModeState);
                         });
                    }
               }
          </script>

       <script src="../js/libs/custom-elements.min.js"></script>
       <script src="../js/libs/lit-html.js"></script>

       <script src="../js/menu-wc.js" defer></script>
       <script nomodule src="../js/menu-wc_es5.js" defer></script>

       <script src="../js/libs/bootstrap-native.js"></script>

       <script src="../js/libs/es6-shim.min.js"></script>
       <script src="../js/libs/EventDispatcher.js"></script>
       <script src="../js/libs/promise.min.js"></script>
       <script src="../js/libs/zepto.min.js"></script>

       <script src="../js/compodoc.js"></script>

       <script src="../js/tabs.js"></script>
       <script src="../js/menu.js"></script>
       <script src="../js/libs/clipboard.min.js"></script>
       <script src="../js/libs/prism.js"></script>
       <script src="../js/sourceCode.js"></script>
          <script src="../js/search/search.js"></script>
          <script src="../js/search/lunr.min.js"></script>
          <script src="../js/search/search-lunr.js"></script>
          <script src="../js/search/search_index.js"></script>
       <script src="../js/lazy-load-graphs.js"></script>


    

	<footer class="carbon">
		<dds-footer-container key="footer" disable-locale-button="true" size="micro" />
	</footer>

	<script
		key="8"
		type="module"
		src="https://1.www.s81c.com/common/carbon-for-ibm-dotcom/tag/v1/latest/footer.min.js">
	</script>

	<!-- Storybook override -->
	<script>
		document.title = "Carbon Components Angular";
	</script>

	<script
		src="//1.www.s81c.com/common/stats/ibm-common.js"
		type="text/javascript"
		async="async">
	</script>
</body>
</html>