protected IDictionary <TransitionEventPhase, string> GetClassNames(TransitionEvent @event)
        {
            bool hasPrefix = !string.IsNullOrWhiteSpace(EventClass);

            string baseClass = null, activeClass = null, doneClass = null;

            if (hasPrefix)
            {
                baseClass = $"{EventClass}-{@event}";

                activeClass = $"{baseClass}-Active";

                doneClass = $"{baseClass}-Done";
            }
            else
            {
                if (Enum.TryParse($"{@event}", out TransitionEventClass baseEvent))
                {
                    baseClass = EventClasses.ContainsKey(baseEvent) ? EventClasses[baseEvent] : null;
                }

                if (Enum.TryParse($"{@event}{TransitionEventPhase.Active}", out TransitionEventClass activeEvent))
                {
                    activeClass = EventClasses.ContainsKey(activeEvent) ? EventClasses[activeEvent] : null;
                }

                if (Enum.TryParse($"{@event}{TransitionEventPhase.Done}", out TransitionEventClass doneEvent))
                {
                    doneClass = EventClasses.ContainsKey(doneEvent) ? EventClasses[doneEvent] : null;
                }
            }

            var classes = new Dictionary <TransitionEventPhase, string>
            {
                { TransitionEventPhase.Base, baseClass },

                { TransitionEventPhase.Active, activeClass },

                { TransitionEventPhase.Done, doneClass }
            };

            return(classes);
        }