@hipay/hipay-material-ui 2.0.0-beta.36 → 2.0.0-beta.38

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. package/HiAppBar/HiAppBar.js +0 -2
  2. package/HiCell/CellAddress.js +140 -0
  3. package/HiCell/CellDate.js +140 -0
  4. package/HiCell/CellIcon.js +122 -0
  5. package/HiCell/CellImage.js +132 -0
  6. package/HiCell/CellNumeric.js +122 -0
  7. package/HiCell/CellPinToAction.js +92 -0
  8. package/HiCell/CellRate.js +184 -0
  9. package/HiCell/CellSentinel.js +179 -0
  10. package/HiCell/CellText.js +250 -0
  11. package/HiCell/index.js +71 -0
  12. package/HiCheckbox/HiCheckbox.js +2 -2
  13. package/HiDatePicker/Caption.js +0 -1
  14. package/HiDatePicker/HiDatePicker.js +1 -1
  15. package/HiDatePicker/HiDateRangePicker.js +756 -0
  16. package/HiDatePicker/HiDateRangeSelector.js +495 -0
  17. package/HiDatePicker/ListPicker.js +0 -1
  18. package/HiDatePicker/ListPicker.spec.js +1 -2
  19. package/HiDatePicker/NavBar.js +2 -2
  20. package/HiDatePicker/NavBar.spec.js +4 -5
  21. package/HiDatePicker/Overlays/CustomOverlayLayout.js +0 -1
  22. package/HiDatePicker/Overlays/MonthPickerOverlay.js +0 -1
  23. package/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +0 -1
  24. package/HiDatePicker/Overlays/Overlay.js +0 -1
  25. package/HiDatePicker/Overlays/Overlay.spec.js +0 -5
  26. package/HiDatePicker/Overlays/TimePickerOverlay.js +0 -1
  27. package/HiDatePicker/Overlays/TimePickerOverlay.spec.js +0 -1
  28. package/HiDatePicker/Overlays/YearPickerOverlay.js +0 -1
  29. package/HiDatePicker/Overlays/YearPickerOverlay.spec.js +0 -1
  30. package/HiDatePicker/Weekday.js +0 -1
  31. package/HiDatePicker/stylesheet.js +7 -3
  32. package/HiForm/HiFormControl.js +23 -3
  33. package/HiForm/HiInput.js +2 -2
  34. package/HiSelect/HiSelect.js +1 -1
  35. package/HiSelect/HiSuggestSelect.js +8 -8
  36. package/HiSelectableList/HiSelectableList.js +3 -1
  37. package/HiSelectableList/HiSelectableListItem.js +14 -11
  38. package/es/HiAppBar/HiAppBar.js +0 -2
  39. package/es/HiCell/CellAddress.js +97 -0
  40. package/es/HiCell/CellDate.js +94 -0
  41. package/es/HiCell/CellIcon.js +83 -0
  42. package/es/HiCell/CellImage.js +91 -0
  43. package/es/HiCell/CellNumeric.js +80 -0
  44. package/es/HiCell/CellPinToAction.js +53 -0
  45. package/es/HiCell/CellRate.js +142 -0
  46. package/es/HiCell/CellSentinel.js +140 -0
  47. package/es/HiCell/CellText.js +198 -0
  48. package/es/HiCell/index.js +8 -0
  49. package/es/HiCheckbox/HiCheckbox.js +2 -2
  50. package/es/HiDatePicker/Caption.js +0 -1
  51. package/es/HiDatePicker/HiDatePicker.js +1 -1
  52. package/es/HiDatePicker/HiDateRangePicker.js +661 -0
  53. package/es/HiDatePicker/HiDateRangeSelector.js +432 -0
  54. package/es/HiDatePicker/ListPicker.js +0 -1
  55. package/es/HiDatePicker/ListPicker.spec.js +1 -2
  56. package/es/HiDatePicker/NavBar.js +2 -2
  57. package/es/HiDatePicker/NavBar.spec.js +4 -5
  58. package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +0 -1
  59. package/es/HiDatePicker/Overlays/MonthPickerOverlay.js +0 -1
  60. package/es/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +0 -1
  61. package/es/HiDatePicker/Overlays/Overlay.js +0 -1
  62. package/es/HiDatePicker/Overlays/Overlay.spec.js +0 -3
  63. package/es/HiDatePicker/Overlays/TimePickerOverlay.js +0 -1
  64. package/es/HiDatePicker/Overlays/TimePickerOverlay.spec.js +0 -1
  65. package/es/HiDatePicker/Overlays/YearPickerOverlay.js +0 -1
  66. package/es/HiDatePicker/Overlays/YearPickerOverlay.spec.js +0 -1
  67. package/es/HiDatePicker/Overlays/index.js +0 -1
  68. package/es/HiDatePicker/Weekday.js +0 -1
  69. package/es/HiDatePicker/stylesheet.js +7 -3
  70. package/es/HiForm/HiFormControl.js +22 -3
  71. package/es/HiForm/HiInput.js +2 -2
  72. package/es/HiSelect/HiSelect.js +1 -1
  73. package/es/HiSelect/HiSuggestSelect.js +8 -8
  74. package/es/HiSelectableList/HiSelectableList.js +3 -1
  75. package/es/HiSelectableList/HiSelectableListItem.js +14 -11
  76. package/es/index.js +3 -1
  77. package/es/styles/createPalette.js +2 -1
  78. package/es/utils/helpers.js +117 -0
  79. package/index.es.js +3 -1
  80. package/index.js +18 -2
  81. package/package.json +1 -1
  82. package/styles/createPalette.js +1 -1
  83. package/umd/hipay-material-ui.development.js +22630 -13469
  84. package/umd/hipay-material-ui.production.min.js +2 -2
  85. package/utils/helpers.js +134 -0
