UNPKG

carbon-components-angular

Version:
2,184 lines 82.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">
    </head>
    <body>

        <div class="navbar navbar-default navbar-fixed-top d-block d-sm-none">
            <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 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="hidden-xs 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" >DialogDirective</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/dialog/dialog.directive.ts</code>
        </p>


            <p class="comment">
                <h3>Description</h3>
            </p>
            <p class="comment">
                <p>A generic directive that can be inherited from to create dialogs (for example, a tooltip or popover)</p>
<p>This class contains the relevant initialization code, specific templates, options, and additional inputs
should be specified in the derived class.</p>
<p>NOTE: All child classes should add <code>DialogService</code> as a provider, otherwise they will lose context that
the service relies on.</p>

            </p>


            <p class="comment">
                <h3>Implements</h3>
            </p>
            <p class="comment">
                        <code>OnInit</code>
                        <code>OnDestroy</code>
                        <code>OnChanges</code>
            </p>


        <section data-compodoc="block-metadata">
            <h3>Metadata</h3>
            <table class="table table-sm table-hover metadata">
                <tbody>
                    <tr>
                        <td class="col-md-3">Providers</td>
                        <td class="col-md-9">
                            <code>
                                DialogService
                            </code>
                        </td>
                    </tr>

                    <tr>
                        <td class="col-md-3">Selector</td>
                        <td class="col-md-9"><code>[cdsDialog], [ibmDialog]</code></td>
                    </tr>



                    <tr>
                        <td class="col-md-3">exportAs</td>
                        <td class="col-md-9"><code>dialog</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="#dialogConfig" >dialogConfig</a>
                            </li>
                            <li>
                                    <span class="modifier">Static</span>
                                <a href="#dialogCounter" >dialogCounter</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#dialogRef" >dialogRef</a>
                            </li>
                            <li>
                                    <span class="modifier"></span>
                                <a href="#hasPopup" >hasPopup</a>
                            </li>
                            <li>
                                    <span class="modifier"></span>
                                <a href="#role" >role</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="#close" >close</a>
                            </li>
                            <li>
                                <a href="#ngOnChanges" >ngOnChanges</a>
                            </li>
                            <li>
                                <a href="#ngOnDestroy" >ngOnDestroy</a>
                            </li>
                            <li>
                                <a href="#ngOnInit" >ngOnInit</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#onDialogChanges" >onDialogChanges</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#onDialogInit" >onDialogInit</a>
                            </li>
                            <li>
                                <a href="#open" >open</a>
                            </li>
                            <li>
                                <a href="#toggle" >toggle</a>
                            </li>
                            <li>
                                    <span class="modifier">Protected</span>
                                <a href="#updateConfig" >updateConfig</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="#appendInline" >appendInline</a>
                            </li>
                            <li>
                                <a href="#cdsDialog" >cdsDialog</a>
                            </li>
                            <li>
                                <a href="#closeTrigger" >closeTrigger</a>
                            </li>
                            <li>
                                <a href="#data" >data</a>
                            </li>
                            <li>
                                <a href="#disabled" >disabled</a>
                            </li>
                            <li>
                                <a href="#gap" >gap</a>
                            </li>
                            <li>
                                <a href="#ibmDialog" class="deprecated-name">ibmDialog</a>
                            </li>
                            <li>
                                <a href="#isOpen" >isOpen</a>
                            </li>
                            <li>
                                <a href="#offset" >offset</a>
                            </li>
                            <li>
                                <a href="#placement" >placement</a>
                            </li>
                            <li>
                                <a href="#shouldClose" >shouldClose</a>
                            </li>
                            <li>
                                <a href="#title" >title</a>
                            </li>
                            <li>
                                <a href="#trigger" >trigger</a>
                            </li>
                            <li>
                                <a href="#wrapperClass" >wrapperClass</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="#attr.aria-haspopup" >attr.aria-haspopup</a>
                            </li>
                            <li>
                                <a href="#attr.aria-owns" >attr.aria-owns</a>
                            </li>
                            <li>
                                <a href="#attr.role" >attr.role</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="#ibmDialog" >ibmDialog</a>
                                </li>
                                <li>
                                    <a href="#ariaOwns" >ariaOwns</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, viewContainerRef: ViewContainerRef, dialogService: <a href="../injectables/DialogService.html" target="_self">DialogService</a>, eventService: <a href="../injectables/EventService.html" target="_self">EventService</a>)</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/dialog/dialog.directive.ts:126</a></div>
                            </td>
                        </tr>

                <tr>
                    <td class="col-md-4">
                            <div class="io-description"><p>Creates an instance of DialogDirective.</p>
