@hipay/hipay-material-ui 2.0.0-beta.55 → 2.0.0-beta.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/HiBreadcrumb/HiBreadcrumb.js +14 -4
  3. package/HiBreadcrumb/HiStep.js +4 -1
  4. package/HiBreadcrumb/HiStepContent.js +0 -1
  5. package/HiBreadcrumb/HiStepLabel.js +12 -4
  6. package/HiBreadcrumb/HiStepper.js +1 -1
  7. package/HiButton/HiButton.js +7 -1
  8. package/HiCell/CellIcon.js +4 -4
  9. package/HiCell/CellImage.js +13 -1
  10. package/HiCell/CellRate.js +6 -3
  11. package/HiCell/CellSentinel.js +7 -10
  12. package/HiCell/CellTextStyled.js +29 -1
  13. package/HiColoredLabel/HiColoredLabel.js +1 -1
  14. package/HiDatePicker/Caption.js +16 -10
  15. package/HiDatePicker/HiDatePicker.js +9 -3
  16. package/HiDatePicker/HiDateRangePicker.js +36 -22
  17. package/HiDatePicker/HiDateRangeSelector.js +75 -21
  18. package/HiDatePicker/NavBar.js +8 -1
  19. package/HiDatePicker/Overlays/CustomOverlayLayout.js +26 -17
  20. package/HiDatePicker/Overlays/CustomOverlayLayoutWithoutFooter.js +123 -0
  21. package/HiDatePicker/Overlays/MonthPickerOverlay.js +4 -4
  22. package/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +1 -0
  23. package/HiDatePicker/Overlays/Overlay.js +15 -8
  24. package/HiDatePicker/Overlays/Overlay.spec.js +1 -0
  25. package/HiDatePicker/Overlays/TimePickerOverlay.js +2 -2
  26. package/HiDatePicker/Overlays/TimePickerOverlay.spec.js +1 -0
  27. package/HiDatePicker/Overlays/YearPickerOverlay.js +4 -6
  28. package/HiDatePicker/Overlays/YearPickerOverlay.spec.js +1 -0
  29. package/HiDatePicker/hiLocaleUtils.js +144 -0
  30. package/HiDatePicker/stylesheet.js +33 -7
  31. package/HiDotsStepper/HiDot.js +108 -0
  32. package/HiDotsStepper/HiDotsStepper.js +121 -0
  33. package/HiExpansionPanel/HiExpansionPanel.js +1 -1
  34. package/HiForm/HiAddressField.js +176 -0
  35. package/HiForm/HiFormControl.js +2 -0
  36. package/HiForm/HiInput.js +3 -3
  37. package/HiForm/HiSlider.js +352 -0
  38. package/HiForm/HiUpload.js +204 -0
  39. package/HiForm/HiUploadField.js +182 -0
  40. package/HiForm/HiUploadInput.js +459 -0
  41. package/HiForm/index.js +16 -0
  42. package/HiMap/HiMap.js +345 -0
  43. package/HiMap/HiMapExpand.js +210 -0
  44. package/HiMap/index.js +23 -0
  45. package/HiNotice/HiKPI.js +238 -0
  46. package/HiNotice/HiKPINotice.js +96 -0
  47. package/HiNotice/index.js +23 -0
  48. package/HiPdfReader/HiPdfReader.js +269 -0
  49. package/HiPdfReader/index.js +15 -0
  50. package/HiPin/HiPin.js +1 -1
  51. package/HiRadio/HiRadio.js +74 -0
  52. package/HiRadio/index.js +15 -0
  53. package/HiSelect/HiSelect.js +73 -84
  54. package/HiSelect/HiSuggestSelect.js +35 -4
  55. package/HiSelect/SelectInput.js +9 -1
  56. package/HiSelectNew/HiNestedSelectContent.js +5 -1
  57. package/HiSelectNew/HiSelect.js +260 -179
  58. package/HiSelectNew/HiSelectContent.js +0 -8
  59. package/HiSelectNew/HiSelectInput.js +8 -9
  60. package/HiSelectableList/HiSelectableList.js +39 -4
  61. package/HiSelectableList/HiSelectableListItem.js +81 -38
  62. package/HiTable/HiCellBuilder.js +25 -12
  63. package/HiTable/HiTableHeader.js +16 -17
  64. package/HiTable/constants.js +3 -1
  65. package/README.md +248 -98
  66. package/es/HiBreadcrumb/HiBreadcrumb.js +14 -4
  67. package/es/HiBreadcrumb/HiStep.js +4 -1
  68. package/es/HiBreadcrumb/HiStepContent.js +0 -1
  69. package/es/HiBreadcrumb/HiStepLabel.js +13 -4
  70. package/es/HiBreadcrumb/HiStepper.js +1 -1
  71. package/es/HiButton/HiButton.js +7 -0
  72. package/es/HiCell/CellIcon.js +5 -5
  73. package/es/HiCell/CellImage.js +13 -1
  74. package/es/HiCell/CellRate.js +6 -3
  75. package/es/HiCell/CellSentinel.js +7 -10
  76. package/es/HiCell/CellTextStyled.js +28 -1
  77. package/es/HiColoredLabel/HiColoredLabel.js +1 -1
  78. package/es/HiDatePicker/Caption.js +14 -10
  79. package/es/HiDatePicker/HiDatePicker.js +8 -3
  80. package/es/HiDatePicker/HiDateRangePicker.js +40 -28
  81. package/es/HiDatePicker/HiDateRangeSelector.js +69 -21
  82. package/es/HiDatePicker/ListPicker.js +1 -1
  83. package/es/HiDatePicker/NavBar.js +7 -1
  84. package/es/HiDatePicker/Overlays/CustomOverlayLayout.js +30 -19
  85. package/es/HiDatePicker/Overlays/CustomOverlayLayoutWithoutFooter.js +106 -0
  86. package/es/HiDatePicker/Overlays/MonthPickerOverlay.js +5 -5
  87. package/es/HiDatePicker/Overlays/MonthPickerOverlay.spec.js +1 -0
  88. package/es/HiDatePicker/Overlays/Overlay.js +16 -9
  89. package/es/HiDatePicker/Overlays/Overlay.spec.js +1 -0
  90. package/es/HiDatePicker/Overlays/TimePickerOverlay.js +2 -2
  91. package/es/HiDatePicker/Overlays/TimePickerOverlay.spec.js +1 -0
  92. package/es/HiDatePicker/Overlays/YearPickerOverlay.js +4 -6
  93. package/es/HiDatePicker/Overlays/YearPickerOverlay.spec.js +1 -0
  94. package/es/HiDatePicker/hiLocaleUtils.js +131 -0
  95. package/es/HiDatePicker/stylesheet.js +32 -7
  96. package/es/HiDotsStepper/HiDot.js +66 -0
  97. package/es/HiDotsStepper/HiDotsStepper.js +73 -0
  98. package/es/HiExpansionPanel/HiExpansionPanel.js +1 -1
  99. package/es/HiForm/HiAddressField.js +134 -0
  100. package/es/HiForm/HiFormControl.js +2 -0
  101. package/es/HiForm/HiInput.js +3 -3
  102. package/es/HiForm/HiSlider.js +302 -0
  103. package/es/HiForm/HiUpload.js +158 -0
  104. package/es/HiForm/HiUploadField.js +140 -0
  105. package/es/HiForm/HiUploadInput.js +411 -0
  106. package/es/HiForm/index.js +2 -0
  107. package/es/HiMap/HiMap.js +290 -0
  108. package/es/HiMap/HiMapExpand.js +162 -0
  109. package/es/HiMap/index.js +2 -0
  110. package/es/HiNotice/HiKPI.js +196 -0
  111. package/es/HiNotice/HiKPINotice.js +78 -0
  112. package/es/HiNotice/index.js +2 -0
  113. package/es/HiPdfReader/HiPdfReader.js +214 -0
  114. package/es/HiPdfReader/index.js +1 -0
  115. package/es/HiPin/HiPin.js +1 -1
  116. package/es/HiRadio/HiRadio.js +55 -0
  117. package/es/HiRadio/index.js +1 -0
  118. package/es/HiSelect/HiSelect.js +68 -78
  119. package/es/HiSelect/HiSuggestSelect.js +30 -4
  120. package/es/HiSelect/SelectInput.js +9 -1
  121. package/es/HiSelectNew/HiNestedSelectContent.js +5 -1
  122. package/es/HiSelectNew/HiSelect.js +246 -162
  123. package/es/HiSelectNew/HiSelectContent.js +0 -7
  124. package/es/HiSelectNew/HiSelectInput.js +8 -9
  125. package/es/HiSelectableList/HiSelectableList.js +34 -6
  126. package/es/HiSelectableList/HiSelectableListItem.js +92 -40
  127. package/es/HiTable/HiCellBuilder.js +130 -123
  128. package/es/HiTable/HiTableHeader.js +14 -12
  129. package/es/HiTable/constants.js +1 -0
  130. package/es/index.js +9 -1
  131. package/es/utils/helpers.js +1 -1
  132. package/index.es.js +9 -1
  133. package/index.js +66 -2
  134. package/package.json +5 -2
  135. package/umd/hipay-material-ui.development.js +44450 -40930
  136. package/umd/hipay-material-ui.production.min.js +2 -2
  137. package/utils/helpers.js +1 -1
