@semcore/time-picker 16.1.14-prerelease.9 → 16.2.0-prerelease.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 (85) hide show
  1. package/CHANGELOG.md +3 -4
  2. package/lib/cjs/PickerFormat.js +81 -0
  3. package/lib/cjs/PickerFormat.js.map +1 -0
  4. package/lib/cjs/PickerInput.js +286 -0
  5. package/lib/cjs/PickerInput.js.map +1 -0
  6. package/lib/cjs/TimePicker.js +348 -0
  7. package/lib/cjs/TimePicker.js.map +1 -0
  8. package/lib/cjs/index.d.js +2 -0
  9. package/lib/cjs/index.d.js.map +1 -0
  10. package/lib/cjs/index.js +8 -9
  11. package/lib/cjs/index.js.map +1 -1
  12. package/lib/cjs/style/time-picker.shadow.css +116 -0
  13. package/lib/cjs/translations/__intergalactic-dynamic-locales.js +16 -16
  14. package/lib/cjs/translations/__intergalactic-dynamic-locales.js.map +1 -1
  15. package/lib/es6/PickerFormat.js +75 -0
  16. package/lib/es6/PickerFormat.js.map +1 -0
  17. package/lib/es6/PickerInput.js +281 -0
  18. package/lib/es6/PickerInput.js.map +1 -0
  19. package/lib/es6/TimePicker.js +339 -0
  20. package/lib/es6/TimePicker.js.map +1 -0
  21. package/lib/es6/index.d.js +2 -0
  22. package/lib/es6/index.d.js.map +1 -0
  23. package/lib/es6/index.js +2 -2
  24. package/lib/es6/index.js.map +1 -1
  25. package/lib/es6/style/time-picker.shadow.css +116 -0
  26. package/lib/es6/translations/__intergalactic-dynamic-locales.js +15 -15
  27. package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -1
  28. package/lib/esm/PickerFormat.mjs +67 -0
  29. package/lib/esm/PickerInput.mjs +263 -0
  30. package/lib/esm/TimePicker.mjs +297 -0
  31. package/lib/esm/index.mjs +7 -2
  32. package/lib/esm/style/time-picker.shadow.css +116 -0
  33. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +1 -1
  34. package/lib/types/index.d.ts +63 -2
  35. package/package.json +8 -8
  36. package/vite.config.ts +4 -1
  37. package/lib/cjs/component/PickerFormat/PickerFormat.js +0 -84
  38. package/lib/cjs/component/PickerFormat/PickerFormat.js.map +0 -1
  39. package/lib/cjs/component/PickerFormat/PickerFormat.type.js +0 -2
  40. package/lib/cjs/component/PickerFormat/PickerFormat.type.js.map +0 -1
  41. package/lib/cjs/component/PickerFormat/picker-format.shadow.css +0 -61
  42. package/lib/cjs/component/PickerInput/PickerInput.js +0 -228
  43. package/lib/cjs/component/PickerInput/PickerInput.js.map +0 -1
  44. package/lib/cjs/component/PickerInput/PickerInput.type.js +0 -2
  45. package/lib/cjs/component/PickerInput/PickerInput.type.js.map +0 -1
  46. package/lib/cjs/component/PickerInput/picker-input.shadow.css +0 -11
  47. package/lib/cjs/component/TimePicker/TimePicker.js +0 -220
  48. package/lib/cjs/component/TimePicker/TimePicker.js.map +0 -1
  49. package/lib/cjs/component/TimePicker/TimePicker.type.js +0 -2
  50. package/lib/cjs/component/TimePicker/TimePicker.type.js.map +0 -1
  51. package/lib/cjs/component/TimePicker/time-picker.shadow.css +0 -34
  52. package/lib/cjs/entity/TimePickerEntity.js +0 -73
  53. package/lib/cjs/entity/TimePickerEntity.js.map +0 -1
  54. package/lib/es6/component/PickerFormat/PickerFormat.js +0 -79
  55. package/lib/es6/component/PickerFormat/PickerFormat.js.map +0 -1
  56. package/lib/es6/component/PickerFormat/PickerFormat.type.js +0 -2
  57. package/lib/es6/component/PickerFormat/PickerFormat.type.js.map +0 -1
  58. package/lib/es6/component/PickerFormat/picker-format.shadow.css +0 -61
  59. package/lib/es6/component/PickerInput/PickerInput.js +0 -222
  60. package/lib/es6/component/PickerInput/PickerInput.js.map +0 -1
  61. package/lib/es6/component/PickerInput/PickerInput.type.js +0 -2
  62. package/lib/es6/component/PickerInput/PickerInput.type.js.map +0 -1
  63. package/lib/es6/component/PickerInput/picker-input.shadow.css +0 -11
  64. package/lib/es6/component/TimePicker/TimePicker.js +0 -216
  65. package/lib/es6/component/TimePicker/TimePicker.js.map +0 -1
  66. package/lib/es6/component/TimePicker/TimePicker.type.js +0 -2
  67. package/lib/es6/component/TimePicker/TimePicker.type.js.map +0 -1
  68. package/lib/es6/component/TimePicker/time-picker.shadow.css +0 -34
  69. package/lib/es6/entity/TimePickerEntity.js +0 -66
  70. package/lib/es6/entity/TimePickerEntity.js.map +0 -1
  71. package/lib/esm/component/PickerFormat/PickerFormat.mjs +0 -84
  72. package/lib/esm/component/PickerFormat/picker-format.shadow.css +0 -61
  73. package/lib/esm/component/PickerInput/PickerInput.mjs +0 -227
  74. package/lib/esm/component/PickerInput/picker-input.shadow.css +0 -11
  75. package/lib/esm/component/TimePicker/TimePicker.mjs +0 -220
  76. package/lib/esm/component/TimePicker/time-picker.shadow.css +0 -34
  77. package/lib/esm/entity/TimePickerEntity.mjs +0 -65
  78. package/lib/types/component/PickerFormat/PickerFormat.d.ts +0 -17
  79. package/lib/types/component/PickerFormat/PickerFormat.type.d.ts +0 -16
  80. package/lib/types/component/PickerInput/PickerInput.d.ts +0 -54
  81. package/lib/types/component/PickerInput/PickerInput.type.d.ts +0 -13
  82. package/lib/types/component/TimePicker/TimePicker.d.ts +0 -3
  83. package/lib/types/component/TimePicker/TimePicker.type.d.ts +0 -50
  84. package/lib/types/entity/TimePickerEntity.d.ts +0 -22
  85. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +0 -114