</div>
                            <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>viewContainerRef</td>
                                                  
                                                        <td>
                                                                    <code>ViewContainerRef</code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                                <tr>
                                                        <td>dialogService</td>
                                                  
                                                        <td>
                                                                        <code><a href="../injectables/DialogService.html" target="_self" >DialogService</a></code>
                                                        </td>
                                                  
                                                    <td>
                                                            No
                                                    </td>
                                                    
                                                </tr>
                                                <tr>
                                                        <td>eventService</td>
                                                  
                                                        <td>
                                                                        <code><a href="../injectables/EventService.html" target="_self" >EventService</a></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="appendInline"></a>
                        <b>appendInline</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="85" class="link-to-prism">src/dialog/dialog.directive.ts:85</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Set to <code>true</code> to open the dialog next to the triggering component</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="cdsDialog"></a>
                        <b>cdsDialog</b>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>string | TemplateRef&lt;any&gt;</code>

                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="51" class="link-to-prism">src/dialog/dialog.directive.ts:51</a></div>
                            </td>
                        </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="closeTrigger"></a>
                        <b>closeTrigger</b>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>&quot;mouseout&quot; | &quot;mouseleave&quot;</code>

                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Default value : </i><code>&quot;mouseleave&quot;</code>
                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="65" class="link-to-prism">src/dialog/dialog.directive.ts:65</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Defines how the Dialog close event is triggered.</p>
<p><a href="https://developer.mozilla.org/en-US/docs/Web/API/Element/mouseleave_event">See here</a>
for more on the difference between <code>mouseleave</code> and <code>mouseout</code>.</p>
<p>Defaults to <code>click</code> when <code>trigger</code> is set to <code>click</code>.</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="data"></a>
                        <b>data</b>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>{}</code>

                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Default value : </i><code>{}</code>
                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="89" class="link-to-prism">src/dialog/dialog.directive.ts:89</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Optional data for templates</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="disabled"></a>
                        <b>disabled</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="95" class="link-to-prism">src/dialog/dialog.directive.ts:95</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>This prevents the dialog from being toggled</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="gap"></a>
                        <b>gap</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>0</code>
                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="81" class="link-to-prism">src/dialog/dialog.directive.ts:81</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Spacing between the dialog and it&#39;s triggering element</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="ibmDialog"></a>
                        <b>ibmDialog</b>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>string | TemplateRef</code>

                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="47" class="link-to-prism">src/dialog/dialog.directive.ts:47</a></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="91" class="link-to-prism">src/dialog/dialog.directive.ts:91</a></div>
                            </td>
                        </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="offset"></a>
                        <b>offset</b>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>literal type</code>

                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="73" class="link-to-prism">src/dialog/dialog.directive.ts:73</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>This specifies any vertical and horizontal offset for the position of the dialog</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="placement"></a>
                        <b>placement</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>&quot;left&quot;</code>
                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="69" class="link-to-prism">src/dialog/dialog.directive.ts:69</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Placement of the dialog, usually relative to the element the directive is on.</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="shouldClose"></a>
                        <b>shouldClose</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/function" target="_blank" >function</a></code>

                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="99" class="link-to-prism">src/dialog/dialog.directive.ts:99</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>This input allows explicit control over how the dialog should close</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="title"></a>
                        <b>title</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>&quot;&quot;</code>
                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="42" class="link-to-prism">src/dialog/dialog.directive.ts:42</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Title for the dialog</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="trigger"></a>
                        <b>trigger</b>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>    <code>&quot;click&quot; | &quot;hover&quot; | &quot;mouseenter&quot;</code>

                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Default value : </i><code>&quot;click&quot;</code>
                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="56" class="link-to-prism">src/dialog/dialog.directive.ts:56</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Defines how the Dialog is triggered.(Hover and click behave the same on mobile - both respond to a single tap).
