@servicetitan/design-system 12.6.2 → 12.7.1-patch.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ActionMenu/ActionMenu.css +3 -2
- package/dist/components/ActionMenu/ActionMenu.css.map +1 -1
- package/dist/components/ActionMenu/index.css +3 -2
- package/dist/components/ActionMenu/index.css.map +1 -1
- package/dist/components/Announcement/Announcement.css +1 -0
- package/dist/components/Announcement/Announcement.css.map +1 -1
- package/dist/components/Announcement/index.css +1 -0
- package/dist/components/Announcement/index.css.map +1 -1
- package/dist/components/AnvilSelect/AnvilSelect.css +2 -3
- package/dist/components/AnvilSelect/AnvilSelect.css.map +1 -1
- package/dist/components/AnvilSelect/components/Trigger.css +2 -3
- package/dist/components/AnvilSelect/components/Trigger.css.map +1 -1
- package/dist/components/AnvilSelect/index.css +2 -3
- package/dist/components/AnvilSelect/index.css.map +1 -1
- package/dist/components/BackLink/BackLink.css +1 -0
- package/dist/components/BackLink/BackLink.css.map +1 -1
- package/dist/components/BackLink/index.css +1 -0
- package/dist/components/BackLink/index.css.map +1 -1
- package/dist/components/Card/Card.css +2 -0
- package/dist/components/Card/Card.css.map +1 -1
- package/dist/components/Card/index.css +2 -0
- package/dist/components/Card/index.css.map +1 -1
- package/dist/components/DatePicker/DatePicker.css.map +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +4 -10
- package/dist/components/DatePicker/DatePicker.js +61 -53
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DatePicker/InputDateMask.d.ts +2 -0
- package/dist/components/DatePicker/InputDateMask.js +8 -3
- package/dist/components/DatePicker/InputDateMask.js.map +1 -1
- package/dist/components/DatePicker/index.css.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.js +152 -161
- package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.test.js +72 -7
- package/dist/components/DateRangePicker/DateRangePicker.test.js.map +1 -1
- package/dist/components/DateRangePicker/components/DateRangeInput.d.ts +3 -1
- package/dist/components/DateRangePicker/components/DateRangeInput.js +31 -11
- package/dist/components/DateRangePicker/components/DateRangeInput.js.map +1 -1
- package/dist/components/DateRangePicker/components/DateRangeOptionList.d.ts +2 -2
- package/dist/components/DateRangePicker/components/DateRangeOptionList.js +1 -1
- package/dist/components/DateRangePicker/components/DateRangeOptionList.js.map +1 -1
- package/dist/components/DateRangePicker/utils/checkScope.d.ts +8 -3
- package/dist/components/DateRangePicker/utils/checkScope.js +36 -7
- package/dist/components/DateRangePicker/utils/checkScope.js.map +1 -1
- package/dist/components/FormField/FormField.css.map +1 -1
- package/dist/components/FormField/index.css.map +1 -1
- package/dist/components/Frame/Frame.css.map +1 -1
- package/dist/components/Frame/index.css.map +1 -1
- package/dist/components/Headline/Headline.css +2 -2
- package/dist/components/Headline/Headline.css.map +1 -1
- package/dist/components/Headline/index.css +2 -2
- package/dist/components/Headline/index.css.map +1 -1
- package/dist/components/Modal/Modal.css +1 -0
- package/dist/components/Modal/Modal.css.map +1 -1
- package/dist/components/Modal/index.css +1 -0
- package/dist/components/Modal/index.css.map +1 -1
- package/dist/components/OptionList/OptionList.css +3 -1
- package/dist/components/OptionList/OptionList.css.map +1 -1
- package/dist/components/OptionList/index.css +3 -1
- package/dist/components/OptionList/index.css.map +1 -1
- package/dist/components/Snackbar/Snackbar.css +1 -0
- package/dist/components/Snackbar/Snackbar.css.map +1 -1
- package/dist/components/Snackbar/index.css +1 -0
- package/dist/components/Snackbar/index.css.map +1 -1
- package/dist/components/Tag/Tag.css +5 -4
- package/dist/components/Tag/Tag.css.map +1 -1
- package/dist/components/Tag/index.css +5 -4
- package/dist/components/Tag/index.css.map +1 -1
- package/dist/components/TimePicker/TimePicker.css +7 -1
- package/dist/components/TimePicker/TimePicker.css.map +1 -1
- package/dist/components/TimePicker/TimePicker.d.ts +2 -1
- package/dist/components/TimePicker/TimePicker.js +109 -65
- package/dist/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/components/TimePicker/components/TimePickerOptionList.d.ts +5 -1
- package/dist/components/TimePicker/components/TimePickerOptionList.js +40 -30
- package/dist/components/TimePicker/components/TimePickerOptionList.js.map +1 -1
- package/dist/components/TimePicker/index.css +7 -1
- package/dist/components/TimePicker/index.css.map +1 -1
- package/dist/components/TimePicker/utils/{timePickerUtils.test.d.ts → TimePickerUtils.test.d.ts} +0 -0
- package/dist/components/TimePicker/utils/{timePickerUtils.test.js → TimePickerUtils.test.js} +2 -2
- package/dist/components/TimePicker/utils/{timePickerUtils.test.js.map → TimePickerUtils.test.js.map} +1 -1
- package/dist/components/TimePicker/utils/highlightOption.d.ts +2 -0
- package/dist/components/TimePicker/utils/highlightOption.js +17 -0
- package/dist/components/TimePicker/utils/highlightOption.js.map +1 -0
- package/dist/components/TimePicker/utils/index.d.ts +2 -2
- package/dist/components/TimePicker/utils/index.js +2 -2
- package/dist/components/TimePicker/utils/index.js.map +1 -1
- package/dist/components/TimePicker/utils/injectOption.d.ts +2 -0
- package/dist/components/TimePicker/utils/injectOption.js +15 -0
- package/dist/components/TimePicker/utils/injectOption.js.map +1 -0
- package/dist/components/Tooltip/Tooltip.css +3 -0
- package/dist/components/Tooltip/Tooltip.css.map +1 -1
- package/dist/components/Tooltip/index.css +3 -0
- package/dist/components/Tooltip/index.css.map +1 -1
- package/dist/components/index.css +28 -12
- package/dist/components/index.css.map +1 -1
- package/dist/global/index.css +1 -1
- package/dist/global/version.css +1 -1
- package/dist/internal/Popper/Popper.css +3 -0
- package/dist/internal/Popper/Popper.css.map +1 -1
- package/dist/internal/Popper/Popper.d.ts +2 -0
- package/dist/internal/Popper/Popper.js +2 -2
- package/dist/internal/Popper/Popper.js.map +1 -1
- package/dist/internal/Popper/index.css +3 -0
- package/dist/internal/Popper/index.css.map +1 -1
- package/dist/internal/index.css +3 -0
- package/dist/internal/index.css.map +1 -1
- package/dist/system-light.css +552 -45
- package/dist/system-light.css.map +1 -1
- package/dist/system-light.min.css +1 -1
- package/dist/system.css +577 -57
- package/dist/system.css.map +1 -1
- package/dist/system.min.css +2 -2
- package/dist/utilities/TimezoneProvider/TimezoneProvider.test.js +5 -5
- package/dist/utilities/TimezoneProvider/TimezoneProvider.test.js.map +1 -1
- package/package.json +7 -7
- package/dist/components/TimePicker/utils/highlightClosestOption.d.ts +0 -2
- package/dist/components/TimePicker/utils/highlightClosestOption.js +0 -13
- package/dist/components/TimePicker/utils/highlightClosestOption.js.map +0 -1
- package/dist/components/TimePicker/utils/withClosestOption.d.ts +0 -2
- package/dist/components/TimePicker/utils/withClosestOption.js +0 -14
- package/dist/components/TimePicker/utils/withClosestOption.js.map +0 -1
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
background-color: #e13212;
|
|
26
26
|
}
|
|
27
27
|
.Tag.Tag--warning {
|
|
28
|
-
background-color: #
|
|
28
|
+
background-color: #7a2f00;
|
|
29
29
|
}
|
|
30
30
|
.Tag.Tag--success {
|
|
31
31
|
background-color: #18a761;
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
color: #bf2a00;
|
|
53
53
|
}
|
|
54
54
|
.Tag.Tag--subtle.Tag--warning {
|
|
55
|
-
background-color: #
|
|
55
|
+
background-color: #ffeccc;
|
|
56
56
|
color: #444445;
|
|
57
57
|
}
|
|
58
58
|
.Tag.Tag--subtle.Tag--success {
|
|
@@ -87,6 +87,7 @@
|
|
|
87
87
|
}
|
|
88
88
|
.Tag .Tag__icon {
|
|
89
89
|
padding-left: 6px;
|
|
90
|
+
line-height: normal;
|
|
90
91
|
margin-right: -0.2em;
|
|
91
92
|
}
|
|
92
93
|
.Tag--compact.Tag .Tag__icon {
|
|
@@ -170,7 +171,7 @@
|
|
|
170
171
|
}
|
|
171
172
|
|
|
172
173
|
.Tag--warning.Tag .Tag__close.Button:hover {
|
|
173
|
-
background-color: #
|
|
174
|
+
background-color: #471b00;
|
|
174
175
|
}
|
|
175
176
|
|
|
176
177
|
.Tag--success.Tag .Tag__close.Button:hover {
|
|
@@ -195,7 +196,7 @@
|
|
|
195
196
|
}
|
|
196
197
|
|
|
197
198
|
.Tag--subtle.Tag--warning.Tag .Tag__close.Button:hover {
|
|
198
|
-
background-color: rgba(
|
|
199
|
+
background-color: rgba(71, 27, 0, 0.2);
|
|
199
200
|
}
|
|
200
201
|
|
|
201
202
|
.Tag--subtle.Tag--success.Tag .Tag__close.Button:hover {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Tag/Tag.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss"],"names":[],"mappings":"AAAA;ACGA;ACFC;EACA;AAEA;EACA;EDCA,eEeiB;EFdjB,OEFa;EFGb;EACA,WEgIa;EF/Hb;EACA;EACA;;AAEA;EACC;;AAGD;EAMC;;AAEA;EAAoB;;AAGrB;EAAkB,kBE+DH;;AF9Df;EAAiB,kBEiCC;;AFhClB;EAAiB,kBE2CA;;AF1CjB;EAAc,kBEqDI;;AFnDlB;EACiB,kBEqBI;;AFnBrB;EACC,kBEcoB;EFbpB,OESkB;EFRlB;;AAGD;EAAiB,WE6FJ;;AF1FZ;EACC;;AAGD;EACC,kBEqCa;EFpCb,OEyCa;;AFtCd;EACC,kBEEgB;EFDhB,OETiB;;AFYlB;EACC,kBESe;EFRf,OEae;;AFVhB;EACC,kBEgBgB;EFfhB,OEoBgB;;AFjBjB;EAEC,kBEnBmB;EFoBnB,OEzBiB;;AF4BlB;EACC;EACA;EACA;;AAEA;EACC;;AAKH;EAEC;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;;AAES;EAAoB;;;AAE7B;EACC;;AAES;EAAoB;;;AAI/B;AACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAES;EAAoB;;;AAE7B;EACC;EACA;EACA;EACA;;AAGD;EAAwB;;AAGzB;EACC;EACA,
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Tag/Tag.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss"],"names":[],"mappings":"AAAA;ACGA;ACFC;EACA;AAEA;EACA;EDCA,eEeiB;EFdjB,OEFa;EFGb;EACA,WEgIa;EF/Hb;EACA;EACA;;AAEA;EACC;;AAGD;EAMC;;AAEA;EAAoB;;AAGrB;EAAkB,kBE+DH;;AF9Df;EAAiB,kBEiCC;;AFhClB;EAAiB,kBE2CA;;AF1CjB;EAAc,kBEqDI;;AFnDlB;EACiB,kBEqBI;;AFnBrB;EACC,kBEcoB;EFbpB,OESkB;EFRlB;;AAGD;EAAiB,WE6FJ;;AF1FZ;EACC;;AAGD;EACC,kBEqCa;EFpCb,OEyCa;;AFtCd;EACC,kBEEgB;EFDhB,OETiB;;AFYlB;EACC,kBESe;EFRf,OEae;;AFVhB;EACC,kBEgBgB;EFfhB,OEoBgB;;AFjBjB;EAEC,kBEnBmB;EFoBnB,OEzBiB;;AF4BlB;EACC;EACA;EACA;;AAEA;EACC;;AAKH;EAEC;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;EACA;;AAES;EAAoB;;;AAE7B;EACC;;AAES;EAAoB;;;AAI/B;AACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAES;EAAoB;;;AAE7B;EACC;EACA;EACA;EACA;;AAGD;EAAwB;;AAGzB;EACC;EACA,OEvIY;EFwIZ;EACA;EACA;;AAGC;EAAiC,OEpDpB;;;AFqDb;EAAgC,OElGf;;;AFmGjB;EAAgC,OExEjB;;;AFyEf;EAA6B,OE7Db;;;AF8DhB;AAAA;AAAA;EAEgC,OEvGf;;;AF0GlB;EAAU;;AAEV;EACC;EACA;;AAES;EACR;EACA;;;AAMA;EAAqB,kBE3ET;;;AF4EZ;EAAoB;;;AACpB;EAAoB,kBE/FN;;;AFgGd;EAAiB,kBEpFF;;;AFsFf;AAAA;EACoB,kBErHF;;;AFsHlB;EAAoB,kBE1HF;;;AF4HlB;EAAiC;;;AACjC;EAAgC;;;AAChC;EAAgC;;;AAChC;EAA6B;;;AAE7B;AAAA;EACgC;;;AAChC;EAAgC;;;AAIlC;EACC;EACA;;AAGC;AAAA;EACoB;;;AAMxB;AAAA;AAAA;EAGC,OEpKkB;;;AFuKnB;AAAA;AAAA;EAGC,OEhKmB","file":"Tag.css"}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
background-color: #e13212;
|
|
26
26
|
}
|
|
27
27
|
.Tag.Tag--warning {
|
|
28
|
-
background-color: #
|
|
28
|
+
background-color: #7a2f00;
|
|
29
29
|
}
|
|
30
30
|
.Tag.Tag--success {
|
|
31
31
|
background-color: #18a761;
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
color: #bf2a00;
|
|
53
53
|
}
|
|
54
54
|
.Tag.Tag--subtle.Tag--warning {
|
|
55
|
-
background-color: #
|
|
55
|
+
background-color: #ffeccc;
|
|
56
56
|
color: #444445;
|
|
57
57
|
}
|
|
58
58
|
.Tag.Tag--subtle.Tag--success {
|
|
@@ -87,6 +87,7 @@
|
|
|
87
87
|
}
|
|
88
88
|
.Tag .Tag__icon {
|
|
89
89
|
padding-left: 6px;
|
|
90
|
+
line-height: normal;
|
|
90
91
|
margin-right: -0.2em;
|
|
91
92
|
}
|
|
92
93
|
.Tag--compact.Tag .Tag__icon {
|
|
@@ -170,7 +171,7 @@
|
|
|
170
171
|
}
|
|
171
172
|
|
|
172
173
|
.Tag--warning.Tag .Tag__close.Button:hover {
|
|
173
|
-
background-color: #
|
|
174
|
+
background-color: #471b00;
|
|
174
175
|
}
|
|
175
176
|
|
|
176
177
|
.Tag--success.Tag .Tag__close.Button:hover {
|
|
@@ -195,7 +196,7 @@
|
|
|
195
196
|
}
|
|
196
197
|
|
|
197
198
|
.Tag--subtle.Tag--warning.Tag .Tag__close.Button:hover {
|
|
198
|
-
background-color: rgba(
|
|
199
|
+
background-color: rgba(71, 27, 0, 0.2);
|
|
199
200
|
}
|
|
200
201
|
|
|
201
202
|
.Tag--subtle.Tag--success.Tag .Tag__close.Button:hover {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Tag/Tag.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss"],"names":[],"mappings":"AAAA;ACGA;ACFC;EACA;AAEA;EACA;EDCA,eEeiB;EFdjB,OEFa;EFGb;EACA,WEgIa;EF/Hb;EACA;EACA;;AAEA;EACC;;AAGD;EAMC;;AAEA;EAAoB;;AAGrB;EAAkB,kBE+DH;;AF9Df;EAAiB,kBEiCC;;AFhClB;EAAiB,kBE2CA;;AF1CjB;EAAc,kBEqDI;;AFnDlB;EACiB,kBEqBI;;AFnBrB;EACC,kBEcoB;EFbpB,OESkB;EFRlB;;AAGD;EAAiB,WE6FJ;;AF1FZ;EACC;;AAGD;EACC,kBEqCa;EFpCb,OEyCa;;AFtCd;EACC,kBEEgB;EFDhB,OETiB;;AFYlB;EACC,kBESe;EFRf,OEae;;AFVhB;EACC,kBEgBgB;EFfhB,OEoBgB;;AFjBjB;EAEC,kBEnBmB;EFoBnB,OEzBiB;;AF4BlB;EACC;EACA;EACA;;AAEA;EACC;;AAKH;EAEC;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;;AAES;EAAoB;;;AAE7B;EACC;;AAES;EAAoB;;;AAI/B;AACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAES;EAAoB;;;AAE7B;EACC;EACA;EACA;EACA;;AAGD;EAAwB;;AAGzB;EACC;EACA,
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Tag/Tag.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss"],"names":[],"mappings":"AAAA;ACGA;ACFC;EACA;AAEA;EACA;EDCA,eEeiB;EFdjB,OEFa;EFGb;EACA,WEgIa;EF/Hb;EACA;EACA;;AAEA;EACC;;AAGD;EAMC;;AAEA;EAAoB;;AAGrB;EAAkB,kBE+DH;;AF9Df;EAAiB,kBEiCC;;AFhClB;EAAiB,kBE2CA;;AF1CjB;EAAc,kBEqDI;;AFnDlB;EACiB,kBEqBI;;AFnBrB;EACC,kBEcoB;EFbpB,OESkB;EFRlB;;AAGD;EAAiB,WE6FJ;;AF1FZ;EACC;;AAGD;EACC,kBEqCa;EFpCb,OEyCa;;AFtCd;EACC,kBEEgB;EFDhB,OETiB;;AFYlB;EACC,kBESe;EFRf,OEae;;AFVhB;EACC,kBEgBgB;EFfhB,OEoBgB;;AFjBjB;EAEC,kBEnBmB;EFoBnB,OEzBiB;;AF4BlB;EACC;EACA;EACA;;AAEA;EACC;;AAKH;EAEC;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;EACA;;AAES;EAAoB;;;AAE7B;EACC;;AAES;EAAoB;;;AAI/B;AACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAES;EAAoB;;;AAE7B;EACC;EACA;EACA;EACA;;AAGD;EAAwB;;AAGzB;EACC;EACA,OEvIY;EFwIZ;EACA;EACA;;AAGC;EAAiC,OEpDpB;;;AFqDb;EAAgC,OElGf;;;AFmGjB;EAAgC,OExEjB;;;AFyEf;EAA6B,OE7Db;;;AF8DhB;AAAA;AAAA;EAEgC,OEvGf;;;AF0GlB;EAAU;;AAEV;EACC;EACA;;AAES;EACR;EACA;;;AAMA;EAAqB,kBE3ET;;;AF4EZ;EAAoB;;;AACpB;EAAoB,kBE/FN;;;AFgGd;EAAiB,kBEpFF;;;AFsFf;AAAA;EACoB,kBErHF;;;AFsHlB;EAAoB,kBE1HF;;;AF4HlB;EAAiC;;;AACjC;EAAgC;;;AAChC;EAAgC;;;AAChC;EAA6B;;;AAE7B;AAAA;EACgC;;;AAChC;EAAgC;;;AAIlC;EACC;EACA;;AAGC;AAAA;EACoB;;;AAMxB;AAAA;AAAA;EAGC,OEpKkB;;;AFuKnB;AAAA;AAAA;EAGC,OEhKmB","file":"index.css"}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
.OptionList__option {
|
|
26
26
|
padding-right: 16px;
|
|
27
27
|
border-radius: 3px;
|
|
28
|
+
line-height: normal;
|
|
28
29
|
display: flex;
|
|
29
30
|
position: relative;
|
|
30
31
|
/* Center vertical alignment of OptionList Checkboxes */
|
|
@@ -32,7 +33,6 @@
|
|
|
32
33
|
.OptionList__option .Checkbox__label {
|
|
33
34
|
font-size: 14px;
|
|
34
35
|
font-weight: 400;
|
|
35
|
-
padding: 8px 0;
|
|
36
36
|
width: 100%;
|
|
37
37
|
}
|
|
38
38
|
.OptionList__option .a-Checkbox {
|
|
@@ -40,12 +40,14 @@
|
|
|
40
40
|
}
|
|
41
41
|
.OptionList__option .Checkbox__html-label {
|
|
42
42
|
align-items: center;
|
|
43
|
+
padding: 8px 0;
|
|
43
44
|
}
|
|
44
45
|
.OptionList__option .Checkbox__box {
|
|
45
46
|
top: 0;
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
.OptionList__header {
|
|
50
|
+
line-height: normal;
|
|
49
51
|
padding-bottom: 8px;
|
|
50
52
|
padding-left: 16px;
|
|
51
53
|
}
|
|
@@ -177,4 +179,8 @@
|
|
|
177
179
|
opacity: 1;
|
|
178
180
|
}
|
|
179
181
|
|
|
182
|
+
.TimePicker__options [role=treeitem] {
|
|
183
|
+
scroll-margin: 8px;
|
|
184
|
+
}
|
|
185
|
+
|
|
180
186
|
/*# sourceMappingURL=TimePicker.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/OptionList/OptionList.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../src/components/TimePicker/TimePicker.scss"],"names":[],"mappings":"AAAA;ACQC;EACC;EACA;EACA;EACA;EACA;EACA;EACA,kBAXwB;;;AAe1B;AClBC;EACA;AAEA;EACA;;;ADkBD;AAEC;EACC;;;AAIF;AACA;EACC,eE+FW;EF9FX,eEZiB;EFajB;EACA;
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/OptionList/OptionList.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../src/components/TimePicker/TimePicker.scss"],"names":[],"mappings":"AAAA;ACQC;EACC;EACA;EACA;EACA;EACA;EACA;EACA,kBAXwB;;;AAe1B;AClBC;EACA;AAEA;EACA;;;ADkBD;AAEC;EACC;;;AAIF;AACA;EACC,eE+FW;EF9FX,eEZiB;EFajB;EACA;EACA;AAeA;;AARA;EACC,WE6FY;EF5FZ,aE+DoB;EF9DpB;;AAGD;EAAc;;AAGd;EACC;EACA;;AAED;EAAiB;;;AAGlB;EACC;EACA,gBEiEW;EFhEX,cEiEW;;;AF7DX;EAKC,kBApEyB;;AAgEzB;EACC,OA/DkB;;AAsElB;EAAY,kBAxEY;;;AA6E3B;AACA;EAAsC,cE8C1B;;;AF1CV;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;AAKH;AACA;EACC;EACA;EACA;EACA,cEsCc;;;AFnCf;AACA;EACC;EACA;EACA;;;AAGD;AAEC;EAAwB;;AACxB;EAAiB;;;AAGlB;AACA;EACC;EACA;EACA;EACA;EACA,cEQW;;;AFLZ;AAAA;AAAA;AAAA;AAKC;AAAA;EAGC;;AAEA;AAAA;EACC;;AAIF;EAAwB;;;AAGzB;AAAA;AAAA;AAAA;AAKC;EAAwB;;;AG5IzB;AFHC;EACA;AAEA;EACA;EEEA;;AAEA;EACC;EACA;;;AAIF;EAAqB;;;AACrB;EAAgD;;;AAEhD;EACC;EACA;;AAEA;EAAoB;;;AAQrB;EAAuC,eDgG3B","file":"TimePicker.css"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { InputProps
|
|
2
|
+
import { InputProps } from '../Input';
|
|
3
|
+
import { PopoverProps } from '../Popover';
|
|
3
4
|
import { TimePickerOptionProps } from './components';
|
|
4
5
|
export interface TimePickerPropsStrict extends Omit<InputProps, 'value' | 'placeholder'> {
|
|
5
6
|
/**
|
|
@@ -11,17 +11,22 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
};
|
|
12
12
|
import React, { useCallback, useEffect, useMemo } from 'react';
|
|
13
13
|
import classnames from 'classnames';
|
|
14
|
-
import {
|
|
14
|
+
import { FocusScope } from '@react-aria/focus';
|
|
15
|
+
import { Input } from '../Input';
|
|
16
|
+
import { Popover } from '../Popover';
|
|
15
17
|
import { keys } from '../../utilities';
|
|
16
|
-
import { toTimeFormat, generateOptions, filterOptionsWithRounding, filterOptions, getClosestOption, getOptionByValue,
|
|
18
|
+
import { toTimeFormat, generateOptions, filterOptionsWithRounding, filterOptions, getClosestOption, getOptionByValue, getClosestIndexes, stringToDate, highlightOption, injectOption, } from './utils';
|
|
17
19
|
import { TimePickerOptionList } from './components';
|
|
18
20
|
export const TimePicker = React.forwardRef((props, ref) => {
|
|
19
|
-
|
|
21
|
+
var _a;
|
|
22
|
+
const { autoRounding = false, className, defaultTimeSignifier = 'AM', disabled, disableDropdown = false, direction = 'br', error, fluid, format = 'hh:mm xm', max = '23:59 PM', min = '12:00 AM', onChange, open, placeholder, step = 30, size, value, width = '100' } = props, rest = __rest(props, ["autoRounding", "className", "defaultTimeSignifier", "disabled", "disableDropdown", "direction", "error", "fluid", "format", "max", "min", "onChange", "open", "placeholder", "step", "size", "value", "width"]);
|
|
20
23
|
const inputRef = React.useRef(null);
|
|
24
|
+
const dropdownRef = React.useRef(null);
|
|
21
25
|
const [opened, setOpened] = React.useState(open && !disableDropdown); // Dropdown is visible
|
|
22
|
-
const [
|
|
26
|
+
const [dropdownFocused, setDropdownFocused] = React.useState(false); // Dropdown is in focus
|
|
23
27
|
const [input, setInput] = React.useState(''); // User's input string
|
|
24
28
|
const [filter, setFilter] = React.useState(''); // Dropdown's options filter string (differs from user's input)
|
|
29
|
+
let isMouseDownOnHint = false; // To be false on each re-render; needed to prevent onBlur event handling on input when clicked inside hint
|
|
25
30
|
const valueToText = useCallback((value) => {
|
|
26
31
|
if (typeof value === 'undefined')
|
|
27
32
|
return '';
|
|
@@ -29,27 +34,28 @@ export const TimePicker = React.forwardRef((props, ref) => {
|
|
|
29
34
|
}, [format]);
|
|
30
35
|
useEffect(() => {
|
|
31
36
|
// Set input's text on each non-null value change
|
|
32
|
-
|
|
33
|
-
|
|
37
|
+
const newValue = valueToText(value);
|
|
38
|
+
if (newValue !== input)
|
|
39
|
+
setInput(valueToText(value));
|
|
40
|
+
}, [value]); // eslint-disable-line
|
|
34
41
|
useEffect(() => {
|
|
35
42
|
// Perform autocomplete on first render to convert "value: string" into "value: Date"
|
|
36
43
|
autoComplete();
|
|
37
|
-
|
|
38
|
-
}, []);
|
|
44
|
+
}, []); // eslint-disable-line
|
|
39
45
|
const handleInputFocus = () => {
|
|
40
|
-
if (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if (
|
|
45
|
-
|
|
46
|
+
if (disabled)
|
|
47
|
+
return;
|
|
48
|
+
setDropdownFocused(false); // Dropdown unfocus
|
|
49
|
+
setFilter(''); // Don't apply filter on focus until typing
|
|
50
|
+
if (!opened && !disableDropdown)
|
|
51
|
+
setOpened(true);
|
|
46
52
|
};
|
|
47
53
|
const handleInputBlur = () => {
|
|
48
|
-
//
|
|
49
|
-
if (!disableDropdown)
|
|
54
|
+
// User is choosing from dropdown'ed options
|
|
55
|
+
if (isMouseDownOnHint || (dropdownFocused && !disableDropdown))
|
|
50
56
|
return;
|
|
51
57
|
// Fake blur detection, case if active element not changed (alt+tab, etc)
|
|
52
|
-
if (document.activeElement === inputRef
|
|
58
|
+
if (document.activeElement === getNode(inputRef))
|
|
53
59
|
return;
|
|
54
60
|
autoComplete();
|
|
55
61
|
};
|
|
@@ -57,7 +63,7 @@ export const TimePicker = React.forwardRef((props, ref) => {
|
|
|
57
63
|
const optionsArgs = [min, max, step, format];
|
|
58
64
|
const options = useCallback(generateOptions, optionsArgs)(...optionsArgs);
|
|
59
65
|
// Getting most expected option based on user's input
|
|
60
|
-
const
|
|
66
|
+
const getClosestOptionArgs = [
|
|
61
67
|
options,
|
|
62
68
|
input,
|
|
63
69
|
defaultTimeSignifier,
|
|
@@ -66,82 +72,83 @@ export const TimePicker = React.forwardRef((props, ref) => {
|
|
|
66
72
|
max,
|
|
67
73
|
format,
|
|
68
74
|
];
|
|
69
|
-
const closestOption = useCallback(getClosestOption,
|
|
75
|
+
const closestOption = useCallback(getClosestOption, getClosestOptionArgs)(...getClosestOptionArgs);
|
|
70
76
|
// Filtered list of options with an extra one to highligh (in case autoRounding is disabled)
|
|
71
77
|
const dropdownOptions = useMemo(() => {
|
|
72
|
-
if (input === ''
|
|
78
|
+
if (input === '')
|
|
73
79
|
return options;
|
|
80
|
+
if (filter === '')
|
|
81
|
+
// Value is set, but user not yet modified input's text string
|
|
82
|
+
return highlightOption(injectOption(options, closestOption), // Inject currently selected option in case it not yet exist
|
|
83
|
+
closestOption, true // Highlight selected value
|
|
84
|
+
);
|
|
85
|
+
// Filtering started, due to user's input manipulations
|
|
74
86
|
let filtered;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
// Insert closest option in case it was filtered out
|
|
82
|
-
filtered = withClosestOption(filtered, closestOption);
|
|
83
|
-
filtered = highlightClosestOption(filtered, closestOption);
|
|
87
|
+
filtered = autoRounding
|
|
88
|
+
? filterOptionsWithRounding(options, filter)
|
|
89
|
+
: filterOptions(options, filter);
|
|
90
|
+
filtered = injectOption(filtered, closestOption); // Inject closest option in case it was filtered out
|
|
91
|
+
filtered = highlightOption(filtered, closestOption); // Highlight closest option
|
|
84
92
|
return filtered;
|
|
85
93
|
}, [input, filter, options, autoRounding, closestOption]);
|
|
86
94
|
// Runs on each input blur event
|
|
87
95
|
const autoComplete = () => {
|
|
88
96
|
var _a, _b, _c;
|
|
89
|
-
|
|
90
|
-
if (focused)
|
|
97
|
+
if (input === '')
|
|
91
98
|
return;
|
|
92
99
|
if (closestOption) {
|
|
93
100
|
// Accept user input
|
|
94
101
|
if (((_b = (_a = closestOption.value) === null || _a === void 0 ? void 0 : _a.getTime) === null || _b === void 0 ? void 0 : _b.call(_a)) !== ((_c = value === null || value === void 0 ? void 0 : value.getTime) === null || _c === void 0 ? void 0 : _c.call(value)))
|
|
95
102
|
onChange(closestOption.value);
|
|
96
|
-
if (input !== closestOption.text)
|
|
97
|
-
setInput(closestOption.text);
|
|
98
|
-
if (opened)
|
|
99
|
-
setOpened(false);
|
|
100
103
|
}
|
|
101
|
-
else
|
|
102
|
-
// Reject user input
|
|
104
|
+
else {
|
|
105
|
+
// Reject user input, if input !== ''
|
|
103
106
|
onChange(null);
|
|
104
107
|
setInput('');
|
|
105
108
|
setFilter('');
|
|
106
|
-
if (opened)
|
|
107
|
-
setOpened(false);
|
|
108
109
|
}
|
|
110
|
+
if (opened)
|
|
111
|
+
setOpened(false);
|
|
109
112
|
};
|
|
110
113
|
// Handling with user's typing
|
|
111
114
|
const handleInputChange = (e, data) => {
|
|
112
115
|
setInput(data.value.toUpperCase());
|
|
113
116
|
setFilter(data.value.toUpperCase());
|
|
114
|
-
if (!opened)
|
|
115
|
-
setOpened(
|
|
117
|
+
if (!opened && !disableDropdown)
|
|
118
|
+
setOpened(true);
|
|
116
119
|
};
|
|
117
120
|
const handleClickOutside = () => {
|
|
118
|
-
if (opened)
|
|
119
|
-
|
|
121
|
+
if (!opened || disabled || disableDropdown)
|
|
122
|
+
return;
|
|
123
|
+
setOpened(false);
|
|
120
124
|
autoComplete();
|
|
121
125
|
};
|
|
122
126
|
const handleIconClick = () => {
|
|
123
|
-
|
|
124
|
-
|
|
127
|
+
if (disabled)
|
|
128
|
+
return;
|
|
129
|
+
focusNode(inputRef);
|
|
130
|
+
if (!opened && !disableDropdown)
|
|
131
|
+
setOpened(true);
|
|
125
132
|
};
|
|
126
|
-
const
|
|
133
|
+
const handleInputKeyDown = (e) => {
|
|
127
134
|
const { key } = e;
|
|
128
|
-
// Set focus back from dropdown to the input field
|
|
129
|
-
if (key === keys.esc) {
|
|
130
|
-
e.preventDefault();
|
|
131
|
-
setOpened(false);
|
|
132
|
-
inputRef.current.focus();
|
|
133
|
-
}
|
|
134
135
|
// Autocomplete on focus lost (on tab or shift+tab)
|
|
135
|
-
if (key === keys.tab)
|
|
136
|
+
if (key === keys.tab) {
|
|
136
137
|
autoComplete();
|
|
138
|
+
if (opened)
|
|
139
|
+
setOpened(false);
|
|
140
|
+
}
|
|
137
141
|
// Explicit autocomplete (on enter)
|
|
138
142
|
if (key === keys.enter)
|
|
139
143
|
autoComplete();
|
|
140
144
|
// Move focus to the dropdown
|
|
141
145
|
if (key === keys.down || key === keys.up) {
|
|
142
|
-
if (
|
|
146
|
+
if (!disableDropdown) {
|
|
143
147
|
e.preventDefault();
|
|
144
|
-
|
|
148
|
+
if (!opened)
|
|
149
|
+
setOpened(true);
|
|
150
|
+
if (!dropdownFocused)
|
|
151
|
+
setDropdownFocused(true);
|
|
145
152
|
}
|
|
146
153
|
}
|
|
147
154
|
};
|
|
@@ -149,16 +156,25 @@ export const TimePicker = React.forwardRef((props, ref) => {
|
|
|
149
156
|
const focusValue = closestOption
|
|
150
157
|
? getOptionByValue(dropdownOptions, closestOption.value)
|
|
151
158
|
: dropdownOptions[0];
|
|
152
|
-
return
|
|
159
|
+
return dropdownFocused ? focusValue : null;
|
|
153
160
|
};
|
|
154
161
|
const handleHintOnChange = (value) => {
|
|
155
|
-
inputRef.current.focus(); // Move focus back to the field
|
|
156
162
|
onChange(value);
|
|
157
163
|
setInput(valueToText(value));
|
|
158
164
|
setFilter('');
|
|
165
|
+
focusNode(inputRef); // Move focus back to the field
|
|
159
166
|
if (opened)
|
|
160
167
|
setOpened(false);
|
|
161
168
|
};
|
|
169
|
+
// Needed to prevent onBlur event handling on input when clicked inside hint
|
|
170
|
+
const handleMouseDownHint = () => (isMouseDownOnHint = true);
|
|
171
|
+
useEffect(() => {
|
|
172
|
+
// Scrolls closest value into view
|
|
173
|
+
if (!opened || input === '' || filter !== '')
|
|
174
|
+
return;
|
|
175
|
+
const timer = setTimeout(() => scrollOptionIntoView(input, options, dropdownRef), 10);
|
|
176
|
+
return () => clearTimeout(timer);
|
|
177
|
+
}, [opened, input, filter]); // eslint-disable-line
|
|
162
178
|
const TimePickerClasses = classnames(className, 'TimePicker', {
|
|
163
179
|
'TimePicker--disabled': disabled,
|
|
164
180
|
[`TimePicker--${size}`]: size,
|
|
@@ -178,25 +194,53 @@ export const TimePicker = React.forwardRef((props, ref) => {
|
|
|
178
194
|
};
|
|
179
195
|
const dropdownProps = {
|
|
180
196
|
className: classnames('TimePicker__options', {
|
|
181
|
-
'TimePicker__options-focused':
|
|
197
|
+
'TimePicker__options-focused': dropdownFocused,
|
|
182
198
|
}),
|
|
183
199
|
focusValue: dropdownFocusValue(),
|
|
184
200
|
options: dropdownOptions,
|
|
185
201
|
onChange: handleHintOnChange,
|
|
186
|
-
|
|
187
|
-
|
|
202
|
+
inputRef: ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.inputRef) || inputRef,
|
|
203
|
+
dropdownRef,
|
|
188
204
|
};
|
|
189
|
-
const Field = (React.createElement(Input, Object.assign({}, inputProps, { className: "TimePicker__input",
|
|
205
|
+
const Field = (React.createElement(Input, Object.assign({}, inputProps, { className: "TimePicker__input", "data-anvil-component": "TimePicker", icon: {
|
|
190
206
|
className: 'TimePicker__icon',
|
|
191
207
|
el: 'span',
|
|
192
208
|
name: 'access_time',
|
|
193
209
|
onClick: handleIconClick,
|
|
194
|
-
}, iconPosition: "left",
|
|
195
|
-
return (React.createElement(Popover, Object.assign({ autoFlipVertically: true, className: classnames('TimePicker__dropdown', 'a-Select'), direction: direction, onClickOutside: handleClickOutside,
|
|
210
|
+
}, iconPosition: "left", onKeyDown: handleInputKeyDown, ref: inputRef })));
|
|
211
|
+
return (React.createElement(Popover, Object.assign({ autoFlipVertically: true, className: classnames('TimePicker__dropdown', 'a-Select'), direction: direction, onClickOutside: handleClickOutside, open: !disabled &&
|
|
196
212
|
!disableDropdown &&
|
|
197
213
|
opened &&
|
|
198
|
-
dropdownOptions.length !== 0, padding: null, portal: true, ref: ref, scrollHeight: props.scrollHeight || '192px', trigger: Field, width: width, wrapperClassName: TimePickerClasses }, rest),
|
|
199
|
-
React.createElement(
|
|
214
|
+
dropdownOptions.length !== 0, padding: null, portal: true, ref: ref, scrollHeight: props.scrollHeight || '192px', trigger: Field, width: width, wrapperClassName: TimePickerClasses, onMouseDown: handleMouseDownHint }, rest),
|
|
215
|
+
React.createElement(FocusScope, null,
|
|
216
|
+
React.createElement(TimePickerOptionList, Object.assign({}, dropdownProps)))));
|
|
200
217
|
});
|
|
201
218
|
TimePicker.displayName = 'TimePicker';
|
|
219
|
+
const getNode = (ref) => {
|
|
220
|
+
var _a, _b;
|
|
221
|
+
if ((_b = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.inputRef) === null || _b === void 0 ? void 0 : _b.current) {
|
|
222
|
+
return ref.current.inputRef.current; // Input component
|
|
223
|
+
}
|
|
224
|
+
return ref.current; // Something else
|
|
225
|
+
};
|
|
226
|
+
const focusNode = (ref) => getNode(ref).focus();
|
|
227
|
+
const scrollOptionIntoView = (userInput, options, dropdownRef) => {
|
|
228
|
+
var _a;
|
|
229
|
+
if (!(dropdownRef === null || dropdownRef === void 0 ? void 0 : dropdownRef.current))
|
|
230
|
+
return;
|
|
231
|
+
const optionIndex = getClosestIndexes(options, stringToDate(userInput));
|
|
232
|
+
if (!optionIndex)
|
|
233
|
+
return;
|
|
234
|
+
const optionEl = (_a = dropdownRef === null || dropdownRef === void 0 ? void 0 : dropdownRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(`[role=treeitem]:nth-child(${optionIndex.sort()[0] + 1})`);
|
|
235
|
+
try {
|
|
236
|
+
// Chrome, Safari, Edge
|
|
237
|
+
optionEl === null || optionEl === void 0 ? void 0 : optionEl.scrollIntoViewIfNeeded(); // Scrolls element into center of nearest scroll
|
|
238
|
+
}
|
|
239
|
+
catch (_b) {
|
|
240
|
+
// Firefox
|
|
241
|
+
optionEl === null || optionEl === void 0 ? void 0 : optionEl.scrollIntoView({
|
|
242
|
+
block: 'nearest', // Scroll over nearest block (dropdown) only, prevent body scrolling
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
};
|
|
202
246
|
//# sourceMappingURL=TimePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimePicker.js","sourceRoot":"","sources":["../../../src/components/TimePicker/TimePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAM,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,UAAU,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"TimePicker.js","sourceRoot":"","sources":["../../../src/components/TimePicker/TimePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export interface TimePickerOptionProps {
|
|
3
|
-
disabled?: boolean;
|
|
4
3
|
text: string;
|
|
5
4
|
value: Date;
|
|
5
|
+
className?: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
selected?: boolean;
|
|
6
8
|
}
|
|
7
9
|
export interface TimePickerOptionListProps {
|
|
8
10
|
className?: string;
|
|
9
11
|
options: TimePickerOptionProps[];
|
|
10
12
|
onChange: (value: TimePickerOptionProps['value']) => void;
|
|
11
13
|
focusValue?: TimePickerOptionProps;
|
|
14
|
+
inputRef?: React.RefObject<HTMLElement>;
|
|
15
|
+
dropdownRef?: React.RefObject<HTMLDivElement>;
|
|
12
16
|
}
|
|
13
17
|
export declare const TimePickerOptionList: React.NamedExoticComponent<TimePickerOptionListProps>;
|
|
@@ -1,40 +1,50 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
1
12
|
import React from 'react';
|
|
2
13
|
import classnames from 'classnames';
|
|
14
|
+
import { useFocusManager } from '@react-aria/focus';
|
|
3
15
|
import { OptionList } from '../..';
|
|
4
16
|
import { keys } from '../../../utilities';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
17
|
+
const TimeOptions = (_a) => {
|
|
18
|
+
var { className, options, onChange, children, focusValue, inputRef, dropdownRef } = _a, rest = __rest(_a, ["className", "options", "onChange", "children", "focusValue", "inputRef", "dropdownRef"]);
|
|
19
|
+
const focusManager = useFocusManager();
|
|
20
|
+
const handleOptionKeyDown = (e, option) => {
|
|
21
|
+
var _a;
|
|
8
22
|
const { key } = e;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
23
|
+
switch (key) {
|
|
24
|
+
case keys.right:
|
|
25
|
+
case keys.down:
|
|
26
|
+
e.preventDefault();
|
|
27
|
+
focusManager.focusNext({ wrap: true, tabbable: true });
|
|
28
|
+
return;
|
|
29
|
+
case keys.left:
|
|
30
|
+
case keys.up:
|
|
31
|
+
e.preventDefault();
|
|
32
|
+
focusManager.focusPrevious({ wrap: true, tabbable: true });
|
|
33
|
+
return;
|
|
34
|
+
case keys.space:
|
|
35
|
+
case keys.enter:
|
|
36
|
+
e.preventDefault();
|
|
37
|
+
onChange(option.value);
|
|
38
|
+
return;
|
|
12
39
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
nextOption.focus();
|
|
20
|
-
}
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
if (key === keys.up) {
|
|
24
|
-
const previousOption = getPreviousOption(e.currentTarget);
|
|
25
|
-
if (!previousOption) {
|
|
26
|
-
focusLastOption(e.currentTarget);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
previousOption.focus();
|
|
30
|
-
}
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
if (e.key === keys.enter) {
|
|
34
|
-
onChange(option.value);
|
|
40
|
+
// Back to input on shift+tab or esc
|
|
41
|
+
if (key === keys.esc || (e.shiftKey && key === keys.tab)) {
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
35
44
|
}
|
|
36
45
|
};
|
|
37
|
-
return (options.length > 0 && (React.createElement(
|
|
46
|
+
return (options.length > 0 && (React.createElement("div", { ref: dropdownRef },
|
|
47
|
+
React.createElement(OptionList, Object.assign({ className: classnames('m-1', className), focusValue: focusValue, options: options, onChange: onChange, optionOnKeyDown: handleOptionKeyDown }, rest)))));
|
|
38
48
|
};
|
|
39
|
-
export const TimePickerOptionList = React.memo(
|
|
49
|
+
export const TimePickerOptionList = React.memo(TimeOptions);
|
|
40
50
|
//# sourceMappingURL=TimePickerOptionList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimePickerOptionList.js","sourceRoot":"","sources":["../../../../src/components/TimePicker/components/TimePickerOptionList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,UAAU,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"TimePickerOptionList.js","sourceRoot":"","sources":["../../../../src/components/TimePicker/components/TimePickerOptionList.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAmB1C,MAAM,WAAW,GAAkC,CAAC,EASnD,EAAE,EAAE;QAT+C,EACnD,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,WAAW,OAEX,EADG,IAAI,cAR4C,yFASnD,CADO;IAEP,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IAEvC,MAAM,mBAAmB,GAAG,CAC3B,CAAmC,EACnC,MAA6B,EAC5B,EAAE;;QACH,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAElB,QAAQ,GAAG,EAAE;YACZ,KAAK,IAAI,CAAC,KAAK,CAAC;YAChB,KAAK,IAAI,CAAC,IAAI;gBACb,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvD,OAAO;YACR,KAAK,IAAI,CAAC,IAAI,CAAC;YACf,KAAK,IAAI,CAAC,EAAE;gBACX,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,YAAY,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3D,OAAO;YACR,KAAK,IAAI,CAAC,KAAK,CAAC;YAChB,KAAK,IAAI,CAAC,KAAK;gBACd,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvB,OAAO;SACR;QAED,oCAAoC;QACpC,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE;YACzD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;SAC1B;IACF,CAAC,CAAC;IAEF,OAAO,CACN,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,6BAAK,GAAG,EAAE,WAAW;QACpB,oBAAC,UAAU,kBACV,SAAS,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,EACvC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,mBAAmB,IAChC,IAAI,EACP,CACG,CACN,CACD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC"}
|