@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,129 @@
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 DSTimePicker_exports = {};
30
+ __export(DSTimePicker_exports, {
31
+ DSTimePicker: () => DSTimePicker,
32
+ DSTimePickerWithSchema: () => DSTimePickerWithSchema,
33
+ default: () => DSTimePicker_default
34
+ });
35
+ module.exports = __toCommonJS(DSTimePicker_exports);
36
+ var React = __toESM(require("react"));
37
+ var import_jsx_runtime = require("react/jsx-runtime");
38
+ var import_ds_legacy_props_helpers = require("@elliemae/ds-legacy-props-helpers");
39
+ var import_moment = __toESM(require("moment"));
40
+ var import_TimePickerImpl = __toESM(require("./TimePickerImpl.js"));
41
+ const DSTimePicker = ({
42
+ containerProps = {},
43
+ innerRef,
44
+ className = "",
45
+ disabled = false,
46
+ value = "",
47
+ format,
48
+ style = {},
49
+ onChange = () => null,
50
+ onOpen = () => null,
51
+ isOpen = void 0,
52
+ clearable = false,
53
+ hasHeader = true,
54
+ hasHeaderDisplay = false,
55
+ "aria-label": ariaLabel,
56
+ zIndex = "auto",
57
+ placement = "bottom",
58
+ disabledTimes,
59
+ minutesInterval = 1
60
+ }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
61
+ import_TimePickerImpl.default,
62
+ {
63
+ ref: innerRef,
64
+ "aria-label": ariaLabel,
65
+ className,
66
+ clearable,
67
+ containerProps,
68
+ disabled,
69
+ format,
70
+ hasHeader,
71
+ hasHeaderDisplay,
72
+ isOpen,
73
+ onChange,
74
+ onOpen,
75
+ placement,
76
+ style,
77
+ value,
78
+ zIndex,
79
+ minutesInterval,
80
+ disabledTimes
81
+ }
82
+ );
83
+ DSTimePicker.defaultProps = {
84
+ format: "hh:mm:ss A"
85
+ };
86
+ const props = {
87
+ /** a11y label */
88
+ "aria-label": import_ds_legacy_props_helpers.PropTypes.string.description("a11y label"),
89
+ /** inject props to time picker wrapper */
90
+ containerProps: import_ds_legacy_props_helpers.PropTypes.object.description("inject props to time picker wrapper"),
91
+ /** Whether the time picker is disabled or not */
92
+ disabled: import_ds_legacy_props_helpers.PropTypes.bool.description("Whether the time picker is disabled or not"),
93
+ /** Time picker value */
94
+ value: import_ds_legacy_props_helpers.PropTypes.instanceOf(import_moment.default).description("Time picker value"),
95
+ /** Time format (hh:mm:ss, H:m:s) */
96
+ format: import_ds_legacy_props_helpers.PropTypes.string.description("Time format (hh:mm:ss, H:m:s)"),
97
+ /** toggle header style */
98
+ hasHeader: import_ds_legacy_props_helpers.PropTypes.bool.description("toggle header style"),
99
+ /** toggle header display */
100
+ hasHeaderDisplay: import_ds_legacy_props_helpers.PropTypes.bool.description("toggle header display"),
101
+ /** Handler when time picker value changes */
102
+ onChange: import_ds_legacy_props_helpers.PropTypes.func.description("Handler when time picker value changes"),
103
+ /** Handler when the time picker menu opens */
104
+ onOpen: import_ds_legacy_props_helpers.PropTypes.func.description("Handler when the time picker menu opens"),
105
+ /** Whether the time picker menu is opened or not */
106
+ isOpen: import_ds_legacy_props_helpers.PropTypes.bool.description("Whether the time picker menu is opened or not"),
107
+ /** ref for time picker input */
108
+ innerRef: import_ds_legacy_props_helpers.PropTypes.func.description("ref for time picker input"),
109
+ /** Enable to clear the time picker value */
110
+ clearable: import_ds_legacy_props_helpers.PropTypes.bool.description("Enable to clear the time picker value"),
111
+ /** class for time picker */
112
+ className: import_ds_legacy_props_helpers.PropTypes.string.description("class for time picker"),
113
+ /** style object */
114
+ style: import_ds_legacy_props_helpers.PropTypes.object.description("style object"),
115
+ /** z index for menu */
116
+ zIndex: import_ds_legacy_props_helpers.PropTypes.number.description("z index for menu"),
117
+ /** DSPopper placement */
118
+ placement: import_ds_legacy_props_helpers.PropTypes.string.description("DSPopper placement"),
119
+ /** disabled time */
120
+ disabledTimes: import_ds_legacy_props_helpers.PropTypes.object.description("disabled time"),
121
+ /** steps for the picker */
122
+ minutesInterval: import_ds_legacy_props_helpers.PropTypes.number.description("steps for the picker")
123
+ };
124
+ DSTimePicker.propTypes = props;
125
+ DSTimePicker.displayName = "DSTimePicker";
126
+ const DSTimePickerWithSchema = (0, import_ds_legacy_props_helpers.describe)(DSTimePicker);
127
+ DSTimePickerWithSchema.propTypes = props;
128
+ var DSTimePicker_default = DSTimePicker;
129
+ //# sourceMappingURL=DSTimePicker.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/DSTimePicker.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React from 'react';\nimport { PropTypes, describe } from '@elliemae/ds-legacy-props-helpers';\nimport Moment from 'moment';\nimport TimePickerImpl from './TimePickerImpl.js';\n\nconst DSTimePicker = ({\n containerProps = {},\n innerRef,\n className = '',\n disabled = false,\n value = '',\n format,\n style = {},\n onChange = () => null,\n onOpen = () => null,\n isOpen = undefined,\n clearable = false,\n hasHeader = true,\n hasHeaderDisplay = false,\n 'aria-label': ariaLabel,\n zIndex = 'auto',\n placement = 'bottom',\n disabledTimes,\n minutesInterval = 1,\n}) => (\n <TimePickerImpl\n ref={innerRef}\n aria-label={ariaLabel}\n className={className}\n clearable={clearable}\n containerProps={containerProps}\n disabled={disabled}\n format={format}\n hasHeader={hasHeader}\n hasHeaderDisplay={hasHeaderDisplay}\n isOpen={isOpen}\n onChange={onChange}\n onOpen={onOpen}\n placement={placement}\n style={style}\n value={value}\n zIndex={zIndex}\n minutesInterval={minutesInterval}\n disabledTimes={disabledTimes}\n />\n);\n\nDSTimePicker.defaultProps = {\n format: 'hh:mm:ss A',\n};\n\nconst props = {\n /** a11y label */\n 'aria-label': PropTypes.string.description('a11y label'),\n /** inject props to time picker wrapper */\n containerProps: PropTypes.object.description('inject props to time picker wrapper'),\n /** Whether the time picker is disabled or not */\n disabled: PropTypes.bool.description('Whether the time picker is disabled or not'),\n /** Time picker value */\n value: PropTypes.instanceOf(Moment).description('Time picker value'),\n /** Time format (hh:mm:ss, H:m:s) */\n format: PropTypes.string.description('Time format (hh:mm:ss, H:m:s)'),\n /** toggle header style */\n hasHeader: PropTypes.bool.description('toggle header style'),\n /** toggle header display */\n hasHeaderDisplay: PropTypes.bool.description('toggle header display'),\n /** Handler when time picker value changes */\n onChange: PropTypes.func.description('Handler when time picker value changes'),\n /** Handler when the time picker menu opens */\n onOpen: PropTypes.func.description('Handler when the time picker menu opens'),\n /** Whether the time picker menu is opened or not */\n isOpen: PropTypes.bool.description('Whether the time picker menu is opened or not'),\n /** ref for time picker input */\n innerRef: PropTypes.func.description('ref for time picker input'),\n /** Enable to clear the time picker value */\n clearable: PropTypes.bool.description('Enable to clear the time picker value'),\n /** class for time picker */\n className: PropTypes.string.description('class for time picker'),\n /** style object */\n style: PropTypes.object.description('style object'),\n /** z index for menu */\n zIndex: PropTypes.number.description('z index for menu'),\n /** DSPopper placement */\n placement: PropTypes.string.description('DSPopper placement'),\n /** disabled time */\n disabledTimes: PropTypes.object.description('disabled time'),\n /** steps for the picker */\n minutesInterval: PropTypes.number.description('steps for the picker'),\n};\n\nDSTimePicker.propTypes = props;\nDSTimePicker.displayName = 'DSTimePicker';\nconst DSTimePickerWithSchema = describe(DSTimePicker);\nDSTimePickerWithSchema.propTypes = props;\n\nexport { DSTimePicker, DSTimePickerWithSchema };\nexport default DSTimePicker;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADyBrB;AAxBF,qCAAoC;AACpC,oBAAmB;AACnB,4BAA2B;AAE3B,MAAM,eAAe,CAAC;AAAA,EACpB,iBAAiB,CAAC;AAAA,EAClB;AAAA,EACA,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR;AAAA,EACA,QAAQ,CAAC;AAAA,EACT,WAAW,MAAM;AAAA,EACjB,SAAS,MAAM;AAAA,EACf,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,SAAS;AAAA,EACT,YAAY;AAAA,EACZ;AAAA,EACA,kBAAkB;AACpB,MACE;AAAA,EAAC,sBAAAA;AAAA,EAAA;AAAA,IACC,KAAK;AAAA,IACL,cAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AACF;AAGF,aAAa,eAAe;AAAA,EAC1B,QAAQ;AACV;AAEA,MAAM,QAAQ;AAAA;AAAA,EAEZ,cAAc,yCAAU,OAAO,YAAY,YAAY;AAAA;AAAA,EAEvD,gBAAgB,yCAAU,OAAO,YAAY,qCAAqC;AAAA;AAAA,EAElF,UAAU,yCAAU,KAAK,YAAY,4CAA4C;AAAA;AAAA,EAEjF,OAAO,yCAAU,WAAW,cAAAC,OAAM,EAAE,YAAY,mBAAmB;AAAA;AAAA,EAEnE,QAAQ,yCAAU,OAAO,YAAY,+BAA+B;AAAA;AAAA,EAEpE,WAAW,yCAAU,KAAK,YAAY,qBAAqB;AAAA;AAAA,EAE3D,kBAAkB,yCAAU,KAAK,YAAY,uBAAuB;AAAA;AAAA,EAEpE,UAAU,yCAAU,KAAK,YAAY,wCAAwC;AAAA;AAAA,EAE7E,QAAQ,yCAAU,KAAK,YAAY,yCAAyC;AAAA;AAAA,EAE5E,QAAQ,yCAAU,KAAK,YAAY,+CAA+C;AAAA;AAAA,EAElF,UAAU,yCAAU,KAAK,YAAY,2BAA2B;AAAA;AAAA,EAEhE,WAAW,yCAAU,KAAK,YAAY,uCAAuC;AAAA;AAAA,EAE7E,WAAW,yCAAU,OAAO,YAAY,uBAAuB;AAAA;AAAA,EAE/D,OAAO,yCAAU,OAAO,YAAY,cAAc;AAAA;AAAA,EAElD,QAAQ,yCAAU,OAAO,YAAY,kBAAkB;AAAA;AAAA,EAEvD,WAAW,yCAAU,OAAO,YAAY,oBAAoB;AAAA;AAAA,EAE5D,eAAe,yCAAU,OAAO,YAAY,eAAe;AAAA;AAAA,EAE3D,iBAAiB,yCAAU,OAAO,YAAY,sBAAsB;AACtE;AAEA,aAAa,YAAY;AACzB,aAAa,cAAc;AAC3B,MAAM,6BAAyB,yCAAS,YAAY;AACpD,uBAAuB,YAAY;AAGnC,IAAO,uBAAQ;",
6
+ "names": ["TimePickerImpl", "Moment"]
7
+ }
@@ -0,0 +1,45 @@
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 DSTimePickerMenu_exports = {};
30
+ __export(DSTimePickerMenu_exports, {
31
+ DSTimePickerMenu: () => DSTimePickerMenu,
32
+ default: () => DSTimePickerMenu_default
33
+ });
34
+ module.exports = __toCommonJS(DSTimePickerMenu_exports);
35
+ var React = __toESM(require("react"));
36
+ var import_jsx_runtime = require("react/jsx-runtime");
37
+ var import_ds_legacy_system = require("@elliemae/ds-legacy-system");
38
+ var import_TimePickerMenu = __toESM(require("./TimePickerMenu.js"));
39
+ const DSTimePickerMenuWrapper = import_ds_legacy_system.styled.div`
40
+ display: flex;
41
+ height: 18.6rem;
42
+ `;
43
+ const DSTimePickerMenu = (props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DSTimePickerMenuWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_TimePickerMenu.default, { ...props }) });
44
+ var DSTimePickerMenu_default = DSTimePickerMenu;
45
+ //# sourceMappingURL=DSTimePickerMenu.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/DSTimePickerMenu.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React from 'react';\nimport { styled } from '@elliemae/ds-legacy-system';\nimport TimePickerMenu from './TimePickerMenu.js';\n\nconst DSTimePickerMenuWrapper = styled.div`\n display: flex;\n height: 18.6rem;\n`;\nconst DSTimePickerMenu = (props) => (\n <DSTimePickerMenuWrapper>\n <TimePickerMenu {...props} />\n </DSTimePickerMenuWrapper>\n);\nexport { DSTimePickerMenu };\nexport default DSTimePickerMenu;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADUnB;AATJ,8BAAuB;AACvB,4BAA2B;AAE3B,MAAM,0BAA0B,+BAAO;AAAA;AAAA;AAAA;AAIvC,MAAM,mBAAmB,CAAC,UACxB,4CAAC,2BACC,sDAAC,sBAAAA,SAAA,EAAgB,GAAG,OAAO,GAC7B;AAGF,IAAO,2BAAQ;",
6
+ "names": ["TimePickerMenu"]
7
+ }
@@ -0,0 +1,337 @@
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 PickerPanel_exports = {};
30
+ __export(PickerPanel_exports, {
31
+ PickerPanel: () => PickerPanel,
32
+ default: () => PickerPanel
33
+ });
34
+ module.exports = __toCommonJS(PickerPanel_exports);
35
+ var React = __toESM(require("react"));
36
+ var import_jsx_runtime = require("react/jsx-runtime");
37
+ var import_react = __toESM(require("react"));
38
+ var import_lodash = require("lodash");
39
+ var import_ds_legacy_classnames = require("@elliemae/ds-legacy-classnames");
40
+ var import_memoize_one = __toESM(require("memoize-one"));
41
+ var import_ds_legacy_icons = require("@elliemae/ds-legacy-icons");
42
+ var import_ds_legacy_button = require("@elliemae/ds-legacy-button");
43
+ var import_moveElementOnScroll = require("./moveElementOnScroll.js");
44
+ var import_utils = require("./utils.js");
45
+ const blockName = "time-picker-panel";
46
+ const Container = (0, import_ds_legacy_classnames.aggregatedClasses)("div")(blockName, null, ({ scrolling }) => ({ scrolling }));
47
+ const Wrapper = (0, import_ds_legacy_classnames.aggregatedClasses)("div")(blockName, "wrapper");
48
+ const PickerItemListContainer = (0, import_ds_legacy_classnames.aggregatedClasses)("div")(blockName, "item-list-container");
49
+ const PickerItemList = (0, import_ds_legacy_classnames.aggregatedClasses)("div")(blockName, "item-list");
50
+ const PickerHeader = (0, import_ds_legacy_classnames.aggregatedClasses)("div")(blockName, "header");
51
+ const PickerItemContainer = (0, import_ds_legacy_classnames.aggregatedClasses)("div")(blockName, "item", ({ selected, disabled }) => ({
52
+ selected,
53
+ disabled
54
+ }));
55
+ const PickerSelectedOptionSelected = (0, import_ds_legacy_classnames.aggregatedClasses)("div")(blockName, "selected-container");
56
+ const SelectedCircle = (0, import_ds_legacy_classnames.aggregatedClasses)("div")(blockName, "selected-circle");
57
+ const ArrowButtonContainer = (0, import_ds_legacy_classnames.aggregatedClasses)("div")(blockName, "arrow-container");
58
+ const getOptionIndex = (options, selectedOption, valueProperty = "value") => {
59
+ const index = options.findIndex((option) => option[valueProperty] === selectedOption);
60
+ return (0, import_utils.validateIndex)(index, options);
61
+ };
62
+ const arrowProps = {
63
+ buttonType: "text",
64
+ fluidHeight: true,
65
+ fluidWidth: true,
66
+ size: "s"
67
+ };
68
+ class PickerPanel extends import_react.Component {
69
+ constructor(props) {
70
+ super(props);
71
+ this.computeContainerTranslation = (0, import_memoize_one.default)((index) => {
72
+ const { options, valueProperty } = this.props;
73
+ const { selectedOption, scrolling } = this.state;
74
+ const selectedOptionIndex = index || getOptionIndex(options, selectedOption, valueProperty);
75
+ const listYPosition = this.minYListPosition - selectedOptionIndex * this.optionHeight;
76
+ if (this.scrollHandler && !scrolling)
77
+ this.scrollHandler.updatePosition(listYPosition);
78
+ return listYPosition;
79
+ });
80
+ this.pickerListContainerRef = import_react.default.createRef();
81
+ this.pickerListRef = import_react.default.createRef();
82
+ this.pickerItemRef = import_react.default.createRef();
83
+ this.selectedOptionRef = import_react.default.createRef();
84
+ this.state = {
85
+ selectedOption: props.selected,
86
+ activeIndex: 0,
87
+ // eslint-disable-next-line react/no-unused-state
88
+ prevProps: {}
89
+ };
90
+ this.getOptionValue = this.getOptionValue.bind(this);
91
+ this.getOptionLabel = this.getOptionLabel.bind(this);
92
+ this.computeSizes = this.computeSizes.bind(this);
93
+ this.handleOptionSelect = this.handleOptionSelect.bind(this);
94
+ this.handleKeyDown = this.handleKeyDown.bind(this);
95
+ this.moveTo = this.moveTo.bind(this);
96
+ this.handleStepMoveUp = this.handleStepMoveUp.bind(this);
97
+ this.handleStepMoveDown = this.handleStepMoveDown.bind(this);
98
+ this.renderHeader = this.renderHeader.bind(this);
99
+ }
100
+ componentDidMount() {
101
+ this.computeSizes();
102
+ const pickerListContainerEl = this.pickerListContainerRef.current;
103
+ const pickerListEl = this.pickerListRef.current;
104
+ this.scrollHandler = new import_moveElementOnScroll.MoveElementOnScroll(pickerListEl, {
105
+ container: pickerListContainerEl,
106
+ min: -this.minYListPosition,
107
+ max: this.maxYListPosition,
108
+ onUpdate: (pos, delta) => {
109
+ const { options } = this.props;
110
+ const index = options.length - -Math.floor((pos - this.maxYListPosition) / this.optionHeight) + (delta > 0 ? 1 : -1);
111
+ this.moveTo(index, true);
112
+ },
113
+ onEndScroll: () => {
114
+ this.setState({ scrolling: false });
115
+ }
116
+ });
117
+ this.computeContainerTranslation();
118
+ }
119
+ componentWillUnmount() {
120
+ this.scrollHandler.unsubscribe();
121
+ }
122
+ static getDerivedStateFromProps(nextProps, { prevProps }) {
123
+ const { selected, valueProperty, options } = nextProps;
124
+ if (selected !== prevProps.selected) {
125
+ return {
126
+ selectedOption: selected,
127
+ activeIndex: getOptionIndex(options, selected, valueProperty),
128
+ prevProps: nextProps
129
+ };
130
+ }
131
+ return null;
132
+ }
133
+ getOptionValue(option) {
134
+ const { valueProperty } = this.props;
135
+ return option[valueProperty];
136
+ }
137
+ getOptionLabel(option) {
138
+ const { labelProperty } = this.props;
139
+ return option[labelProperty];
140
+ }
141
+ computeSizes() {
142
+ const { options, numberItemsOnScreen } = this.props;
143
+ const { offsetHeight: optionHeight } = this.pickerItemRef.current;
144
+ this.optionHeight = optionHeight;
145
+ this.listHeight = this.optionHeight * numberItemsOnScreen;
146
+ this.minYListPosition = this.listHeight / 2 - this.optionHeight / 2;
147
+ this.maxYListPosition = this.optionHeight * (options.length - Math.ceil(numberItemsOnScreen / 2));
148
+ }
149
+ handleOptionSelect(optionValue, index, scrolling) {
150
+ const { onChange } = this.props;
151
+ this.setState(
152
+ (state) => ({
153
+ ...state,
154
+ scrolling,
155
+ selectedOption: optionValue,
156
+ activeIndex: index
157
+ }),
158
+ () => {
159
+ onChange(optionValue, index);
160
+ }
161
+ );
162
+ }
163
+ // TODO: this needs a refactor from de FocusGroup
164
+ // eslint-disable-next-line max-statements
165
+ handleKeyDown(e) {
166
+ const { activeIndex } = this.state;
167
+ const { options } = this.props;
168
+ const [firstColumn, ...restColumns] = document.getElementsByClassName("em-ds-time-picker-panel");
169
+ const [lastColumn] = restColumns.slice(-1);
170
+ const [prev] = document.getElementsByClassName("DayPickerNavigation_button");
171
+ const focusedElement = document.activeElement;
172
+ switch (e.key) {
173
+ case "Home":
174
+ this.moveTo(0);
175
+ break;
176
+ case "End":
177
+ this.moveTo(options.length - 1);
178
+ break;
179
+ case "ArrowUp":
180
+ this.moveTo(activeIndex - 1);
181
+ break;
182
+ case "ArrowDown":
183
+ this.moveTo(activeIndex + 1);
184
+ break;
185
+ case "Tab": {
186
+ e.preventDefault();
187
+ if (prev && focusedElement === lastColumn) {
188
+ prev.focus();
189
+ } else if (focusedElement === lastColumn) {
190
+ firstColumn.focus();
191
+ } else {
192
+ const position = (0, import_lodash.findIndex)(restColumns, focusedElement);
193
+ restColumns[position + 1].focus();
194
+ }
195
+ break;
196
+ }
197
+ default:
198
+ break;
199
+ }
200
+ }
201
+ moveTo(index, scrolling) {
202
+ const { options } = this.props;
203
+ const { selectedOption } = this.state;
204
+ const validIndex = (0, import_utils.validateIndex)(index, options);
205
+ const option = options[validIndex];
206
+ const optionValue = this.getOptionValue(option);
207
+ if (selectedOption !== optionValue && option.disabled !== true) {
208
+ this.handleOptionSelect(optionValue, validIndex, scrolling);
209
+ }
210
+ }
211
+ handleStepMoveUp() {
212
+ const { activeIndex } = this.state;
213
+ const { arrowStep, options } = this.props;
214
+ const supposedPos = activeIndex - arrowStep;
215
+ const nextPos = supposedPos >= 0 ? supposedPos : activeIndex - 1;
216
+ const nextValidOption = options.find((op) => !op.disabled);
217
+ this.moveTo(nextPos, true, nextValidOption);
218
+ }
219
+ handleStepMoveDown() {
220
+ const { activeIndex } = this.state;
221
+ const { arrowStep, options } = this.props;
222
+ const supposedPos = activeIndex + arrowStep;
223
+ const nextPos = supposedPos <= options.length ? supposedPos : activeIndex + 1;
224
+ this.moveTo(nextPos);
225
+ }
226
+ renderHeader() {
227
+ const { header } = this.props;
228
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PickerHeader, { children: header });
229
+ }
230
+ render() {
231
+ const { options, hasHeader, type, time, meridiem, disabledTimes } = this.props;
232
+ const { selectedOption, activeIndex, scrolling } = this.state;
233
+ const listYPosition = this.computeContainerTranslation(activeIndex);
234
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Wrapper, { children: [
235
+ hasHeader && this.renderHeader(),
236
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Container, { classProps: { scrolling }, onKeyDown: this.handleKeyDown, tabIndex: 0, children: [
237
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PickerSelectedOptionSelected, { innerRef: this.selectedOptionRef, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectedCircle, {}) }),
238
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ArrowButtonContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
239
+ import_ds_legacy_button.DSButton,
240
+ {
241
+ ...arrowProps,
242
+ "aria-label": "Chevron Up",
243
+ "data-testid": `${type}-chevron-up`,
244
+ disabled: activeIndex <= 0,
245
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_legacy_icons.ChevronSmallUp, {}),
246
+ onClick: this.handleStepMoveUp,
247
+ tabIndex: -1
248
+ }
249
+ ) }),
250
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
251
+ PickerItemListContainer,
252
+ {
253
+ innerRef: this.pickerListContainerRef,
254
+ style: {
255
+ height: this.listHeight
256
+ },
257
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
258
+ PickerItemList,
259
+ {
260
+ "data-testid": `${type}-list`,
261
+ innerRef: this.pickerListRef,
262
+ style: {
263
+ transform: `translateY(${listYPosition}px)`
264
+ },
265
+ children: options.map((option, index) => {
266
+ const value = this.getOptionValue(option);
267
+ const label = this.getOptionLabel(option);
268
+ let valueFormatted;
269
+ if (meridiem === "AM")
270
+ valueFormatted = value;
271
+ else if (meridiem === "PM" && value === 12)
272
+ valueFormatted = value;
273
+ else if (meridiem === "PM")
274
+ valueFormatted = value + 12;
275
+ let disabled = false;
276
+ if (disabledTimes) {
277
+ const { from, to } = disabledTimes;
278
+ if (type === "hour" && valueFormatted >= from?.hour && valueFormatted < to?.hour || type === "minutes" && value >= from?.min && value < to?.min) {
279
+ disabled = true;
280
+ }
281
+ if (type === "minutes" && (time?.hour() > to?.hour || time?.hour() < from?.hour)) {
282
+ disabled = false;
283
+ }
284
+ if (label === "am" && from?.hour == 0 && to?.hour >= 12) {
285
+ disabled = true;
286
+ }
287
+ if (label === "pm" && to?.hour == 24) {
288
+ disabled = true;
289
+ }
290
+ }
291
+ option.disabled = disabled;
292
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
293
+ PickerItemContainer,
294
+ {
295
+ classProps: {
296
+ selected: selectedOption ? value === selectedOption : index === 0,
297
+ disabled
298
+ },
299
+ innerRef: this.pickerItemRef,
300
+ onClick: () => {
301
+ if (!disabled)
302
+ this.handleOptionSelect(value, index);
303
+ },
304
+ children: label
305
+ },
306
+ value
307
+ );
308
+ })
309
+ }
310
+ )
311
+ }
312
+ ),
313
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ArrowButtonContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
314
+ import_ds_legacy_button.DSButton,
315
+ {
316
+ ...arrowProps,
317
+ "aria-label": "Chevron Down",
318
+ "data-testid": `${type}-chevron-down`,
319
+ disabled: activeIndex >= options.length - 1,
320
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_legacy_icons.ChevronSmallDown, {}),
321
+ onClick: this.handleStepMoveDown,
322
+ tabIndex: -1
323
+ }
324
+ ) })
325
+ ] })
326
+ ] });
327
+ }
328
+ }
329
+ PickerPanel.defaultProps = {
330
+ valueProperty: "value",
331
+ labelProperty: "label",
332
+ numberItemsOnScreen: 5,
333
+ // this number should be impair
334
+ options: [],
335
+ arrowStep: 1
336
+ };
337
+ //# sourceMappingURL=PickerPanel.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/PickerPanel.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable eqeqeq */\n/* eslint-disable react/prop-types */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport { findIndex } from 'lodash';\nimport { aggregatedClasses } from '@elliemae/ds-legacy-classnames';\nimport memoizeOne from 'memoize-one';\nimport { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-legacy-icons';\nimport { DSButton } from '@elliemae/ds-legacy-button';\nimport { MoveElementOnScroll } from './moveElementOnScroll.js';\nimport { validateIndex } from './utils.js';\n\nconst blockName = 'time-picker-panel';\n\nconst Container = aggregatedClasses('div')(blockName, null, ({ scrolling }) => ({ scrolling }));\nconst Wrapper = aggregatedClasses('div')(blockName, 'wrapper');\nconst PickerItemListContainer = aggregatedClasses('div')(blockName, 'item-list-container');\nconst PickerItemList = aggregatedClasses('div')(blockName, 'item-list');\nconst PickerHeader = aggregatedClasses('div')(blockName, 'header');\nconst PickerItemContainer = aggregatedClasses('div')(blockName, 'item', ({ selected, disabled }) => ({\n selected,\n disabled,\n}));\nconst PickerSelectedOptionSelected = aggregatedClasses('div')(blockName, 'selected-container');\nconst SelectedCircle = aggregatedClasses('div')(blockName, 'selected-circle');\nconst ArrowButtonContainer = aggregatedClasses('div')(blockName, 'arrow-container');\n\nconst getOptionIndex = (options, selectedOption, valueProperty = 'value') => {\n const index = options.findIndex((option) => option[valueProperty] === selectedOption);\n return validateIndex(index, options);\n};\n\nconst arrowProps = {\n buttonType: 'text',\n fluidHeight: true,\n fluidWidth: true,\n size: 's',\n};\n\nexport default class PickerPanel extends Component {\n computeContainerTranslation = memoizeOne((index) => {\n const { options, valueProperty } = this.props;\n const { selectedOption, scrolling } = this.state;\n\n const selectedOptionIndex = index || getOptionIndex(options, selectedOption, valueProperty);\n const listYPosition = this.minYListPosition - selectedOptionIndex * this.optionHeight;\n\n if (this.scrollHandler && !scrolling) this.scrollHandler.updatePosition(listYPosition);\n\n return listYPosition;\n });\n\n constructor(props) {\n super(props);\n this.pickerListContainerRef = React.createRef();\n this.pickerListRef = React.createRef();\n this.pickerItemRef = React.createRef();\n this.selectedOptionRef = React.createRef();\n\n this.state = {\n selectedOption: props.selected,\n activeIndex: 0,\n // eslint-disable-next-line react/no-unused-state\n prevProps: {},\n };\n\n this.getOptionValue = this.getOptionValue.bind(this);\n this.getOptionLabel = this.getOptionLabel.bind(this);\n this.computeSizes = this.computeSizes.bind(this);\n this.handleOptionSelect = this.handleOptionSelect.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.moveTo = this.moveTo.bind(this);\n this.handleStepMoveUp = this.handleStepMoveUp.bind(this);\n this.handleStepMoveDown = this.handleStepMoveDown.bind(this);\n this.renderHeader = this.renderHeader.bind(this);\n }\n\n componentDidMount() {\n this.computeSizes();\n const pickerListContainerEl = this.pickerListContainerRef.current;\n const pickerListEl = this.pickerListRef.current;\n\n this.scrollHandler = new MoveElementOnScroll(pickerListEl, {\n container: pickerListContainerEl,\n min: -this.minYListPosition,\n max: this.maxYListPosition,\n onUpdate: (pos, delta) => {\n const { options } = this.props;\n const index =\n options.length - -Math.floor((pos - this.maxYListPosition) / this.optionHeight) + (delta > 0 ? 1 : -1);\n this.moveTo(index, true);\n },\n onEndScroll: () => {\n this.setState({ scrolling: false });\n },\n });\n this.computeContainerTranslation();\n }\n\n componentWillUnmount() {\n this.scrollHandler.unsubscribe();\n }\n\n static getDerivedStateFromProps(nextProps, { prevProps }) {\n const { selected, valueProperty, options } = nextProps;\n if (selected !== prevProps.selected) {\n return {\n selectedOption: selected,\n activeIndex: getOptionIndex(options, selected, valueProperty),\n prevProps: nextProps,\n };\n }\n return null;\n }\n\n getOptionValue(option) {\n const { valueProperty } = this.props;\n return option[valueProperty];\n }\n\n getOptionLabel(option) {\n const { labelProperty } = this.props;\n return option[labelProperty];\n }\n\n computeSizes() {\n const { options, numberItemsOnScreen } = this.props;\n const { offsetHeight: optionHeight } = this.pickerItemRef.current;\n\n this.optionHeight = optionHeight;\n this.listHeight = this.optionHeight * numberItemsOnScreen;\n\n this.minYListPosition = this.listHeight / 2 - this.optionHeight / 2;\n this.maxYListPosition = this.optionHeight * (options.length - Math.ceil(numberItemsOnScreen / 2));\n }\n\n handleOptionSelect(optionValue, index, scrolling) {\n const { onChange } = this.props;\n this.setState(\n (state) => ({\n ...state,\n scrolling,\n selectedOption: optionValue,\n activeIndex: index,\n }),\n () => {\n onChange(optionValue, index);\n },\n );\n }\n\n // TODO: this needs a refactor from de FocusGroup\n // eslint-disable-next-line max-statements\n handleKeyDown(e) {\n const { activeIndex } = this.state;\n const { options } = this.props;\n const [firstColumn, ...restColumns] = document.getElementsByClassName('em-ds-time-picker-panel');\n const [lastColumn] = restColumns.slice(-1);\n const [prev] = document.getElementsByClassName('DayPickerNavigation_button');\n const focusedElement = document.activeElement;\n\n switch (e.key) {\n case 'Home':\n this.moveTo(0);\n break;\n case 'End':\n this.moveTo(options.length - 1);\n break;\n case 'ArrowUp':\n this.moveTo(activeIndex - 1);\n break;\n case 'ArrowDown':\n this.moveTo(activeIndex + 1);\n break;\n case 'Tab': {\n e.preventDefault();\n // If it is DateTimePicker, move focus to prev arrow element\n if (prev && focusedElement === lastColumn) {\n prev.focus();\n } else if (focusedElement === lastColumn) {\n firstColumn.focus();\n } else {\n const position = findIndex(restColumns, focusedElement);\n restColumns[position + 1].focus();\n }\n break;\n }\n default:\n break;\n }\n }\n\n moveTo(index, scrolling) {\n const { options } = this.props;\n const { selectedOption } = this.state;\n const validIndex = validateIndex(index, options);\n const option = options[validIndex];\n const optionValue = this.getOptionValue(option);\n if (selectedOption !== optionValue && option.disabled !== true) {\n this.handleOptionSelect(optionValue, validIndex, scrolling);\n }\n // TO-DO: if date disabled, add nextValidOption selection\n }\n\n handleStepMoveUp() {\n const { activeIndex } = this.state;\n const { arrowStep, options } = this.props;\n const supposedPos = activeIndex - arrowStep;\n const nextPos = supposedPos >= 0 ? supposedPos : activeIndex - 1;\n\n const nextValidOption = options.find((op) => !op.disabled);\n this.moveTo(nextPos, true, nextValidOption);\n }\n\n handleStepMoveDown() {\n const { activeIndex } = this.state;\n const { arrowStep, options } = this.props;\n const supposedPos = activeIndex + arrowStep;\n const nextPos = supposedPos <= options.length ? supposedPos : activeIndex + 1;\n this.moveTo(nextPos);\n }\n\n renderHeader() {\n const { header } = this.props;\n\n return <PickerHeader>{header}</PickerHeader>;\n }\n\n render() {\n const { options, hasHeader, type, time, meridiem, disabledTimes } = this.props;\n const { selectedOption, activeIndex, scrolling } = this.state;\n\n const listYPosition = this.computeContainerTranslation(activeIndex);\n\n return (\n <Wrapper>\n {hasHeader && this.renderHeader()}\n <Container classProps={{ scrolling }} onKeyDown={this.handleKeyDown} tabIndex={0}>\n <PickerSelectedOptionSelected innerRef={this.selectedOptionRef}>\n <SelectedCircle />\n </PickerSelectedOptionSelected>\n <ArrowButtonContainer>\n <DSButton\n {...arrowProps}\n aria-label=\"Chevron Up\"\n data-testid={`${type}-chevron-up`}\n disabled={activeIndex <= 0}\n icon={<ChevronSmallUp />}\n onClick={this.handleStepMoveUp}\n tabIndex={-1}\n />\n </ArrowButtonContainer>\n <PickerItemListContainer\n innerRef={this.pickerListContainerRef}\n style={{\n height: this.listHeight,\n }}\n >\n <PickerItemList\n data-testid={`${type}-list`}\n innerRef={this.pickerListRef}\n style={{\n transform: `translateY(${listYPosition}px)`,\n }}\n >\n {options.map((option, index) => {\n const value = this.getOptionValue(option);\n const label = this.getOptionLabel(option);\n let valueFormatted;\n if (meridiem === 'AM') valueFormatted = value;\n else if (meridiem === 'PM' && value === 12) valueFormatted = value;\n else if (meridiem === 'PM') valueFormatted = value + 12;\n\n let disabled = false;\n if (disabledTimes) {\n const { from, to } = disabledTimes;\n if (\n (type === 'hour' && valueFormatted >= from?.hour && valueFormatted < to?.hour) ||\n (type === 'minutes' && value >= from?.min && value < to?.min)\n ) {\n disabled = true;\n }\n if (type === 'minutes' && (time?.hour() > to?.hour || time?.hour() < from?.hour)) {\n disabled = false;\n }\n if (label === 'am' && from?.hour == 0 && to?.hour >= 12) {\n disabled = true;\n }\n if (label === 'pm' && to?.hour == 24) {\n disabled = true;\n }\n }\n\n option.disabled = disabled;\n\n return (\n <PickerItemContainer\n key={value}\n classProps={{\n selected: selectedOption ? value === selectedOption : index === 0,\n disabled,\n }}\n innerRef={this.pickerItemRef}\n onClick={() => {\n if (!disabled) this.handleOptionSelect(value, index);\n }}\n >\n {label}\n </PickerItemContainer>\n );\n })}\n </PickerItemList>\n </PickerItemListContainer>\n <ArrowButtonContainer>\n <DSButton\n {...arrowProps}\n aria-label=\"Chevron Down\"\n data-testid={`${type}-chevron-down`}\n disabled={activeIndex >= options.length - 1}\n icon={<ChevronSmallDown />}\n onClick={this.handleStepMoveDown}\n tabIndex={-1}\n />\n </ArrowButtonContainer>\n </Container>\n </Wrapper>\n );\n }\n}\n\nPickerPanel.defaultProps = {\n valueProperty: 'value',\n labelProperty: 'label',\n numberItemsOnScreen: 5, // this number should be impair\n options: [],\n arrowStep: 1,\n};\n\nexport { PickerPanel };\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
+ "names": ["memoizeOne", "React"]
7
+ }
@@ -0,0 +1,71 @@
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 TimePickerDropdown_exports = {};
30
+ __export(TimePickerDropdown_exports, {
31
+ default: () => TimePickerDropdown_default
32
+ });
33
+ module.exports = __toCommonJS(TimePickerDropdown_exports);
34
+ var React = __toESM(require("react"));
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_prop_types = __toESM(require("prop-types"));
37
+ var import_ds_legacy_icons = require("@elliemae/ds-legacy-icons");
38
+ var import_ds_legacy_button = __toESM(require("@elliemae/ds-legacy-button"));
39
+ var import_ds_legacy_popper = __toESM(require("@elliemae/ds-legacy-popper"));
40
+ const TimePickerDropdown = ({ disabled = false, onClick, onOpen, isOpen, menu, zIndex, blockName, placement }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
41
+ import_ds_legacy_popper.default,
42
+ {
43
+ blockName,
44
+ placement,
45
+ contentComponent: menu,
46
+ isOpen,
47
+ onOpen,
48
+ modifiers: {
49
+ preventOverflow: {
50
+ enabled: true,
51
+ padding: 0,
52
+ boundariesElement: "window"
53
+ }
54
+ },
55
+ showArrow: false,
56
+ triggerComponent: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_legacy_button.default, { buttonType: "secondary", disabled, icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_legacy_icons.RecentDocuments, {}), iconSize: "s", onClick }),
57
+ zIndex
58
+ }
59
+ );
60
+ TimePickerDropdown.propTypes = {
61
+ onClick: import_prop_types.default.func,
62
+ onOpen: import_prop_types.default.func,
63
+ disabled: import_prop_types.default.bool,
64
+ isOpen: import_prop_types.default.bool,
65
+ menu: import_prop_types.default.element,
66
+ blockName: import_prop_types.default.string,
67
+ placement: import_prop_types.default.string,
68
+ zIndex: import_prop_types.default.number
69
+ };
70
+ var TimePickerDropdown_default = TimePickerDropdown;
71
+ //# sourceMappingURL=TimePickerDropdown.js.map