Do not add focusable elements if trigger is <code>hover</code> or <code>mouseenter</code>.</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="wrapperClass"></a>
                        <b>wrapperClass</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-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="77" class="link-to-prism">src/dialog/dialog.directive.ts:77</a></div>
                            </td>
                        </tr>
                <tr>
                    <td class="col-md-4">
                        <div class="io-description"><p>Classes to add to the dialog container</p>
</div>
                    </td>
                </tr>
            </tbody>
        </table>
</section>
            <section data-compodoc="block-outputs">
    <h3 id="outputs">Outputs</h3>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="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="115" class="link-to-prism">src/dialog/dialog.directive.ts:115</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;any&gt;</code>

                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="107" class="link-to-prism">src/dialog/dialog.directive.ts:107</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;any&gt;</code>

                    </td>
                </tr>
                        <tr>
                            <td class="col-md-2" colspan="2">
                                    <div class="io-line">Defined in <a href="" data-line="111" class="link-to-prism">src/dialog/dialog.directive.ts:111</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="attr.aria-haspopup"></a>
                    <span class="name">
                        <span ><b>attr.aria-haspopup</b></span>
                        <a href="#attr.aria-haspopup"><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="118" class="link-to-prism">src/dialog/dialog.directive.ts:118</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="attr.aria-owns"></a>
                    <span class="name">
                        <span ><b>attr.aria-owns</b></span>
                        <a href="#attr.aria-owns"><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">
                                <div class="io-line">Defined in <a href="" data-line="119" class="link-to-prism">src/dialog/dialog.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="attr.role"></a>
                    <span class="name">
                        <span ><b>attr.role</b></span>
                        <a href="#attr.role"><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;button&quot;</code>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="117" class="link-to-prism">src/dialog/dialog.directive.ts:117</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="close"></a>
                    <span class="name">
                        <span ><b>close</b></span>
                        <a href="#close"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>close(meta: <a href="../interfaces/CloseMeta.html" target="_self">CloseMeta</a>)</code>
                </td>
            </tr>


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


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Helper method to close the dialogRef.</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>meta</td>
                                    <td>
                                                <code><a href="../interfaces/CloseMeta.html" target="_self" >CloseMeta</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>{ reason: CloseReasons.interaction }</code>
                                    </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>
                    <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="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="142"
                            class="link-to-prism">src/dialog/dialog.directive.ts:142</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>
                    </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="240"
                            class="link-to-prism">src/dialog/dialog.directive.ts:240</a></div>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>When the host dies, kill the popover.</p>
<ul>
<li>Useful for use in a modal or similar.</li>
</ul>
</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="ngOnInit"></a>
                    <span class="name">
                        <span ><b>ngOnInit</b></span>
                        <a href="#ngOnInit"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>ngOnInit()</code>
                </td>
            </tr>


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


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Sets the config object and binds events for hovering or clicking before
running code from child class.</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="onDialogChanges"></a>
                    <span class="name">
                        <span class="modifier">Protected</span>
                        <span ><b>onDialogChanges</b></span>
                        <a href="#onDialogChanges"><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>onDialogChanges(_changes: SimpleChanges)</code>
                </td>
            </tr>


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


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Empty method for child to override and specify additional on changes steps.
run after DialogDirective completes it&#39;s ngOnChanges.</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>
                    </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="onDialogInit"></a>
                    <span class="name">
                        <span class="modifier">Protected</span>
                        <span ><b>onDialogInit</b></span>
                        <a href="#onDialogInit"><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>onDialogInit()</code>
                </td>
            </tr>


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


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Empty method for child classes to override and specify additional init steps.
Run after DialogDirective completes it&#39;s ngOnInit.</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="open"></a>
                    <span class="name">
                        <span ><b>open</b></span>
                        <a href="#open"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>open(component?)</code>
                </td>
            </tr>


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


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Helper method to call dialogService &#39;open&#39;.</p>
<ul>
<li>Enforce accessibility by updating an aria attr for nativeElement.</li>
</ul>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Optional</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>component</td>

                                    <td>
                                        Yes
                                    </td>


                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <div>
                    </div>
                    <div class="io-description">
                        <b>Returns : </b>        <code><a href="../components/Dialog.html" target="_self" >ComponentRef&lt;Dialog&gt;</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="toggle"></a>
                    <span class="name">
                        <span ><b>toggle</b></span>
                        <a href="#toggle"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
            <tr>
                <td class="col-md-4">
