@dxtmisha/functional-basic 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/package.json +5 -3
  2. package/src/classes/Api.ts +407 -0
  3. package/src/classes/ApiDefault.ts +83 -0
  4. package/src/classes/ApiHeaders.ts +52 -0
  5. package/src/classes/ApiPreparation.ts +114 -0
  6. package/src/classes/ApiResponse.ts +293 -0
  7. package/src/classes/ApiStatus.ts +173 -0
  8. package/src/classes/BroadcastMessage.ts +73 -0
  9. package/src/classes/Cache.ts +60 -0
  10. package/src/classes/CacheItem.ts +95 -0
  11. package/src/classes/CacheStatic.ts +30 -0
  12. package/src/classes/Cookie.ts +135 -0
  13. package/src/classes/CookieBlock.ts +31 -0
  14. package/src/classes/DataStorage.ts +194 -0
  15. package/src/classes/Datetime.ts +891 -0
  16. package/src/classes/EventItem.ts +373 -0
  17. package/src/classes/Geo.ts +320 -0
  18. package/src/classes/GeoFlag.ts +386 -0
  19. package/src/classes/GeoIntl.ts +839 -0
  20. package/src/classes/GeoPhone.ts +272 -0
  21. package/src/classes/Global.ts +32 -0
  22. package/src/classes/Hash.ts +142 -0
  23. package/src/classes/Icons.ts +165 -0
  24. package/src/classes/Loading.ts +90 -0
  25. package/src/classes/Meta.ts +284 -0
  26. package/src/classes/MetaManager.ts +200 -0
  27. package/src/classes/MetaOg.ts +147 -0
  28. package/src/classes/MetaTwitter.ts +154 -0
  29. package/src/classes/ScrollbarWidth.ts +86 -0
  30. package/src/classes/Translate.ts +293 -0
  31. package/src/classes/__tests__/Api.test.ts +728 -0
  32. package/src/classes/__tests__/ApiDefault.test.ts +222 -0
  33. package/src/classes/__tests__/ApiHeaders.test.ts +447 -0
  34. package/src/classes/__tests__/ApiPreparation.test.ts +257 -0
  35. package/src/classes/__tests__/ApiResponse.test.ts +547 -0
  36. package/src/classes/__tests__/ApiStatus.test.ts +403 -0
  37. package/src/classes/__tests__/Meta.test.ts +629 -0
  38. package/src/classes/__tests__/MetaManager.test.ts +836 -0
  39. package/src/classes/__tests__/MetaOg.test.ts +677 -0
  40. package/src/classes/__tests__/MetaTwitter.test.ts +423 -0
  41. package/src/functions/anyToString.ts +36 -0
  42. package/src/functions/applyTemplate.ts +63 -0
  43. package/src/functions/arrFill.ts +10 -0
  44. package/src/functions/copyObject.ts +10 -0
  45. package/src/functions/createElement.ts +40 -0
  46. package/src/functions/domQuerySelector.ts +15 -0
  47. package/src/functions/domQuerySelectorAll.ts +15 -0
  48. package/src/functions/encodeAttribute.ts +15 -0
  49. package/src/functions/eventStopPropagation.ts +10 -0
  50. package/src/functions/executeFunction.ts +13 -0
  51. package/src/functions/executePromise.ts +19 -0
  52. package/src/functions/forEach.ts +39 -0
  53. package/src/functions/frame.ts +38 -0
  54. package/src/functions/getAttributes.ts +27 -0
  55. package/src/functions/getClipboardData.ts +13 -0
  56. package/src/functions/getColumn.ts +18 -0
  57. package/src/functions/getElement.ts +35 -0
  58. package/src/functions/getElementId.ts +39 -0
  59. package/src/functions/getElementItem.ts +27 -0
  60. package/src/functions/getElementOrWindow.ts +23 -0
  61. package/src/functions/getExp.ts +21 -0
  62. package/src/functions/getItemByPath.ts +24 -0
  63. package/src/functions/getKey.ts +9 -0
  64. package/src/functions/getLengthOfAllArray.ts +13 -0
  65. package/src/functions/getMaxLengthAllArray.ts +13 -0
  66. package/src/functions/getMinLengthAllArray.ts +13 -0
  67. package/src/functions/getMouseClient.ts +17 -0
  68. package/src/functions/getMouseClientX.ts +9 -0
  69. package/src/functions/getMouseClientY.ts +9 -0
  70. package/src/functions/getObjectByKeys.ts +24 -0
  71. package/src/functions/getObjectNoUndefined.ts +23 -0
  72. package/src/functions/getObjectOrNone.ts +11 -0
  73. package/src/functions/getRandomText.ts +29 -0
  74. package/src/functions/getRequestString.ts +21 -0
  75. package/src/functions/getStepPercent.ts +19 -0
  76. package/src/functions/getStepValue.ts +19 -0
  77. package/src/functions/goScroll.ts +40 -0
  78. package/src/functions/inArray.ts +10 -0
  79. package/src/functions/initScrollbarOffset.ts +14 -0
  80. package/src/functions/intersectKey.ts +34 -0
  81. package/src/functions/isArray.ts +9 -0
  82. package/src/functions/isDifferent.ts +27 -0
  83. package/src/functions/isDomRuntime.ts +12 -0
  84. package/src/functions/isFilled.ts +49 -0
  85. package/src/functions/isFloat.ts +16 -0
  86. package/src/functions/isFunction.ts +11 -0
  87. package/src/functions/isInDom.ts +15 -0
  88. package/src/functions/isIntegerBetween.ts +11 -0
  89. package/src/functions/isNull.ts +11 -0
  90. package/src/functions/isNumber.ts +16 -0
  91. package/src/functions/isObject.ts +9 -0
  92. package/src/functions/isObjectNotArray.ts +11 -0
  93. package/src/functions/isSelected.ts +32 -0
  94. package/src/functions/isSelectedByList.ts +19 -0
  95. package/src/functions/isString.ts +9 -0
  96. package/src/functions/isWindow.ts +11 -0
  97. package/src/functions/random.ts +10 -0
  98. package/src/functions/replaceRecursive.ts +60 -0
  99. package/src/functions/replaceTemplate.ts +22 -0
  100. package/src/functions/secondToTime.ts +20 -0
  101. package/src/functions/setElementItem.ts +56 -0
  102. package/src/functions/setValues.ts +59 -0
  103. package/src/functions/splice.ts +59 -0
  104. package/src/functions/strFill.ts +12 -0
  105. package/src/functions/toArray.ts +19 -0
  106. package/src/functions/toCamelCase.ts +16 -0
  107. package/src/functions/toCamelCaseFirst.ts +12 -0
  108. package/src/functions/toDate.ts +44 -0
  109. package/src/functions/toKebabCase.ts +25 -0
  110. package/src/functions/toNumber.ts +35 -0
  111. package/src/functions/toNumberByMax.ts +33 -0
  112. package/src/functions/toPercent.ts +10 -0
  113. package/src/functions/toPercentBy100.ts +12 -0
  114. package/src/functions/transformation.ts +59 -0
  115. package/src/functions/uniqueArray.ts +9 -0
  116. package/src/functions/writeClipboardData.ts +17 -0
  117. package/src/library.ts +116 -0
  118. package/src/types/apiTypes.ts +143 -0
  119. package/src/types/basicTypes.ts +155 -0
  120. package/src/types/geoTypes.ts +109 -0
  121. package/src/types/metaTypes.ts +764 -0
  122. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,386 @@
1
+ import { forEach } from '../functions/forEach'
2
+
3
+ import { Geo } from './Geo'
4
+ import { GeoIntl } from './GeoIntl'
5
+
6
+ import {
7
+ type GeoFlagItem,
8
+ type GeoFlagNational,
9
+ type GeoItemFull
10
+ } from '../types/geoTypes'
11
+
12
+ export const GEO_FLAG_ICON_NAME = '@flag'
13
+
14
+ /**
15
+ * Class for working with Flags.
16
+ *
17
+ * Класс для работы с Флагами.
18
+ */
19
+ export class GeoFlag {
20
+ static flags: Record<string, string> = {
21
+ AD: `${GEO_FLAG_ICON_NAME}-ad`,
22
+ AE: `${GEO_FLAG_ICON_NAME}-ae`,
23
+ AF: `${GEO_FLAG_ICON_NAME}-af`,
24
+ AG: `${GEO_FLAG_ICON_NAME}-ag`,
25
+ AI: `${GEO_FLAG_ICON_NAME}-ai`,
26
+ AL: `${GEO_FLAG_ICON_NAME}-al`,
27
+ AM: `${GEO_FLAG_ICON_NAME}-am`,
28
+ AN: `${GEO_FLAG_ICON_NAME}-an`,
29
+ AO: `${GEO_FLAG_ICON_NAME}-ao`,
30
+ AQ: `${GEO_FLAG_ICON_NAME}-aq`,
31
+ AR: `${GEO_FLAG_ICON_NAME}-ar`,
32
+ AS: `${GEO_FLAG_ICON_NAME}-as`,
33
+ AT: `${GEO_FLAG_ICON_NAME}-at`,
34
+ AU: `${GEO_FLAG_ICON_NAME}-au`,
35
+ AW: `${GEO_FLAG_ICON_NAME}-aw`,
36
+ AZ: `${GEO_FLAG_ICON_NAME}-az`,
37
+ BA: `${GEO_FLAG_ICON_NAME}-ba`,
38
+ BB: `${GEO_FLAG_ICON_NAME}-bb`,
39
+ BD: `${GEO_FLAG_ICON_NAME}-bd`,
40
+ BE: `${GEO_FLAG_ICON_NAME}-be`,
41
+ BF: `${GEO_FLAG_ICON_NAME}-bf`,
42
+ BG: `${GEO_FLAG_ICON_NAME}-bg`,
43
+ BH: `${GEO_FLAG_ICON_NAME}-bh`,
44
+ BI: `${GEO_FLAG_ICON_NAME}-bi`,
45
+ BJ: `${GEO_FLAG_ICON_NAME}-bj`,
46
+ BL: `${GEO_FLAG_ICON_NAME}-bl`,
47
+ BM: `${GEO_FLAG_ICON_NAME}-bm`,
48
+ BN: `${GEO_FLAG_ICON_NAME}-bn`,
49
+ BO: `${GEO_FLAG_ICON_NAME}-bo`,
50
+ BR: `${GEO_FLAG_ICON_NAME}-br`,
51
+ BS: `${GEO_FLAG_ICON_NAME}-bs`,
52
+ BT: `${GEO_FLAG_ICON_NAME}-bt`,
53
+ BW: `${GEO_FLAG_ICON_NAME}-bw`,
54
+ BY: `${GEO_FLAG_ICON_NAME}-by`,
55
+ BZ: `${GEO_FLAG_ICON_NAME}-bz`,
56
+ CA: `${GEO_FLAG_ICON_NAME}-ca`,
57
+ CC: `${GEO_FLAG_ICON_NAME}-cc`,
58
+ CD: `${GEO_FLAG_ICON_NAME}-cd`,
59
+ CF: `${GEO_FLAG_ICON_NAME}-cf`,
60
+ CG: `${GEO_FLAG_ICON_NAME}-cg`,
61
+ CH: `${GEO_FLAG_ICON_NAME}-ch`,
62
+ CI: `${GEO_FLAG_ICON_NAME}-ci`,
63
+ CK: `${GEO_FLAG_ICON_NAME}-ck`,
64
+ CL: `${GEO_FLAG_ICON_NAME}-cl`,
65
+ CM: `${GEO_FLAG_ICON_NAME}-cm`,
66
+ CN: `${GEO_FLAG_ICON_NAME}-cn`,
67
+ CO: `${GEO_FLAG_ICON_NAME}-co`,
68
+ CR: `${GEO_FLAG_ICON_NAME}-cr`,
69
+ CU: `${GEO_FLAG_ICON_NAME}-cu`,
70
+ CV: `${GEO_FLAG_ICON_NAME}-cv`,
71
+ CW: `${GEO_FLAG_ICON_NAME}-cw`,
72
+ CX: `${GEO_FLAG_ICON_NAME}-cx`,
73
+ CY: `${GEO_FLAG_ICON_NAME}-cy`,
74
+ CZ: `${GEO_FLAG_ICON_NAME}-cz`,
75
+ DE: `${GEO_FLAG_ICON_NAME}-de`,
76
+ DJ: `${GEO_FLAG_ICON_NAME}-dj`,
77
+ DK: `${GEO_FLAG_ICON_NAME}-dk`,
78
+ DM: `${GEO_FLAG_ICON_NAME}-dm`,
79
+ DZ: `${GEO_FLAG_ICON_NAME}-dz`,
80
+ EC: `${GEO_FLAG_ICON_NAME}-ec`,
81
+ EE: `${GEO_FLAG_ICON_NAME}-ee`,
82
+ EG: `${GEO_FLAG_ICON_NAME}-eg`,
83
+ EH: `${GEO_FLAG_ICON_NAME}-eh`,
84
+ ER: `${GEO_FLAG_ICON_NAME}-er`,
85
+ ES: `${GEO_FLAG_ICON_NAME}-es`,
86
+ ET: `${GEO_FLAG_ICON_NAME}-et`,
87
+ FI: `${GEO_FLAG_ICON_NAME}-fi`,
88
+ FJ: `${GEO_FLAG_ICON_NAME}-fj`,
89
+ FK: `${GEO_FLAG_ICON_NAME}-fk`,
90
+ FM: `${GEO_FLAG_ICON_NAME}-fm`,
91
+ FO: `${GEO_FLAG_ICON_NAME}-fo`,
92
+ FR: `${GEO_FLAG_ICON_NAME}-fr`,
93
+ GA: `${GEO_FLAG_ICON_NAME}-ga`,
94
+ GB: `${GEO_FLAG_ICON_NAME}-gb`,
95
+ GD: `${GEO_FLAG_ICON_NAME}-gd`,
96
+ GE: `${GEO_FLAG_ICON_NAME}-ge`,
97
+ GF: `${GEO_FLAG_ICON_NAME}-gf`,
98
+ GG: `${GEO_FLAG_ICON_NAME}-gg`,
99
+ GH: `${GEO_FLAG_ICON_NAME}-gh`,
100
+ GI: `${GEO_FLAG_ICON_NAME}-gi`,
101
+ GL: `${GEO_FLAG_ICON_NAME}-gl`,
102
+ GM: `${GEO_FLAG_ICON_NAME}-gm`,
103
+ GN: `${GEO_FLAG_ICON_NAME}-gn`,
104
+ GQ: `${GEO_FLAG_ICON_NAME}-gq`,
105
+ GR: `${GEO_FLAG_ICON_NAME}-gr`,
106
+ GT: `${GEO_FLAG_ICON_NAME}-gt`,
107
+ GU: `${GEO_FLAG_ICON_NAME}-gu`,
108
+ GW: `${GEO_FLAG_ICON_NAME}-gw`,
109
+ GY: `${GEO_FLAG_ICON_NAME}-gy`,
110
+ HK: `${GEO_FLAG_ICON_NAME}-hk`,
111
+ HN: `${GEO_FLAG_ICON_NAME}-hn`,
112
+ HR: `${GEO_FLAG_ICON_NAME}-hr`,
113
+ HT: `${GEO_FLAG_ICON_NAME}-ht`,
114
+ HU: `${GEO_FLAG_ICON_NAME}-hu`,
115
+ ID: `${GEO_FLAG_ICON_NAME}-id`,
116
+ IE: `${GEO_FLAG_ICON_NAME}-ie`,
117
+ IL: `${GEO_FLAG_ICON_NAME}-il`,
118
+ IM: `${GEO_FLAG_ICON_NAME}-im`,
119
+ IN: `${GEO_FLAG_ICON_NAME}-in`,
120
+ IO: `${GEO_FLAG_ICON_NAME}-io`,
121
+ IQ: `${GEO_FLAG_ICON_NAME}-iq`,
122
+ IR: `${GEO_FLAG_ICON_NAME}-ir`,
123
+ IS: `${GEO_FLAG_ICON_NAME}-is`,
124
+ IT: `${GEO_FLAG_ICON_NAME}-it`,
125
+ JE: `${GEO_FLAG_ICON_NAME}-je`,
126
+ JM: `${GEO_FLAG_ICON_NAME}-jm`,
127
+ JO: `${GEO_FLAG_ICON_NAME}-jo`,
128
+ JP: `${GEO_FLAG_ICON_NAME}-jp`,
129
+ KE: `${GEO_FLAG_ICON_NAME}-ke`,
130
+ KG: `${GEO_FLAG_ICON_NAME}-kg`,
131
+ KH: `${GEO_FLAG_ICON_NAME}-kh`,
132
+ KI: `${GEO_FLAG_ICON_NAME}-ki`,
133
+ KM: `${GEO_FLAG_ICON_NAME}-km`,
134
+ KN: `${GEO_FLAG_ICON_NAME}-kn`,
135
+ KP: `${GEO_FLAG_ICON_NAME}-kp`,
136
+ KR: `${GEO_FLAG_ICON_NAME}-kr`,
137
+ KW: `${GEO_FLAG_ICON_NAME}-kw`,
138
+ KY: `${GEO_FLAG_ICON_NAME}-ky`,
139
+ KZ: `${GEO_FLAG_ICON_NAME}-kz`,
140
+ LA: `${GEO_FLAG_ICON_NAME}-la`,
141
+ LB: `${GEO_FLAG_ICON_NAME}-lb`,
142
+ LC: `${GEO_FLAG_ICON_NAME}-lc`,
143
+ LI: `${GEO_FLAG_ICON_NAME}-li`,
144
+ LK: `${GEO_FLAG_ICON_NAME}-lk`,
145
+ LR: `${GEO_FLAG_ICON_NAME}-lr`,
146
+ LS: `${GEO_FLAG_ICON_NAME}-ls`,
147
+ LT: `${GEO_FLAG_ICON_NAME}-lt`,
148
+ LU: `${GEO_FLAG_ICON_NAME}-lu`,
149
+ LV: `${GEO_FLAG_ICON_NAME}-lv`,
150
+ LY: `${GEO_FLAG_ICON_NAME}-ly`,
151
+ MA: `${GEO_FLAG_ICON_NAME}-ma`,
152
+ MC: `${GEO_FLAG_ICON_NAME}-mc`,
153
+ MD: `${GEO_FLAG_ICON_NAME}-md`,
154
+ ME: `${GEO_FLAG_ICON_NAME}-me`,
155
+ MF: `${GEO_FLAG_ICON_NAME}-mf`,
156
+ MG: `${GEO_FLAG_ICON_NAME}-mg`,
157
+ MH: `${GEO_FLAG_ICON_NAME}-mh`,
158
+ MK: `${GEO_FLAG_ICON_NAME}-mk`,
159
+ ML: `${GEO_FLAG_ICON_NAME}-ml`,
160
+ MM: `${GEO_FLAG_ICON_NAME}-mm`,
161
+ MN: `${GEO_FLAG_ICON_NAME}-mn`,
162
+ MO: `${GEO_FLAG_ICON_NAME}-mo`,
163
+ MP: `${GEO_FLAG_ICON_NAME}-mp`,
164
+ MQ: `${GEO_FLAG_ICON_NAME}-mq`,
165
+ MR: `${GEO_FLAG_ICON_NAME}-mr`,
166
+ MS: `${GEO_FLAG_ICON_NAME}-ms`,
167
+ MT: `${GEO_FLAG_ICON_NAME}-mt`,
168
+ MU: `${GEO_FLAG_ICON_NAME}-mu`,
169
+ MV: `${GEO_FLAG_ICON_NAME}-mv`,
170
+ MW: `${GEO_FLAG_ICON_NAME}-mw`,
171
+ MX: `${GEO_FLAG_ICON_NAME}-mx`,
172
+ MY: `${GEO_FLAG_ICON_NAME}-my`,
173
+ MZ: `${GEO_FLAG_ICON_NAME}-mz`,
174
+ NA: `${GEO_FLAG_ICON_NAME}-na`,
175
+ NC: `${GEO_FLAG_ICON_NAME}-nc`,
176
+ NE: `${GEO_FLAG_ICON_NAME}-ne`,
177
+ NF: `${GEO_FLAG_ICON_NAME}-nf`,
178
+ NG: `${GEO_FLAG_ICON_NAME}-ng`,
179
+ NI: `${GEO_FLAG_ICON_NAME}-ni`,
180
+ NL: `${GEO_FLAG_ICON_NAME}-nl`,
181
+ NO: `${GEO_FLAG_ICON_NAME}-no`,
182
+ NP: `${GEO_FLAG_ICON_NAME}-np`,
183
+ NR: `${GEO_FLAG_ICON_NAME}-nr`,
184
+ NU: `${GEO_FLAG_ICON_NAME}-nu`,
185
+ NZ: `${GEO_FLAG_ICON_NAME}-nz`,
186
+ OM: `${GEO_FLAG_ICON_NAME}-om`,
187
+ PA: `${GEO_FLAG_ICON_NAME}-pa`,
188
+ PE: `${GEO_FLAG_ICON_NAME}-pe`,
189
+ PF: `${GEO_FLAG_ICON_NAME}-pf`,
190
+ PG: `${GEO_FLAG_ICON_NAME}-pg`,
191
+ PH: `${GEO_FLAG_ICON_NAME}-ph`,
192
+ PK: `${GEO_FLAG_ICON_NAME}-pk`,
193
+ PL: `${GEO_FLAG_ICON_NAME}-pl`,
194
+ PM: `${GEO_FLAG_ICON_NAME}-pm`,
195
+ PN: `${GEO_FLAG_ICON_NAME}-pn`,
196
+ PR: `${GEO_FLAG_ICON_NAME}-pr`,
197
+ PS: `${GEO_FLAG_ICON_NAME}-ps`,
198
+ PT: `${GEO_FLAG_ICON_NAME}-pt`,
199
+ PW: `${GEO_FLAG_ICON_NAME}-pw`,
200
+ PY: `${GEO_FLAG_ICON_NAME}-py`,
201
+ QA: `${GEO_FLAG_ICON_NAME}-qa`,
202
+ RE: `${GEO_FLAG_ICON_NAME}-re`,
203
+ RO: `${GEO_FLAG_ICON_NAME}-ro`,
204
+ RS: `${GEO_FLAG_ICON_NAME}-rs`,
205
+ RU: `${GEO_FLAG_ICON_NAME}-ru`,
206
+ RW: `${GEO_FLAG_ICON_NAME}-rw`,
207
+ SA: `${GEO_FLAG_ICON_NAME}-sa`,
208
+ SB: `${GEO_FLAG_ICON_NAME}-sb`,
209
+ SC: `${GEO_FLAG_ICON_NAME}-sc`,
210
+ SD: `${GEO_FLAG_ICON_NAME}-sd`,
211
+ SE: `${GEO_FLAG_ICON_NAME}-se`,
212
+ SG: `${GEO_FLAG_ICON_NAME}-sg`,
213
+ SH: `${GEO_FLAG_ICON_NAME}-sh`,
214
+ SI: `${GEO_FLAG_ICON_NAME}-si`,
215
+ SJ: `${GEO_FLAG_ICON_NAME}-sj`,
216
+ SK: `${GEO_FLAG_ICON_NAME}-sk`,
217
+ SL: `${GEO_FLAG_ICON_NAME}-sl`,
218
+ SM: `${GEO_FLAG_ICON_NAME}-sm`,
219
+ SN: `${GEO_FLAG_ICON_NAME}-sn`,
220
+ SO: `${GEO_FLAG_ICON_NAME}-so`,
221
+ SR: `${GEO_FLAG_ICON_NAME}-sr`,
222
+ SS: `${GEO_FLAG_ICON_NAME}-ss`,
223
+ ST: `${GEO_FLAG_ICON_NAME}-st`,
224
+ SV: `${GEO_FLAG_ICON_NAME}-sv`,
225
+ SX: `${GEO_FLAG_ICON_NAME}-sx`,
226
+ SY: `${GEO_FLAG_ICON_NAME}-sy`,
227
+ SZ: `${GEO_FLAG_ICON_NAME}-sz`,
228
+ TC: `${GEO_FLAG_ICON_NAME}-tc`,
229
+ TD: `${GEO_FLAG_ICON_NAME}-td`,
230
+ TG: `${GEO_FLAG_ICON_NAME}-tg`,
231
+ TH: `${GEO_FLAG_ICON_NAME}-th`,
232
+ TJ: `${GEO_FLAG_ICON_NAME}-tj`,
233
+ TK: `${GEO_FLAG_ICON_NAME}-tk`,
234
+ TL: `${GEO_FLAG_ICON_NAME}-tl`,
235
+ TM: `${GEO_FLAG_ICON_NAME}-tm`,
236
+ TN: `${GEO_FLAG_ICON_NAME}-tn`,
237
+ TO: `${GEO_FLAG_ICON_NAME}-to`,
238
+ TR: `${GEO_FLAG_ICON_NAME}-tr`,
239
+ TT: `${GEO_FLAG_ICON_NAME}-tt`,
240
+ TV: `${GEO_FLAG_ICON_NAME}-tv`,
241
+ TW: `${GEO_FLAG_ICON_NAME}-tw`,
242
+ TZ: `${GEO_FLAG_ICON_NAME}-tz`,
243
+ UA: `${GEO_FLAG_ICON_NAME}-ua`,
244
+ UG: `${GEO_FLAG_ICON_NAME}-ug`,
245
+ US: `${GEO_FLAG_ICON_NAME}-us`,
246
+ UY: `${GEO_FLAG_ICON_NAME}-uy`,
247
+ UZ: `${GEO_FLAG_ICON_NAME}-uz`,
248
+ VA: `${GEO_FLAG_ICON_NAME}-va`,
249
+ VC: `${GEO_FLAG_ICON_NAME}-vc`,
250
+ VE: `${GEO_FLAG_ICON_NAME}-ve`,
251
+ VG: `${GEO_FLAG_ICON_NAME}-vg`,
252
+ VI: `${GEO_FLAG_ICON_NAME}-vi`,
253
+ VN: `${GEO_FLAG_ICON_NAME}-vn`,
254
+ VU: `${GEO_FLAG_ICON_NAME}-vu`,
255
+ WF: `${GEO_FLAG_ICON_NAME}-wf`,
256
+ WS: `${GEO_FLAG_ICON_NAME}-ws`,
257
+ YE: `${GEO_FLAG_ICON_NAME}-ye`,
258
+ YT: `${GEO_FLAG_ICON_NAME}-yt`,
259
+ ZA: `${GEO_FLAG_ICON_NAME}-za`,
260
+ ZM: `${GEO_FLAG_ICON_NAME}-zm`,
261
+ ZW: `${GEO_FLAG_ICON_NAME}-zw`
262
+ }
263
+
264
+ /**
265
+ * Constructor
266
+ * @param code country and language code/ код страны и языка
267
+ */
268
+ constructor(
269
+ protected code: string = Geo.getLocation()
270
+ ) {
271
+ }
272
+
273
+ /**
274
+ * Returns information about the country and its flag.
275
+ *
276
+ * Возвращает информацию о стране и её флаге.
277
+ * @param code country code/ код страны
278
+ */
279
+ get(code = this.code): GeoFlagItem | undefined {
280
+ const data = Geo.find(code)
281
+
282
+ if (data) {
283
+ const country = this.getCountry(data)
284
+
285
+ return {
286
+ language: this.getLanguage(data),
287
+ country,
288
+ standard: data.standard,
289
+ icon: GeoFlag.flags?.[data.country],
290
+ label: country,
291
+ value: data.country
292
+ }
293
+ }
294
+
295
+ return undefined
296
+ }
297
+
298
+ /**
299
+ * Getting a link to the flag.
300
+ *
301
+ * Получение ссылки на флаг.
302
+ * @param code country code/ код страны
303
+ */
304
+ getFlag(code = this.code): string | undefined {
305
+ return this.get(code)?.icon
306
+ }
307
+
308
+ /**
309
+ * Getting a list of countries by an array of codes.
310
+ *
311
+ * Получение списка стран по массиву с кодами.
312
+ * @param codes country code/ код страны
313
+ */
314
+ getList(codes?: string[]): GeoFlagItem[] {
315
+ return forEach(this.getCodes(codes), code => this.get(code)) as GeoFlagItem[]
316
+ }
317
+
318
+ /**
319
+ * Getting a list of countries by an array of codes in national language.
320
+ *
321
+ * Получение списка стран по массиву с кодами на национальный язык.
322
+ * @param codes country code/ код страны.
323
+ */
324
+ getNational(codes?: string[]): GeoFlagNational[] {
325
+ return forEach(this.getList(codes), (item) => {
326
+ const geo = new GeoFlag(item.standard).get(item.standard)
327
+
328
+ return {
329
+ ...item,
330
+ description: geo?.country,
331
+ nationalLanguage: geo?.language,
332
+ nationalCountry: geo?.country
333
+ }
334
+ }) as GeoFlagNational[]
335
+ }
336
+
337
+ /**
338
+ * To change the location.
339
+ *
340
+ * Изменить местоположение.
341
+ * @param code country and language code/ код страны и языка
342
+ */
343
+ setCode(code: string): this {
344
+ this.code = code
345
+ return this
346
+ }
347
+
348
+ /**
349
+ * Returns a special object for formatting.
350
+ *
351
+ * Возвращает специальный объект для работы с форматированием.
352
+ */
353
+ protected getLocation() {
354
+ return new GeoIntl(this.code)
355
+ }
356
+
357
+ /**
358
+ * Returns a list of countries to retrieve data from.
359
+ *
360
+ * Возвращает список стран для получения данных.
361
+ * @param codes country code/ код страны
362
+ */
363
+ protected getCodes(codes?: string[]): string[] {
364
+ return codes ?? Object.keys(GeoFlag.flags)
365
+ }
366
+
367
+ /**
368
+ * Getting the name of the language.
369
+ *
370
+ * Получение названия языка.
371
+ * @param data object with information of data/ объект с информацией данных
372
+ */
373
+ protected getLanguage(data: GeoItemFull): string {
374
+ return this.getLocation().languageName(data.language)
375
+ }
376
+
377
+ /**
378
+ * Getting the name of the country.
379
+ *
380
+ * Получение названия страны.
381
+ * @param data object with information of data/ объект с информацией данных
382
+ */
383
+ protected getCountry(data: GeoItemFull): string {
384
+ return this.getLocation().countryName(data.country)
385
+ }
386
+ }