@learncard/react 2.3.69 → 2.4.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 (205) hide show
  1. package/dist/cjs/{AchievementCard-0123be96.js → AchievementCard-69413826.js} +5 -5
  2. package/dist/cjs/{AchievementCard-0123be96.js.map → AchievementCard-69413826.js.map} +1 -1
  3. package/dist/cjs/AwardRibbon-14ba45fb.js +33 -0
  4. package/dist/cjs/AwardRibbon-14ba45fb.js.map +1 -0
  5. package/dist/cjs/{CircleCheckButton-97c4f608.js → CircleCheckButton-78959cce.js} +2 -2
  6. package/dist/cjs/{CircleCheckButton-97c4f608.js.map → CircleCheckButton-78959cce.js.map} +1 -1
  7. package/dist/cjs/CircleIcon-03cc33dc.js +1083 -0
  8. package/dist/cjs/CircleIcon-03cc33dc.js.map +1 -0
  9. package/dist/cjs/{CourseVerticalCard-ef3e7ea6.js → CourseVerticalCard-5ac6adea.js} +4 -4
  10. package/dist/cjs/{CourseVerticalCard-ef3e7ea6.js.map → CourseVerticalCard-5ac6adea.js.map} +1 -1
  11. package/dist/cjs/{GenericCard-39248302.js → GenericCard-346b55ab.js} +4 -4
  12. package/dist/cjs/{GenericCard-39248302.js.map → GenericCard-346b55ab.js.map} +1 -1
  13. package/dist/cjs/{JobListCard-f9033e07.js → JobListCard-672fadc3.js} +3 -3
  14. package/dist/cjs/{JobListCard-f9033e07.js.map → JobListCard-672fadc3.js.map} +1 -1
  15. package/dist/cjs/{LearnPill-23ff7225.js → LearnPill-75e3af2f.js} +3 -3
  16. package/dist/cjs/{LearnPill-23ff7225.js.map → LearnPill-75e3af2f.js.map} +1 -1
  17. package/dist/cjs/{RoundedPill-15c0aca9.js → RoundedPill-75454f72.js} +2 -2
  18. package/dist/cjs/{RoundedPill-15c0aca9.js.map → RoundedPill-75454f72.js.map} +1 -1
  19. package/dist/cjs/{SkillTabCard-2f6e8b78.js → SkillTabCard-eb50fde5.js} +4 -4
  20. package/dist/cjs/{SkillTabCard-2f6e8b78.js.map → SkillTabCard-eb50fde5.js.map} +1 -1
  21. package/dist/cjs/{VCCard-47af6178.js → VCCard-32c759a8.js} +33 -7
  22. package/dist/cjs/VCCard-32c759a8.js.map +1 -0
  23. package/dist/cjs/{VCDisplayBackFace-b1e35a5e.js → VCDisplayBackFace-128b5cb2.js} +5 -25
  24. package/dist/cjs/VCDisplayBackFace-128b5cb2.js.map +1 -0
  25. package/dist/cjs/VCDisplayCard-77133b71.js +191 -0
  26. package/dist/cjs/VCDisplayCard-77133b71.js.map +1 -0
  27. package/dist/cjs/VCDisplayCard2-a0a66aa6.js +920 -0
  28. package/dist/cjs/VCDisplayCard2-a0a66aa6.js.map +1 -0
  29. package/dist/cjs/{VCVerificationCheck-0e495524.js → VCVerificationCheck-08011d1a.js} +32 -22
  30. package/dist/cjs/VCVerificationCheck-08011d1a.js.map +1 -0
  31. package/dist/cjs/VCVerificationPill-66e2a90f.js +75 -0
  32. package/dist/cjs/VCVerificationPill-66e2a90f.js.map +1 -0
  33. package/dist/cjs/award.svg +3 -0
  34. package/dist/cjs/{constants-678d0aa9.js → constants-82581ffe.js} +10 -12
  35. package/dist/cjs/constants-82581ffe.js.map +1 -0
  36. package/dist/cjs/credential.helpers-7f7b9b02.js +2188 -0
  37. package/dist/cjs/credential.helpers-7f7b9b02.js.map +1 -0
  38. package/dist/cjs/{icons-cf98ef88.js → icons-6433b474.js} +6 -3
  39. package/dist/cjs/icons-6433b474.js.map +1 -0
  40. package/dist/cjs/{index-63ee021e.js → index-6b34c190.js} +3 -1
  41. package/dist/cjs/index-6b34c190.js.map +1 -0
  42. package/dist/{esm/VCDisplayCard-1bd179d2.js → cjs/index-a961acab.js} +12 -2328
  43. package/dist/cjs/index-a961acab.js.map +1 -0
  44. package/dist/cjs/{index-6cab6d37.js → index-f30fca07.js} +12 -6
  45. package/dist/cjs/index-f30fca07.js.map +1 -0
  46. package/dist/cjs/index.js +28 -18
  47. package/dist/cjs/index.js.map +1 -1
  48. package/dist/cjs/index10.js +28 -18
  49. package/dist/cjs/index10.js.map +1 -1
  50. package/dist/cjs/index12.js +4 -3
  51. package/dist/cjs/index12.js.map +1 -1
  52. package/dist/cjs/index15.js +4 -3
  53. package/dist/cjs/index15.js.map +1 -1
  54. package/dist/cjs/index2.js +8 -6
  55. package/dist/cjs/index2.js.map +1 -1
  56. package/dist/cjs/index20.js +4 -3
  57. package/dist/cjs/index20.js.map +1 -1
  58. package/dist/cjs/index21.js +7 -5
  59. package/dist/cjs/index21.js.map +1 -1
  60. package/dist/cjs/index25.js +6 -5
  61. package/dist/cjs/index25.js.map +1 -1
  62. package/dist/cjs/index28.js +3 -1
  63. package/dist/cjs/index28.js.map +1 -1
  64. package/dist/cjs/index29.js +10 -5
  65. package/dist/cjs/index29.js.map +1 -1
  66. package/dist/cjs/index30.js +6 -3
  67. package/dist/cjs/index30.js.map +1 -1
  68. package/dist/cjs/index31.js +7 -4
  69. package/dist/cjs/index31.js.map +1 -1
  70. package/dist/cjs/index32.js +12 -1
  71. package/dist/cjs/index32.js.map +1 -1
  72. package/dist/cjs/index33.js +4 -7
  73. package/dist/cjs/index33.js.map +1 -1
  74. package/dist/cjs/index34.js +4 -5
  75. package/dist/cjs/index34.js.map +1 -1
  76. package/dist/cjs/index35.js +6 -5
  77. package/dist/cjs/index35.js.map +1 -1
  78. package/dist/cjs/index36.js +15 -0
  79. package/dist/cjs/index36.js.map +1 -0
  80. package/dist/cjs/index4.js +5 -4
  81. package/dist/cjs/index4.js.map +1 -1
  82. package/dist/cjs/index5.js +4 -3
  83. package/dist/cjs/index5.js.map +1 -1
  84. package/dist/cjs/index7.js +6 -5
  85. package/dist/cjs/index7.js.map +1 -1
  86. package/dist/cjs/index9.js +8 -6
  87. package/dist/cjs/index9.js.map +1 -1
  88. package/dist/cjs/social-badge.png +0 -0
  89. package/dist/{esm/VCVerificationPill-7a09f9fa.js → cjs/types.esm-034454a2.js} +3 -63
  90. package/dist/cjs/types.esm-034454a2.js.map +1 -0
  91. package/dist/esm/{AchievementCard-92b5a3ea.js → AchievementCard-3f315f82.js} +5 -5
  92. package/dist/esm/{AchievementCard-92b5a3ea.js.map → AchievementCard-3f315f82.js.map} +1 -1
  93. package/dist/esm/AwardRibbon-3e682281.js +27 -0
  94. package/dist/esm/AwardRibbon-3e682281.js.map +1 -0
  95. package/dist/esm/{CircleCheckButton-a55dfd2a.js → CircleCheckButton-3bad7847.js} +2 -2
  96. package/dist/esm/{CircleCheckButton-a55dfd2a.js.map → CircleCheckButton-3bad7847.js.map} +1 -1
  97. package/dist/esm/CircleIcon-3ab835f3.js +1076 -0
  98. package/dist/esm/CircleIcon-3ab835f3.js.map +1 -0
  99. package/dist/esm/{CourseVerticalCard-c91c7a7a.js → CourseVerticalCard-cfb09a77.js} +4 -4
  100. package/dist/esm/{CourseVerticalCard-c91c7a7a.js.map → CourseVerticalCard-cfb09a77.js.map} +1 -1
  101. package/dist/esm/{GenericCard-2aaadb4b.js → GenericCard-446f46e0.js} +4 -4
  102. package/dist/esm/{GenericCard-2aaadb4b.js.map → GenericCard-446f46e0.js.map} +1 -1
  103. package/dist/esm/{JobListCard-3a2bd655.js → JobListCard-9ac7ac1b.js} +3 -3
  104. package/dist/esm/{JobListCard-3a2bd655.js.map → JobListCard-9ac7ac1b.js.map} +1 -1
  105. package/dist/esm/{LearnPill-a1001ae7.js → LearnPill-a62adef1.js} +3 -3
  106. package/dist/esm/{LearnPill-a1001ae7.js.map → LearnPill-a62adef1.js.map} +1 -1
  107. package/dist/esm/{RoundedPill-2f4dc646.js → RoundedPill-c03442e5.js} +2 -2
  108. package/dist/esm/{RoundedPill-2f4dc646.js.map → RoundedPill-c03442e5.js.map} +1 -1
  109. package/dist/esm/{SkillTabCard-82b97c62.js → SkillTabCard-2677de0d.js} +4 -4
  110. package/dist/esm/{SkillTabCard-82b97c62.js.map → SkillTabCard-2677de0d.js.map} +1 -1
  111. package/dist/esm/{VCCard-f53514a4.js → VCCard-c4096573.js} +33 -7
  112. package/dist/esm/VCCard-c4096573.js.map +1 -0
  113. package/dist/esm/{VCDisplayBackFace-919ed9e8.js → VCDisplayBackFace-853b8fdf.js} +5 -23
  114. package/dist/esm/VCDisplayBackFace-853b8fdf.js.map +1 -0
  115. package/dist/esm/VCDisplayCard-be496708.js +183 -0
  116. package/dist/esm/VCDisplayCard-be496708.js.map +1 -0
  117. package/dist/esm/VCDisplayCard2-c8e96ce8.js +913 -0
  118. package/dist/esm/VCDisplayCard2-c8e96ce8.js.map +1 -0
  119. package/dist/esm/{VCVerificationCheck-b2de0477.js → VCVerificationCheck-a6909b44.js} +32 -23
  120. package/dist/esm/VCVerificationCheck-a6909b44.js.map +1 -0
  121. package/dist/esm/VCVerificationPill-fc7b53d0.js +65 -0
  122. package/dist/esm/VCVerificationPill-fc7b53d0.js.map +1 -0
  123. package/dist/esm/award.svg +3 -0
  124. package/dist/esm/{constants-e0d87a29.js → constants-c0a08298.js} +10 -12
  125. package/dist/esm/constants-c0a08298.js.map +1 -0
  126. package/dist/esm/credential.helpers-78d3c24a.js +2182 -0
  127. package/dist/esm/credential.helpers-78d3c24a.js.map +1 -0
  128. package/dist/esm/{icons-10f38bbd.js → icons-2c3532f9.js} +5 -3
  129. package/dist/esm/icons-2c3532f9.js.map +1 -0
  130. package/dist/esm/{index-15b828c0.js → index-52cf2d17.js} +3 -1
  131. package/dist/esm/index-52cf2d17.js.map +1 -0
  132. package/dist/esm/{index-2ef79548.js → index-ac32d7be.js} +11 -6
  133. package/dist/esm/index-ac32d7be.js.map +1 -0
  134. package/dist/{cjs/VCDisplayCard-2981600a.js → esm/index-e1f279c6.js} +4 -2337
  135. package/dist/esm/index-e1f279c6.js.map +1 -0
  136. package/dist/esm/index.js +25 -18
  137. package/dist/esm/index.js.map +1 -1
  138. package/dist/esm/index10.js +25 -18
  139. package/dist/esm/index10.js.map +1 -1
  140. package/dist/esm/index12.js +4 -3
  141. package/dist/esm/index12.js.map +1 -1
  142. package/dist/esm/index15.js +4 -3
  143. package/dist/esm/index15.js.map +1 -1
  144. package/dist/esm/index2.js +8 -6
  145. package/dist/esm/index2.js.map +1 -1
  146. package/dist/esm/index20.js +4 -3
  147. package/dist/esm/index20.js.map +1 -1
  148. package/dist/esm/index21.js +7 -5
  149. package/dist/esm/index21.js.map +1 -1
  150. package/dist/esm/index25.js +6 -5
  151. package/dist/esm/index25.js.map +1 -1
  152. package/dist/esm/index28.js +2 -1
  153. package/dist/esm/index28.js.map +1 -1
  154. package/dist/esm/index29.js +10 -5
  155. package/dist/esm/index29.js.map +1 -1
  156. package/dist/esm/index30.js +6 -3
  157. package/dist/esm/index30.js.map +1 -1
  158. package/dist/esm/index31.js +7 -4
  159. package/dist/esm/index31.js.map +1 -1
  160. package/dist/esm/index32.js +7 -1
  161. package/dist/esm/index32.js.map +1 -1
  162. package/dist/esm/index33.js +4 -2
  163. package/dist/esm/index33.js.map +1 -1
  164. package/dist/esm/index34.js +3 -3
  165. package/dist/esm/index35.js +3 -4
  166. package/dist/esm/index35.js.map +1 -1
  167. package/dist/esm/index36.js +7 -0
  168. package/dist/esm/index36.js.map +1 -0
  169. package/dist/esm/index4.js +5 -4
  170. package/dist/esm/index4.js.map +1 -1
  171. package/dist/esm/index5.js +4 -3
  172. package/dist/esm/index5.js.map +1 -1
  173. package/dist/esm/index7.js +6 -5
  174. package/dist/esm/index7.js.map +1 -1
  175. package/dist/esm/index9.js +8 -6
  176. package/dist/esm/index9.js.map +1 -1
  177. package/dist/esm/social-badge.png +0 -0
  178. package/dist/{cjs/VCVerificationPill-9e8e4264.js → esm/types.esm-9db3d858.js} +2 -74
  179. package/dist/esm/types.esm-9db3d858.js.map +1 -0
  180. package/dist/index.d.ts +67 -5
  181. package/dist/main.css +1 -1
  182. package/dist/main.js +1 -1
  183. package/package.json +6 -3
  184. package/dist/cjs/CircleIcon-41b3fa88.js +0 -67
  185. package/dist/cjs/CircleIcon-41b3fa88.js.map +0 -1
  186. package/dist/cjs/VCCard-47af6178.js.map +0 -1
  187. package/dist/cjs/VCDisplayBackFace-b1e35a5e.js.map +0 -1
  188. package/dist/cjs/VCDisplayCard-2981600a.js.map +0 -1
  189. package/dist/cjs/VCVerificationCheck-0e495524.js.map +0 -1
  190. package/dist/cjs/VCVerificationPill-9e8e4264.js.map +0 -1
  191. package/dist/cjs/constants-678d0aa9.js.map +0 -1
  192. package/dist/cjs/icons-cf98ef88.js.map +0 -1
  193. package/dist/cjs/index-63ee021e.js.map +0 -1
  194. package/dist/cjs/index-6cab6d37.js.map +0 -1
  195. package/dist/esm/CircleIcon-b0dca4b6.js +0 -60
  196. package/dist/esm/CircleIcon-b0dca4b6.js.map +0 -1
  197. package/dist/esm/VCCard-f53514a4.js.map +0 -1
  198. package/dist/esm/VCDisplayBackFace-919ed9e8.js.map +0 -1
  199. package/dist/esm/VCDisplayCard-1bd179d2.js.map +0 -1
  200. package/dist/esm/VCVerificationCheck-b2de0477.js.map +0 -1
  201. package/dist/esm/VCVerificationPill-7a09f9fa.js.map +0 -1
  202. package/dist/esm/constants-e0d87a29.js.map +0 -1
  203. package/dist/esm/icons-10f38bbd.js.map +0 -1
  204. package/dist/esm/index-15b828c0.js.map +0 -1
  205. package/dist/esm/index-2ef79548.js.map +0 -1