<code>toggle(meta: <a href="../interfaces/CloseMeta.html" target="_self">CloseMeta</a>)</code>
                </td>
            </tr>


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


            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Helper method to toggle the open state of the dialog</p>
</div>

                    <div class="io-description">
                        <b>Parameters :</b>
                        
                        <table class="params">
                            <thead>
                                <tr>
                                    <td>Name</td>
                                    <td>Type</td>
                                    <td>Optional</td>
                                    <td>Default value</td>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                    <td>meta</td>
                                    <td>
                                                <code><a href="../interfaces/CloseMeta.html" target="_self" >CloseMeta</a></code>
                                    </td>

                                    <td>
                                        No
                                    </td>

                                    <td>
                                        <code>{ reason: CloseReasons.interaction }</code>
                                    </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>
                    <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="updateConfig"></a>
                    <span class="name">
                        <span class="modifier">Protected</span>
                        <span ><b>updateConfig</b></span>
                        <a href="#updateConfig"><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>updateConfig()</code>
                </td>
            </tr>


            <tr>
                <td class="col-md-4">
                    <div class="io-line">Defined in <a href="" data-line="309"
                            class="link-to-prism">src/dialog/dialog.directive.ts:309</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="dialogConfig"></a>
                    <span class="name">
                        <span ><b>dialogConfig</b></span>
                        <a href="#dialogConfig"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>        <code><a href="../interfaces/DialogConfig.html" target="_self" >DialogConfig</a></code>

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

            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Config object passed to the rendered component</p>
</div>
                </td>
            </tr>

        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="dialogCounter"></a>
                    <span class="name">
                            <span class="modifier">Static</span>
                        <span ><b>dialogCounter</b></span>
                        <a href="#dialogCounter"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>        <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>

                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Default value : </i><code>0</code>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="38" class="link-to-prism">src/dialog/dialog.directive.ts:38</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="dialogRef"></a>
                    <span class="name">
                            <span class="modifier">Protected</span>
                        <span ><b>dialogRef</b></span>
                        <a href="#dialogRef"><span class="icon ion-ios-link"></span></a>
                    </span>
                </td>
            </tr>
                <tr>
                    <td class="col-md-4">
                        <i>Type : </i>        <code><a href="../components/Dialog.html" target="_self" >ComponentRef&lt;Dialog&gt;</a></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/dialog/dialog.directive.ts:126</a></div>
                        </td>
                    </tr>

            <tr>
                <td class="col-md-4">
                    <div class="io-description"><p>Keeps a reference to the currently opened dialog</p>
