@elliemae/ds-form 3.0.0-next.14 → 3.0.0-next.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/CheckboxGroup/props.js +3 -7
- package/dist/cjs/CheckboxGroup/props.js.map +2 -2
- package/dist/cjs/ExpandableInput/ExpandableInputImpl.js +3 -13
- package/dist/cjs/ExpandableInput/ExpandableInputImpl.js.map +2 -2
- package/dist/cjs/FormItem/ValidationFieldWrapper.js +26 -26
- package/dist/cjs/FormItem/ValidationFieldWrapper.js.map +2 -2
- package/dist/cjs/RadioGroup/props.js +3 -6
- package/dist/cjs/RadioGroup/props.js.map +2 -2
- package/dist/cjs/TimeInput/TimeInputs.js +30 -34
- package/dist/cjs/TimeInput/TimeInputs.js.map +2 -2
- package/dist/cjs/TimeInput/utils.js +8 -8
- package/dist/cjs/TimeInput/utils.js.map +2 -2
- package/dist/cjs/Toggle/DSToggle.js +2 -2
- package/dist/cjs/Toggle/DSToggle.js.map +2 -2
- package/dist/cjs/Toggle/props.js +2 -2
- package/dist/cjs/Toggle/props.js.map +2 -2
- package/dist/esm/CheckboxGroup/props.js +2 -6
- package/dist/esm/CheckboxGroup/props.js.map +2 -2
- package/dist/esm/ExpandableInput/ExpandableInputImpl.js +2 -12
- package/dist/esm/ExpandableInput/ExpandableInputImpl.js.map +2 -2
- package/dist/esm/FormItem/ValidationFieldWrapper.js +26 -26
- package/dist/esm/FormItem/ValidationFieldWrapper.js.map +2 -2
- package/dist/esm/RadioGroup/props.js +2 -5
- package/dist/esm/RadioGroup/props.js.map +2 -2
- package/dist/esm/TimeInput/TimeInputs.js +2 -6
- package/dist/esm/TimeInput/TimeInputs.js.map +2 -2
- package/dist/esm/TimeInput/utils.js +1 -8
- package/dist/esm/TimeInput/utils.js.map +2 -2
- package/dist/esm/Toggle/DSToggle.js +1 -1
- package/dist/esm/Toggle/DSToggle.js.map +2 -2
- package/dist/esm/Toggle/props.js +1 -1
- package/dist/esm/Toggle/props.js.map +1 -1
- 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
|
|
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(
|
|
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
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,wBAA0B;AAC1B,sBAA2B;AAC3B,
|
|
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
|
|
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,
|
|
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
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA+C;AAC/C,2BAAkC;AAClC,
|
|
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;
|
|
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
|
|
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(
|
|
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
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,wBAA0B;AAC1B,
|
|
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
|
|
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() ===
|
|
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
|
|
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
|
|
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
|
|
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
|
|
172
|
+
case import_ds_shared.ESCAPE: {
|
|
173
173
|
event.preventDefault();
|
|
174
174
|
event.target.blur();
|
|
175
175
|
break;
|
|
176
176
|
}
|
|
177
|
-
case
|
|
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
|
|
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
|
|
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)(
|
|
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,
|
|
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)(
|
|
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,
|
|
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 ?
|
|
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 ===
|
|
236
|
-
setMeridiem((0, import_utils.formatMeridiem)(format,
|
|
237
|
-
} else if (e.key ===
|
|
238
|
-
setMeridiem((0, import_utils.formatMeridiem)(format,
|
|
239
|
-
} else if (e.key ===
|
|
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 ===
|
|
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 !==
|
|
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() ===
|
|
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,
|
|
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)(
|
|
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,
|
|
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)(
|
|
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 ?
|
|
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)(
|
|
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)(
|
|
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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,mBAA2C;AAC3C,2BAAkC;AAClC,oBAAmB;AACnB,mBAeO;AACP,uBAcO;AAEP,MAAM,YAAY;AAElB,MAAM,kBAAkB,4CAAkB,OAAO;AACjD,MAAM,YAAY,4CAAkB,SAAS,WAAW;AACxD,MAAM,UAAU,4CAAkB,
|
|
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
|
|
49
|
+
var import_ds_shared = require("@elliemae/ds-shared");
|
|
50
50
|
const isAM = (time) => time && time.hour() < 12;
|
|
51
|
-
const isArrowIncrementDecrement = (key) => key ===
|
|
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 ===
|
|
66
|
+
if (position === import_ds_shared.PLACEHOLDER_TIME.hour) {
|
|
67
67
|
return _placeholderHour(format, use12Hours);
|
|
68
68
|
}
|
|
69
|
-
if (position ===
|
|
69
|
+
if (position === import_ds_shared.PLACEHOLDER_TIME.minutes) {
|
|
70
70
|
return format.indexOf("mm") > -1 ? "mm" : "m";
|
|
71
71
|
}
|
|
72
|
-
if (position ===
|
|
72
|
+
if (position === import_ds_shared.PLACEHOLDER_TIME.seconds) {
|
|
73
73
|
return format.indexOf("ss") > -1 ? "ss" : "s";
|
|
74
74
|
}
|
|
75
|
-
if (position ===
|
|
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) ?
|
|
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:
|
|
156
|
+
meridiem: import_ds_shared.AM
|
|
157
157
|
});
|
|
158
158
|
const commonInputProps = (onKeyDown, onInputFocus, onClick) => ({
|
|
159
159
|
pattern: "[0-9]*",
|