aves/lib/utils/emoji_utils.dart

93 lines
3.1 KiB
Dart

class EmojiUtils {
// U+0041 Latin Capital letter A
static const _capitalLetterA = 0x0041;
// U+1F1E6 Regional Indicator Symbol Letter A
static const _countryCodeToFlagDiff = 0x1F1E6 - _capitalLetterA;
// U+E0061 Tag Latin Small Letter a
static const _stateCodeToFlagDiff = 0xE0061 - _capitalLetterA;
static const _blackFlag = 0x1F3F4;
static const _cancel = 0xE007F;
static String? countryCodeToFlag(String? code) {
if (code == null || code.length != 2) return null;
return String.fromCharCodes(code.toUpperCase().codeUnits.map((letter) => letter += _countryCodeToFlagDiff));
}
static String? stateCodeToFlag(String? code) {
if (code == null) return null;
return String.fromCharCodes([_blackFlag, ...code.toUpperCase().codeUnits.map((letter) => letter += _stateCodeToFlagDiff), _cancel]);
}
}
class StateCodes {
// AU
static const auAustralianCapitalTerritory = 'auact';
static const auNewSouthWales = 'aunsw';
static const auNorthernTerritory = 'aunt';
static const auQueensland = 'auqld';
static const auSouthAustralia = 'ausa';
static const auTasmania = 'autas';
static const auVictoria = 'auvic';
static const auWesternAustralia = 'auwa';
// GB
static const gbEngland = 'gbeng';
static const gbNorthernIreland = 'gbnir';
static const gbScotland = 'gbsct';
static const gbWales = 'gbwls';
// US
static const usAlabama = 'usal';
static const usAlaska = 'usak';
static const usArizona = 'usaz';
static const usArkansas = 'usar';
static const usCalifornia = 'usca';
static const usColorado = 'usco';
static const usConnecticut = 'usct';
static const usDelaware = 'usde';
static const usFlorida = 'usfl';
static const usGeorgia = 'usga';
static const usHawaii = 'ushi';
static const usIdaho = 'usid';
static const usIllinois = 'usil';
static const usIndiana = 'usin';
static const usIowa = 'usia';
static const usKansas = 'usks';
static const usKentucky = 'usky';
static const usLouisiana = 'usla';
static const usMaine = 'usme';
static const usMaryland = 'usmd';
static const usMassachusetts = 'usma';
static const usMichigan = 'usmi';
static const usMinnesota = 'usmn';
static const usMississippi = 'usms';
static const usMissouri = 'usmo';
static const usMontana = 'usmt';
static const usNebraska = 'usne';
static const usNevada = 'usnv';
static const usNewHampshire = 'usnh';
static const usNewJersey = 'usnj';
static const usNewMexico = 'usnm';
static const usNewYork = 'usny';
static const usNorthCarolina = 'usnc';
static const usNorthDakota = 'usnd';
static const usOhio = 'usoh';
static const usOklahoma = 'usok';
static const usOregon = 'usor';
static const usPennsylvania = 'uspa';
static const usRhodeIsland = 'usri';
static const usSouthCarolina = 'ussc';
static const usSouthDakota = 'ussd';
static const usTennessee = 'ustn';
static const usUtah = 'usut';
static const usVermont = 'usvt';
static const usVirginia = 'usva';
static const usWashington = 'uswa';
static const usWashingtonDC = 'usdc';
static const usWestVirginia = 'uswv';
static const usWisconsin = 'uswi';
static const usWyoming = 'uswy';
}