</div>
                </td>
            </tr>

        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="hasPopup"></a>
                    <span class="name">
                            <span class="modifier"></span>
                        <span ><b>hasPopup</b></span>
                        <a href="#hasPopup"><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;attr.aria-haspopup&#x27;)<br />
                        </code>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="118" class="link-to-prism">src/dialog/dialog.directive.ts:118</a></div>
                        </td>
                    </tr>


        </tbody>
    </table>
    <table class="table table-sm table-bordered">
        <tbody>
            <tr>
                <td class="col-md-4">
                    <a name="role"></a>
                    <span class="name">
                            <span class="modifier"></span>
                        <span ><b>role</b></span>
                        <a href="#role"><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;button&quot;</code>
                    </td>
                </tr>
                <tr>
                    <td class="col-md-4">
                        <b>Decorators : </b>
                        <br />
                        <code>
                            @HostBinding(&#x27;attr.role&#x27;)<br />
                        </code>
                    </td>
                </tr>
                    <tr>
                        <td class="col-md-4">
                                <div class="io-line">Defined in <a href="" data-line="117" class="link-to-prism">src/dialog/dialog.directive.ts:117</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="ibmDialog"></a>
                        <span class="name"><b>ibmDialog</b><a href="#ibmDialog"><span class="icon ion-ios-link"></span></a></span>
                    </td>
                </tr>


                <tr>
                    <td class="col-md-4">
                        <span class="accessor"><b>set</b><code>ibmDialog(body: string | TemplateRef<any>)</code></span>
                    </td>
                </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="47" class="link-to-prism">src/dialog/dialog.directive.ts:47</a></div>
                                </td>
                            </tr>
                    <tr>
                        <td class="col-md-4">
                                <div class="io-description"><p>Dialog body content.</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>body</td>
                                                    
                                                            <td>
                                                                        <code>string | TemplateRef&lt;any&gt;</code>
                                                            </td>
                                                    
                                                        <td>
                                                                No
                                                        </td>
                                                        
                                                    </tr>
                                            </tbody>
                                        </table>
                                </div>
                                <div>
                                </div>
                                <div class="io-description">
                                    <b>Returns : </b>        <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>

                                </div>
                        </td>
                    </tr>
            </tbody>
        </table>
        <table class="table table-sm table-bordered">
            <tbody>
                <tr>
                    <td class="col-md-4">
                        <a name="ariaOwns"></a>
                        <span class="name"><b>ariaOwns</b><a href="#ariaOwns"><span class="icon ion-ios-link"></span></a></span>
                    </td>
                </tr>

                <tr>
                    <td class="col-md-4">
                        <span class="accessor"><b>get</b><code>ariaOwns()</code></span>
                    </td>
                </tr>
                            <tr>
                                <td class="col-md-4">
                                    <div class="io-line">Defined in <a href="" data-line="119" class="link-to-prism">src/dialog/dialog.directive.ts:119</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 {
	Directive,
	Input,
	Output,
	EventEmitter,
	OnInit,
	OnDestroy,
	ElementRef,
	TemplateRef,
	ViewContainerRef,
	OnChanges,
	HostBinding,
	SimpleChanges,
	ComponentRef
} from &quot;@angular/core&quot;;
import { DialogService } from &quot;./dialog.service&quot;;
import { CloseMeta, CloseReasons, DialogConfig } from &quot;./dialog-config.interface&quot;;
import { EventService } from &quot;carbon-components-angular/utils&quot;;
import { Dialog } from &quot;./dialog.component&quot;;

/**
 * A generic directive that can be inherited from to create dialogs (for example, a tooltip or popover)
 *
 * This class contains the relevant initialization code, specific templates, options, and additional inputs
 * should be specified in the derived class.
 *
 * NOTE: All child classes should add &#x60;DialogService&#x60; as a provider, otherwise they will lose context that
 * the service relies on.
 */
@Directive({
	selector: &quot;[cdsDialog], [ibmDialog]&quot;,
	exportAs: &quot;dialog&quot;,
	providers: [
		DialogService
	]
})
export class DialogDirective implements OnInit, OnDestroy, OnChanges {
	static dialogCounter &#x3D; 0;
	/**
	 * Title for the dialog
	 */
	@Input() title &#x3D; &quot;&quot;;
	/**
	 * @deprecated as of v5, use &#x60;cdsDialog&#x60; instead
	 * Dialog body content.
	 */
	@Input() set ibmDialog(body: string | TemplateRef&lt;any&gt;) {
		this.cdsDialog &#x3D; body;
	}

	@Input() cdsDialog: string | TemplateRef&lt;any&gt;;
	/**
	 * Defines how the Dialog is triggered.(Hover and click behave the same on mobile - both respond to a single tap).
	 * Do not add focusable elements if trigger is &#x60;hover&#x60; or &#x60;mouseenter&#x60;.
	 */
	@Input() trigger: &quot;click&quot; | &quot;hover&quot; | &quot;mouseenter&quot; &#x3D; &quot;click&quot;;
	/**
	 * Defines how the Dialog close event is triggered.
	 *
	 * [See here](https://developer.mozilla.org/en-US/docs/Web/API/Element/mouseleave_event)
	 * for more on the difference between &#x60;mouseleave&#x60; and &#x60;mouseout&#x60;.
	 *
	 * Defaults to &#x60;click&#x60; when &#x60;trigger&#x60; is set to &#x60;click&#x60;.
	 */
	@Input() closeTrigger: &quot;mouseout&quot; | &quot;mouseleave&quot; &#x3D; &quot;mouseleave&quot;;
	/**
	 * Placement of the dialog, usually relative to the element the directive is on.
	 */
	@Input() placement &#x3D; &quot;left&quot;;
	/**
	 * This specifies any vertical and horizontal offset for the position of the dialog
	 */
	@Input() offset: { x: number, y: number };
	/**
	 * Classes to add to the dialog container
	 */
	@Input() wrapperClass: string;
	/**
	 * Spacing between the dialog and it&#x27;s triggering element
	 */
	@Input() gap &#x3D; 0;
	/**
	 * Set to &#x60;true&#x60; to open the dialog next to the triggering component
	 */
	@Input() appendInline &#x3D; false;
	/**
	 * Optional data for templates
	 */
	@Input() data &#x3D; {};

	@Input() @HostBinding(&quot;attr.aria-expanded&quot;) isOpen &#x3D; false;
	/**
	 * This prevents the dialog from being toggled
	 */
	@Input() disabled &#x3D; false;
	/**
	 * This input allows explicit control over how the dialog should close
	 */
	@Input() shouldClose: (meta: CloseMeta) &#x3D;&gt; boolean;
	/**
	 * Config object passed to the rendered component
	 */
	dialogConfig: DialogConfig;
	/**
	 * Emits an event when the dialog is closed
	 */
	@Output() onClose: EventEmitter&lt;any&gt; &#x3D; new EventEmitter();
	/**
	 * Emits an event when the dialog is opened
	 */
	@Output() onOpen: EventEmitter&lt;any&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;();

	@HostBinding(&quot;attr.role&quot;) role &#x3D; &quot;button&quot;;
	@HostBinding(&quot;attr.aria-haspopup&quot;) hasPopup &#x3D; true;
	@HostBinding(&quot;attr.aria-owns&quot;) get ariaOwns(): string {
		return this.isOpen ? this.dialogConfig.compID : null;
	}

	/**
	 * Keeps a reference to the currently opened dialog
	 */
	protected dialogRef: ComponentRef&lt;Dialog&gt;;

	/**
	 * Creates an instance of DialogDirective.
	 * @param elementRef
	 * @param viewContainerRef
	 * @param dialogService
	 * @param eventService
	 */
	constructor(
		protected elementRef: ElementRef,
		protected viewContainerRef: ViewContainerRef,
		protected dialogService: DialogService,
		protected eventService: EventService
	) {}

	ngOnChanges(changes: SimpleChanges) {
		// set the config object (this can [and should!] be added to in child classes depending on what they need)
		this.dialogConfig &#x3D; {
			title: this.title,
			content: this.cdsDialog,
			placement: this.placement,
			parentRef: this.elementRef,
			gap: this.gap,
			trigger: this.trigger,
			closeTrigger: this.closeTrigger,
			shouldClose: this.shouldClose || (() &#x3D;&gt; true),
			appendInline: this.appendInline,
			wrapperClass: this.wrapperClass,
			data: this.data,
			offset: this.offset,
			disabled: this.disabled
		};

		if (changes.isOpen) {
			if (changes.isOpen.currentValue) {
				this.open();
			} else if (!changes.isOpen.firstChange) {
				this.close({
					reason: CloseReasons.programmatic
				});
			}
		}

		// Run any code a child class may need.
		this.onDialogChanges(changes);
		this.updateConfig();
	}

	/**
	 * Sets the config object and binds events for hovering or clicking before
	 * running code from child class.
	 */
	ngOnInit() {
		// fix for safari hijacking clicks
		this.dialogService.singletonClickListen();

		const element &#x3D; this.elementRef.nativeElement;

		this.eventService.on(element, &quot;keydown&quot;, (event: KeyboardEvent) &#x3D;&gt; {
			if (event.target &#x3D;&#x3D;&#x3D; this.dialogConfig.parentRef.nativeElement &amp;&amp;
				(event.key &#x3D;&#x3D;&#x3D; &quot;Tab&quot; || event.key &#x3D;&#x3D;&#x3D; &quot;Tab&quot; &amp;&amp; event.shiftKey) ||
				event.key &#x3D;&#x3D;&#x3D; &quot;Escape&quot;) {
				this.close({
					reason: CloseReasons.interaction,
					target: event.target
				});
			}
		});

		// bind events for hovering or clicking the host
		if (this.trigger &#x3D;&#x3D;&#x3D; &quot;hover&quot; || this.trigger &#x3D;&#x3D;&#x3D; &quot;mouseenter&quot;) {
			this.eventService.on(element, &quot;mouseenter&quot;, this.open.bind(this));
			this.eventService.on(element, this.closeTrigger, (event) &#x3D;&gt; {
				this.close({
					reason: CloseReasons.interaction,
					target: event.target
				});
			});
			this.eventService.on(element, &quot;focus&quot;, this.open.bind(this));
			this.eventService.on(element, &quot;blur&quot;, (event) &#x3D;&gt; {
				this.close({
					reason: CloseReasons.interaction,
					target: event.target
				});
			});
		} else {
			this.eventService.on(element, &quot;click&quot;, (event) &#x3D;&gt; {
				this.toggle({
					reason: CloseReasons.interaction,
					target: event.target
				});
			});
			this.eventService.on(element, &quot;keydown&quot;, (event: KeyboardEvent) &#x3D;&gt; {
				if (event.key &#x3D;&#x3D;&#x3D; &quot;Enter&quot; || event.key &#x3D;&#x3D;&#x3D; &quot; &quot;) {
					setTimeout(() &#x3D;&gt; {
						this.open();
					});
				}
			});
		}

		DialogDirective.dialogCounter++;
		this.dialogConfig.compID &#x3D; &quot;dialog-&quot; + DialogDirective.dialogCounter;

		// run any code a child class may need
		this.onDialogInit();
		this.updateConfig();
	}

	/**
	 * When the host dies, kill the popover.
	 * - Useful for use in a modal or similar.
	 */
	ngOnDestroy() {
		this.close({
			reason: CloseReasons.destroyed
		});
	}

	/**
	 * Helper method to call dialogService &#x27;open&#x27;.
	 * - Enforce accessibility by updating an aria attr for nativeElement.
	 */
	open(component?) {
		// don&#x27;t allow dialogs to be opened if they&#x27;re already open
		if (this.dialogRef || this.disabled) { return; }

		// actually open the dialog, emit events, and set the open state
		this.dialogRef &#x3D; this.dialogService.open(this.viewContainerRef, this.dialogConfig, component);
		this.isOpen &#x3D; true;
		this.onOpen.emit();
		this.isOpenChange.emit(true);

		// Handles emitting all the close events to clean everything up
		// Also enforce accessibility on close by updating an aria attr on the nativeElement.
		this.dialogRef.instance.close.subscribe((meta: CloseMeta) &#x3D;&gt; {
			if (!this.dialogRef) { return; }
			if (this.dialogConfig.shouldClose &amp;&amp; this.dialogConfig.shouldClose(meta)) {
				// close the dialog, emit events, and clear out the open states
				this.dialogService.close(this.dialogRef);
				this.dialogRef &#x3D; null;
				this.isOpen &#x3D; false;
				this.onClose.emit();
				this.isOpenChange.emit(false);
			}
		});

		return this.dialogRef;
	}

	/**
	 * Helper method to toggle the open state of the dialog
	 */
	toggle(meta: CloseMeta &#x3D; { reason: CloseReasons.interaction }) {
		if (!this.isOpen) {
			this.open();
		} else {
			this.close(meta);
		}
	}

	/**
	 * Helper method to close the dialogRef.
	 */
	close(meta: CloseMeta &#x3D; { reason: CloseReasons.interaction }) {
		if (this.dialogRef) {
			this.dialogRef.instance.doClose(meta);
		}
	}

	/**
	 * Empty method for child classes to override and specify additional init steps.
	 * Run after DialogDirective completes it&#x27;s ngOnInit.
	 */
	protected onDialogInit() {}

	/**
	 * Empty method for child to override and specify additional on changes steps.
	 * run after DialogDirective completes it&#x27;s ngOnChanges.
	 */
	protected onDialogChanges(_changes: SimpleChanges) {}

	protected updateConfig() {}
}
</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 = 'DialogDirective.html';
            var MAX_SEARCH_RESULTS = 15;
       </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>


    </body>
</html>