/**
  * AbsMenuPage constructor.
  *
  * @param WpMenuPages $menuPages
  * @param string      $menuTitle
  * @param string      $menuSlug If empty then {@link TrtStrings::pregReplaceNonAlpha()} is used to create a slug
  *                              from $menuTitle param
  * @param string      $title
  * @param string      $capability
  * @param string      $subtitle
  * @param string      $iconUrl
  * @param null        $position
  *
  * @since  1.0.0
  * @author Panagiotis Vagenas <*****@*****.**>
  */
 public function __construct(WpMenuPages $menuPages, $menuTitle, $menuSlug = '', $title = '', $capability = 'manage_options', $subtitle = '', $iconUrl = '', $position = null)
 {
     $this->wpMenuPages = $menuPages;
     $this->options = $menuPages->getOptions();
     $this->title = $title ?: $menuTitle;
     $this->subtitle = $subtitle;
     $this->menuTitle = $menuTitle;
     $this->capability = $capability;
     $this->menuSlug = $menuSlug ?: $this->pregReplaceNonAlpha($menuTitle);
     $this->iconUrl = $iconUrl;
     $this->position = $position;
     $this->options->maybeInitPageOptions($this);
     add_action('admin_menu', [$this, 'init'], 10);
     add_action('admin_menu', [$this, 'bindScripts'], 11);
     $this->bindActions();
 }