@hipay/hipay-material-ui 1.0.0-beta.20 → 1.0.0-beta.21
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.
- package/HiSelect/HiSelect.js +41 -11
- package/HiSelect/HiSuggestSelect.js +35 -5
- package/HiSelectableList/HiSelectableListItem.js +30 -37
- package/HiTopBar/HiTopBar.js +10 -3
- package/es/HiSelect/HiSelect.js +35 -9
- package/es/HiSelect/HiSuggestSelect.js +33 -5
- package/es/HiSelectableList/HiSelectableListItem.js +30 -37
- package/es/HiTopBar/HiTopBar.js +11 -4
- package/es/utils/hiHelpers.js +3 -3
- package/index.es.js +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
- package/umd/hipay-material-ui.development.js +13771 -56579
- package/umd/hipay-material-ui.production.min.js +5 -5
- package/utils/hiHelpers.js +3 -3
    
        package/HiSelect/HiSelect.js
    CHANGED
    
    | @@ -13,6 +13,10 @@ var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); | |
| 13 13 |  | 
| 14 14 | 
             
            var _defineProperty3 = _interopRequireDefault(_defineProperty2);
         | 
| 15 15 |  | 
| 16 | 
            +
            var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
         | 
| 19 | 
            +
             | 
| 16 20 | 
             
            var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
         | 
| 17 21 |  | 
| 18 22 | 
             
            var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
         | 
