@hipay/hipay-material-ui 1.0.0-beta.8 → 1.0.0-beta.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. package/HiDotsStepper/HiDot.js +151 -0
  2. package/HiDotsStepper/HiDotsStepper.js +146 -0
  3. package/HiDotsStepper/index.js +16 -0
  4. package/HiForm/HiAddressField.js +204 -0
  5. package/HiForm/HiInput.js +1 -1
  6. package/HiForm/index.js +9 -0
  7. package/HiPdfReader/HiPdfReader.js +282 -0
  8. package/HiPdfReader/index.js +16 -0
  9. package/HiSelect/HiSuggestSelect.js +2 -0
  10. package/HiSelectableList/HiSelectableListItem.js +1 -2
  11. package/HiTable/BodyCellBuilder.js +7 -8
  12. package/HiTable/BodyCells/CellLayout.js +20 -18
  13. package/HiTable/BodyCells/CellSentinel.js +12 -4
  14. package/HiTable/BodyRow.js +7 -1
  15. package/HiTable/HeaderCell.js +17 -14
  16. package/HiTable/HiTable.js +13 -4
  17. package/HiTable/HiTableBody.js +26 -12
  18. package/HiTable/HiTableHead.js +22 -5
  19. package/es/HiDotsStepper/HiDot.js +92 -0
  20. package/es/HiDotsStepper/HiDotsStepper.js +83 -0
  21. package/es/HiDotsStepper/index.js +1 -0
  22. package/es/HiForm/HiAddressField.js +142 -0
  23. package/es/HiForm/HiInput.js +1 -1
  24. package/es/HiForm/index.js +2 -1
  25. package/es/HiPdfReader/HiPdfReader.js +198 -0
  26. package/es/HiPdfReader/index.js +1 -0
  27. package/es/HiSelect/HiSuggestSelect.js +2 -0
  28. package/es/HiSelectableList/HiSelectableListItem.js +1 -2
  29. package/es/HiTable/BodyCellBuilder.js +8 -9
  30. package/es/HiTable/BodyCells/CellLayout.js +22 -20
  31. package/es/HiTable/BodyCells/CellSentinel.js +12 -4
  32. package/es/HiTable/BodyRow.js +7 -1
  33. package/es/HiTable/HeaderCell.js +17 -14
  34. package/es/HiTable/HiTable.js +13 -4
  35. package/es/HiTable/HiTableBody.js +22 -9
  36. package/es/HiTable/HiTableHead.js +17 -5
  37. package/es/styles/createHiMuiTheme.js +7 -0
  38. package/index.es.js +1 -1
  39. package/index.js +1 -1
  40. package/package.json +2 -1
  41. package/styles/createHiMuiTheme.js +7 -0
  42. package/umd/hipay-material-ui.development.js +2874 -2606
  43. package/umd/hipay-material-ui.production.min.js +4 -4
