UNPKG

carbon-components-angular

Version:
1,967 lines 75.3 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" >PopoverContainer</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/popover/popover.directive.ts</code>
        </p>




            <p class="comment">
                <h3>Implements</h3>
            </p>
            <p class="comment">
                        <code>AfterViewInit</code>
                        <code>OnChanges</code>
                        <code>OnDestroy</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>[cdsPopover], [ibmPopover]</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>
                                <a href="#_align" >_align</a>
                            </li>
                            <li>
                                    <span class="modifier">Readonly</span>
                                <a href="#alignmentClassPrefix" >alignmentClassPrefix</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#caretHeight" >caretHeight</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#caretOffset" >caretOffset</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#caretRef" >caretRef</a>
                            </li>
                            <li>
                                    <span class="modifier"></span>
                                <a href="#containerClass" >containerClass</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#popoverContentRef" >popoverContentRef</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#unmountFloatingElement" >unmountFloatingElement</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="#cleanUp" >cleanUp</a>
                            </li>
                            <li>
                                <a href="#handleChange" >handleChange</a>
                            </li>
                            <li>
                                <a href="#initializeReferences" >initializeReferences</a>
                            </li>
                            <li>
                                <a href="#ngAfterViewInit" >ngAfterViewInit</a>
                            </li>
                            <li>
                                <a href="#ngOnChanges" >ngOnChanges</a>
                            </li>
                            <li>
                                <a href="#ngOnDestroy" >ngOnDestroy</a>
                            </li>
                            <li>
                                <a href="#recomputePosition" >recomputePosition</a>
                            </li>
                            <li>
                                <a href="#roundByDPR" >roundByDPR</a>
                            </li>
                            <li>
                                <a href="#updateAlignmentClass" >updateAlignmentClass</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="#align" >align</a>
                            </li>
                            <li>
                                <a href="#autoAlign" >autoAlign</a>
                            </li>
                            <li>
                                <a href="#caret" >caret</a>
                            </li>
                            <li>
                                <a href="#dropShadow" >dropShadow</a>
                            </li>
                            <li>
                                <a href="#highContrast" >highContrast</a>
                            </li>
                            <li>
                                <a href="#isOpen" >isOpen</a>
                            </li>
                        </ul>
                    </td>
                </tr>

                <tr>
                    <td class="col-md-4">
                        <h6><b>Outputs</b></h6>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <ul class="index-list">
                            <li>
                                <a href="#isOpenChange" >isOpenChange</a>
                            </li>
                            <li>
                                <a href="#onClose" >onClose</a>
                            </li>
                            <li>
                                <a href="#onOpen" >onOpen</a>
                            </li>
                        </ul>
                    </td>
                </tr>

                <tr>
                    <td class="col-md-4">
                        <h6><b>HostBindings</b></h6>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <ul class="index-list">
                            <li>
                                <a href="#class.cds--popover-container" >class.cds--popover-container</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="#align" >align</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, ngZone: NgZone, renderer: Renderer2, changeDetectorRef: ChangeDetectorRef)</code>
                    </td>
                </tr>
                        <tr>
                            <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="123" class="link-to-prism">src/popover/popover.directive.ts:123</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>
                                                <tr>
                                                        <td>ngZone</td>
                                                  
                                                        <td>
                                                                    <code>NgZone</code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                                <tr>
                                                        <td>renderer</td>
                                                  
                                                        <td>
                                                                    <code>Renderer2</code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                                <tr>
                                                        <td>changeDetectorRef</td>
                                                  
                                                        <td>
                                                                    <code>ChangeDetectorRef</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="align"></a>
                        <b>align</b>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>        <code><a href="../miscellaneous/typealiases.html#oldPlacement" target="_self" >oldPlacement | Placement</a></code>

                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="45" class="link-to-prism">src/popover/popover.directive.ts:45</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Set alignment of popover
As of v5, <code>oldPlacements</code> are now deprecated in favor of Placements</p>
<p>When <code>autoAlign</code> is set to <code>true</code>, alignment may change for best placement</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="autoAlign"></a>
                        <b>autoAlign</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="115" class="link-to-prism">src/popover/popover.directive.ts:115</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p><strong>Experimental</strong>: Use floating-ui to position the tooltip
