@elliemae/ds-time-picker 2.2.1 → 2.3.0-alpha.4
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/cjs/DSTimePicker.js +100 -115
- package/cjs/DSTimePicker.js.map +7 -0
- package/cjs/DSTimePickerMenu.js +46 -33
- package/cjs/DSTimePickerMenu.js.map +7 -0
- package/cjs/PickerPanel.js +151 -254
- package/cjs/PickerPanel.js.map +7 -0
- package/cjs/TimePickerDropdown.js +73 -52
- package/cjs/TimePickerDropdown.js.map +7 -0
- package/cjs/TimePickerImpl.js +146 -138
- package/cjs/TimePickerImpl.js.map +7 -0
- package/cjs/TimePickerMenu.js +138 -209
- package/cjs/TimePickerMenu.js.map +7 -0
- package/cjs/index.js +40 -17
- package/cjs/index.js.map +7 -0
- package/cjs/moveElementOnScroll.js +57 -39
- package/cjs/moveElementOnScroll.js.map +7 -0
- package/cjs/utils.js +57 -24
- package/cjs/utils.js.map +7 -0
- package/esm/DSTimePicker.js +71 -105
- package/esm/DSTimePicker.js.map +7 -0
- package/esm/DSTimePickerMenu.js +17 -22
- package/esm/DSTimePickerMenu.js.map +7 -0
- package/esm/PickerPanel.js +120 -242
- package/esm/PickerPanel.js.map +7 -0
- package/esm/TimePickerDropdown.js +44 -44
- package/esm/TimePickerDropdown.js.map +7 -0
- package/esm/TimePickerImpl.js +106 -117
- package/esm/TimePickerImpl.js.map +7 -0
- package/esm/TimePickerMenu.js +102 -191
- package/esm/TimePickerMenu.js.map +7 -0
- package/esm/index.js +11 -4
- package/esm/index.js.map +7 -0
- package/esm/moveElementOnScroll.js +28 -34
- package/esm/moveElementOnScroll.js.map +7 -0
- package/esm/utils.js +28 -17
- package/esm/utils.js.map +7 -0
- package/package.json +7 -7
- package/types/PickerPanel.d.ts +1 -0
- package/types/TimePickerDropdown.d.ts +1 -0
- package/types/TimePickerImpl.d.ts +1 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/TimePickerDropdown.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport PropTypes from 'prop-types';\nimport { RecentDocuments } from '@elliemae/ds-icons';\nimport { DSButton } from '@elliemae/ds-button';\nimport { DSPopper } from '@elliemae/ds-popper';\n\nconst TimePickerDropdown = ({ disabled = false, onClick, onOpen, isOpen, menu, zIndex, blockName, placement }) => (\n <DSPopper\n blockName={blockName}\n placement={placement}\n contentComponent={menu}\n isOpen={isOpen}\n onOpen={onOpen}\n modifiers={{\n preventOverflow: {\n enabled: true,\n padding: 0,\n boundariesElement: 'window',\n },\n }}\n showArrow={false}\n triggerComponent={\n <DSButton buttonType=\"secondary\" disabled={disabled} icon={<RecentDocuments />} iconSize=\"s\" onClick={onClick} />\n }\n zIndex={zIndex}\n />\n);\n\nTimePickerDropdown.propTypes = {\n onClick: PropTypes.func,\n onOpen: PropTypes.func,\n disabled: PropTypes.bool,\n isOpen: PropTypes.bool,\n menu: PropTypes.element,\n blockName: PropTypes.string,\n placement: PropTypes.string,\n zIndex: PropTypes.number,\n};\n\nexport { TimePickerDropdown };\nexport default TimePickerDropdown;\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AAEA,MAAM,qBAAqB,CAAC,EAAE,WAAW,OAAO,SAAS,QAAQ,QAAQ,MAAM,QAAQ,WAAW,gBAChG,qCAAC,UAAD;AAAA,EACE;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,IACT,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,SAAS;AAAA,MACT,mBAAmB;AAAA;AAAA;AAAA,EAGvB,WAAW;AAAA,EACX,kBACE,qCAAC,UAAD;AAAA,IAAU,YAAW;AAAA,IAAY;AAAA,IAAoB,MAAM,qCAAC,iBAAD;AAAA,IAAqB,UAAS;AAAA,IAAI;AAAA;AAAA,EAE/F;AAAA;AAIJ,mBAAmB,YAAY;AAAA,EAC7B,SAAS,UAAU;AAAA,EACnB,QAAQ,UAAU;AAAA,EAClB,UAAU,UAAU;AAAA,EACpB,QAAQ,UAAU;AAAA,EAClB,MAAM,UAAU;AAAA,EAChB,WAAW,UAAU;AAAA,EACrB,WAAW,UAAU;AAAA,EACrB,QAAQ,UAAU;AAAA;AAIpB,IAAO,6BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/esm/TimePickerImpl.js
CHANGED
|
@@ -1,165 +1,154 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return {
|
|
32
|
-
isMenuOpened
|
|
33
|
-
};
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
const TimePickerImpl = _ref2 => {
|
|
37
|
-
let {
|
|
38
|
-
value,
|
|
39
|
-
onChange,
|
|
40
|
-
onOpen,
|
|
41
|
-
format,
|
|
42
|
-
disabled,
|
|
43
|
-
hasHeader,
|
|
44
|
-
hasHeaderDisplay,
|
|
45
|
-
className,
|
|
46
|
-
containerProps,
|
|
47
|
-
placement,
|
|
48
|
-
zIndex,
|
|
49
|
-
disabledTimes,
|
|
50
|
-
minutesInterval
|
|
51
|
-
} = _ref2;
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2, { useState, useEffect, useRef } from "react";
|
|
3
|
+
import PropTypes from "prop-types";
|
|
4
|
+
import moment from "moment";
|
|
5
|
+
import memoizeOne from "memoize-one";
|
|
6
|
+
import { getVisibleTimeByFormat } from "@elliemae/ds-utilities";
|
|
7
|
+
import { aggregatedClasses, convertPropToCssClassName } from "@elliemae/ds-classnames";
|
|
8
|
+
import { DSInput, DSInputGroup, TimeInputImpl } from "@elliemae/ds-form";
|
|
9
|
+
import { TimePickerMenu } from "./TimePickerMenu";
|
|
10
|
+
import { TimePickerDropdown } from "./TimePickerDropdown";
|
|
11
|
+
import { convertTimeString } from "./utils";
|
|
12
|
+
const blockName = "time-picker";
|
|
13
|
+
const TimePickerContainer = aggregatedClasses(DSInputGroup)(blockName, null, ({ isMenuOpened }) => ({
|
|
14
|
+
isMenuOpened
|
|
15
|
+
}));
|
|
16
|
+
const TimePickerImpl = ({
|
|
17
|
+
value,
|
|
18
|
+
onChange,
|
|
19
|
+
onOpen,
|
|
20
|
+
format,
|
|
21
|
+
disabled,
|
|
22
|
+
hasHeader,
|
|
23
|
+
hasHeaderDisplay,
|
|
24
|
+
className,
|
|
25
|
+
containerProps,
|
|
26
|
+
placement,
|
|
27
|
+
zIndex,
|
|
28
|
+
disabledTimes,
|
|
29
|
+
minutesInterval
|
|
30
|
+
}) => {
|
|
52
31
|
const [time, setTime] = useState();
|
|
53
32
|
const [isMenuOpened, setIsMenuOpened] = useState(false);
|
|
54
33
|
const [focusedColumn, setFocusedColumn] = useState(null);
|
|
55
34
|
const timePickerRef = useRef();
|
|
56
35
|
useEffect(() => {
|
|
57
|
-
if (moment(value).isValid())
|
|
36
|
+
if (moment(value).isValid())
|
|
37
|
+
setTime(moment(value));
|
|
38
|
+
else if (value === null)
|
|
39
|
+
setTime(void 0);
|
|
58
40
|
}, [value]);
|
|
59
41
|
useEffect(() => {
|
|
60
|
-
window.addEventListener(
|
|
61
|
-
return () => window.removeEventListener(
|
|
42
|
+
window.addEventListener("click", handleClickOutside, false);
|
|
43
|
+
return () => window.removeEventListener("click", handleClickOutside, false);
|
|
62
44
|
}, []);
|
|
63
45
|
useEffect(() => {
|
|
64
|
-
window.addEventListener(
|
|
65
|
-
return () => window.removeEventListener(
|
|
46
|
+
window.addEventListener("keydown", handleKeyDown, false);
|
|
47
|
+
return () => window.removeEventListener("keydown", handleKeyDown, false);
|
|
66
48
|
}, []);
|
|
67
49
|
useEffect(() => {
|
|
68
|
-
if (isMenuOpened)
|
|
50
|
+
if (isMenuOpened)
|
|
51
|
+
handleChangeFocus();
|
|
69
52
|
}, [isMenuOpened]);
|
|
70
|
-
|
|
71
53
|
const handleClickOutside = () => {
|
|
72
|
-
if (isMenuOpened)
|
|
54
|
+
if (isMenuOpened)
|
|
55
|
+
setIsMenuOpened(false);
|
|
73
56
|
};
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const menuOpenKeys = ['Escape', ' ', 'Enter'];
|
|
80
|
-
if (menuOpenKeys.includes(key)) setIsMenuOpened(false);
|
|
57
|
+
const handleKeyDown = (event) => {
|
|
58
|
+
const { key } = event;
|
|
59
|
+
const menuOpenKeys = ["Escape", " ", "Enter"];
|
|
60
|
+
if (menuOpenKeys.includes(key))
|
|
61
|
+
setIsMenuOpened(false);
|
|
81
62
|
};
|
|
82
|
-
|
|
83
63
|
const handleChangeFocus = () => {
|
|
84
|
-
const [firstColumn] = document.getElementsByClassName(
|
|
85
|
-
|
|
64
|
+
const [firstColumn] = document.getElementsByClassName("em-ds-time-picker-panel");
|
|
86
65
|
if (firstColumn && !focusedColumn) {
|
|
87
66
|
setFocusedColumn(firstColumn);
|
|
88
67
|
firstColumn.focus();
|
|
89
68
|
}
|
|
90
69
|
};
|
|
91
|
-
|
|
92
|
-
const handlePickerChange = newTime => {
|
|
70
|
+
const handlePickerChange = (newTime) => {
|
|
93
71
|
setTime(moment(newTime));
|
|
94
72
|
onChange(moment(newTime));
|
|
95
73
|
};
|
|
96
|
-
|
|
97
|
-
const handleInputChange = newTime => {
|
|
74
|
+
const handleInputChange = (newTime) => {
|
|
98
75
|
setTime(newTime);
|
|
99
76
|
onChange(newTime);
|
|
100
77
|
};
|
|
101
|
-
|
|
102
|
-
const handleMenuOpen = isOpen => {
|
|
78
|
+
const handleMenuOpen = (isOpen) => {
|
|
103
79
|
onOpen(isOpen);
|
|
104
80
|
setIsMenuOpened(isOpen);
|
|
105
|
-
if (!isOpen)
|
|
81
|
+
if (!isOpen)
|
|
82
|
+
setFocusedColumn(null);
|
|
106
83
|
};
|
|
107
|
-
|
|
108
|
-
const getVisibleTimePanels = memoizeOne(format => getVisibleTimeByFormat(format));
|
|
84
|
+
const getVisibleTimePanels = memoizeOne((format2) => getVisibleTimeByFormat(format2));
|
|
109
85
|
const timePickerBlockName = convertPropToCssClassName(blockName);
|
|
110
86
|
const visiblePanels = getVisibleTimePanels(format);
|
|
111
87
|
const disabledTimeRange = disabledTimes && {
|
|
112
88
|
from: convertTimeString(disabledTimes.from),
|
|
113
89
|
to: convertTimeString(disabledTimes.to)
|
|
114
90
|
};
|
|
115
|
-
return
|
|
116
|
-
className:
|
|
117
|
-
containerProps
|
|
118
|
-
disabled
|
|
119
|
-
rightAddon:
|
|
91
|
+
return /* @__PURE__ */ React2.createElement(TimePickerContainer, {
|
|
92
|
+
className: `${className} variant-${!disabled ? "default" : "disabled"}`,
|
|
93
|
+
containerProps,
|
|
94
|
+
disabled,
|
|
95
|
+
rightAddon: /* @__PURE__ */ React2.createElement(TimePickerDropdown, {
|
|
120
96
|
blockName: timePickerBlockName,
|
|
121
|
-
disabled
|
|
97
|
+
disabled,
|
|
122
98
|
isOpen: isMenuOpened,
|
|
123
|
-
zIndex
|
|
124
|
-
placement
|
|
99
|
+
zIndex,
|
|
100
|
+
placement,
|
|
125
101
|
onOpen: handleMenuOpen,
|
|
126
|
-
onClick: e => {
|
|
102
|
+
onClick: (e) => {
|
|
127
103
|
e.preventDefault();
|
|
128
104
|
handleMenuOpen(!isMenuOpened);
|
|
129
105
|
},
|
|
130
|
-
menu:
|
|
131
|
-
ref: timePickerRef
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
})
|
|
106
|
+
menu: /* @__PURE__ */ React2.createElement("div", {
|
|
107
|
+
ref: timePickerRef
|
|
108
|
+
}, /* @__PURE__ */ React2.createElement(TimePickerMenu, {
|
|
109
|
+
disabled,
|
|
110
|
+
disabledTimes: disabledTimeRange,
|
|
111
|
+
format,
|
|
112
|
+
hasHeader,
|
|
113
|
+
hasHeaderDisplay,
|
|
114
|
+
onTimeChange: handlePickerChange,
|
|
115
|
+
minutesInterval,
|
|
116
|
+
time,
|
|
117
|
+
...visiblePanels
|
|
118
|
+
}))
|
|
143
119
|
})
|
|
144
|
-
},
|
|
145
|
-
customInputType:
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
clearable: true,
|
|
153
|
-
disabled: disabled,
|
|
154
|
-
format: format,
|
|
155
|
-
onChange: handleChange
|
|
156
|
-
}, restInputProps));
|
|
157
|
-
},
|
|
120
|
+
}, /* @__PURE__ */ React2.createElement(DSInput, {
|
|
121
|
+
customInputType: ({ onChange: handleChange, ...restInputProps }) => /* @__PURE__ */ React2.createElement(TimeInputImpl, {
|
|
122
|
+
clearable: true,
|
|
123
|
+
disabled,
|
|
124
|
+
format,
|
|
125
|
+
onChange: handleChange,
|
|
126
|
+
...restInputProps
|
|
127
|
+
}),
|
|
158
128
|
isShowElipsisActive: false,
|
|
159
|
-
disabled
|
|
129
|
+
disabled,
|
|
160
130
|
onChange: handleInputChange,
|
|
161
131
|
value: time
|
|
162
132
|
}));
|
|
163
133
|
};
|
|
164
|
-
|
|
165
|
-
|
|
134
|
+
TimePickerImpl.propTypes = {
|
|
135
|
+
value: PropTypes.instanceOf(Date, moment),
|
|
136
|
+
onChange: PropTypes.func,
|
|
137
|
+
onOpen: PropTypes.func,
|
|
138
|
+
format: PropTypes.string,
|
|
139
|
+
disabled: PropTypes.bool,
|
|
140
|
+
hasHeader: PropTypes.bool,
|
|
141
|
+
hasHeaderDisplay: PropTypes.bool,
|
|
142
|
+
className: PropTypes.string,
|
|
143
|
+
containerProps: PropTypes.object,
|
|
144
|
+
placement: PropTypes.string,
|
|
145
|
+
zIndex: PropTypes.number,
|
|
146
|
+
disabledTimes: PropTypes.object,
|
|
147
|
+
minutesInterval: PropTypes.number
|
|
148
|
+
};
|
|
149
|
+
var TimePickerImpl_default = TimePickerImpl;
|
|
150
|
+
export {
|
|
151
|
+
TimePickerImpl,
|
|
152
|
+
TimePickerImpl_default as default
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=TimePickerImpl.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/TimePickerImpl.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable no-shadow */\nimport React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport memoizeOne from 'memoize-one';\nimport { getVisibleTimeByFormat } from '@elliemae/ds-utilities';\nimport { aggregatedClasses, convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { DSInput, DSInputGroup, TimeInputImpl } from '@elliemae/ds-form';\nimport { TimePickerMenu } from './TimePickerMenu';\nimport { TimePickerDropdown } from './TimePickerDropdown';\nimport { convertTimeString } from './utils';\n\nconst blockName = 'time-picker';\n\nconst TimePickerContainer = aggregatedClasses(DSInputGroup)(blockName, null, ({ isMenuOpened }) => ({\n isMenuOpened,\n}));\n\nconst TimePickerImpl = ({\n value,\n onChange,\n onOpen,\n format,\n disabled,\n hasHeader,\n hasHeaderDisplay,\n className,\n containerProps,\n placement,\n zIndex,\n disabledTimes,\n minutesInterval,\n}) => {\n const [time, setTime] = useState();\n const [isMenuOpened, setIsMenuOpened] = useState(false);\n const [focusedColumn, setFocusedColumn] = useState(null);\n const timePickerRef = useRef();\n useEffect(() => {\n if (moment(value).isValid()) setTime(moment(value));\n else if (value === null) setTime(undefined);\n }, [value]);\n\n useEffect(() => {\n window.addEventListener('click', handleClickOutside, false);\n return () => window.removeEventListener('click', handleClickOutside, false);\n }, []);\n\n useEffect(() => {\n window.addEventListener('keydown', handleKeyDown, false);\n return () => window.removeEventListener('keydown', handleKeyDown, false);\n }, []);\n\n useEffect(() => {\n if (isMenuOpened) handleChangeFocus();\n }, [isMenuOpened]);\n\n const handleClickOutside = () => {\n if (isMenuOpened) setIsMenuOpened(false);\n };\n\n const handleKeyDown = (event) => {\n const { key } = event;\n const menuOpenKeys = ['Escape', ' ', 'Enter'];\n if (menuOpenKeys.includes(key)) setIsMenuOpened(false);\n };\n\n const handleChangeFocus = () => {\n const [firstColumn] = document.getElementsByClassName('em-ds-time-picker-panel');\n if (firstColumn && !focusedColumn) {\n setFocusedColumn(firstColumn);\n firstColumn.focus();\n }\n };\n\n const handlePickerChange = (newTime) => {\n setTime(moment(newTime));\n onChange(moment(newTime));\n };\n\n const handleInputChange = (newTime) => {\n setTime(newTime);\n onChange(newTime);\n };\n\n const handleMenuOpen = (isOpen) => {\n onOpen(isOpen);\n setIsMenuOpened(isOpen);\n if (!isOpen) setFocusedColumn(null);\n };\n\n const getVisibleTimePanels = memoizeOne((format) => getVisibleTimeByFormat(format));\n const timePickerBlockName = convertPropToCssClassName(blockName);\n const visiblePanels = getVisibleTimePanels(format);\n\n const disabledTimeRange = disabledTimes && {\n from: convertTimeString(disabledTimes.from),\n to: convertTimeString(disabledTimes.to),\n };\n\n return (\n <TimePickerContainer\n className={`${className} variant-${!disabled ? 'default' : 'disabled'}`}\n containerProps={containerProps}\n disabled={disabled}\n rightAddon={\n <TimePickerDropdown\n blockName={timePickerBlockName}\n disabled={disabled}\n isOpen={isMenuOpened}\n zIndex={zIndex}\n placement={placement}\n onOpen={handleMenuOpen}\n onClick={(e) => {\n e.preventDefault();\n handleMenuOpen(!isMenuOpened);\n }}\n menu={\n <div ref={timePickerRef}>\n <TimePickerMenu\n disabled={disabled}\n disabledTimes={disabledTimeRange}\n format={format}\n hasHeader={hasHeader}\n hasHeaderDisplay={hasHeaderDisplay}\n onTimeChange={handlePickerChange}\n minutesInterval={minutesInterval}\n time={time}\n {...visiblePanels}\n />\n </div>\n }\n />\n }\n >\n <DSInput\n customInputType={({ onChange: handleChange, ...restInputProps }) => (\n <TimeInputImpl clearable disabled={disabled} format={format} onChange={handleChange} {...restInputProps} />\n )}\n isShowElipsisActive={false}\n disabled={disabled}\n onChange={handleInputChange}\n value={time}\n />\n </TimePickerContainer>\n );\n};\n\nTimePickerImpl.propTypes = {\n value: PropTypes.instanceOf(Date, moment),\n onChange: PropTypes.func,\n onOpen: PropTypes.func,\n format: PropTypes.string,\n disabled: PropTypes.bool,\n hasHeader: PropTypes.bool,\n hasHeaderDisplay: PropTypes.bool,\n className: PropTypes.string,\n containerProps: PropTypes.object,\n placement: PropTypes.string,\n zIndex: PropTypes.number,\n disabledTimes: PropTypes.object,\n minutesInterval: PropTypes.number,\n};\n\nexport { TimePickerImpl };\nexport default TimePickerImpl;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|