@@ -1,84 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { Component, sstyled, assignProps } from "@semcore/core";
3
- import { Box, ScreenReaderOnly } from "@semcore/base-components";
4
- import uniqueIDEnhancement from "@semcore/core/lib/utils/uniqueID";
5
- import React from "react";
6
- /*!__reshadow-styles__:"./picker-format.shadow.css"*/
7
- const style = (
8
- /*__reshadow_css_start__*/
9
- (sstyled.insert(
10
- /*__inner_css_start__*/
11
- ".___SPickerFormat_11qxx_gg_{flex-shrink:0;position:relative;display:inline-flex;padding:0;white-space:nowrap;font-family:inherit;font-weight:var(--intergalactic-medium, 500);line-height:normal;-webkit-text-decoration:none;text-decoration:none;align-items:center;border:1px solid var(--intergalactic-border-primary, #c4c7cf);border-radius:0 var(--intergalactic-control-rounded, 6px) var(--intergalactic-control-rounded, 6px)0;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral, #f4f5f9)}@media (hover:hover){.___SPickerFormat_11qxx_gg_:hover{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-hover, #e0e1e9)}}.___SPickerFormat_11qxx_gg_.__active_11qxx_gg_,.___SPickerFormat_11qxx_gg_:active{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-bg-secondary-neutral-active, #c4c7cf)}.___SPickerFormat_11qxx_gg_._size_m_11qxx_gg_{height:var(--intergalactic-form-control-m, 28px);font-size:var(--intergalactic-fs-200, 14px);margin:0-1px 0 0}.___SPickerFormat_11qxx_gg_._size_m_11qxx_gg_ .___SPickerFormatText_11qxx_gg_{margin:0 var(--intergalactic-spacing-2x, 8px)}.___SPickerFormat_11qxx_gg_._size_l_11qxx_gg_{height:var(--intergalactic-form-control-l, 40px);font-size:var(--intergalactic-fs-300, 16px);margin:0-1px 0 0}.___SPickerFormat_11qxx_gg_._size_l_11qxx_gg_ .___SPickerFormatText_11qxx_gg_{margin:0 var(--intergalactic-spacing-3x, 12px)}.___SPickerFormat_11qxx_gg_.__disabled_11qxx_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;border-color:transparent transparent transparent var(--intergalactic-border-primary, #c4c7cf)}",
12
- /*__inner_css_end__*/
13
- "11qxx_gg_"
14
- ), /*__reshadow_css_end__*/
15
- {
16
- "__SPickerFormat": "___SPickerFormat_11qxx_gg_",
17
- "_disabled": "__disabled_11qxx_gg_",
18
- "_active": "__active_11qxx_gg_",
19
- "_size_m": "_size_m_11qxx_gg_",
20
- "__SPickerFormatText": "___SPickerFormatText_11qxx_gg_",
21
- "_size_l": "_size_l_11qxx_gg_"
22
- })
23
- );
24
- class TimePickerFormat extends Component {
25
- constructor(...args) {
26
- super(...args);
27
- _defineProperty(this, "state", {
28
- changedFormatNotice: ""
29
- });
30
- _defineProperty(this, "handleClick", () => {
31
- setTimeout(() => {
32
- const {
33
- meridiem,
34
- getI18nText
35
- } = this.asProps;
36
- this.setState({
37
- changedFormatNotice: getI18nText("changedFormatNotice", {
38
- meridiem
39
- })
40
- });
41
- }, 0);
42
- setTimeout(() => {
43
- this.setState({
44
- changedFormatNotice: ""
45
- });
46
- }, 2e3);
47
- });
48
- }
49
- render() {
50
- var _ref = this.asProps, _ref2;
51
- const SPickerFormat = Box;
52
- const {
53
- Children,
54
- meridiem,
55
- styles,
56
- getI18nText,
57
- uid
58
- } = this.asProps;
59
- const {
60
- changedFormatNotice
61
- } = this.state;
62
- const SPickerFormatText = "span";
63
- return _ref2 = sstyled(styles), /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(SPickerFormat, _ref2.cn("SPickerFormat", {
64
- ...assignProps({
65
- "type": "button",
66
- "tag": "button",
67
- "tabIndex": 0,
68
- "onClick": this.handleClick,
69
- "aria-describedby": `${uid}_describe`
70
- }, _ref)
71
- }), Children.origin ? /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {})) : /* @__PURE__ */ React.createElement(SPickerFormatText, _ref2.cn("SPickerFormatText", {}), meridiem)), /* @__PURE__ */ React.createElement(ScreenReaderOnly, _ref2.cn("ScreenReaderOnly", {
72
- "role": "status",
73
- "aria-live": "polite"
74
- }), changedFormatNotice), /* @__PURE__ */ React.createElement(ScreenReaderOnly, _ref2.cn("ScreenReaderOnly", {
75
- "aria-hidden": "true",
76
- "id": `${uid}_describe`
77
- }), getI18nText("formatToggler")));
78
- }
79
- }
80
- _defineProperty(TimePickerFormat, "style", style);
81
- _defineProperty(TimePickerFormat, "enhance", [uniqueIDEnhancement()]);
82
- export {
83
- TimePickerFormat as default
84
- };
@@ -1,61 +0,0 @@
1
- SPickerFormat {
2
- flex-shrink: 0;
3
- position: relative;
4
- display: inline-flex;
5
- padding: 0;
6
- white-space: nowrap;
7
- font-family: inherit;
8
- font-weight: var(--intergalactic-medium, 500);
9
- line-height: normal;
10
- text-decoration: none;
11
- align-items: center;
12
- border: 1px solid var(--intergalactic-border-primary, #c4c7cf);
13
- border-radius: 0 var(--intergalactic-control-rounded, 6px)
14
- var(--intergalactic-control-rounded, 6px) 0;
15
- box-shadow: none;
16
- cursor: pointer;
17
- box-sizing: border-box;
18
- overflow: visible;
19
- user-select: none;
20
- touch-action: manipulation;
21
- -webkit-tap-highlight-color: transparent;
22
- color: var(--intergalactic-text-secondary, #6c6e79);
23
- background-color: var(--intergalactic-bg-secondary-neutral, #f4f5f9);
24
-
25
- &:hover {
26
- color: var(--intergalactic-text-secondary, #6c6e79);
27
- background-color: var(--intergalactic-bg-secondary-neutral-hover, #e0e1e9);
28
- }
29
-
30
- &:active,
31
- &[active] {
32
- color: var(--intergalactic-text-secondary, #6c6e79);
33
- background-color: var(--intergalactic-bg-secondary-neutral-active, #c4c7cf);
34
- }
35
- }
36
-
37
- SPickerFormat[size='m'] {
38
- height: var(--intergalactic-form-control-m, 28px);
39
- font-size: var(--intergalactic-fs-200, 14px);
40
- /* disable-tokens-validator */
41
- margin: 0 -1px 0 0;
42
- & SPickerFormatText {
43
- margin: 0 var(--intergalactic-spacing-2x, 8px);
44
- }
45
- }
46
-
47
- SPickerFormat[size='l'] {
48
- height: var(--intergalactic-form-control-l, 40px);
49
- font-size: var(--intergalactic-fs-300, 16px);
50
- margin: 0 -1px 0 0;
51
- & SPickerFormatText {
52
- margin: 0 var(--intergalactic-spacing-3x, 12px);
53
- }
54
- }
55
-
56
- SPickerFormat[disabled] {
57
- opacity: var(--intergalactic-disabled-opacity, 0.3);
58
- cursor: default;
59
- pointer-events: none;
60
- border-color: transparent transparent transparent var(--intergalactic-border-primary, #c4c7cf);
61
- }
@@ -1,227 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { Component, sstyled, assignProps } from "@semcore/core";
3
- import { callAllEventHandlers } from "@semcore/core/lib/utils/assignProps";
4
- import Input from "@semcore/input";
5
- import Select from "@semcore/select";
6
- import React from "react";
7
- /*!__reshadow-styles__:"./picker-input.shadow.css"*/
8
- const style = (
9
- /*__reshadow_css_start__*/
10
- (sstyled.insert(
11
- /*__inner_css_start__*/
12
- ".___SPickerInput_1bwib_gg_._size_l_1bwib_gg_,.___SPickerInput_1bwib_gg_._size_m_1bwib_gg_{width:19px;margin:0 var(--intergalactic-spacing-2x, 8px);padding:0}.___SPickerInput_1bwib_gg_._size_l_1bwib_gg_{width:21px}",
13
- /*__inner_css_end__*/
14
- "1bwib_gg_"
15
- ), /*__reshadow_css_end__*/
16
- {
17
- "__SPickerInput": "___SPickerInput_1bwib_gg_",
18
- "_size_m": "_size_m_1bwib_gg_",
19
- "_size_l": "_size_l_1bwib_gg_"
20
- })
21
- );
22
- function getOptions(minMax, step = 1) {
23
- const [min, max] = minMax;
24
- const length = Number(((max + 1 - min) / step).toFixed(0));
25
- const options = Array(length).fill("");
26
- let numValue = min;
27
- return options.map((_i, index) => {
28
- numValue = index === 0 ? numValue : numValue + step;
29
- const value = String(numValue).padStart(2, "0");
30
- return /* @__PURE__ */ React.createElement(Select.Option, {
31
- value,
32
- key: value
33
- }, value);
34
- });
35
- }
36
- class AbstractPickerInput extends Component {
37
- constructor(...args) {
38
- super(...args);
39
- _defineProperty(this, "state", {
40
- dirtyValue: void 0,
41
- visible: false
42
- });
43
- _defineProperty(this, "inputRef", /* @__PURE__ */ React.createRef());
44
- _defineProperty(this, "parseValueWithMinMax", (value) => {
45
- const [min, max] = this.minMax;
46
- const numberValue = isNaN(Number(value)) ? min : Number(value);
47
- return String(Math.max(min, Math.min(max, numberValue)));
48
- });
49
- _defineProperty(this, "handleChange", (value, event) => {
50
- event.stopPropagation();
51
- const inputValue = value.replace(/[^0-9]/g, "");
52
- const numberValue = Number(inputValue);
53
- if (!Number.isNaN(numberValue)) {
54
- this.setState({
55
- dirtyValue: inputValue.slice(-2)
56
- });
57
- }
58
- });
59
- _defineProperty(this, "handleBlur", (event) => this.submitChanges(event));
60
- _defineProperty(this, "handleSelect", (value, event) => {
61
- this.dispatchOnChange(value, event);
62
- });
63
- _defineProperty(this, "handleVisibleChange", (visible) => this.setState({
64
- visible
65
- }));
66
- }
67
- dispatchOnChange(value, event) {
68
- this.setState({
69
- dirtyValue: void 0
70
- });
71
- this.asProps.$onValueChange(value, this.field, event);
72
- }
73
- submitChanges(event) {
74
- let {
75
- dirtyValue
76
- } = this.state;
77
- if (dirtyValue !== void 0) {
78
- if (dirtyValue) dirtyValue = this.parseValueWithMinMax(dirtyValue);
79
- this.dispatchOnChange(dirtyValue, event);
80
- }
81
- }
82
- render() {
83
- var _ref = this.asProps, _ref2;
84
- const SPickerInput = Select.Trigger;
85
- const {
86
- styles,
87
- step,
88
- onSelect,
89
- time,
90
- size,
91
- disabled,
92
- onVisibleChange,
93
- ariaLabel,
94
- ...other
95
- } = this.asProps;
96
- const {
97
- dirtyValue,
98
- visible
99
- } = this.state;
100
- const value = dirtyValue === void 0 ? time : dirtyValue;
101
- return _ref2 = sstyled(styles), /* @__PURE__ */ React.createElement(Select, _ref2.cn("Select", {
102
- ...other,
103
- "interaction": "focus",
104
- "size": size,
105
- "onChange": callAllEventHandlers(onSelect, this.handleSelect),
106
- "onVisibleChange": callAllEventHandlers(onVisibleChange, this.handleVisibleChange),
107
- "visible": visible,
108
- "value": time,
109
- "defaultHighlightedIndex": time ? null : 0
110
- }), /* @__PURE__ */ React.createElement(SPickerInput, _ref2.cn("SPickerInput", {
111
- ...assignProps({
112
- "tag": Input.Value,
113
- "ref": this.inputRef,
114
- "inputMode": "numeric",
115
- "size": size,
116
- "disabled": disabled,
117
- "neighborLocation": false,
118
- "value": value,
119
- "aria-label": ariaLabel,
120
- "onChange": this.handleChange,
121
- "onBlur": this.handleBlur,
122
- "onKeyDown": this.handleKeyDown
123
- }, _ref)
124
- })), /* @__PURE__ */ React.createElement(Select.Menu, {
125
- hMax: 180
126
- }, getOptions(this.minMax, step)));
127
- }
128
- }
129
- _defineProperty(AbstractPickerInput, "style", style);
130
- _defineProperty(AbstractPickerInput, "defaultProps", (_) => ({
131
- placeholder: "00",
132
- offset: [-8, 4]
133
- }));
134
- class Hours extends AbstractPickerInput {
135
- constructor(...args) {
136
- super(...args);
137
- _defineProperty(this, "handleKeyDown", (event) => {
138
- const {
139
- currentTarget
140
- } = event;
141
- if (event.key === "Enter") {
142
- this.submitChanges(event);
143
- }
144
- if (event.key === "ArrowRight") {
145
- if (currentTarget.selectionStart && currentTarget.selectionStart >= currentTarget.value.length && currentTarget.selectionStart === currentTarget.selectionEnd) {
146
- event.preventDefault();
147
- this.focusNext();
148
- }
149
- }
150
- });
151
- }
152
- get field() {
153
- return "hours";
154
- }
155
- get minMax() {
156
- const {
157
- is12Hour
158
- } = this.asProps;
159
- return is12Hour ? [1, 12] : [0, 23];
160
- }
161
- focusNext() {
162
- if (this.asProps.minutesInputRef.current) {
163
- this.setState({
164
- visible: false
165
- });
166
- this.asProps.minutesInputRef.current.focus();
167
- }
168
- }
169
- componentDidUpdate(_, prevState) {
170
- const {
171
- dirtyValue
172
- } = this.state;
173
- if (prevState.dirtyValue === void 0 || dirtyValue === void 0) return;
174
- if (prevState.dirtyValue.length === 1 && dirtyValue.length === 2) {
175
- this.focusNext();
176
- }
177
- }
178
- }
179
- _defineProperty(Hours, "defaultProps", (props) => ({
180
- ...AbstractPickerInput.defaultProps(props),
181
- ml: props.size === "l" ? 3 : void 0
182
- }));
183
- class Minutes extends AbstractPickerInput {
184
- constructor(...args) {
185
- super(...args);
186
- _defineProperty(this, "handleKeyDown", (event) => {
187
- const {
188
- currentTarget
189
- } = event;
190
- if (event.key === "ArrowLeft") {
191
- if (currentTarget.selectionStart && currentTarget.selectionStart <= 0 && currentTarget.selectionStart === currentTarget.selectionEnd) {
192
- event.preventDefault();
193
- this.focusPrev();
194
- }
195
- }
196
- if (event.key === "Backspace") {
197
- if (currentTarget.value.length === 0) {
198
- event.preventDefault();
199
- this.focusPrev();
200
- }
201
- }
202
- if (event.key === "Enter") this.submitChanges(event);
203
- });
204
- }
205
- get field() {
206
- return "minutes";
207
- }
208
- get minMax() {
209
- return [0, 59];
210
- }
211
- focusPrev() {
212
- if (this.asProps.hoursInputRef.current) {
213
- this.setState({
214
- visible: false
215
- });
216
- this.asProps.hoursInputRef.current.focus();
217
- }
218
- }
219
- }
220
- _defineProperty(Minutes, "defaultProps", (props) => ({
221
- ...AbstractPickerInput.defaultProps(props),
222
- mr: props.size === "l" ? 3 : void 0
223
- }));
224
- export {
225
- Hours,
226
- Minutes
227
- };
@@ -1,11 +0,0 @@
1
- SPickerInput[size='m'] {
2
- width: 19px;
3
- margin: 0 var(--intergalactic-spacing-2x, 8px);
4
- padding: 0;
5
- }
6
-
7
- SPickerInput[size='l'] {
8
- width: 21px;
9
- margin: 0 var(--intergalactic-spacing-2x, 8px);
10
- padding: 0;
11
- }
@@ -1,220 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import _applyDecs from "@babel/runtime/helpers/esm/applyDecs2311";
3
- import _identity from "@babel/runtime/helpers/esm/identity";
4
- import { createComponent, sstyled, Component, assignProps } from "@semcore/core";
5
- import { ScreenReaderOnly, Box } from "@semcore/base-components";
6
- import propsObserver from "@semcore/core/lib/decorators/propsObserver";
7
- import reactive from "@semcore/core/lib/decorators/reactive";
8
- import i18nEnhance from "@semcore/core/lib/utils/enhances/i18nEnhance";
9
- import Input from "@semcore/input";
10
- import React from "react";
11
- import TimePickerEntity from "../../entity/TimePickerEntity.mjs";
12
- import { localizedMessages } from "../../translations/__intergalactic-dynamic-locales.mjs";
13
- import TimePickerFormat from "../PickerFormat/PickerFormat.mjs";
14
- import { Minutes, Hours } from "../PickerInput/PickerInput.mjs";
15
- var _Class, _TimePickerRoot3;
16
- let _initClass, _classDecs, _entityDecs, _init_entity, _init_extra_entity, _TimePickerRoot2, _ref5;
17
- /*!__reshadow-styles__:"./time-picker.shadow.css"*/
18
- const style = (
19
- /*__reshadow_css_start__*/
20
- (sstyled.insert(
21
- /*__inner_css_start__*/
22
- ".___STimePicker_17xeh_gg_{position:relative;width:auto;outline:0}.___STimePicker_17xeh_gg_ .___SPickerInput_17xeh_gg_{box-sizing:content-box;text-align:center;z-index:1;height:1.5em}.___STimePicker_17xeh_gg_ .___SPickerInput_17xeh_gg_.__placeholder_17xeh_gg_{text-overflow:initial}.___STimePicker_17xeh_gg_ .___SPickerInput_17xeh_gg_:focus{outline:0;background-color:var(--intergalactic-bg-highlight-focus, rgba(0, 143, 248, 0.2))}.___STimePicker_17xeh_gg_.__disabled_17xeh_gg_{color:var(--intergalactic-text-secondary, #6c6e79);cursor:default}.___STimePickerSeparator_17xeh_gg_{color:var(--intergalactic-text-primary, #191b23)}.___STimePickerSeparator_17xeh_gg_.__disabled_17xeh_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);pointer-events:none}",
23
- /*__inner_css_end__*/
24
- "17xeh_gg_"
25
- ), /*__reshadow_css_end__*/
26
- {
27
- "__STimePicker": "___STimePicker_17xeh_gg_",
28
- "_disabled": "__disabled_17xeh_gg_",
29
- "__STimePickerSeparator": "___STimePickerSeparator_17xeh_gg_",
30
- "__SPickerInput": "___SPickerInput_17xeh_gg_",
31
- "_placeholder": "__placeholder_17xeh_gg_"
32
- })
33
- );
34
- _classDecs = [propsObserver(["value", "is12Hour"])];
35
- let _TimePickerRoot;
36
- new (_TimePickerRoot2 = (_ref5 = (_entityDecs = reactive(["meridiem"], function() {
37
- this.forceUpdate();
38
- }), "hoursInputRef"), _TimePickerRoot3 = class TimePickerRoot extends Component {
39
- constructor(...args) {
40
- super(...args);
41
- _defineProperty(this, _ref5, /* @__PURE__ */ React.createRef());
42
- _defineProperty(this, "minutesInputRef", /* @__PURE__ */ React.createRef());
43
- _defineProperty(this, "state", {
44
- ariaLabel: ""
45
- });
46
- _defineProperty(this, "entity", _init_entity(this, new TimePickerEntity(this.props.value ?? this.props.defaultValue, this.props.is12Hour)));
47
- _defineProperty(this, "handleValueChange", (_init_extra_entity(this), (value, field, event) => {
48
- this.entity[field] = value;
49
- this.handlers.value(this.entity.toString(), event);
50
- }));
51
- _defineProperty(this, "handleMeridiemClick", (event) => {
52
- this.entity.toggleMeridiem();
53
- this.handlers.value(this.entity.toString(), event);
54
- });
55
- _defineProperty(this, "getCommonPickerInputProps", () => {
56
- const {
57
- is12Hour,
58
- size,
59
- disabled
60
- } = this.asProps;
61
- return {
62
- size,
63
- is12Hour,
64
- disabled,
65
- $onValueChange: this.handleValueChange,
66
- minutesInputRef: this.minutesInputRef,
67
- hoursInputRef: this.hoursInputRef
68
- };
69
- });
70
- _defineProperty(this, "getHoursProps", () => {
71
- return {
72
- ...this.getCommonPickerInputProps(),
73
- time: this.entity.hours,
74
- ariaLabel: this.asProps.getI18nText("hours"),
75
- ref: this.hoursInputRef
76
- };
77
- });
78
- _defineProperty(this, "getMinutesProps", () => {
79
- return {
80
- ...this.getCommonPickerInputProps(),
81
- time: this.entity.minutes,
82
- ariaLabel: this.asProps.getI18nText("minutes"),
83
- ref: this.minutesInputRef
84
- };
85
- });
86
- }
87
- componentDidMount() {
88
- const {
89
- id,
90
- "aria-describedby": ariaDescribedBy
91
- } = this.asProps;
92
- const selector = `[for=${id}]`;
93
- const element = document.querySelector(selector) ?? document.querySelector(`#${ariaDescribedBy}`);
94
- if (element) {
95
- this.setState({
96
- ariaLabel: element.textContent
97
- });
98
- }
99
- }
100
- onPropsChange(changedProps) {
101
- const {
102
- value,
103
- is12Hour
104
- } = changedProps;
105
- if (value !== void 0) {
106
- const [hours = "", minutes = ""] = value.split(":");
107
- this.entity.hours = hours;
108
- this.entity.minutes = minutes;
109
- }
110
- if (is12Hour !== void 0) {
111
- this.entity.is12Hour = is12Hour;
112
- }
113
- }
114
- uncontrolledProps() {
115
- return {
116
- value: null
117
- };
118
- }
119
- getSeparatorProps() {
120
- return {
121
- disabled: this.asProps.disabled,
122
- hoursInputRef: this.hoursInputRef
123
- };
124
- }
125
- getFormatProps() {
126
- const {
127
- size,
128
- disabled,
129
- getI18nText
130
- } = this.asProps;
131
- return {
132
- size,
133
- disabled,
134
- meridiem: this.entity.meridiem,
135
- onClick: this.handleMeridiemClick,
136
- getI18nText
137
- };
138
- }
139
- render() {
140
- var _ref = this.asProps, _ref3;
141
- const STimePicker = Input;
142
- const {
143
- styles,
144
- Children,
145
- value,
146
- is12Hour,
147
- getI18nText,
148
- id
149
- } = this.asProps;
150
- const time = `${this.entity.hours}:${this.entity.minutes}`;
151
- const meridiem = is12Hour ? this.entity.meridiem : "";
152
- const label = value ? `${this.state.ariaLabel} ${getI18nText("title", {
153
- time,
154
- meridiem
155
- })}` : `${this.state.ariaLabel} ${getI18nText("titleEmpty")}`;
156
- return _ref3 = sstyled(styles), /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(STimePicker, _ref3.cn("STimePicker", {
157
- ...assignProps({
158
- "role": "group",
159
- "aria-label": label,
160
- "__excludeProps": ["value", "id"]
161
- }, _ref)
162
- }), /* @__PURE__ */ React.createElement(Children, _ref3.cn("Children", {}))), /* @__PURE__ */ React.createElement(ScreenReaderOnly, _ref3.cn("ScreenReaderOnly", {
163
- "tag": "input",
164
- "tabIndex": -1,
165
- "id": id,
166
- "aria-hidden": true,
167
- "value": `${time} ${meridiem}`
168
- })));
169
- }
170
- }, {
171
- e: [_init_entity, _init_extra_entity],
172
- c: [_TimePickerRoot, _initClass]
173
- } = _applyDecs(_TimePickerRoot3, _classDecs, [[_entityDecs, 0, "entity"]], 0, void 0, Component), _TimePickerRoot3), _Class = class extends _identity {
174
- constructor() {
175
- super(_TimePickerRoot), _defineProperty(this, "displayName", "TimePicker"), _defineProperty(this, "style", style), _defineProperty(this, "enhance", [i18nEnhance(localizedMessages)]), _defineProperty(this, "defaultProps", ({
176
- is12Hour
177
- }) => ({
178
- defaultValue: "",
179
- size: "m",
180
- children: /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(TimePicker.Hours, null), /* @__PURE__ */ React.createElement(TimePicker.Separator, null), /* @__PURE__ */ React.createElement(TimePicker.Minutes, null), is12Hour && /* @__PURE__ */ React.createElement(TimePicker.Format, null)),
181
- locale: "en"
182
- })), _initClass();
183
- }
184
- }, _defineProperty(_Class, _TimePickerRoot2, void 0), _Class)();
185
- class Separator extends Component {
186
- constructor(...args) {
187
- super(...args);
188
- _defineProperty(this, "handlerClick", () => {
189
- var _a;
190
- if (this.asProps.hoursInputRef.current) {
191
- (_a = this.asProps.hoursInputRef.current) == null ? void 0 : _a.focus();
192
- }
193
- });
194
- }
195
- render() {
196
- var _ref2 = this.asProps, _ref4;
197
- const STimePickerSeparator = Box;
198
- const {
199
- styles
200
- } = this.asProps;
201
- return _ref4 = sstyled(styles), /* @__PURE__ */ React.createElement(STimePickerSeparator, _ref4.cn("STimePickerSeparator", {
202
- ...assignProps({
203
- "onClick": this.handlerClick,
204
- "aria-hidden": "true"
205
- }, _ref2)
206
- }));
207
- }
208
- }
209
- _defineProperty(Separator, "defaultProps", {
210
- children: ":"
211
- });
212
- const TimePicker = createComponent(_TimePickerRoot, {
213
- Hours,
214
- Minutes,
215
- Separator,
216
- Format: TimePickerFormat
217
- });
218
- export {
219
- TimePicker as default
220
- };
@@ -1,34 +0,0 @@
1
- STimePicker {
2
- position: relative;
3
- width: auto;
4
- outline: none;
5
-
6
- SPickerInput {
7
- box-sizing: content-box;
8
- text-align: center;
9
- z-index: 1;
10
- height: 1.5em;
11
-
12
- &[placeholder] {
13
- text-overflow: initial;
14
- }
15
- &:focus {
16
- outline: none;
17
- background-color: var(--intergalactic-bg-highlight-focus, rgba(0, 143, 248, 0.2));
18
- }
19
- }
20
- }
21
-
22
- STimePicker[disabled] {
23
- color: var(--intergalactic-text-secondary, #6c6e79);
24
- cursor: default;
25
- }
26
-
27
- STimePickerSeparator {
28
- color: var(--intergalactic-text-primary, #191b23);
29
- }
30
-
31
- STimePickerSeparator[disabled] {
32
- opacity: var(--intergalactic-disabled-opacity, 0.3);
33
- pointer-events: none;
34
- }