docs: function () {
              // --------------------------------------------------- destructuring
  
              var cfg = this._cfg;
  
              var modal = cfg.modal;
              var waiAria = cfg.waiAria;
  
              // ------------------------------------------------------ processing
  
              // refreshParams ---------------------------------------------------
  
              var refreshParams = {
                  section : "__dialog_" + this._domId,
                  writerCallback : {
                      fn : this._writerCallback,
                      scope : this
                  }
              };
  
              // popupContainer --------------------------------------------------
  
              var popupContainer = PopupContainerManager.createPopupContainer(cfg.container);
              this._popupContainer = popupContainer;
  
              // previouslyFocusedElement ----------------------------------------
  
              if (modal) {
                  this._previouslyFocusedElement = Aria.$window.document.activeElement;
              }
  
              // optionsBeforeMaximize -------------------------------------------
              // store current options to reapply them when unmaximized
  
              this._optionsBeforeMaximize = this._createOptionsBeforeMaximize(cfg);
  
              // section ---------------------------------------------------------
  
              var section = this._context.getRefreshedSection(refreshParams);
  
              // popup -----------------------------------------------------------
  
              var popup = new ariaPopupsPopup();
  
              this._popup = popup;
  
              popup.$on({
                  "onAfterOpen" : this._onAfterPopupOpen,
                  "onEscape" : this._onEscape,
                  "onAfterClose" : this._onAfterPopupClose,
                  scope : this
              });
  
              if (cfg.closeOnMouseClick) {
                  popup.$on({
                      "onMouseClickClose" : this._onMouseClickClose,
                      scope : this
                  });
              }
  
              popup.open({
                  section : section,
                  keepSection : true,
                  absolutePosition : {
                      left : cfg.xpos,
                      top : cfg.ypos
                  },
                  center : cfg.center,
                  maximized : cfg.maximized,
                  offset : cfg.maximized ? this._shadows : this._shadowsZero,
                  modal : modal,
                  maskCssClass : "xDialogMask",
                  popupContainer : popupContainer,
                  closeOnMouseClick : cfg.closeOnMouseClick,
                  closeOnMouseScroll : false,
                  parentDialog : this,
                  zIndexKeepOpenOrder : false, // allows to re-order dialogs (dynamic z-index)
                  role: modal ? "dialog" : null,
                  labelId: modal ? this.__getLabelId() : null,
                  waiAria: waiAria
              });
  
              // hiddenElements --------------------------------------------------
  
              if (modal && waiAria) {
                  var container = popupContainer.getContainerElt();
                  this._showBack = DomNavigationManager.hidingManager.hideOthers(popup.domElement, function (element) {
                       return element != null && element !== container;
                  });
              }
  
              // -----------------------------------------------------------------
  
              // must be registered before we check for _cfg.maximized, to fire the event correctly after overflow change
              ariaTemplatesLayout.$on({
                  "viewportResized" : this._onViewportResized,
                  scope : this
              });
  
              // -----------------------------------------------------------------
  
              // in case when bound "maximized" was toggled while Dialog was not visible
              if (cfg.maximized) {
                  this._setContainerOverflow("hidden");
                  this._setMaximizedHeightAndWidth();
              }
  
              this._firstEscapeTime = null;
          }