The query is split up on spaces, and we search for each of those terms,
in order, anywhere in the emoji name or any aliases/keywords.
This is done in a single filter pass against a compiled regex,
making the process reasonably performant.
Based on rough estimates, it should be between 2 and 5x faster
than the old implementation, depending on several factors.
There is a natural space left in to sort by relevancy (not done yet).
It should also be easy to make the number of matches shown configurable.
The number of matches is relevant, especially pre-sort.
Another consideration is to delay the calculation by up to 300ms.
This isn't being used anymore since
4e41fa8767.
In any case, age calculation really doesn't need to involve a 3rd party
library.
Ref: FoundKeyGang/FoundKey#90
The removed component does not contain any special script or styling.
It's template only contains a MkEmoji. To remove this unnecessary
indirection, the components was replaced with the MkEmoji component.
Using a plain textarea looks ugly and it is very small by default. Using
a MkTextarea fixes this.
For the readonly view, the individual fields should respectively be readonly.
The user's configred birthday is stored as UTC time, so use that for display as well.
This means the birthday won't be shown as a day behind or ahead depending on the user's browser timezone.
Also use the locale configured in the user's client settings in Misskey for date formatting.
Add the datetime property to the HTML5 time tag for a machine readable
timestamp.
Add the ability to display only the date or the time.
Change the computation of the relative time string to have precision
based on the format chosen based on the choice above. Also changed the
threshold for what is considered a date in the future so people do not
see "future" on notes they just created and thus try to stop them from
time traveling.