@hipay/hipay-material-ui 1.0.0-beta.19 → 1.0.0-beta.20

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 (48) hide show
  1. package/HiChip/HiChip.js +12 -2
  2. package/HiDatePicker/HiDateRangePicker.js +1 -1
  3. package/HiDatePicker/HiDateRangeSelector.js +5 -4
  4. package/HiDatePicker/stylesheet.js +4 -0
  5. package/HiForm/HiAddressField.js +32 -49
  6. package/HiForm/HiInput.js +11 -6
  7. package/HiForm/HiUpload.js +280 -0
  8. package/HiForm/HiUploadField.js +456 -0
  9. package/HiForm/index.js +18 -0
  10. package/HiMap/HiMap.js +367 -0
  11. package/HiMap/HiMapExpand.js +217 -0
  12. package/HiMap/index.js +25 -0
  13. package/HiSelect/HiSelect.js +1 -1
  14. package/HiTable/BodyCellBuilder.js +1 -1
  15. package/HiTable/BodyCells/CellCountry.js +1 -1
  16. package/HiTable/BodyCells/CellImage.js +6 -6
  17. package/HiTable/BodyCells/CellLayout.js +1 -1
  18. package/HiTable/HeaderCell.js +5 -4
  19. package/HiTable/HiTableFooter.js +2 -1
  20. package/HiTopBar/HiTopBar.js +6 -4
  21. package/es/HiChip/HiChip.js +11 -2
  22. package/es/HiDatePicker/HiDateRangePicker.js +1 -1
  23. package/es/HiDatePicker/HiDateRangeSelector.js +5 -4
  24. package/es/HiDatePicker/stylesheet.js +4 -0
  25. package/es/HiForm/HiAddressField.js +30 -45
  26. package/es/HiForm/HiInput.js +10 -5
  27. package/es/HiForm/HiUpload.js +194 -0
  28. package/es/HiForm/HiUploadField.js +368 -0
  29. package/es/HiForm/index.js +2 -0
  30. package/es/HiMap/HiMap.js +285 -0
  31. package/es/HiMap/HiMapExpand.js +145 -0
  32. package/es/HiMap/index.js +2 -0
  33. package/es/HiSelect/HiSelect.js +1 -1
  34. package/es/HiTable/BodyCellBuilder.js +1 -1
  35. package/es/HiTable/BodyCells/CellCountry.js +1 -1
  36. package/es/HiTable/BodyCells/CellImage.js +6 -6
  37. package/es/HiTable/BodyCells/CellLayout.js +1 -1
  38. package/es/HiTable/HeaderCell.js +5 -3
  39. package/es/HiTable/HiTableFooter.js +2 -1
  40. package/es/HiTopBar/HiTopBar.js +6 -4
  41. package/es/styles/createHiMuiTheme.js +2 -0
  42. package/hmu/images/map_marker.svg +8 -0
  43. package/index.es.js +1 -1
  44. package/index.js +1 -1
  45. package/package.json +44 -42
  46. package/styles/createHiMuiTheme.js +2 -0
  47. package/umd/hipay-material-ui.development.js +58049 -14511
  48. package/umd/hipay-material-ui.production.min.js +5 -5
@@ -0,0 +1,456 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.styles = undefined;
7
+
8
+ var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
9
+
10
+ var _defineProperty3 = _interopRequireDefault(_defineProperty2);
11
+
12
+ var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
13
+
14
+ var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
15
+
16
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
17
+
18
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
19
+
20
+ var _createClass2 = require('babel-runtime/helpers/createClass');
21
+
22
+ var _createClass3 = _interopRequireDefault(_createClass2);
23
+
24
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
25
+
26
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
27
+
28
+ var _inherits2 = require('babel-runtime/helpers/inherits');
29
+
30
+ var _inherits3 = _interopRequireDefault(_inherits2);
31
+
32
+ var _extends2 = require('babel-runtime/helpers/extends');
33
+
34
+ var _extends3 = _interopRequireDefault(_extends2);
35
+
36
+ var _react = require('react');
37
+
38
+ var _react2 = _interopRequireDefault(_react);
39
+
40
+ var _propTypes = require('prop-types');
41
+
42
+ var _propTypes2 = _interopRequireDefault(_propTypes);
43
+
44
+ var _classnames = require('classnames');
45
+
46
+ var _classnames2 = _interopRequireDefault(_classnames);
47
+
48
+ var _withStyles = require('../styles/withStyles');
49
+
50
+ var _withStyles2 = _interopRequireDefault(_withStyles);
51
+
52
+ var _HiIconBuilder = require('../utils/HiIconBuilder');
53
+
54
+ var _HiIconBuilder2 = _interopRequireDefault(_HiIconBuilder);
55
+
56
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
57
+
58
+ var styles = exports.styles = function styles(theme) {
59
+ return {
60
+ root: (0, _extends3.default)({
61
+ position: 'relative'
62
+ }, theme.typography.body1, {
63
+ borderBottom: '1px solid ' + theme.palette.input.bottomLine,
64
+ paddingLeft: 8,
65
+ backgroundColor: theme.palette.local.background2,
66
+ height: 40,
67
+ display: 'inline-flex',
68
+ justifyContent: 'flex-start',
69
+ '&$focused, &$dragOver': {
70
+ backgroundColor: theme.palette.global.background1
71
+ },
72
+ width: '100%',
73
+ // Ajout d'1px pour ne pas avoir de décalage en mode error avec le border top
74
+ '&:not($error)': {
75
+ marginTop: 1
76
+ }
77
+ }),
78
+ underline: {
79
+ '&:before': {
80
+ left: 0,
81
+ bottom: 0,
82
+ // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
83
+ content: '""',
84
+ height: 1,
85
+ position: 'absolute',
86
+ right: 0,
87
+ transition: theme.transitions.create('background-color', {
88
+ duration: theme.transitions.duration.shorter,
89
+ easing: theme.transitions.easing.ease
90
+ }),
91
+ pointerEvents: 'none' // Transparent to the hover style.
92
+ },
93
+ '&:hover:not($disabled):before': {
94
+ backgroundColor: theme.palette.input.bottomLine,
95
+ height: 2
96
+ },
97
+ '&$disabled:before': {
98
+ background: 'transparent',
99
+ backgroundImage: 'linear-gradient(to right, ' + theme.palette.input.bottomLine + ' 33%, transparent 0%)',
100
+ backgroundPosition: 'left top',
101
+ backgroundRepeat: 'repeat-x',
102
+ backgroundSize: '5px 1px'
103
+ }
104
+ },
105
+ inkbar: {
106
+ '&:not($disabled)': {
107
+ '&:not($error):after': {
108
+ backgroundColor: theme.palette.business.primary.normal,
109
+ left: 0,
110
+ bottom: 0,
111
+ // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
112
+ content: '""',
113
+ height: 1,
114
+ position: 'absolute',
115
+ right: 0,
116
+ transform: 'scaleX(0)',
117
+ transition: theme.transitions.create('transform', {
118
+ duration: theme.transitions.duration.shorter,
119
+ easing: theme.transitions.easing.easeOut
120
+ }),
121
+ pointerEvents: 'none' // Transparent to the hover style.
122
+ },
123
+ '&:hover:after': {
124
+ transform: 'scaleX(1)'
125
+ },
126
+ '&$dragOver:after': {
127
+ transform: 'scaleX(1)'
128
+ },
129
+ '&$focused:after': {
130
+ transform: 'scaleX(1)'
131
+ },
132
+ '&$error': {
133
+ borderBottom: '1px solid ' + theme.palette.negative.normal
134
+ }
135
+ }
136
+ },
137
+ disabled: {
138
+ color: '' + theme.palette.action.disabled,
139
+ '&:before': {
140
+ display: 'none'
141
+ }
142
+ },
143
+ focused: {
144
+ backgroundColor: theme.palette.background3
145
+ },
146
+ error: {},
147
+ label: (0, _extends3.default)({}, theme.typography.body1, {
148
+ fontWeight: theme.typography.fontWeightRegular,
149
+ caretColor: theme.palette.business.primary.normal,
150
+ alignItems: 'center',
151
+ whiteSpace: 'nowrap',
152
+ overflow: 'hidden',
153
+ textOverflow: 'ellipsis',
154
+ padding: theme.spacing.unit - 2 + 'px 0 ' + (theme.spacing.unit - 1) + 'px',
155
+ height: 39,
156
+ display: 'inline-flex',
157
+ width: '100%',
158
+ '&$empty': {
159
+ opacity: 0.42
160
+ }
161
+ }),
162
+ empty: {},
163
+ dragOver: {},
164
+ droppable: {},
165
+ endAdornment: {
166
+ display: 'flex',
167
+ alignItems: 'center'
168
+ },
169
+ icon: {
170
+ display: 'inline-flex',
171
+ alignItems: 'center',
172
+ right: 0,
173
+ padding: '8px',
174
+ color: '' + theme.palette.text.icon,
175
+ transition: theme.transitions.create(['opacity', 'transform'], {
176
+ duration: theme.transitions.duration.shorter
177
+ }),
178
+ '&:hover': {
179
+ color: 'inherit'
180
+ }
181
+ }
182
+ };
183
+ };
184
+
185
+ var HiUploadField = function (_React$PureComponent) {
186
+ (0, _inherits3.default)(HiUploadField, _React$PureComponent);
187
+
188
+ function HiUploadField(props) {
189
+ (0, _classCallCheck3.default)(this, HiUploadField);
190
+
191
+ var _this = (0, _possibleConstructorReturn3.default)(this, (HiUploadField.__proto__ || (0, _getPrototypeOf2.default)(HiUploadField)).call(this, props));
192
+
193
+ _this.state = {
194
+ errorMessage: '',
195
+ dragOver: false,
196
+ droppable: false
197
+ };
198
+ _this.uploadFieldRef;
199
+ _this.handleChange = _this.handleChange.bind(_this);
200
+ _this.handleClear = _this.handleClear.bind(_this);
201
+ _this.handleSeeFile = _this.handleSeeFile.bind(_this);
202
+ _this.handleDrop = _this.handleDrop.bind(_this);
203
+ _this.handleDragEnter = _this.handleDragEnter.bind(_this);
204
+ _this.handleDragLeave = _this.handleDragLeave.bind(_this);
205
+ return _this;
206
+ }
207
+
208
+ // When component mounts, we add eventListeners to handle the file drag and drop
209
+
210
+
211
+ (0, _createClass3.default)(HiUploadField, [{
212
+ key: 'componentDidMount',
213
+ value: function componentDidMount() {
214
+ this.uploadFieldRef.addEventListener('dragenter', this.handleDragEnter, false);
215
+ this.uploadFieldRef.addEventListener('dragleave', this.handleDragLeave, false);
216
+ this.uploadFieldRef.addEventListener('dragover', function (event) {
217
+ event.preventDefault();
218
+ }, false);
219
+ this.uploadFieldRef.addEventListener('drop', this.handleDrop, false);
220
+ }
221
+ }, {
222
+ key: 'componentWillUnmount',
223
+ value: function componentWillUnmount() {
224
+ this.uploadFieldRef.removeEventListener('dragenter', this.handleDragEnter, false);
225
+ this.uploadFieldRef.removeEventListener('dragleave', this.handleDragLeave, false);
226
+ this.uploadFieldRef.removeEventListener('dragover', function (event) {
227
+ event.preventDefault();
228
+ }, false);
229
+ this.uploadFieldRef.removeEventListener('drop', this.handleDrop, false);
230
+ }
231
+
232
+ // Action when files are dropped on the field
233
+
234
+ }, {
235
+ key: 'handleDrop',
236
+ value: function handleDrop(event) {
237
+ if (event.target === this.uploadFieldRef) {
238
+ event.preventDefault();
239
+ event.stopPropagation();
240
+ if (this.state.droppable) {
241
+ var param = this.handleFile(event.dataTransfer.files);
242
+ this.setState({ dragOver: false });
243
+ this.props.onChange(param, this.props.index);
244
+ } else {
245
+ this.setState({
246
+ errorMessage: this.props.translations.errorDropMultiple,
247
+ error: false,
248
+ dragOver: false
249
+ });
250
+ }
251
+ }
252
+ }
253
+
254
+ // Action when files are dragged over the field.
255
+
256
+ }, {
257
+ key: 'handleDragEnter',
258
+ value: function handleDragEnter(event) {
259
+ event.preventDefault();
260
+ event.stopPropagation();
261
+ if (event.target === this.uploadFieldRef) {
262
+ if (event.dataTransfer.items.length !== 1) {
263
+ event.dataTransfer.dropEffect = 'none';
264
+ this.props.onChange({
265
+ errorMessage: this.props.translations.errorDragEnter,
266
+ error: true,
267
+ value: null
268
+ }, this.props.index);
269
+ this.setState({ dragOver: true });
270
+ } else {
271
+ this.setState({ droppable: true, dragOver: true });
272
+ }
273
+ }
274
+ }
275
+
276
+ // Action when files are not dragged over the field anymore.
277
+
278
+ }, {
279
+ key: 'handleDragLeave',
280
+ value: function handleDragLeave(event) {
281
+ event.preventDefault();
282
+ event.stopPropagation();
283
+ if (event.target === this.uploadFieldRef && event.relatedTarget.parentElement !== this.uploadFieldRef) {
284
+ this.props.onChange({ errorMessage: '', error: false, value: null }, this.props.index);
285
+ this.setState({ droppable: false, dragOver: false });
286
+ }
287
+ }
288
+ }, {
289
+ key: 'handleChange',
290
+ value: function handleChange(event) {
291
+ var param = this.handleFile(event.target.files);
292
+ this.props.onChange(param, this.props.index);
293
+ }
294
+ }, {
295
+ key: 'handleClear',
296
+ value: function handleClear() {
297
+ this.props.onClear(this.props.index);
298
+ }
299
+ }, {
300
+ key: 'handleSeeFile',
301
+ value: function handleSeeFile() {
302
+ this.props.onSeeFile(this.props.value);
303
+ }
304
+
305
+ // Handles the file wether it is selected via the input or dropped on it.
306
+
307
+ }, {
308
+ key: 'handleFile',
309
+ value: function handleFile(files) {
310
+ var error = false;
311
+ var errorMessage = '';
312
+ var file = null;
313
+ if (files.length === 1) {
314
+ file = files[0];
315
+ errorMessage = '';
316
+ if (file.size > this.props.maxSize) {
317
+ errorMessage += this.props.translations.errorSize.replace('maxSize', this.props.maxSize / 1000000);
318
+ error = true;
319
+ }
320
+ if (this.props.acceptedTypes.length !== 0 && this.props.acceptedTypes.indexOf(file.type) === -1) {
321
+ errorMessage += this.props.translations.errorType;
322
+ error = true;
323
+ }
324
+ } else {
325
+ errorMessage = this.props.translations.errorDropMultiple;
326
+ }
327
+ return { errorMessage: errorMessage, error: error, value: file };
328
+ }
329
+ }, {
330
+ key: 'render',
331
+ value: function render() {
332
+ var _classNames,
333
+ _this2 = this;
334
+
335
+ var _props = this.props,
336
+ placeholder = _props.placeholder,
337
+ classes = _props.classes,
338
+ disabled = _props.disabled,
339
+ focused = _props.focused,
340
+ value = _props.value,
341
+ error = _props.error;
342
+ var _state = this.state,
343
+ dragOver = _state.dragOver,
344
+ errorMessage = _state.errorMessage,
345
+ droppable = _state.droppable;
346
+
347
+ // On utilise classNames pour variabiliser les styles et merger les classes appliquées
348
+
349
+ var rootClass = (0, _classnames2.default)(classes.root, classes.inkbar, classes.underline, (_classNames = {}, (0, _defineProperty3.default)(_classNames, classes.disabled, disabled), (0, _defineProperty3.default)(_classNames, classes.focused, focused), (0, _defineProperty3.default)(_classNames, classes.error, error && !focused), (0, _defineProperty3.default)(_classNames, classes.dragOver, dragOver), (0, _defineProperty3.default)(_classNames, classes.droppable, droppable), _classNames));
350
+
351
+ return _react2.default.createElement(
352
+ 'div',
353
+ { className: rootClass },
354
+ _react2.default.createElement(
355
+ 'label',
356
+ {
357
+ className: (0, _classnames2.default)(classes.label, (0, _defineProperty3.default)({}, classes.empty, value === null)),
358
+ ref: function ref(label) {
359
+ return _this2.uploadFieldRef = label;
360
+ }
361
+ },
362
+ value ? value.name : error && errorMessage || placeholder,
363
+ _react2.default.createElement('input', { type: 'file', hidden: true, onChange: this.handleChange })
364
+ ),
365
+ value === null || _react2.default.createElement(
366
+ 'div',
367
+ { className: classes.endAdornment },
368
+ _react2.default.createElement(_HiIconBuilder2.default, {
369
+ icon: 'eye',
370
+ size: 36,
371
+ className: classes.icon,
372
+ onClick: this.handleSeeFile
373
+ }),
374
+ _react2.default.createElement(_HiIconBuilder2.default, {
375
+ icon: 'delete',
376
+ size: 36,
377
+ className: classes.icon,
378
+ onClick: this.handleClear
379
+ })
380
+ )
381
+ );
382
+ }
383
+ }]);
384
+ return HiUploadField;
385
+ }(_react2.default.PureComponent);
386
+
387
+ HiUploadField.defaultProps = {
388
+ placeholder: 'Choose a file',
389
+ disabled: false,
390
+ focused: false,
391
+ acceptedTypes: [],
392
+ maxSize: 10000000,
393
+ error: false,
394
+ value: null,
395
+ translations: {
396
+ errorSize: "Votre fichier est trop lourd. Nous acceptons jusqu'à maxSizeMo",
397
+ errorDropMultiple: 'Veuillez insérer un et un seul fichier',
398
+ errorType: "Ce type de fichier n'est pas accepté",
399
+ errorDragEnter: 'Contenu non correct'
400
+ }
401
+ };
402
+ HiUploadField.propTypes = process.env.NODE_ENV !== "production" ? {
403
+ /**
404
+ * Defines what kind of file types the input accepts. If empty, no restrictions about the file type.
405
+ */
406
+ acceptedTypes: _propTypes2.default.array,
407
+ /**
408
+ * Useful to extend the style applied to components.
409
+ */
410
+ classes: _propTypes2.default.object,
411
+ /**
412
+ * Is the field disabled.
413
+ */
414
+ disabled: _propTypes2.default.bool,
415
+ /**
416
+ * Is there an error with the file selected.
417
+ */
418
+ error: _propTypes2.default.bool,
419
+ /**
420
+ * Is the field focused.
421
+ */
422
+ focused: _propTypes2.default.bool,
423
+ /**
424
+ * The index of the input.
425
+ */
426
+ index: _propTypes2.default.number,
427
+ /**
428
+ * Defines what size the file must not exceed (in bytes).
429
+ */
430
+ maxSize: _propTypes2.default.number,
431
+ /**
432
+ * The change handler.
433
+ */
434
+ onChange: _propTypes2.default.func,
435
+ /**
436
+ * The handler to clear the field.
437
+ */
438
+ onClear: _propTypes2.default.func,
439
+ /**
440
+ * The handler to see the file.
441
+ */
442
+ onSeeFile: _propTypes2.default.func,
443
+ /**
444
+ * The placeholder for the field.
445
+ */
446
+ placeholder: _propTypes2.default.string,
447
+ /**
448
+ * The translations of the error messages.
449
+ */
450
+ translations: _propTypes2.default.object,
451
+ /**
452
+ * The file value for the field.
453
+ */
454
+ value: _propTypes2.default.object
455
+ } : {};
456
+ exports.default = (0, _withStyles2.default)(styles, { name: 'HmuiHiUploadField' })(HiUploadField);
package/HiForm/index.js CHANGED
@@ -67,6 +67,24 @@ Object.defineProperty(exports, 'HiSearchField', {
67
67
  }
68
68
  });
69
69
 
70
+ var _HiUpload = require('./HiUpload');
71
+
72
+ Object.defineProperty(exports, 'HiUpload', {
73
+ enumerable: true,
74
+ get: function get() {
75
+ return _interopRequireDefault(_HiUpload).default;
76
+ }
77
+ });
78
+
79
+ var _HiUploadField = require('./HiUploadField');
80
+
81
+ Object.defineProperty(exports, 'HiUploadField', {
82
+ enumerable: true,
83
+ get: function get() {
84
+ return _interopRequireDefault(_HiUploadField).default;
85
+ }
86
+ });
87
+
70
88
  var _HiSlider = require('./HiSlider');
71
89
 
72
90
  Object.defineProperty(exports, 'HiSlider', {