package/utils/helpers.js CHANGED
@@ -13,6 +13,9 @@ exports.findIndex = findIndex;
13
13
  exports.find = find;
14
14
  exports.createChainedFunction = createChainedFunction;
15
15
  exports.arrayUnique = arrayUnique;
16
+ exports.formatNumber = formatNumber;
17
+ exports.formatCurrencyAmount = formatCurrencyAmount;
18
+ exports.formatRate = formatRate;
16
19
  exports.getNextItemSelectable = getNextItemSelectable;
17
20
 
18
21
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
@@ -134,6 +137,137 @@ function arrayUnique(array) {
134
137
 
135
138
  return a;
136
139
  }
140
+ /**
141
+ * Format number relative to required size and locale
142
+ *
143
+ * @param number
144
+ * @param size
145
+ * @param locale
146
+ * @param precision
147
+ */
148
+
149
+
150
+ function formatNumber(number) {
151
+ var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'l';
152
+ var locale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'en-EN';
153
+ var precision = arguments.length > 3 ? arguments[3] : undefined;
154
+
155
+ // Round number
156
+ switch (size) {
157
+ case 'm':
158
+ number = Math.round(number);
159
+ break;
160
+
161
+ case 's':
162
+ number = Math.round(number);
163
+ break;
164
+
165
+ case 'l':
166
+ default:
167
+ number = Math.round(number * 100) / 100;
168
+ break;
169
+ }
170
+
171
+ var effectivePrecision = precision || (size === 'l' ? 2 : 0); // To locale
172
+
173
+ var options = {
174
+ minimumFractionDigits: effectivePrecision,
175
+ maximumFractionDigits: effectivePrecision,
176
+ useGrouping: true
177
+ };
178
+ return number.toLocaleString(locale.replace(/_/g, '-'), options);
179
+ }
180
+ /**
181
+ * Format currency amount relative to required size, locale and currency
182
+ *
183
+ * large/fr-FR/EUR : 123456789,123 -> 123 465 789,123 €
184
+ * large/en-EN/USD : 123456789,123 -> $ 123,465,789.123
185
+ * large/en-EN/EUR : 123456789,123 -> € 123,465,789.123
186
+ * small/en-EN/EUR : 123456789,123 -> € 123,456,789
187
+ * tiny/en-EN/EUR : 123456789,123 -> € 123M
188
+ * tiny/en-EN/EUR : 23456789,123 -> € 23,456k
189
+ * tiny/en-EN/EUR : 56789,123 -> € 56,789
190
+ *
191
+ * @param amount
192
+ * @param size - l | m | s
193
+ * @param locale
194
+ * @param currency - ISO 4217
195
+ */
196
+
197
+
198
+ function formatCurrencyAmount(amount) {
199
+ var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'l';
200
+ var locale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'en-EN';
201
+ var currency = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'EUR';
202
+ var value = amount;
203
+ var unit = ''; // Round number
204
+
205
+ switch (size) {
206
+ case 'm':
207
+ value = Math.round(amount);
208
+ break;
209
+
210
+ case 's':
211
+ if (amount > 99999999) {
212
+ amount /= 1000000;
213
+ unit = 'M';
214
+ } else if (amount > 99999) {
215
+ amount /= 1000;
216
+ unit = 'k';
217
+ }
218
+
219
+ value = Math.round(amount);
220
+ break;
221
+
222
+ case 'l':
223
+ default:
224
+ value = Math.round(amount * 100) / 100;
225
+ break;
226
+ } // To locale
227
+
228
+
229
+ var options = {
230
+ minimumFractionDigits: size === 'l' ? 2 : 0,
231
+ maximumFractionDigits: size === 'l' ? 2 : 0,
232
+ useGrouping: true,
233
+ style: 'currency',
234
+ currency: currency,
235
+ currencyDisplay: 'symbol'
236
+ };
237
+ var returnValue = value.toLocaleString(locale.replace(/_/g, '-'), options); // Place unit (k, M) after number (don't move currency symbol !)
238
+
239
+ if (unit !== '') {
240
+ returnValue = returnValue.replace(/([\D]*)([\d,.\s]+)([\D]*)/, function (match, p1, p2, p3) {
241
+ return [p1, p2, unit, p3].join('');
242
+ });
243
+ }
244
+
245
+ return returnValue;
246
+ }
247
+ /**
248
+ * Format rate relative to required size and locale
249
+ * large/en-EN : 12.34
250
+ *
251
+ * @param rate
252
+ * @param size
253
+ * @param locale
254
+ */
255
+
256
+
257
+ function formatRate(rate) {
258
+ var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'l';
259
+ var locale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'en-EN';
260
+ var effectiveSize = 0;
261
+ if (size === 'l') effectiveSize = 2;
262
+ if (size === 'm') effectiveSize = 1; // To locale
263
+
264
+ var options = {
265
+ minimumFractionDigits: effectiveSize,
266
+ maximumFractionDigits: effectiveSize,
267
+ style: 'percent'
268
+ };
269
+ return rate.toLocaleString(locale.replace(/_/g, '-'), options);
270
+ }
137
271
  /**
138
272
  * Retourne l'item selectionnable suivant.
139
273
  * @param node