@webority/mobile-core 0.0.29 → 0.2.0

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 (242) hide show
  1. package/README.md +32 -0
  2. package/lib/commonjs/api/baseUrl.js +1 -34
  3. package/lib/commonjs/api/clientHeaders.js +1 -0
  4. package/lib/commonjs/api/curl.js +1 -109
  5. package/lib/commonjs/api/minAppVersion.js +1 -0
  6. package/lib/commonjs/api/multipart.js +1 -21
  7. package/lib/commonjs/api/publicClient.js +1 -79
  8. package/lib/commonjs/api/requestDefaults.js +1 -0
  9. package/lib/commonjs/api/responseBodyText.js +1 -0
  10. package/lib/commonjs/api/retry.js +1 -91
  11. package/lib/commonjs/api/tokenRefresh.js +1 -205
  12. package/lib/commonjs/api/userClient.js +1 -265
  13. package/lib/commonjs/auth/authStore.js +1 -265
  14. package/lib/commonjs/auth/index.js +1 -44
  15. package/lib/commonjs/auth/jwt.js +1 -112
  16. package/lib/commonjs/config/index.js +1 -72
  17. package/lib/commonjs/deepLink/index.js +1 -286
  18. package/lib/commonjs/download/adapters/expoFs.js +1 -69
  19. package/lib/commonjs/download/adapters/shared.js +1 -13
  20. package/lib/commonjs/download/index.js +1 -250
  21. package/lib/commonjs/errors/extractApiError.js +1 -0
  22. package/lib/commonjs/errors/index.js +1 -0
  23. package/lib/commonjs/formatters/currency.js +1 -70
  24. package/lib/commonjs/formatters/date.js +1 -167
  25. package/lib/commonjs/formatters/dateMath.js +1 -311
  26. package/lib/commonjs/formatters/formatConfig.js +1 -0
  27. package/lib/commonjs/formatters/house.js +1 -0
  28. package/lib/commonjs/formatters/index.js +1 -246
  29. package/lib/commonjs/formatters/initials.js +1 -32
  30. package/lib/commonjs/formatters/intlCache.js +1 -37
  31. package/lib/commonjs/formatters/number.js +1 -89
  32. package/lib/commonjs/formatters/phone.js +1 -369
  33. package/lib/commonjs/formatters/windowsToIanaTable.js +1 -164
  34. package/lib/commonjs/geolocation/adapters/expoLocation.js +1 -126
  35. package/lib/commonjs/geolocation/index.js +1 -355
  36. package/lib/commonjs/index.js +1 -644
  37. package/lib/commonjs/initSDK.js +1 -66
  38. package/lib/commonjs/initUserAuth.js +1 -37
  39. package/lib/commonjs/logger/crashlytics.js +1 -0
  40. package/lib/commonjs/logger/index.js +1 -301
  41. package/lib/commonjs/logger/redact.js +1 -50
  42. package/lib/commonjs/network/index.js +1 -31
  43. package/lib/commonjs/network/networkStatus.js +1 -171
  44. package/lib/commonjs/permissions/calendar.js +1 -14
  45. package/lib/commonjs/permissions/camera.js +1 -14
  46. package/lib/commonjs/permissions/contacts.js +1 -10
  47. package/lib/commonjs/permissions/index.js +1 -133
  48. package/lib/commonjs/permissions/location.js +1 -14
  49. package/lib/commonjs/permissions/mediaLibrary.js +1 -10
  50. package/lib/commonjs/permissions/notifications.js +1 -10
  51. package/lib/commonjs/permissions/photos.js +1 -14
  52. package/lib/commonjs/phone/countries.js +1 -265
  53. package/lib/commonjs/push/index.js +1 -61
  54. package/lib/commonjs/push/push.js +1 -468
  55. package/lib/commonjs/push/status.js +1 -0
  56. package/lib/commonjs/push/task.js +1 -43
  57. package/lib/commonjs/query/apiBaseQuery.js +1 -0
  58. package/lib/commonjs/query/createAppApi.js +1 -0
  59. package/lib/commonjs/query/index.js +1 -0
  60. package/lib/commonjs/query/listeners.js +1 -0
  61. package/lib/commonjs/query/paging.js +1 -0
  62. package/lib/commonjs/query/tags.js +1 -0
  63. package/lib/commonjs/redux/errorToastMiddleware.js +1 -0
  64. package/lib/commonjs/redux/index.js +1 -0
  65. package/lib/commonjs/redux/rootReducer.js +1 -0
  66. package/lib/commonjs/redux/serializableCheck.js +1 -0
  67. package/lib/commonjs/secureScreen/index.js +1 -0
  68. package/lib/commonjs/share/index.js +1 -70
  69. package/lib/commonjs/smsRetriever/index.js +1 -91
  70. package/lib/commonjs/specs/NativeSmsRetriever.js +1 -15
  71. package/lib/commonjs/sqlite/adapters/expo.js +1 -53
  72. package/lib/commonjs/sqlite/index.js +1 -604
  73. package/lib/commonjs/storage/index.js +1 -214
  74. package/lib/commonjs/types/axios.js +1 -4
  75. package/lib/commonjs/types/globals.d.js +1 -6
  76. package/lib/commonjs/utils/base64.js +1 -24
  77. package/lib/commonjs/utils/imageCompression.js +1 -389
  78. package/lib/commonjs/utils/index.js +1 -19
  79. package/lib/commonjs/validators/index.js +1 -227
  80. package/lib/commonjs/versionCheck/buildNumber.js +1 -0
  81. package/lib/commonjs/versionCheck/index.js +1 -419
  82. package/lib/module/api/baseUrl.js +1 -30
  83. package/lib/module/api/clientHeaders.js +1 -0
  84. package/lib/module/api/curl.js +1 -104
  85. package/lib/module/api/minAppVersion.js +1 -0
  86. package/lib/module/api/multipart.js +1 -16
  87. package/lib/module/api/publicClient.js +1 -75
  88. package/lib/module/api/requestDefaults.js +1 -0
  89. package/lib/module/api/responseBodyText.js +1 -0
  90. package/lib/module/api/retry.js +1 -85
  91. package/lib/module/api/tokenRefresh.js +1 -192
  92. package/lib/module/api/userClient.js +1 -243
  93. package/lib/module/auth/authStore.js +1 -257
  94. package/lib/module/auth/index.js +1 -5
  95. package/lib/module/auth/jwt.js +1 -106
  96. package/lib/module/config/index.js +1 -64
  97. package/lib/module/deepLink/index.js +1 -280
  98. package/lib/module/download/adapters/expoFs.js +1 -64
  99. package/lib/module/download/adapters/shared.js +1 -8
  100. package/lib/module/download/index.js +1 -242
  101. package/lib/module/errors/extractApiError.js +1 -0
  102. package/lib/module/errors/index.js +1 -0
  103. package/lib/module/formatters/currency.js +1 -65
  104. package/lib/module/formatters/date.js +1 -159
  105. package/lib/module/formatters/dateMath.js +1 -295
  106. package/lib/module/formatters/formatConfig.js +1 -0
  107. package/lib/module/formatters/house.js +1 -0
  108. package/lib/module/formatters/index.js +1 -9
  109. package/lib/module/formatters/initials.js +1 -27
  110. package/lib/module/formatters/intlCache.js +1 -30
  111. package/lib/module/formatters/number.js +1 -82
  112. package/lib/module/formatters/phone.js +1 -302
  113. package/lib/module/formatters/windowsToIanaTable.js +1 -160
  114. package/lib/module/geolocation/adapters/expoLocation.js +1 -121
  115. package/lib/module/geolocation/index.js +1 -347
  116. package/lib/module/index.js +1 -57
  117. package/lib/module/initSDK.js +1 -61
  118. package/lib/module/initUserAuth.js +1 -33
  119. package/lib/module/logger/crashlytics.js +1 -0
  120. package/lib/module/logger/index.js +1 -295
  121. package/lib/module/logger/redact.js +1 -44
  122. package/lib/module/network/index.js +1 -4
  123. package/lib/module/network/networkStatus.js +1 -161
  124. package/lib/module/permissions/calendar.js +1 -15
  125. package/lib/module/permissions/camera.js +1 -15
  126. package/lib/module/permissions/contacts.js +1 -11
  127. package/lib/module/permissions/index.js +1 -128
  128. package/lib/module/permissions/location.js +1 -15
  129. package/lib/module/permissions/mediaLibrary.js +1 -11
  130. package/lib/module/permissions/notifications.js +1 -11
  131. package/lib/module/permissions/photos.js +1 -15
  132. package/lib/module/phone/countries.js +1 -261
  133. package/lib/module/push/index.js +1 -4
  134. package/lib/module/push/push.js +1 -452
  135. package/lib/module/push/status.js +1 -0
  136. package/lib/module/push/task.js +1 -38
  137. package/lib/module/query/apiBaseQuery.js +1 -0
  138. package/lib/module/query/createAppApi.js +1 -0
  139. package/lib/module/query/index.js +1 -0
  140. package/lib/module/query/listeners.js +1 -0
  141. package/lib/module/query/paging.js +1 -0
  142. package/lib/module/query/tags.js +1 -0
  143. package/lib/module/redux/errorToastMiddleware.js +1 -0
  144. package/lib/module/redux/index.js +1 -0
  145. package/lib/module/redux/rootReducer.js +1 -0
  146. package/lib/module/redux/serializableCheck.js +1 -0
  147. package/lib/module/secureScreen/index.js +1 -0
  148. package/lib/module/share/index.js +1 -64
  149. package/lib/module/smsRetriever/index.js +1 -86
  150. package/lib/module/specs/NativeSmsRetriever.js +1 -13
  151. package/lib/module/sqlite/adapters/expo.js +1 -48
  152. package/lib/module/sqlite/index.js +1 -594
  153. package/lib/module/storage/index.js +1 -208
  154. package/lib/module/types/axios.js +1 -4
  155. package/lib/module/types/globals.d.js +1 -10
  156. package/lib/module/utils/base64.js +1 -19
  157. package/lib/module/utils/imageCompression.js +1 -383
  158. package/lib/module/utils/index.js +1 -4
  159. package/lib/module/validators/index.js +1 -205
  160. package/lib/module/versionCheck/buildNumber.js +1 -0
  161. package/lib/module/versionCheck/index.js +1 -413
  162. package/lib/typescript/commonjs/api/clientHeaders.d.ts +25 -0
  163. package/lib/typescript/commonjs/api/minAppVersion.d.ts +24 -0
  164. package/lib/typescript/commonjs/api/requestDefaults.d.ts +21 -0
  165. package/lib/typescript/commonjs/api/responseBodyText.d.ts +6 -0
  166. package/lib/typescript/commonjs/api/retry.d.ts +23 -9
  167. package/lib/typescript/commonjs/api/tokenRefresh.d.ts +14 -2
  168. package/lib/typescript/commonjs/api/userClient.d.ts +1 -1
  169. package/lib/typescript/commonjs/auth/authStore.d.ts +76 -0
  170. package/lib/typescript/commonjs/auth/index.d.ts +2 -2
  171. package/lib/typescript/commonjs/config/index.d.ts +31 -2
  172. package/lib/typescript/commonjs/errors/extractApiError.d.ts +69 -0
  173. package/lib/typescript/commonjs/errors/index.d.ts +3 -0
  174. package/lib/typescript/commonjs/formatters/currency.d.ts +22 -7
  175. package/lib/typescript/commonjs/formatters/date.d.ts +13 -13
  176. package/lib/typescript/commonjs/formatters/dateMath.d.ts +4 -2
  177. package/lib/typescript/commonjs/formatters/formatConfig.d.ts +48 -0
  178. package/lib/typescript/commonjs/formatters/house.d.ts +143 -0
  179. package/lib/typescript/commonjs/formatters/index.d.ts +4 -0
  180. package/lib/typescript/commonjs/formatters/number.d.ts +15 -5
  181. package/lib/typescript/commonjs/index.d.ts +26 -8
  182. package/lib/typescript/commonjs/initSDK.d.ts +18 -6
  183. package/lib/typescript/commonjs/initUserAuth.d.ts +29 -0
  184. package/lib/typescript/commonjs/logger/crashlytics.d.ts +31 -0
  185. package/lib/typescript/commonjs/logger/index.d.ts +17 -0
  186. package/lib/typescript/commonjs/push/index.d.ts +3 -1
  187. package/lib/typescript/commonjs/push/push.d.ts +1 -1
  188. package/lib/typescript/commonjs/push/status.d.ts +9 -0
  189. package/lib/typescript/commonjs/query/apiBaseQuery.d.ts +55 -0
  190. package/lib/typescript/commonjs/query/createAppApi.d.ts +21 -0
  191. package/lib/typescript/commonjs/query/index.d.ts +9 -0
  192. package/lib/typescript/commonjs/query/listeners.d.ts +11 -0
  193. package/lib/typescript/commonjs/query/paging.d.ts +42 -0
  194. package/lib/typescript/commonjs/query/tags.d.ts +31 -0
  195. package/lib/typescript/commonjs/redux/errorToastMiddleware.d.ts +51 -0
  196. package/lib/typescript/commonjs/redux/index.d.ts +6 -0
  197. package/lib/typescript/commonjs/redux/rootReducer.d.ts +19 -0
  198. package/lib/typescript/commonjs/redux/serializableCheck.d.ts +14 -0
  199. package/lib/typescript/commonjs/secureScreen/index.d.ts +25 -0
  200. package/lib/typescript/commonjs/versionCheck/buildNumber.d.ts +14 -0
  201. package/lib/typescript/commonjs/versionCheck/index.d.ts +28 -17
  202. package/lib/typescript/module/api/clientHeaders.d.ts +25 -0
  203. package/lib/typescript/module/api/minAppVersion.d.ts +24 -0
  204. package/lib/typescript/module/api/requestDefaults.d.ts +21 -0
  205. package/lib/typescript/module/api/responseBodyText.d.ts +6 -0
  206. package/lib/typescript/module/api/retry.d.ts +23 -9
  207. package/lib/typescript/module/api/tokenRefresh.d.ts +14 -2
  208. package/lib/typescript/module/api/userClient.d.ts +1 -1
  209. package/lib/typescript/module/auth/authStore.d.ts +76 -0
  210. package/lib/typescript/module/auth/index.d.ts +2 -2
  211. package/lib/typescript/module/config/index.d.ts +31 -2
  212. package/lib/typescript/module/errors/extractApiError.d.ts +69 -0
  213. package/lib/typescript/module/errors/index.d.ts +3 -0
  214. package/lib/typescript/module/formatters/currency.d.ts +22 -7
  215. package/lib/typescript/module/formatters/date.d.ts +13 -13
  216. package/lib/typescript/module/formatters/dateMath.d.ts +4 -2
  217. package/lib/typescript/module/formatters/formatConfig.d.ts +48 -0
  218. package/lib/typescript/module/formatters/house.d.ts +143 -0
  219. package/lib/typescript/module/formatters/index.d.ts +4 -0
  220. package/lib/typescript/module/formatters/number.d.ts +15 -5
  221. package/lib/typescript/module/index.d.ts +26 -8
  222. package/lib/typescript/module/initSDK.d.ts +18 -6
  223. package/lib/typescript/module/initUserAuth.d.ts +29 -0
  224. package/lib/typescript/module/logger/crashlytics.d.ts +31 -0
  225. package/lib/typescript/module/logger/index.d.ts +17 -0
  226. package/lib/typescript/module/push/index.d.ts +3 -1
  227. package/lib/typescript/module/push/push.d.ts +1 -1
  228. package/lib/typescript/module/push/status.d.ts +9 -0
  229. package/lib/typescript/module/query/apiBaseQuery.d.ts +55 -0
  230. package/lib/typescript/module/query/createAppApi.d.ts +21 -0
  231. package/lib/typescript/module/query/index.d.ts +9 -0
  232. package/lib/typescript/module/query/listeners.d.ts +11 -0
  233. package/lib/typescript/module/query/paging.d.ts +42 -0
  234. package/lib/typescript/module/query/tags.d.ts +31 -0
  235. package/lib/typescript/module/redux/errorToastMiddleware.d.ts +51 -0
  236. package/lib/typescript/module/redux/index.d.ts +6 -0
  237. package/lib/typescript/module/redux/rootReducer.d.ts +19 -0
  238. package/lib/typescript/module/redux/serializableCheck.d.ts +14 -0
  239. package/lib/typescript/module/secureScreen/index.d.ts +25 -0
  240. package/lib/typescript/module/versionCheck/buildNumber.d.ts +14 -0
  241. package/lib/typescript/module/versionCheck/index.d.ts +28 -17
  242. package/package.json +52 -5
