@elliemae/ds-time-picker 2.3.0-alpha.8 → 2.3.0-next.2

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 (64) hide show
  1. package/cjs/DSTimePicker.js +121 -0
  2. package/cjs/DSTimePickerMenu.js +35 -0
  3. package/cjs/PickerPanel.js +402 -0
  4. package/cjs/TimePickerDropdown.js +53 -0
  5. package/cjs/TimePickerImpl.js +175 -0
  6. package/cjs/TimePickerMenu.js +312 -0
  7. package/cjs/index.js +17 -0
  8. package/cjs/moveElementOnScroll.js +75 -0
  9. package/cjs/utils.js +38 -0
  10. package/esm/DSTimePicker.js +111 -0
  11. package/esm/DSTimePickerMenu.js +24 -0
  12. package/esm/PickerPanel.js +392 -0
  13. package/esm/TimePickerDropdown.js +45 -0
  14. package/esm/TimePickerImpl.js +165 -0
  15. package/esm/TimePickerMenu.js +301 -0
  16. package/esm/index.js +4 -0
  17. package/esm/moveElementOnScroll.js +70 -0
  18. package/esm/utils.js +31 -0
  19. package/package.json +38 -40
  20. package/types/DSTimePicker.d.ts +162 -0
  21. package/types/DSTimePickerMenu.d.ts +4 -0
  22. package/types/PickerPanel.d.ts +24 -0
  23. package/types/TimePickerDropdown.d.ts +25 -0
  24. package/types/TimePickerImpl.d.ts +35 -0
  25. package/types/TimePickerMenu.d.ts +19 -0
  26. package/types/index.d.ts +5 -0
  27. package/types/moveElementOnScroll.d.ts +13 -0
  28. package/types/utils.d.ts +8 -0
  29. package/dist/cjs/DSTimePicker.js +0 -106
  30. package/dist/cjs/DSTimePicker.js.map +0 -7
  31. package/dist/cjs/DSTimePickerMenu.js +0 -48
  32. package/dist/cjs/DSTimePickerMenu.js.map +0 -7
  33. package/dist/cjs/PickerPanel.js +0 -299
  34. package/dist/cjs/PickerPanel.js.map +0 -7
  35. package/dist/cjs/TimePickerDropdown.js +0 -74
  36. package/dist/cjs/TimePickerDropdown.js.map +0 -7
  37. package/dist/cjs/TimePickerImpl.js +0 -183
  38. package/dist/cjs/TimePickerImpl.js.map +0 -7
  39. package/dist/cjs/TimePickerMenu.js +0 -241
  40. package/dist/cjs/TimePickerMenu.js.map +0 -7
  41. package/dist/cjs/index.js +0 -40
  42. package/dist/cjs/index.js.map +0 -7
  43. package/dist/cjs/moveElementOnScroll.js +0 -93
  44. package/dist/cjs/moveElementOnScroll.js.map +0 -7
  45. package/dist/cjs/utils.js +0 -71
  46. package/dist/cjs/utils.js.map +0 -7
  47. package/dist/esm/DSTimePicker.js +0 -77
  48. package/dist/esm/DSTimePicker.js.map +0 -7
  49. package/dist/esm/DSTimePickerMenu.js +0 -19
  50. package/dist/esm/DSTimePickerMenu.js.map +0 -7
  51. package/dist/esm/PickerPanel.js +0 -270
  52. package/dist/esm/PickerPanel.js.map +0 -7
  53. package/dist/esm/TimePickerDropdown.js +0 -45
  54. package/dist/esm/TimePickerDropdown.js.map +0 -7
  55. package/dist/esm/TimePickerImpl.js +0 -154
  56. package/dist/esm/TimePickerImpl.js.map +0 -7
  57. package/dist/esm/TimePickerMenu.js +0 -212
  58. package/dist/esm/TimePickerMenu.js.map +0 -7
  59. package/dist/esm/index.js +0 -11
  60. package/dist/esm/index.js.map +0 -7
  61. package/dist/esm/moveElementOnScroll.js +0 -64
  62. package/dist/esm/moveElementOnScroll.js.map +0 -7
  63. package/dist/esm/utils.js +0 -42
  64. package/dist/esm/utils.js.map +0 -7
