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

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 (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 +2 -1
  77. package/es/styles/createPalette.js +2 -1
  78. package/es/utils/helpers.js +117 -0
  79. package/index.es.js +3 -2
  80. package/index.js +1 -1
  81. package/package.json +1 -1
  82. package/styles/createPalette.js +1 -1
  83. package/umd/hipay-material-ui.development.js +39 -14
  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