| @@ -303,7 +307,8 @@ var HiSelect = function (_React$PureComponent) { | |
| 303 307 | 
             
                            hierarchic = _props.hierarchic,
         | 
| 304 308 | 
             
                            id = _props.id,
         | 
| 305 309 | 
             
                            placeholder = _props.placeholder,
         | 
| 306 | 
            -
                            staticPosition = _props.staticPosition | 
| 310 | 
            +
                            staticPosition = _props.staticPosition,
         | 
| 311 | 
            +
                            pinnedItem = _props.pinnedItem;
         | 
| 307 312 | 
             
                        var _state = this.state,
         | 
| 308 313 | 
             
                            open = _state.open,
         | 
| 309 314 | 
             
                            suggestions = _state.suggestions,
         | 
| @@ -313,6 +318,11 @@ var HiSelect = function (_React$PureComponent) { | |
| 313 318 | 
             
                        var display = '';
         | 
| 314 319 | 
             
                        var selectedIdList = Array.isArray(value) ? value : value ? [value] : [];
         | 
| 315 320 |  | 
| 321 | 
            +
                        var _suggestions = [].concat((0, _toConsumableArray3.default)(suggestions));
         | 
| 322 | 
            +
                        if (pinnedItem) {
         | 
| 323 | 
            +
                            _suggestions = [pinnedItem].concat((0, _toConsumableArray3.default)(suggestions));
         | 
| 324 | 
            +
                        }
         | 
| 325 | 
            +
             | 
| 316 326 | 
             
                        if (this.state.dynamic && selectedIdList.length === 1) {
         | 
| 317 327 | 
             
                            display = translations.one_item_selected.replace('%s', selectedIdList.length);
         | 
| 318 328 | 
             
                        } else if (this.state.nbOptions !== selectedIdList.length && selectedIdList.length > 1) {
         | 
| @@ -321,9 +331,13 @@ var HiSelect = function (_React$PureComponent) { | |
| 321 331 | 
             
                            display = translations.all;
         | 
| 322 332 | 
             
                        } else if (selectedIdList.length === 1) {
         | 
| 323 333 | 
             
                            if (type !== 'icon') {
         | 
| 324 | 
            -
                                 | 
| 334 | 
            +
                                var item = options.find(function (o) {
         | 
| 325 335 | 
             
                                    return o.id === selectedIdList[0];
         | 
| 326 | 
            -
                                }) | 
| 336 | 
            +
                                });
         | 
| 337 | 
            +
                                if (!item && pinnedItem) {
         | 
| 338 | 
            +
                                    item = pinnedItem;
         | 
| 339 | 
            +
                                }
         | 
| 340 | 
            +
                                display = item.label;
         | 
| 327 341 | 
             
                            } else {
         | 
| 328 342 | 
             
                                var optionSelected = options.find(function (o) {
         | 
| 329 343 | 
             
                                    return o.id === selectedIdList[0];
         | 
| @@ -380,7 +394,7 @@ var HiSelect = function (_React$PureComponent) { | |
| 380 394 | 
             
                                    _react2.default.createElement(_HiSelectableList2.default, {
         | 
| 381 395 | 
             
                                        type: type,
         | 
| 382 396 | 
             
                                        parentItemSelectable: parentItemSelectable,
         | 
| 383 | 
            -
                                        itemList:  | 
| 397 | 
            +
                                        itemList: _suggestions,
         | 
| 384 398 | 
             
                                        onSelect: this.handleSelect,
         | 
| 385 399 | 
             
                                        selectedIdList: selectedIdList,
         | 
| 386 400 | 
             
                                        checkbox: checkbox,
         | 
| @@ -490,7 +504,7 @@ var _initialiseProps = function _initialiseProps() { | |
| 490 504 | 
             
                        _this3.handleClose();
         | 
| 491 505 | 
             
                    } else {
         | 
| 492 506 | 
             
                        if (!_this3.props.staticPosition) {
         | 
| 493 | 
            -
                            document.body.style.overflow = 'hidden';
         | 
| 507 | 
            +
                            //document.body.style.overflow = 'hidden';
         | 
| 494 508 | 
             
                        }
         | 
| 495 509 | 
             
                        _this3.setState({ open: true });
         | 
| 496 510 | 
             
                        var options = _this3.props.options.slice();
         | 
| @@ -554,7 +568,7 @@ var _initialiseProps = function _initialiseProps() { | |
| 554 568 | 
             
                        nextItem = (0, _hiHelpers.getNextItemSelectable)(document.activeElement, 'up');
         | 
| 555 569 | 
             
                    } else if (event.key === 'Tab') {
         | 
| 556 570 | 
             
                        if (!_this3.props.staticPosition) {
         | 
| 557 | 
            -
                            document.body.style.overflow = 'auto';
         | 
| 571 | 
            +
                            //document.body.style.overflow = 'auto';
         | 
| 558 572 | 
             
                        }
         | 
| 559 573 | 
             
                        _this3.setState({ open: false });
         | 
| 560 574 | 
             
                    }
         | 
| @@ -579,7 +593,7 @@ var _initialiseProps = function _initialiseProps() { | |
| 579 593 |  | 
| 580 594 | 
             
                this.handleClose = function () {
         | 
| 581 595 | 
             
                    if (!_this3.props.staticPosition) {
         | 
| 582 | 
            -
                        document.body.style.overflow = 'auto';
         | 
| 596 | 
            +
                        //document.body.style.overflow = 'auto';
         | 
| 583 597 | 
             
                    }
         | 
| 584 598 | 
             
                    _this3.setState({
         | 
| 585 599 | 
             
                        open: false
         | 
| @@ -604,10 +618,10 @@ var _initialiseProps = function _initialiseProps() { | |
| 604 618 | 
             
                    var _props2 = _this3.props,
         | 
| 605 619 | 
             
                        multiple = _props2.multiple,
         | 
| 606 620 | 
             
                        value = _props2.value,
         | 
| 607 | 
            -
                        name = _props2.name,
         | 
| 608 621 | 
             
                        onChange = _props2.onChange,
         | 
| 609 622 | 
             
                        options = _props2.options,
         | 
| 610 | 
            -
                        hierarchic = _props2.hierarchic | 
| 623 | 
            +
                        hierarchic = _props2.hierarchic,
         | 
| 624 | 
            +
                        pinnedItem = _props2.pinnedItem;
         | 
| 611 625 | 
             
                    var _state2 = _this3.state,
         | 
| 612 626 | 
             
                        hierarchySelected = _state2.hierarchySelected,
         | 
| 613 627 | 
             
                        hierarchy = _state2.hierarchy,
         | 
| @@ -656,8 +670,20 @@ var _initialiseProps = function _initialiseProps() { | |
| 656 670 | 
             
                                hiSelected[item.parentId].splice(hiSelected[item.parentId].indexOf(item.id), 1);
         | 
| 657 671 | 
             
                            }
         | 
| 658 672 | 
             
                        } else {
         | 
| 659 | 
            -
                             | 
| 660 | 
            -
             | 
| 673 | 
            +
                            if (pinnedItem && item.id === pinnedItem.id) {
         | 
| 674 | 
            +
                                (0, _keys2.default)(hiSelected).map(function (parentItemId) {
         | 
| 675 | 
            +
                                    hiSelected[parentItemId] = [];
         | 
| 676 | 
            +
                                    return true;
         | 
| 677 | 
            +
                                });
         | 
| 678 | 
            +
                                valueList = [item.id];
         | 
| 679 | 
            +
                            } else {
         | 
| 680 | 
            +
                                // item non sélectionné => on le sélectionne
         | 
| 681 | 
            +
                                if (item.hasChildren !== true) valueList.push(item.id);
         | 
| 682 | 
            +
             | 
| 683 | 
            +
                                if (pinnedItem && valueList.includes(pinnedItem.id)) {
         | 
| 684 | 
            +
                                    valueList.splice(valueList.indexOf(pinnedItem.id), 1);
         | 
| 685 | 
            +
                                }
         | 
| 686 | 
            +
                            }
         | 
| 661 687 |  | 
| 662 688 | 
             
                            if (item.hasChildren === true) {
         | 
| 663 689 | 
             
                                // Si item parent => on ajoute tous les enfants
         | 
| @@ -848,6 +874,10 @@ HiSelect.propTypes = process.env.NODE_ENV !== "production" ? { | |
| 848 874 | 
             
                 * Les items parents sont sélectionnables
         | 
| 849 875 | 
             
                 */
         | 
| 850 876 | 
             
                parentItemSelectable: _propTypes2.default.bool,
         | 
| 877 | 
            +
                /**
         | 
| 878 | 
            +
                 * Item épinglé en début de liste
         | 
| 879 | 
            +
                 */
         | 
| 880 | 
            +
                pinnedItem: _propTypes2.default.object,
         | 
| 851 881 | 
             
                /**
         | 
| 852 882 | 
             
                 * Placeholder affiché lorsque le select est fermé
         | 
| 853 883 | 
             
                 * Surcharge le placeholder par défaut
         | 
| @@ -186,15 +186,31 @@ var HiSuggestSelect = function (_React$PureComponent) { | |
| 186 186 |  | 
| 187 187 | 
             
                        var _props = this.props,
         | 
| 188 188 | 
             
                            classes = _props.classes,
         | 
| 189 | 
            -
                            translations = _props.translations,
         | 
| 190 189 | 
             
                            id = _props.id,
         | 
| 190 | 
            +
                            showMinLength = _props.showMinLength,
         | 
| 191 | 
            +
                            showNoResults = _props.showNoResults,
         | 
| 191 192 | 
             
                            onSearch = _props.onSearch,
         | 
| 192 | 
            -
                             | 
| 193 | 
            +
                            translations = _props.translations,
         | 
| 194 | 
            +
                            otherProps = (0, _objectWithoutProperties3.default)(_props, ['classes', 'id', 'showMinLength', 'showNoResults', 'onSearch', 'translations']);
         | 
| 193 195 | 
             
                        var _state = this.state,
         | 
| 194 196 | 
             
                            focused = _state.focused,
         | 
| 195 197 | 
             
                            options = _state.options;
         | 
| 196 198 |  | 
| 197 | 
            -
             | 
| 199 | 
            +
             | 
| 200 | 
            +
                        var optionsShown = options;
         | 
| 201 | 
            +
             | 
| 202 | 
            +
                        // If no results match
         | 
| 203 | 
            +
                        if (options.length === 0 && (showNoResults || showMinLength)) {
         | 
| 204 | 
            +
                            optionsShown = [{
         | 
| 205 | 
            +
                                id: '_no_result',
         | 
| 206 | 
            +
                                type: 'text',
         | 
| 207 | 
            +
                                disabled: true,
         | 
| 208 | 
            +
                                centered: true,
         | 
| 209 | 
            +
                                checkbox: false,
         | 
| 210 | 
            +
                                label: showNoResults ? translations.no_result_match : translations.min_length
         | 
| 211 | 
            +
                            }];
         | 
| 212 | 
            +
                        }
         | 
| 213 | 
            +
                        var open = !!optionsShown.length && focused;
         | 
| 198 214 |  | 
| 199 215 | 
             
                        return _react2.default.createElement(
         | 
| 200 216 | 
             
                            'div',
         | 
| @@ -211,6 +227,7 @@ var HiSuggestSelect = function (_React$PureComponent) { | |
| 211 227 | 
             
                                    _reactPopper.Target,
         | 
| 212 228 | 
             
                                    null,
         | 
| 213 229 | 
             
                                    _react2.default.createElement(_HiInput2.default, (0, _extends3.default)({}, otherProps, {
         | 
| 230 | 
            +
             | 
| 214 231 | 
             
                                        inputId: id,
         | 
| 215 232 | 
             
                                        focused: focused,
         | 
| 216 233 | 
             
                                        inputRef: function inputRef(input) {
         | 
| @@ -236,7 +253,7 @@ var HiSuggestSelect = function (_React$PureComponent) { | |
| 236 253 | 
             
                                            _Paper2.default,
         | 
| 237 254 | 
             
                                            { className: classes.paper },
         | 
| 238 255 | 
             
                                            _react2.default.createElement(_HiSelectableList2.default, {
         | 
| 239 | 
            -
                                                itemList:  | 
| 256 | 
            +
                                                itemList: optionsShown,
         | 
| 240 257 | 
             
                                                selectedIdList: [],
         | 
| 241 258 | 
             
                                                checkbox: false,
         | 
| 242 259 | 
             
                                                onSelect: this.handleSelect,
         | 
| @@ -254,7 +271,12 @@ var HiSuggestSelect = function (_React$PureComponent) { | |
| 254 271 | 
             
            }(_react2.default.PureComponent);
         | 
| 255 272 |  | 
| 256 273 | 
             
            HiSuggestSelect.defaultProps = {
         | 
| 257 | 
            -
                 | 
| 274 | 
            +
                showMinLength: false,
         | 
| 275 | 
            +
                showNoResults: false,
         | 
| 276 | 
            +
                translations: {
         | 
| 277 | 
            +
                    no_result_match: 'No result match',
         | 
| 278 | 
            +
                    min_length: 'Veuillez saisir 3 caractères minimum'
         | 
| 279 | 
            +
                },
         | 
| 258 280 | 
             
                options: []
         | 
| 259 281 | 
             
            };
         | 
| 260 282 | 
             
            HiSuggestSelect.propTypes = process.env.NODE_ENV !== "production" ? {
         | 
| @@ -278,6 +300,14 @@ HiSuggestSelect.propTypes = process.env.NODE_ENV !== "production" ? { | |
| 278 300 | 
             
                 * Liste de suggestions.
         | 
| 279 301 | 
             
                 */
         | 
| 280 302 | 
             
                options: _propTypes2.default.array,
         | 
| 303 | 
            +
                /**
         | 
| 304 | 
            +
                 * Permet d'afficher un message si pas assez de caractères
         | 
| 305 | 
            +
                 */
         | 
| 306 | 
            +
                showMinLength: _propTypes2.default.bool,
         | 
| 307 | 
            +
                /**
         | 
| 308 | 
            +
                 * Permet d'afficher un message si aucune options n'est présente
         | 
| 309 | 
            +
                 */
         | 
| 310 | 
            +
                showNoResults: _propTypes2.default.bool,
         | 
| 281 311 | 
             
                /**
         | 
| 282 312 | 
             
                 * Traductions (par défaut en anglais)
         | 
| 283 313 | 
             
                 */
         | 
| @@ -377,51 +377,44 @@ var HiSelectableListItem = function (_React$Component) { | |
| 377 377 | 
             
                            listItemProps.button = false;
         | 
| 378 378 | 
             
                        }
         | 
| 379 379 |  | 
| 380 | 
            -
                        var iconAll = void 0;
         | 
| 381 | 
            -
                        if (item.id === '_all' && item.icon) {
         | 
| 382 | 
            -
                            iconAll = _react2.default.createElement(_HiIconBuilder2.default, { icon: item.icon, className: classes.checkboxIcon });
         | 
| 383 | 
            -
                        }
         | 
| 384 | 
            -
             | 
| 385 380 | 
             
                        // calcul du padding left
         | 
| 386 381 | 
             
                        var paddingLeft = 0;
         | 
| 387 382 |  | 
| 388 383 | 
             
                        if (leftPadding) {
         | 
| 389 384 | 
             
                            paddingLeft = leftPadding;
         | 
| 390 | 
            -
                        } else {
         | 
| 391 | 
            -
                            // Si pas de hiérarchie, padding de 8px
         | 
| 392 | 
            -
                            if (! | 
| 393 | 
            -
                                 | 
| 394 | 
            -
             | 
| 385 | 
            +
                        } else if (!hierarchic) {
         | 
| 386 | 
            +
                            // Si pas de hiérarchie et sans checkbox, padding de 8px
         | 
| 387 | 
            +
                            if (!effectiveCheckbox) {
         | 
| 388 | 
            +
                                paddingLeft = 8;
         | 
| 389 | 
            +
                            }
         | 
| 390 | 
            +
                        } else if (selectable) {
         | 
| 391 | 
            +
                            // Si item selectionnable
         | 
| 392 | 
            +
                            // Si parent selectionnable
         | 
| 393 | 
            +
                            if (parentItemSelectable) {
         | 
| 394 | 
            +
                                // Si l'item contient une checkbox
         | 
| 395 | 
            +
                                if (effectiveCheckbox) {
         | 
| 396 | 
            +
                                    paddingLeft = 16 * level;
         | 
| 397 | 
            +
                                } else {
         | 
| 398 | 
            +
                                    paddingLeft = 16 * (level + 1);
         | 
| 395 399 | 
             
                                }
         | 
| 396 | 
            -
                            } else if ( | 
| 397 | 
            -
                                 | 
| 398 | 
            -
             | 
| 399 | 
            -
                                 | 
| 400 | 
            -
                                     | 
| 401 | 
            -
                                    if (effectiveCheckbox) {
         | 
| 402 | 
            -
                                        paddingLeft = 16 * level;
         | 
| 403 | 
            -
                                    } else {
         | 
| 404 | 
            -
                                        paddingLeft = 16 * (level + 1);
         | 
| 405 | 
            -
                                    }
         | 
| 406 | 
            -
                                } else if (level > 0) {
         | 
| 407 | 
            -
                                    if (effectiveCheckbox) {
         | 
| 408 | 
            -
                                        paddingLeft = 16 * (level - 1);
         | 
| 409 | 
            -
                                    } else {
         | 
| 410 | 
            -
                                        paddingLeft = 16 * level;
         | 
| 411 | 
            -
                                    }
         | 
| 412 | 
            -
                                } else if (!effectiveCheckbox) {
         | 
| 413 | 
            -
                                    if (item.id === '_all') {
         | 
| 414 | 
            -
                                        paddingLeft = 16;
         | 
| 415 | 
            -
                                    } else {
         | 
| 416 | 
            -
                                        paddingLeft = 16 * level;
         | 
| 417 | 
            -
                                    }
         | 
| 400 | 
            +
                            } else if (level > 0) {
         | 
| 401 | 
            +
                                if (effectiveCheckbox) {
         | 
| 402 | 
            +
                                    paddingLeft = 16 * (level - 1);
         | 
| 403 | 
            +
                                } else {
         | 
| 404 | 
            +
                                    paddingLeft = 16 * level;
         | 
| 418 405 | 
             
                                }
         | 
| 419 | 
            -
                            } else {
         | 
| 420 | 
            -
                                 | 
| 421 | 
            -
             | 
| 406 | 
            +
                            } else if (!effectiveCheckbox) {
         | 
| 407 | 
            +
                                if (item.id === '_all') {
         | 
| 408 | 
            +
                                    paddingLeft = 16;
         | 
| 409 | 
            +
                                } else {
         | 
| 422 410 | 
             
                                    paddingLeft = 16 * level;
         | 
| 423 411 | 
             
                                }
         | 
| 424 412 | 
             
                            }
         | 
| 413 | 
            +
                        } else {
         | 
| 414 | 
            +
                            paddingLeft = 16; // Padding de 16 par défaut
         | 
| 415 | 
            +
                            if (level > 0) {
         | 
| 416 | 
            +
                                paddingLeft = 16 * level;
         | 
| 417 | 
            +
                            }
         | 
| 425 418 | 
             
                        }
         | 
| 426 419 |  | 
| 427 420 | 
             
                        listItemProps.style = { paddingLeft: paddingLeft + 'px' };
         | 
| @@ -431,8 +424,8 @@ var HiSelectableListItem = function (_React$Component) { | |
| 431 424 | 
             
                            iconDisplay = hoverIcon;
         | 
| 432 425 | 
             
                        } else if (item.hasChildren) {
         | 
| 433 426 | 
             
                            iconDisplay = parentIcon;
         | 
| 434 | 
            -
                        } else if (item. | 
| 435 | 
            -
                            iconDisplay =  | 
| 427 | 
            +
                        } else if (item.type === 'icon' && item.icon) {
         | 
| 428 | 
            +
                            iconDisplay = _react2.default.createElement(_HiIconBuilder2.default, { icon: item.icon, className: classes.checkboxIcon });
         | 
| 436 429 | 
             
                        }
         | 
| 437 430 |  | 
| 438 431 | 
             
                        return _react2.default.createElement(
         | 
    
        package/HiTopBar/HiTopBar.js
    CHANGED
    
    | @@ -187,7 +187,7 @@ var _ref = _react2.default.createElement(_HiIconBuilder2.default, { icon: 'fa-be | |
| 187 187 |  | 
| 188 188 | 
             
            var _ref2 = _react2.default.createElement(_mdiMaterialUi.ArrowLeft, null);
         | 
| 189 189 |  | 
| 190 | 
            -
            var _ref3 = _react2.default.createElement(_mdiMaterialUi. | 
| 190 | 
            +
            var _ref3 = _react2.default.createElement(_mdiMaterialUi.ChevronDown, null);
         | 
| 191 191 |  | 
| 192 192 | 
             
            var _ref4 = _react2.default.createElement(_mdiMaterialUi.ArrowLeft, null);
         | 
| 193 193 |  | 
| @@ -235,6 +235,9 @@ var HiTopBar = function (_React$Component) { | |
| 235 235 | 
             
                }, {
         | 
| 236 236 | 
             
                    key: 'handleCollapse',
         | 
| 237 237 | 
             
                    value: function handleCollapse() {
         | 
| 238 | 
            +
                        if (this.props.onCollapse) {
         | 
| 239 | 
            +
                            this.props.onCollapse(!this.state.collapsed);
         | 
| 240 | 
            +
                        }
         | 
| 238 241 | 
             
                        this.setState({ collapsed: !this.state.collapsed });
         | 
| 239 242 | 
             
                    }
         | 
| 240 243 | 
             
                }, {
         | 
| @@ -362,7 +365,7 @@ var HiTopBar = function (_React$Component) { | |
| 362 365 | 
             
                                            (hideable || hasSettings) && _react2.default.createElement(
         | 
| 363 366 | 
             
                                                _IconButton2.default,
         | 
| 364 367 | 
             
                                                { color: 'inherit', className: classes.iconButton },
         | 
| 365 | 
            -
                                                hideable && _react2.default.createElement(_mdiMaterialUi. | 
| 368 | 
            +
                                                hideable && _react2.default.createElement(_mdiMaterialUi.ChevronUp, { onClick: this.handleCollapse }),
         | 
| 366 369 | 
             
                                                hasSettings && _react2.default.createElement(_HiIconBuilder2.default, {
         | 
| 367 370 | 
             
                                                    onClick: this.props.onClickSettings,
         | 
| 368 371 | 
             
                                                    icon: 'fa-gear',
         | 
| @@ -498,7 +501,7 @@ HiTopBar.propTypes = process.env.NODE_ENV !== "production" ? { | |
| 498 501 | 
             
                 */
         | 
| 499 502 | 
             
                hasSettings: _propTypes2.default.bool,
         | 
| 500 503 | 
             
                /**
         | 
| 501 | 
            -
                 * La TopBar peut être cachée vie le bouton  | 
| 504 | 
            +
                 * La TopBar peut être cachée vie le bouton chevron
         | 
| 502 505 | 
             
                 */
         | 
| 503 506 | 
             
                hideable: _propTypes2.default.bool,
         | 
| 504 507 | 
             
                /**
         | 
| @@ -525,6 +528,10 @@ HiTopBar.propTypes = process.env.NODE_ENV !== "production" ? { | |
| 525 528 | 
             
                 * Fonction de callback au click sur le bouton "Settings" du menu
         | 
| 526 529 | 
             
                 */
         | 
| 527 530 | 
             
                onClickSettings: _propTypes2.default.func,
         | 
| 531 | 
            +
                /**
         | 
| 532 | 
            +
                 * Fonction de callback au click sur le bouton chevron
         | 
| 533 | 
            +
                 */
         | 
| 534 | 
            +
                onCollapse: _propTypes2.default.func,
         | 
| 528 535 | 
             
                /**
         | 
| 529 536 | 
             
                 * Positionement de la topBar. The behavior of the different options is described
         | 
| 530 537 | 
             
                 * [here](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning).
         | 
    
        package/es/HiSelect/HiSelect.js
    CHANGED
    
    | @@ -216,7 +216,8 @@ class HiSelect extends React.PureComponent { | |
| 216 216 | 
             
                        hierarchic,
         | 
| 217 217 | 
             
                        id,
         | 
| 218 218 | 
             
                        placeholder,
         | 
| 219 | 
            -
                        staticPosition
         | 
| 219 | 
            +
                        staticPosition,
         | 
| 220 | 
            +
                        pinnedItem
         | 
| 220 221 | 
             
                    } = this.props;
         | 
| 221 222 |  | 
| 222 223 | 
             
                    const { open, suggestions, focused } = this.state;
         | 
| @@ -224,6 +225,11 @@ class HiSelect extends React.PureComponent { | |
| 224 225 | 
             
                    let display = '';
         | 
| 225 226 | 
             
                    const selectedIdList = Array.isArray(value) ? value : value ? [value] : [];
         | 
| 226 227 |  | 
| 228 | 
            +
                    let _suggestions = [...suggestions];
         | 
| 229 | 
            +
                    if (pinnedItem) {
         | 
| 230 | 
            +
                        _suggestions = [pinnedItem, ...suggestions];
         | 
| 231 | 
            +
                    }
         | 
| 232 | 
            +
             | 
| 227 233 | 
             
                    if (this.state.dynamic && selectedIdList.length === 1) {
         | 
| 228 234 | 
             
                        display = translations.one_item_selected.replace('%s', selectedIdList.length);
         | 
| 229 235 | 
             
                    } else if (this.state.nbOptions !== selectedIdList.length && selectedIdList.length > 1) {
         | 
| @@ -232,7 +238,11 @@ class HiSelect extends React.PureComponent { | |
| 232 238 | 
             
                        display = translations.all;
         | 
| 233 239 | 
             
                    } else if (selectedIdList.length === 1) {
         | 
| 234 240 | 
             
                        if (type !== 'icon') {
         | 
| 235 | 
            -
                             | 
| 241 | 
            +
                            let item = options.find(o => o.id === selectedIdList[0]);
         | 
| 242 | 
            +
                            if (!item && pinnedItem) {
         | 
| 243 | 
            +
                                item = pinnedItem;
         | 
| 244 | 
            +
                            }
         | 
| 245 | 
            +
                            display = item.label;
         | 
| 236 246 | 
             
                        } else {
         | 
| 237 247 | 
             
                            const optionSelected = options.find(o => o.id === selectedIdList[0]);
         | 
| 238 248 | 
             
                            display = React.createElement(
         | 
| @@ -289,7 +299,7 @@ class HiSelect extends React.PureComponent { | |
| 289 299 | 
             
                                React.createElement(HiSelectableList, {
         | 
| 290 300 | 
             
                                    type: type,
         | 
| 291 301 | 
             
                                    parentItemSelectable: parentItemSelectable,
         | 
| 292 | 
            -
                                    itemList:  | 
| 302 | 
            +
                                    itemList: _suggestions,
         | 
| 293 303 | 
             
                                    onSelect: this.handleSelect,
         | 
| 294 304 | 
             
                                    selectedIdList: selectedIdList,
         | 
| 295 305 | 
             
                                    checkbox: checkbox,
         | 
| @@ -395,7 +405,7 @@ var _initialiseProps = function () { | |
| 395 405 | 
             
                        this.handleClose();
         | 
| 396 406 | 
             
                    } else {
         | 
| 397 407 | 
             
                        if (!this.props.staticPosition) {
         | 
| 398 | 
            -
                            document.body.style.overflow = 'hidden';
         | 
| 408 | 
            +
                            //document.body.style.overflow = 'hidden';
         | 
| 399 409 | 
             
                        }
         | 
| 400 410 | 
             
                        this.setState({ open: true });
         | 
| 401 411 | 
             
                        const options = this.props.options.slice();
         | 
| @@ -459,7 +469,7 @@ var _initialiseProps = function () { | |
| 459 469 | 
             
                        nextItem = getNextItemSelectable(document.activeElement, 'up');
         | 
| 460 470 | 
             
                    } else if (event.key === 'Tab') {
         | 
| 461 471 | 
             
                        if (!this.props.staticPosition) {
         | 
| 462 | 
            -
                            document.body.style.overflow = 'auto';
         | 
| 472 | 
            +
                            //document.body.style.overflow = 'auto';
         | 
| 463 473 | 
             
                        }
         | 
| 464 474 | 
             
                        this.setState({ open: false });
         | 
| 465 475 | 
             
                    }
         | 
| @@ -484,7 +494,7 @@ var _initialiseProps = function () { | |
| 484 494 |  | 
| 485 495 | 
             
                this.handleClose = () => {
         | 
| 486 496 | 
             
                    if (!this.props.staticPosition) {
         | 
| 487 | 
            -
                        document.body.style.overflow = 'auto';
         | 
| 497 | 
            +
                        //document.body.style.overflow = 'auto';
         | 
| 488 498 | 
             
                    }
         | 
| 489 499 | 
             
                    this.setState({
         | 
| 490 500 | 
             
                        open: false
         | 
| @@ -506,7 +516,7 @@ var _initialiseProps = function () { | |
| 506 516 | 
             
                };
         | 
| 507 517 |  | 
| 508 518 | 
             
                this.handleSelect = (event, item) => {
         | 
| 509 | 
            -
                    const { multiple, value,  | 
| 519 | 
            +
                    const { multiple, value, onChange, options, hierarchic, pinnedItem } = this.props;
         | 
| 510 520 | 
             
                    const { hierarchySelected, hierarchy, nbOptions } = this.state;
         | 
| 511 521 | 
             
                    const hiSelected = _extends({}, hierarchySelected);
         | 
| 512 522 |  | 
| @@ -551,8 +561,20 @@ var _initialiseProps = function () { | |
| 551 561 | 
             
                                hiSelected[item.parentId].splice(hiSelected[item.parentId].indexOf(item.id), 1);
         | 
| 552 562 | 
             
                            }
         | 
| 553 563 | 
             
                        } else {
         | 
| 554 | 
            -
                             | 
| 555 | 
            -
             | 
| 564 | 
            +
                            if (pinnedItem && item.id === pinnedItem.id) {
         | 
| 565 | 
            +
                                _Object$keys(hiSelected).map(parentItemId => {
         | 
| 566 | 
            +
                                    hiSelected[parentItemId] = [];
         | 
| 567 | 
            +
                                    return true;
         | 
| 568 | 
            +
                                });
         | 
| 569 | 
            +
                                valueList = [item.id];
         | 
| 570 | 
            +
                            } else {
         | 
| 571 | 
            +
                                // item non sélectionné => on le sélectionne
         | 
| 572 | 
            +
                                if (item.hasChildren !== true) valueList.push(item.id);
         | 
| 573 | 
            +
             | 
| 574 | 
            +
                                if (pinnedItem && valueList.includes(pinnedItem.id)) {
         | 
| 575 | 
            +
                                    valueList.splice(valueList.indexOf(pinnedItem.id), 1);
         | 
| 576 | 
            +
                                }
         | 
| 577 | 
            +
                            }
         | 
| 556 578 |  | 
| 557 579 | 
             
                            if (item.hasChildren === true) {
         | 
| 558 580 | 
             
                                // Si item parent => on ajoute tous les enfants
         | 
| @@ -735,6 +757,10 @@ HiSelect.propTypes = process.env.NODE_ENV !== "production" ? { | |
| 735 757 | 
             
                 * Les items parents sont sélectionnables
         | 
| 736 758 | 
             
                 */
         | 
| 737 759 | 
             
                parentItemSelectable: PropTypes.bool,
         | 
| 760 | 
            +
                /**
         | 
| 761 | 
            +
                 * Item épinglé en début de liste
         | 
| 762 | 
            +
                 */
         | 
| 763 | 
            +
                pinnedItem: PropTypes.object,
         | 
| 738 764 | 
             
                /**
         | 
| 739 765 | 
             
                 * Placeholder affiché lorsque le select est fermé
         | 
| 740 766 | 
             
                 * Surcharge le placeholder par défaut
         | 
| @@ -116,11 +116,25 @@ class HiSuggestSelect extends React.PureComponent { | |
| 116 116 |  | 
| 117 117 | 
             
                render() {
         | 
| 118 118 | 
             
                    const _props = this.props,
         | 
| 119 | 
            -
                          { classes,  | 
| 120 | 
            -
                          otherProps = _objectWithoutProperties(_props, ['classes', ' | 
| 119 | 
            +
                          { classes, id, showMinLength, showNoResults, onSearch, translations } = _props,
         | 
| 120 | 
            +
                          otherProps = _objectWithoutProperties(_props, ['classes', 'id', 'showMinLength', 'showNoResults', 'onSearch', 'translations']);
         | 
| 121 121 |  | 
| 122 122 | 
             
                    const { focused, options } = this.state;
         | 
| 123 | 
            -
             | 
| 123 | 
            +
             | 
| 124 | 
            +
                    let optionsShown = options;
         | 
| 125 | 
            +
             | 
| 126 | 
            +
                    // If no results match
         | 
| 127 | 
            +
                    if (options.length === 0 && (showNoResults || showMinLength)) {
         | 
| 128 | 
            +
                        optionsShown = [{
         | 
| 129 | 
            +
                            id: '_no_result',
         | 
| 130 | 
            +
                            type: 'text',
         | 
| 131 | 
            +
                            disabled: true,
         | 
| 132 | 
            +
                            centered: true,
         | 
| 133 | 
            +
                            checkbox: false,
         | 
| 134 | 
            +
                            label: showNoResults ? translations.no_result_match : translations.min_length
         | 
| 135 | 
            +
                        }];
         | 
| 136 | 
            +
                    }
         | 
| 137 | 
            +
                    const open = !!optionsShown.length && focused;
         | 
| 124 138 |  | 
| 125 139 | 
             
                    return React.createElement(
         | 
| 126 140 | 
             
                        'div',
         | 
| @@ -137,6 +151,7 @@ class HiSuggestSelect extends React.PureComponent { | |
| 137 151 | 
             
                                Target,
         | 
| 138 152 | 
             
                                null,
         | 
| 139 153 | 
             
                                React.createElement(HiInput, _extends({}, otherProps, {
         | 
| 154 | 
            +
             | 
| 140 155 | 
             
                                    inputId: id,
         | 
| 141 156 | 
             
                                    focused: focused,
         | 
| 142 157 | 
             
                                    inputRef: input => {
         | 
| @@ -162,7 +177,7 @@ class HiSuggestSelect extends React.PureComponent { | |
| 162 177 | 
             
                                        Paper,
         | 
| 163 178 | 
             
                                        { className: classes.paper },
         | 
| 164 179 | 
             
                                        React.createElement(HiSelectableList, {
         | 
| 165 | 
            -
                                            itemList:  | 
| 180 | 
            +
                                            itemList: optionsShown,
         | 
| 166 181 | 
             
                                            selectedIdList: [],
         | 
| 167 182 | 
             
                                            checkbox: false,
         | 
| 168 183 | 
             
                                            onSelect: this.handleSelect,
         | 
| @@ -178,7 +193,12 @@ class HiSuggestSelect extends React.PureComponent { | |
| 178 193 | 
             
            }
         | 
| 179 194 |  | 
| 180 195 | 
             
            HiSuggestSelect.defaultProps = {
         | 
| 181 | 
            -
                 | 
| 196 | 
            +
                showMinLength: false,
         | 
| 197 | 
            +
                showNoResults: false,
         | 
| 198 | 
            +
                translations: {
         | 
| 199 | 
            +
                    no_result_match: 'No result match',
         | 
| 200 | 
            +
                    min_length: 'Veuillez saisir 3 caractères minimum'
         | 
| 201 | 
            +
                },
         | 
| 182 202 | 
             
                options: []
         | 
| 183 203 | 
             
            };
         | 
| 184 204 | 
             
            HiSuggestSelect.propTypes = process.env.NODE_ENV !== "production" ? {
         | 
| @@ -202,6 +222,14 @@ HiSuggestSelect.propTypes = process.env.NODE_ENV !== "production" ? { | |
| 202 222 | 
             
                 * Liste de suggestions.
         | 
| 203 223 | 
             
                 */
         | 
| 204 224 | 
             
                options: PropTypes.array,
         | 
| 225 | 
            +
                /**
         | 
| 226 | 
            +
                 * Permet d'afficher un message si pas assez de caractères
         | 
| 227 | 
            +
                 */
         | 
| 228 | 
            +
                showMinLength: PropTypes.bool,
         | 
| 229 | 
            +
                /**
         | 
| 230 | 
            +
                 * Permet d'afficher un message si aucune options n'est présente
         | 
| 231 | 
            +
                 */
         | 
| 232 | 
            +
                showNoResults: PropTypes.bool,
         | 
| 205 233 | 
             
                /**
         | 
| 206 234 | 
             
                 * Traductions (par défaut en anglais)
         | 
| 207 235 | 
             
                 */
         | 
| @@ -295,51 +295,44 @@ class HiSelectableListItem extends React.Component { | |
| 295 295 | 
             
                        listItemProps.button = false;
         | 
| 296 296 | 
             
                    }
         | 
| 297 297 |  | 
| 298 | 
            -
                    let iconAll;
         | 
| 299 | 
            -
                    if (item.id === '_all' && item.icon) {
         | 
| 300 | 
            -
                        iconAll = React.createElement(HiIconBuilder, { icon: item.icon, className: classes.checkboxIcon });
         | 
| 301 | 
            -
                    }
         | 
| 302 | 
            -
             | 
| 303 298 | 
             
                    // calcul du padding left
         | 
| 304 299 | 
             
                    let paddingLeft = 0;
         | 
| 305 300 |  | 
| 306 301 | 
             
                    if (leftPadding) {
         | 
| 307 302 | 
             
                        paddingLeft = leftPadding;
         | 
| 308 | 
            -
                    } else {
         | 
| 309 | 
            -
                        // Si pas de hiérarchie, padding de 8px
         | 
| 310 | 
            -
                        if (! | 
| 311 | 
            -
                             | 
| 312 | 
            -
             | 
| 303 | 
            +
                    } else if (!hierarchic) {
         | 
| 304 | 
            +
                        // Si pas de hiérarchie et sans checkbox, padding de 8px
         | 
| 305 | 
            +
                        if (!effectiveCheckbox) {
         | 
| 306 | 
            +
                            paddingLeft = 8;
         | 
| 307 | 
            +
                        }
         | 
| 308 | 
            +
                    } else if (selectable) {
         | 
| 309 | 
            +
                        // Si item selectionnable
         | 
| 310 | 
            +
                        // Si parent selectionnable
         | 
| 311 | 
            +
                        if (parentItemSelectable) {
         | 
| 312 | 
            +
                            // Si l'item contient une checkbox
         | 
| 313 | 
            +
                            if (effectiveCheckbox) {
         | 
| 314 | 
            +
                                paddingLeft = 16 * level;
         | 
| 315 | 
            +
                            } else {
         | 
| 316 | 
            +
                                paddingLeft = 16 * (level + 1);
         | 
| 313 317 | 
             
                            }
         | 
| 314 | 
            -
                        } else if ( | 
| 315 | 
            -
                             | 
| 316 | 
            -
             | 
| 317 | 
            -
                             | 
| 318 | 
            -
                                 | 
| 319 | 
            -
                                if (effectiveCheckbox) {
         | 
| 320 | 
            -
                                    paddingLeft = 16 * level;
         | 
| 321 | 
            -
                                } else {
         | 
| 322 | 
            -
                                    paddingLeft = 16 * (level + 1);
         | 
| 323 | 
            -
                                }
         | 
| 324 | 
            -
                            } else if (level > 0) {
         | 
| 325 | 
            -
                                if (effectiveCheckbox) {
         | 
| 326 | 
            -
                                    paddingLeft = 16 * (level - 1);
         | 
| 327 | 
            -
                                } else {
         | 
| 328 | 
            -
                                    paddingLeft = 16 * level;
         | 
| 329 | 
            -
                                }
         | 
| 330 | 
            -
                            } else if (!effectiveCheckbox) {
         | 
| 331 | 
            -
                                if (item.id === '_all') {
         | 
| 332 | 
            -
                                    paddingLeft = 16;
         | 
| 333 | 
            -
                                } else {
         | 
| 334 | 
            -
                                    paddingLeft = 16 * level;
         | 
| 335 | 
            -
                                }
         | 
| 318 | 
            +
                        } else if (level > 0) {
         | 
| 319 | 
            +
                            if (effectiveCheckbox) {
         | 
| 320 | 
            +
                                paddingLeft = 16 * (level - 1);
         | 
| 321 | 
            +
                            } else {
         | 
| 322 | 
            +
                                paddingLeft = 16 * level;
         | 
| 336 323 | 
             
                            }
         | 
| 337 | 
            -
                        } else {
         | 
| 338 | 
            -
                             | 
| 339 | 
            -
             | 
| 324 | 
            +
                        } else if (!effectiveCheckbox) {
         | 
| 325 | 
            +
                            if (item.id === '_all') {
         | 
| 326 | 
            +
                                paddingLeft = 16;
         | 
| 327 | 
            +
                            } else {
         | 
| 340 328 | 
             
                                paddingLeft = 16 * level;
         | 
| 341 329 | 
             
                            }
         | 
| 342 330 | 
             
                        }
         | 
| 331 | 
            +
                    } else {
         | 
| 332 | 
            +
                        paddingLeft = 16; // Padding de 16 par défaut
         | 
| 333 | 
            +
                        if (level > 0) {
         | 
| 334 | 
            +
                            paddingLeft = 16 * level;
         | 
| 335 | 
            +
                        }
         | 
| 343 336 | 
             
                    }
         | 
| 344 337 |  | 
| 345 338 | 
             
                    listItemProps.style = { paddingLeft: `${paddingLeft}px` };
         | 
| @@ -349,8 +342,8 @@ class HiSelectableListItem extends React.Component { | |
| 349 342 | 
             
                        iconDisplay = hoverIcon;
         | 
| 350 343 | 
             
                    } else if (item.hasChildren) {
         | 
| 351 344 | 
             
                        iconDisplay = parentIcon;
         | 
| 352 | 
            -
                    } else if (item. | 
| 353 | 
            -
                        iconDisplay =  | 
| 345 | 
            +
                    } else if (item.type === 'icon' && item.icon) {
         | 
| 346 | 
            +
                        iconDisplay = React.createElement(HiIconBuilder, { icon: item.icon, className: classes.checkboxIcon });
         | 
| 354 347 | 
             
                    }
         | 
| 355 348 |  | 
| 356 349 | 
             
                    return React.createElement(
         |