@@ -1,212 +0,0 @@
1
- import * as React from "react";
2
- import React2, { Component } from "react";
3
- import PropTypes from "prop-types";
4
- import { aggregatedClasses } from "@elliemae/ds-classnames";
5
- import moment from "moment";
6
- import { range, addLeadingZeros } from "@elliemae/ds-utilities";
7
- import { isAM } from "./utils";
8
- import { PickerPanel } from "./PickerPanel";
9
- const blockName = "time-picker-menu";
10
- const TimePickerContainer = aggregatedClasses("div")(blockName);
11
- const TimePickerHeader = aggregatedClasses("div")(blockName, "header");
12
- const TimePickerPanelContainer = aggregatedClasses("div")(blockName, "panel-container");
13
- const generateOption = (format) => (option) => ({
14
- value: option,
15
- label: typeof format === "function" ? format(option) : option
16
- });
17
- class TimePickerMenu extends Component {
18
- constructor(props) {
19
- super(props);
20
- this.renderHeader = () => {
21
- const { time } = this.state;
22
- return /* @__PURE__ */ React2.createElement(TimePickerHeader, null, time.format("hh:mma"));
23
- };
24
- this.state = {
25
- time: moment(props.time || "", props.format) || moment()
26
- };
27
- }
28
- static getDerivedStateFromProps(props, state) {
29
- if (props.time) {
30
- return { ...state, time: moment(props.time) };
31
- }
32
- return { ...state, time: void 0 };
33
- }
34
- componentDidMount() {
35
- const { time } = this.state;
36
- this.setState({ time });
37
- }
38
- handleMinuteChange(value) {
39
- const { time } = this.state;
40
- this.updateTime(time.minute(value));
41
- }
42
- handleHoursChange(value) {
43
- const { time } = this.state;
44
- const { use12Hours } = this.props;
45
- let nextHour = value;
46
- if (use12Hours) {
47
- if (!isAM(time)) {
48
- nextHour = value % 12 + 12;
49
- }
50
- }
51
- this.updateTime(time.hour(nextHour));
52
- }
53
- handleSecondsChange(value) {
54
- const { time } = this.state;
55
- this.updateTime(time.second(value));
56
- }
57
- handleAMPMChange(value) {
58
- const { time } = this.state;
59
- const hour = time.hour();
60
- const nextHour = value.toLowerCase() === "am" ? hour % 12 : hour % 12 + 12;
61
- this.updateTime(time.hour(nextHour));
62
- }
63
- updateTime(time) {
64
- const { onTimeChange } = this.props;
65
- onTimeChange(time);
66
- this.setState({ time });
67
- }
68
- renderHoursPanel() {
69
- const { time } = this.state;
70
- const { showHours, use12Hours, format, hasHeader, disabledTimes } = this.props;
71
- if (!showHours)
72
- return null;
73
- const hour = time.hour();
74
- let selectedHour = use12Hours ? hour % 12 || 12 : hour;
75
- if (disabledTimes) {
76
- const { from, to } = disabledTimes;
77
- if (hour > from.hour && hour < to.hour) {
78
- if (to.hour < 24) {
79
- const toFormatted = to.hour % 12 || 12;
80
- if (selectedHour !== toFormatted)
81
- this.handleHoursChange(toFormatted);
82
- selectedHour = toFormatted;
83
- } else if (from) {
84
- selectedHour = (from.hour - 1) % 12 || 12;
85
- }
86
- }
87
- }
88
- const meridiem = hour >= 12 ? "PM" : "AM";
89
- const withLeadingZeros = format.indexOf("hh") > -1;
90
- const rangeHours = use12Hours ? range(1, 13) : range(24);
91
- const hoursOptions = rangeHours.map(generateOption(withLeadingZeros && addLeadingZeros(2)));
92
- return /* @__PURE__ */ React2.createElement(PickerPanel, {
93
- type: "hour",
94
- time,
95
- meridiem,
96
- hasHeader,
97
- header: "H",
98
- onChange: this.handleHoursChange,
99
- options: hoursOptions,
100
- selected: selectedHour,
101
- disabledTimes
102
- });
103
- }
104
- renderMinutesPanel() {
105
- const { time } = this.state;
106
- const { showMinutes, format, hasHeader, disabledTimes, minutesInterval } = this.props;
107
- if (!showMinutes)
108
- return null;
109
- const withLeadingZeros = format.indexOf("mm") > -1;
110
- const rangeMinutes = range(0, 60, minutesInterval).map(generateOption(withLeadingZeros && addLeadingZeros(2)));
111
- let selectedMinute = time.minute();
112
- const selectedHour = time.hour();
113
- if (disabledTimes) {
114
- const { from, to } = disabledTimes;
115
- if (selectedHour <= to.hour && selectedHour > from.hour) {
116
- if (to) {
117
- if (selectedMinute < to.min)
118
- this.handleMinuteChange(to.min);
119
- } else if (from) {
120
- if (selectedMinute > from.min)
121
- this.handleMinuteChange(from.min - 1);
122
- }
123
- } else {
124
- selectedMinute = time.minute();
125
- }
126
- }
127
- return /* @__PURE__ */ React2.createElement(PickerPanel, {
128
- type: "minutes",
129
- time,
130
- hasHeader,
131
- header: "M",
132
- onChange: this.handleMinuteChange,
133
- options: rangeMinutes,
134
- selected: selectedMinute,
135
- disabledTimes
136
- });
137
- }
138
- renderSecondsPanel() {
139
- const { time } = this.state;
140
- const { showSeconds, format, hasHeader } = this.props;
141
- if (!showSeconds)
142
- return null;
143
- const withLeadingZeros = format.indexOf("ss") > -1;
144
- const rangeSeconds = range(60).map(generateOption(withLeadingZeros && addLeadingZeros(2)));
145
- return /* @__PURE__ */ React2.createElement(PickerPanel, {
146
- type: "seconds",
147
- hasHeader,
148
- header: "S",
149
- onChange: this.handleSecondsChange,
150
- options: rangeSeconds,
151
- selected: time.second()
152
- });
153
- }
154
- renderAMPMPanel() {
155
- const { time } = this.state;
156
- const { use12Hours, hasHeader, disabledTimes } = this.props;
157
- if (!use12Hours)
158
- return null;
159
- let meridiemSelected = !isAM(time) ? "pm" : "am";
160
- if (disabledTimes && disabledTimes.to && meridiemSelected === "am") {
161
- meridiemSelected = disabledTimes.to.hour >= 12 ? "pm" : "am";
162
- if (meridiemSelected === "am" && time.hour() > 12) {
163
- this.handleAMPMChange("am");
164
- }
165
- if (meridiemSelected === "pm" && time.hour() <= 12) {
166
- this.handleAMPMChange("pm");
167
- }
168
- }
169
- return /* @__PURE__ */ React2.createElement(PickerPanel, {
170
- type: "meridiem",
171
- hasHeader,
172
- header: "",
173
- onChange: this.handleAMPMChange,
174
- options: [
175
- { value: "am", label: "am" },
176
- { value: "pm", label: "pm" }
177
- ],
178
- selected: meridiemSelected,
179
- disabledTimes
180
- });
181
- }
182
- render() {
183
- const { hasHeaderDisplay } = this.props;
184
- return /* @__PURE__ */ React2.createElement(TimePickerContainer, null, hasHeaderDisplay && this.renderHeader(), /* @__PURE__ */ React2.createElement(TimePickerPanelContainer, null, this.renderHoursPanel(), this.renderMinutesPanel(), this.renderSecondsPanel(), this.renderAMPMPanel()));
185
- }
186
- }
187
- TimePickerMenu.defaultProps = {
188
- time: moment(),
189
- hasHeader: false,
190
- use12Hours: true,
191
- showSeconds: true,
192
- showMinutes: true,
193
- showHours: true,
194
- disabledTimes: void 0,
195
- onTimeChange: () => null
196
- };
197
- TimePickerMenu.propTypes = {
198
- time: PropTypes.instanceOf(moment),
199
- hasHeader: PropTypes.bool,
200
- use12Hours: PropTypes.bool,
201
- showSeconds: PropTypes.bool,
202
- showMinutes: PropTypes.bool,
203
- showHours: PropTypes.bool,
204
- onTimeChange: PropTypes.func,
205
- disabledTimes: PropTypes.object
206
- };
207
- var TimePickerMenu_default = TimePickerMenu;
208
- export {
209
- TimePickerMenu,
210
- TimePickerMenu_default as default
211
- };
212
- //# sourceMappingURL=TimePickerMenu.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/TimePickerMenu.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\n/* eslint-disable max-lines */\n/* eslint-disable react/prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport moment from 'moment';\nimport { range, addLeadingZeros } from '@elliemae/ds-utilities';\nimport { isAM } from './utils';\nimport { PickerPanel } from './PickerPanel';\n\nconst blockName = 'time-picker-menu';\n\nconst TimePickerContainer = aggregatedClasses('div')(blockName);\nconst TimePickerHeader = aggregatedClasses('div')(blockName, 'header');\nconst TimePickerPanelContainer = aggregatedClasses('div')(blockName, 'panel-container');\n\nconst generateOption = (format) => (option) => ({\n value: option,\n label: typeof format === 'function' ? format(option) : option,\n});\n\nclass TimePickerMenu extends Component {\n constructor(props) {\n super(props);\n this.state = {\n time: moment(props.time || '', props.format) || moment(),\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.time) {\n return { ...state, time: moment(props.time) };\n }\n return { ...state, time: undefined };\n }\n\n componentDidMount() {\n const { time } = this.state;\n this.setState({ time });\n }\n\n handleMinuteChange(value) {\n const { time } = this.state;\n this.updateTime(time.minute(value));\n }\n\n handleHoursChange(value) {\n const { time } = this.state;\n const { use12Hours } = this.props;\n let nextHour = value;\n if (use12Hours) {\n if (!isAM(time)) {\n nextHour = (value % 12) + 12;\n }\n }\n this.updateTime(time.hour(nextHour));\n }\n\n handleSecondsChange(value) {\n const { time } = this.state;\n this.updateTime(time.second(value));\n }\n\n handleAMPMChange(value) {\n const { time } = this.state;\n const hour = time.hour();\n const nextHour = value.toLowerCase() === 'am' ? hour % 12 : (hour % 12) + 12;\n this.updateTime(time.hour(nextHour));\n }\n\n updateTime(time) {\n const { onTimeChange } = this.props;\n onTimeChange(time);\n this.setState({ time });\n }\n\n renderHoursPanel() {\n const { time } = this.state;\n const { showHours, use12Hours, format, hasHeader, disabledTimes } = this.props;\n if (!showHours) return null;\n\n const hour = time.hour(); // in 24 format\n let selectedHour = use12Hours ? hour % 12 || 12 : hour;\n if (disabledTimes) {\n const { from, to } = disabledTimes;\n if (hour > from.hour && hour < to.hour) {\n if (to.hour < 24) {\n const toFormatted = to.hour % 12 || 12;\n if (selectedHour !== toFormatted) this.handleHoursChange(toFormatted);\n selectedHour = toFormatted;\n } else if (from) {\n selectedHour = (from.hour - 1) % 12 || 12;\n }\n }\n }\n\n const meridiem = hour >= 12 ? 'PM' : 'AM';\n const withLeadingZeros = format.indexOf('hh') > -1;\n const rangeHours = use12Hours ? range(1, 13) : range(24);\n const hoursOptions = rangeHours.map(generateOption(withLeadingZeros && addLeadingZeros(2)));\n return (\n <PickerPanel\n type=\"hour\"\n time={time}\n meridiem={meridiem}\n hasHeader={hasHeader}\n header=\"H\"\n onChange={this.handleHoursChange}\n options={hoursOptions}\n selected={selectedHour}\n disabledTimes={disabledTimes}\n />\n );\n }\n\n renderMinutesPanel() {\n const { time } = this.state;\n const { showMinutes, format, hasHeader, disabledTimes, minutesInterval } = this.props;\n if (!showMinutes) return null;\n const withLeadingZeros = format.indexOf('mm') > -1;\n const rangeMinutes = range(0, 60, minutesInterval).map(generateOption(withLeadingZeros && addLeadingZeros(2)));\n\n let selectedMinute = time.minute();\n const selectedHour = time.hour();\n\n if (disabledTimes) {\n const { from, to } = disabledTimes;\n if (selectedHour <= to.hour && selectedHour > from.hour) {\n if (to) {\n if (selectedMinute < to.min) this.handleMinuteChange(to.min);\n } else if (from) {\n if (selectedMinute > from.min) this.handleMinuteChange(from.min - 1);\n }\n } else {\n selectedMinute = time.minute();\n }\n }\n\n return (\n <PickerPanel\n type=\"minutes\"\n time={time}\n hasHeader={hasHeader}\n header=\"M\"\n onChange={this.handleMinuteChange}\n options={rangeMinutes}\n selected={selectedMinute}\n disabledTimes={disabledTimes}\n />\n );\n }\n\n renderSecondsPanel() {\n const { time } = this.state;\n const { showSeconds, format, hasHeader } = this.props;\n if (!showSeconds) return null;\n const withLeadingZeros = format.indexOf('ss') > -1;\n const rangeSeconds = range(60).map(generateOption(withLeadingZeros && addLeadingZeros(2)));\n return (\n <PickerPanel\n type=\"seconds\"\n hasHeader={hasHeader}\n header=\"S\"\n onChange={this.handleSecondsChange}\n options={rangeSeconds}\n selected={time.second()}\n />\n );\n }\n\n renderAMPMPanel() {\n const { time } = this.state;\n const { use12Hours, hasHeader, disabledTimes } = this.props;\n if (!use12Hours) return null;\n\n let meridiemSelected = !isAM(time) ? 'pm' : 'am';\n if (disabledTimes && disabledTimes.to && meridiemSelected === 'am') {\n meridiemSelected = disabledTimes.to.hour >= 12 ? 'pm' : 'am';\n if (meridiemSelected === 'am' && time.hour() > 12) {\n this.handleAMPMChange('am');\n }\n\n if (meridiemSelected === 'pm' && time.hour() <= 12) {\n this.handleAMPMChange('pm');\n }\n }\n\n return (\n <PickerPanel\n type=\"meridiem\"\n hasHeader={hasHeader}\n header=\"\"\n onChange={this.handleAMPMChange}\n options={[\n { value: 'am', label: 'am' },\n { value: 'pm', label: 'pm' },\n ]}\n selected={meridiemSelected}\n disabledTimes={disabledTimes}\n />\n );\n }\n\n renderHeader = () => {\n const { time } = this.state;\n return <TimePickerHeader>{time.format('hh:mma')}</TimePickerHeader>;\n };\n\n render() {\n const { hasHeaderDisplay } = this.props;\n\n return (\n <TimePickerContainer>\n {hasHeaderDisplay && this.renderHeader()}\n <TimePickerPanelContainer>\n {this.renderHoursPanel()}\n {this.renderMinutesPanel()}\n {this.renderSecondsPanel()}\n {this.renderAMPMPanel()}\n </TimePickerPanelContainer>\n </TimePickerContainer>\n );\n }\n}\n\nTimePickerMenu.defaultProps = {\n time: moment(),\n hasHeader: false,\n use12Hours: true,\n showSeconds: true,\n showMinutes: true,\n showHours: true,\n disabledTimes: undefined,\n onTimeChange: () => null,\n};\n\nTimePickerMenu.propTypes = {\n /** Time value */\n time: PropTypes.instanceOf(moment),\n /** If the menu has header or not */\n hasHeader: PropTypes.bool,\n /** Whether to use the 12 hours format */\n use12Hours: PropTypes.bool,\n /** Whether show 'seconds' or not */\n showSeconds: PropTypes.bool,\n /** Whether show 'minutes' or not */\n showMinutes: PropTypes.bool,\n /** Whether show 'hours' or not */\n showHours: PropTypes.bool,\n /** Handler when time changes */\n onTimeChange: PropTypes.func,\n disabledTimes: PropTypes.object,\n};\n\nexport { TimePickerMenu };\nexport default TimePickerMenu;\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
package/dist/esm/index.js DELETED
@@ -1,11 +0,0 @@
1
- import * as React from "react";
2
- export * from "./DSTimePicker";
3
- export * from "./TimePickerMenu";
4
- export * from "./DSTimePickerMenu";
5
- import { convertTimeString } from "./utils";
6
- import { default as default2 } from "./DSTimePicker";
7
- export {
8
- convertTimeString,
9
- default2 as default
10
- };
11
- //# sourceMappingURL=index.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './DSTimePicker';\nexport * from './TimePickerMenu';\nexport * from './DSTimePickerMenu';\n\nexport { convertTimeString } from './utils'; // this is an exception, we should move utils to shared tho?\n\nexport { default } from './DSTimePicker';\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AAEA;AAEA;",
6
- "names": []
7
- }
@@ -1,64 +0,0 @@
1
- import * as React from "react";
2
- function MoveElementOnScroll(element, {
3
- container,
4
- min = 0,
5
- max = element.offsetHeight,
6
- speed = 1,
7
- smooth = 2,
8
- onUpdate = () => null,
9
- onEndScroll = () => null
10
- }) {
11
- let moving = false;
12
- let pos = min;
13
- let lastPos = pos;
14
- const requestFrame = function() {
15
- return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(func) {
16
- window.setTimeout(func, 1e3 / 50);
17
- };
18
- }();
19
- function update() {
20
- moving = true;
21
- const delta = (pos - lastPos) / smooth;
22
- lastPos += delta;
23
- if (Math.abs(delta) > 0.7) {
24
- requestFrame(() => {
25
- onUpdate(lastPos, delta);
26
- update();
27
- });
28
- } else {
29
- onEndScroll(pos);
30
- moving = false;
31
- }
32
- }
33
- function scrolling(e) {
34
- e.preventDefault();
35
- let delta = e.delta || e.wheelDelta;
36
- if (delta === void 0) {
37
- delta = -e.detail;
38
- delta *= 10 * speed;
39
- }
40
- pos += -delta * speed;
41
- pos = Math.max(min, Math.min(pos, max));
42
- if (!moving) {
43
- update();
44
- }
45
- }
46
- container.addEventListener("mousewheel", scrolling, false);
47
- container.addEventListener("DOMMouseScroll", scrolling, false);
48
- return {
49
- unsubscribe: () => {
50
- container.removeEventListener("mousewheel", scrolling);
51
- container.removeEventListener("DOMMouseScroll", scrolling);
52
- },
53
- updatePosition: (newPos) => {
54
- pos = -newPos;
55
- lastPos = -pos;
56
- }
57
- };
58
- }
59
- var moveElementOnScroll_default = MoveElementOnScroll;
60
- export {
61
- MoveElementOnScroll,
62
- moveElementOnScroll_default as default
63
- };
64
- //# sourceMappingURL=moveElementOnScroll.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/moveElementOnScroll.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export function MoveElementOnScroll(\n element,\n {\n container,\n min = 0,\n max = element.offsetHeight,\n speed = 1,\n smooth = 2,\n onUpdate = () => null,\n onEndScroll = () => null,\n },\n) {\n let moving = false;\n let pos = min;\n let lastPos = pos;\n\n // todo: move this to utils if we finally need it\n const requestFrame = (function() {\n return (\n window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function(func) {\n window.setTimeout(func, 1000 / 50);\n }\n );\n })();\n\n function update() {\n moving = true;\n const delta = (pos - lastPos) / smooth;\n lastPos += delta;\n\n if (Math.abs(delta) > 0.7) {\n requestFrame(() => {\n onUpdate(lastPos, delta);\n update();\n });\n } else {\n onEndScroll(pos);\n moving = false;\n }\n }\n\n function scrolling(e) {\n e.preventDefault(); // disable default scrolling\n let delta = e.delta || e.wheelDelta;\n if (delta === undefined) {\n // for firefox\n delta = -e.detail;\n delta *= 10 * speed;\n }\n\n pos += -delta * speed;\n pos = Math.max(min, Math.min(pos, max)); // limit scrolling\n if (!moving) {\n update();\n }\n }\n\n container.addEventListener('mousewheel', scrolling, false);\n container.addEventListener('DOMMouseScroll', scrolling, false);\n\n return {\n unsubscribe: () => {\n container.removeEventListener('mousewheel', scrolling);\n container.removeEventListener('DOMMouseScroll', scrolling);\n },\n updatePosition: newPos => {\n pos = -newPos;\n lastPos = -pos;\n },\n };\n}\n\nexport default MoveElementOnScroll;\n"],
5
- "mappings": "AAAA;ACAO,6BACL,SACA;AAAA,EACE;AAAA,EACA,MAAM;AAAA,EACN,MAAM,QAAQ;AAAA,EACd,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW,MAAM;AAAA,EACjB,cAAc,MAAM;AAAA,GAEtB;AACA,MAAI,SAAS;AACb,MAAI,MAAM;AACV,MAAI,UAAU;AAGd,QAAM,eAAgB,WAAW;AAC/B,WACE,OAAO,yBACP,OAAO,+BACP,OAAO,4BACP,OAAO,0BACP,OAAO,2BACP,SAAS,MAAM;AACb,aAAO,WAAW,MAAM,MAAO;AAAA;AAAA;AAKrC,oBAAkB;AAChB,aAAS;AACT,UAAM,QAAS,OAAM,WAAW;AAChC,eAAW;AAEX,QAAI,KAAK,IAAI,SAAS,KAAK;AACzB,mBAAa,MAAM;AACjB,iBAAS,SAAS;AAClB;AAAA;AAAA,WAEG;AACL,kBAAY;AACZ,eAAS;AAAA;AAAA;AAIb,qBAAmB,GAAG;AACpB,MAAE;AACF,QAAI,QAAQ,EAAE,SAAS,EAAE;AACzB,QAAI,UAAU,QAAW;AAEvB,cAAQ,CAAC,EAAE;AACX,eAAS,KAAK;AAAA;AAGhB,WAAO,CAAC,QAAQ;AAChB,UAAM,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK;AAClC,QAAI,CAAC,QAAQ;AACX;AAAA;AAAA;AAIJ,YAAU,iBAAiB,cAAc,WAAW;AACpD,YAAU,iBAAiB,kBAAkB,WAAW;AAExD,SAAO;AAAA,IACL,aAAa,MAAM;AACjB,gBAAU,oBAAoB,cAAc;AAC5C,gBAAU,oBAAoB,kBAAkB;AAAA;AAAA,IAElD,gBAAgB,YAAU;AACxB,YAAM,CAAC;AACP,gBAAU,CAAC;AAAA;AAAA;AAAA;AAKjB,IAAO,8BAAQ;",
6
- "names": []
7
- }
package/dist/esm/utils.js DELETED
@@ -1,42 +0,0 @@
1
- import * as React from "react";
2
- const validateIndex = (index, options) => {
3
- if (index < 0)
4
- return 0;
5
- if (index >= options.length)
6
- return options.length - 1;
7
- return index;
8
- };
9
- const getOptionIndex = (options, selectedOption, valueProperty = "value") => {
10
- const index = options.findIndex((option) => option[valueProperty] === selectedOption);
11
- return validateIndex(index, options);
12
- };
13
- const isAM = (time) => time && time.hour() < 12;
14
- const convertTimeString = (string) => {
15
- if (!string)
16
- return null;
17
- let meridiem = "AM";
18
- if (string.toUpperCase().includes("PM"))
19
- meridiem = "PM";
20
- const arr = string.split(":");
21
- let hour = parseInt(arr[0], 10);
22
- if (meridiem === "PM" && hour !== 12)
23
- hour += 12;
24
- if (meridiem === "AM" && hour === 12)
25
- hour = 0;
26
- if (meridiem === "PM" && hour === 12)
27
- hour = 12;
28
- const min = parseInt(arr[1], 10);
29
- const sec = parseInt(arr[2], 10);
30
- return {
31
- hour,
32
- min,
33
- sec
34
- };
35
- };
36
- export {
37
- convertTimeString,
38
- getOptionIndex,
39
- isAM,
40
- validateIndex
41
- };
42
- //# sourceMappingURL=utils.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/utils.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const validateIndex = (index, options) => {\n if (index < 0) return 0;\n if (index >= options.length) return options.length - 1;\n return index;\n};\n\nexport const getOptionIndex = (\n options,\n selectedOption,\n valueProperty = 'value',\n) => {\n const index = options.findIndex(\n (option) => option[valueProperty] === selectedOption,\n );\n return validateIndex(index, options);\n};\n\nexport const isAM = (time) => time && time.hour() < 12;\n\nexport const convertTimeString = (string) => {\n if (!string) return null;\n let meridiem = 'AM';\n if (string.toUpperCase().includes('PM')) meridiem = 'PM';\n\n const arr = string.split(':');\n let hour = parseInt(arr[0], 10);\n if (meridiem === 'PM' && hour !== 12) hour += 12; // formats to 24\n if (meridiem === 'AM' && hour === 12) hour = 0;\n if (meridiem === 'PM' && hour === 12) hour = 12;\n\n const min = parseInt(arr[1], 10);\n const sec = parseInt(arr[2], 10);\n\n return {\n hour,\n min,\n sec,\n };\n};\n"],
5
- "mappings": "AAAA;ACAO,MAAM,gBAAgB,CAAC,OAAO,YAAY;AAC/C,MAAI,QAAQ;AAAG,WAAO;AACtB,MAAI,SAAS,QAAQ;AAAQ,WAAO,QAAQ,SAAS;AACrD,SAAO;AAAA;AAGF,MAAM,iBAAiB,CAC5B,SACA,gBACA,gBAAgB,YACb;AACH,QAAM,QAAQ,QAAQ,UACpB,CAAC,WAAW,OAAO,mBAAmB;AAExC,SAAO,cAAc,OAAO;AAAA;AAGvB,MAAM,OAAO,CAAC,SAAS,QAAQ,KAAK,SAAS;AAE7C,MAAM,oBAAoB,CAAC,WAAW;AAC3C,MAAI,CAAC;AAAQ,WAAO;AACpB,MAAI,WAAW;AACf,MAAI,OAAO,cAAc,SAAS;AAAO,eAAW;AAEpD,QAAM,MAAM,OAAO,MAAM;AACzB,MAAI,OAAO,SAAS,IAAI,IAAI;AAC5B,MAAI,aAAa,QAAQ,SAAS;AAAI,YAAQ;AAC9C,MAAI,aAAa,QAAQ,SAAS;AAAI,WAAO;AAC7C,MAAI,aAAa,QAAQ,SAAS;AAAI,WAAO;AAE7C,QAAM,MAAM,SAAS,IAAI,IAAI;AAC7B,QAAM,MAAM,SAAS,IAAI,IAAI;AAE7B,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA;AAAA;",
6
- "names": []
7
- }