@@ -1,311 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.startOfDay = exports.isSameDay = exports.isDateBefore = exports.isDateAfter = exports.formatTimeInZone = exports.formatTimeInWindowsZone = exports.formatTime12h = exports.formatDatePattern = exports.formatDateISO = exports.formatDateDDMMMYYYY = exports.diffMs = exports.addDays = void 0;
7
- var _intlCache = require("./intlCache.js");
8
- var _windowsToIanaTable = require("./windowsToIanaTable.js");
9
- const toDate = value => {
10
- if (value instanceof Date) {
11
- return Number.isNaN(value.getTime()) ? null : value;
12
- }
13
- const d = new Date(value);
14
- return Number.isNaN(d.getTime()) ? null : d;
15
- };
16
- const PAD = n => n < 10 ? `0${n}` : `${n}`;
17
-
18
- /**
19
- * Whether two values fall on the same calendar day in the device's local
20
- * timezone. Invalid input on either side returns false rather than throwing.
21
- */
22
- const isSameDay = (a, b) => {
23
- const da = toDate(a);
24
- const db = toDate(b);
25
- if (!da || !db) {
26
- return false;
27
- }
28
- return da.getFullYear() === db.getFullYear() && da.getMonth() === db.getMonth() && da.getDate() === db.getDate();
29
- };
30
-
31
- /** `a` is strictly before `b`. Invalid input on either side returns false. */
32
- exports.isSameDay = isSameDay;
33
- const isDateBefore = (a, b) => {
34
- const da = toDate(a);
35
- const db = toDate(b);
36
- return da !== null && db !== null && da.getTime() < db.getTime();
37
- };
38
-
39
- /** `a` is strictly after `b`. Invalid input on either side returns false. */
40
- exports.isDateBefore = isDateBefore;
41
- const isDateAfter = (a, b) => {
42
- const da = toDate(a);
43
- const db = toDate(b);
44
- return da !== null && db !== null && da.getTime() > db.getTime();
45
- };
46
-
47
- /**
48
- * `a - b` in milliseconds, matching dayjs's `a.diff(b)` sign convention
49
- * (positive when `a` is later than `b`). Returns `NaN` if either side fails
50
- * to parse, the same way subtracting two invalid dayjs objects would.
51
- */
52
- exports.isDateAfter = isDateAfter;
53
- const diffMs = (a, b) => {
54
- const da = toDate(a);
55
- const db = toDate(b);
56
- if (!da || !db) {
57
- return Number.NaN;
58
- }
59
- return da.getTime() - db.getTime();
60
- };
61
-
62
- /**
63
- * Midnight of the given date, in the device's local timezone. Returns null
64
- * for unparseable input.
65
- */
66
- exports.diffMs = diffMs;
67
- const startOfDay = value => {
68
- const d = toDate(value);
69
- if (!d) {
70
- return null;
71
- }
72
- const start = new Date(d);
73
- start.setHours(0, 0, 0, 0);
74
- return start;
75
- };
76
-
77
- /**
78
- * Adds (or, with a negative count, subtracts) whole calendar days in the
79
- * device's local timezone. Returns null for unparseable input.
80
- */
81
- exports.startOfDay = startOfDay;
82
- const addDays = (value, count) => {
83
- const d = toDate(value);
84
- if (!d) {
85
- return null;
86
- }
87
- const next = new Date(d);
88
- next.setDate(next.getDate() + count);
89
- return next;
90
- };
91
- exports.addDays = addDays;
92
- const WEEKDAY_SHORT = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
93
- const WEEKDAY_LONG = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
94
- const MONTH_LONG = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
95
-
96
- // Longest-first so 'YYYY' is tried before 'YY', 'DD' before 'D', etc. — a
97
- // greedy single pass over the pattern, not a regex, so a literal character
98
- // (a comma, a colon, a digit) can never accidentally match a token.
99
- const TOKENS = ['YYYY', 'YY', 'MMMM', 'MMM', 'MM', 'M', 'DD', 'D', 'dddd', 'ddd', 'HH', 'H', 'hh', 'h', 'mm', 'm', 'ss', 's', 'A', 'a'];
100
- const tokenizePattern = pattern => {
101
- const result = [];
102
- let i = 0;
103
- outer: while (i < pattern.length) {
104
- for (const token of TOKENS) {
105
- if (pattern.startsWith(token, i)) {
106
- result.push(token);
107
- i += token.length;
108
- continue outer;
109
- }
110
- }
111
- result.push(pattern[i]);
112
- i += 1;
113
- }
114
- return result;
115
- };
116
-
117
- /**
118
- * Small dayjs/moment-style token formatter — YYYY/YY, MMMM/MMM/MM/M,
119
- * DD/D, dddd/ddd, HH/H (24h), hh/h (12h), mm/m, ss/s, A/a (upper/lower AM/PM).
120
- * Everything else in the pattern (spaces, commas, colons) passes through
121
- * literally. Hand-rolled rather than a dependency because this fleet's date
122
- * formatting needs are a small, closed token set, not general i18n — for
123
- * genuinely locale-aware output, `formatDate`/`formatTime` (Intl-backed, in
124
- * `./date`) are the ones to reach for; this is for matching an exact
125
- * existing pattern (a legacy display string, an API's expected shape).
126
- *
127
- * `utc: true` reads every field from the UTC calendar/clock instead of the
128
- * device's local one — see `formatDateDDMMMYYYY`'s note on why this isn't
129
- * cosmetic.
130
- */
131
- const formatDatePattern = (value, pattern, options) => {
132
- const d = toDate(value);
133
- if (!d) {
134
- return '';
135
- }
136
- const utc = options?.utc ?? false;
137
- const year = utc ? d.getUTCFullYear() : d.getFullYear();
138
- const month = utc ? d.getUTCMonth() : d.getMonth();
139
- const day = utc ? d.getUTCDate() : d.getDate();
140
- const weekday = utc ? d.getUTCDay() : d.getDay();
141
- const hours24 = utc ? d.getUTCHours() : d.getHours();
142
- const minutes = utc ? d.getUTCMinutes() : d.getMinutes();
143
- const seconds = utc ? d.getUTCSeconds() : d.getSeconds();
144
- const {
145
- hour12,
146
- period
147
- } = to12Hour(hours24);
148
- return tokenizePattern(pattern).map(t => {
149
- switch (t) {
150
- case 'YYYY':
151
- return String(year);
152
- case 'YY':
153
- return String(year).slice(-2);
154
- case 'MMMM':
155
- return MONTH_LONG[month];
156
- case 'MMM':
157
- return MONTH_SHORT[month];
158
- case 'MM':
159
- return PAD(month + 1);
160
- case 'M':
161
- return String(month + 1);
162
- case 'DD':
163
- return PAD(day);
164
- case 'D':
165
- return String(day);
166
- case 'dddd':
167
- return WEEKDAY_LONG[weekday];
168
- case 'ddd':
169
- return WEEKDAY_SHORT[weekday];
170
- case 'HH':
171
- return PAD(hours24);
172
- case 'H':
173
- return String(hours24);
174
- case 'hh':
175
- return PAD(hour12);
176
- case 'h':
177
- return String(hour12);
178
- case 'mm':
179
- return PAD(minutes);
180
- case 'm':
181
- return String(minutes);
182
- case 'ss':
183
- return PAD(seconds);
184
- case 's':
185
- return String(seconds);
186
- case 'A':
187
- return period;
188
- case 'a':
189
- return period.toLowerCase();
190
- default:
191
- return t;
192
- }
193
- }).join('');
194
- };
195
- exports.formatDatePattern = formatDatePattern;
196
- const MONTH_SHORT = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
197
-
198
- /**
199
- * `DD MMM, YYYY` — zero-padded day, short month, comma, year (e.g.
200
- * `05 Sep, 2025`). A specific legacy pattern some apps already display,
201
- * not the fleet's own product convention: `formatDate` (the Intl `style`-based
202
- * formatter in `./date`) is the one to reach for in new code. This exists so
203
- * an app already showing this exact pattern can move off a date library
204
- * without a visible change.
205
- *
206
- * `utc: true` reads the calendar day from the UTC fields instead of the
207
- * device's local ones — matching `dayjs.utc(x).format(...)`, not
208
- * `dayjs(x).format(...)`. The two disagree whenever local time has crossed a
209
- * day boundary UTC hasn't yet (or vice versa), so this is not a cosmetic
210
- * option; pass it only to match a call site that was genuinely UTC-explicit.
211
- */
212
- const formatDateDDMMMYYYY = (value, options) => {
213
- const d = toDate(value);
214
- if (!d) {
215
- return '';
216
- }
217
- if (options?.utc) {
218
- return `${PAD(d.getUTCDate())} ${MONTH_SHORT[d.getUTCMonth()]}, ${d.getUTCFullYear()}`;
219
- }
220
- return `${PAD(d.getDate())} ${MONTH_SHORT[d.getMonth()]}, ${d.getFullYear()}`;
221
- };
222
-
223
- /** `YYYY-MM-DD`, in the device's local timezone. */
224
- exports.formatDateDDMMMYYYY = formatDateDDMMMYYYY;
225
- const formatDateISO = value => {
226
- const d = toDate(value);
227
- if (!d) {
228
- return '';
229
- }
230
- return `${d.getFullYear()}-${PAD(d.getMonth() + 1)}-${PAD(d.getDate())}`;
231
- };
232
- exports.formatDateISO = formatDateISO;
233
- const to12Hour = hours => {
234
- const period = hours >= 12 ? 'PM' : 'AM';
235
- const hour12 = hours % 12 || 12;
236
- return {
237
- hour12,
238
- period
239
- };
240
- };
241
-
242
- /**
243
- * `hh:mm A` in the device's local timezone — zero-padded 12-hour clock,
244
- * uppercase AM/PM (e.g. `09:30 PM`).
245
- */
246
- const formatTime12h = value => {
247
- const d = toDate(value);
248
- if (!d) {
249
- return '';
250
- }
251
- const {
252
- hour12,
253
- period
254
- } = to12Hour(d.getHours());
255
- return `${PAD(hour12)}:${PAD(d.getMinutes())} ${period}`;
256
- };
257
- exports.formatTime12h = formatTime12h;
258
- const hasIntl = () => typeof Intl !== 'undefined' && typeof Intl.DateTimeFormat === 'function';
259
-
260
- /**
261
- * `hh:mm a` (zero-padded 12-hour, lowercase am/pm) of the given instant as
262
- * seen in `ianaTimeZone` (e.g. `Asia/Kolkata`) — not the device's own
263
- * timezone. Reads the hour/minute/period through `Intl.DateTimeFormat`'s
264
- * `formatToParts` rather than its assembled string, because the assembled
265
- * string's spacing before AM/PM varies by JS engine (some insert a narrow
266
- * no-break space, U+202F, instead of a plain space) and isn't reliably
267
- * zero-padded either. Throws if `ianaTimeZone` isn't a timezone Intl
268
- * recognises — the same failure mode as handing dayjs.tz() a bad zone name.
269
- */
270
- const formatTimeInZone = (value, ianaTimeZone) => {
271
- const d = toDate(value);
272
- if (!d) {
273
- return '';
274
- }
275
- if (!hasIntl()) {
276
- // No Intl.DateTimeFormat means no reliable IANA timezone database to
277
- // convert against; the device-local fallback below is the least-wrong
278
- // answer available, not a genuine timezone conversion.
279
- return formatTime12h(d);
280
- }
281
- const parts = (0, _intlCache.dateTimeFormat)('en-US', {
282
- timeZone: ianaTimeZone,
283
- hour: 'numeric',
284
- minute: '2-digit',
285
- hour12: true
286
- }).formatToParts(d);
287
- const get = type => parts.find(p => p.type === type)?.value ?? '';
288
- const hour = Number.parseInt(get('hour'), 10);
289
- const minute = get('minute');
290
- const period = get('dayPeriod').toLowerCase();
291
- return `${PAD(hour)}:${minute} ${period}`;
292
- };
293
-
294
- /**
295
- * Same as {@link formatTimeInZone}, but for a .NET-style Windows timezone ID
296
- * (e.g. `"India Standard Time"`) rather than an IANA one. .NET's own
297
- * `TimeZoneInfo` API only knows Windows IDs, so a backend built on it hands
298
- * these to clients directly — `Intl`, by contrast, only recognises IANA
299
- * names, so the ID has to be translated before it can be used here. Throws
300
- * if `windowsTimeZoneId` has no known IANA mapping.
301
- */
302
- exports.formatTimeInZone = formatTimeInZone;
303
- const formatTimeInWindowsZone = (value, windowsTimeZoneId) => {
304
- const ianaTimeZone = _windowsToIanaTable.WINDOWS_TO_IANA[windowsTimeZoneId];
305
- if (!ianaTimeZone) {
306
- throw new Error(`Mapping for Windows time zone '${windowsTimeZoneId}' not found.`);
307
- }
308
- return formatTimeInZone(value, ianaTimeZone);
309
- };
310
- exports.formatTimeInWindowsZone = formatTimeInWindowsZone;
311
- //# sourceMappingURL=dateMath.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.startOfDay=exports.isSameDay=exports.isDateBefore=exports.isDateAfter=exports.formatTimeInZone=exports.formatTimeInWindowsZone=exports.formatTime12h=exports.formatDatePattern=exports.formatDateISO=exports.formatDateDDMMMYYYY=exports.diffMs=exports.addDays=void 0;var _intlCache=require("./intlCache.js"),_windowsToIanaTable=require("./windowsToIanaTable.js");const toDate=t=>{if(t instanceof Date)return Number.isNaN(t.getTime())?null:t;const e=new Date(t);return Number.isNaN(e.getTime())?null:e},PAD=t=>t<10?`0${t}`:`${t}`,isSameDay=(t,e)=>{const r=toDate(t),a=toDate(e);return!(!r||!a)&&(r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth()&&r.getDate()===a.getDate())};exports.isSameDay=isSameDay;const isDateBefore=(t,e)=>{const r=toDate(t),a=toDate(e);return null!==r&&null!==a&&r.getTime()<a.getTime()};exports.isDateBefore=isDateBefore;const isDateAfter=(t,e)=>{const r=toDate(t),a=toDate(e);return null!==r&&null!==a&&r.getTime()>a.getTime()};exports.isDateAfter=isDateAfter;const diffMs=(t,e)=>{const r=toDate(t),a=toDate(e);return r&&a?r.getTime()-a.getTime():Number.NaN};exports.diffMs=diffMs;const startOfDay=t=>{const e=toDate(t);if(!e)return null;const r=new Date(e);return r.setHours(0,0,0,0),r};exports.startOfDay=startOfDay;const addDays=(t,e)=>{if(null==t||""===t||!Number.isFinite(e))return null;const r=toDate(t);if(!r)return null;const a=new Date(r);return a.setDate(a.getDate()+e),a};exports.addDays=addDays;const WEEKDAY_SHORT=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],WEEKDAY_LONG=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],MONTH_LONG=["January","February","March","April","May","June","July","August","September","October","November","December"],TOKENS=["YYYY","YY","MMMM","MMM","MM","M","DD","D","dddd","ddd","HH","H","hh","h","mm","m","ss","s","A","a"],tokenizePattern=t=>{const e=[];let r=0;t:for(;r<t.length;){for(const a of TOKENS)if(t.startsWith(a,r)){e.push(a),r+=a.length;continue t}e.push(t[r]),r+=1}return e},formatDatePattern=(t,e,r)=>{const a=toDate(t);if(!a)return"";const n=r?.utc??!1,o=n?a.getUTCFullYear():a.getFullYear(),s=n?a.getUTCMonth():a.getMonth(),u=n?a.getUTCDate():a.getDate(),i=n?a.getUTCDay():a.getDay(),D=n?a.getUTCHours():a.getHours(),m=n?a.getUTCMinutes():a.getMinutes(),c=n?a.getUTCSeconds():a.getSeconds(),{hour12:f,period:M}=to12Hour(D);return tokenizePattern(e).map(t=>{switch(t){case"YYYY":return String(o);case"YY":return String(o).slice(-2);case"MMMM":return MONTH_LONG[s];case"MMM":return MONTH_SHORT[s];case"MM":return PAD(s+1);case"M":return String(s+1);case"DD":return PAD(u);case"D":return String(u);case"dddd":return WEEKDAY_LONG[i];case"ddd":return WEEKDAY_SHORT[i];case"HH":return PAD(D);case"H":return String(D);case"hh":return PAD(f);case"h":return String(f);case"mm":return PAD(m);case"m":return String(m);case"ss":return PAD(c);case"s":return String(c);case"A":return M;case"a":return M.toLowerCase();default:return t}}).join("")};exports.formatDatePattern=formatDatePattern;const MONTH_SHORT=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],formatDateDDMMMYYYY=(t,e)=>{const r=toDate(t);return r?e?.utc?`${PAD(r.getUTCDate())} ${MONTH_SHORT[r.getUTCMonth()]}, ${r.getUTCFullYear()}`:`${PAD(r.getDate())} ${MONTH_SHORT[r.getMonth()]}, ${r.getFullYear()}`:""};exports.formatDateDDMMMYYYY=formatDateDDMMMYYYY;const formatDateISO=t=>{const e=toDate(t);return e?`${e.getFullYear()}-${PAD(e.getMonth()+1)}-${PAD(e.getDate())}`:""};exports.formatDateISO=formatDateISO;const to12Hour=t=>({hour12:t%12||12,period:t>=12?"PM":"AM"}),formatTime12h=t=>{const e=toDate(t);if(!e)return"";const{hour12:r,period:a}=to12Hour(e.getHours());return`${PAD(r)}:${PAD(e.getMinutes())} ${a}`};exports.formatTime12h=formatTime12h;const hasIntl=()=>"undefined"!=typeof Intl&&"function"==typeof Intl.DateTimeFormat,formatTimeInZone=(t,e)=>{const r=toDate(t);if(!r)return"";if(!hasIntl())return formatTime12h(r);const a=(0,_intlCache.dateTimeFormat)("en-US",{timeZone:e,hour:"numeric",minute:"2-digit",hour12:!0}).formatToParts(r),get=t=>a.find(e=>e.type===t)?.value??"",n=Number.parseInt(get("hour"),10),o=get("minute"),s=get("dayPeriod").toLowerCase();return`${PAD(n)}:${o} ${s}`};exports.formatTimeInZone=formatTimeInZone;const formatTimeInWindowsZone=(t,e)=>{const r=_windowsToIanaTable.WINDOWS_TO_IANA[e];if(!r)throw new Error(`Mapping for Windows time zone '${e}' not found.`);return formatTimeInZone(t,r)};exports.formatTimeInWindowsZone=formatTimeInWindowsZone;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isFormatterConfigured=exports.groupingForLocale=exports.getFormatterConfig=exports.configuredLocale=exports.configureFormatters=void 0;const DEFAULTS={zone:"IST",locale:"en-IN",empty:"-"};let current={...DEFAULTS},configured=new Set;const configureFormatters=e=>{if(void 0===e)return current={...DEFAULTS},void(configured=new Set);for(const o of Object.keys(e)){const r=e[o];void 0!==r&&(current={...current,[o]:r},configured.add(o))}};exports.configureFormatters=configureFormatters;const getFormatterConfig=()=>({...current});exports.getFormatterConfig=getFormatterConfig;const isFormatterConfigured=e=>configured.has(e);exports.isFormatterConfigured=isFormatterConfigured;const configuredLocale=()=>configured.has("locale")?current.locale:null;exports.configuredLocale=configuredLocale;const groupingForLocale=e=>/-IN(?:-|$)/i.test(e)?"indian":"international";exports.groupingForLocale=groupingForLocale;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.formatTime=exports.formatRelative=exports.formatPercent=exports.formatNumber=exports.formatMinor=exports.formatDateTime=exports.formatDate=void 0;var _formatConfig=require("./formatConfig.js"),_intlCache=require("./intlCache.js");const MONTHS=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],IST_OFFSET_MINUTES=330,IST_NAMES=["IST","Asia/Kolkata","Asia/Calcutta"],DATE_ONLY=/^\d{4}-\d{2}-\d{2}$/,pad2=t=>t<10?`0${t}`:`${t}`,emptyOf=t=>t??(0,_formatConfig.getFormatterConfig)().empty,toInstant=t=>{if(null==t||""===t)return null;const e=t instanceof Date?t:new Date("string"==typeof t?t.trim():t);return Number.isNaN(e.getTime())?null:e},isDateOnly=t=>"string"==typeof t&&DATE_ONLY.test(t.trim()),gmtLabel=t=>{if(0===t)return"GMT";const e=t>0?"+":"-",n=Math.abs(t),o=n%60;return`GMT${e}${Math.floor(n/60)}${0===o?"":`:${pad2(o)}`}`},shifted=(t,e,n)=>{const o=new Date(t.getTime()+6e4*e);return{year:o.getUTCFullYear(),month:o.getUTCMonth(),day:o.getUTCDate(),hour:o.getUTCHours(),minute:o.getUTCMinutes(),label:n}},inIanaZone=(t,e)=>{const n=(0,_intlCache.dateTimeFormat)("en-US",{timeZone:e,year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",hour12:!1}).formatToParts(t),read=t=>Number.parseInt(n.find(e=>e.type===t)?.value??"",10),o=read("year"),r=read("month")-1,i=read("day"),a=read("hour")%24,m=read("minute"),l=Date.UTC(o,r,i,a,m),u=Math.round((l-6e4*Math.floor(t.getTime()/6e4))/6e4);return{year:o,month:r,day:i,hour:a,minute:m,label:gmtLabel(u)}},wallClock=(t,e)=>IST_NAMES.includes(e)?shifted(t,330,"IST"):"UTC"===e?shifted(t,0,"UTC"):"viewer"===e?{year:t.getFullYear(),month:t.getMonth(),day:t.getDate(),hour:t.getHours(),minute:t.getMinutes(),label:gmtLabel(-t.getTimezoneOffset())}:inIanaZone(t,e),hourCycleOf=t=>t.hourCycle??12,dayMonthYear=t=>`${pad2(t.day)}-${MONTHS[t.month]}-${t.year}`,clockTime=(t,e)=>24===e?`${pad2(t.hour)}:${pad2(t.minute)}`:`${t.hour%12||12}:${pad2(t.minute)} ${t.hour<12?"AM":"PM"}`,labelled=(t,e)=>e??!IST_NAMES.includes(t),withLabel=(t,e,n,o)=>labelled(n,o)?`${t} ${e.label}`:t,intlZone=t=>{if("viewer"!==t)return IST_NAMES.includes(t)?"Asia/Kolkata":t},localeDayMonthYear=(t,e,n)=>{const o=(0,_intlCache.dateTimeFormat)(e,{day:"2-digit",month:"short",year:"numeric",timeZone:n}).formatToParts(t),part=t=>o.find(e=>e.type===t)?.value??"";return`${part("day")}-${part("month").replace(".","")}-${part("year")}`},localeClock=(t,e,n,o)=>(0,_intlCache.dateTimeFormat)(e,{hour:"2-digit",minute:"2-digit",timeZone:intlZone(n),timeZoneName:labelled(n,o.zoneLabel)?"short":void 0,hourCycle:void 0===o.hourCycle?void 0:24===o.hourCycle?"h23":"h12"}).format(t),formatDate=(t,e={})=>{const n=toInstant(t);if(!n)return emptyOf(e.empty);const o=isDateOnly(t)?"UTC":e.zone??(0,_formatConfig.getFormatterConfig)().zone,r=(0,_formatConfig.configuredLocale)();return r?localeDayMonthYear(n,r,intlZone(o)):dayMonthYear(wallClock(n,o))};exports.formatDate=formatDate;const formatTime=(t,e={})=>{const n=toInstant(t);if(!n)return emptyOf(e.empty);const o=e.zone??(0,_formatConfig.getFormatterConfig)().zone,r=(0,_formatConfig.configuredLocale)();if(r)return localeClock(n,r,o,e);const i=wallClock(n,o);return withLabel(clockTime(i,hourCycleOf(e)),i,o,e.zoneLabel)};exports.formatTime=formatTime;const formatDateTime=(t,e={})=>{const n=toInstant(t);if(!n)return emptyOf(e.empty);const o=e.zone??(0,_formatConfig.getFormatterConfig)().zone,r=(0,_formatConfig.configuredLocale)();if(r)return`${localeDayMonthYear(n,r,intlZone(o))}, ${localeClock(n,r,o,e)}`;const i=wallClock(n,o);return withLabel(`${dayMonthYear(i)}, ${clockTime(i,hourCycleOf(e))}`,i,o,e.zoneLabel)};exports.formatDateTime=formatDateTime;const SECOND=1e3,MINUTE=6e4,HOUR=36e5,DAY=24*HOUR,WEEK=7*DAY,MONTH=30*DAY,YEAR=365*DAY,INTL_UNITS=[["year",YEAR],["month",MONTH],["day",DAY],["hour",HOUR],["minute",6e4]],formatRelative=(t,e={})=>{const n=toInstant(t),o=toInstant(e.now??Date.now());if(!n||!o)return emptyOf(e.empty);const r=n.getTime()-o.getTime(),i=Math.abs(r),a=Intl.RelativeTimeFormat,m=(0,_formatConfig.configuredLocale)();if((null!==m||!0===e.intl)&&"function"==typeof a){const t=(0,_intlCache.relativeTimeFormat)(a,m??(0,_formatConfig.getFormatterConfig)().locale),[e,n]=INTL_UNITS.find(([,t])=>i>=t)??["second",1e3];return t.format(Math.round(r/n),e)}if(i<6e4)return"just now";const[l,u]=i<HOUR?["minute",6e4]:i<DAY?["hour",HOUR]:i<WEEK?["day",DAY]:i<MONTH?["week",WEEK]:i<YEAR?["month",MONTH]:["year",YEAR],c=Math.floor(i/u),s=`${c} ${l}${1===c?"":"s"}`;return r<0?`${s} ago`:`in ${s}`};exports.formatRelative=formatRelative;const toNumber=t=>{if(null==t)return null;if("string"==typeof t&&""===t.trim())return null;const e="number"==typeof t?t:Number(t);return Number.isFinite(e)?e:null},clampDigits=t=>Math.min(20,Math.max(0,Math.trunc(t))),shiftDecimal=(t,e)=>/e/i.test(String(t))?t*10**e:Number(`${t}e${e}`),groupInteger=(t,e)=>{if("none"===e||t.length<=3)return t;if("international"===e)return t.replace(/\B(?=(\d{3})+(?!\d))/g,",");return`${t.slice(0,-3).replace(/\B(?=(\d{2})+(?!\d))/g,",")},${t.slice(-3)}`},hasIntlNumber=()=>"undefined"!=typeof Intl&&"function"==typeof Intl.NumberFormat,plainDigits=(t,e)=>{if(hasIntlNumber())return(0,_intlCache.numberFormat)("en-US",{useGrouping:!1,minimumFractionDigits:0,maximumFractionDigits:e}).format(t);const n=Math.min(e,15);return shiftDecimal(Math.round(shiftDecimal(t,n)),-n).toFixed(n)},decimalText=(t,e,n,o)=>{const r=Math.max(clampDigits(n),clampDigits(e)),i=clampDigits(e),a=plainDigits(Math.abs(t),r),[m="0",l=""]=a.split(".");let u=l.padEnd(i,"0");for(;u.length>i&&u.endsWith("0");)u=u.slice(0,-1);const c=groupInteger(m,o)+(u?`.${u}`:"");return t<0&&/[1-9]/.test(a)?`-${c}`:c},HOUSE_NUMBER_KEYS=new Set(["grouping","minimumFractionDigits","maximumFractionDigits","locale","empty","scale"]),intlNumberOptions=t=>{if(!Object.entries(t).some(([t,e])=>void 0!==e&&!HOUSE_NUMBER_KEYS.has(t)))return null;const{grouping:e,locale:n,empty:o,scale:r,...i}=t;return"none"===e&&void 0===i.useGrouping?{...i,useGrouping:!1}:i},localeOf=t=>t.locale??(0,_formatConfig.getFormatterConfig)().locale,intlTextLocale=t=>{const e=(0,_formatConfig.configuredLocale)();return null===e||"indian"===t.grouping||"international"===t.grouping?null:t.locale??e},fractionDigits=(t,e)=>{const n=clampDigits(t);return{minimumFractionDigits:n,maximumFractionDigits:Math.max(n,clampDigits(e))}},groupingOption=t=>"none"===t?{useGrouping:!1}:{},formatNumber=(t,e={})=>{const n=toNumber(t);if(null===n)return emptyOf(e.empty);const o=intlNumberOptions(e);if(o)return(0,_intlCache.numberFormat)(localeOf(e),o).format(n);const r=intlTextLocale(e);return r?(0,_intlCache.numberFormat)(r,{...fractionDigits(e.minimumFractionDigits??0,e.maximumFractionDigits??3),...groupingOption(e.grouping)}).format(n):decimalText(n,e.minimumFractionDigits??0,e.maximumFractionDigits??3,e.grouping??(0,_formatConfig.groupingForLocale)(localeOf(e)))};exports.formatNumber=formatNumber;const formatPercent=(t,e={})=>{const n=toNumber(t);if(null===n)return emptyOf(e.empty);const o=intlNumberOptions(e);if(o){const t="percent"===e.scale?shiftDecimal(n,-2):n;return(0,_intlCache.numberFormat)(localeOf(e),{style:"percent",...o}).format(t)}const r=intlTextLocale(e);if(r){const t="percent"===e.scale?shiftDecimal(n,-2):n;return(0,_intlCache.numberFormat)(r,{style:"percent",...fractionDigits(e.minimumFractionDigits??0,e.maximumFractionDigits??e.minimumFractionDigits??0),...groupingOption(e.grouping)}).format(t)}const i="percent"===e.scale?n:shiftDecimal(n,2);return`${decimalText(i,e.minimumFractionDigits??0,e.maximumFractionDigits??e.minimumFractionDigits??0,e.grouping??(0,_formatConfig.groupingForLocale)(localeOf(e)))}%`};exports.formatPercent=formatPercent;const SYMBOLS={INR:"₹",USD:"$",EUR:"€",GBP:"£"},MINOR_DIGITS={JPY:0,KRW:0,VND:0,BHD:3,JOD:3,KWD:3,OMR:3,TND:3},formatMinor=(t,e={})=>{const n=toNumber(t);if(null===n)return emptyOf(e.empty);const o=(e.currency??"INR").toUpperCase(),r=MINOR_DIGITS[o]??2,i=Math.round(Math.abs(n)),a=String(i).padStart(r+1,"0"),m=a.slice(0,a.length-r);let l=a.slice(a.length-r);e.dropZeroDecimals&&/^0*$/.test(l)&&(l="");const u=intlTextLocale({grouping:e.grouping});if(u)try{const t=Number(`${n<0&&0!==i?"-":""}${m}.${a.slice(a.length-r)||"0"}`);return(0,_intlCache.numberFormat)(u,{...!1===e.symbol?{}:{style:"currency",currency:o},...fractionDigits(l?r:0,r),...groupingOption(e.grouping)}).format(t)}catch{}const c=e.grouping??("INR"===o?"indian":"international"),s=groupInteger(m,c)+(l?`.${l}`:""),f=n<0&&0!==i?"-":"";if(!1===e.symbol)return`${f}${s}`;const g=SYMBOLS[o];return g?`${f}${g}${s}`:`${f}${o} ${s}`};exports.formatMinor=formatMinor;
@@ -1,246 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "AsYouType", {
7
- enumerable: true,
8
- get: function () {
9
- return _phone.AsYouType;
10
- }
11
- });
12
- Object.defineProperty(exports, "addDays", {
13
- enumerable: true,
14
- get: function () {
15
- return _dateMath.addDays;
16
- }
17
- });
18
- Object.defineProperty(exports, "clampNationalNumber", {
19
- enumerable: true,
20
- get: function () {
21
- return _phone.clampNationalNumber;
22
- }
23
- });
24
- Object.defineProperty(exports, "countryFlagEmoji", {
25
- enumerable: true,
26
- get: function () {
27
- return _phone.countryFlagEmoji;
28
- }
29
- });
30
- Object.defineProperty(exports, "detectPhoneCountry", {
31
- enumerable: true,
32
- get: function () {
33
- return _phone.detectPhoneCountry;
34
- }
35
- });
36
- Object.defineProperty(exports, "diffMs", {
37
- enumerable: true,
38
- get: function () {
39
- return _dateMath.diffMs;
40
- }
41
- });
42
- Object.defineProperty(exports, "formatCompactNumber", {
43
- enumerable: true,
44
- get: function () {
45
- return _number.formatCompactNumber;
46
- }
47
- });
48
- Object.defineProperty(exports, "formatCurrency", {
49
- enumerable: true,
50
- get: function () {
51
- return _currency.formatCurrency;
52
- }
53
- });
54
- Object.defineProperty(exports, "formatDate", {
55
- enumerable: true,
56
- get: function () {
57
- return _date.formatDate;
58
- }
59
- });
60
- Object.defineProperty(exports, "formatDateDDMMMYYYY", {
61
- enumerable: true,
62
- get: function () {
63
- return _dateMath.formatDateDDMMMYYYY;
64
- }
65
- });
66
- Object.defineProperty(exports, "formatDateISO", {
67
- enumerable: true,
68
- get: function () {
69
- return _dateMath.formatDateISO;
70
- }
71
- });
72
- Object.defineProperty(exports, "formatDatePattern", {
73
- enumerable: true,
74
- get: function () {
75
- return _dateMath.formatDatePattern;
76
- }
77
- });
78
- Object.defineProperty(exports, "formatDateTime", {
79
- enumerable: true,
80
- get: function () {
81
- return _date.formatDateTime;
82
- }
83
- });
84
- Object.defineProperty(exports, "formatNumber", {
85
- enumerable: true,
86
- get: function () {
87
- return _number.formatNumber;
88
- }
89
- });
90
- Object.defineProperty(exports, "formatPercent", {
91
- enumerable: true,
92
- get: function () {
93
- return _number.formatPercent;
94
- }
95
- });
96
- Object.defineProperty(exports, "formatPhone", {
97
- enumerable: true,
98
- get: function () {
99
- return _phone.formatPhone;
100
- }
101
- });
102
- Object.defineProperty(exports, "formatPhoneAsTyped", {
103
- enumerable: true,
104
- get: function () {
105
- return _phone.formatPhoneAsTyped;
106
- }
107
- });
108
- Object.defineProperty(exports, "formatRelativeTime", {
109
- enumerable: true,
110
- get: function () {
111
- return _date.formatRelativeTime;
112
- }
113
- });
114
- Object.defineProperty(exports, "formatTime", {
115
- enumerable: true,
116
- get: function () {
117
- return _date.formatTime;
118
- }
119
- });
120
- Object.defineProperty(exports, "formatTime12h", {
121
- enumerable: true,
122
- get: function () {
123
- return _dateMath.formatTime12h;
124
- }
125
- });
126
- Object.defineProperty(exports, "formatTimeInWindowsZone", {
127
- enumerable: true,
128
- get: function () {
129
- return _dateMath.formatTimeInWindowsZone;
130
- }
131
- });
132
- Object.defineProperty(exports, "formatTimeInZone", {
133
- enumerable: true,
134
- get: function () {
135
- return _dateMath.formatTimeInZone;
136
- }
137
- });
138
- Object.defineProperty(exports, "getCountries", {
139
- enumerable: true,
140
- get: function () {
141
- return _phone.getCountries;
142
- }
143
- });
144
- Object.defineProperty(exports, "getCountryCallingCode", {
145
- enumerable: true,
146
- get: function () {
147
- return _phone.getCountryCallingCode;
148
- }
149
- });
150
- Object.defineProperty(exports, "getInitials", {
151
- enumerable: true,
152
- get: function () {
153
- return _initials.getInitials;
154
- }
155
- });
156
- Object.defineProperty(exports, "getPhoneCountries", {
157
- enumerable: true,
158
- get: function () {
159
- return _phone.getPhoneCountries;
160
- }
161
- });
162
- Object.defineProperty(exports, "isDateAfter", {
163
- enumerable: true,
164
- get: function () {
165
- return _dateMath.isDateAfter;
166
- }
167
- });
168
- Object.defineProperty(exports, "isDateBefore", {
169
- enumerable: true,
170
- get: function () {
171
- return _dateMath.isDateBefore;
172
- }
173
- });
174
- Object.defineProperty(exports, "isSameDay", {
175
- enumerable: true,
176
- get: function () {
177
- return _dateMath.isSameDay;
178
- }
179
- });
180
- Object.defineProperty(exports, "isSupportedCountry", {
181
- enumerable: true,
182
- get: function () {
183
- return _phone.isSupportedCountry;
184
- }
185
- });
186
- Object.defineProperty(exports, "isValidNationalNumber", {
187
- enumerable: true,
188
- get: function () {
189
- return _phone.isValidNationalNumber;
190
- }
191
- });
192
- Object.defineProperty(exports, "isValidPhoneNumber", {
193
- enumerable: true,
194
- get: function () {
195
- return _phone.isValidPhoneNumber;
196
- }
197
- });
198
- Object.defineProperty(exports, "maxNationalNumberLength", {
199
- enumerable: true,
200
- get: function () {
201
- return _phone.maxNationalNumberLength;
202
- }
203
- });
204
- Object.defineProperty(exports, "normalizePhone", {
205
- enumerable: true,
206
- get: function () {
207
- return _phone.normalizePhone;
208
- }
209
- });
210
- Object.defineProperty(exports, "parsePhoneNumber", {
211
- enumerable: true,
212
- get: function () {
213
- return _phone.parsePhoneNumber;
214
- }
215
- });
216
- Object.defineProperty(exports, "parsePhoneNumberFromString", {
217
- enumerable: true,
218
- get: function () {
219
- return _phone.parsePhoneNumberFromString;
220
- }
221
- });
222
- Object.defineProperty(exports, "splitPhoneNumber", {
223
- enumerable: true,
224
- get: function () {
225
- return _phone.splitPhoneNumber;
226
- }
227
- });
228
- Object.defineProperty(exports, "startOfDay", {
229
- enumerable: true,
230
- get: function () {
231
- return _dateMath.startOfDay;
232
- }
233
- });
234
- Object.defineProperty(exports, "validatePhoneNumberLength", {
235
- enumerable: true,
236
- get: function () {
237
- return _phone.validatePhoneNumberLength;
238
- }
239
- });
240
- var _currency = require("./currency.js");
241
- var _date = require("./date.js");
242
- var _dateMath = require("./dateMath.js");
243
- var _initials = require("./initials.js");
244
- var _number = require("./number.js");
245
- var _phone = require("./phone.js");
246
- //# sourceMappingURL=index.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"AsYouType",{enumerable:!0,get:function(){return _phone.AsYouType}}),Object.defineProperty(exports,"addDays",{enumerable:!0,get:function(){return _dateMath.addDays}}),Object.defineProperty(exports,"clampNationalNumber",{enumerable:!0,get:function(){return _phone.clampNationalNumber}}),Object.defineProperty(exports,"configureFormatters",{enumerable:!0,get:function(){return _formatConfig.configureFormatters}}),Object.defineProperty(exports,"countryFlagEmoji",{enumerable:!0,get:function(){return _phone.countryFlagEmoji}}),Object.defineProperty(exports,"detectPhoneCountry",{enumerable:!0,get:function(){return _phone.detectPhoneCountry}}),Object.defineProperty(exports,"diffMs",{enumerable:!0,get:function(){return _dateMath.diffMs}}),Object.defineProperty(exports,"formatCompactNumber",{enumerable:!0,get:function(){return _number.formatCompactNumber}}),Object.defineProperty(exports,"formatCurrency",{enumerable:!0,get:function(){return _currency.formatCurrency}}),Object.defineProperty(exports,"formatDate",{enumerable:!0,get:function(){return _date.formatDate}}),Object.defineProperty(exports,"formatDateDDMMMYYYY",{enumerable:!0,get:function(){return _dateMath.formatDateDDMMMYYYY}}),Object.defineProperty(exports,"formatDateISO",{enumerable:!0,get:function(){return _dateMath.formatDateISO}}),Object.defineProperty(exports,"formatDatePattern",{enumerable:!0,get:function(){return _dateMath.formatDatePattern}}),Object.defineProperty(exports,"formatDateTime",{enumerable:!0,get:function(){return _date.formatDateTime}}),Object.defineProperty(exports,"formatMinor",{enumerable:!0,get:function(){return _house.formatMinor}}),Object.defineProperty(exports,"formatNumber",{enumerable:!0,get:function(){return _number.formatNumber}}),Object.defineProperty(exports,"formatPercent",{enumerable:!0,get:function(){return _number.formatPercent}}),Object.defineProperty(exports,"formatPhone",{enumerable:!0,get:function(){return _phone.formatPhone}}),Object.defineProperty(exports,"formatPhoneAsTyped",{enumerable:!0,get:function(){return _phone.formatPhoneAsTyped}}),Object.defineProperty(exports,"formatRelative",{enumerable:!0,get:function(){return _house.formatRelative}}),Object.defineProperty(exports,"formatRelativeTime",{enumerable:!0,get:function(){return _date.formatRelativeTime}}),Object.defineProperty(exports,"formatTime",{enumerable:!0,get:function(){return _date.formatTime}}),Object.defineProperty(exports,"formatTime12h",{enumerable:!0,get:function(){return _dateMath.formatTime12h}}),Object.defineProperty(exports,"formatTimeInWindowsZone",{enumerable:!0,get:function(){return _dateMath.formatTimeInWindowsZone}}),Object.defineProperty(exports,"formatTimeInZone",{enumerable:!0,get:function(){return _dateMath.formatTimeInZone}}),Object.defineProperty(exports,"getCountries",{enumerable:!0,get:function(){return _phone.getCountries}}),Object.defineProperty(exports,"getCountryCallingCode",{enumerable:!0,get:function(){return _phone.getCountryCallingCode}}),Object.defineProperty(exports,"getFormatterConfig",{enumerable:!0,get:function(){return _formatConfig.getFormatterConfig}}),Object.defineProperty(exports,"getInitials",{enumerable:!0,get:function(){return _initials.getInitials}}),Object.defineProperty(exports,"getPhoneCountries",{enumerable:!0,get:function(){return _phone.getPhoneCountries}}),Object.defineProperty(exports,"isDateAfter",{enumerable:!0,get:function(){return _dateMath.isDateAfter}}),Object.defineProperty(exports,"isDateBefore",{enumerable:!0,get:function(){return _dateMath.isDateBefore}}),Object.defineProperty(exports,"isSameDay",{enumerable:!0,get:function(){return _dateMath.isSameDay}}),Object.defineProperty(exports,"isSupportedCountry",{enumerable:!0,get:function(){return _phone.isSupportedCountry}}),Object.defineProperty(exports,"isValidNationalNumber",{enumerable:!0,get:function(){return _phone.isValidNationalNumber}}),Object.defineProperty(exports,"isValidPhoneNumber",{enumerable:!0,get:function(){return _phone.isValidPhoneNumber}}),Object.defineProperty(exports,"maxNationalNumberLength",{enumerable:!0,get:function(){return _phone.maxNationalNumberLength}}),Object.defineProperty(exports,"normalizePhone",{enumerable:!0,get:function(){return _phone.normalizePhone}}),Object.defineProperty(exports,"parsePhoneNumber",{enumerable:!0,get:function(){return _phone.parsePhoneNumber}}),Object.defineProperty(exports,"parsePhoneNumberFromString",{enumerable:!0,get:function(){return _phone.parsePhoneNumberFromString}}),Object.defineProperty(exports,"splitPhoneNumber",{enumerable:!0,get:function(){return _phone.splitPhoneNumber}}),Object.defineProperty(exports,"startOfDay",{enumerable:!0,get:function(){return _dateMath.startOfDay}}),Object.defineProperty(exports,"validatePhoneNumberLength",{enumerable:!0,get:function(){return _phone.validatePhoneNumberLength}});var _currency=require("./currency.js"),_date=require("./date.js"),_dateMath=require("./dateMath.js"),_formatConfig=require("./formatConfig.js"),_house=require("./house.js"),_initials=require("./initials.js"),_number=require("./number.js"),_phone=require("./phone.js");
@@ -1,32 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getInitials = void 0;
7
- /**
8
- * Returns up to `maxChars` uppercase initials from a name.
9
- *
10
- * @example
11
- * getInitials('Navneet Singh') // 'NS'
12
- * getInitials('mary anne lee', 3) // 'MAL'
13
- * getInitials('navneet') // 'NA'
14
- * getInitials(' ') // ''
15
- */
16
- const getInitials = (name, maxChars = 2) => {
17
- if (!name) {
18
- return '';
19
- }
20
- const trimmed = name.trim();
21
- if (!trimmed) {
22
- return '';
23
- }
24
- const parts = trimmed.split(/\s+/);
25
- if (parts.length === 1) {
26
- const single = parts[0] ?? '';
27
- return single.slice(0, maxChars).toUpperCase();
28
- }
29
- return parts.slice(0, maxChars).map(p => (p[0] ?? '').toUpperCase()).join('');
30
- };
31
- exports.getInitials = getInitials;
32
- //# sourceMappingURL=initials.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getInitials=void 0;const getInitials=(t,e=2)=>{if(!t)return"";const i=t.trim();if(!i)return"";const s=i.split(/\s+/);if(1===s.length){return(s[0]??"").slice(0,e).toUpperCase()}return s.slice(0,e).map(t=>(t[0]??"").toUpperCase()).join("")};exports.getInitials=getInitials;
@@ -1,37 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.relativeTimeFormat = exports.numberFormat = exports.dateTimeFormat = void 0;
7
- /**
8
- * Building an Intl formatter costs far more than using one (and on Hermes for
9
- * Android it goes through ICU over JNI), while list rows and slider frames call
10
- * the formatters many times with the same arguments. Formatters are therefore
11
- * built once per locale and options. The limit only guards against unbounded
12
- * input such as arbitrary time zones; real apps use a handful of keys.
13
- */
14
- const LIMIT = 100;
15
- const cached = (cache, key, create) => {
16
- let formatter = cache.get(key);
17
- if (formatter === undefined) {
18
- formatter = create();
19
- if (cache.size >= LIMIT) {
20
- cache.clear();
21
- }
22
- cache.set(key, formatter);
23
- }
24
- return formatter;
25
- };
26
- const numberFormats = new Map();
27
- const dateTimeFormats = new Map();
28
- const relativeTimeFormats = new Map();
29
- const numberFormat = (locale, options = {}) => cached(numberFormats, `${locale}|${JSON.stringify(options)}`, () => new Intl.NumberFormat(locale, options));
30
- exports.numberFormat = numberFormat;
31
- const dateTimeFormat = (locale, options) => cached(dateTimeFormats, `${locale}|${JSON.stringify(options)}`, () => new Intl.DateTimeFormat(locale, options));
32
- exports.dateTimeFormat = dateTimeFormat;
33
- const relativeTimeFormat = (RelativeTimeFormat, locale) => cached(relativeTimeFormats, locale, () => new RelativeTimeFormat(locale, {
34
- numeric: 'auto'
35
- }));
36
- exports.relativeTimeFormat = relativeTimeFormat;
37
- //# sourceMappingURL=intlCache.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.relativeTimeFormat=exports.numberFormat=exports.dateTimeFormat=void 0;const LIMIT=100,cached=(e,t,r)=>{let a=e.get(t);return void 0===a&&(a=r(),e.size>=100&&e.clear(),e.set(t,a)),a},numberFormats=new Map,dateTimeFormats=new Map,relativeTimeFormats=new Map,numberFormat=(e,t={})=>cached(numberFormats,`${e}|${JSON.stringify(t)}`,()=>new Intl.NumberFormat(e,t));exports.numberFormat=numberFormat;const dateTimeFormat=(e,t)=>cached(dateTimeFormats,`${e}|${JSON.stringify(t)}`,()=>new Intl.DateTimeFormat(e,t));exports.dateTimeFormat=dateTimeFormat;const relativeTimeFormat=(e,t)=>cached(relativeTimeFormats,t,()=>new e(t,{numeric:"auto"}));exports.relativeTimeFormat=relativeTimeFormat;