@mui/x-date-pickers 7.0.0-alpha.9 → 7.0.0-beta.1

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 (225) hide show
  1. package/CHANGELOG.md +386 -38
  2. package/DateTimePicker/DateTimePickerTabs.js +7 -4
  3. package/DateTimePicker/DateTimePickerToolbar.d.ts +6 -1
  4. package/DateTimePicker/DateTimePickerToolbar.js +33 -17
  5. package/PickersLayout/PickersLayout.types.d.ts +6 -5
  6. package/PickersLayout/pickersLayoutClasses.js +3 -2
  7. package/PickersLayout/usePickerLayout.d.ts +2 -2
  8. package/PickersLayout/usePickerLayout.js +2 -1
  9. package/README.md +2 -2
  10. package/TimeClock/TimeClock.js +3 -3
  11. package/TimePicker/timePickerToolbarClasses.d.ts +8 -0
  12. package/dateTimeViewRenderers/dateTimeViewRenderers.js +4 -4
  13. package/index.js +1 -1
  14. package/internals/hooks/usePicker/usePicker.d.ts +1 -1
  15. package/internals/hooks/usePicker/usePicker.js +4 -2
  16. package/internals/hooks/usePicker/usePicker.types.d.ts +1 -1
  17. package/internals/hooks/usePicker/usePickerViews.d.ts +11 -2
  18. package/internals/hooks/usePicker/usePickerViews.js +8 -3
  19. package/internals/index.d.ts +4 -4
  20. package/internals/index.js +2 -2
  21. package/internals/models/props/tabs.d.ts +2 -1
  22. package/legacy/DateTimePicker/DateTimePickerTabs.js +7 -4
  23. package/legacy/DateTimePicker/DateTimePickerToolbar.js +43 -29
  24. package/legacy/PickersLayout/pickersLayoutClasses.js +3 -2
  25. package/legacy/PickersLayout/usePickerLayout.js +2 -1
  26. package/legacy/TimeClock/TimeClock.js +3 -3
  27. package/legacy/dateTimeViewRenderers/dateTimeViewRenderers.js +5 -4
  28. package/legacy/index.js +1 -1
  29. package/legacy/internals/hooks/usePicker/usePicker.js +4 -2
  30. package/legacy/internals/hooks/usePicker/usePickerViews.js +8 -3
  31. package/legacy/internals/index.js +2 -2
  32. package/legacy/locales/beBY.js +8 -3
  33. package/legacy/locales/caES.js +7 -2
  34. package/legacy/locales/csCZ.js +8 -3
  35. package/legacy/locales/daDK.js +8 -3
  36. package/legacy/locales/deDE.js +6 -1
  37. package/legacy/locales/elGR.js +8 -3
  38. package/legacy/locales/enUS.js +7 -3
  39. package/legacy/locales/esES.js +8 -3
  40. package/legacy/locales/eu.js +6 -1
  41. package/legacy/locales/faIR.js +6 -1
  42. package/legacy/locales/fiFI.js +8 -3
  43. package/legacy/locales/frFR.js +6 -1
  44. package/legacy/locales/heIL.js +6 -1
  45. package/legacy/locales/huHU.js +6 -1
  46. package/legacy/locales/isIS.js +8 -3
  47. package/legacy/locales/itIT.js +8 -3
  48. package/legacy/locales/jaJP.js +6 -1
  49. package/legacy/locales/koKR.js +6 -1
  50. package/legacy/locales/kzKZ.js +6 -1
  51. package/legacy/locales/mk.js +6 -1
  52. package/legacy/locales/nbNO.js +8 -3
  53. package/legacy/locales/nlNL.js +8 -3
  54. package/legacy/locales/plPL.js +8 -3
  55. package/legacy/locales/ptBR.js +6 -1
  56. package/legacy/locales/roRO.js +6 -1
  57. package/legacy/locales/ruRU.js +8 -3
  58. package/legacy/locales/skSK.js +8 -3
  59. package/legacy/locales/svSE.js +8 -3
  60. package/legacy/locales/trTR.js +8 -3
  61. package/legacy/locales/ukUA.js +8 -3
  62. package/legacy/locales/urPK.js +6 -1
  63. package/legacy/locales/viVN.js +8 -3
  64. package/legacy/locales/zhCN.js +6 -1
  65. package/legacy/locales/zhHK.js +6 -1
  66. package/locales/beBY.d.ts +4 -0
  67. package/locales/beBY.js +8 -3
  68. package/locales/caES.d.ts +4 -0
  69. package/locales/caES.js +7 -2
  70. package/locales/csCZ.d.ts +4 -0
  71. package/locales/csCZ.js +8 -3
  72. package/locales/daDK.d.ts +4 -0
  73. package/locales/daDK.js +8 -3
  74. package/locales/deDE.d.ts +4 -0
  75. package/locales/deDE.js +6 -1
  76. package/locales/elGR.d.ts +4 -0
  77. package/locales/elGR.js +8 -3
  78. package/locales/enUS.d.ts +4 -0
  79. package/locales/enUS.js +7 -3
  80. package/locales/esES.d.ts +4 -0
  81. package/locales/esES.js +8 -3
  82. package/locales/eu.d.ts +4 -0
  83. package/locales/eu.js +6 -1
  84. package/locales/faIR.d.ts +4 -0
  85. package/locales/faIR.js +6 -1
  86. package/locales/fiFI.d.ts +4 -0
  87. package/locales/fiFI.js +8 -3
  88. package/locales/frFR.d.ts +4 -0
  89. package/locales/frFR.js +6 -1
  90. package/locales/heIL.d.ts +4 -0
  91. package/locales/heIL.js +6 -1
  92. package/locales/huHU.d.ts +4 -0
  93. package/locales/huHU.js +6 -1
  94. package/locales/isIS.d.ts +4 -0
  95. package/locales/isIS.js +8 -3
  96. package/locales/itIT.d.ts +4 -0
  97. package/locales/itIT.js +8 -3
  98. package/locales/jaJP.d.ts +4 -0
  99. package/locales/jaJP.js +6 -1
  100. package/locales/koKR.d.ts +4 -0
  101. package/locales/koKR.js +6 -1
  102. package/locales/kzKZ.d.ts +4 -0
  103. package/locales/kzKZ.js +6 -1
  104. package/locales/mk.d.ts +4 -0
  105. package/locales/mk.js +6 -1
  106. package/locales/nbNO.d.ts +4 -0
  107. package/locales/nbNO.js +8 -3
  108. package/locales/nlNL.d.ts +4 -0
  109. package/locales/nlNL.js +8 -3
  110. package/locales/plPL.d.ts +4 -0
  111. package/locales/plPL.js +8 -3
  112. package/locales/ptBR.d.ts +4 -0
  113. package/locales/ptBR.js +6 -1
  114. package/locales/roRO.d.ts +4 -0
  115. package/locales/roRO.js +6 -1
  116. package/locales/ruRU.d.ts +4 -0
  117. package/locales/ruRU.js +8 -3
  118. package/locales/skSK.d.ts +4 -0
  119. package/locales/skSK.js +8 -3
  120. package/locales/svSE.d.ts +4 -0
  121. package/locales/svSE.js +8 -3
  122. package/locales/trTR.d.ts +4 -0
  123. package/locales/trTR.js +8 -3
  124. package/locales/ukUA.d.ts +4 -0
  125. package/locales/ukUA.js +8 -3
  126. package/locales/urPK.d.ts +4 -0
  127. package/locales/urPK.js +6 -1
  128. package/locales/utils/getPickersLocalization.d.ts +4 -0
  129. package/locales/utils/pickersLocaleTextApi.d.ts +4 -0
  130. package/locales/viVN.d.ts +4 -0
  131. package/locales/viVN.js +8 -3
  132. package/locales/zhCN.d.ts +4 -0
  133. package/locales/zhCN.js +6 -1
  134. package/locales/zhHK.d.ts +4 -0
  135. package/locales/zhHK.js +6 -1
  136. package/modern/DateTimePicker/DateTimePickerTabs.js +7 -4
  137. package/modern/DateTimePicker/DateTimePickerToolbar.js +33 -17
  138. package/modern/PickersLayout/pickersLayoutClasses.js +3 -2
  139. package/modern/PickersLayout/usePickerLayout.js +2 -1
  140. package/modern/TimeClock/TimeClock.js +3 -3
  141. package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +4 -4
  142. package/modern/index.js +1 -1
  143. package/modern/internals/hooks/usePicker/usePicker.js +4 -2
  144. package/modern/internals/hooks/usePicker/usePickerViews.js +8 -3
  145. package/modern/internals/index.js +2 -2
  146. package/modern/locales/beBY.js +8 -3
  147. package/modern/locales/caES.js +7 -2
  148. package/modern/locales/csCZ.js +8 -3
  149. package/modern/locales/daDK.js +8 -3
  150. package/modern/locales/deDE.js +6 -1
  151. package/modern/locales/elGR.js +8 -3
  152. package/modern/locales/enUS.js +7 -3
  153. package/modern/locales/esES.js +8 -3
  154. package/modern/locales/eu.js +6 -1
  155. package/modern/locales/faIR.js +6 -1
  156. package/modern/locales/fiFI.js +8 -3
  157. package/modern/locales/frFR.js +6 -1
  158. package/modern/locales/heIL.js +6 -1
  159. package/modern/locales/huHU.js +6 -1
  160. package/modern/locales/isIS.js +8 -3
  161. package/modern/locales/itIT.js +8 -3
  162. package/modern/locales/jaJP.js +6 -1
  163. package/modern/locales/koKR.js +6 -1
  164. package/modern/locales/kzKZ.js +6 -1
  165. package/modern/locales/mk.js +6 -1
  166. package/modern/locales/nbNO.js +8 -3
  167. package/modern/locales/nlNL.js +8 -3
  168. package/modern/locales/plPL.js +8 -3
  169. package/modern/locales/ptBR.js +6 -1
  170. package/modern/locales/roRO.js +6 -1
  171. package/modern/locales/ruRU.js +8 -3
  172. package/modern/locales/skSK.js +8 -3
  173. package/modern/locales/svSE.js +8 -3
  174. package/modern/locales/trTR.js +8 -3
  175. package/modern/locales/ukUA.js +8 -3
  176. package/modern/locales/urPK.js +6 -1
  177. package/modern/locales/viVN.js +8 -3
  178. package/modern/locales/zhCN.js +6 -1
  179. package/modern/locales/zhHK.js +6 -1
  180. package/node/DateTimePicker/DateTimePickerTabs.js +8 -5
  181. package/node/DateTimePicker/DateTimePickerToolbar.js +34 -18
  182. package/node/PickersLayout/pickersLayoutClasses.js +5 -3
  183. package/node/PickersLayout/usePickerLayout.js +2 -1
  184. package/node/TimeClock/TimeClock.js +3 -3
  185. package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +4 -4
  186. package/node/index.js +1 -1
  187. package/node/internals/hooks/usePicker/usePicker.js +4 -2
  188. package/node/internals/hooks/usePicker/usePickerViews.js +8 -3
  189. package/node/internals/index.js +12 -0
  190. package/node/locales/beBY.js +8 -3
  191. package/node/locales/caES.js +7 -2
  192. package/node/locales/csCZ.js +8 -3
  193. package/node/locales/daDK.js +8 -3
  194. package/node/locales/deDE.js +6 -1
  195. package/node/locales/elGR.js +8 -3
  196. package/node/locales/enUS.js +7 -3
  197. package/node/locales/esES.js +8 -3
  198. package/node/locales/eu.js +6 -1
  199. package/node/locales/faIR.js +6 -1
  200. package/node/locales/fiFI.js +8 -3
  201. package/node/locales/frFR.js +6 -1
  202. package/node/locales/heIL.js +6 -1
  203. package/node/locales/huHU.js +6 -1
  204. package/node/locales/isIS.js +8 -3
  205. package/node/locales/itIT.js +8 -3
  206. package/node/locales/jaJP.js +6 -1
  207. package/node/locales/koKR.js +6 -1
  208. package/node/locales/kzKZ.js +6 -1
  209. package/node/locales/mk.js +6 -1
  210. package/node/locales/nbNO.js +8 -3
  211. package/node/locales/nlNL.js +8 -3
  212. package/node/locales/plPL.js +8 -3
  213. package/node/locales/ptBR.js +6 -1
  214. package/node/locales/roRO.js +6 -1
  215. package/node/locales/ruRU.js +8 -3
  216. package/node/locales/skSK.js +8 -3
  217. package/node/locales/svSE.js +8 -3
  218. package/node/locales/trTR.js +8 -3
  219. package/node/locales/ukUA.js +8 -3
  220. package/node/locales/urPK.js +6 -1
  221. package/node/locales/viVN.js +8 -3
  222. package/node/locales/zhCN.js +6 -1
  223. package/node/locales/zhHK.js +6 -1
  224. package/package.json +5 -5
  225. package/timeViewRenderers/timeViewRenderers.d.ts +1 -1
