@elliemae/ds-form 3.0.0-next.13 → 3.0.0-next.17

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 (33) hide show
  1. package/dist/cjs/CheckboxGroup/props.js +3 -7
  2. package/dist/cjs/CheckboxGroup/props.js.map +2 -2
  3. package/dist/cjs/ExpandableInput/ExpandableInputImpl.js +3 -13
  4. package/dist/cjs/ExpandableInput/ExpandableInputImpl.js.map +2 -2
  5. package/dist/cjs/FormItem/ValidationFieldWrapper.js +26 -26
  6. package/dist/cjs/FormItem/ValidationFieldWrapper.js.map +2 -2
  7. package/dist/cjs/RadioGroup/props.js +3 -6
  8. package/dist/cjs/RadioGroup/props.js.map +2 -2
  9. package/dist/cjs/TimeInput/TimeInputs.js +30 -34
  10. package/dist/cjs/TimeInput/TimeInputs.js.map +2 -2
  11. package/dist/cjs/TimeInput/utils.js +8 -8
  12. package/dist/cjs/TimeInput/utils.js.map +2 -2
  13. package/dist/cjs/Toggle/DSToggle.js +2 -2
  14. package/dist/cjs/Toggle/DSToggle.js.map +2 -2
  15. package/dist/cjs/Toggle/props.js +2 -2
  16. package/dist/cjs/Toggle/props.js.map +2 -2
  17. package/dist/esm/CheckboxGroup/props.js +2 -6
  18. package/dist/esm/CheckboxGroup/props.js.map +2 -2
  19. package/dist/esm/ExpandableInput/ExpandableInputImpl.js +2 -12
  20. package/dist/esm/ExpandableInput/ExpandableInputImpl.js.map +2 -2
  21. package/dist/esm/FormItem/ValidationFieldWrapper.js +26 -26
  22. package/dist/esm/FormItem/ValidationFieldWrapper.js.map +2 -2
  23. package/dist/esm/RadioGroup/props.js +2 -5
  24. package/dist/esm/RadioGroup/props.js.map +2 -2
  25. package/dist/esm/TimeInput/TimeInputs.js +2 -6
  26. package/dist/esm/TimeInput/TimeInputs.js.map +2 -2
  27. package/dist/esm/TimeInput/utils.js +1 -8
  28. package/dist/esm/TimeInput/utils.js.map +2 -2
  29. package/dist/esm/Toggle/DSToggle.js +1 -1
  30. package/dist/esm/Toggle/DSToggle.js.map +2 -2
  31. package/dist/esm/Toggle/props.js +1 -1
  32. package/dist/esm/Toggle/props.js.map +1 -1
  33. package/package.json +12 -12