This is not toggleable - should be assigned once</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="caret"></a>
                        <b>caret</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="102" class="link-to-prism">src/popover/popover.directive.ts:102</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Show caret at the alignment position</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="dropShadow"></a>
                        <b>dropShadow</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="106" class="link-to-prism">src/popover/popover.directive.ts:106</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Enable drop shadow around the popover container</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="highContrast"></a>
                        <b>highContrast</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="110" class="link-to-prism">src/popover/popover.directive.ts:110</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Enable high contrast for popover container</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="isOpen"></a>
                        <b>isOpen</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="117" class="link-to-prism">src/popover/popover.directive.ts:117</a></div>
                            </td>
                        </tr>
            </tbody>
        </table>
</section>
            <section data-compodoc="block-outputs">
    <h3 id="outputs">Outputs</h3>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="isOpenChange"></a>
                        <b>isOpenChange</b>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>EventEmitter</code>

                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="98" class="link-to-prism">src/popover/popover.directive.ts:98</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Emits an event when the state of <code>isOpen</code> changes. Allows <code>isOpen</code> to be double bound</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="onClose"></a>
                        <b>onClose</b>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>EventEmitter&lt;Event&gt;</code>

                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="90" class="link-to-prism">src/popover/popover.directive.ts:90</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Emits an event when the dialog is closed</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="onOpen"></a>
                        <b>onOpen</b>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>EventEmitter&lt;Event&gt;</code>

                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="94" class="link-to-prism">src/popover/popover.directive.ts:94</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Emits an event when the dialog is opened</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
</section>
            <section data-compodoc="block-properties">
    <h3>HostBindings</h3>    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="class.cds--popover-container"></a>
                    <span class="name">
                        <span ><b>class.cds--popover-container</b></span>
                        <a href="#class.cds--popover-container"><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/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-4">
                                <div class="io-line">Defined in <a href="" data-line="116" class="link-to-prism">src/popover/popover.directive.ts:116</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="cleanUp"></a>
                    <span class="name">
                        <span ><b>cleanUp</b></span>
                        <a href="#cleanUp"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>cleanUp()</code>
                </td>
            </tr>


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


            <tr>
                <td class="col-md-4">
                        <div class="io-description"><p>Clean up <code>autoUpdate</code> if auto alignment is enabled</p>