@@ -13,9 +13,14 @@ const zhHKPickers = {
13
13
  openPreviousView: '前一個檢視表',
14
14
  openNextView: '下一個檢視表',
15
15
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? '年份檢視表已打開,切換以檢視日曆' : '日曆檢視表已打開,切換以檢視年份',
16
- // DateRange placeholders
16
+ // DateRange labels
17
17
  start: '開始',
18
18
  end: '結束',
19
+ // startDate: 'Start date',
20
+ // startTime: 'Start time',
21
+ // endDate: 'End date',
22
+ // endTime: 'End time',
23
+
19
24
  // Action bar
20
25
  cancelButtonLabel: '取消',
21
26
  clearButtonLabel: '清除',
@@ -6,11 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.DateTimePickerTabs = void 0;
8
8
  var React = _interopRequireWildcard(require("react"));
9
+ var _clsx = _interopRequireDefault(require("clsx"));
9
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
11
  var _Tab = _interopRequireDefault(require("@mui/material/Tab"));
11
12
  var _Tabs = _interopRequireWildcard(require("@mui/material/Tabs"));
12
13
  var _styles = require("@mui/material/styles");
13
- var _utils = require("@mui/utils");
14
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
15
  var _icons = require("../icons");
15
16
  var _useUtils = require("../internals/hooks/useUtils");
16
17
  var _dateTimePickerTabsClasses = require("./dateTimePickerTabsClasses");
@@ -37,7 +38,7 @@ const useUtilityClasses = ownerState => {
37
38
  const slots = {
38
39
  root: ['root']
39
40
  };
40
- return (0, _utils.unstable_composeClasses)(slots, _dateTimePickerTabsClasses.getDateTimePickerTabsUtilityClass, classes);
41
+ return (0, _composeClasses.default)(slots, _dateTimePickerTabsClasses.getDateTimePickerTabsUtilityClass, classes);
41
42
  };
42
43
  const DateTimePickerTabsRoot = (0, _styles.styled)(_Tabs.default, {
43
44
  name: 'MuiDateTimePickerTabs',
@@ -76,7 +77,8 @@ const DateTimePickerTabs = exports.DateTimePickerTabs = function DateTimePickerT
76
77
  onViewChange,
77
78
  timeIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.TimeIcon, {}),
78
79
  view,
79
- hidden = typeof window === 'undefined' || window.innerHeight < 667
80
+ hidden = typeof window === 'undefined' || window.innerHeight < 667,
81
+ className
80
82
  } = props;
81
83
  const localeText = (0, _useUtils.useLocaleText)();
82
84
  const classes = useUtilityClasses(props);
@@ -91,7 +93,7 @@ const DateTimePickerTabs = exports.DateTimePickerTabs = function DateTimePickerT
91
93
  variant: "fullWidth",
92
94
  value: viewToTab(view),
93
95
  onChange: handleChange,
94
- className: classes.root,
96
+ className: (0, _clsx.default)(className, classes.root),
95
97
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Tab.default, {
96
98
  value: "date",
97
99
  "aria-label": localeText.dateTableLabel,
@@ -116,6 +118,7 @@ process.env.NODE_ENV !== "production" ? DateTimePickerTabs.propTypes = {
116
118
  * Override or extend the styles applied to the component.
117
119
  */
118
120
  classes: _propTypes.default.object,
121
+ className: _propTypes.default.string,
119
122
  /**
120
123
  * Date tab icon.
121
124
  * @default DateRange
@@ -127,7 +130,7 @@ process.env.NODE_ENV !== "production" ? DateTimePickerTabs.propTypes = {
127
130
  */
128
131
  hidden: _propTypes.default.bool,
129
132
  /**
130
- * Callback called when a tab is clicked
133
+ * Callback called when a tab is clicked.
131
134
  * @template TView
132
135
  * @param {TView} view The view to open
133
136
  */
@@ -10,7 +10,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _styles = require("@mui/material/styles");
13
- var _utils = require("@mui/utils");
13
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
+ var _clsx = _interopRequireDefault(require("clsx"));
14
15
  var _PickersToolbarText = require("../internals/components/PickersToolbarText");
15
16
  var _PickersToolbar = require("../internals/components/PickersToolbar");
16
17
  var _PickersToolbarButton = require("../internals/components/PickersToolbarButton");
@@ -19,8 +20,10 @@ var _dateTimePickerToolbarClasses = require("./dateTimePickerToolbarClasses");
19
20
  var _dateHelpersHooks = require("../internals/hooks/date-helpers-hooks");
20
21
  var _dimensions = require("../internals/constants/dimensions");
21
22
  var _dateUtils = require("../internals/utils/date-utils");
23
+ var _pickersToolbarTextClasses = require("../internals/components/pickersToolbarTextClasses");
24
+ var _internals = require("../internals");
22
25
  var _jsxRuntime = require("react/jsx-runtime");
23
- const _excluded = ["ampm", "ampmInClock", "value", "onChange", "view", "isLandscape", "onViewChange", "toolbarFormat", "toolbarPlaceholder", "views", "disabled", "readOnly", "toolbarVariant"];
26
+ const _excluded = ["ampm", "ampmInClock", "value", "onChange", "view", "isLandscape", "onViewChange", "toolbarFormat", "toolbarPlaceholder", "views", "disabled", "readOnly", "toolbarVariant", "toolbarTitle", "className"];
24
27
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
28
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
29
  const useUtilityClasses = ownerState => {
@@ -38,7 +41,7 @@ const useUtilityClasses = ownerState => {
38
41
  ampmSelection: ['ampmSelection', isLandscape && 'ampmLandscape'],
39
42
  ampmLabel: ['ampmLabel']
40
43
  };
41
- return (0, _utils.unstable_composeClasses)(slots, _dateTimePickerToolbarClasses.getDateTimePickerToolbarUtilityClass, classes);
44
+ return (0, _composeClasses.default)(slots, _dateTimePickerToolbarClasses.getDateTimePickerToolbarUtilityClass, classes);
42
45
  };
43
46
  const DateTimePickerToolbarRoot = (0, _styles.styled)(_PickersToolbar.PickersToolbar, {
44
47
  name: 'MuiDateTimePickerToolbar',
@@ -47,13 +50,18 @@ const DateTimePickerToolbarRoot = (0, _styles.styled)(_PickersToolbar.PickersToo
47
50
  })(({
48
51
  theme,
49
52
  ownerState
50
- }) => ({
53
+ }) => (0, _extends2.default)({
51
54
  paddingLeft: ownerState.toolbarVariant === 'desktop' && !ownerState.isLandscape ? 24 : 16,
52
55
  paddingRight: ownerState.toolbarVariant === 'desktop' && !ownerState.isLandscape ? 0 : 16,
53
56
  borderBottom: ownerState.toolbarVariant === 'desktop' ? `1px solid ${(theme.vars || theme).palette.divider}` : undefined,
54
57
  borderRight: ownerState.toolbarVariant === 'desktop' && ownerState.isLandscape ? `1px solid ${(theme.vars || theme).palette.divider}` : undefined,
55
58
  justifyContent: 'space-around',
56
59
  position: 'relative'
60
+ }, ownerState.toolbarVariant === 'desktop' && {
61
+ [`& .${_internals.pickersToolbarClasses.content} .${_pickersToolbarTextClasses.pickersToolbarTextClasses.selected}`]: {
62
+ color: (theme.vars || theme).palette.primary.main,
63
+ fontWeight: theme.typography.fontWeightBold
64
+ }
57
65
  }));
58
66
  DateTimePickerToolbarRoot.propTypes = {
59
67
  // ----------------------------- Warning --------------------------------
@@ -190,7 +198,9 @@ function DateTimePickerToolbar(inProps) {
190
198
  views,
191
199
  disabled,
192
200
  readOnly,
193
- toolbarVariant = 'mobile'
201
+ toolbarVariant = 'mobile',
202
+ toolbarTitle: inToolbarTitle,
203
+ className
194
204
  } = props,
195
205
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
196
206
  const ownerState = props;
@@ -206,6 +216,7 @@ function DateTimePickerToolbar(inProps) {
206
216
  const classes = useUtilityClasses((0, _extends2.default)({}, ownerState, {
207
217
  theme
208
218
  }));
219
+ const toolbarTitle = inToolbarTitle ?? localeText.dateTimePickerToolbarTitle;
209
220
  const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');
210
221
  const dateText = React.useMemo(() => {
211
222
  if (!value) {
@@ -217,9 +228,9 @@ function DateTimePickerToolbar(inProps) {
217
228
  return utils.format(value, 'shortDate');
218
229
  }, [value, toolbarFormat, toolbarPlaceholder, utils]);
219
230
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateTimePickerToolbarRoot, (0, _extends2.default)({
220
- toolbarTitle: localeText.dateTimePickerToolbarTitle,
221
231
  isLandscape: isLandscape,
222
- className: classes.root
232
+ className: (0, _clsx.default)(classes.root, className),
233
+ toolbarTitle: toolbarTitle
223
234
  }, other, {
224
235
  ownerState: ownerState,
225
236
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(DateTimePickerToolbarDateContainer, {
@@ -244,14 +255,14 @@ function DateTimePickerToolbar(inProps) {
244
255
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(DateTimePickerToolbarTimeDigitsContainer, {
245
256
  className: classes.timeDigitsContainer,
246
257
  ownerState: ownerState,
247
- children: [views.includes('hours') && /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersToolbarButton.PickersToolbarButton, {
248
- variant: isDesktop ? 'h5' : 'h3',
249
- width: isDesktop && !isLandscape ? _dimensions.MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
250
- onClick: () => onViewChange('hours'),
251
- selected: view === 'hours',
252
- value: value ? formatHours(value) : '--'
253
- }), views.includes('minutes') && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
254
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimePickerToolbarSeparator, {
258
+ children: [views.includes('hours') && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
259
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersToolbarButton.PickersToolbarButton, {
260
+ variant: isDesktop ? 'h5' : 'h3',
261
+ width: isDesktop && !isLandscape ? _dimensions.MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
262
+ onClick: () => onViewChange('hours'),
263
+ selected: view === 'hours',
264
+ value: value ? formatHours(value) : '--'
265
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimePickerToolbarSeparator, {
255
266
  variant: isDesktop ? 'h5' : 'h3',
256
267
  value: ":",
257
268
  className: classes.separator,
@@ -260,8 +271,9 @@ function DateTimePickerToolbar(inProps) {
260
271
  variant: isDesktop ? 'h5' : 'h3',
261
272
  width: isDesktop && !isLandscape ? _dimensions.MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
262
273
  onClick: () => onViewChange('minutes'),
263
- selected: view === 'minutes',
264
- value: value ? utils.format(value, 'minutes') : '--'
274
+ selected: view === 'minutes' || !views.includes('minutes') && view === 'hours',
275
+ value: value ? utils.format(value, 'minutes') : '--',
276
+ disabled: !views.includes('minutes')
265
277
  })]
266
278
  }), views.includes('seconds') && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
267
279
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimePickerToolbarSeparator, {
@@ -343,11 +355,15 @@ process.env.NODE_ENV !== "production" ? DateTimePickerToolbar.propTypes = {
343
355
  * @default "––"
344
356
  */
345
357
  toolbarPlaceholder: _propTypes.default.node,
358
+ /**
359
+ * If provided, it will be used instead of `dateTimePickerToolbarTitle` from localization.
360
+ */
361
+ toolbarTitle: _propTypes.default.node,
346
362
  toolbarVariant: _propTypes.default.oneOf(['desktop', 'mobile']),
347
363
  value: _propTypes.default.any,
348
364
  /**
349
365
  * Currently visible picker view.
350
366
  */
351
- view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired,
367
+ view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
352
368
  views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
353
369
  } : void 0;
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.getPickersLayoutUtilityClass = getPickersLayoutUtilityClass;
7
8
  exports.pickersLayoutClasses = void 0;
8
- var _utils = require("@mui/utils");
9
+ var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
10
+ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
9
11
  function getPickersLayoutUtilityClass(slot) {
10
- return (0, _utils.unstable_generateUtilityClass)('MuiPickersLayout', slot);
12
+ return (0, _generateUtilityClass.default)('MuiPickersLayout', slot);
11
13
  }
12
- const pickersLayoutClasses = exports.pickersLayoutClasses = (0, _utils.unstable_generateUtilityClasses)('MuiPickersLayout', ['root', 'landscape', 'contentWrapper', 'toolbar', 'actionBar', 'shortcuts']);
14
+ const pickersLayoutClasses = exports.pickersLayoutClasses = (0, _generateUtilityClasses.default)('MuiPickersLayout', ['root', 'landscape', 'contentWrapper', 'toolbar', 'actionBar', 'tabs', 'shortcuts']);
@@ -113,7 +113,8 @@ const usePickerLayout = props => {
113
113
  const Tabs = slots?.tabs;
114
114
  const tabs = view && Tabs ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Tabs, (0, _extends2.default)({
115
115
  view: view,
116
- onViewChange: onViewChange
116
+ onViewChange: onViewChange,
117
+ className: classes.tabs
117
118
  }, slotProps?.tabs)) : null;
118
119
 
119
120
  // Shortcuts
@@ -226,7 +226,7 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
226
226
  {
227
227
  const handleHoursChange = (hourValue, isFinish) => {
228
228
  const valueWithMeridiem = (0, _timeUtils.convertValueToMeridiem)(hourValue, meridiemMode, ampm);
229
- setValueAndGoToNextView(utils.setHours(valueOrReferenceDate, valueWithMeridiem), isFinish);
229
+ setValueAndGoToNextView(utils.setHours(valueOrReferenceDate, valueWithMeridiem), isFinish, 'hours');
230
230
  };
231
231
  return {
232
232
  onChange: handleHoursChange,
@@ -246,7 +246,7 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
246
246
  {
247
247
  const minutesValue = utils.getMinutes(valueOrReferenceDate);
248
248
  const handleMinutesChange = (minuteValue, isFinish) => {
249
- setValueAndGoToNextView(utils.setMinutes(valueOrReferenceDate, minuteValue), isFinish);
249
+ setValueAndGoToNextView(utils.setMinutes(valueOrReferenceDate, minuteValue), isFinish, 'minutes');
250
250
  };
251
251
  return {
252
252
  viewValue: minutesValue,
@@ -265,7 +265,7 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
265
265
  {
266
266
  const secondsValue = utils.getSeconds(valueOrReferenceDate);
267
267
  const handleSecondsChange = (secondValue, isFinish) => {
268
- setValueAndGoToNextView(utils.setSeconds(valueOrReferenceDate, secondValue), isFinish);
268
+ setValueAndGoToNextView(utils.setSeconds(valueOrReferenceDate, secondValue), isFinish, 'seconds');
269
269
  };
270
270
  return {
271
271
  viewValue: secondsValue,
@@ -146,23 +146,23 @@ const renderDesktopDateTimeView = ({
146
146
  view: 'hours',
147
147
  views: ['hours'],
148
148
  focusedView: focusedView && (0, _timeUtils.isInternalTimeView)(focusedView) ? 'hours' : null,
149
- sx: (0, _extends2.default)({
149
+ sx: [{
150
150
  width: 'auto',
151
151
  [`&.${_DigitalClock.digitalClockClasses.root}`]: {
152
152
  maxHeight: _dimensions.VIEW_HEIGHT
153
153
  }
154
- }, Array.isArray(sx) ? sx : [sx])
154
+ }, ...(Array.isArray(sx) ? sx : [sx])]
155
155
  })) : (0, _timeViewRenderers.renderMultiSectionDigitalClockTimeView)((0, _extends2.default)({}, commonTimeProps, {
156
156
  view: (0, _timeUtils.isInternalTimeView)(view) ? view : 'hours',
157
157
  views: views.filter(_timeUtils.isInternalTimeView),
158
158
  focusedView: focusedView && (0, _timeUtils.isInternalTimeView)(focusedView) ? focusedView : null,
159
- sx: (0, _extends2.default)({
159
+ sx: [{
160
160
  borderBottom: 0,
161
161
  width: 'auto',
162
162
  [`.${_MultiSectionDigitalClock.multiSectionDigitalClockSectionClasses.root}`]: {
163
163
  maxHeight: '100%'
164
164
  }
165
- }, Array.isArray(sx) ? sx : [sx])
165
+ }, ...(Array.isArray(sx) ? sx : [sx])]
166
166
  }))]
167
167
  })]
168
168
  }), isActionBarVisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Divider.default, {})]
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v7.0.0-alpha.9
2
+ * @mui/x-date-pickers v7.0.0-beta.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -17,7 +17,8 @@ const usePicker = ({
17
17
  inputRef,
18
18
  additionalViewProps,
19
19
  validator,
20
- autoFocusView
20
+ autoFocusView,
21
+ rendererInterceptor
21
22
  }) => {
22
23
  if (process.env.NODE_ENV !== 'production') {
23
24
  if (props.renderInput != null) {
@@ -36,7 +37,8 @@ const usePicker = ({
36
37
  inputRef,
37
38
  additionalViewProps,
38
39
  autoFocusView,
39
- propsFromPickerValue: pickerValueResponse.viewProps
40
+ propsFromPickerValue: pickerValueResponse.viewProps,
41
+ rendererInterceptor
40
42
  });
41
43
  const pickerLayoutResponse = (0, _usePickerLayoutProps.usePickerLayoutProps)({
42
44
  props,
@@ -38,7 +38,8 @@ const usePickerViews = ({
38
38
  propsFromPickerValue,
39
39
  additionalViewProps,
40
40
  inputRef,
41
- autoFocusView
41
+ autoFocusView,
42
+ rendererInterceptor
42
43
  }) => {
43
44
  const {
44
45
  onChange,
@@ -154,7 +155,7 @@ const usePickerViews = ({
154
155
  if (renderer == null) {
155
156
  return null;
156
157
  }
157
- return renderer((0, _extends2.default)({}, propsToForwardToView, additionalViewProps, propsFromPickerValue, {
158
+ const rendererProps = (0, _extends2.default)({}, propsToForwardToView, additionalViewProps, propsFromPickerValue, {
158
159
  views,
159
160
  timezone,
160
161
  onChange: setValueAndGoToNextView,
@@ -164,7 +165,11 @@ const usePickerViews = ({
164
165
  onFocusedViewChange: setFocusedView,
165
166
  showViewSwitcher: timeViewsCount > 1,
166
167
  timeViewsCount
167
- }));
168
+ });
169
+ if (rendererInterceptor) {
170
+ return rendererInterceptor(viewRenderers, popperView, rendererProps);
171
+ }
172
+ return renderer(rendererProps);
168
173
  }
169
174
  };
170
175
  };
@@ -57,6 +57,12 @@ Object.defineProperty(exports, "PickersToolbarButton", {
57
57
  return _PickersToolbarButton.PickersToolbarButton;
58
58
  }
59
59
  });
60
+ Object.defineProperty(exports, "VIEW_HEIGHT", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _dimensions.VIEW_HEIGHT;
64
+ }
65
+ });
60
66
  Object.defineProperty(exports, "addPositionPropertiesToSections", {
61
67
  enumerable: true,
62
68
  get: function () {
@@ -147,6 +153,12 @@ Object.defineProperty(exports, "isDatePickerView", {
147
153
  return _dateUtils.isDatePickerView;
148
154
  }
149
155
  });
156
+ Object.defineProperty(exports, "isInternalTimeView", {
157
+ enumerable: true,
158
+ get: function () {
159
+ return _timeUtils.isInternalTimeView;
160
+ }
161
+ });
150
162
  Object.defineProperty(exports, "isTimeView", {
151
163
  enumerable: true,
152
164
  get: function () {
@@ -17,12 +17,17 @@ const beBYPickers = {
17
17
  previousMonth: 'Папярэдні месяц',
18
18
  nextMonth: 'Наступны месяц',
19
19
  // View navigation
20
- openPreviousView: 'адкрыць папярэдні выгляд',
21
- openNextView: 'адкрыць наступны выгляд',
20
+ openPreviousView: 'Aдкрыць папярэдні выгляд',
21
+ openNextView: 'Aдкрыць наступны выгляд',
22
22
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'гадавы выгляд адкрыты, перайсці да каляндарнага выгляду' : 'каляндарны выгляд адкрыты, перайсці да гадавога выгляду',
23
- // DateRange placeholders
23
+ // DateRange labels
24
24
  start: 'Пачатак',
25
25
  end: 'Канец',
26
+ // startDate: 'Start date',
27
+ // startTime: 'Start time',
28
+ // endDate: 'End date',
29
+ // endTime: 'End time',
30
+
26
31
  // Action bar
27
32
  cancelButtonLabel: 'Адмена',
28
33
  clearButtonLabel: 'Ачысціць',
@@ -16,12 +16,17 @@ const caESPickers = {
16
16
  previousMonth: 'Últim mes',
17
17
  nextMonth: 'Pròxim mes',
18
18
  // View navigation
19
- openPreviousView: "obrir l'última vista",
19
+ openPreviousView: "Obrir l'última vista",
20
20
  openNextView: 'obrir la següent vista',
21
21
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? "la vista de l'any està oberta, canvie a la vista de calendari" : "la vista de calendari està oberta, canvie a la vista de l'any",
22
- // DateRange placeholders
22
+ // DateRange labels
23
23
  start: 'Començar',
24
24
  end: 'Terminar',
25
+ // startDate: 'Start date',
26
+ // startTime: 'Start time',
27
+ // endDate: 'End date',
28
+ // endTime: 'End time',
29
+
25
30
  // Action bar
26
31
  cancelButtonLabel: 'Cancel·lar',
27
32
  clearButtonLabel: 'Netejar',
@@ -17,12 +17,17 @@ const csCZPickers = {
17
17
  previousMonth: 'Předchozí měsíc',
18
18
  nextMonth: 'Další měsíc',
19
19
  // View navigation
20
- openPreviousView: 'otevřít předchozí zobrazení',
21
- openNextView: 'otevřít další zobrazení',
20
+ openPreviousView: 'Otevřít předchozí zobrazení',
21
+ openNextView: 'Otevřít další zobrazení',
22
22
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'roční zobrazení otevřeno, přepněte do zobrazení kalendáře' : 'zobrazení kalendáře otevřeno, přepněte do zobrazení roku',
23
- // DateRange placeholders
23
+ // DateRange labels
24
24
  start: 'Začátek',
25
25
  end: 'Konec',
26
+ // startDate: 'Start date',
27
+ // startTime: 'Start time',
28
+ // endDate: 'End date',
29
+ // endTime: 'End time',
30
+
26
31
  // Action bar
27
32
  cancelButtonLabel: 'Zrušit',
28
33
  clearButtonLabel: 'Vymazat',
@@ -17,12 +17,17 @@ const daDKPickers = {
17
17
  previousMonth: 'Forrige måned',
18
18
  nextMonth: 'Næste måned',
19
19
  // View navigation
20
- openPreviousView: 'åben forrige visning',
21
- openNextView: 'åben næste visning',
20
+ openPreviousView: 'Åben forrige visning',
21
+ openNextView: 'Åben næste visning',
22
22
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'årsvisning er åben, skift til kalendervisning' : 'kalendervisning er åben, skift til årsvisning',
23
- // DateRange placeholders
23
+ // DateRange labels
24
24
  start: 'Start',
25
25
  end: 'Slut',
26
+ // startDate: 'Start date',
27
+ // startTime: 'Start time',
28
+ // endDate: 'End date',
29
+ // endTime: 'End time',
30
+
26
31
  // Action bar
27
32
  cancelButtonLabel: 'Annuller',
28
33
  clearButtonLabel: 'Ryd',
@@ -20,9 +20,14 @@ const deDEPickers = {
20
20
  openPreviousView: 'Letzte Ansicht öffnen',
21
21
  openNextView: 'Nächste Ansicht öffnen',
22
22
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'Jahresansicht ist geöffnet, zur Kalenderansicht wechseln' : 'Kalenderansicht ist geöffnet, zur Jahresansicht wechseln',
23
- // DateRange placeholders
23
+ // DateRange labels
24
24
  start: 'Beginn',
25
25
  end: 'Ende',
26
+ // startDate: 'Start date',
27
+ // startTime: 'Start time',
28
+ // endDate: 'End date',
29
+ // endTime: 'End time',
30
+
26
31
  // Action bar
27
32
  cancelButtonLabel: 'Abbrechen',
28
33
  clearButtonLabel: 'Löschen',
@@ -16,12 +16,17 @@ const elGRPickers = {
16
16
  previousMonth: 'Προηγούμενος μήνας',
17
17
  nextMonth: 'Επόμενος μήνας',
18
18
  // View navigation
19
- openPreviousView: 'ανοίγμα προηγούμενης προβολή',
20
- openNextView: 'ανοίγμα επόμενης προβολή',
19
+ openPreviousView: 'Άνοίγμα προηγούμενης προβολή',
20
+ openNextView: 'Άνοίγμα επόμενης προβολή',
21
21
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'η προβολή έτους είναι ανοιχτή, μεταβείτε στην προβολή ημερολογίου' : 'η προβολή ημερολογίου είναι ανοιχτή, μεταβείτε στην προβολή έτους',
22
- // DateRange placeholders
22
+ // DateRange labels
23
23
  start: 'Αρχή',
24
24
  end: 'Τέλος',
25
+ // startDate: 'Start date',
26
+ // startTime: 'Start time',
27
+ // endDate: 'End date',
28
+ // endTime: 'End time',
29
+
25
30
  // Action bar
26
31
  cancelButtonLabel: 'Άκυρο',
27
32
  clearButtonLabel: 'Καθαρισμός',
@@ -12,12 +12,16 @@ const enUSPickers = {
12
12
  previousMonth: 'Previous month',
13
13
  nextMonth: 'Next month',
14
14
  // View navigation
15
- openPreviousView: 'open previous view',
16
- openNextView: 'open next view',
15
+ openPreviousView: 'Open previous view',
16
+ openNextView: 'Open next view',
17
17
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view',
18
- // DateRange placeholders
18
+ // DateRange labels
19
19
  start: 'Start',
20
20
  end: 'End',
21
+ startDate: 'Start date',
22
+ startTime: 'Start time',
23
+ endDate: 'End date',
24
+ endTime: 'End time',
21
25
  // Action bar
22
26
  cancelButtonLabel: 'Cancel',
23
27
  clearButtonLabel: 'Clear',
@@ -16,12 +16,17 @@ const esESPickers = {
16
16
  previousMonth: 'Último mes',
17
17
  nextMonth: 'Próximo mes',
18
18
  // View navigation
19
- openPreviousView: 'abrir la última vista',
20
- openNextView: 'abrir la siguiente vista',
19
+ openPreviousView: 'Abrir la última vista',
20
+ openNextView: 'Abrir la siguiente vista',
21
21
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'la vista del año está abierta, cambie a la vista de calendario' : 'la vista de calendario está abierta, cambie a la vista del año',
22
- // DateRange placeholders
22
+ // DateRange labels
23
23
  start: 'Empezar',
24
24
  end: 'Terminar',
25
+ // startDate: 'Start date',
26
+ // startTime: 'Start time',
27
+ // endDate: 'End date',
28
+ // endTime: 'End time',
29
+
25
30
  // Action bar
26
31
  cancelButtonLabel: 'Cancelar',
27
32
  clearButtonLabel: 'Limpiar',
@@ -19,9 +19,14 @@ const euPickers = {
19
19
  openPreviousView: 'azken bista ireki',
20
20
  openNextView: 'hurrengo bista ireki',
21
21
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'urteko bista irekita dago, aldatu egutegi bistara' : 'egutegi bista irekita dago, aldatu urteko bistara',
22
- // DateRange placeholders
22
+ // DateRange labels
23
23
  start: 'Hasi',
24
24
  end: 'Bukatu',
25
+ // startDate: 'Start date',
26
+ // startTime: 'Start time',
27
+ // endDate: 'End date',
28
+ // endTime: 'End time',
29
+
25
30
  // Action bar
26
31
  cancelButtonLabel: 'Utxi',
27
32
  clearButtonLabel: 'Garbitu',
@@ -19,9 +19,14 @@ const faIRPickers = {
19
19
  openPreviousView: 'نمای قبلی',
20
20
  openNextView: 'نمای بعدی',
21
21
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'نمای سال باز است، رفتن به نمای تقویم' : 'نمای تقویم باز است، رفتن به نمای سال',
22
- // DateRange placeholders
22
+ // DateRange labels
23
23
  start: 'شروع',
24
24
  end: 'پایان',
25
+ // startDate: 'Start date',
26
+ // startTime: 'Start time',
27
+ // endDate: 'End date',
28
+ // endTime: 'End time',
29
+
25
30
  // Action bar
26
31
  cancelButtonLabel: 'لغو',
27
32
  clearButtonLabel: 'پاک کردن',
@@ -16,12 +16,17 @@ const fiFIPickers = {
16
16
  previousMonth: 'Edellinen kuukausi',
17
17
  nextMonth: 'Seuraava kuukausi',
18
18
  // View navigation
19
- openPreviousView: 'avaa edellinen kuukausi',
20
- openNextView: 'avaa seuraava kuukausi',
19
+ openPreviousView: 'Avaa edellinen kuukausi',
20
+ openNextView: 'Avaa seuraava kuukausi',
21
21
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'vuosinäkymä on auki, vaihda kalenterinäkymään' : 'kalenterinäkymä on auki, vaihda vuosinäkymään',
22
- // DateRange placeholders
22
+ // DateRange labels
23
23
  start: 'Alku',
24
24
  end: 'Loppu',
25
+ // startDate: 'Start date',
26
+ // startTime: 'Start time',
27
+ // endDate: 'End date',
28
+ // endTime: 'End time',
29
+
25
30
  // Action bar
26
31
  cancelButtonLabel: 'Peruuta',
27
32
  clearButtonLabel: 'Tyhjennä',
@@ -19,9 +19,14 @@ const frFRPickers = {
19
19
  openPreviousView: 'Ouvrir la vue précédente',
20
20
  openNextView: 'Ouvrir la vue suivante',
21
21
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'La vue année est ouverte, ouvrir la vue calendrier' : 'La vue calendrier est ouverte, ouvrir la vue année',
22
- // DateRange placeholders
22
+ // DateRange labels
23
23
  start: 'Début',
24
24
  end: 'Fin',
25
+ // startDate: 'Start date',
26
+ // startTime: 'Start time',
27
+ // endDate: 'End date',
28
+ // endTime: 'End time',
29
+
25
30
  // Action bar
26
31
  cancelButtonLabel: 'Annuler',
27
32
  clearButtonLabel: 'Vider',
@@ -19,9 +19,14 @@ const heILPickers = {
19
19
  openPreviousView: 'תצוגה קודמת',
20
20
  openNextView: 'תצוגה הבאה',
21
21
  calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'תצוגת שנה פתוחה, מעבר לתצוגת לוח שנה' : 'תצוגת לוח שנה פתוחה, מעבר לתצוגת שנה',
22
- // DateRange placeholders
22
+ // DateRange labels
23
23
  start: 'תחילה',
24
24
  end: 'סיום',
25
+ // startDate: 'Start date',
26
+ // startTime: 'Start time',
27
+ // endDate: 'End date',
28
+ // endTime: 'End time',
29
+
25
30
  // Action bar
26
31
  cancelButtonLabel: 'ביטול',
27
32
  clearButtonLabel: 'ניקוי',