/// <summary>
        /// Close.
        /// </summary>
        public void Close()
        {
            if (!IsOpen)
            {
                return;
            }

            IsOpen = false;

            if (ModalKey != null)
            {
                ModalHelper.Close((int)ModalKey);
            }

            AdditionalButtonsBlock.SetActive(false);

            transform.SetParent(Parent, true);
            transform.SetSiblingIndex(SiblingIndex);
        }
        /// <summary>
        /// Open.
        /// </summary>
        public void Open()
        {
            if (IsOpen)
            {
                return;
            }

            IsOpen = true;

            var parent = Utilites.FindTopmostCanvas(gameObject.transform);

            if (parent != null)
            {
                Parent = transform.parent;
                transform.SetParent(parent, true);
            }

            SiblingIndex = transform.GetSiblingIndex();

            ModalKey = ModalHelper.Open(this, ModalSprite, ModalColor, Close);

            transform.SetAsLastSibling();
            AdditionalButtonsBlock.SetActive(true);
        }