Write a Python function called analyze_text(data: str) that takes a string data as input and performs the following tasks:
- Split the string into words. A word is defined as a sequence of alphabetic characters, and words should be considered case-insensitive (e.g., "Python" and "python" are the same).
- Ignore all non-alphabetic characters.
- Count the frequency of each unique word in the string.
- Create a list of tuples where each tuple contains a word and its frequency, sorted in descending order of frequency. If two words have the same frequency, sort them alphabetically in ascending order.
- Return the sorted list of tuples.
##Example
Input
data = "Hello, world! Hello Python developers. Python is great, and hello to the world of Python!"
Output
[('hello', 3), ('python', 3), ('world', 2), ('and', 1), ('developers', 1), ('great', 1), ('is', 1), ('of', 1), ('the', 1), ('to', 1)]
##Constraints:
- The input string may contain punctuation and numbers, but only alphabetic words should be processed.
- Words should be treated case-insensitively.