93 lines
3.1 KiB
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';
|
|
}
|