</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="handleChange"></a>
                    <span class="name">
                        <span ><b>handleChange</b></span>
                        <a href="#handleChange"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>handleChange(open: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank">boolean</a>, event?: Event)</code>
                </td>
            </tr>


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


            <tr>
                <td class="col-md-4">
                        <div class="io-description"><p>Handles emitting open/close event</p>
</div>

                            <div class="io-description">
                                <b>Parameters :</b>
                                
                                <table class="params">
                                    <thead>
                                        <tr>
                                            <td>Name</td>
                                                <td>Type</td>
                                            <td>Optional</td>
                                                <td>Description</td>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                                <td>open</td>
                                            <td>
                                                            <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
                                            </td>

                                            <td>
                                                    No
                                            </td>


                                            <td>
                                                    <ul>
<li>Is the popover container open</li>
</ul>

                                            </td>
                                        </tr>
                                        <tr>
                                                <td>event</td>
                                            <td>
                                                        <code>Event</code>
                                            </td>

                                            <td>
                                                    Yes
                                            </td>


                                            <td>
                                                    <ul>
<li>Event</li>
</ul>

                                            </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="initializeReferences"></a>
                    <span class="name">
                        <span ><b>initializeReferences</b></span>
                        <a href="#initializeReferences"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>initializeReferences()</code>
                </td>
            </tr>


                    <tr>
                        <td class="col-md-4">
                            <div class="io-line">Defined in <a href="" data-line="264"
                                    class="link-to-prism">src/popover/popover.directive.ts:264</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="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="260"
                                    class="link-to-prism">src/popover/popover.directive.ts:260</a></div>
                        </td>
                    </tr>


            <tr>
                <td class="col-md-4">
                        <div class="io-description"><p>Handle initialization of element</p>
</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="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="241"
                                    class="link-to-prism">src/popover/popover.directive.ts:241</a></div>
                        </td>
                    </tr>


            <tr>
                <td class="col-md-4">
                        <div class="io-description"><p>Close the popover and reopen it with updated values without emitting an event</p>
</div>

                            <div class="io-description">
                                <b>Parameters :</b>
                                
                                <table class="params">
                                    <thead>
                                        <tr>
                                            <td>Name</td>
                                                <td>Type</td>
                                            <td>Optional</td>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                                <td>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="ngOnDestroy"></a>
                    <span class="name">
                        <span ><b>ngOnDestroy</b></span>
                        <a href="#ngOnDestroy"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>ngOnDestroy()</code>
                </td>
            </tr>


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


            <tr>
                <td class="col-md-4">
                        <div class="io-description"><p>Clean up</p>
</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="recomputePosition"></a>
                    <span class="name">
                        <span ><b>recomputePosition</b></span>
                        <a href="#recomputePosition"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>recomputePosition()</code>
                </td>
            </tr>


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


            <tr>
                <td class="col-md-4">
                        <div class="io-description"><p>Compute position of tooltip when autoAlign is enabled</p>
</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="roundByDPR"></a>
                    <span class="name">
                        <span ><b>roundByDPR</b></span>
                        <a href="#roundByDPR"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>roundByDPR(value)</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/popover/popover.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>value</td>

                                            <td>
                                                    No
                                            </td>


                                        </tr>
                                    </tbody>
                                </table>
                            </div>
                        <div class="io-description">
                            <b>Returns : </b>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</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="updateAlignmentClass"></a>
                    <span class="name">
                        <span ><b>updateAlignmentClass</b></span>
                        <a href="#updateAlignmentClass"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>updateAlignmentClass(newAlignment: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, previousAlignment?: <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">
                            <div class="io-line">Defined in <a href="" data-line="296"
                                    class="link-to-prism">src/popover/popover.directive.ts:296</a></div>
                        </td>
                    </tr>


            <tr>
                <td class="col-md-4">
                        <div class="io-description"><p>Replace existing previous alignment class with new</p>
</div>

                            <div class="io-description">
                                <b>Parameters :</b>
                                
                                <table class="params">
                                    <thead>
                                        <tr>
                                            <td>Name</td>
                                                <td>Type</td>
                                            <td>Optional</td>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                                <td>newAlignment</td>
                                            <td>
                                                            <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                            </td>

                                            <td>
                                                    No
                                            </td>


                                        </tr>
                                        <tr>
                                                <td>previousAlignment</td>
                                            <td>
                                                            <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
                                            </td>

                                            <td>
                                                    Yes
                                            </td>


                                        </tr>
                                    </tbody>
                                </table>
                            </div>
                        <div class="io-description">
                            <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                        </div>
                            <div class="io-description">
                                
                            </div>
                </td>
            </tr>
        </tbody>
    </table>
</section>
            <section data-compodoc="block-properties">
    
    <h3 id="inputs">
        Properties
    </h3>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="_align"></a>
                    <span class="name">
                        <span ><b>_align</b></span>
                        <a href="#_align"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>Placement</code>

                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Default value : </i><code>&quot;bottom&quot;</code>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="84" class="link-to-prism">src/popover/popover.directive.ts:84</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="alignmentClassPrefix"></a>
                    <span class="name">
                            <span class="modifier">Readonly</span>
                        <span ><b>alignmentClassPrefix</b></span>
                        <a href="#alignmentClassPrefix"><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/string" target="_blank" >string</a></code>

                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Default value : </i><code>&quot;cds--popover--&quot;</code>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="85" class="link-to-prism">src/popover/popover.directive.ts:85</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="caretHeight"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>caretHeight</b></span>
                        <a href="#caretHeight"><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">
                                <div class="io-line">Defined in <a href="" data-line="122" class="link-to-prism">src/popover/popover.directive.ts:122</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="caretOffset"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>caretOffset</b></span>
                        <a href="#caretOffset"><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">
                                <div class="io-line">Defined in <a href="" data-line="121" class="link-to-prism">src/popover/popover.directive.ts:121</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="caretRef"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>caretRef</b></span>
                        <a href="#caretRef"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>HTMLElement</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/popover/popover.directive.ts:120</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="containerClass"></a>
                    <span class="name">
                            <span class="modifier"></span>
                        <span ><b>containerClass</b></span>
                        <a href="#containerClass"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Default value : </i><code>true</code>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <b>Decorators : </b>
                        <br />
                        <code>
                            @HostBinding(&#x27;class.cds--popover-container&#x27;)<br />
                        </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/popover/popover.directive.ts:116</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="popoverContentRef"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>popoverContentRef</b></span>
                        <a href="#popoverContentRef"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>HTMLElement</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/popover/popover.directive.ts:119</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="unmountFloatingElement"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>unmountFloatingElement</b></span>
                        <a href="#unmountFloatingElement"><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/Function" target="_blank" >Function</a></code>

                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="123" class="link-to-prism">src/popover/popover.directive.ts:123</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="align"></a>
                        <span class="name"><b>align</b><a href="#align"><span class="icon ion-ios-link"></span></a></span>
                    </td>
                </tr>


                <tr>
                    <td class="col-md-4">
                        <span class="accessor"><b>set</b><code>align(alignment: <a href="../undefineds/oldPlacement.html" target="_self">oldPlacement | Placement</a>)</code></span>
                    </td>
                </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="45" class="link-to-prism">src/popover/popover.directive.ts:45</a></div>
                                </td>
                            </tr>
                    <tr>
                        <td class="col-md-4">
                                <div class="io-description"><p>Set alignment of popover
As of v5, <code>oldPlacements</code> are now deprecated in favor of Placements</p>
<p>When <code>autoAlign</code> is set to <code>true</code>, alignment may change for best placement</p>
</div>

                                <div class="io-description">
                                        <b>Parameters :</b>
                                        <table class="params">
                                            <thead>
                                                <tr>
                                                    <td>Name</td>
                                                        <td>Type</td>
                                                    <td>Optional</td>
                                                </tr>
                                            </thead>
                                            <tbody>
                                                    <tr>
                                                            <td>alignment</td>
                                                    
                                                            <td>
                                                                            <code><a href="../miscellaneous/typealiases.html#oldPlacement" target="_self" >oldPlacement | Placement</a></code>
                                                            </td>
                                                    
                                                        <td>
                                                                No
                                                        </td>
                                                        
                                                    </tr>
                                            </tbody>
                                        </table>
                                </div>
                                <div>
                                </div>
                                <div class="io-description">
                                    <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                                </div>
                        </td>
                    </tr>
            </tbody>
        </table>
</section>

    </div>


    <div class="tab-pane fade  tab-source-code" id="source">
        <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {
	AfterViewInit,
	ChangeDetectorRef,
	Directive,
	ElementRef,
	EventEmitter,
	HostBinding,
	Input,
	NgZone,
	OnChanges,
	OnDestroy,
	Output,
	Renderer2,
	SimpleChanges
} from &quot;@angular/core&quot;;
import {
	arrow,
	autoUpdate,
	computePosition,
	flip,
	offset,
	Placement
} from &quot;@floating-ui/dom&quot;;

// Deprecated popover alignments
type oldPlacement &#x3D; &quot;top-left&quot;
	| &quot;top-right&quot;
	| &quot;bottom-left&quot;
	| &quot;bottom-right&quot;
	| &quot;left-bottom&quot;
	| &quot;left-top&quot;
	| &quot;right-bottom&quot;
	| &quot;right-top&quot;;

@Directive({
	selector: &quot;[cdsPopover], [ibmPopover]&quot;
})
export class PopoverContainer implements AfterViewInit, OnChanges, OnDestroy {
	/**
	 * Set alignment of popover
	 * As of v5, &#x60;oldPlacements&#x60; are now deprecated in favor of Placements
	 *
	 * When &#x60;autoAlign&#x60; is set to &#x60;true&#x60;, alignment may change for best placement
	 */
	@Input() set align(alignment: oldPlacement | Placement) {
		// If alignment is not passed, the default value will be &#x60;undefined&#x60;.
		if (!alignment) {
			return;
		}

		const previousAlignment &#x3D; this._align;
		switch (alignment) {
			case &quot;top-left&quot;:
				this._align &#x3D; &quot;top-start&quot;;
				break;
			case &quot;top-right&quot;:
				this._align &#x3D; &quot;top-end&quot;;
				break;
			case &quot;bottom-left&quot;:
				this._align &#x3D; &quot;bottom-start&quot;;
				break;
			case &quot;bottom-right&quot;:
				this._align &#x3D; &quot;bottom-end&quot;;
				break;
			case &quot;left-top&quot;:
				this._align &#x3D; &quot;left-start&quot;;
				break;
			case &quot;left-bottom&quot;:
				this._align &#x3D; &quot;left-end&quot;;
				break;
			case &quot;right-top&quot;:
				this._align &#x3D; &quot;right-start&quot;;
				break;
			case &quot;right-bottom&quot;:
				this._align &#x3D; &quot;right-end&quot;;
				break;
			default:
				this._align &#x3D; alignment as Placement;
				break;
		}
		this.updateAlignmentClass(this._align, previousAlignment);
	}

	_align: Placement &#x3D; &quot;bottom&quot;;
	readonly alignmentClassPrefix &#x3D; &quot;cds--popover--&quot;;

	/**
	 * Emits an event when the dialog is closed
	 */
	@Output() onClose: EventEmitter&lt;Event&gt; &#x3D; new EventEmitter();
	/**
	 * Emits an event when the dialog is opened
	 */
	@Output() onOpen: EventEmitter&lt;Event&gt; &#x3D; new EventEmitter();
	/**
	 * Emits an event when the state of &#x60;isOpen&#x60; changes. Allows &#x60;isOpen&#x60; to be double bound
	 */
	@Output() isOpenChange &#x3D; new EventEmitter&lt;boolean&gt;();
	/**
	 * Show caret at the alignment position
	 */
	@HostBinding(&quot;class.cds--popover--caret&quot;) @Input() caret &#x3D; true;
	/**
	 * Enable drop shadow around the popover container
	 */
	@HostBinding(&quot;class.cds--popover--drop-shadow&quot;) @Input() dropShadow &#x3D; true;
	/**
	 * Enable high contrast for popover container
	 */
	@HostBinding(&quot;class.cds--popover--high-contrast&quot;) @Input() highContrast &#x3D; false;
	/**
	 * **Experimental**: Use floating-ui to position the tooltip
	 * This is not toggleable - should be assigned once
	 */
	@HostBinding(&quot;class.cds--popover--auto-align&quot;) @Input() autoAlign &#x3D; false;
	@HostBinding(&quot;class.cds--popover-container&quot;) containerClass &#x3D; true;
	@Input() @HostBinding(&quot;class.cds--popover--open&quot;) isOpen &#x3D; false;

	protected popoverContentRef: HTMLElement;
	protected caretRef: HTMLElement;
	protected caretOffset: number;
	protected caretHeight: number;
	protected unmountFloatingElement: Function;

	constructor(
		protected elementRef: ElementRef,
		protected ngZone: NgZone,
		protected renderer: Renderer2,
		protected changeDetectorRef: ChangeDetectorRef
	) {}

	/**
	 * Handles emitting open/close event
	 * @param open - Is the popover container open
	 * @param event - Event
	 */
	handleChange(open: boolean, event?: Event) {
		// We only emit the event when parameter has an event to keep existing behavior
		if ((this.isOpen !&#x3D;&#x3D; open) &amp;&amp; event) {
			this.isOpenChange.emit(open);
		}

		if (open) {
			if (event) {
				this.onOpen.emit(event);
			}

			// when auto alignment is enabled, use auto update to set the placement for the element
			if (this.autoAlign) {
				if (this.caretRef) {
					// Get caret offset/height property
					// Getting computed styles once every open, otherwise expensive.
					const computedStyle &#x3D; getComputedStyle(this.caretRef);
					const offset &#x3D; computedStyle.getPropertyValue(&quot;--cds-popover-offset&quot;);
					const height &#x3D; computedStyle.getPropertyValue(&quot;--cds-popover-caret-height&quot;);
					this.caretOffset &#x3D; (offset?.includes(&quot;px&quot;) ? Number(offset.split(&quot;px&quot;, 1)[0]) : Number(offset.split(&quot;rem&quot;, 1)[0]) * 16) || 10;
					this.caretHeight &#x3D; (height?.includes(&quot;px&quot;) ? Number(height.split(&quot;px&quot;, 1)[0]) : Number(height.split(&quot;rem&quot;, 1)[0]) * 16) || 6;
				}
				if (this.elementRef.nativeElement &amp;&amp; this.popoverContentRef) {
					this.unmountFloatingElement &#x3D; autoUpdate(
						this.elementRef.nativeElement,
						this.popoverContentRef,
						this.recomputePosition.bind(this)
					);
				}
			}
		} else {
			this.cleanUp();
			if (event) {
				this.onClose.emit(event);
			}
		}
		this.isOpen &#x3D; open;
		this.changeDetectorRef.markForCheck();
	}

	roundByDPR(value) {
		const dpr &#x3D; window.devicePixelRatio || 1;
		return Math.round(value * dpr) / dpr;
	}

	/**
	 * Compute position of tooltip when autoAlign is enabled
	 */
	recomputePosition() {
		// Run outside of angular zone to avoid unnecessary change detection and rely on floating-ui
		this.ngZone.runOutsideAngular(async () &#x3D;&gt; {
			const { x, y, placement, middlewareData } &#x3D; await computePosition(
				this.elementRef.nativeElement,
				this.popoverContentRef,
				{
					placement: this._align,
					strategy: &quot;fixed&quot;,
					middleware: [
						offset(this.caretOffset),
						flip({ fallbackAxisSideDirection: &quot;start&quot; }),
						arrow({ element: this.caretRef })
					]
				});

			const previousAlignment &#x3D; this._align;
			this._align &#x3D; placement;
			this.updateAlignmentClass(this._align, previousAlignment);

			// Using CSSOM to manipulate CSS to avoid content security policy inline-src
			// https://github.com/w3c/webappsec-csp/issues/212
			Object.assign(this.popoverContentRef.style, {
				position: &quot;fixed&quot;,
				top: &quot;0&quot;,
				left: &quot;0&quot;,
				// Using transform instead of top/left position to improve performance
				transform: &#x60;translate(${this.roundByDPR(x)}px,${this.roundByDPR(y)}px)&#x60;
			});

			if (middlewareData.arrow) {
				const { x: arrowX, y: arrowY } &#x3D; middlewareData.arrow;

				const staticSide &#x3D; {
					top: &quot;bottom&quot;,
					right: &quot;left&quot;,
					bottom: &quot;top&quot;,
					left: &quot;right&quot;
				}[placement.split(&quot;-&quot;)[0]];

				this.caretRef.style.left &#x3D; arrowX !&#x3D; null ? &#x60;${arrowX}px&#x60; : &quot;&quot;;
				this.caretRef.style.top &#x3D; arrowY !&#x3D; null ? &#x60;${arrowY}px&#x60; : &quot;&quot;;
				this.caretRef.style.right &#x3D; &quot;&quot;;
				this.caretRef.style.bottom &#x3D; &quot;&quot;;

				if (staticSide) {
					this.caretRef.style[staticSide] &#x3D; &#x60;${-this.caretHeight}px&#x60;;
				}
			}
		});
	}

	/**
	 * Close the popover and reopen it with updated values without emitting an event
	 * @param changes
	 */
	ngOnChanges(changes: SimpleChanges): void {
		// Close and reopen the popover, handle alignment/programmatic open/close
		const originalState &#x3D; this.isOpen;
		this.handleChange(false);

		// Ignore first change since content is not initialized
		if (changes.autoAlign &amp;&amp; !changes.autoAlign.firstChange) {
			// Reset the inline styles
			this.popoverContentRef &#x3D; this.elementRef.nativeElement.querySelector(&quot;.cds--popover-content&quot;);
			this.popoverContentRef.setAttribute(&quot;style&quot;, &quot;&quot;);
			this.caretRef &#x3D; this.elementRef.nativeElement.querySelector(&quot;span.cds--popover-caret&quot;);
		}

		this.handleChange(originalState);
	}

	/**
	 * Handle initialization of element
	 */
	ngAfterViewInit(): void {
		this.initializeReferences();
	}

	initializeReferences(): void {
		this.updateAlignmentClass(this._align);

		// Initialize html references since they will not change and are required for popover components
		this.popoverContentRef &#x3D; this.elementRef.nativeElement.querySelector(&quot;.cds--popover-content&quot;);
		this.caretRef &#x3D; this.elementRef.nativeElement.querySelector(&quot;span.cds--popover-caret&quot;);

		// Handle initial isOpen
		this.handleChange(this.isOpen);
	}

	/**
	 * Clean up
	 */
	ngOnDestroy(): void {
		this.cleanUp();
	}

	/**
	 * Clean up &#x60;autoUpdate&#x60; if auto alignment is enabled
	 */
	cleanUp() {
		if (this.unmountFloatingElement) {
			this.unmountFloatingElement();
		}
		this.unmountFloatingElement &#x3D; undefined;
	}

	/**
	 * Replace existing previous alignment class with new
	 * @param previousAlignment
	 */
	updateAlignmentClass(newAlignment: string, previousAlignment?: string) {
		if (this.elementRef.nativeElement &amp;&amp; previousAlignment !&#x3D;&#x3D; newAlignment) {
			const regexp &#x3D; new RegExp(&quot;right|top|left|bottom&quot;);
			// Since we are constantly switching, it&#x27;s safer to delete all matching class names
			this.elementRef.nativeElement.classList.forEach(className &#x3D;&gt; {
				if (regexp.test(className)) {
					this.renderer.removeClass(this.elementRef.nativeElement, &#x60;${className}&#x60;);
				}
			});
			this.renderer.addClass(this.elementRef.nativeElement, &#x60;${this.alignmentClassPrefix}${newAlignment}&#x60;);
		}
	}
}
</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 = 'PopoverContainer.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>