@@ -41,6 +41,7 @@ var _ref3 = React.createElement(AccessTime, null);
41
41
 
42
42
  const NavBar = ({
43
43
  classes,
44
+ locale = 'en_US',
44
45
  localeUtils,
45
46
  nextMonth,
46
47
  onClockClick,
@@ -49,7 +50,7 @@ const NavBar = ({
49
50
  previousMonth,
50
51
  showClockButton
51
52
  }) => {
52
- const months = localeUtils.getMonths();
53
+ const months = localeUtils.getMonths(locale);
53
54
  const prev = `${months[previousMonth.getMonth()]} ${previousMonth.getFullYear()}`;
54
55
  const next = `${months[nextMonth.getMonth()]} ${nextMonth.getFullYear()}`;
55
56
  return React.createElement("div", {
@@ -74,6 +75,11 @@ NavBar.propTypes = process.env.NODE_ENV !== "production" ? {
74
75
  */
75
76
  classes: PropTypes.object,
76
77
 
78
+ /**
79
+ * ReactDayPicker prop
80
+ */
81
+ locale: PropTypes.string,
82
+
77
83
  /**
78
84
  * ReactDayPicker prop
79
85
  */
@@ -7,10 +7,15 @@ import Paper from '@material-ui/core/Paper';
7
7
  import withStyles from '../../styles/withStyles';
8
8
  export const styles = theme => ({
9
9
  paper: {
10
- position: 'absolute',
11
10
  width: '100%',
12
11
  zIndex: 10
13
12
  },
13
+ absolute: {
14
+ position: 'absolute'
15
+ },
16
+ relative: {
17
+ position: 'relative'
18
+ },
14
19
  left: {
15
20
  width: '200%',
16
21
  left: 0
@@ -56,30 +61,35 @@ const CustomOverlayLayout = (_ref) => {
56
61
  headerElement,
57
62
  footerElement,
58
63
  absoluteElement,
59
- side
64
+ side,
65
+ staticPosition
60
66
  } = _ref,
61
- props = _objectWithoutProperties(_ref, ["classes", "children", "headerElement", "footerElement", "absoluteElement", "side"]);
67
+ props = _objectWithoutProperties(_ref, ["classes", "children", "headerElement", "footerElement", "absoluteElement", "side", "staticPosition"]);
62
68
 
63
69
  const paperClass = classNames(classes.paper, {
64
70
  [classes.left]: side === 'from',
65
- [classes.right]: side === 'to'
71
+ [classes.right]: side === 'to',
72
+ [classes.absolute]: staticPosition !== true,
73
+ [classes.relative]: staticPosition === true
66
74
  });
67
75
 
68
- let paperProps = _objectSpread({}, props);
76
+ const paperProps = _objectSpread({}, props);
69
77
 
70
- return React.createElement(Paper, {
71
- className: paperClass,
72
- onBlur: paperProps.onBlur,
73
- onFocus: paperProps.onFocus
74
- }, React.createElement("div", {
75
- className: classes.overlay
76
- }, React.createElement("div", {
77
- className: classes.header
78
- }, headerElement), React.createElement("div", {
79
- className: classes.body
80
- }, children), React.createElement("div", {
81
- className: classes.footer
82
- }, footerElement), absoluteElement));
78
+ return (// eslint-disable-next-line react/jsx-handler-names
79
+ React.createElement(Paper, {
80
+ className: paperClass,
81
+ onBlur: paperProps.onBlur,
82
+ onFocus: paperProps.onFocus
83
+ }, React.createElement("div", {
84
+ className: classes.overlay
85
+ }, React.createElement("div", {
86
+ className: classes.header
87
+ }, headerElement), React.createElement("div", {
88
+ className: classes.body
89
+ }, children), React.createElement("div", {
90
+ className: classes.footer
91
+ }, footerElement), absoluteElement))
92
+ );
83
93
  };
84
94
 
85
95
  CustomOverlayLayout.propTypes = process.env.NODE_ENV !== "production" ? {
@@ -96,7 +106,8 @@ CustomOverlayLayout.propTypes = process.env.NODE_ENV !== "production" ? {
96
106
  /**
97
107
  * Définit comment construire le Paper dans le cas d'un double input
98
108
  */
99
- side: PropTypes.string
109
+ side: PropTypes.string,
110
+ staticPosition: PropTypes.bool
100
111
  } : {};
101
112
  export default withStyles(styles, {
102
113
  name: 'HmuiCustomOverlayLayout'
@@ -0,0 +1,106 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
+ import _objectSpread from "@babel/runtime/helpers/objectSpread";
3
+ import React from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import classNames from 'classnames';
6
+ import Paper from '@material-ui/core/Paper';
7
+ import withStyles from '../../styles/withStyles';
8
+ export const styles = theme => ({
9
+ paper: {
10
+ width: '100%',
11
+ zIndex: 10
12
+ },
13
+ absolute: {
14
+ position: 'absolute'
15
+ },
16
+ relative: {
17
+ position: 'relative'
18
+ },
19
+ left: {
20
+ width: '200%',
21
+ left: 0
22
+ },
23
+ right: {
24
+ width: '200%',
25
+ left: '-100%'
26
+ },
27
+ overlay: _objectSpread({
28
+ padding: 0,
29
+ height: 325,
30
+ textAlign: 'center'
31
+ }, theme.typography.body2, {
32
+ fontWeight: theme.typography.fontWeightRegular
33
+ }),
34
+ header: _objectSpread({
35
+ display: 'block',
36
+ height: 40,
37
+ textAlign: 'center',
38
+ padding: '10px 0'
39
+ }, theme.typography.body1, {
40
+ color: theme.palette.neutral.main,
41
+ borderBottom: '1px solid',
42
+ borderBottomColor: theme.palette.divider
43
+ }),
44
+ body: {
45
+ height: 285,
46
+ width: 224,
47
+ margin: 'auto'
48
+ }
49
+ });
50
+
51
+ const CustomOverlayLayoutWithoutFooter = (_ref) => {
52
+ let {
53
+ classes,
54
+ children,
55
+ headerElement,
56
+ footerElement,
57
+ absoluteElement,
58
+ side,
59
+ staticPosition
60
+ } = _ref,
61
+ props = _objectWithoutProperties(_ref, ["classes", "children", "headerElement", "footerElement", "absoluteElement", "side", "staticPosition"]);
62
+
63
+ const paperClass = classNames(classes.paper, {
64
+ [classes.left]: side === 'from',
65
+ [classes.right]: side === 'to',
66
+ [classes.absolute]: staticPosition !== true,
67
+ [classes.relative]: staticPosition === true
68
+ });
69
+
70
+ const paperProps = _objectSpread({}, props);
71
+
72
+ return (// eslint-disable-next-line react/jsx-handler-names
73
+ React.createElement(Paper, {
74
+ className: paperClass,
75
+ onBlur: paperProps.onBlur,
76
+ onFocus: paperProps.onFocus
77
+ }, React.createElement("div", {
78
+ className: classes.overlay
79
+ }, React.createElement("div", {
80
+ className: classes.header
81
+ }, headerElement), React.createElement("div", {
82
+ className: classes.body
83
+ }, children), absoluteElement))
84
+ );
85
+ };
86
+
87
+ CustomOverlayLayoutWithoutFooter.propTypes = process.env.NODE_ENV !== "production" ? {
88
+ absoluteElement: PropTypes.any,
89
+ children: PropTypes.any,
90
+
91
+ /**
92
+ * Useful to extend the style applied to components.
93
+ */
94
+ classes: PropTypes.object,
95
+ footerElement: PropTypes.any,
96
+ headerElement: PropTypes.any,
97
+
98
+ /**
99
+ * Définit comment construire le Paper dans le cas d'un double input
100
+ */
101
+ side: PropTypes.string,
102
+ staticPosition: PropTypes.bool
103
+ } : {};
104
+ export default withStyles(styles, {
105
+ name: 'HmuiCustomOverlayLayoutWithoutFooter'
106
+ })(CustomOverlayLayoutWithoutFooter);
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  import React from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import CustomOverlayLayout from './CustomOverlayLayout';
5
+ import CustomOverlayLayoutWithoutFooter from './CustomOverlayLayoutWithoutFooter';
6
6
  import ListPicker from '../ListPicker';
7
7
 
8
8
  class MonthPickerOverlay extends React.Component {
@@ -10,7 +10,7 @@ class MonthPickerOverlay extends React.Component {
10
10
  super();
11
11
  this.months = [];
12
12
  this.handleMonthClick = this.handleMonthClick.bind(this);
13
- this.months = props.localeUtils ? props.localeUtils.getMonths() : props.children.props.localeUtils.getMonths();
13
+ this.months = props.localeUtils ? props.localeUtils.getMonths(props.children.props.locale) : props.children.props.localeUtils.getMonths(props.children.props.locale);
14
14
  }
15
15
 
16
16
  handleMonthClick(month) {
@@ -31,9 +31,9 @@ class MonthPickerOverlay extends React.Component {
31
31
  } = _this$props,
32
32
  props = _objectWithoutProperties(_this$props, ["value", "translations"]);
33
33
 
34
- let now = new Date();
35
- let currentMonth = props.localeUtils ? props.localeUtils.getMonths()[now.getMonth()] : props.children.props.localeUtils.getMonths()[now.getMonth()];
36
- return React.createElement(CustomOverlayLayout, _extends({
34
+ const now = new Date();
35
+ const currentMonth = props.localeUtils ? props.localeUtils.getMonths(props.children.props.locale)[now.getMonth()] : props.children.props.localeUtils.getMonths(props.children.props.locale)[now.getMonth()];
36
+ return React.createElement(CustomOverlayLayoutWithoutFooter, _extends({
37
37
  headerElement: translations.month
38
38
  }, props), React.createElement(ListPicker, {
39
39
  itemList: this.months,
@@ -1,3 +1,4 @@
1
+ /* eslint-disable */
1
2
  import React from 'react';
2
3
  import { assert } from 'chai';
3
4
  import { spy } from 'sinon';
@@ -45,15 +45,17 @@ const Overlay = (_ref) => {
45
45
  [classes.relative]: staticPosition === true
46
46
  });
47
47
 
48
- let paperProps = _objectSpread({}, props);
48
+ const paperProps = _objectSpread({}, props);
49
49
 
50
- return React.createElement(Paper, {
51
- onBlur: paperProps.onBlur,
52
- onFocus: paperProps.onFocus,
53
- className: paperClass
54
- }, React.createElement("div", {
55
- className: classes.overlay
56
- }, children));
50
+ return (// eslint-disable-next-line react/jsx-handler-names
51
+ React.createElement(Paper, {
52
+ onBlur: paperProps.onBlur,
53
+ onFocus: paperProps.onFocus,
54
+ className: paperClass
55
+ }, React.createElement("div", {
56
+ className: classes.overlay
57
+ }, children))
58
+ );
57
59
  };
58
60
 
59
61
  Overlay.propTypes = process.env.NODE_ENV !== "production" ? {
@@ -88,7 +90,12 @@ Overlay.propTypes = process.env.NODE_ENV !== "production" ? {
88
90
  /**
89
91
  * Définit comment construire le Paper dans le cas d'un double input
90
92
  */
91
- side: PropTypes.string
93
+ side: PropTypes.string,
94
+
95
+ /**
96
+ * Display overlay with position static
97
+ */
98
+ staticPosition: PropTypes.bool
92
99
  } : {};
93
100
  export default withStyles(styles, {
94
101
  name: 'HmuiOverlay'
@@ -1,3 +1,4 @@
1
+ /* eslint-disable */
1
2
  import React from 'react';
2
3
  import { assert } from 'chai';
3
4
  import { createShallow, getClasses } from '../../test-utils/index';
@@ -81,7 +81,7 @@ export const styles = theme => ({
81
81
  bottom: 0,
82
82
  height: 32,
83
83
  width: 32,
84
- margin: '0px 24px'
84
+ margin: '4px 24px'
85
85
  },
86
86
  calendarButton: {
87
87
  fontWeight: theme.typography.fontWeightMedium
@@ -92,7 +92,7 @@ var _ref = React.createElement(CalendarIcon, null);
92
92
 
93
93
  class TimePickerOverlay extends React.Component {
94
94
  constructor(props) {
95
- super();
95
+ super(props);
96
96
  this.hours = Array.from(Array(24).keys());
97
97
  this.minutes = Array.from(Array(60).keys());
98
98
  this.handleHourClick = this.handleHourClick.bind(this);
@@ -1,3 +1,4 @@
1
+ /* eslint-disable */
1
2
  import React from 'react';
2
3
  import { assert } from 'chai';
3
4
  import { spy } from 'sinon';
@@ -2,12 +2,12 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  import React from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import CustomOverlayLayout from './CustomOverlayLayout';
5
+ import CustomOverlayLayoutWithoutFooter from './CustomOverlayLayoutWithoutFooter';
6
6
  import ListPicker from '../ListPicker';
7
7
 
8
8
  class YearPickerOverlay extends React.Component {
9
9
  constructor(props) {
10
- super();
10
+ super(props);
11
11
  this.years = [];
12
12
  this.handleYearClick = this.handleYearClick.bind(this);
13
13
  const currentYear = new Date().getFullYear();
@@ -42,7 +42,7 @@ class YearPickerOverlay extends React.Component {
42
42
  } = _this$props,
43
43
  props = _objectWithoutProperties(_this$props, ["value", "translations"]);
44
44
 
45
- return React.createElement(CustomOverlayLayout, _extends({
45
+ return React.createElement(CustomOverlayLayoutWithoutFooter, _extends({
46
46
  headerElement: translations.year
47
47
  }, props), React.createElement(ListPicker, {
48
48
  itemList: this.years,
@@ -55,8 +55,6 @@ class YearPickerOverlay extends React.Component {
55
55
  }
56
56
 
57
57
  YearPickerOverlay.defaultProps = {
58
- // disableFutureDays: true,
59
- // disablePastDays: false,
60
58
  minimumDate: new Date(2013, 4, 1),
61
59
  // by default 1 May 2013
62
60
  translations: {
@@ -92,7 +90,7 @@ YearPickerOverlay.propTypes = process.env.NODE_ENV !== "production" ? {
92
90
  /**
93
91
  * Date minimale sélectionnable
94
92
  */
95
- minimumDate: PropTypes.instanceOf(Date).isRequired,
93
+ minimumDate: PropTypes.instanceOf(Date),
96
94
 
97
95
  /**
98
96
  * Fonction de callback
@@ -1,3 +1,4 @@
1
+ /* eslint-disable */
1
2
  import React from 'react';
2
3
  import { assert } from 'chai';
3
4
  import { spy } from 'sinon';
@@ -0,0 +1,131 @@
1
+ const WEEKDAYS_LONG = {
2
+ en_US: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
3
+ fr_FR: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi']
4
+ };
5
+ const WEEKDAYS_SHORT = {
6
+ en_US: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
7
+ fr_FR: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa']
8
+ };
9
+ const MONTHS = {
10
+ en_US: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
11
+ fr_FR: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre']
12
+ };
13
+ const FIRST_DAY = {
14
+ en_US: 0,
15
+ fr_FR: 1 // Use Monday as first day of the week
16
+
17
+ };
18
+ /**
19
+ * Format Date as day
20
+ *
21
+ * @param Date d
22
+ * @param string locale
23
+ *
24
+ * @returns string
25
+ */
26
+
27
+ function formatDay(d, locale = 'en_US') {
28
+ const loc = this.formatLocale(locale);
29
+ return `${WEEKDAYS_LONG[loc][d.getDay()]}, ${d.getDate()} ${MONTHS[loc][d.getMonth()]} ${d.getFullYear()}`;
30
+ }
31
+ /**
32
+ * Format Date as month title
33
+ *
34
+ * @param Date d
35
+ * @param string locale
36
+ *
37
+ * @returns string
38
+ */
39
+
40
+
41
+ function formatMonthTitle(d, locale = 'en_US') {
42
+ const loc = this.formatLocale(locale);
43
+ return `${MONTHS[loc][d.getMonth()]} ${d.getFullYear()}`;
44
+ }
45
+ /**
46
+ * Get the short version of a week day
47
+ *
48
+ * @param int i
49
+ * @param string locale
50
+ *
51
+ * @returns string
52
+ */
53
+
54
+
55
+ function formatWeekdayShort(i, locale = 'en_US') {
56
+ const loc = this.formatLocale(locale);
57
+ return WEEKDAYS_SHORT[loc][i];
58
+ }
59
+ /**
60
+ * Get the long version of a week day
61
+ *
62
+ * @param int i
63
+ * @param string locale
64
+ *
65
+ * @returns string
66
+ */
67
+
68
+
69
+ function formatWeekdayLong(i, locale = 'en_US') {
70
+ const loc = this.formatLocale(locale);
71
+ return WEEKDAYS_LONG[loc][i];
72
+ }
73
+ /**
74
+ * Get first day of the week
75
+ * @param string locale
76
+ *
77
+ * @returns integer
78
+ */
79
+
80
+
81
+ function getFirstDayOfWeek(locale = 'en_US') {
82
+ const loc = this.formatLocale(locale);
83
+ return FIRST_DAY[loc];
84
+ }
85
+ /**
86
+ * Get List of Months
87
+ *
88
+ * @param string locale
89
+ *
90
+ * @returns array
91
+ */
92
+
93
+
94
+ function getMonths(locale = 'en_US') {
95
+ const loc = this.formatLocale(locale);
96
+ return MONTHS[loc];
97
+ }
98
+ /**
99
+ * Format locale
100
+ *
101
+ * @param string locale
102
+ *
103
+ * @return string
104
+ */
105
+
106
+
107
+ function formatLocale(locale) {
108
+ let loc = locale.split('-');
109
+
110
+ if (loc.length !== 2) {
111
+ loc = locale.split('_');
112
+
113
+ if (loc.length !== 2) {
114
+ return false;
115
+ }
116
+ }
117
+
118
+ loc[1] = loc[1].toUpperCase();
119
+ return loc.join('_');
120
+ }
121
+
122
+ const HiLocaleUtils = {
123
+ formatDay,
124
+ formatMonthTitle,
125
+ formatWeekdayShort,
126
+ formatWeekdayLong,
127
+ getFirstDayOfWeek,
128
+ getMonths,
129
+ formatLocale
130
+ };
131
+ export default HiLocaleUtils;
@@ -1,4 +1,5 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread";
2
+ import { fade } from '../styles/colorManipulator';
2
3
  export default (theme => ({
3
4
  root: {
4
5
  position: 'relative',
@@ -140,36 +141,60 @@ export default (theme => ({
140
141
  footer: {
141
142
  marginTop: 12,
142
143
  borderTop: '1px solid',
143
- borderTopColor: theme.palette.divider
144
+ borderTopColor: theme.palette.divider,
145
+ padding: '5px',
146
+ width: '100%'
144
147
  },
145
148
  // The today button (only with todayButton prop)
146
149
  todayButton: _objectSpread({
147
- width: '100%',
150
+ display: 'table',
151
+ minWidth: 230,
152
+ margin: '0 auto',
148
153
  border: 'none',
149
154
  backgroundImage: 'none',
150
155
  backgroundColor: 'transparent',
151
156
  boxShadow: 'none',
152
157
  cursor: 'pointer',
153
- height: 40
158
+ height: 30
154
159
  }, theme.typography.body2, {
155
160
  color: theme.palette.neutral.main,
156
161
  fontWeight: theme.typography.fontWeightMedium,
157
- textTransform: 'uppercase'
162
+ textTransform: 'uppercase',
163
+ '&:hover': {
164
+ backgroundColor: fade(theme.palette.neutral.dark, theme.palette.action.hoverOpacity),
165
+ // Reset on touch devices, it doesn't add specificity
166
+ '@media (hover: none)': {
167
+ backgroundColor: 'transparent'
168
+ }
169
+ },
170
+ borderRadius: 4
158
171
  }),
159
172
 
160
173
  /* default modifiers */
161
174
  // Added to the day's cell for the current day
162
175
  today: {
163
176
  // color: theme.palette.primary.light,
164
- border: '2px solid #8b9898',
177
+ position: 'relative',
165
178
  borderRadius: '50%',
166
179
  color: `${theme.palette.neutral.dark} !important`,
167
- fontWeight: theme.typography.fontWeightMedium
180
+ fontWeight: theme.typography.fontWeightMedium,
181
+ '&:before': {
182
+ content: '""',
183
+ position: 'absolute',
184
+ top: 0,
185
+ left: 0,
186
+ display: 'inline-block',
187
+ width: '100%',
188
+ height: '100%',
189
+ borderRadius: '50%',
190
+ boxShadow: `inset 0 0 0 2px ${theme.palette.neutral.main}`
191
+ }
168
192
  },
169
193
  // Added to the day's cell outside the current month
170
194
  outside: {
171
195
  backgroundColor: '#F8F9FB',
172
- color: theme.palette.neutral.main
196
+ color: theme.palette.neutral.main,
197
+ cursor: 'default'
173
198
  },
174
199
  // Added to the day's cell specified in the "disabledDays" prop
175
200
  disabled: {
@@ -0,0 +1,66 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ import React from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import withStyles from '../styles/withStyles';
6
+ import HiIcon from '../HiIcon';
7
+ import HiIconButton from '../HiIconButton';
8
+ export const styles = () => ({
9
+ dot: {
10
+ padding: 4,
11
+ '&:hover': {
12
+ backgroundColor: 'transparent !important'
13
+ }
14
+ }
15
+ });
16
+
17
+ var _ref = React.createElement(HiIcon, {
18
+ size: 24
19
+ }, "radio_button_checked");
20
+
21
+ var _ref2 = React.createElement(HiIcon, {
22
+ size: 12
23
+ }, "lens");
24
+
25
+ class HiDot extends React.PureComponent {
26
+ render() {
27
+ const _this$props = this.props,
28
+ {
29
+ active,
30
+ status,
31
+ classes,
32
+ onClick
33
+ } = _this$props,
34
+ props = _objectWithoutProperties(_this$props, ["active", "status", "classes", "onClick"]);
35
+
36
+ let dotColor;
37
+
38
+ if (!status || status === 'unreviewed') {
39
+ dotColor = 'default';
40
+ } else {
41
+ dotColor = status === 'refused' ? 'negative' : 'positive';
42
+ }
43
+
44
+ return React.createElement(HiIconButton, _extends({
45
+ className: classes.dot,
46
+ color: dotColor,
47
+ onClick: onClick
48
+ }, props), active ? _ref : _ref2);
49
+ }
50
+
51
+ }
52
+
53
+ HiDot.defaultProps = {
54
+ active: false,
55
+ status: 'unreviewed'
56
+ };
57
+ HiDot.propTypes = process.env.NODE_ENV !== "production" ? {
58
+ active: PropTypes.bool,
59
+ classes: PropTypes.object,
60
+ onClick: PropTypes.func,
61
+ status: PropTypes.oneOf(['refused', 'validated', 'unreviewed'])
62
+ } : {};
63
+ export default withStyles(styles, {
64
+ hiComponent: true,
65
+ name: 'HmuiHiDot'
66
+ })(HiDot);