@elliemae/ds-legacy-time-picker 1.0.0-rc.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 (48) hide show
  1. package/dist/cjs/DSTimePicker.js +129 -0
  2. package/dist/cjs/DSTimePicker.js.map +7 -0
  3. package/dist/cjs/DSTimePickerMenu.js +45 -0
  4. package/dist/cjs/DSTimePickerMenu.js.map +7 -0
  5. package/dist/cjs/PickerPanel.js +337 -0
  6. package/dist/cjs/PickerPanel.js.map +7 -0
  7. package/dist/cjs/TimePickerDropdown.js +71 -0
  8. package/dist/cjs/TimePickerDropdown.js.map +7 -0
  9. package/dist/cjs/TimePickerImpl.js +190 -0
  10. package/dist/cjs/TimePickerImpl.js.map +7 -0
  11. package/dist/cjs/TimePickerMenu.js +280 -0
  12. package/dist/cjs/TimePickerMenu.js.map +7 -0
  13. package/dist/cjs/index.js +42 -0
  14. package/dist/cjs/index.js.map +7 -0
  15. package/dist/cjs/moveElementOnScroll.js +94 -0
  16. package/dist/cjs/moveElementOnScroll.js.map +7 -0
  17. package/dist/cjs/package.json +7 -0
  18. package/dist/cjs/utils.js +72 -0
  19. package/dist/cjs/utils.js.map +7 -0
  20. package/dist/esm/DSTimePicker.js +99 -0
  21. package/dist/esm/DSTimePicker.js.map +7 -0
  22. package/dist/esm/DSTimePickerMenu.js +15 -0
  23. package/dist/esm/DSTimePickerMenu.js.map +7 -0
  24. package/dist/esm/PickerPanel.js +307 -0
  25. package/dist/esm/PickerPanel.js.map +7 -0
  26. package/dist/esm/TimePickerDropdown.js +41 -0
  27. package/dist/esm/TimePickerDropdown.js.map +7 -0
  28. package/dist/esm/TimePickerImpl.js +160 -0
  29. package/dist/esm/TimePickerImpl.js.map +7 -0
  30. package/dist/esm/TimePickerMenu.js +250 -0
  31. package/dist/esm/TimePickerMenu.js.map +7 -0
  32. package/dist/esm/index.js +11 -0
  33. package/dist/esm/index.js.map +7 -0
  34. package/dist/esm/moveElementOnScroll.js +64 -0
  35. package/dist/esm/moveElementOnScroll.js.map +7 -0
  36. package/dist/esm/package.json +7 -0
  37. package/dist/esm/utils.js +42 -0
  38. package/dist/esm/utils.js.map +7 -0
  39. package/dist/types/DSTimePicker.d.ts +86 -0
  40. package/dist/types/DSTimePickerMenu.d.ts +3 -0
  41. package/dist/types/PickerPanel.d.ts +25 -0
  42. package/dist/types/TimePickerDropdown.d.ts +24 -0
  43. package/dist/types/TimePickerImpl.d.ts +34 -0
  44. package/dist/types/TimePickerMenu.d.ts +19 -0
  45. package/dist/types/index.d.ts +5 -0
  46. package/dist/types/moveElementOnScroll.d.ts +13 -0
  47. package/dist/types/utils.d.ts +8 -0
  48. package/package.json +108 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/TimePickerDropdown.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { RecentDocuments } from '@elliemae/ds-legacy-icons';\nimport DSButton from '@elliemae/ds-legacy-button';\nimport DSPopper from '@elliemae/ds-legacy-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 default TimePickerDropdown;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADsB0C;AArBjE,wBAAsB;AACtB,6BAAgC;AAChC,8BAAqB;AACrB,8BAAqB;AAErB,MAAM,qBAAqB,CAAC,EAAE,WAAW,OAAO,SAAS,QAAQ,QAAQ,MAAM,QAAQ,WAAW,UAAU,MAC1G;AAAA,EAAC,wBAAAA;AAAA,EAAA;AAAA,IACC;AAAA,IACA;AAAA,IACA,kBAAkB;AAAA,IAClB;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT,iBAAiB;AAAA,QACf,SAAS;AAAA,QACT,SAAS;AAAA,QACT,mBAAmB;AAAA,MACrB;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,kBACE,4CAAC,wBAAAC,SAAA,EAAS,YAAW,aAAY,UAAoB,MAAM,4CAAC,0CAAgB,GAAI,UAAS,KAAI,SAAkB;AAAA,IAEjH;AAAA;AACF;AAGF,mBAAmB,YAAY;AAAA,EAC7B,SAAS,kBAAAC,QAAU;AAAA,EACnB,QAAQ,kBAAAA,QAAU;AAAA,EAClB,UAAU,kBAAAA,QAAU;AAAA,EACpB,QAAQ,kBAAAA,QAAU;AAAA,EAClB,MAAM,kBAAAA,QAAU;AAAA,EAChB,WAAW,kBAAAA,QAAU;AAAA,EACrB,WAAW,kBAAAA,QAAU;AAAA,EACrB,QAAQ,kBAAAA,QAAU;AACpB;AAEA,IAAO,6BAAQ;",