@@ -32,19 +32,15 @@ __export(props_exports, {
32
32
  var React = __toESM(require("react"));
33
33
  var import_react_desc = require("react-desc");
34
34
  var import_Checkbox = require("../Checkbox");
35
- var import_prop_types = require("@elliemae/ds-shared/prop-types");
35
+ var import_ds_shared = require("@elliemae/ds-shared");
36
36
  const props = {
37
37
  onChange: import_react_desc.PropTypes.func.description("Allows a function that is triggered once the checkbox group changes"),
38
- activeValue: import_react_desc.PropTypes.oneOfType([
39
- import_react_desc.PropTypes.string,
40
- import_react_desc.PropTypes.number,
41
- import_react_desc.PropTypes.array
42
- ]).description("Default active value"),
38
+ activeValue: import_react_desc.PropTypes.oneOfType([import_react_desc.PropTypes.string, import_react_desc.PropTypes.number, import_react_desc.PropTypes.array]).description("Default active value"),
43
39
  children: import_react_desc.PropTypes.arrayOf(import_react_desc.PropTypes.shape({
44
40
  type: import_Checkbox.DSCheckbox
45
41
  })).description("Checkbox group items to show of type DSCheckbox"),
46
42
  disabled: import_react_desc.PropTypes.bool.description("Whether the checkbox group is disabled or not"),
47
- orientation: import_react_desc.PropTypes.oneOf(import_prop_types.orientation).description("['horizontal', 'vertical']"),
43
+ orientation: import_react_desc.PropTypes.oneOf(import_ds_shared.orientation).description("['horizontal', 'vertical']"),
48
44
  labelProps: import_react_desc.PropTypes.objectOf(import_react_desc.PropTypes.shape({
49
45
  feedbackMessage: import_react_desc.PropTypes.string,
50
46
  labelText: import_react_desc.PropTypes.oneOfType([import_react_desc.PropTypes.string, import_react_desc.PropTypes.element]),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/CheckboxGroup/props.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import { PropTypes } from 'react-desc';\nimport { DSCheckbox } from '../Checkbox';\nimport { orientation as checkboxGroupOrientation } from '@elliemae/ds-shared/prop-types';\n\nexport const props = {\n /**\n * Allows a function that is triggered once the checkbox group changes\n */\n onChange: PropTypes.func.description(\n 'Allows a function that is triggered once the checkbox group changes',\n ),\n /**\n * Default active value\n */\n activeValue: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.array,\n ]).description('Default active value'),\n /**\n * Checkbox group items to show of type DSCheckbox\n */\n children: PropTypes.arrayOf(\n PropTypes.shape({\n type: DSCheckbox,\n }),\n ).description('Checkbox group items to show of type DSCheckbox'),\n /**\n * Whether the checkbox group is disabled or not\n */\n disabled: PropTypes.bool.description(\n 'Whether the checkbox group is disabled or not',\n ),\n /**\n * ['horizontal', 'vertical']\n */\n orientation: PropTypes.oneOf(checkboxGroupOrientation).description(\n \"['horizontal', 'vertical']\",\n ),\n /**\n * label props\n */\n labelProps: PropTypes.objectOf(\n PropTypes.shape({\n feedbackMessage: PropTypes.string,\n labelText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n required: PropTypes.bool,\n }),\n ).description('label props'),\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,wBAA0B;AAC1B,sBAA2B;AAC3B,wBAAwD;AAEjD,MAAM,QAAQ;AAAA,EAInB,UAAU,4BAAU,KAAK,YACvB;AAAA,EAKF,aAAa,4BAAU,UAAU;AAAA,IAC/B,4BAAU;AAAA,IACV,4BAAU;AAAA,IACV,4BAAU;AAAA,KACT,YAAY;AAAA,EAIf,UAAU,4BAAU,QAClB,4BAAU,MAAM;AAAA,IACd,MAAM;AAAA,MAER,YAAY;AAAA,EAId,UAAU,4BAAU,KAAK,YACvB;AAAA,EAKF,aAAa,4BAAU,MAAM,+BAA0B,YACrD;AAAA,EAKF,YAAY,4BAAU,SACpB,4BAAU,MAAM;AAAA,IACd,iBAAiB,4BAAU;AAAA,IAC3B,WAAW,4BAAU,UAAU,CAAC,4BAAU,QAAQ,4BAAU;AAAA,IAC5D,UAAU,4BAAU;AAAA,MAEtB,YAAY;AAAA;",
4
+ "sourcesContent": ["import { PropTypes } from 'react-desc';\nimport { DSCheckbox } from '../Checkbox';\nimport { orientation as checkboxGroupOrientation } from '@elliemae/ds-shared';\n\nexport const props = {\n /**\n * Allows a function that is triggered once the checkbox group changes\n */\n onChange: PropTypes.func.description('Allows a function that is triggered once the checkbox group changes'),\n /**\n * Default active value\n */\n activeValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.array]).description(\n 'Default active value',\n ),\n /**\n * Checkbox group items to show of type DSCheckbox\n */\n children: PropTypes.arrayOf(\n PropTypes.shape({\n type: DSCheckbox,\n }),\n ).description('Checkbox group items to show of type DSCheckbox'),\n /**\n * Whether the checkbox group is disabled or not\n */\n disabled: PropTypes.bool.description('Whether the checkbox group is disabled or not'),\n /**\n * ['horizontal', 'vertical']\n */\n orientation: PropTypes.oneOf(checkboxGroupOrientation).description(\"['horizontal', 'vertical']\"),\n /**\n * label props\n */\n labelProps: PropTypes.objectOf(\n PropTypes.shape({\n feedbackMessage: PropTypes.string,\n labelText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n required: PropTypes.bool,\n }),\n ).description('label props'),\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,wBAA0B;AAC1B,sBAA2B;AAC3B,uBAAwD;AAEjD,MAAM,QAAQ;AAAA,EAInB,UAAU,4BAAU,KAAK,YAAY;AAAA,EAIrC,aAAa,4BAAU,UAAU,CAAC,4BAAU,QAAQ,4BAAU,QAAQ,4BAAU,QAAQ,YACtF;AAAA,EAKF,UAAU,4BAAU,QAClB,4BAAU,MAAM;AAAA,IACd,MAAM;AAAA,MAER,YAAY;AAAA,EAId,UAAU,4BAAU,KAAK,YAAY;AAAA,EAIrC,aAAa,4BAAU,MAAM,8BAA0B,YAAY;AAAA,EAInE,YAAY,4BAAU,SACpB,4BAAU,MAAM;AAAA,IACd,iBAAiB,4BAAU;AAAA,IAC3B,WAAW,4BAAU,UAAU,CAAC,4BAAU,QAAQ,4BAAU;AAAA,IAC5D,UAAU,4BAAU;AAAA,MAEtB,YAAY;AAAA;",
6
6
  "names": []
7
7
  }
@@ -50,7 +50,7 @@ __export(ExpandableInputImpl_exports, {
50
50
  var React = __toESM(require("react"));
51
51
  var import_react = __toESM(require("react"));
52
52
  var import_ds_classnames = require("@elliemae/ds-classnames");
53
- var import_utils = require("@elliemae/ds-shared/utils");
53
+ var import_ds_shared = require("@elliemae/ds-shared");
54
54
  var import_Input = require("../Input");
55
55
  const blockName = "expandable-input";
56
56
  const ExpandableInput = (0, import_ds_classnames.aggregatedClasses)("div")(blockName, null, ({ isOpen }) => ({ opened: isOpen }));
@@ -62,20 +62,10 @@ class ExpandableInputImpl extends import_react.Component {
62
62
  this.input.focus();
63
63
  }
64
64
  render() {
65
- const {
66
- innerRef,
67
- triggerComponent,
68
- children,
69
- width,
70
- isOpen,
71
- onOpen,
72
- onClose,
73
- onBlur,
74
- containerProps
75
- } = this.props;
65
+ const { innerRef, triggerComponent, children, width, isOpen, onOpen, onClose, onBlur, containerProps } = this.props;
76
66
  const InputComponent = import_react.default.Children.only(children);
77
67
  const handleTriggerClick = (e) => {
78
- if ((0, import_utils.isFunction)(triggerComponent.onClick))
68
+ if ((0, import_ds_shared.isFunction)(triggerComponent.onClick))
79
69
  triggerComponent.onClick(e);
80
70
  if (isOpen) {
81
71
  onClose();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ExpandableInput/ExpandableInputImpl.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { Component, cloneElement } from 'react';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { isFunction } from '@elliemae/ds-shared/utils';\nimport { InputAddonWrapper } from '../Input';\n\nconst blockName = 'expandable-input';\n\nconst ExpandableInput = aggregatedClasses('div')(\n blockName,\n null,\n ({ isOpen }) => ({ opened: isOpen }),\n);\nconst InputWrapper = aggregatedClasses(InputAddonWrapper)(\n blockName,\n 'wrapper',\n ({ isOpen }) => ({ opened: isOpen }),\n);\n\nclass ExpandableInputImpl extends Component {\n componentDidUpdate(prevProps) {\n const { isOpen } = this.props;\n if (isOpen && isOpen !== prevProps.isOpen) this.input.focus();\n }\n\n render() {\n const {\n innerRef,\n triggerComponent,\n children,\n width,\n isOpen,\n onOpen,\n onClose,\n onBlur,\n containerProps,\n } = this.props;\n const InputComponent = React.Children.only(children);\n const handleTriggerClick = e => {\n if (isFunction(triggerComponent.onClick)) triggerComponent.onClick(e);\n if (isOpen) {\n onClose();\n } else {\n onOpen();\n }\n };\n\n return (\n <ExpandableInput\n {...containerProps}\n classProps={{ isOpen }}\n innerRef={innerRef}\n style={{ width: isOpen && width }}\n >\n <InputWrapper\n rightComponents={[\n cloneElement(triggerComponent, {\n key: 'handler',\n onClick: handleTriggerClick,\n }),\n ]}\n >\n {cloneElement(InputComponent, {\n className: 'expandable-input__input',\n innerRef: node => (this.input = node),\n onBlur,\n })}\n </InputWrapper>\n </ExpandableInput>\n );\n }\n}\n\nexport { ExpandableInputImpl };\nexport default ExpandableInputImpl;", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA+C;AAC/C,2BAAkC;AAClC,mBAA2B;AAC3B,mBAAkC;AAElC,MAAM,YAAY;AAElB,MAAM,kBAAkB,4CAAkB,OACxC,WACA,MACA,CAAC,EAAE,aAAc,GAAE,QAAQ;AAE7B,MAAM,eAAe,4CAAkB,gCACrC,WACA,WACA,CAAC,EAAE,aAAc,GAAE,QAAQ;AAG7B,kCAAkC,uBAAU;AAAA,EAC1C,mBAAmB,WAAW;AAC5B,UAAM,EAAE,WAAW,KAAK;AACxB,QAAI,UAAU,WAAW,UAAU;AAAQ,WAAK,MAAM;AAAA;AAAA,EAGxD,SAAS;AACP,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,KAAK;AACT,UAAM,iBAAiB,qBAAM,SAAS,KAAK;AAC3C,UAAM,qBAAqB,OAAK;AAC9B,UAAI,6BAAW,iBAAiB;AAAU,yBAAiB,QAAQ;AACnE,UAAI,QAAQ;AACV;AAAA,aACK;AACL;AAAA;AAAA;AAIJ,WACE,mDAAC,iBAAD,iCACM,iBADN;AAAA,MAEE,YAAY,EAAE;AAAA,MACd;AAAA,MACA,OAAO,EAAE,OAAO,UAAU;AAAA,QAE1B,mDAAC,cAAD;AAAA,MACE,iBAAiB;AAAA,QACf,+BAAa,kBAAkB;AAAA,UAC7B,KAAK;AAAA,UACL,SAAS;AAAA;AAAA;AAAA,OAIZ,+BAAa,gBAAgB;AAAA,MAC5B,WAAW;AAAA,MACX,UAAU,UAAS,KAAK,QAAQ;AAAA,MAChC;AAAA;AAAA;AAAA;AASZ,IAAO,8BAAQ;",
4
+ "sourcesContent": ["import React, { Component, cloneElement } from 'react';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { isFunction } from '@elliemae/ds-shared';\nimport { InputAddonWrapper } from '../Input';\n\nconst blockName = 'expandable-input';\n\nconst ExpandableInput = aggregatedClasses('div')(blockName, null, ({ isOpen }) => ({ opened: isOpen }));\nconst InputWrapper = aggregatedClasses(InputAddonWrapper)(blockName, 'wrapper', ({ isOpen }) => ({ opened: isOpen }));\n\nclass ExpandableInputImpl extends Component {\n componentDidUpdate(prevProps) {\n const { isOpen } = this.props;\n if (isOpen && isOpen !== prevProps.isOpen) this.input.focus();\n }\n\n render() {\n const { innerRef, triggerComponent, children, width, isOpen, onOpen, onClose, onBlur, containerProps } = this.props;\n const InputComponent = React.Children.only(children);\n const handleTriggerClick = (e) => {\n if (isFunction(triggerComponent.onClick)) triggerComponent.onClick(e);\n if (isOpen) {\n onClose();\n } else {\n onOpen();\n }\n };\n\n return (\n <ExpandableInput\n {...containerProps}\n classProps={{ isOpen }}\n innerRef={innerRef}\n style={{ width: isOpen && width }}\n >\n <InputWrapper\n rightComponents={[\n cloneElement(triggerComponent, {\n key: 'handler',\n onClick: handleTriggerClick,\n }),\n ]}\n >\n {cloneElement(InputComponent, {\n className: 'expandable-input__input',\n innerRef: (node) => (this.input = node),\n onBlur,\n })}\n </InputWrapper>\n </ExpandableInput>\n );\n }\n}\n\nexport { ExpandableInputImpl };\nexport default ExpandableInputImpl;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA+C;AAC/C,2BAAkC;AAClC,uBAA2B;AAC3B,mBAAkC;AAElC,MAAM,YAAY;AAElB,MAAM,kBAAkB,4CAAkB,OAAO,WAAW,MAAM,CAAC,EAAE,aAAc,GAAE,QAAQ;AAC7F,MAAM,eAAe,4CAAkB,gCAAmB,WAAW,WAAW,CAAC,EAAE,aAAc,GAAE,QAAQ;AAE3G,kCAAkC,uBAAU;AAAA,EAC1C,mBAAmB,WAAW;AAC5B,UAAM,EAAE,WAAW,KAAK;AACxB,QAAI,UAAU,WAAW,UAAU;AAAQ,WAAK,MAAM;AAAA;AAAA,EAGxD,SAAS;AACP,UAAM,EAAE,UAAU,kBAAkB,UAAU,OAAO,QAAQ,QAAQ,SAAS,QAAQ,mBAAmB,KAAK;AAC9G,UAAM,iBAAiB,qBAAM,SAAS,KAAK;AAC3C,UAAM,qBAAqB,CAAC,MAAM;AAChC,UAAI,iCAAW,iBAAiB;AAAU,yBAAiB,QAAQ;AACnE,UAAI,QAAQ;AACV;AAAA,aACK;AACL;AAAA;AAAA;AAIJ,WACE,mDAAC,iBAAD,iCACM,iBADN;AAAA,MAEE,YAAY,EAAE;AAAA,MACd;AAAA,MACA,OAAO,EAAE,OAAO,UAAU;AAAA,QAE1B,mDAAC,cAAD;AAAA,MACE,iBAAiB;AAAA,QACf,+BAAa,kBAAkB;AAAA,UAC7B,KAAK;AAAA,UACL,SAAS;AAAA;AAAA;AAAA,OAIZ,+BAAa,gBAAgB;AAAA,MAC5B,WAAW;AAAA,MACX,UAAU,CAAC,SAAU,KAAK,QAAQ;AAAA,MAClC;AAAA;AAAA;AAAA;AASZ,IAAO,8BAAQ;",
6
6
  "names": []
7
7
  }
@@ -51,6 +51,32 @@ var import_react = require("react");
51
51
  class ValidationFieldWrapper extends import_react.Component {
52
52
  constructor(props) {
53
53
  super(props);
54
+ this.handleChange = (e) => {
55
+ const { onChange } = this.props;
56
+ this.setState({ value: e.target.value });
57
+ if (onChange)
58
+ onChange(e);
59
+ };
60
+ this.handleBlur = (e) => {
61
+ const { onBlur, validateOnBlur } = this.props;
62
+ const { value } = this.state;
63
+ if (validateOnBlur)
64
+ this.executeValidations(value);
65
+ onBlur(e);
66
+ };
67
+ this.executeValidations = (value) => {
68
+ const { validations } = this.props;
69
+ if (validations && Array.isArray(validations)) {
70
+ if (!validations.some((validation) => {
71
+ const { error, payload } = validation({ value });
72
+ if (error)
73
+ this.setState({ validationMessage: payload, state: error });
74
+ return error;
75
+ })) {
76
+ this.setState({ hasError: false });
77
+ }
78
+ }
79
+ };
54
80
  this.state = {
55
81
  value: props.value
56
82
  };
@@ -67,32 +93,6 @@ class ValidationFieldWrapper extends import_react.Component {
67
93
  value
68
94
  });
69
95
  }
70
- handleChange(e) {
71
- const { onChange } = this.props;
72
- this.setState({ value: e.target.value });
73
- if (onChange)
74
- onChange(e);
75
- }
76
- handleBlur(e) {
77
- const { onBlur, validateOnBlur } = this.props;
78
- const { value } = this.state;
79
- if (validateOnBlur)
80
- this.executeValidations(value);
81
- onBlur(e);
82
- }
83
- executeValidations(value) {
84
- const { validations } = this.props;
85
- if (validations && Array.isArray(validations)) {
86
- if (!validations.some((validation) => {
87
- const { error, payload } = validation({ value });
88
- if (error)
89
- this.setState({ validationMessage: payload, state: error });
90
- return error;
91
- })) {
92
- this.setState({ hasError: false });
93
- }
94
- }
95
- }
96
96
  render() {
97
97
  const { children } = this.props;
98
98
  const { value, validationMessage, validationState, hasError } = this.state;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/FormItem/ValidationFieldWrapper.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import { Component } from 'react';\n\nexport default class ValidationFieldWrapper extends Component {\n static defaultProps = {\n validateOnBlur: false,\n validateOnChange: false,\n name: '', // name in context of the form\n value: '',\n validate: () => null,\n onChange: () => null,\n onBlur: () => null,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n };\n }\n\n componentDidMount() {\n const { value } = this.state;\n this.executeValidations(value);\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const { value } = nextProps;\n if (value === prevState.value) return null;\n return {\n ...prevState,\n value,\n };\n }\n\n handleChange(e) {\n const { onChange } = this.props;\n this.setState({ value: e.target.value });\n if (onChange) onChange(e);\n }\n\n handleBlur(e) {\n const { onBlur, validateOnBlur } = this.props;\n const { value } = this.state;\n if (validateOnBlur) this.executeValidations(value);\n onBlur(e);\n }\n\n executeValidations(value) {\n const { validations } = this.props;\n if (validations && Array.isArray(validations)) {\n if (\n !validations.some(validation => {\n const { error, payload } = validation({ value });\n if (error)\n this.setState({ validationMessage: payload, state: error });\n return error;\n })\n ) {\n this.setState({ hasError: false });\n }\n }\n }\n\n render() {\n const { children } = this.props;\n const { value, validationMessage, validationState, hasError } = this.state;\n return children({\n value,\n validationMessage,\n validationState,\n hasError,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n });\n }\n}\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA0B;AAE1B,qCAAoD,uBAAU;AAAA,EAW5D,YAAY,OAAO;AACjB,UAAM;AACN,SAAK,QAAQ;AAAA,MACX,OAAO,MAAM;AAAA;AAAA;AAAA,EAIjB,oBAAoB;AAClB,UAAM,EAAE,UAAU,KAAK;AACvB,SAAK,mBAAmB;AAAA;AAAA,SAGnB,yBAAyB,WAAW,WAAW;AACpD,UAAM,EAAE,UAAU;AAClB,QAAI,UAAU,UAAU;AAAO,aAAO;AACtC,WAAO,iCACF,YADE;AAAA,MAEL;AAAA;AAAA;AAAA,EAIJ,aAAa,GAAG;AACd,UAAM,EAAE,aAAa,KAAK;AAC1B,SAAK,SAAS,EAAE,OAAO,EAAE,OAAO;AAChC,QAAI;AAAU,eAAS;AAAA;AAAA,EAGzB,WAAW,GAAG;AACZ,UAAM,EAAE,QAAQ,mBAAmB,KAAK;AACxC,UAAM,EAAE,UAAU,KAAK;AACvB,QAAI;AAAgB,WAAK,mBAAmB;AAC5C,WAAO;AAAA;AAAA,EAGT,mBAAmB,OAAO;AACxB,UAAM,EAAE,gBAAgB,KAAK;AAC7B,QAAI,eAAe,MAAM,QAAQ,cAAc;AAC7C,UACE,CAAC,YAAY,KAAK,gBAAc;AAC9B,cAAM,EAAE,OAAO,YAAY,WAAW,EAAE;AACxC,YAAI;AACF,eAAK,SAAS,EAAE,mBAAmB,SAAS,OAAO;AACrD,eAAO;AAAA,UAET;AACA,aAAK,SAAS,EAAE,UAAU;AAAA;AAAA;AAAA;AAAA,EAKhC,SAAS;AACP,UAAM,EAAE,aAAa,KAAK;AAC1B,UAAM,EAAE,OAAO,mBAAmB,iBAAiB,aAAa,KAAK;AACrE,WAAO,SAAS;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,KAAK;AAAA,MACf,QAAQ,KAAK;AAAA;AAAA;AAAA;AArEV,AADT,uBACS,eAAe;AAAA,EACpB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU,MAAM;AAAA,EAChB,UAAU,MAAM;AAAA,EAChB,QAAQ,MAAM;AAAA;",
4
+ "sourcesContent": ["import { Component } from 'react';\n\nexport default class ValidationFieldWrapper extends Component {\n static defaultProps = {\n validateOnBlur: false,\n validateOnChange: false,\n name: '', // name in context of the form\n value: '',\n validate: () => null,\n onChange: () => null,\n onBlur: () => null,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n };\n }\n\n componentDidMount() {\n const { value } = this.state;\n this.executeValidations(value);\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const { value } = nextProps;\n if (value === prevState.value) return null;\n return {\n ...prevState,\n value,\n };\n }\n\n handleChange = (e) => {\n const { onChange } = this.props;\n this.setState({ value: e.target.value });\n if (onChange) onChange(e);\n }\n\n handleBlur = (e) => {\n const { onBlur, validateOnBlur } = this.props;\n const { value } = this.state;\n if (validateOnBlur) this.executeValidations(value);\n onBlur(e);\n }\n\n executeValidations = (value) => {\n const { validations } = this.props;\n if (validations && Array.isArray(validations)) {\n if (\n !validations.some(validation => {\n const { error, payload } = validation({ value });\n if (error)\n this.setState({ validationMessage: payload, state: error });\n return error;\n })\n ) {\n this.setState({ hasError: false });\n }\n }\n }\n\n render() {\n const { children } = this.props;\n const { value, validationMessage, validationState, hasError } = this.state;\n return children({\n value,\n validationMessage,\n validationState,\n hasError,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n });\n }\n}\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA0B;AAE1B,qCAAoD,uBAAU;AAAA,EAW5D,YAAY,OAAO;AACjB,UAAM;AAoBR,wBAAe,CAAC,MAAM;AACpB,YAAM,EAAE,aAAa,KAAK;AAC1B,WAAK,SAAS,EAAE,OAAO,EAAE,OAAO;AAChC,UAAI;AAAU,iBAAS;AAAA;AAGzB,sBAAa,CAAC,MAAM;AAClB,YAAM,EAAE,QAAQ,mBAAmB,KAAK;AACxC,YAAM,EAAE,UAAU,KAAK;AACvB,UAAI;AAAgB,aAAK,mBAAmB;AAC5C,aAAO;AAAA;AAGT,8BAAqB,CAAC,UAAU;AAC9B,YAAM,EAAE,gBAAgB,KAAK;AAC7B,UAAI,eAAe,MAAM,QAAQ,cAAc;AAC7C,YACE,CAAC,YAAY,KAAK,gBAAc;AAC9B,gBAAM,EAAE,OAAO,YAAY,WAAW,EAAE;AACxC,cAAI;AACF,iBAAK,SAAS,EAAE,mBAAmB,SAAS,OAAO;AACrD,iBAAO;AAAA,YAET;AACA,eAAK,SAAS,EAAE,UAAU;AAAA;AAAA;AAAA;AA3C9B,SAAK,QAAQ;AAAA,MACX,OAAO,MAAM;AAAA;AAAA;AAAA,EAIjB,oBAAoB;AAClB,UAAM,EAAE,UAAU,KAAK;AACvB,SAAK,mBAAmB;AAAA;AAAA,SAGnB,yBAAyB,WAAW,WAAW;AACpD,UAAM,EAAE,UAAU;AAClB,QAAI,UAAU,UAAU;AAAO,aAAO;AACtC,WAAO,iCACF,YADE;AAAA,MAEL;AAAA;AAAA;AAAA,EAiCJ,SAAS;AACP,UAAM,EAAE,aAAa,KAAK;AAC1B,UAAM,EAAE,OAAO,mBAAmB,iBAAiB,aAAa,KAAK;AACrE,WAAO,SAAS;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,KAAK;AAAA,MACf,QAAQ,KAAK;AAAA;AAAA;AAAA;AArEV,AADT,uBACS,eAAe;AAAA,EACpB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU,MAAM;AAAA,EAChB,UAAU,MAAM;AAAA,EAChB,QAAQ,MAAM;AAAA;",
6
6
  "names": []
7
7
  }
@@ -31,16 +31,13 @@ __export(props_exports, {
31
31
  });
32
32
  var React = __toESM(require("react"));
33
33
  var import_react_desc = require("react-desc");
34
- var import_prop_types = require("@elliemae/ds-shared/prop-types");
34
+ var import_ds_shared = require("@elliemae/ds-shared");
35
35
  const props = {
36
36
  containerProps: import_react_desc.PropTypes.object.description("Inject props to component wrapper"),
37
37
  onChange: import_react_desc.PropTypes.func.description("Allows a function that is triggered once the radio group changes"),
38
- activeValue: import_react_desc.PropTypes.oneOfType([
39
- import_react_desc.PropTypes.string,
40
- import_react_desc.PropTypes.number
41
- ]).description("Selected default active value"),
38
+ activeValue: import_react_desc.PropTypes.oneOfType([import_react_desc.PropTypes.string, import_react_desc.PropTypes.number]).description("Selected default active value"),
42
39
  children: import_react_desc.PropTypes.arrayOf(import_react_desc.PropTypes.element).isRequired.description("Radio group items to show of type DSRadio"),
43
- orientation: import_react_desc.PropTypes.oneOf(import_prop_types.orientation).description("['horizontal', 'vertical']"),
40
+ orientation: import_react_desc.PropTypes.oneOf(import_ds_shared.orientation).description("['horizontal', 'vertical']"),
44
41
  disabled: import_react_desc.PropTypes.bool.description(""),
45
42
  labelProps: import_react_desc.PropTypes.shape({
46
43
  feedbackMessage: import_react_desc.PropTypes.string,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/RadioGroup/props.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import { PropTypes } from 'react-desc';\nimport { orientation as radioGroupOrientation } from '@elliemae/ds-shared/prop-types';\n\nexport const props = {\n /** Inject props to component wrapper */\n containerProps: PropTypes.object.description(\n 'Inject props to component wrapper',\n ),\n /**\n * Allows a function that is triggered once the radio group changes\n */\n onChange: PropTypes.func.description(\n 'Allows a function that is triggered once the radio group changes',\n ),\n /**\n * Selected default active value\n */\n activeValue: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n ]).description('Selected default active value'),\n /**\n * Radio group items to show of type DSRadio\n */\n children: PropTypes.arrayOf(PropTypes.element).isRequired.description(\n 'Radio group items to show of type DSRadio',\n ),\n /**\n * ['horizontal', 'vertical']\n */\n orientation: PropTypes.oneOf(radioGroupOrientation).description(\n \"['horizontal', 'vertical']\",\n ),\n /**\n * Whether the radio group is disabled or not\n */\n disabled: PropTypes.bool.description(''),\n labelProps: PropTypes.shape({\n feedbackMessage: PropTypes.string,\n labelText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n required: PropTypes.bool,\n }).description('Whether the radio group is disabled or not'),\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,wBAA0B;AAC1B,wBAAqD;AAE9C,MAAM,QAAQ;AAAA,EAEnB,gBAAgB,4BAAU,OAAO,YAC/B;AAAA,EAKF,UAAU,4BAAU,KAAK,YACvB;AAAA,EAKF,aAAa,4BAAU,UAAU;AAAA,IAC/B,4BAAU;AAAA,IACV,4BAAU;AAAA,KACT,YAAY;AAAA,EAIf,UAAU,4BAAU,QAAQ,4BAAU,SAAS,WAAW,YACxD;AAAA,EAKF,aAAa,4BAAU,MAAM,+BAAuB,YAClD;AAAA,EAKF,UAAU,4BAAU,KAAK,YAAY;AAAA,EACrC,YAAY,4BAAU,MAAM;AAAA,IAC1B,iBAAiB,4BAAU;AAAA,IAC3B,WAAW,4BAAU,UAAU,CAAC,4BAAU,QAAQ,4BAAU;AAAA,IAC5D,UAAU,4BAAU;AAAA,KACnB,YAAY;AAAA;",
4
+ "sourcesContent": ["import { PropTypes } from 'react-desc';\nimport { orientation as radioGroupOrientation } from '@elliemae/ds-shared';\n\nexport const props = {\n /** Inject props to component wrapper */\n containerProps: PropTypes.object.description('Inject props to component wrapper'),\n /**\n * Allows a function that is triggered once the radio group changes\n */\n onChange: PropTypes.func.description('Allows a function that is triggered once the radio group changes'),\n /**\n * Selected default active value\n */\n activeValue: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('Selected default active value'),\n /**\n * Radio group items to show of type DSRadio\n */\n children: PropTypes.arrayOf(PropTypes.element).isRequired.description('Radio group items to show of type DSRadio'),\n /**\n * ['horizontal', 'vertical']\n */\n orientation: PropTypes.oneOf(radioGroupOrientation).description(\"['horizontal', 'vertical']\"),\n /**\n * Whether the radio group is disabled or not\n */\n disabled: PropTypes.bool.description(''),\n labelProps: PropTypes.shape({\n feedbackMessage: PropTypes.string,\n labelText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n required: PropTypes.bool,\n }).description('Whether the radio group is disabled or not'),\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,wBAA0B;AAC1B,uBAAqD;AAE9C,MAAM,QAAQ;AAAA,EAEnB,gBAAgB,4BAAU,OAAO,YAAY;AAAA,EAI7C,UAAU,4BAAU,KAAK,YAAY;AAAA,EAIrC,aAAa,4BAAU,UAAU,CAAC,4BAAU,QAAQ,4BAAU,SAAS,YAAY;AAAA,EAInF,UAAU,4BAAU,QAAQ,4BAAU,SAAS,WAAW,YAAY;AAAA,EAItE,aAAa,4BAAU,MAAM,8BAAuB,YAAY;AAAA,EAIhE,UAAU,4BAAU,KAAK,YAAY;AAAA,EACrC,YAAY,4BAAU,MAAM;AAAA,IAC1B,iBAAiB,4BAAU;AAAA,IAC3B,WAAW,4BAAU,UAAU,CAAC,4BAAU,QAAQ,4BAAU;AAAA,IAC5D,UAAU,4BAAU;AAAA,KACnB,YAAY;AAAA;",
6
6
  "names": []
7
7
  }
@@ -52,7 +52,7 @@ var import_react = __toESM(require("react"));
52
52
  var import_ds_classnames = require("@elliemae/ds-classnames");
53
53
  var import_moment = __toESM(require("moment"));
54
54
  var import_utils = require("./utils");
55
- var import_constants = require("@elliemae/ds-shared/constants");
55
+ var import_ds_shared = require("@elliemae/ds-shared");
56
56
  const blockName = "input-times-group";
57
57
  const InputTimesGroup = (0, import_ds_classnames.aggregatedClasses)("div")(blockName);
58
58
  const TimeInput = (0, import_ds_classnames.aggregatedClasses)("input")(blockName, "input");
@@ -115,7 +115,7 @@ const TimeInputs = ({
115
115
  if (showSeconds && seconds)
116
116
  selectedTime.seconds(seconds);
117
117
  if (use12Hours && meridiem) {
118
- const nextHours = meridiem.toLowerCase() === import_constants.AM ? hours % 12 : hours % 12 + 12;
118
+ const nextHours = meridiem.toLowerCase() === import_ds_shared.AM ? hours % 12 : hours % 12 + 12;
119
119
  selectedTime.hour(nextHours);
120
120
  }
121
121
  onChange(selectedTime);
@@ -146,21 +146,21 @@ const TimeInputs = ({
146
146
  const { value } = target;
147
147
  setLastTypedNumber(event.key);
148
148
  switch (event.key) {
149
- case import_constants.ARROW_UP: {
149
+ case import_ds_shared.ARROW_UP: {
150
150
  event.preventDefault();
151
151
  setCurrentKey(event.key);
152
152
  const incrementedValue = getNextTimeValue(value);
153
153
  (0, import_utils.setNativeValue)(event.target, incrementedValue);
154
154
  break;
155
155
  }
156
- case import_constants.ARROW_DOWN: {
156
+ case import_ds_shared.ARROW_DOWN: {
157
157
  event.preventDefault();
158
158
  setCurrentKey(event.key);
159
159
  const decrementedValue = getNextTimeValue(value, false);
160
160
  (0, import_utils.setNativeValue)(event.target, decrementedValue);
161
161
  break;
162
162
  }
163
- case import_constants.BACKSPACE: {
163
+ case import_ds_shared.BACKSPACE: {
164
164
  event.preventDefault();
165
165
  if (!value) {
166
166
  (0, import_utils.focusPreviousInput)(event.target);
@@ -169,24 +169,24 @@ const TimeInputs = ({
169
169
  }
170
170
  break;
171
171
  }
172
- case import_constants.ESCAPE: {
172
+ case import_ds_shared.ESCAPE: {
173
173
  event.preventDefault();
174
174
  event.target.blur();
175
175
  break;
176
176
  }
177
- case import_constants.HOME: {
177
+ case import_ds_shared.HOME: {
178
178
  event.preventDefault();
179
179
  (0, import_utils.setNativeValue)(event.target, String(max));
180
180
  (0, import_utils.focusNextInput)(event.target);
181
181
  break;
182
182
  }
183
- case import_constants.END: {
183
+ case import_ds_shared.END: {
184
184
  event.preventDefault();
185
185
  (0, import_utils.setNativeValue)(event.target, "00");
186
186
  (0, import_utils.focusNextInput)(event.target);
187
187
  break;
188
188
  }
189
- case import_constants.SHIFT:
189
+ case import_ds_shared.SHIFT:
190
190
  event.preventDefault();
191
191
  setCurrentKey(event.key);
192
192
  break;
@@ -209,43 +209,43 @@ const TimeInputs = ({
209
209
  const handleSecondsChange = (e) => {
210
210
  const { value } = e.target;
211
211
  const secondsHandled = (0, import_utils.parseTimeNumberFromText)(value);
212
- const nextSeconds = (0, import_utils.getValidTimeNumber)(import_constants.GENERAL_TIME_RANGE, secondsHandled, lastTypedNumber);
212
+ const nextSeconds = (0, import_utils.getValidTimeNumber)(import_ds_shared.GENERAL_TIME_RANGE, secondsHandled, lastTypedNumber);
213
213
  setSeconds((0, import_utils.formatSeconds)(format, nextSeconds));
214
214
  setHasInputBeenTriggered(true);
215
- focusNextInputIfNeeded(e.target, import_constants.GENERAL_TIME_RANGE.max, value);
215
+ focusNextInputIfNeeded(e.target, import_ds_shared.GENERAL_TIME_RANGE.max, value);
216
216
  };
217
217
  const handleMinutesChange = (e) => {
218
218
  const { value } = e.target;
219
219
  const minutesHandled = (0, import_utils.parseTimeNumberFromText)(value);
220
- const nextMinutes = (0, import_utils.getValidTimeNumber)(import_constants.GENERAL_TIME_RANGE, minutesHandled, lastTypedNumber);
220
+ const nextMinutes = (0, import_utils.getValidTimeNumber)(import_ds_shared.GENERAL_TIME_RANGE, minutesHandled, lastTypedNumber);
221
221
  setMinutes((0, import_utils.formatMinutes)(format, nextMinutes));
222
222
  setHasInputBeenTriggered(true);
223
- focusNextInputIfNeeded(e.target, import_constants.GENERAL_TIME_RANGE.max, value);
223
+ focusNextInputIfNeeded(e.target, import_ds_shared.GENERAL_TIME_RANGE.max, value);
224
224
  };
225
225
  const handleHoursChange = (e) => {
226
226
  const { value } = e.target;
227
227
  const hour = (0, import_utils.parseTimeNumberFromText)(value);
228
- const hoursRange = use12Hours ? import_constants.HOUR_RANGE_12 : import_constants.HOUR_RANGE_24;
228
+ const hoursRange = use12Hours ? import_ds_shared.HOUR_RANGE_12 : import_ds_shared.HOUR_RANGE_24;
229
229
  const nextHour = (0, import_utils.getValidTimeNumber)(hoursRange, hour, lastTypedNumber);
230
230
  setHours((0, import_utils.formatHour)(format, nextHour));
231
231
  setHasInputBeenTriggered(true);
232
232
  focusNextInputIfNeeded(e.target, hoursRange.max, value);
233
233
  };
234
234
  const handleMeridiemKeyDown = (e) => {
235
- if (e.key === import_constants.ARROW_UP || e.key === "a") {
236
- setMeridiem((0, import_utils.formatMeridiem)(format, import_constants.AM));
237
- } else if (e.key === import_constants.ARROW_DOWN || e.key === "p") {
238
- setMeridiem((0, import_utils.formatMeridiem)(format, import_constants.PM));
239
- } else if (e.key === import_constants.SHIFT) {
235
+ if (e.key === import_ds_shared.ARROW_UP || e.key === "a") {
236
+ setMeridiem((0, import_utils.formatMeridiem)(format, import_ds_shared.AM));
237
+ } else if (e.key === import_ds_shared.ARROW_DOWN || e.key === "p") {
238
+ setMeridiem((0, import_utils.formatMeridiem)(format, import_ds_shared.PM));
239
+ } else if (e.key === import_ds_shared.SHIFT) {
240
240
  setCurrentKey(e.key);
241
- } else if (e.key === import_constants.BACKSPACE) {
241
+ } else if (e.key === import_ds_shared.BACKSPACE) {
242
242
  setMeridiem("");
243
243
  }
244
244
  setHasInputBeenTriggered(true);
245
245
  };
246
246
  const handleMeridiemBlur = (e) => {
247
247
  const { value } = e.target;
248
- if (value !== import_constants.AM && value !== import_constants.PM) {
248
+ if (value !== import_ds_shared.AM && value !== import_ds_shared.PM) {
249
249
  setMeridiem("");
250
250
  }
251
251
  };
@@ -259,7 +259,7 @@ const TimeInputs = ({
259
259
  if (showSeconds && seconds)
260
260
  selectedTime.seconds(seconds);
261
261
  if (use12Hours && meridiem) {
262
- const nextHours = meridiem.toLowerCase() === import_constants.AM ? hours % 12 : hours % 12 + 12;
262
+ const nextHours = meridiem.toLowerCase() === import_ds_shared.AM ? hours % 12 : hours % 12 + 12;
263
263
  selectedTime.hour(nextHours);
264
264
  }
265
265
  onChange(selectedTime);
@@ -268,35 +268,35 @@ const TimeInputs = ({
268
268
  const renderSecondsInput = () => {
269
269
  if (!showSeconds)
270
270
  return null;
271
- return /* @__PURE__ */ import_react.default.createElement(TimeInput, __spreadProps(__spreadValues({}, (0, import_utils.commonInputProps)((e) => onKeyDown(e, import_constants.GENERAL_TIME_RANGE.max), onInputFocus, onClick)), {
271
+ return /* @__PURE__ */ import_react.default.createElement(TimeInput, __spreadProps(__spreadValues({}, (0, import_utils.commonInputProps)((e) => onKeyDown(e, import_ds_shared.GENERAL_TIME_RANGE.max), onInputFocus, onClick)), {
272
272
  key: "seconds-input",
273
273
  "data-testid": "ds-time-input__seconds",
274
274
  "aria-label": ariaLabel || ariaLabel2 || "Seconds Input",
275
275
  disabled,
276
276
  innerRef: (node) => inputRefs.seconds = node,
277
277
  onChange: handleSecondsChange,
278
- placeholder: (0, import_utils.placeholderFormat)(import_constants.PLACEHOLDER_TIME.seconds, format),
278
+ placeholder: (0, import_utils.placeholderFormat)(import_ds_shared.PLACEHOLDER_TIME.seconds, format),
279
279
  value: seconds
280
280
  }));
281
281
  };
282
282
  const renderMinutesInput = () => {
283
283
  if (!showMinutes)
284
284
  return null;
285
- return /* @__PURE__ */ import_react.default.createElement(TimeInput, __spreadProps(__spreadValues({}, (0, import_utils.commonInputProps)((e) => onKeyDown(e, import_constants.GENERAL_TIME_RANGE.max), onInputFocus, onClick)), {
285
+ return /* @__PURE__ */ import_react.default.createElement(TimeInput, __spreadProps(__spreadValues({}, (0, import_utils.commonInputProps)((e) => onKeyDown(e, import_ds_shared.GENERAL_TIME_RANGE.max), onInputFocus, onClick)), {
286
286
  key: "minutes-input",
287
287
  "data-testid": "ds-time-input__minutes",
288
288
  "aria-label": ariaLabel || ariaLabel2 || "Minutes Input",
289
289
  disabled,
290
290
  innerRef: (node) => inputRefs.minutes = node,
291
291
  onChange: handleMinutesChange,
292
- placeholder: (0, import_utils.placeholderFormat)(import_constants.PLACEHOLDER_TIME.minutes, format),
292
+ placeholder: (0, import_utils.placeholderFormat)(import_ds_shared.PLACEHOLDER_TIME.minutes, format),
293
293
  value: minutes
294
294
  }));
295
295
  };
296
296
  const renderHoursInput = () => {
297
297
  if (!showHours)
298
298
  return null;
299
- const hourFormatRange = use12Hours ? import_constants.HOUR_RANGE_12 : import_constants.HOUR_RANGE_24;
299
+ const hourFormatRange = use12Hours ? import_ds_shared.HOUR_RANGE_12 : import_ds_shared.HOUR_RANGE_24;
300
300
  return /* @__PURE__ */ import_react.default.createElement(TimeInput, __spreadProps(__spreadValues({}, (0, import_utils.commonInputProps)((e) => onKeyDown(e, hourFormatRange.max), onInputFocus, onClick)), {
301
301
  key: "hour-input",
302
302
  "data-testid": "ds-time-input__hours",
@@ -304,7 +304,7 @@ const TimeInputs = ({
304
304
  disabled,
305
305
  innerRef: (node) => inputRefs.hours = node,
306
306
  onChange: handleHoursChange,
307
- placeholder: (0, import_utils.placeholderFormat)(import_constants.PLACEHOLDER_TIME.hour, format, use12Hours),
307
+ placeholder: (0, import_utils.placeholderFormat)(import_ds_shared.PLACEHOLDER_TIME.hour, format, use12Hours),
308
308
  value: hours
309
309
  }));
310
310
  };
@@ -318,16 +318,12 @@ const TimeInputs = ({
318
318
  disabled,
319
319
  onBlur: handleMeridiemBlur,
320
320
  onKeyDown: handleMeridiemKeyDown,
321
- placeholder: (0, import_utils.placeholderFormat)(import_constants.PLACEHOLDER_TIME.meridiem, format),
321
+ placeholder: (0, import_utils.placeholderFormat)(import_ds_shared.PLACEHOLDER_TIME.meridiem, format),
322
322
  value: meridiem
323
323
  }));
324
324
  };
325
325
  const renderTimeInputs = () => {
326
- const inputs = [
327
- renderHoursInput(),
328
- renderMinutesInput(),
329
- renderSecondsInput()
330
- ];
326
+ const inputs = [renderHoursInput(), renderMinutesInput(), renderSecondsInput()];
331
327
  const inputsWithDividers = inputs.reduce((acc, input, index) => input ? acc.concat([
332
328
  index ? /* @__PURE__ */ import_react.default.createElement(TimeDivider, {
333
329
  key: index,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/TimeInput/TimeInputs.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable complexity */\n/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\n/* eslint-disable max-statements */\nimport React, { useEffect, useState } from 'react';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport moment from 'moment';\nimport {\n commonInputProps,\n formatHour,\n formatMinutes,\n formatSeconds,\n formatMeridiem,\n getValidTimeNumber,\n setNativeValue,\n parseTimeNumberFromText,\n focusNextInput,\n focusPreviousInput,\n getTimeValuesFromTime,\n isArrowIncrementDecrement,\n shouldFocusNextInput,\n placeholderFormat,\n} from './utils';\nimport {\n AM,\n PM,\n ARROW_UP,\n ARROW_DOWN,\n BACKSPACE,\n ESCAPE,\n HOME,\n HOUR_RANGE_12,\n HOUR_RANGE_24,\n GENERAL_TIME_RANGE,\n END,\n PLACEHOLDER_TIME,\n SHIFT,\n} from '@elliemae/ds-shared/constants';\n\nconst blockName = 'input-times-group';\n\nconst InputTimesGroup = aggregatedClasses('div')(blockName);\nconst TimeInput = aggregatedClasses('input')(blockName, 'input');\nconst Divider = aggregatedClasses('span')(\n blockName,\n 'divider',\n ({ value }) => ({\n value,\n }),\n);\n\n// eslint-disable-next-line react/prop-types\nconst TimeDivider = ({ content = ':', value = '' }) => (\n <Divider value={!!value}>{content}</Divider>\n);\n\nconst TimeInputs = ({\n time,\n format,\n use12Hours,\n step = 1,\n showHours,\n showMinutes,\n showSeconds,\n onChange,\n disabled,\n innerRef,\n clearable,\n 'arial-label': ariaLabel,\n 'aria-label': ariaLabel2,\n}) => {\n const [meridiem, setMeridiem] = useState('');\n const [hours, setHours] = useState('');\n const [minutes, setMinutes] = useState('');\n const [hasInputValue, setHasInputValue] = useState(false);\n const [seconds, setSeconds] = useState('');\n const [currentKey, setCurrentKey] = useState('');\n const [hasInputBeenTriggered, setHasInputBeenTriggered] = useState(false);\n\n const [lastTypedNumber, setLastTypedNumber] = useState(null);\n const inputRefs = {\n hours: null,\n minutes: null,\n seconds: null,\n meridiem: null,\n };\n\n useEffect(() => {\n if (time && moment(time).isValid()) {\n const timeValues = getTimeValuesFromTime(time, format, use12Hours);\n\n setMeridiem(timeValues.meridiem);\n setHours(timeValues.hours);\n setMinutes(timeValues.minutes);\n setSeconds(timeValues.seconds);\n } else {\n setMeridiem('');\n setHours('');\n setMinutes('');\n setSeconds('');\n }\n }, [time, format, use12Hours]);\n\n useEffect(() => {\n const selectedTime = time || moment();\n if (isTimeCompletelySet() && selectedTime.hours && hasInputBeenTriggered) {\n if (showHours && hours) selectedTime.hours(hours);\n if (showMinutes && minutes) selectedTime.minutes(minutes);\n if (showSeconds && seconds) selectedTime.seconds(seconds);\n if (use12Hours && meridiem) {\n const nextHours =\n meridiem.toLowerCase() === AM ? hours % 12 : (hours % 12) + 12;\n selectedTime.hour(nextHours);\n }\n onChange(selectedTime);\n setHasInputBeenTriggered(false);\n }\n }, [hours, minutes, seconds, meridiem]);\n\n const focusNextInputIfNeeded = (currentEl, max, number) => {\n if (\n shouldFocusNextInput(max, number, currentEl.value) &&\n !isArrowIncrementDecrement(currentKey) &&\n !hasInputValue\n ) {\n focusNextInput(currentEl);\n }\n };\n\n const getNextTimeValue = (value, incrementing = true) => {\n const parsedValue = parseTimeNumberFromText(value);\n return incrementing ? parsedValue + step : parsedValue - step;\n };\n\n const onInputFocus = (e) => {\n e.preventDefault();\n e.stopPropagation();\n e.target.select();\n };\n\n const onClick = (e) => {\n if (e.target.value) {\n setHasInputValue(true);\n }\n };\n\n // eslint-disable-next-line max-statements\n const onKeyDown = (event, max) => {\n const { target } = event;\n const { value } = target;\n setLastTypedNumber(event.key);\n switch (event.key) {\n case ARROW_UP: {\n event.preventDefault();\n setCurrentKey(event.key);\n const incrementedValue = getNextTimeValue(value);\n setNativeValue(event.target, incrementedValue);\n break;\n }\n case ARROW_DOWN: {\n event.preventDefault();\n setCurrentKey(event.key);\n const decrementedValue = getNextTimeValue(value, false);\n setNativeValue(event.target, decrementedValue);\n break;\n }\n case BACKSPACE: {\n event.preventDefault();\n if (!value) {\n focusPreviousInput(event.target);\n } else {\n setNativeValue(event.target, '');\n }\n break;\n }\n case ESCAPE: {\n event.preventDefault();\n event.target.blur();\n break;\n }\n case HOME: {\n event.preventDefault();\n setNativeValue(event.target, String(max));\n focusNextInput(event.target);\n break;\n }\n case END: {\n event.preventDefault();\n setNativeValue(event.target, '00');\n focusNextInput(event.target);\n break;\n }\n case SHIFT:\n event.preventDefault();\n setCurrentKey(event.key);\n break;\n default:\n break;\n }\n };\n\n const isTimeCompletelySet = () => {\n let neededValues = [];\n\n if (showHours) neededValues = [...neededValues, hours || null];\n if (showMinutes) neededValues = [...neededValues, minutes || null];\n if (showSeconds) neededValues = [...neededValues, seconds || null];\n if (use12Hours) neededValues = [...neededValues, meridiem || null];\n\n return !neededValues.some((value) => !value);\n };\n\n const handleSecondsChange = (e) => {\n const { value } = e.target;\n const secondsHandled = parseTimeNumberFromText(value);\n\n const nextSeconds = getValidTimeNumber(\n GENERAL_TIME_RANGE,\n secondsHandled,\n lastTypedNumber,\n );\n\n setSeconds(formatSeconds(format, nextSeconds));\n setHasInputBeenTriggered(true);\n focusNextInputIfNeeded(e.target, GENERAL_TIME_RANGE.max, value);\n };\n\n const handleMinutesChange = (e) => {\n const { value } = e.target;\n const minutesHandled = parseTimeNumberFromText(value);\n const nextMinutes = getValidTimeNumber(\n GENERAL_TIME_RANGE,\n minutesHandled,\n lastTypedNumber,\n );\n\n setMinutes(formatMinutes(format, nextMinutes));\n setHasInputBeenTriggered(true);\n focusNextInputIfNeeded(e.target, GENERAL_TIME_RANGE.max, value);\n };\n\n const handleHoursChange = (e) => {\n const { value } = e.target;\n const hour = parseTimeNumberFromText(value);\n const hoursRange = use12Hours ? HOUR_RANGE_12 : HOUR_RANGE_24;\n\n const nextHour = getValidTimeNumber(hoursRange, hour, lastTypedNumber);\n setHours(formatHour(format, nextHour));\n setHasInputBeenTriggered(true);\n focusNextInputIfNeeded(e.target, hoursRange.max, value);\n };\n\n const handleMeridiemKeyDown = (e) => {\n if (e.key === ARROW_UP || e.key === 'a') {\n setMeridiem(formatMeridiem(format, AM));\n } else if (e.key === ARROW_DOWN || e.key === 'p') {\n setMeridiem(formatMeridiem(format, PM));\n } else if (e.key === SHIFT) {\n setCurrentKey(e.key);\n } else if (e.key === BACKSPACE) {\n setMeridiem('');\n }\n setHasInputBeenTriggered(true);\n };\n\n const handleMeridiemBlur = (e) => {\n const { value } = e.target;\n if (value !== AM && value !== PM) {\n setMeridiem('');\n }\n };\n\n const handleOnBlur = (event) => {\n const selectedTime = moment();\n if (clearable && !event.currentTarget.contains(event.relatedTarget)) {\n if (showHours && hours) selectedTime.hours(hours);\n if (showMinutes && minutes) selectedTime.minutes(minutes);\n if (showSeconds && seconds) selectedTime.seconds(seconds);\n if (use12Hours && meridiem) {\n const nextHours =\n meridiem.toLowerCase() === AM ? hours % 12 : (hours % 12) + 12;\n selectedTime.hour(nextHours);\n }\n onChange(selectedTime);\n }\n };\n\n const renderSecondsInput = () => {\n if (!showSeconds) return null;\n\n return (\n <TimeInput\n {...commonInputProps(\n (e) => onKeyDown(e, GENERAL_TIME_RANGE.max),\n onInputFocus,\n onClick,\n )}\n key=\"seconds-input\"\n data-testid=\"ds-time-input__seconds\"\n aria-label={ariaLabel || ariaLabel2 || 'Seconds Input'}\n disabled={disabled}\n // eslint-disable-next-line no-return-assign\n innerRef={(node) => (inputRefs.seconds = node)}\n onChange={handleSecondsChange}\n placeholder={placeholderFormat(PLACEHOLDER_TIME.seconds, format)}\n value={seconds}\n />\n );\n };\n\n const renderMinutesInput = () => {\n if (!showMinutes) return null;\n\n return (\n <TimeInput\n {...commonInputProps(\n (e) => onKeyDown(e, GENERAL_TIME_RANGE.max),\n onInputFocus,\n onClick,\n )}\n key=\"minutes-input\"\n data-testid=\"ds-time-input__minutes\"\n aria-label={ariaLabel || ariaLabel2 || 'Minutes Input'}\n disabled={disabled}\n // eslint-disable-next-line no-return-assign\n innerRef={(node) => (inputRefs.minutes = node)}\n onChange={handleMinutesChange}\n placeholder={placeholderFormat(PLACEHOLDER_TIME.minutes, format)}\n value={minutes}\n />\n );\n };\n\n const renderHoursInput = () => {\n if (!showHours) return null;\n const hourFormatRange = use12Hours ? HOUR_RANGE_12 : HOUR_RANGE_24;\n\n return (\n <TimeInput\n {...commonInputProps(\n (e) => onKeyDown(e, hourFormatRange.max),\n onInputFocus,\n onClick,\n )}\n key=\"hour-input\"\n data-testid=\"ds-time-input__hours\"\n aria-label={ariaLabel || ariaLabel2 || 'Hours Input'}\n disabled={disabled}\n // eslint-disable-next-line no-return-assign\n innerRef={(node) => (inputRefs.hours = node)}\n onChange={handleHoursChange}\n placeholder={placeholderFormat(\n PLACEHOLDER_TIME.hour,\n format,\n use12Hours,\n )}\n value={hours}\n />\n );\n };\n\n const renderMeridiemInput = () => {\n if (!use12Hours) return null;\n\n return (\n <TimeInput\n {...commonInputProps}\n key=\"meridiem-input\"\n data-testid=\"ds-time-input__ampm\"\n aria-label={ariaLabel || ariaLabel2 || 'Meridiem Input'}\n disabled={disabled}\n onBlur={handleMeridiemBlur}\n onKeyDown={handleMeridiemKeyDown}\n placeholder={placeholderFormat(PLACEHOLDER_TIME.meridiem, format)}\n value={meridiem}\n />\n );\n };\n\n const renderTimeInputs = () => {\n const inputs = [\n renderHoursInput(),\n renderMinutesInput(),\n renderSecondsInput(),\n ];\n /* eslint-disable indent */\n const inputsWithDividers = inputs.reduce(\n (acc, input, index) =>\n input\n ? acc.concat([\n index ? (\n <TimeDivider\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n content=\":\"\n value={input.props.value}\n />\n ) : null,\n input,\n ])\n : acc,\n [],\n );\n /* eslint-enable indent */\n\n return [\n inputsWithDividers,\n React.createElement('span', { key: 'span' }), // hack for next/prev focus\n renderMeridiemInput(),\n ];\n };\n\n return (\n <InputTimesGroup onBlur={handleOnBlur} innerRef={innerRef}>\n {renderTimeInputs()}\n </InputTimesGroup>\n );\n};\n\nexport { TimeInputs };\nexport default TimeInputs;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable complexity */\n/* eslint-disable react/prop-types */\n/* eslint-disable max-lines */\n/* eslint-disable max-statements */\nimport React, { useEffect, useState } from 'react';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport moment from 'moment';\nimport {\n commonInputProps,\n formatHour,\n formatMinutes,\n formatSeconds,\n formatMeridiem,\n getValidTimeNumber,\n setNativeValue,\n parseTimeNumberFromText,\n focusNextInput,\n focusPreviousInput,\n getTimeValuesFromTime,\n isArrowIncrementDecrement,\n shouldFocusNextInput,\n placeholderFormat,\n} from './utils';\nimport {\n AM,\n PM,\n ARROW_UP,\n ARROW_DOWN,\n BACKSPACE,\n ESCAPE,\n HOME,\n HOUR_RANGE_12,\n HOUR_RANGE_24,\n GENERAL_TIME_RANGE,\n END,\n PLACEHOLDER_TIME,\n SHIFT,\n} from '@elliemae/ds-shared';\n\nconst blockName = 'input-times-group';\n\nconst InputTimesGroup = aggregatedClasses('div')(blockName);\nconst TimeInput = aggregatedClasses('input')(blockName, 'input');\nconst Divider = aggregatedClasses('span')(blockName, 'divider', ({ value }) => ({\n value,\n}));\n\n// eslint-disable-next-line react/prop-types\nconst TimeDivider = ({ content = ':', value = '' }) => <Divider value={!!value}>{content}</Divider>;\n\nconst TimeInputs = ({\n time,\n format,\n use12Hours,\n step = 1,\n showHours,\n showMinutes,\n showSeconds,\n onChange,\n disabled,\n innerRef,\n clearable,\n 'arial-label': ariaLabel,\n 'aria-label': ariaLabel2,\n}) => {\n const [meridiem, setMeridiem] = useState('');\n const [hours, setHours] = useState('');\n const [minutes, setMinutes] = useState('');\n const [hasInputValue, setHasInputValue] = useState(false);\n const [seconds, setSeconds] = useState('');\n const [currentKey, setCurrentKey] = useState('');\n const [hasInputBeenTriggered, setHasInputBeenTriggered] = useState(false);\n\n const [lastTypedNumber, setLastTypedNumber] = useState(null);\n const inputRefs = {\n hours: null,\n minutes: null,\n seconds: null,\n meridiem: null,\n };\n\n useEffect(() => {\n if (time && moment(time).isValid()) {\n const timeValues = getTimeValuesFromTime(time, format, use12Hours);\n\n setMeridiem(timeValues.meridiem);\n setHours(timeValues.hours);\n setMinutes(timeValues.minutes);\n setSeconds(timeValues.seconds);\n } else {\n setMeridiem('');\n setHours('');\n setMinutes('');\n setSeconds('');\n }\n }, [time, format, use12Hours]);\n\n useEffect(() => {\n const selectedTime = time || moment();\n if (isTimeCompletelySet() && selectedTime.hours && hasInputBeenTriggered) {\n if (showHours && hours) selectedTime.hours(hours);\n if (showMinutes && minutes) selectedTime.minutes(minutes);\n if (showSeconds && seconds) selectedTime.seconds(seconds);\n if (use12Hours && meridiem) {\n const nextHours = meridiem.toLowerCase() === AM ? hours % 12 : (hours % 12) + 12;\n selectedTime.hour(nextHours);\n }\n onChange(selectedTime);\n setHasInputBeenTriggered(false);\n }\n }, [hours, minutes, seconds, meridiem]);\n\n const focusNextInputIfNeeded = (currentEl, max, number) => {\n if (\n shouldFocusNextInput(max, number, currentEl.value) &&\n !isArrowIncrementDecrement(currentKey) &&\n !hasInputValue\n ) {\n focusNextInput(currentEl);\n }\n };\n\n const getNextTimeValue = (value, incrementing = true) => {\n const parsedValue = parseTimeNumberFromText(value);\n return incrementing ? parsedValue + step : parsedValue - step;\n };\n\n const onInputFocus = (e) => {\n e.preventDefault();\n e.stopPropagation();\n e.target.select();\n };\n\n const onClick = (e) => {\n if (e.target.value) {\n setHasInputValue(true);\n }\n };\n\n // eslint-disable-next-line max-statements\n const onKeyDown = (event, max) => {\n const { target } = event;\n const { value } = target;\n setLastTypedNumber(event.key);\n switch (event.key) {\n case ARROW_UP: {\n event.preventDefault();\n setCurrentKey(event.key);\n const incrementedValue = getNextTimeValue(value);\n setNativeValue(event.target, incrementedValue);\n break;\n }\n case ARROW_DOWN: {\n event.preventDefault();\n setCurrentKey(event.key);\n const decrementedValue = getNextTimeValue(value, false);\n setNativeValue(event.target, decrementedValue);\n break;\n }\n case BACKSPACE: {\n event.preventDefault();\n if (!value) {\n focusPreviousInput(event.target);\n } else {\n setNativeValue(event.target, '');\n }\n break;\n }\n case ESCAPE: {\n event.preventDefault();\n event.target.blur();\n break;\n }\n case HOME: {\n event.preventDefault();\n setNativeValue(event.target, String(max));\n focusNextInput(event.target);\n break;\n }\n case END: {\n event.preventDefault();\n setNativeValue(event.target, '00');\n focusNextInput(event.target);\n break;\n }\n case SHIFT:\n event.preventDefault();\n setCurrentKey(event.key);\n break;\n default:\n break;\n }\n };\n\n const isTimeCompletelySet = () => {\n let neededValues = [];\n\n if (showHours) neededValues = [...neededValues, hours || null];\n if (showMinutes) neededValues = [...neededValues, minutes || null];\n if (showSeconds) neededValues = [...neededValues, seconds || null];\n if (use12Hours) neededValues = [...neededValues, meridiem || null];\n\n return !neededValues.some((value) => !value);\n };\n\n const handleSecondsChange = (e) => {\n const { value } = e.target;\n const secondsHandled = parseTimeNumberFromText(value);\n\n const nextSeconds = getValidTimeNumber(GENERAL_TIME_RANGE, secondsHandled, lastTypedNumber);\n\n setSeconds(formatSeconds(format, nextSeconds));\n setHasInputBeenTriggered(true);\n focusNextInputIfNeeded(e.target, GENERAL_TIME_RANGE.max, value);\n };\n\n const handleMinutesChange = (e) => {\n const { value } = e.target;\n const minutesHandled = parseTimeNumberFromText(value);\n const nextMinutes = getValidTimeNumber(GENERAL_TIME_RANGE, minutesHandled, lastTypedNumber);\n\n setMinutes(formatMinutes(format, nextMinutes));\n setHasInputBeenTriggered(true);\n focusNextInputIfNeeded(e.target, GENERAL_TIME_RANGE.max, value);\n };\n\n const handleHoursChange = (e) => {\n const { value } = e.target;\n const hour = parseTimeNumberFromText(value);\n const hoursRange = use12Hours ? HOUR_RANGE_12 : HOUR_RANGE_24;\n\n const nextHour = getValidTimeNumber(hoursRange, hour, lastTypedNumber);\n setHours(formatHour(format, nextHour));\n setHasInputBeenTriggered(true);\n focusNextInputIfNeeded(e.target, hoursRange.max, value);\n };\n\n const handleMeridiemKeyDown = (e) => {\n if (e.key === ARROW_UP || e.key === 'a') {\n setMeridiem(formatMeridiem(format, AM));\n } else if (e.key === ARROW_DOWN || e.key === 'p') {\n setMeridiem(formatMeridiem(format, PM));\n } else if (e.key === SHIFT) {\n setCurrentKey(e.key);\n } else if (e.key === BACKSPACE) {\n setMeridiem('');\n }\n setHasInputBeenTriggered(true);\n };\n\n const handleMeridiemBlur = (e) => {\n const { value } = e.target;\n if (value !== AM && value !== PM) {\n setMeridiem('');\n }\n };\n\n const handleOnBlur = (event) => {\n const selectedTime = moment();\n if (clearable && !event.currentTarget.contains(event.relatedTarget)) {\n if (showHours && hours) selectedTime.hours(hours);\n if (showMinutes && minutes) selectedTime.minutes(minutes);\n if (showSeconds && seconds) selectedTime.seconds(seconds);\n if (use12Hours && meridiem) {\n const nextHours = meridiem.toLowerCase() === AM ? hours % 12 : (hours % 12) + 12;\n selectedTime.hour(nextHours);\n }\n onChange(selectedTime);\n }\n };\n\n const renderSecondsInput = () => {\n if (!showSeconds) return null;\n\n return (\n <TimeInput\n {...commonInputProps((e) => onKeyDown(e, GENERAL_TIME_RANGE.max), onInputFocus, onClick)}\n key=\"seconds-input\"\n data-testid=\"ds-time-input__seconds\"\n aria-label={ariaLabel || ariaLabel2 || 'Seconds Input'}\n disabled={disabled}\n // eslint-disable-next-line no-return-assign\n innerRef={(node) => (inputRefs.seconds = node)}\n onChange={handleSecondsChange}\n placeholder={placeholderFormat(PLACEHOLDER_TIME.seconds, format)}\n value={seconds}\n />\n );\n };\n\n const renderMinutesInput = () => {\n if (!showMinutes) return null;\n\n return (\n <TimeInput\n {...commonInputProps((e) => onKeyDown(e, GENERAL_TIME_RANGE.max), onInputFocus, onClick)}\n key=\"minutes-input\"\n data-testid=\"ds-time-input__minutes\"\n aria-label={ariaLabel || ariaLabel2 || 'Minutes Input'}\n disabled={disabled}\n // eslint-disable-next-line no-return-assign\n innerRef={(node) => (inputRefs.minutes = node)}\n onChange={handleMinutesChange}\n placeholder={placeholderFormat(PLACEHOLDER_TIME.minutes, format)}\n value={minutes}\n />\n );\n };\n\n const renderHoursInput = () => {\n if (!showHours) return null;\n const hourFormatRange = use12Hours ? HOUR_RANGE_12 : HOUR_RANGE_24;\n\n return (\n <TimeInput\n {...commonInputProps((e) => onKeyDown(e, hourFormatRange.max), onInputFocus, onClick)}\n key=\"hour-input\"\n data-testid=\"ds-time-input__hours\"\n aria-label={ariaLabel || ariaLabel2 || 'Hours Input'}\n disabled={disabled}\n // eslint-disable-next-line no-return-assign\n innerRef={(node) => (inputRefs.hours = node)}\n onChange={handleHoursChange}\n placeholder={placeholderFormat(PLACEHOLDER_TIME.hour, format, use12Hours)}\n value={hours}\n />\n );\n };\n\n const renderMeridiemInput = () => {\n if (!use12Hours) return null;\n\n return (\n <TimeInput\n {...commonInputProps}\n key=\"meridiem-input\"\n data-testid=\"ds-time-input__ampm\"\n aria-label={ariaLabel || ariaLabel2 || 'Meridiem Input'}\n disabled={disabled}\n onBlur={handleMeridiemBlur}\n onKeyDown={handleMeridiemKeyDown}\n placeholder={placeholderFormat(PLACEHOLDER_TIME.meridiem, format)}\n value={meridiem}\n />\n );\n };\n\n const renderTimeInputs = () => {\n const inputs = [renderHoursInput(), renderMinutesInput(), renderSecondsInput()];\n /* eslint-disable indent */\n const inputsWithDividers = inputs.reduce(\n (acc, input, index) =>\n input\n ? acc.concat([\n index ? (\n <TimeDivider\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n content=\":\"\n value={input.props.value}\n />\n ) : null,\n input,\n ])\n : acc,\n [],\n );\n /* eslint-enable indent */\n\n return [\n inputsWithDividers,\n React.createElement('span', { key: 'span' }), // hack for next/prev focus\n renderMeridiemInput(),\n ];\n };\n\n return (\n <InputTimesGroup onBlur={handleOnBlur} innerRef={innerRef}>\n {renderTimeInputs()}\n </InputTimesGroup>\n );\n};\n\nexport { TimeInputs };\nexport default TimeInputs;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -46,9 +46,9 @@ __export(utils_exports, {
46
46
  var React = __toESM(require("react"));
47
47
  var import_ds_utilities = require("@elliemae/ds-utilities");
48
48
  var import_ds_utilities2 = require("@elliemae/ds-utilities");
49
- var import_constants = require("@elliemae/ds-shared/constants");
49
+ var import_ds_shared = require("@elliemae/ds-shared");
50
50
  const isAM = (time) => time && time.hour() < 12;
51
- const isArrowIncrementDecrement = (key) => key === import_constants.ARROW_DOWN || key === import_constants.ARROW_UP || key === import_constants.SHIFT;
51
+ const isArrowIncrementDecrement = (key) => key === import_ds_shared.ARROW_DOWN || key === import_ds_shared.ARROW_UP || key === import_ds_shared.SHIFT;
52
52
  const setNativeValue = (element, value) => {
53
53
  if (!Object.getOwnPropertyDescriptor(element, "value"))
54
54
  return;
@@ -63,16 +63,16 @@ const setNativeValue = (element, value) => {
63
63
  element.dispatchEvent(new Event("input", { bubbles: true }));
64
64
  };
65
65
  const placeholderFormat = (position, format, use12Hours) => {
66
- if (position === import_constants.PLACEHOLDER_TIME.hour) {
66
+ if (position === import_ds_shared.PLACEHOLDER_TIME.hour) {
67
67
  return _placeholderHour(format, use12Hours);
68
68
  }
69
- if (position === import_constants.PLACEHOLDER_TIME.minutes) {
69
+ if (position === import_ds_shared.PLACEHOLDER_TIME.minutes) {
70
70
  return format.indexOf("mm") > -1 ? "mm" : "m";
71
71
  }
72
- if (position === import_constants.PLACEHOLDER_TIME.seconds) {
72
+ if (position === import_ds_shared.PLACEHOLDER_TIME.seconds) {
73
73
  return format.indexOf("ss") > -1 ? "ss" : "s";
74
74
  }
75
- if (position === import_constants.PLACEHOLDER_TIME.meridiem) {
75
+ if (position === import_ds_shared.PLACEHOLDER_TIME.meridiem) {
76
76
  return format.indexOf("A") > -1 ? "A" : "a";
77
77
  }
78
78
  };
@@ -141,7 +141,7 @@ const getTimeValuesFromTime = (time, format, use12Hours) => {
141
141
  const hours = use12Hours ? time.hour() % 12 || 12 : time.hour();
142
142
  const minutes = time.minutes();
143
143
  const seconds = time.seconds();
144
- const meridiem = !isAM(time) ? import_constants.PM : import_constants.AM;
144
+ const meridiem = !isAM(time) ? import_ds_shared.PM : import_ds_shared.AM;
145
145
  return {
146
146
  hours: formatHour(format, hours),
147
147
  minutes: formatMinutes(format, minutes),
@@ -153,7 +153,7 @@ const resetTimeValues = () => ({
153
153
  hours: "",
154
154
  minutes: "",
155
155
  seconds: "",
156
- meridiem: import_constants.AM
156
+ meridiem: import_ds_shared.AM
157
157
  });
158
158
  const commonInputProps = (onKeyDown, onInputFocus, onClick) => ({
159
159
  pattern: "[0-9]*",