@@ -0,0 +1,1076 @@
1
+ import React from 'react';
2
+ import { I as Icons } from './index-52cf2d17.js';
3
+ import { I as ICONS_TO_SOURCE } from './icons-2c3532f9.js';
4
+
5
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
6
+
7
+ var numeral$1 = {exports: {}};
8
+
9
+ /*! @preserve
10
+ * numeral.js
11
+ * version : 2.0.6
12
+ * author : Adam Draper
13
+ * license : MIT
14
+ * http://adamwdraper.github.com/Numeral-js/
15
+ */
16
+
17
+ (function (module) {
18
+ (function (global, factory) {
19
+ if (module.exports) {
20
+ module.exports = factory();
21
+ } else {
22
+ global.numeral = factory();
23
+ }
24
+ }(commonjsGlobal, function () {
25
+ /************************************
26
+ Variables
27
+ ************************************/
28
+
29
+ var numeral,
30
+ _,
31
+ VERSION = '2.0.6',
32
+ formats = {},
33
+ locales = {},
34
+ defaults = {
35
+ currentLocale: 'en',
36
+ zeroFormat: null,
37
+ nullFormat: null,
38
+ defaultFormat: '0,0',
39
+ scalePercentBy100: true
40
+ },
41
+ options = {
42
+ currentLocale: defaults.currentLocale,
43
+ zeroFormat: defaults.zeroFormat,
44
+ nullFormat: defaults.nullFormat,
45
+ defaultFormat: defaults.defaultFormat,
46
+ scalePercentBy100: defaults.scalePercentBy100
47
+ };
48
+
49
+
50
+ /************************************
51
+ Constructors
52
+ ************************************/
53
+
54
+ // Numeral prototype object
55
+ function Numeral(input, number) {
56
+ this._input = input;
57
+
58
+ this._value = number;
59
+ }
60
+
61
+ numeral = function(input) {
62
+ var value,
63
+ kind,
64
+ unformatFunction,
65
+ regexp;
66
+
67
+ if (numeral.isNumeral(input)) {
68
+ value = input.value();
69
+ } else if (input === 0 || typeof input === 'undefined') {
70
+ value = 0;
71
+ } else if (input === null || _.isNaN(input)) {
72
+ value = null;
73
+ } else if (typeof input === 'string') {
74
+ if (options.zeroFormat && input === options.zeroFormat) {
75
+ value = 0;
76
+ } else if (options.nullFormat && input === options.nullFormat || !input.replace(/[^0-9]+/g, '').length) {
77
+ value = null;
78
+ } else {
79
+ for (kind in formats) {
80
+ regexp = typeof formats[kind].regexps.unformat === 'function' ? formats[kind].regexps.unformat() : formats[kind].regexps.unformat;
81
+
82
+ if (regexp && input.match(regexp)) {
83
+ unformatFunction = formats[kind].unformat;
84
+
85
+ break;
86
+ }
87
+ }
88
+
89
+ unformatFunction = unformatFunction || numeral._.stringToNumber;
90
+
91
+ value = unformatFunction(input);
92
+ }
93
+ } else {
94
+ value = Number(input)|| null;
95
+ }
96
+
97
+ return new Numeral(input, value);
98
+ };
99
+
100
+ // version number
101
+ numeral.version = VERSION;
102
+
103
+ // compare numeral object
104
+ numeral.isNumeral = function(obj) {
105
+ return obj instanceof Numeral;
106
+ };
107
+
108
+ // helper functions
109
+ numeral._ = _ = {
110
+ // formats numbers separators, decimals places, signs, abbreviations
111
+ numberToFormat: function(value, format, roundingFunction) {
112
+ var locale = locales[numeral.options.currentLocale],
113
+ negP = false,
114
+ optDec = false,
115
+ leadingCount = 0,
116
+ abbr = '',
117
+ trillion = 1000000000000,
118
+ billion = 1000000000,
119
+ million = 1000000,
120
+ thousand = 1000,
121
+ decimal = '',
122
+ neg = false,
123
+ abbrForce, // force abbreviation
124
+ abs,
125
+ int,
126
+ precision,
127
+ signed,
128
+ thousands,
129
+ output;
130
+
131
+ // make sure we never format a null value
132
+ value = value || 0;
133
+
134
+ abs = Math.abs(value);
135
+
136
+ // see if we should use parentheses for negative number or if we should prefix with a sign
137
+ // if both are present we default to parentheses
138
+ if (numeral._.includes(format, '(')) {
139
+ negP = true;
140
+ format = format.replace(/[\(|\)]/g, '');
141
+ } else if (numeral._.includes(format, '+') || numeral._.includes(format, '-')) {
142
+ signed = numeral._.includes(format, '+') ? format.indexOf('+') : value < 0 ? format.indexOf('-') : -1;
143
+ format = format.replace(/[\+|\-]/g, '');
144
+ }
145
+
146
+ // see if abbreviation is wanted
147
+ if (numeral._.includes(format, 'a')) {
148
+ abbrForce = format.match(/a(k|m|b|t)?/);
149
+
150
+ abbrForce = abbrForce ? abbrForce[1] : false;
151
+
152
+ // check for space before abbreviation
153
+ if (numeral._.includes(format, ' a')) {
154
+ abbr = ' ';
155
+ }
156
+
157
+ format = format.replace(new RegExp(abbr + 'a[kmbt]?'), '');
158
+
159
+ if (abs >= trillion && !abbrForce || abbrForce === 't') {
160
+ // trillion
161
+ abbr += locale.abbreviations.trillion;
162
+ value = value / trillion;
163
+ } else if (abs < trillion && abs >= billion && !abbrForce || abbrForce === 'b') {
164
+ // billion
165
+ abbr += locale.abbreviations.billion;
166
+ value = value / billion;
167
+ } else if (abs < billion && abs >= million && !abbrForce || abbrForce === 'm') {
168
+ // million
169
+ abbr += locale.abbreviations.million;
170
+ value = value / million;
171
+ } else if (abs < million && abs >= thousand && !abbrForce || abbrForce === 'k') {
172
+ // thousand
173
+ abbr += locale.abbreviations.thousand;
174
+ value = value / thousand;
175
+ }
176
+ }
177
+
178
+ // check for optional decimals
179
+ if (numeral._.includes(format, '[.]')) {
180
+ optDec = true;
181
+ format = format.replace('[.]', '.');
182
+ }
183
+
184
+ // break number and format
185
+ int = value.toString().split('.')[0];
186
+ precision = format.split('.')[1];
187
+ thousands = format.indexOf(',');
188
+ leadingCount = (format.split('.')[0].split(',')[0].match(/0/g) || []).length;
189
+
190
+ if (precision) {
191
+ if (numeral._.includes(precision, '[')) {
192
+ precision = precision.replace(']', '');
193
+ precision = precision.split('[');
194
+ decimal = numeral._.toFixed(value, (precision[0].length + precision[1].length), roundingFunction, precision[1].length);
195
+ } else {
196
+ decimal = numeral._.toFixed(value, precision.length, roundingFunction);
197
+ }
198
+
199
+ int = decimal.split('.')[0];
200
+
201
+ if (numeral._.includes(decimal, '.')) {
202
+ decimal = locale.delimiters.decimal + decimal.split('.')[1];
203
+ } else {
204
+ decimal = '';
205
+ }
206
+
207
+ if (optDec && Number(decimal.slice(1)) === 0) {
208
+ decimal = '';
209
+ }
210
+ } else {
211
+ int = numeral._.toFixed(value, 0, roundingFunction);
212
+ }
213
+
214
+ // check abbreviation again after rounding
215
+ if (abbr && !abbrForce && Number(int) >= 1000 && abbr !== locale.abbreviations.trillion) {
216
+ int = String(Number(int) / 1000);
217
+
218
+ switch (abbr) {
219
+ case locale.abbreviations.thousand:
220
+ abbr = locale.abbreviations.million;
221
+ break;
222
+ case locale.abbreviations.million:
223
+ abbr = locale.abbreviations.billion;
224
+ break;
225
+ case locale.abbreviations.billion:
226
+ abbr = locale.abbreviations.trillion;
227
+ break;
228
+ }
229
+ }
230
+
231
+
232
+ // format number
233
+ if (numeral._.includes(int, '-')) {
234
+ int = int.slice(1);
235
+ neg = true;
236
+ }
237
+
238
+ if (int.length < leadingCount) {
239
+ for (var i = leadingCount - int.length; i > 0; i--) {
240
+ int = '0' + int;
241
+ }
242
+ }
243
+
244
+ if (thousands > -1) {
245
+ int = int.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1' + locale.delimiters.thousands);
246
+ }
247
+
248
+ if (format.indexOf('.') === 0) {
249
+ int = '';
250
+ }
251
+
252
+ output = int + decimal + (abbr ? abbr : '');
253
+
254
+ if (negP) {
255
+ output = (negP && neg ? '(' : '') + output + (negP && neg ? ')' : '');
256
+ } else {
257
+ if (signed >= 0) {
258
+ output = signed === 0 ? (neg ? '-' : '+') + output : output + (neg ? '-' : '+');
259
+ } else if (neg) {
260
+ output = '-' + output;
261
+ }
262
+ }
263
+
264
+ return output;
265
+ },
266
+ // unformats numbers separators, decimals places, signs, abbreviations
267
+ stringToNumber: function(string) {
268
+ var locale = locales[options.currentLocale],
269
+ stringOriginal = string,
270
+ abbreviations = {
271
+ thousand: 3,
272
+ million: 6,
273
+ billion: 9,
274
+ trillion: 12
275
+ },
276
+ abbreviation,
277
+ value,
278
+ regexp;
279
+
280
+ if (options.zeroFormat && string === options.zeroFormat) {
281
+ value = 0;
282
+ } else if (options.nullFormat && string === options.nullFormat || !string.replace(/[^0-9]+/g, '').length) {
283
+ value = null;
284
+ } else {
285
+ value = 1;
286
+
287
+ if (locale.delimiters.decimal !== '.') {
288
+ string = string.replace(/\./g, '').replace(locale.delimiters.decimal, '.');
289
+ }
290
+
291
+ for (abbreviation in abbreviations) {
292
+ regexp = new RegExp('[^a-zA-Z]' + locale.abbreviations[abbreviation] + '(?:\\)|(\\' + locale.currency.symbol + ')?(?:\\))?)?$');
293
+
294
+ if (stringOriginal.match(regexp)) {
295
+ value *= Math.pow(10, abbreviations[abbreviation]);
296
+ break;
297
+ }
298
+ }
299
+
300
+ // check for negative number
301
+ value *= (string.split('-').length + Math.min(string.split('(').length - 1, string.split(')').length - 1)) % 2 ? 1 : -1;
302
+
303
+ // remove non numbers
304
+ string = string.replace(/[^0-9\.]+/g, '');
305
+
306
+ value *= Number(string);
307
+ }
308
+
309
+ return value;
310
+ },
311
+ isNaN: function(value) {
312
+ return typeof value === 'number' && isNaN(value);
313
+ },
314
+ includes: function(string, search) {
315
+ return string.indexOf(search) !== -1;
316
+ },
317
+ insert: function(string, subString, start) {
318
+ return string.slice(0, start) + subString + string.slice(start);
319
+ },
320
+ reduce: function(array, callback /*, initialValue*/) {
321
+ if (this === null) {
322
+ throw new TypeError('Array.prototype.reduce called on null or undefined');
323
+ }
324
+
325
+ if (typeof callback !== 'function') {
326
+ throw new TypeError(callback + ' is not a function');
327
+ }
328
+
329
+ var t = Object(array),
330
+ len = t.length >>> 0,
331
+ k = 0,
332
+ value;
333
+
334
+ if (arguments.length === 3) {
335
+ value = arguments[2];
336
+ } else {
337
+ while (k < len && !(k in t)) {
338
+ k++;
339
+ }
340
+
341
+ if (k >= len) {
342
+ throw new TypeError('Reduce of empty array with no initial value');
343
+ }
344
+
345
+ value = t[k++];
346
+ }
347
+ for (; k < len; k++) {
348
+ if (k in t) {
349
+ value = callback(value, t[k], k, t);
350
+ }
351
+ }
352
+ return value;
353
+ },
354
+ /**
355
+ * Computes the multiplier necessary to make x >= 1,
356
+ * effectively eliminating miscalculations caused by
357
+ * finite precision.
358
+ */
359
+ multiplier: function (x) {
360
+ var parts = x.toString().split('.');
361
+
362
+ return parts.length < 2 ? 1 : Math.pow(10, parts[1].length);
363
+ },
364
+ /**
365
+ * Given a variable number of arguments, returns the maximum
366
+ * multiplier that must be used to normalize an operation involving
367
+ * all of them.
368
+ */
369
+ correctionFactor: function () {
370
+ var args = Array.prototype.slice.call(arguments);
371
+
372
+ return args.reduce(function(accum, next) {
373
+ var mn = _.multiplier(next);
374
+ return accum > mn ? accum : mn;
375
+ }, 1);
376
+ },
377
+ /**
378
+ * Implementation of toFixed() that treats floats more like decimals
379
+ *
380
+ * Fixes binary rounding issues (eg. (0.615).toFixed(2) === '0.61') that present
381
+ * problems for accounting- and finance-related software.
382
+ */
383
+ toFixed: function(value, maxDecimals, roundingFunction, optionals) {
384
+ var splitValue = value.toString().split('.'),
385
+ minDecimals = maxDecimals - (optionals || 0),
386
+ boundedPrecision,
387
+ optionalsRegExp,
388
+ power,
389
+ output;
390
+
391
+ // Use the smallest precision value possible to avoid errors from floating point representation
392
+ if (splitValue.length === 2) {
393
+ boundedPrecision = Math.min(Math.max(splitValue[1].length, minDecimals), maxDecimals);
394
+ } else {
395
+ boundedPrecision = minDecimals;
396
+ }
397
+
398
+ power = Math.pow(10, boundedPrecision);
399
+
400
+ // Multiply up by precision, round accurately, then divide and use native toFixed():
401
+ output = (roundingFunction(value + 'e+' + boundedPrecision) / power).toFixed(boundedPrecision);
402
+
403
+ if (optionals > maxDecimals - boundedPrecision) {
404
+ optionalsRegExp = new RegExp('\\.?0{1,' + (optionals - (maxDecimals - boundedPrecision)) + '}$');
405
+ output = output.replace(optionalsRegExp, '');
406
+ }
407
+
408
+ return output;
409
+ }
410
+ };
411
+
412
+ // avaliable options
413
+ numeral.options = options;
414
+
415
+ // avaliable formats
416
+ numeral.formats = formats;
417
+
418
+ // avaliable formats
419
+ numeral.locales = locales;
420
+
421
+ // This function sets the current locale. If
422
+ // no arguments are passed in, it will simply return the current global
423
+ // locale key.
424
+ numeral.locale = function(key) {
425
+ if (key) {
426
+ options.currentLocale = key.toLowerCase();
427
+ }
428
+
429
+ return options.currentLocale;
430
+ };
431
+
432
+ // This function provides access to the loaded locale data. If
433
+ // no arguments are passed in, it will simply return the current
434
+ // global locale object.
435
+ numeral.localeData = function(key) {
436
+ if (!key) {
437
+ return locales[options.currentLocale];
438
+ }
439
+
440
+ key = key.toLowerCase();
441
+
442
+ if (!locales[key]) {
443
+ throw new Error('Unknown locale : ' + key);
444
+ }
445
+
446
+ return locales[key];
447
+ };
448
+
449
+ numeral.reset = function() {
450
+ for (var property in defaults) {
451
+ options[property] = defaults[property];
452
+ }
453
+ };
454
+
455
+ numeral.zeroFormat = function(format) {
456
+ options.zeroFormat = typeof(format) === 'string' ? format : null;
457
+ };
458
+
459
+ numeral.nullFormat = function (format) {
460
+ options.nullFormat = typeof(format) === 'string' ? format : null;
461
+ };
462
+
463
+ numeral.defaultFormat = function(format) {
464
+ options.defaultFormat = typeof(format) === 'string' ? format : '0.0';
465
+ };
466
+
467
+ numeral.register = function(type, name, format) {
468
+ name = name.toLowerCase();
469
+
470
+ if (this[type + 's'][name]) {
471
+ throw new TypeError(name + ' ' + type + ' already registered.');
472
+ }
473
+
474
+ this[type + 's'][name] = format;
475
+
476
+ return format;
477
+ };
478
+
479
+
480
+ numeral.validate = function(val, culture) {
481
+ var _decimalSep,
482
+ _thousandSep,
483
+ _currSymbol,
484
+ _valArray,
485
+ _abbrObj,
486
+ _thousandRegEx,
487
+ localeData,
488
+ temp;
489
+
490
+ //coerce val to string
491
+ if (typeof val !== 'string') {
492
+ val += '';
493
+
494
+ if (console.warn) {
495
+ console.warn('Numeral.js: Value is not string. It has been co-erced to: ', val);
496
+ }
497
+ }
498
+
499
+ //trim whitespaces from either sides
500
+ val = val.trim();
501
+
502
+ //if val is just digits return true
503
+ if (!!val.match(/^\d+$/)) {
504
+ return true;
505
+ }
506
+
507
+ //if val is empty return false
508
+ if (val === '') {
509
+ return false;
510
+ }
511
+
512
+ //get the decimal and thousands separator from numeral.localeData
513
+ try {
514
+ //check if the culture is understood by numeral. if not, default it to current locale
515
+ localeData = numeral.localeData(culture);
516
+ } catch (e) {
517
+ localeData = numeral.localeData(numeral.locale());
518
+ }
519
+
520
+ //setup the delimiters and currency symbol based on culture/locale
521
+ _currSymbol = localeData.currency.symbol;
522
+ _abbrObj = localeData.abbreviations;
523
+ _decimalSep = localeData.delimiters.decimal;
524
+ if (localeData.delimiters.thousands === '.') {
525
+ _thousandSep = '\\.';
526
+ } else {
527
+ _thousandSep = localeData.delimiters.thousands;
528
+ }
529
+
530
+ // validating currency symbol
531
+ temp = val.match(/^[^\d]+/);
532
+ if (temp !== null) {
533
+ val = val.substr(1);
534
+ if (temp[0] !== _currSymbol) {
535
+ return false;
536
+ }
537
+ }
538
+
539
+ //validating abbreviation symbol
540
+ temp = val.match(/[^\d]+$/);
541
+ if (temp !== null) {
542
+ val = val.slice(0, -1);
543
+ if (temp[0] !== _abbrObj.thousand && temp[0] !== _abbrObj.million && temp[0] !== _abbrObj.billion && temp[0] !== _abbrObj.trillion) {
544
+ return false;
545
+ }
546
+ }
547
+
548
+ _thousandRegEx = new RegExp(_thousandSep + '{2}');
549
+
550
+ if (!val.match(/[^\d.,]/g)) {
551
+ _valArray = val.split(_decimalSep);
552
+ if (_valArray.length > 2) {
553
+ return false;
554
+ } else {
555
+ if (_valArray.length < 2) {
556
+ return ( !! _valArray[0].match(/^\d+.*\d$/) && !_valArray[0].match(_thousandRegEx));
557
+ } else {
558
+ if (_valArray[0].length === 1) {
559
+ return ( !! _valArray[0].match(/^\d+$/) && !_valArray[0].match(_thousandRegEx) && !! _valArray[1].match(/^\d+$/));
560
+ } else {
561
+ return ( !! _valArray[0].match(/^\d+.*\d$/) && !_valArray[0].match(_thousandRegEx) && !! _valArray[1].match(/^\d+$/));
562
+ }
563
+ }
564
+ }
565
+ }
566
+
567
+ return false;
568
+ };
569
+
570
+
571
+ /************************************
572
+ Numeral Prototype
573
+ ************************************/
574
+
575
+ numeral.fn = Numeral.prototype = {
576
+ clone: function() {
577
+ return numeral(this);
578
+ },
579
+ format: function(inputString, roundingFunction) {
580
+ var value = this._value,
581
+ format = inputString || options.defaultFormat,
582
+ kind,
583
+ output,
584
+ formatFunction;
585
+
586
+ // make sure we have a roundingFunction
587
+ roundingFunction = roundingFunction || Math.round;
588
+
589
+ // format based on value
590
+ if (value === 0 && options.zeroFormat !== null) {
591
+ output = options.zeroFormat;
592
+ } else if (value === null && options.nullFormat !== null) {
593
+ output = options.nullFormat;
594
+ } else {
595
+ for (kind in formats) {
596
+ if (format.match(formats[kind].regexps.format)) {
597
+ formatFunction = formats[kind].format;
598
+
599
+ break;
600
+ }
601
+ }
602
+
603
+ formatFunction = formatFunction || numeral._.numberToFormat;
604
+
605
+ output = formatFunction(value, format, roundingFunction);
606
+ }
607
+
608
+ return output;
609
+ },
610
+ value: function() {
611
+ return this._value;
612
+ },
613
+ input: function() {
614
+ return this._input;
615
+ },
616
+ set: function(value) {
617
+ this._value = Number(value);
618
+
619
+ return this;
620
+ },
621
+ add: function(value) {
622
+ var corrFactor = _.correctionFactor.call(null, this._value, value);
623
+
624
+ function cback(accum, curr, currI, O) {
625
+ return accum + Math.round(corrFactor * curr);
626
+ }
627
+
628
+ this._value = _.reduce([this._value, value], cback, 0) / corrFactor;
629
+
630
+ return this;
631
+ },
632
+ subtract: function(value) {
633
+ var corrFactor = _.correctionFactor.call(null, this._value, value);
634
+
635
+ function cback(accum, curr, currI, O) {
636
+ return accum - Math.round(corrFactor * curr);
637
+ }
638
+
639
+ this._value = _.reduce([value], cback, Math.round(this._value * corrFactor)) / corrFactor;
640
+
641
+ return this;
642
+ },
643
+ multiply: function(value) {
644
+ function cback(accum, curr, currI, O) {
645
+ var corrFactor = _.correctionFactor(accum, curr);
646
+ return Math.round(accum * corrFactor) * Math.round(curr * corrFactor) / Math.round(corrFactor * corrFactor);
647
+ }
648
+
649
+ this._value = _.reduce([this._value, value], cback, 1);
650
+
651
+ return this;
652
+ },
653
+ divide: function(value) {
654
+ function cback(accum, curr, currI, O) {
655
+ var corrFactor = _.correctionFactor(accum, curr);
656
+ return Math.round(accum * corrFactor) / Math.round(curr * corrFactor);
657
+ }
658
+
659
+ this._value = _.reduce([this._value, value], cback);
660
+
661
+ return this;
662
+ },
663
+ difference: function(value) {
664
+ return Math.abs(numeral(this._value).subtract(value).value());
665
+ }
666
+ };
667
+
668
+ /************************************
669
+ Default Locale && Format
670
+ ************************************/
671
+
672
+ numeral.register('locale', 'en', {
673
+ delimiters: {
674
+ thousands: ',',
675
+ decimal: '.'
676
+ },
677
+ abbreviations: {
678
+ thousand: 'k',
679
+ million: 'm',
680
+ billion: 'b',
681
+ trillion: 't'
682
+ },
683
+ ordinal: function(number) {
684
+ var b = number % 10;
685
+ return (~~(number % 100 / 10) === 1) ? 'th' :
686
+ (b === 1) ? 'st' :
687
+ (b === 2) ? 'nd' :
688
+ (b === 3) ? 'rd' : 'th';
689
+ },
690
+ currency: {
691
+ symbol: '$'
692
+ }
693
+ });
694
+
695
+
696
+
697
+ (function() {
698
+ numeral.register('format', 'bps', {
699
+ regexps: {
700
+ format: /(BPS)/,
701
+ unformat: /(BPS)/
702
+ },
703
+ format: function(value, format, roundingFunction) {
704
+ var space = numeral._.includes(format, ' BPS') ? ' ' : '',
705
+ output;
706
+
707
+ value = value * 10000;
708
+
709
+ // check for space before BPS
710
+ format = format.replace(/\s?BPS/, '');
711
+
712
+ output = numeral._.numberToFormat(value, format, roundingFunction);
713
+
714
+ if (numeral._.includes(output, ')')) {
715
+ output = output.split('');
716
+
717
+ output.splice(-1, 0, space + 'BPS');
718
+
719
+ output = output.join('');
720
+ } else {
721
+ output = output + space + 'BPS';
722
+ }
723
+
724
+ return output;
725
+ },
726
+ unformat: function(string) {
727
+ return +(numeral._.stringToNumber(string) * 0.0001).toFixed(15);
728
+ }
729
+ });
730
+ })();
731
+
732
+
733
+ (function() {
734
+ var decimal = {
735
+ base: 1000,
736
+ suffixes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
737
+ },
738
+ binary = {
739
+ base: 1024,
740
+ suffixes: ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']
741
+ };
742
+
743
+ var allSuffixes = decimal.suffixes.concat(binary.suffixes.filter(function (item) {
744
+ return decimal.suffixes.indexOf(item) < 0;
745
+ }));
746
+ var unformatRegex = allSuffixes.join('|');
747
+ // Allow support for BPS (http://www.investopedia.com/terms/b/basispoint.asp)
748
+ unformatRegex = '(' + unformatRegex.replace('B', 'B(?!PS)') + ')';
749
+
750
+ numeral.register('format', 'bytes', {
751
+ regexps: {
752
+ format: /([0\s]i?b)/,
753
+ unformat: new RegExp(unformatRegex)
754
+ },
755
+ format: function(value, format, roundingFunction) {
756
+ var output,
757
+ bytes = numeral._.includes(format, 'ib') ? binary : decimal,
758
+ suffix = numeral._.includes(format, ' b') || numeral._.includes(format, ' ib') ? ' ' : '',
759
+ power,
760
+ min,
761
+ max;
762
+
763
+ // check for space before
764
+ format = format.replace(/\s?i?b/, '');
765
+
766
+ for (power = 0; power <= bytes.suffixes.length; power++) {
767
+ min = Math.pow(bytes.base, power);
768
+ max = Math.pow(bytes.base, power + 1);
769
+
770
+ if (value === null || value === 0 || value >= min && value < max) {
771
+ suffix += bytes.suffixes[power];
772
+
773
+ if (min > 0) {
774
+ value = value / min;
775
+ }
776
+
777
+ break;
778
+ }
779
+ }
780
+
781
+ output = numeral._.numberToFormat(value, format, roundingFunction);
782
+
783
+ return output + suffix;
784
+ },
785
+ unformat: function(string) {
786
+ var value = numeral._.stringToNumber(string),
787
+ power,
788
+ bytesMultiplier;
789
+
790
+ if (value) {
791
+ for (power = decimal.suffixes.length - 1; power >= 0; power--) {
792
+ if (numeral._.includes(string, decimal.suffixes[power])) {
793
+ bytesMultiplier = Math.pow(decimal.base, power);
794
+
795
+ break;
796
+ }
797
+
798
+ if (numeral._.includes(string, binary.suffixes[power])) {
799
+ bytesMultiplier = Math.pow(binary.base, power);
800
+
801
+ break;
802
+ }
803
+ }
804
+
805
+ value *= (bytesMultiplier || 1);
806
+ }
807
+
808
+ return value;
809
+ }
810
+ });
811
+ })();
812
+
813
+
814
+ (function() {
815
+ numeral.register('format', 'currency', {
816
+ regexps: {
817
+ format: /(\$)/
818
+ },
819
+ format: function(value, format, roundingFunction) {
820
+ var locale = numeral.locales[numeral.options.currentLocale],
821
+ symbols = {
822
+ before: format.match(/^([\+|\-|\(|\s|\$]*)/)[0],
823
+ after: format.match(/([\+|\-|\)|\s|\$]*)$/)[0]
824
+ },
825
+ output,
826
+ symbol,
827
+ i;
828
+
829
+ // strip format of spaces and $
830
+ format = format.replace(/\s?\$\s?/, '');
831
+
832
+ // format the number
833
+ output = numeral._.numberToFormat(value, format, roundingFunction);
834
+
835
+ // update the before and after based on value
836
+ if (value >= 0) {
837
+ symbols.before = symbols.before.replace(/[\-\(]/, '');
838
+ symbols.after = symbols.after.replace(/[\-\)]/, '');
839
+ } else if (value < 0 && (!numeral._.includes(symbols.before, '-') && !numeral._.includes(symbols.before, '('))) {
840
+ symbols.before = '-' + symbols.before;
841
+ }
842
+
843
+ // loop through each before symbol
844
+ for (i = 0; i < symbols.before.length; i++) {
845
+ symbol = symbols.before[i];
846
+
847
+ switch (symbol) {
848
+ case '$':
849
+ output = numeral._.insert(output, locale.currency.symbol, i);
850
+ break;
851
+ case ' ':
852
+ output = numeral._.insert(output, ' ', i + locale.currency.symbol.length - 1);
853
+ break;
854
+ }
855
+ }
856
+
857
+ // loop through each after symbol
858
+ for (i = symbols.after.length - 1; i >= 0; i--) {
859
+ symbol = symbols.after[i];
860
+
861
+ switch (symbol) {
862
+ case '$':
863
+ output = i === symbols.after.length - 1 ? output + locale.currency.symbol : numeral._.insert(output, locale.currency.symbol, -(symbols.after.length - (1 + i)));
864
+ break;
865
+ case ' ':
866
+ output = i === symbols.after.length - 1 ? output + ' ' : numeral._.insert(output, ' ', -(symbols.after.length - (1 + i) + locale.currency.symbol.length - 1));
867
+ break;
868
+ }
869
+ }
870
+
871
+
872
+ return output;
873
+ }
874
+ });
875
+ })();
876
+
877
+
878
+ (function() {
879
+ numeral.register('format', 'exponential', {
880
+ regexps: {
881
+ format: /(e\+|e-)/,
882
+ unformat: /(e\+|e-)/
883
+ },
884
+ format: function(value, format, roundingFunction) {
885
+ var output,
886
+ exponential = typeof value === 'number' && !numeral._.isNaN(value) ? value.toExponential() : '0e+0',
887
+ parts = exponential.split('e');
888
+
889
+ format = format.replace(/e[\+|\-]{1}0/, '');
890
+
891
+ output = numeral._.numberToFormat(Number(parts[0]), format, roundingFunction);
892
+
893
+ return output + 'e' + parts[1];
894
+ },
895
+ unformat: function(string) {
896
+ var parts = numeral._.includes(string, 'e+') ? string.split('e+') : string.split('e-'),
897
+ value = Number(parts[0]),
898
+ power = Number(parts[1]);
899
+
900
+ power = numeral._.includes(string, 'e-') ? power *= -1 : power;
901
+
902
+ function cback(accum, curr, currI, O) {
903
+ var corrFactor = numeral._.correctionFactor(accum, curr),
904
+ num = (accum * corrFactor) * (curr * corrFactor) / (corrFactor * corrFactor);
905
+ return num;
906
+ }
907
+
908
+ return numeral._.reduce([value, Math.pow(10, power)], cback, 1);
909
+ }
910
+ });
911
+ })();
912
+
913
+
914
+ (function() {
915
+ numeral.register('format', 'ordinal', {
916
+ regexps: {
917
+ format: /(o)/
918
+ },
919
+ format: function(value, format, roundingFunction) {
920
+ var locale = numeral.locales[numeral.options.currentLocale],
921
+ output,
922
+ ordinal = numeral._.includes(format, ' o') ? ' ' : '';
923
+
924
+ // check for space before
925
+ format = format.replace(/\s?o/, '');
926
+
927
+ ordinal += locale.ordinal(value);
928
+
929
+ output = numeral._.numberToFormat(value, format, roundingFunction);
930
+
931
+ return output + ordinal;
932
+ }
933
+ });
934
+ })();
935
+
936
+
937
+ (function() {
938
+ numeral.register('format', 'percentage', {
939
+ regexps: {
940
+ format: /(%)/,
941
+ unformat: /(%)/
942
+ },
943
+ format: function(value, format, roundingFunction) {
944
+ var space = numeral._.includes(format, ' %') ? ' ' : '',
945
+ output;
946
+
947
+ if (numeral.options.scalePercentBy100) {
948
+ value = value * 100;
949
+ }
950
+
951
+ // check for space before %
952
+ format = format.replace(/\s?\%/, '');
953
+
954
+ output = numeral._.numberToFormat(value, format, roundingFunction);
955
+
956
+ if (numeral._.includes(output, ')')) {
957
+ output = output.split('');
958
+
959
+ output.splice(-1, 0, space + '%');
960
+
961
+ output = output.join('');
962
+ } else {
963
+ output = output + space + '%';
964
+ }
965
+
966
+ return output;
967
+ },
968
+ unformat: function(string) {
969
+ var number = numeral._.stringToNumber(string);
970
+ if (numeral.options.scalePercentBy100) {
971
+ return number * 0.01;
972
+ }
973
+ return number;
974
+ }
975
+ });
976
+ })();
977
+
978
+
979
+ (function() {
980
+ numeral.register('format', 'time', {
981
+ regexps: {
982
+ format: /(:)/,
983
+ unformat: /(:)/
984
+ },
985
+ format: function(value, format, roundingFunction) {
986
+ var hours = Math.floor(value / 60 / 60),
987
+ minutes = Math.floor((value - (hours * 60 * 60)) / 60),
988
+ seconds = Math.round(value - (hours * 60 * 60) - (minutes * 60));
989
+
990
+ return hours + ':' + (minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds < 10 ? '0' + seconds : seconds);
991
+ },
992
+ unformat: function(string) {
993
+ var timeArray = string.split(':'),
994
+ seconds = 0;
995
+
996
+ // turn hours and minutes into seconds and add them all up
997
+ if (timeArray.length === 3) {
998
+ // hours
999
+ seconds = seconds + (Number(timeArray[0]) * 60 * 60);
1000
+ // minutes
1001
+ seconds = seconds + (Number(timeArray[1]) * 60);
1002
+ // seconds
1003
+ seconds = seconds + Number(timeArray[2]);
1004
+ } else if (timeArray.length === 2) {
1005
+ // minutes
1006
+ seconds = seconds + (Number(timeArray[0]) * 60);
1007
+ // seconds
1008
+ seconds = seconds + Number(timeArray[1]);
1009
+ }
1010
+ return Number(seconds);
1011
+ }
1012
+ });
1013
+ })();
1014
+
1015
+ return numeral;
1016
+ }));
1017
+ } (numeral$1));
1018
+
1019
+ var numeral = numeral$1.exports;
1020
+
1021
+ const CountCircle = ({
1022
+ size = "auto",
1023
+ count = "28",
1024
+ innerPadding = "3px 5px",
1025
+ className,
1026
+ onClick = () => {
1027
+ },
1028
+ bgColor = "bg-grayscale-50"
1029
+ }) => {
1030
+ const _count = count >= 1e3 ? numeral(count).format("0.0a") : count;
1031
+ const style = {
1032
+ width: size,
1033
+ height: size,
1034
+ padding: innerPadding
1035
+ };
1036
+ return /* @__PURE__ */ React.createElement("section", {
1037
+ onClick,
1038
+ className: `${bgColor} rounded-full circle-icon-wrapper text-center absolute right-[-18px] top-[-18px] min-w-[25px] ${className}`,
1039
+ style
1040
+ }, /* @__PURE__ */ React.createElement("div", {
1041
+ className: `h-full`
1042
+ }, /* @__PURE__ */ React.createElement("p", {
1043
+ className: "h-full line-clamp-1 font-semibold text-grayscale-900 text-[12px]"
1044
+ }, _count)));
1045
+ };
1046
+ const CircleIcon = ({
1047
+ iconSrc = ICONS_TO_SOURCE[Icons.coinsIcon],
1048
+ size = "52px",
1049
+ count = "28",
1050
+ innerPadding = "6px",
1051
+ onClick = () => {
1052
+ },
1053
+ bgColor = "bg-grayscale-900"
1054
+ }) => {
1055
+ const style = {
1056
+ width: size,
1057
+ height: size,
1058
+ padding: innerPadding
1059
+ };
1060
+ return /* @__PURE__ */ React.createElement("section", {
1061
+ onClick,
1062
+ className: `${bgColor} rounded-full circle-icon-wrapper p-[0px] m-[0px]`,
1063
+ style
1064
+ }, /* @__PURE__ */ React.createElement("div", {
1065
+ className: `relative w-full h-full`
1066
+ }, /* @__PURE__ */ React.createElement(CountCircle, {
1067
+ count
1068
+ }), /* @__PURE__ */ React.createElement("img", {
1069
+ className: "h-full w-full object-cover",
1070
+ src: iconSrc != null ? iconSrc : "",
1071
+ alt: "Icon image"
1072
+ })));
1073
+ };
1074
+
1075
+ export { CountCircle as C, CircleIcon as a };
1076
+ //# sourceMappingURL=CircleIcon-3ab835f3.js.map