6
+ "names": ["DSPopper", "DSButton", "PropTypes"]
7
+ }
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var TimePickerImpl_exports = {};
30
+ __export(TimePickerImpl_exports, {
31
+ default: () => TimePickerImpl_default
32
+ });
33
+ module.exports = __toCommonJS(TimePickerImpl_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_react = require("react");
37
+ var import_prop_types = __toESM(require("prop-types"));
38
+ var import_moment = __toESM(require("moment"));
39
+ var import_memoize_one = __toESM(require("memoize-one"));
40
+ var import_ds_legacy_utilities = require("@elliemae/ds-legacy-utilities");
41
+ var import_ds_legacy_classnames = require("@elliemae/ds-legacy-classnames");
42
+ var import_ds_legacy_form = require("@elliemae/ds-legacy-form");
43
+ var import_TimePickerMenu = __toESM(require("./TimePickerMenu.js"));
44
+ var import_TimePickerDropdown = __toESM(require("./TimePickerDropdown.js"));
45
+ var import_utils = require("./utils.js");
46
+ const blockName = "time-picker";
47
+ const TimePickerContainer = (0, import_ds_legacy_classnames.aggregatedClasses)(import_ds_legacy_form.DSInputGroup)(blockName, null, ({ isMenuOpened }) => ({
48
+ isMenuOpened
49
+ }));
50
+ const TimePickerImpl = ({
51
+ value,
52
+ onChange,
53
+ onOpen,
54
+ format,
55
+ disabled,
56
+ hasHeader,
57
+ hasHeaderDisplay,
58
+ className,
59
+ containerProps,
60
+ placement,
61
+ zIndex,
62
+ disabledTimes,
63
+ minutesInterval
64
+ }) => {
65
+ (0, import_ds_legacy_utilities.useDeprecateComponent)({ componentName: "ds-time-picker", version: "TBD Date: 2023 Q3" });
66
+ const [time, setTime] = (0, import_react.useState)();
67
+ const [isMenuOpened, setIsMenuOpened] = (0, import_react.useState)(false);
68
+ const [focusedColumn, setFocusedColumn] = (0, import_react.useState)(null);
69
+ const timePickerRef = (0, import_react.useRef)();
70
+ (0, import_react.useEffect)(() => {
71
+ if ((0, import_moment.default)(value).isValid())
72
+ setTime((0, import_moment.default)(value));
73
+ else if (value === null)
74
+ setTime(void 0);
75
+ }, [value]);
76
+ (0, import_react.useEffect)(() => {
77
+ window.addEventListener("click", handleClickOutside, false);
78
+ return () => window.removeEventListener("click", handleClickOutside, false);
79
+ }, []);
80
+ (0, import_react.useEffect)(() => {
81
+ window.addEventListener("keydown", handleKeyDown, false);
82
+ return () => window.removeEventListener("keydown", handleKeyDown, false);
83
+ }, []);
84
+ (0, import_react.useEffect)(() => {
85
+ if (isMenuOpened)
86
+ handleChangeFocus();
87
+ }, [isMenuOpened]);
88
+ const handleClickOutside = () => {
89
+ if (isMenuOpened)
90
+ setIsMenuOpened(false);
91
+ };
92
+ const handleKeyDown = (event) => {
93
+ const { key } = event;
94
+ const menuOpenKeys = ["Escape", " ", "Enter"];
95
+ if (menuOpenKeys.includes(key))
96
+ setIsMenuOpened(false);
97
+ };
98
+ const handleChangeFocus = () => {
99
+ const [firstColumn] = document.getElementsByClassName("em-ds-time-picker-panel");
100
+ if (firstColumn && !focusedColumn) {
101
+ setFocusedColumn(firstColumn);
102
+ firstColumn.focus();
103
+ }
104
+ };
105
+ const handlePickerChange = (newTime) => {
106
+ setTime((0, import_moment.default)(newTime));
107
+ onChange((0, import_moment.default)(newTime));
108
+ };
109
+ const handleInputChange = (newTime) => {
110
+ setTime(newTime);
111
+ onChange(newTime);
112
+ };
113
+ const handleMenuOpen = (isOpen) => {
114
+ onOpen(isOpen);
115
+ setIsMenuOpened(isOpen);
116
+ if (!isOpen)
117
+ setFocusedColumn(null);
118
+ };
119
+ const getVisibleTimePanels = (0, import_memoize_one.default)((format2) => (0, import_ds_legacy_utilities.getVisibleTimeByFormat)(format2));
120
+ const timePickerBlockName = (0, import_ds_legacy_classnames.convertPropToCssClassName)(blockName);
121
+ const visiblePanels = getVisibleTimePanels(format);
122
+ const disabledTimeRange = disabledTimes && {
123
+ from: (0, import_utils.convertTimeString)(disabledTimes.from),
124
+ to: (0, import_utils.convertTimeString)(disabledTimes.to)
125
+ };
126
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
127
+ TimePickerContainer,
128
+ {
129
+ className: `${className} variant-${!disabled ? "default" : "disabled"}`,
130
+ containerProps,
131
+ disabled,
132
+ rightAddon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
133
+ import_TimePickerDropdown.default,
134
+ {
135
+ blockName: timePickerBlockName,
136
+ disabled,
137
+ isOpen: isMenuOpened,
138
+ zIndex,
139
+ placement,
140
+ onOpen: handleMenuOpen,
141
+ onClick: (e) => {
142
+ e.preventDefault();
143
+ handleMenuOpen(!isMenuOpened);
144
+ },
145
+ menu: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref: timePickerRef, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
146
+ import_TimePickerMenu.default,
147
+ {
148
+ disabled,
149
+ disabledTimes: disabledTimeRange,
150
+ format,
151
+ hasHeader,
152
+ hasHeaderDisplay,
153
+ onTimeChange: handlePickerChange,
154
+ minutesInterval,
155
+ time,
156
+ ...visiblePanels
157
+ }
158
+ ) })
159
+ }
160
+ ),
161
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
162
+ import_ds_legacy_form.DSInput,
163
+ {
164
+ customInputType: ({ onChange: handleChange, ...restInputProps }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_legacy_form.TimeInputImpl, { clearable: true, disabled, format, onChange: handleChange, ...restInputProps }),
165
+ isShowElipsisActive: false,
166
+ disabled,
167
+ onChange: handleInputChange,
168
+ value: time
169
+ }
170
+ )
171
+ }
172
+ );
173
+ };
174
+ TimePickerImpl.propTypes = {
175
+ value: import_prop_types.default.instanceOf(Date, import_moment.default),
176
+ onChange: import_prop_types.default.func,
177
+ onOpen: import_prop_types.default.func,
178
+ format: import_prop_types.default.string,
179
+ disabled: import_prop_types.default.bool,
180
+ hasHeader: import_prop_types.default.bool,
181
+ hasHeaderDisplay: import_prop_types.default.bool,
182
+ className: import_prop_types.default.string,
183
+ containerProps: import_prop_types.default.object,
184
+ placement: import_prop_types.default.string,
185
+ zIndex: import_prop_types.default.number,
186
+ disabledTimes: import_prop_types.default.object,
187
+ minutesInterval: import_prop_types.default.number
188
+ };
189
+ var TimePickerImpl_default = TimePickerImpl;
190
+ //# sourceMappingURL=TimePickerImpl.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/TimePickerImpl.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* 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, useDeprecateComponent } from '@elliemae/ds-legacy-utilities';\nimport { aggregatedClasses, convertPropToCssClassName } from '@elliemae/ds-legacy-classnames';\nimport { DSInput, DSInputGroup, TimeInputImpl } from '@elliemae/ds-legacy-form';\nimport TimePickerMenu from './TimePickerMenu.js';\nimport TimePickerDropdown from './TimePickerDropdown.js';\nimport { convertTimeString } from './utils.js';\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 useDeprecateComponent({ componentName: 'ds-time-picker', version: 'TBD Date: 2023 Q3' });\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 default TimePickerImpl;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
+ "names": ["moment", "memoizeOne", "format", "TimePickerDropdown", "TimePickerMenu", "PropTypes"]
7
+ }
@@ -0,0 +1,280 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var TimePickerMenu_exports = {};
30
+ __export(TimePickerMenu_exports, {
31
+ TimePickerMenu: () => TimePickerMenu,
32
+ default: () => TimePickerMenu_default
33
+ });
34
+ module.exports = __toCommonJS(TimePickerMenu_exports);
35
+ var React = __toESM(require("react"));
36
+ var import_jsx_runtime = require("react/jsx-runtime");
37
+ var import_react = require("react");
38
+ var import_prop_types = __toESM(require("prop-types"));
39
+ var import_ds_legacy_classnames = require("@elliemae/ds-legacy-classnames");
40
+ var import_moment = __toESM(require("moment"));
41
+ var import_ds_legacy_utilities = require("@elliemae/ds-legacy-utilities");
42
+ var import_utils = require("./utils.js");
43
+ var import_PickerPanel = __toESM(require("./PickerPanel.js"));
44
+ const blockName = "time-picker-menu";
45
+ const TimePickerContainer = (0, import_ds_legacy_classnames.aggregatedClasses)("div")(blockName);
46
+ const TimePickerHeader = (0, import_ds_legacy_classnames.aggregatedClasses)("div")(blockName, "header");
47
+ const TimePickerPanelContainer = (0, import_ds_legacy_classnames.aggregatedClasses)("div")(blockName, "panel-container");
48
+ const generateOption = (format) => (option) => ({
49
+ value: option,
50
+ label: typeof format === "function" ? format(option) : option
51
+ });
52
+ class TimePickerMenu extends import_react.Component {
53
+ constructor(props) {
54
+ super(props);
55
+ this.renderHeader = () => {
56
+ const { time } = this.state;
57
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TimePickerHeader, { children: time.format("hh:mma") });
58
+ };
59
+ this.state = {
60
+ time: (0, import_moment.default)(props.time || "", props.format) || (0, import_moment.default)()
61
+ };
62
+ this.handleMinuteChange = this.handleMinuteChange.bind(this);
63
+ this.handleHoursChange = this.handleHoursChange.bind(this);
64
+ this.handleSecondsChange = this.handleSecondsChange.bind(this);
65
+ this.handleAMPMChange = this.handleAMPMChange.bind(this);
66
+ this.updateTime = this.updateTime.bind(this);
67
+ this.renderHoursPanel = this.renderHoursPanel.bind(this);
68
+ this.renderMinutesPanel = this.renderMinutesPanel.bind(this);
69
+ this.renderSecondsPanel = this.renderSecondsPanel.bind(this);
70
+ this.renderAMPMPanel = this.renderAMPMPanel.bind(this);
71
+ this.renderHeader = this.renderHeader.bind(this);
72
+ }
73
+ static getDerivedStateFromProps(props, state) {
74
+ if (props.time) {
75
+ return { ...state, time: (0, import_moment.default)(props.time) };
76
+ }
77
+ return { ...state, time: void 0 };
78
+ }
79
+ componentDidMount() {
80
+ const { time } = this.state;
81
+ this.setState({ time });
82
+ }
83
+ handleMinuteChange(value) {
84
+ const { time } = this.state;
85
+ this.updateTime(time.minute(value));
86
+ }
87
+ handleHoursChange(value) {
88
+ const { time } = this.state;
89
+ const { use12Hours } = this.props;
90
+ let nextHour = value;
91
+ if (use12Hours) {
92
+ if (!(0, import_utils.isAM)(time)) {
93
+ nextHour = value % 12 + 12;
94
+ }
95
+ }
96
+ this.updateTime(time.hour(nextHour));
97
+ }
98
+ handleSecondsChange(value) {
99
+ const { time } = this.state;
100
+ this.updateTime(time.second(value));
101
+ }
102
+ handleAMPMChange(value) {
103
+ const { time } = this.state;
104
+ const hour = time.hour();
105
+ const nextHour = value.toLowerCase() === "am" ? hour % 12 : hour % 12 + 12;
106
+ this.updateTime(time.hour(nextHour));
107
+ }
108
+ updateTime(time) {
109
+ const { onTimeChange } = this.props;
110
+ onTimeChange(time);
111
+ this.setState({ time });
112
+ }
113
+ renderHoursPanel() {
114
+ const { time } = this.state;
115
+ const { showHours, use12Hours, format, hasHeader, disabledTimes } = this.props;
116
+ if (!showHours)
117
+ return null;
118
+ const hour = time.hour();
119
+ let selectedHour = use12Hours ? hour % 12 || 12 : hour;
120
+ if (disabledTimes) {
121
+ const { from, to } = disabledTimes;
122
+ if (hour > from.hour && hour < to.hour) {
123
+ if (to.hour < 24) {
124
+ const toFormatted = to.hour % 12 || 12;
125
+ if (selectedHour !== toFormatted)
126
+ this.handleHoursChange(toFormatted);
127
+ selectedHour = toFormatted;
128
+ } else if (from) {
129
+ selectedHour = (from.hour - 1) % 12 || 12;
130
+ }
131
+ }
132
+ }
133
+ const meridiem = hour >= 12 ? "PM" : "AM";
134
+ const withLeadingZeros = format.indexOf("hh") > -1;
135
+ const rangeHours = use12Hours ? (0, import_ds_legacy_utilities.range)(1, 13) : (0, import_ds_legacy_utilities.range)(24);
136
+ const hoursOptions = rangeHours.map(generateOption(withLeadingZeros && (0, import_ds_legacy_utilities.addLeadingZeros)(2)));
137
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
138
+ import_PickerPanel.default,
139
+ {
140
+ type: "hour",
141
+ time,
142
+ meridiem,
143
+ hasHeader,
144
+ header: "H",
145
+ onChange: this.handleHoursChange,
146
+ options: hoursOptions,
147
+ selected: selectedHour,
148
+ disabledTimes
149
+ }
150
+ );
151
+ }
152
+ renderMinutesPanel() {
153
+ const { time } = this.state;
154
+ const { showMinutes, format, hasHeader, disabledTimes, minutesInterval } = this.props;
155
+ if (!showMinutes)
156
+ return null;
157
+ const withLeadingZeros = format.indexOf("mm") > -1;
158
+ const rangeMinutes = (0, import_ds_legacy_utilities.range)(0, 60, minutesInterval).map(generateOption(withLeadingZeros && (0, import_ds_legacy_utilities.addLeadingZeros)(2)));
159
+ let selectedMinute = time.minute();
160
+ const selectedHour = time.hour();
161
+ if (disabledTimes) {
162
+ const { from, to } = disabledTimes;
163
+ if (selectedHour <= to.hour && selectedHour > from.hour) {
164
+ if (to) {
165
+ if (selectedMinute < to.min)
166
+ this.handleMinuteChange(to.min);
167
+ } else if (from) {
168
+ if (selectedMinute > from.min)
169
+ this.handleMinuteChange(from.min - 1);
170
+ }
171
+ } else {
172
+ selectedMinute = time.minute();
173
+ }
174
+ }
175
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
176
+ import_PickerPanel.default,
177
+ {
178
+ type: "minutes",
179
+ time,
180
+ hasHeader,
181
+ header: "M",
182
+ onChange: this.handleMinuteChange,
183
+ options: rangeMinutes,
184
+ selected: selectedMinute,
185
+ disabledTimes
186
+ }
187
+ );
188
+ }
189
+ renderSecondsPanel() {
190
+ const { time } = this.state;
191
+ const { showSeconds, format, hasHeader } = this.props;
192
+ if (!showSeconds)
193
+ return null;
194
+ const withLeadingZeros = format.indexOf("ss") > -1;
195
+ const rangeSeconds = (0, import_ds_legacy_utilities.range)(60).map(generateOption(withLeadingZeros && (0, import_ds_legacy_utilities.addLeadingZeros)(2)));
196
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
197
+ import_PickerPanel.default,
198
+ {
199
+ type: "seconds",
200
+ hasHeader,
201
+ header: "S",
202
+ onChange: this.handleSecondsChange,
203
+ options: rangeSeconds,
204
+ selected: time.second()
205
+ }
206
+ );
207
+ }
208
+ renderAMPMPanel() {
209
+ const { time } = this.state;
210
+ const { use12Hours, hasHeader, disabledTimes } = this.props;
211
+ if (!use12Hours)
212
+ return null;
213
+ let meridiemSelected = !(0, import_utils.isAM)(time) ? "pm" : "am";
214
+ if (disabledTimes && disabledTimes.to && meridiemSelected === "am") {
215
+ meridiemSelected = disabledTimes.to.hour >= 12 ? "pm" : "am";
216
+ if (meridiemSelected === "am" && time.hour() > 12) {
217
+ this.handleAMPMChange("am");
218
+ }
219
+ if (meridiemSelected === "pm" && time.hour() <= 12) {
220
+ this.handleAMPMChange("pm");
221
+ }
222
+ }
223
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
224
+ import_PickerPanel.default,
225
+ {
226
+ type: "meridiem",
227
+ hasHeader,
228
+ header: "",
229
+ onChange: this.handleAMPMChange,
230
+ options: [
231
+ { value: "am", label: "am" },
232
+ { value: "pm", label: "pm" }
233
+ ],
234
+ selected: meridiemSelected,
235
+ disabledTimes
236
+ }
237
+ );
238
+ }
239
+ render() {
240
+ const { hasHeaderDisplay } = this.props;
241
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TimePickerContainer, { children: [
242
+ hasHeaderDisplay && this.renderHeader(),
243
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TimePickerPanelContainer, { children: [
244
+ this.renderHoursPanel(),
245
+ this.renderMinutesPanel(),
246
+ this.renderSecondsPanel(),
247
+ this.renderAMPMPanel()
248
+ ] })
249
+ ] });
250
+ }
251
+ }
252
+ TimePickerMenu.defaultProps = {
253
+ time: (0, import_moment.default)(),
254
+ hasHeader: false,
255
+ use12Hours: true,
256
+ showSeconds: true,
257
+ showMinutes: true,
258
+ showHours: true,
259
+ disabledTimes: void 0,
260
+ onTimeChange: () => null
261
+ };
262
+ TimePickerMenu.propTypes = {
263
+ /** Time value */
264
+ time: import_prop_types.default.instanceOf(import_moment.default),
265
+ /** If the menu has header or not */
266
+ hasHeader: import_prop_types.default.bool,
267
+ /** Whether to use the 12 hours format */
268
+ use12Hours: import_prop_types.default.bool,
269
+ /** Whether show 'seconds' or not */
270
+ showSeconds: import_prop_types.default.bool,
271
+ /** Whether show 'minutes' or not */
272
+ showMinutes: import_prop_types.default.bool,
273
+ /** Whether show 'hours' or not */
274
+ showHours: import_prop_types.default.bool,
275
+ /** Handler when time changes */
276
+ onTimeChange: import_prop_types.default.func,
277
+ disabledTimes: import_prop_types.default.object
278
+ };
279
+ var TimePickerMenu_default = TimePickerMenu;
280
+ //# sourceMappingURL=TimePickerMenu.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/TimePickerMenu.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* 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-legacy-classnames';\nimport moment from 'moment';\nimport { range, addLeadingZeros } from '@elliemae/ds-legacy-utilities';\nimport { isAM } from './utils.js';\nimport PickerPanel from './PickerPanel.js';\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 this.handleMinuteChange = this.handleMinuteChange.bind(this);\n this.handleHoursChange = this.handleHoursChange.bind(this);\n this.handleSecondsChange = this.handleSecondsChange.bind(this);\n this.handleAMPMChange = this.handleAMPMChange.bind(this);\n this.updateTime = this.updateTime.bind(this);\n this.renderHoursPanel = this.renderHoursPanel.bind(this);\n this.renderMinutesPanel = this.renderMinutesPanel.bind(this);\n this.renderSecondsPanel = this.renderSecondsPanel.bind(this);\n this.renderAMPMPanel = this.renderAMPMPanel.bind(this);\n this.renderHeader = this.renderHeader.bind(this);\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", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
+ "names": ["moment", "PickerPanel", "PropTypes"]
7
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var src_exports = {};
31
+ __export(src_exports, {
32
+ convertTimeString: () => import_utils.convertTimeString,
33
+ default: () => import_DSTimePicker.default
34
+ });
35
+ module.exports = __toCommonJS(src_exports);
36
+ var React = __toESM(require("react"));
37
+ __reExport(src_exports, require("./DSTimePicker.js"), module.exports);
38
+ __reExport(src_exports, require("./TimePickerMenu.js"), module.exports);
39
+ __reExport(src_exports, require("./DSTimePickerMenu.js"), module.exports);
40
+ var import_utils = require("./utils.js");
41
+ var import_DSTimePicker = __toESM(require("./DSTimePicker.js"));
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["export * from './DSTimePicker.js';\nexport * from './TimePickerMenu.js';\nexport * from './DSTimePickerMenu.js';\n\nexport { convertTimeString } from './utils.js'; // this is an exception, we should move utils to shared tho?\n\nexport { default } from './DSTimePicker.js';\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,wBAAc,8BAAd;AACA,wBAAc,gCADd;AAEA,wBAAc,kCAFd;AAIA,mBAAkC;AAElC,0BAAwB;",
6
+ "names": []
7
+ }