@@ -0,0 +1,151 @@
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 _react = require('react');
33
+
34
+ var _react2 = _interopRequireDefault(_react);
35
+
36
+ var _propTypes = require('prop-types');
37
+
38
+ var _propTypes2 = _interopRequireDefault(_propTypes);
39
+
40
+ var _classnames3 = require('classnames');
41
+
42
+ var _classnames4 = _interopRequireDefault(_classnames3);
43
+
44
+ var _withStyles = require('../styles/withStyles');
45
+
46
+ var _withStyles2 = _interopRequireDefault(_withStyles);
47
+
48
+ var _ButtonBase = require('../ButtonBase');
49
+
50
+ var _ButtonBase2 = _interopRequireDefault(_ButtonBase);
51
+
52
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
53
+
54
+ var styles = exports.styles = function styles(theme) {
55
+ return {
56
+ dot: {
57
+ backgroundColor: theme.palette.dot.neutral,
58
+ borderRadius: '100%',
59
+ width: 12,
60
+ height: 12,
61
+ '&:hover': {
62
+ transform: 'scale(1.2)'
63
+ },
64
+ marginLeft: 12
65
+ },
66
+ dotActive: {
67
+ marginTop: 4,
68
+ marginLeft: 4,
69
+ '&:hover': {
70
+ transform: 'scale(1)'
71
+ }
72
+ },
73
+ dotValidated: {
74
+ backgroundColor: theme.palette.status[116]
75
+ },
76
+ dotRefused: {
77
+ backgroundColor: theme.palette.error.main
78
+ },
79
+ dotAround: {
80
+ backgroundColor: 'transparent',
81
+ borderRadius: '100%',
82
+ width: 24,
83
+ height: 24,
84
+ marginLeft: 6,
85
+ border: '2px solid ' + theme.palette.dot.neutral,
86
+ '&:hover': {
87
+ transform: 'scale(1.2)'
88
+ }
89
+ },
90
+ dotAroundValidated: {
91
+ border: '2px solid ' + theme.palette.status[116]
92
+ },
93
+ dotAroundRefused: {
94
+ border: '2px solid ' + theme.palette.error.main
95
+ }
96
+ };
97
+ };
98
+
99
+ var HiDot = function (_React$PureComponent) {
100
+ (0, _inherits3.default)(HiDot, _React$PureComponent);
101
+
102
+ function HiDot() {
103
+ (0, _classCallCheck3.default)(this, HiDot);
104
+ return (0, _possibleConstructorReturn3.default)(this, (HiDot.__proto__ || (0, _getPrototypeOf2.default)(HiDot)).apply(this, arguments));
105
+ }
106
+
107
+ (0, _createClass3.default)(HiDot, [{
108
+ key: 'render',
109
+ value: function render() {
110
+ var _classnames, _classnames2;
111
+
112
+ var _props = this.props,
113
+ active = _props.active,
114
+ status = _props.status,
115
+ classes = _props.classes,
116
+ onClick = _props.onClick;
117
+
118
+
119
+ var dotAroundClass = (0, _classnames4.default)(classes.dotAround, (_classnames = {}, (0, _defineProperty3.default)(_classnames, classes.dotAroundValidated, status === 'validated'), (0, _defineProperty3.default)(_classnames, classes.dotAroundRefused, status === 'refused'), _classnames));
120
+
121
+ var dotClassName = (0, _classnames4.default)(classes.dot, (_classnames2 = {}, (0, _defineProperty3.default)(_classnames2, classes.dotActive, active), (0, _defineProperty3.default)(_classnames2, classes.dotRefused, status === 'refused'), (0, _defineProperty3.default)(_classnames2, classes.dotValidated, status === 'validated'), _classnames2));
122
+
123
+ return _react2.default.createElement(
124
+ _ButtonBase2.default,
125
+ { disableRipple: true, role: 'button', onClick: onClick },
126
+ active ? _react2.default.createElement(
127
+ 'div',
128
+ { className: dotAroundClass },
129
+ _react2.default.createElement('div', { className: dotClassName })
130
+ ) : _react2.default.createElement('div', { className: dotClassName })
131
+ );
132
+ }
133
+ }]);
134
+ return HiDot;
135
+ }(_react2.default.PureComponent);
136
+
137
+ HiDot.defaultProps = {
138
+ active: false,
139
+ status: 'unreviewed'
140
+ };
141
+ HiDot.propTypes = process.env.NODE_ENV !== "production" ? {
142
+ active: _propTypes2.default.bool,
143
+ classes: _propTypes2.default.object,
144
+ /**
145
+ * @ignore
146
+ */
147
+ className: _propTypes2.default.string,
148
+ onClick: _propTypes2.default.func,
149
+ status: _propTypes2.default.oneOf(['refused', 'validated', 'unreviewed'])
150
+ } : {};
151
+ exports.default = (0, _withStyles2.default)(styles, { name: 'MuiHiDot' })(HiDot);
@@ -0,0 +1,146 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.styles = undefined;
7
+
8
+ var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
9
+
10
+ var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
11
+
12
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
13
+
14
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
15
+
16
+ var _createClass2 = require('babel-runtime/helpers/createClass');
17
+
18
+ var _createClass3 = _interopRequireDefault(_createClass2);
19
+
20
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
21
+
22
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
23
+
24
+ var _inherits2 = require('babel-runtime/helpers/inherits');
25
+
26
+ var _inherits3 = _interopRequireDefault(_inherits2);
27
+
28
+ var _react = require('react');
29
+
30
+ var _react2 = _interopRequireDefault(_react);
31
+
32
+ var _propTypes = require('prop-types');
33
+
34
+ var _propTypes2 = _interopRequireDefault(_propTypes);
35
+
36
+ var _withStyles = require('../styles/withStyles');
37
+
38
+ var _withStyles2 = _interopRequireDefault(_withStyles);
39
+
40
+ var _HiDot = require('./HiDot');
41
+
42
+ var _HiDot2 = _interopRequireDefault(_HiDot);
43
+
44
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
45
+
46
+ var styles = exports.styles = function styles(theme) {
47
+ return {
48
+ dotStepper: {
49
+ width: '100%',
50
+ maxWidth: 200,
51
+ display: 'flex',
52
+ flexDirection: 'row',
53
+ flexWrap: 'nowrap',
54
+ justifyContent: 'center',
55
+ alignItems: 'center'
56
+ }
57
+ };
58
+ };
59
+
60
+ var HiDotsStepper = function (_React$PureComponent) {
61
+ (0, _inherits3.default)(HiDotsStepper, _React$PureComponent);
62
+
63
+ function HiDotsStepper() {
64
+ (0, _classCallCheck3.default)(this, HiDotsStepper);
65
+
66
+ var _this = (0, _possibleConstructorReturn3.default)(this, (HiDotsStepper.__proto__ || (0, _getPrototypeOf2.default)(HiDotsStepper)).call(this));
67
+
68
+ _this.handleClick = function (activeStep) {
69
+ return function () {
70
+ _this.props.onChange(activeStep);
71
+ };
72
+ };
73
+
74
+ _this.handleNavigation = function (activeStep) {
75
+ return function (e) {
76
+ var nextStep = activeStep;
77
+ var steps = _this.props.steps;
78
+
79
+
80
+ if (e.key === 'ArrowLeft') nextStep -= 1;
81
+ if (e.key === 'ArrowRight') nextStep += 1;
82
+
83
+ nextStep = (nextStep + steps.length) % steps.length;
84
+
85
+ // Permet la navigation d'un Dot au suivant / précédent
86
+ document.querySelector('div[tabIndex="' + nextStep + '"]').focus();
87
+
88
+ _this.props.onChange(nextStep);
89
+ };
90
+ };
91
+
92
+ _this.handleClick = _this.handleClick.bind(_this);
93
+ _this.handleNavigation = _this.handleNavigation.bind(_this);
94
+ return _this;
95
+ }
96
+
97
+ (0, _createClass3.default)(HiDotsStepper, [{
98
+ key: 'render',
99
+ value: function render() {
100
+ var _this2 = this;
101
+
102
+ var _props = this.props,
103
+ classes = _props.classes,
104
+ activeStep = _props.activeStep,
105
+ steps = _props.steps;
106
+
107
+
108
+ var listDots = steps.map(function (step, idx) {
109
+ var id = step.id,
110
+ status = step.status;
111
+
112
+ return _react2.default.createElement(
113
+ 'div',
114
+ {
115
+ key: id,
116
+ tabIndex: id,
117
+ className: classes.dotContainer,
118
+ role: 'navigation',
119
+ onKeyDown: _this2.handleNavigation(idx)
120
+ },
121
+ _react2.default.createElement(_HiDot2.default, {
122
+ status: status,
123
+ active: idx === activeStep,
124
+ onClick: _this2.handleClick(idx)
125
+ })
126
+ );
127
+ });
128
+
129
+ return _react2.default.createElement(
130
+ 'div',
131
+ { className: classes.dotStepper },
132
+ listDots
133
+ );
134
+ }
135
+ }]);
136
+ return HiDotsStepper;
137
+ }(_react2.default.PureComponent);
138
+
139
+ HiDotsStepper.propTypes = process.env.NODE_ENV !== "production" ? {
140
+ activeStep: _propTypes2.default.number.isRequired,
141
+ classes: _propTypes2.default.object,
142
+ className: _propTypes2.default.string,
143
+ onChange: _propTypes2.default.func,
144
+ steps: _propTypes2.default.array.isRequired
145
+ } : {};
146
+ exports.default = (0, _withStyles2.default)(styles, { name: 'MuiHiDotsStepper' })(HiDotsStepper);
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _HiDotsStepper = require('./HiDotsStepper');
8
+
9
+ Object.defineProperty(exports, 'default', {
10
+ enumerable: true,
11
+ get: function get() {
12
+ return _interopRequireDefault(_HiDotsStepper).default;
13
+ }
14
+ });
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,204 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
8
+
9
+ var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
10
+
11
+ var _extends2 = require('babel-runtime/helpers/extends');
12
+
13
+ var _extends3 = _interopRequireDefault(_extends2);
14
+
15
+ var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
16
+
17
+ var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
18
+
19
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
20
+
21
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22
+
23
+ var _createClass2 = require('babel-runtime/helpers/createClass');
24
+
25
+ var _createClass3 = _interopRequireDefault(_createClass2);
26
+
27
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
28
+
29
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
30
+
31
+ var _inherits2 = require('babel-runtime/helpers/inherits');
32
+
33
+ var _inherits3 = _interopRequireDefault(_inherits2);
34
+
35
+ var _react = require('react');
36
+
37
+ var _react2 = _interopRequireDefault(_react);
38
+
39
+ var _propTypes = require('prop-types');
40
+
41
+ var _propTypes2 = _interopRequireDefault(_propTypes);
42
+
43
+ var _HiSuggestSelectField = require('../HiSelect/HiSuggestSelectField');
44
+
45
+ var _HiSuggestSelectField2 = _interopRequireDefault(_HiSuggestSelectField);
46
+
47
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
48
+
49
+ /**
50
+ * Champs input adresse pour formulaire
51
+ */
52
+ var HiAddressField = function (_React$Component) {
53
+ (0, _inherits3.default)(HiAddressField, _React$Component);
54
+
55
+ function HiAddressField(props) {
56
+ (0, _classCallCheck3.default)(this, HiAddressField);
57
+
58
+ var _this = (0, _possibleConstructorReturn3.default)(this, (HiAddressField.__proto__ || (0, _getPrototypeOf2.default)(HiAddressField)).call(this, props));
59
+
60
+ _this.autocompleteService = null;
61
+
62
+ _this.displaySuggestions = function (predictions, status) {
63
+ if (status !== 'OK') {
64
+ // Si l'API renvoie un statut différent de 'OK'
65
+ // (par exemple ZERO_RESULTS), pas de prédictions
66
+ } else {
67
+ // Sinon je mets à jour les options du champ avec les prédictions de GMaps
68
+ var options = [];
69
+ var isExact = false;
70
+ predictions.forEach(function (prediction) {
71
+ // Si le texte saisi est identique à une des propositions de GMaps,
72
+ // on estime que la valeur de l'adresse est exacte,
73
+ // même sans clic sur une proposition
74
+ isExact = prediction.description === _this.value ? true : isExact;
75
+ options.push({
76
+ id: prediction.id,
77
+ label: prediction.description,
78
+ labelHighlight: prediction.description.replace(new RegExp(_this.value, 'gi'), '<strong>$&</strong>'),
79
+ icon: prediction.types.indexOf('establishment') >= 0 ? 'domain' : 'map_marker',
80
+ type: 'icon'
81
+ });
82
+ }, _this);
83
+ _this.setState({ options: options, isExact: isExact });
84
+ }
85
+ };
86
+
87
+ _this.state = {
88
+ options: [],
89
+ isExact: false
90
+ };
91
+
92
+ _this.handleSearch = _this.handleSearch.bind(_this);
93
+ _this.handleSelect = _this.handleSelect.bind(_this);
94
+ _this.handleReset = _this.handleReset.bind(_this);
95
+ _this.displaySuggestions = _this.displaySuggestions.bind(_this);
96
+ return _this;
97
+ }
98
+
99
+ /**
100
+ * Au chargement du composant, je définis mon service autocomplete GMaps
101
+ */
102
+
103
+
104
+ (0, _createClass3.default)(HiAddressField, [{
105
+ key: 'componentDidMount',
106
+ value: function componentDidMount() {
107
+ this.autocompleteService = new google.maps.places.AutocompleteService();
108
+ }
109
+ }, {
110
+ key: 'handleReset',
111
+ value: function handleReset() {
112
+ this.props.onReset();
113
+ this.setState({
114
+ options: [],
115
+ isExact: false
116
+ });
117
+ }
118
+ }, {
119
+ key: 'handleSearch',
120
+ value: function handleSearch(event) {
121
+ // Je vérifie que le champ n'est pas vide car l'API lève une exception en cas d'input vide
122
+ if (event.target.value) {
123
+ // Liste des types à rechercher. Voir https://developers.google.com/places/web-service/autocomplete?hl=fr#place_types (ex : ['establishement', 'address']
124
+ var types = [];
125
+ // Liste des codes ISO Alpha-2 des pays où il faut rechercher (ex : ['fr', 'us'])
126
+ var countries = [];
127
+ // À chaque changement, la méthode getPlacesPredictions appelle la méthode
128
+ // displaySuggestions en lui fournissant un tableau de 5 prédictions
129
+ this.value = event.target.value;
130
+ if (this.autocompleteService) {
131
+ this.autocompleteService.getPlacePredictions({
132
+ input: event.target.value,
133
+ types: types,
134
+ componentRestrictions: { country: countries }
135
+ }, this.displaySuggestions);
136
+ } else {
137
+ // Dans le cas où le service ne peut pas se charger (mode test par exemple).
138
+ this.displaySuggestions([], 'EMPTY_RESULT');
139
+ }
140
+ }
141
+ this.props.onSearch(event);
142
+ // Mise à jour du texte dans l'input
143
+ this.setState((0, _extends3.default)({}, !event.target.value && {
144
+ options: []
145
+ }));
146
+ }
147
+ }, {
148
+ key: 'handleSelect',
149
+ value: function handleSelect(event, value) {
150
+ // Mise à jour de la valeur du champ + la valeur de l'adresse est exacte
151
+ this.setState({ options: [], isExact: true });
152
+ this.props.onSelect(event, value.label);
153
+ }
154
+ }, {
155
+ key: 'render',
156
+ value: function render() {
157
+ var _props = this.props,
158
+ exactOnly = _props.exactOnly,
159
+ onSearch = _props.onSearch,
160
+ onReset = _props.onReset,
161
+ onSelect = _props.onSelect,
162
+ otherProps = (0, _objectWithoutProperties3.default)(_props, ['exactOnly', 'onSearch', 'onReset', 'onSelect']);
163
+ var _state = this.state,
164
+ options = _state.options,
165
+ isExact = _state.isExact;
166
+
167
+ // On met le champ en erreur si une adresse exacte est éxigée
168
+ // et si l'adresse courante n'est pas complète
169
+
170
+ var showError = exactOnly && !isExact;
171
+
172
+ return _react2.default.createElement(_HiSuggestSelectField2.default, (0, _extends3.default)({
173
+ options: options,
174
+ onSearch: this.handleSearch,
175
+ onReset: this.handleReset,
176
+ onSelect: this.handleSelect,
177
+ isExact: isExact,
178
+ error: showError
179
+ }, otherProps));
180
+ }
181
+ }]);
182
+ return HiAddressField;
183
+ }(_react2.default.Component); // @inheritedComponent HiSuggestSelectField
184
+
185
+ HiAddressField.propTypes = process.env.NODE_ENV !== "production" ? {
186
+ /**
187
+ * Est-ce qu'on n'accepte que les adresses trouvées par GMaps
188
+ */
189
+ exactOnly: _propTypes2.default.bool,
190
+ /**
191
+ * Callback function called to empty the field.
192
+ */
193
+ onReset: _propTypes2.default.func,
194
+ /**
195
+ * Callback function called when we write in the input.
196
+ */
197
+ onSearch: _propTypes2.default.func,
198
+ /**
199
+ * Callback function called when a suggestion is selected.
200
+ */
201
+ onSelect: _propTypes2.default.func
202
+ } : {};
203
+
204
+ exports.default = HiAddressField;
package/HiForm/HiInput.js CHANGED
@@ -107,7 +107,7 @@ var styles = exports.styles = function styles(theme) {
107
107
  focused: {},
108
108
  error: {
109
109
  border: '1px solid ' + theme.palette.negative.normal,
110
- paddingLeft: 0,
110
+ paddingLeft: 8,
111
111
  borderRadius: 2
112
112
  },
113
113
  startAdornment: {
package/HiForm/index.js CHANGED
@@ -67,4 +67,13 @@ Object.defineProperty(exports, 'HiSearchField', {
67
67
  }
68
68
  });
69
69
 
70
+ var _HiAddressField = require('./HiAddressField');
71
+
72
+ Object.defineProperty(exports, 'HiAddressField', {
73
+ enumerable: true,
74
+ get: function get() {
75
+ return _interopRequireDefault(_HiAddressField).default;
76
+ }
77
+ });
78
+
70
79
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }