@hipay/hipay-material-ui 1.0.0-beta.19 → 1.0.0-beta.20
Sign up to get free protection for your applications and to get access to all the features.
- package/HiChip/HiChip.js +12 -2
- package/HiDatePicker/HiDateRangePicker.js +1 -1
- package/HiDatePicker/HiDateRangeSelector.js +5 -4
- package/HiDatePicker/stylesheet.js +4 -0
- package/HiForm/HiAddressField.js +32 -49
- package/HiForm/HiInput.js +11 -6
- package/HiForm/HiUpload.js +280 -0
- package/HiForm/HiUploadField.js +456 -0
- package/HiForm/index.js +18 -0
- package/HiMap/HiMap.js +367 -0
- package/HiMap/HiMapExpand.js +217 -0
- package/HiMap/index.js +25 -0
- package/HiSelect/HiSelect.js +1 -1
- package/HiTable/BodyCellBuilder.js +1 -1
- package/HiTable/BodyCells/CellCountry.js +1 -1
- package/HiTable/BodyCells/CellImage.js +6 -6
- package/HiTable/BodyCells/CellLayout.js +1 -1
- package/HiTable/HeaderCell.js +5 -4
- package/HiTable/HiTableFooter.js +2 -1
- package/HiTopBar/HiTopBar.js +6 -4
- package/es/HiChip/HiChip.js +11 -2
- package/es/HiDatePicker/HiDateRangePicker.js +1 -1
- package/es/HiDatePicker/HiDateRangeSelector.js +5 -4
- package/es/HiDatePicker/stylesheet.js +4 -0
- package/es/HiForm/HiAddressField.js +30 -45
- package/es/HiForm/HiInput.js +10 -5
- package/es/HiForm/HiUpload.js +194 -0
- package/es/HiForm/HiUploadField.js +368 -0
- package/es/HiForm/index.js +2 -0
- package/es/HiMap/HiMap.js +285 -0
- package/es/HiMap/HiMapExpand.js +145 -0
- package/es/HiMap/index.js +2 -0
- package/es/HiSelect/HiSelect.js +1 -1
- package/es/HiTable/BodyCellBuilder.js +1 -1
- package/es/HiTable/BodyCells/CellCountry.js +1 -1
- package/es/HiTable/BodyCells/CellImage.js +6 -6
- package/es/HiTable/BodyCells/CellLayout.js +1 -1
- package/es/HiTable/HeaderCell.js +5 -3
- package/es/HiTable/HiTableFooter.js +2 -1
- package/es/HiTopBar/HiTopBar.js +6 -4
- package/es/styles/createHiMuiTheme.js +2 -0
- package/hmu/images/map_marker.svg +8 -0
- package/index.es.js +1 -1
- package/index.js +1 -1
- package/package.json +44 -42
- package/styles/createHiMuiTheme.js +2 -0
- package/umd/hipay-material-ui.development.js +58049 -14511
- package/umd/hipay-material-ui.production.min.js +5 -5
package/HiTable/HeaderCell.js
CHANGED
@@ -226,8 +226,7 @@ var HeaderCell = function (_React$PureComponent) {
|
|
226
226
|
filterSource = _props.filterSource,
|
227
227
|
view = _props.view,
|
228
228
|
dense = _props.dense,
|
229
|
-
|
230
|
-
width = _props$width === undefined ? cst.DEFAULT_WIDTHS[type][view] : _props$width,
|
229
|
+
width = _props.width,
|
231
230
|
fixedColumnWidth = _props.fixedColumnWidth,
|
232
231
|
_props$align = _props.align,
|
233
232
|
align = _props$align === undefined ? cst.ALIGN_RIGHT_TYPES.includes(type) ? 'right' : 'left' : _props$align,
|
@@ -243,7 +242,7 @@ var HeaderCell = function (_React$PureComponent) {
|
|
243
242
|
var offset = selectable ? dense ? 32 : 40 : padding;
|
244
243
|
|
245
244
|
// Inclue le padding et/ou la checkbox dans la largeur de la cellule
|
246
|
-
var _width = width + offset + padding;
|
245
|
+
var _width = (width || cst.DEFAULT_WIDTHS[type][view]) + offset + padding;
|
247
246
|
// N'affiche pas le tri si il est désactivé.
|
248
247
|
var _sorted = sortable && sorted;
|
249
248
|
// N'active pas le filtre si il n'y a pas de jeu de donnée sur lesquelles filtrées.
|
@@ -275,6 +274,8 @@ var HeaderCell = function (_React$PureComponent) {
|
|
275
274
|
cellStyle.maxWidth = _width;
|
276
275
|
cellStyle.minWidth = _width;
|
277
276
|
cellStyle.width = _width;
|
277
|
+
} else if (width) {
|
278
|
+
cellStyle.width = width;
|
278
279
|
}
|
279
280
|
|
280
281
|
return _react2.default.createElement(
|
@@ -446,7 +447,7 @@ HeaderCell.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
446
447
|
/**
|
447
448
|
* Largeur de la cellule (hors padding), est déduit de view par défaut
|
448
449
|
*/
|
449
|
-
width: _propTypes2.default.number,
|
450
|
+
width: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
|
450
451
|
/**
|
451
452
|
* La largeur de la cellule est fixé (toutes les colonnes sauf une)
|
452
453
|
*/
|
package/HiTable/HiTableFooter.js
CHANGED
package/HiTopBar/HiTopBar.js
CHANGED
@@ -285,7 +285,8 @@ var HiTopBar = function (_React$Component) {
|
|
285
285
|
_AppBar2.default,
|
286
286
|
{
|
287
287
|
classes: { root: classes.root, colorPrimary: colorPrimaryClass },
|
288
|
-
position: this.props.position
|
288
|
+
position: this.props.position,
|
289
|
+
id: 'top-bar'
|
289
290
|
},
|
290
291
|
_react2.default.createElement(
|
291
292
|
_Hidden2.default,
|
@@ -304,7 +305,7 @@ var HiTopBar = function (_React$Component) {
|
|
304
305
|
{ className: classes.toolbar },
|
305
306
|
_react2.default.createElement(
|
306
307
|
'div',
|
307
|
-
{ ref: refButtons },
|
308
|
+
{ ref: refButtons, id: 'menu-button-container' },
|
308
309
|
searchFocus ? _react2.default.createElement(
|
309
310
|
_HiButton2.default,
|
310
311
|
{
|
@@ -335,7 +336,7 @@ var HiTopBar = function (_React$Component) {
|
|
335
336
|
),
|
336
337
|
_react2.default.createElement(
|
337
338
|
'div',
|
338
|
-
{ className: classes.flex },
|
339
|
+
{ id: 'quick-search-input', className: classes.flex },
|
339
340
|
searchInput
|
340
341
|
),
|
341
342
|
notificationButton,
|
@@ -347,7 +348,8 @@ var HiTopBar = function (_React$Component) {
|
|
347
348
|
classes: {
|
348
349
|
label: classes.accountSelectorButtonLabel
|
349
350
|
},
|
350
|
-
onClick: this.props.onClickAccountSelector
|
351
|
+
onClick: this.props.onClickAccountSelector,
|
352
|
+
id: 'account-selector-button'
|
351
353
|
},
|
352
354
|
accountSelectorContent
|
353
355
|
),
|
package/es/HiChip/HiChip.js
CHANGED
@@ -50,9 +50,12 @@ export const styles = theme => ({
|
|
50
50
|
whiteSpace: 'nowrap',
|
51
51
|
color: theme.palette.neutral.dark,
|
52
52
|
overflow: 'hidden',
|
53
|
-
width: '100%',
|
54
53
|
textOverflow: 'ellipsis'
|
55
54
|
},
|
55
|
+
prefix: {
|
56
|
+
color: theme.palette.neutral.dark,
|
57
|
+
paddingRight: 4
|
58
|
+
},
|
56
59
|
navigate: {
|
57
60
|
// Remove grey highlight
|
58
61
|
WebkitTapHighlightColor: 'transparent',
|
@@ -75,7 +78,7 @@ export const styles = theme => ({
|
|
75
78
|
});
|
76
79
|
|
77
80
|
function HiChip(props) {
|
78
|
-
const { label, classes, icon, img, onPrevious, onNext, onDelete } = props;
|
81
|
+
const { label, classes, icon, img, onPrevious, onNext, onDelete, prefix } = props;
|
79
82
|
|
80
83
|
return React.createElement(
|
81
84
|
'div',
|
@@ -86,6 +89,12 @@ function HiChip(props) {
|
|
86
89
|
[classes.deletable]: onDelete
|
87
90
|
})
|
88
91
|
},
|
92
|
+
prefix && React.createElement(
|
93
|
+
'span',
|
94
|
+
{ className: classes.prefix },
|
95
|
+
prefix,
|
96
|
+
' : '
|
97
|
+
),
|
89
98
|
img && React.createElement('img', { className: classes.badge, src: img, alt: img }),
|
90
99
|
icon && React.createElement(HiIconBuilder, { className: classes.icon, icon: icon, size: 16 }),
|
91
100
|
onPrevious && React.createElement(HiIconBuilder, {
|
@@ -28,9 +28,9 @@ export function buildDateRangeOptionByKey(key, t, format) {
|
|
28
28
|
break;
|
29
29
|
case 'cd':
|
30
30
|
label = t.today;
|
31
|
-
from = moment().
|
32
|
-
to = moment();
|
33
|
-
info = `${from.
|
31
|
+
from = moment().startOf('day');
|
32
|
+
to = moment().endOf('day');
|
33
|
+
info = `${from.format(format)}`;
|
34
34
|
break;
|
35
35
|
case 'pd':
|
36
36
|
label = t.yesterday;
|
@@ -97,7 +97,8 @@ export function buildDateRangeOptionByKey(key, t, format) {
|
|
97
97
|
export const styles = theme => ({
|
98
98
|
root: {
|
99
99
|
maxWidth: 500,
|
100
|
-
marginLeft: -4
|
100
|
+
marginLeft: -4,
|
101
|
+
alignItems: 'flex-start'
|
101
102
|
},
|
102
103
|
dateSelect: {
|
103
104
|
paddingTop: 1,
|
@@ -12,31 +12,27 @@ import HiSuggestSelectField from '../HiSelect/HiSuggestSelectField';
|
|
12
12
|
class HiAddressField extends React.Component {
|
13
13
|
constructor(props) {
|
14
14
|
super(props);
|
15
|
-
this.autocompleteService = null;
|
16
15
|
|
17
|
-
this.displaySuggestions =
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
//
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
}, this);
|
38
|
-
this.setState({ options, isExact });
|
39
|
-
}
|
16
|
+
this.displaySuggestions = predictions => {
|
17
|
+
// Sinon je mets à jour les options du champ avec les prédictions de GMaps
|
18
|
+
const options = [];
|
19
|
+
let isExact = false;
|
20
|
+
predictions.forEach(prediction => {
|
21
|
+
// Si le texte saisi est identique à une des propositions,
|
22
|
+
// on estime que la valeur de l'adresse est exacte,
|
23
|
+
// même sans clic sur une proposition
|
24
|
+
isExact = prediction.display_name === this.value ? true : isExact;
|
25
|
+
// liste des types d'adresse : https://github.com/openstreetmap/Nominatim/blob/80df4d3b560f5b1fd550dcf8cdc09a992b69fee0/settings/partitionedtags.def
|
26
|
+
options.push({
|
27
|
+
id: prediction.place_id,
|
28
|
+
label: prediction.display_name,
|
29
|
+
labelHighlight: prediction.display_name.replace(new RegExp(this.value, 'gi'), '<strong>$&</strong>'),
|
30
|
+
icon: ['amenity', 'building'].includes(prediction.category) ? 'domain' : 'map_marker',
|
31
|
+
type: 'icon',
|
32
|
+
key: prediction.id
|
33
|
+
});
|
34
|
+
}, this);
|
35
|
+
this.setState({ options, isExact });
|
40
36
|
};
|
41
37
|
|
42
38
|
this.state = {
|
@@ -50,13 +46,6 @@ class HiAddressField extends React.Component {
|
|
50
46
|
this.displaySuggestions = this.displaySuggestions.bind(this);
|
51
47
|
}
|
52
48
|
|
53
|
-
/**
|
54
|
-
* Au chargement du composant, je définis mon service autocomplete GMaps
|
55
|
-
*/
|
56
|
-
componentDidMount() {
|
57
|
-
this.autocompleteService = new google.maps.places.AutocompleteService();
|
58
|
-
}
|
59
|
-
|
60
49
|
handleReset() {
|
61
50
|
this.props.onReset();
|
62
51
|
this.setState({
|
@@ -68,23 +57,19 @@ class HiAddressField extends React.Component {
|
|
68
57
|
handleSearch(event) {
|
69
58
|
// Je vérifie que le champ n'est pas vide car l'API lève une exception en cas d'input vide
|
70
59
|
if (event.target.value) {
|
71
|
-
// Liste des types à rechercher. Voir https://developers.google.com/places/web-service/autocomplete?hl=fr#place_types (ex : ['establishement', 'address']
|
72
|
-
const types = [];
|
73
|
-
// Liste des codes ISO Alpha-2 des pays où il faut rechercher (ex : ['fr', 'us'])
|
74
|
-
const countries = [];
|
75
60
|
// À chaque changement, la méthode getPlacesPredictions appelle la méthode
|
76
61
|
// displaySuggestions en lui fournissant un tableau de 5 prédictions
|
77
62
|
this.value = event.target.value;
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
}
|
84
|
-
}
|
85
|
-
|
86
|
-
|
87
|
-
|
63
|
+
const xhr = new XMLHttpRequest();
|
64
|
+
xhr.onreadystatechange = () => {
|
65
|
+
if (xhr.readyState === XMLHttpRequest.DONE) {
|
66
|
+
const response = JSON.parse(xhr.responseText);
|
67
|
+
this.displaySuggestions(response, 'OK');
|
68
|
+
}
|
69
|
+
};
|
70
|
+
xhr.open('GET', `https://nominatim.openstreetmap.org/search?q=${event.target.value}&format=jsonv2&limit=5&bounded=1&dedupe=1&namedetails=1`, true);
|
71
|
+
xhr.setRequestHeader('Content-type', 'application/json');
|
72
|
+
xhr.send();
|
88
73
|
}
|
89
74
|
this.props.onSearch(event);
|
90
75
|
// Mise à jour du texte dans l'input
|
package/es/HiForm/HiInput.js
CHANGED
@@ -65,7 +65,6 @@ export const styles = theme => ({
|
|
65
65
|
color: theme.palette.neutral.light
|
66
66
|
},
|
67
67
|
rightIcon: {
|
68
|
-
margin: '0 8px',
|
69
68
|
width: 18,
|
70
69
|
height: 39,
|
71
70
|
color: theme.palette.neutral.normal
|
@@ -78,7 +77,7 @@ export const styles = theme => ({
|
|
78
77
|
},
|
79
78
|
rightIconError: {
|
80
79
|
// Ajout d'1px pour ne pas avoir de décalage en mode error avec le border right
|
81
|
-
marginRight:
|
80
|
+
marginRight: '-1px'
|
82
81
|
},
|
83
82
|
input: _extends({}, theme.typography.body1, {
|
84
83
|
fontWeight: theme.typography.fontWeightRegular,
|
@@ -179,7 +178,6 @@ class HiInput extends React.PureComponent {
|
|
179
178
|
if (this.props.onFocus) {
|
180
179
|
this.props.onFocus(event);
|
181
180
|
}
|
182
|
-
this.inputElement.focus();
|
183
181
|
}
|
184
182
|
}
|
185
183
|
|
@@ -256,6 +254,8 @@ class HiInput extends React.PureComponent {
|
|
256
254
|
if (startAdornment) {
|
257
255
|
leftIcon = React.createElement(HiIconBuilder, {
|
258
256
|
icon: startAdornment,
|
257
|
+
size: 36,
|
258
|
+
style: { padding: '8px' },
|
259
259
|
onClick: this.props.onLeftIconClick,
|
260
260
|
className: classNames(classes.startAdornment, {
|
261
261
|
[classes.startAdornmentFocus]: focused,
|
@@ -272,13 +272,15 @@ class HiInput extends React.PureComponent {
|
|
272
272
|
onClick: this.handleReset,
|
273
273
|
onBlur: this.handleBlur
|
274
274
|
},
|
275
|
-
React.createElement(HiIconBuilder, { icon: 'close', size:
|
275
|
+
React.createElement(HiIconBuilder, { icon: 'close', size: 36, color: theme.palette.neutral.normal, style: { padding: '8px' } })
|
276
276
|
);
|
277
277
|
|
278
278
|
let endAdornment = endAdornmentProps;
|
279
279
|
if (typeof endAdornmentProps === 'string' && endAdornmentProps !== '') {
|
280
280
|
endAdornment = React.createElement(HiIconBuilder, {
|
281
281
|
icon: endAdornmentProps,
|
282
|
+
size: 36,
|
283
|
+
style: { padding: '8px' },
|
282
284
|
onClick: this.props.onRightIconClick,
|
283
285
|
className: classNames(classes.rightIcon, {
|
284
286
|
[classes.rightIconFocus]: focused,
|
@@ -314,7 +316,10 @@ class HiInput extends React.PureComponent {
|
|
314
316
|
startAdornment: leftIcon,
|
315
317
|
endAdornment: React.createElement(
|
316
318
|
'div',
|
317
|
-
{
|
319
|
+
{
|
320
|
+
className: classes.endAdornment,
|
321
|
+
ref: el => this.endAdornmentNode = el
|
322
|
+
},
|
318
323
|
eraseIcon,
|
319
324
|
endAdornment
|
320
325
|
),
|
@@ -0,0 +1,194 @@
|
|
1
|
+
import _extends from 'babel-runtime/helpers/extends';
|
2
|
+
import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
|
3
|
+
// @inheritedComponent HiUploadField
|
4
|
+
|
5
|
+
import React from 'react';
|
6
|
+
import PropTypes from 'prop-types';
|
7
|
+
import classNames from 'classnames';
|
8
|
+
import withStyles from '../styles/withStyles';
|
9
|
+
import withTheme from '../styles/withTheme';
|
10
|
+
import HiFormControl from './HiFormControl';
|
11
|
+
import HiUploadField from './HiUploadField';
|
12
|
+
import HiIconBuilder from '../utils/HiIconBuilder';
|
13
|
+
|
14
|
+
export const styles = theme => ({
|
15
|
+
flexContainer: {
|
16
|
+
display: ' flex',
|
17
|
+
alignItems: 'center'
|
18
|
+
},
|
19
|
+
statusIcon: {
|
20
|
+
color: theme.palette.text.icon,
|
21
|
+
marginRight: '8px',
|
22
|
+
padding: '24px',
|
23
|
+
borderRadius: '2px',
|
24
|
+
border: `1px solid ${theme.palette.input.bottomLine}`,
|
25
|
+
backgroundColor: theme.palette.local.background2,
|
26
|
+
'&:not($empty)': {
|
27
|
+
border: `1px solid ${theme.palette.middle.normal}`,
|
28
|
+
color: `${theme.palette.middle.normal}`
|
29
|
+
},
|
30
|
+
'&$complete': {
|
31
|
+
border: `1px solid ${theme.palette.positive.normal}`,
|
32
|
+
color: `${theme.palette.positive.normal}`
|
33
|
+
},
|
34
|
+
'&$error': {
|
35
|
+
border: `1px solid ${theme.palette.negative.normal}`,
|
36
|
+
color: `${theme.palette.negative.normal}`
|
37
|
+
}
|
38
|
+
},
|
39
|
+
inputContainer: {
|
40
|
+
flex: '1'
|
41
|
+
},
|
42
|
+
empty: {},
|
43
|
+
complete: {},
|
44
|
+
error: {}
|
45
|
+
});
|
46
|
+
|
47
|
+
class HiUpload extends React.PureComponent {
|
48
|
+
|
49
|
+
constructor(props) {
|
50
|
+
super(props);
|
51
|
+
this.state = {
|
52
|
+
params: new Array(this.props.inputs.length)
|
53
|
+
};
|
54
|
+
|
55
|
+
this.handleChange = this.handleChange.bind(this);
|
56
|
+
this.handleClear = this.handleClear.bind(this);
|
57
|
+
this.handleSeeFile = this.handleSeeFile.bind(this);
|
58
|
+
}
|
59
|
+
|
60
|
+
handleChange(param, index) {
|
61
|
+
this.setState(prevState => {
|
62
|
+
const oldParams = [...prevState.params];
|
63
|
+
oldParams.splice(index, 1, param);
|
64
|
+
return {
|
65
|
+
params: oldParams
|
66
|
+
};
|
67
|
+
});
|
68
|
+
}
|
69
|
+
|
70
|
+
handleClear(index) {
|
71
|
+
this.setState(prevState => {
|
72
|
+
const oldParams = [...prevState.params];
|
73
|
+
oldParams.splice(index, 1, undefined);
|
74
|
+
return {
|
75
|
+
params: oldParams
|
76
|
+
};
|
77
|
+
});
|
78
|
+
}
|
79
|
+
|
80
|
+
handleSeeFile(file) {
|
81
|
+
this.props.onSeeFile(file);
|
82
|
+
}
|
83
|
+
|
84
|
+
render() {
|
85
|
+
const _props = this.props,
|
86
|
+
{ inputs, className, classes, label, helperIcon, helperText } = _props,
|
87
|
+
others = _objectWithoutProperties(_props, ['inputs', 'className', 'classes', 'label', 'helperIcon', 'helperText']);
|
88
|
+
|
89
|
+
const { params } = this.state;
|
90
|
+
|
91
|
+
let complete = true;
|
92
|
+
let empty = true;
|
93
|
+
let error = false;
|
94
|
+
let errorText = '';
|
95
|
+
|
96
|
+
for (let i = 0, len = params.length; i < len; i += 1) {
|
97
|
+
const param = params[i];
|
98
|
+
if (param !== undefined) {
|
99
|
+
complete = param.value === null || param.error ? false : complete;
|
100
|
+
empty = param.value !== null && !param.error ? false : empty;
|
101
|
+
error = param.error || error;
|
102
|
+
errorText = errorText || param.errorMessage;
|
103
|
+
} else {
|
104
|
+
complete = false;
|
105
|
+
}
|
106
|
+
}
|
107
|
+
|
108
|
+
const statusClass = classNames(classes.statusIcon, {
|
109
|
+
[classes.empty]: empty,
|
110
|
+
[classes.complete]: complete,
|
111
|
+
[classes.error]: error
|
112
|
+
});
|
113
|
+
|
114
|
+
let icon;
|
115
|
+
|
116
|
+
if (error) {
|
117
|
+
icon = 'alert';
|
118
|
+
} else if (complete) {
|
119
|
+
icon = 'check_circle';
|
120
|
+
} else {
|
121
|
+
icon = 'upload';
|
122
|
+
}
|
123
|
+
|
124
|
+
return React.createElement(
|
125
|
+
HiFormControl,
|
126
|
+
{
|
127
|
+
label: label,
|
128
|
+
className: className,
|
129
|
+
errorText: errorText,
|
130
|
+
error: error,
|
131
|
+
helperIcon: helperIcon,
|
132
|
+
helperText: helperText
|
133
|
+
},
|
134
|
+
React.createElement(
|
135
|
+
'div',
|
136
|
+
{ className: classes.flexContainer },
|
137
|
+
React.createElement(HiIconBuilder, { className: statusClass, size: 80, icon: icon }),
|
138
|
+
React.createElement(
|
139
|
+
'div',
|
140
|
+
{ className: classes.inputContainer },
|
141
|
+
inputs.map((item, index) => React.createElement(HiUploadField, _extends({
|
142
|
+
maxSize: item.maxSize,
|
143
|
+
acceptedTypes: item.acceptedTypes,
|
144
|
+
placeholder: item.placeholder,
|
145
|
+
value: params[index] ? params[index].value : null,
|
146
|
+
error: params[index] ? params[index].error : null,
|
147
|
+
errorMessage: params[index] ? params[index].errorMessage : null,
|
148
|
+
onSeeFile: this.handleSeeFile,
|
149
|
+
onClear: this.handleClear,
|
150
|
+
onChange: this.handleChange,
|
151
|
+
index: index,
|
152
|
+
key: item.id
|
153
|
+
}, others)))
|
154
|
+
)
|
155
|
+
)
|
156
|
+
);
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
HiUpload.defaultProps = {
|
161
|
+
helperText: '',
|
162
|
+
helperIcon: false
|
163
|
+
};
|
164
|
+
HiUpload.propTypes = process.env.NODE_ENV !== "production" ? {
|
165
|
+
/**
|
166
|
+
* Useful to extend the style applied to components.
|
167
|
+
*/
|
168
|
+
classes: PropTypes.object,
|
169
|
+
/**
|
170
|
+
* Classes CSS appliquées.
|
171
|
+
*/
|
172
|
+
className: PropTypes.string,
|
173
|
+
/**
|
174
|
+
* Si "true", le texte d'aide s'affichera seulement au clic sur l'icône "Information"
|
175
|
+
*/
|
176
|
+
helperIcon: PropTypes.bool,
|
177
|
+
/**
|
178
|
+
* Texte de l'aide
|
179
|
+
*/
|
180
|
+
helperText: PropTypes.string,
|
181
|
+
/**
|
182
|
+
* Array containing each of the inputs the component has to show (represented by an object).
|
183
|
+
*/
|
184
|
+
inputs: PropTypes.array.isRequired,
|
185
|
+
/**
|
186
|
+
* The label of the global input.
|
187
|
+
*/
|
188
|
+
label: PropTypes.string,
|
189
|
+
/**
|
190
|
+
* The method given to see the file.
|
191
|
+
*/
|
192
|
+
onSeeFile: PropTypes.func
|
193
|
+
} : {};
|
194
|
+
export default withStyles(styles, { name: 'HmuiHiUpload', withTheme: true })(HiUpload);
|