@elliemae/ds-form 3.5.0-rc.9 → 3.6.0-next.0
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/DSCheckboxGroup.js +31 -27
- package/dist/cjs/CheckboxGroup/DSCheckboxGroup.js.map +1 -1
- package/dist/cjs/ComboBoxFreeSolo/ComboBoxFreeSolo.js +2 -2
- package/dist/cjs/ComboBoxFreeSolo/ComboBoxFreeSolo.js.map +2 -2
- package/dist/cjs/ComboBoxFreeSolo/components/MultiValueLabel.js +13 -5
- package/dist/cjs/ComboBoxFreeSolo/components/MultiValueLabel.js.map +2 -2
- package/dist/cjs/ComboBoxFreeSolo/components/MultiValueRemove.js +7 -4
- package/dist/cjs/ComboBoxFreeSolo/components/MultiValueRemove.js.map +2 -2
- package/dist/cjs/ComboBoxFreeSolo/components/SingleValue.js +6 -5
- package/dist/cjs/ComboBoxFreeSolo/components/SingleValue.js.map +2 -2
- package/dist/cjs/ComboBoxFreeSolo/components/SingleValueRemove.js +14 -13
- package/dist/cjs/ComboBoxFreeSolo/components/SingleValueRemove.js.map +2 -2
- package/dist/cjs/DateInput/DSDateInput.js +4 -3
- package/dist/cjs/DateInput/DSDateInput.js.map +2 -2
- package/dist/cjs/DateInput/components/DateInputImpl.js +19 -17
- package/dist/cjs/DateInput/components/DateInputImpl.js.map +2 -2
- package/dist/cjs/DateInput/components/DateInputs.js +15 -12
- package/dist/cjs/DateInput/components/DateInputs.js.map +1 -1
- package/dist/cjs/DateInputV2/components/DSDateInput.js +3 -3
- package/dist/cjs/DateInputV2/components/DSDateInput.js.map +2 -2
- package/dist/cjs/DateInputV2/components/DateInputs.js +19 -13
- package/dist/cjs/DateInputV2/components/DateInputs.js.map +1 -1
- package/dist/cjs/ExpandableInput/DSExpandableInput.js +5 -4
- package/dist/cjs/ExpandableInput/DSExpandableInput.js.map +2 -2
- package/dist/cjs/ExpandableInput/ExpandableInputImpl.js +16 -13
- package/dist/cjs/ExpandableInput/ExpandableInputImpl.js.map +1 -1
- package/dist/cjs/FloatingLabelInput/DSFloatingLabelInput.js +2 -2
- package/dist/cjs/FloatingLabelInput/DSFloatingLabelInput.js.map +2 -2
- package/dist/cjs/FloatingLabelInput/FloatingLabelInputImpl.js +31 -16
- package/dist/cjs/FloatingLabelInput/FloatingLabelInputImpl.js.map +1 -1
- package/dist/cjs/FormItem/DSFormItemLayout.js +64 -34
- package/dist/cjs/FormItem/DSFormItemLayout.js.map +2 -2
- package/dist/cjs/FormItem/Error/DSError.js +5 -4
- package/dist/cjs/FormItem/Error/DSError.js.map +2 -2
- package/dist/cjs/FormItem/Feedback.js +5 -4
- package/dist/cjs/FormItem/Feedback.js.map +2 -2
- package/dist/cjs/FormItem/Label/DSLabel.js +15 -9
- package/dist/cjs/FormItem/Label/DSLabel.js.map +2 -2
- package/dist/cjs/InputGroup/AddonWrapper.js +14 -4
- package/dist/cjs/InputGroup/AddonWrapper.js.map +2 -2
- package/dist/cjs/InputGroup/DSInputGroup.js +5 -4
- package/dist/cjs/InputGroup/DSInputGroup.js.map +2 -2
- package/dist/cjs/InputMask/DSInputMask.js +3 -2
- package/dist/cjs/InputMask/DSInputMask.js.map +2 -2
- package/dist/cjs/InputMask/DSInputMaskDeprecated.js +2 -1
- package/dist/cjs/InputMask/DSInputMaskDeprecated.js.map +1 -1
- package/dist/cjs/InputMask/mask_types/DateInputMask.js +3 -2
- package/dist/cjs/InputMask/mask_types/DateInputMask.js.map +2 -2
- package/dist/cjs/InputMask/mask_types/DateTimeInputMask.js +3 -2
- package/dist/cjs/InputMask/mask_types/DateTimeInputMask.js.map +2 -2
- package/dist/cjs/InputMask/mask_types/DictionaryInputMask.js +3 -2
- package/dist/cjs/InputMask/mask_types/DictionaryInputMask.js.map +2 -2
- package/dist/cjs/InputMask/mask_types/NumberInputMask.js +3 -2
- package/dist/cjs/InputMask/mask_types/NumberInputMask.js.map +2 -2
- package/dist/cjs/InputMask/mask_types/PhoneInputMask.js +3 -2
- package/dist/cjs/InputMask/mask_types/PhoneInputMask.js.map +2 -2
- package/dist/cjs/InputMask/mask_types/PhoneInternationalInputMask.js +3 -2
- package/dist/cjs/InputMask/mask_types/PhoneInternationalInputMask.js.map +2 -2
- package/dist/cjs/InputMask/mask_types/SsnInputMask.js +3 -2
- package/dist/cjs/InputMask/mask_types/SsnInputMask.js.map +2 -2
- package/dist/cjs/InputMask/mask_types/UsZipCodeInputMask.js +3 -2
- package/dist/cjs/InputMask/mask_types/UsZipCodeInputMask.js.map +2 -2
- package/dist/cjs/InputMask/mask_types/ZipCodeSearchInputMask.js +3 -2
- package/dist/cjs/InputMask/mask_types/ZipCodeSearchInputMask.js.map +2 -2
- package/dist/cjs/InputMask/mask_types/index.js +11 -11
- package/dist/cjs/InputMask/mask_types/index.js.map +2 -2
- package/dist/cjs/InputProtected/DSInputProtected.js +34 -30
- package/dist/cjs/InputProtected/DSInputProtected.js.map +2 -2
- package/dist/cjs/LargeInputText/DSLargeInputText.js +49 -40
- package/dist/cjs/LargeInputText/DSLargeInputText.js.map +2 -2
- package/dist/cjs/Radio/Circle.js +10 -9
- package/dist/cjs/Radio/Circle.js.map +2 -2
- package/dist/cjs/Radio/DSRadio.js +61 -48
- package/dist/cjs/Radio/DSRadio.js.map +2 -2
- package/dist/cjs/RadioGroup/DSRadioGroup.js +32 -28
- package/dist/cjs/RadioGroup/DSRadioGroup.js.map +1 -1
- package/dist/cjs/RequiredMark/RequiredMark.js +9 -7
- package/dist/cjs/RequiredMark/RequiredMark.js.map +2 -2
- package/dist/cjs/TimeInput/DSTimeInput.js +3 -3
- package/dist/cjs/TimeInput/DSTimeInput.js.map +2 -2
- package/dist/cjs/TimeInput/TimeInputImpl.js +17 -15
- package/dist/cjs/TimeInput/TimeInputImpl.js.map +2 -2
- package/dist/cjs/TimeInput/TimeInputs.js +16 -13
- package/dist/cjs/TimeInput/TimeInputs.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/DSToggleImpl.js +2 -1
- package/dist/cjs/Toggle/DSToggleImpl.js.map +1 -1
- package/dist/cjs/Toggle/DSToggleRender.js +42 -34
- package/dist/cjs/Toggle/DSToggleRender.js.map +2 -2
- package/dist/esm/CheckboxGroup/DSCheckboxGroup.js +31 -27
- package/dist/esm/CheckboxGroup/DSCheckboxGroup.js.map +1 -1
- package/dist/esm/ComboBoxFreeSolo/ComboBoxFreeSolo.js +2 -2
- package/dist/esm/ComboBoxFreeSolo/ComboBoxFreeSolo.js.map +2 -2
- package/dist/esm/ComboBoxFreeSolo/components/MultiValueLabel.js +13 -5
- package/dist/esm/ComboBoxFreeSolo/components/MultiValueLabel.js.map +2 -2
- package/dist/esm/ComboBoxFreeSolo/components/MultiValueRemove.js +7 -4
- package/dist/esm/ComboBoxFreeSolo/components/MultiValueRemove.js.map +2 -2
- package/dist/esm/ComboBoxFreeSolo/components/SingleValue.js +6 -5
- package/dist/esm/ComboBoxFreeSolo/components/SingleValue.js.map +2 -2
- package/dist/esm/ComboBoxFreeSolo/components/SingleValueRemove.js +14 -13
- package/dist/esm/ComboBoxFreeSolo/components/SingleValueRemove.js.map +2 -2
- package/dist/esm/DateInput/DSDateInput.js +4 -3
- package/dist/esm/DateInput/DSDateInput.js.map +2 -2
- package/dist/esm/DateInput/components/DateInputImpl.js +19 -17
- package/dist/esm/DateInput/components/DateInputImpl.js.map +2 -2
- package/dist/esm/DateInput/components/DateInputs.js +15 -12
- package/dist/esm/DateInput/components/DateInputs.js.map +1 -1
- package/dist/esm/DateInputV2/components/DSDateInput.js +3 -3
- package/dist/esm/DateInputV2/components/DSDateInput.js.map +2 -2
- package/dist/esm/DateInputV2/components/DateInputs.js +19 -13
- package/dist/esm/DateInputV2/components/DateInputs.js.map +1 -1
- package/dist/esm/ExpandableInput/DSExpandableInput.js +5 -4
- package/dist/esm/ExpandableInput/DSExpandableInput.js.map +2 -2
- package/dist/esm/ExpandableInput/ExpandableInputImpl.js +16 -13
- package/dist/esm/ExpandableInput/ExpandableInputImpl.js.map +1 -1
- package/dist/esm/FloatingLabelInput/DSFloatingLabelInput.js +2 -2
- package/dist/esm/FloatingLabelInput/DSFloatingLabelInput.js.map +2 -2
- package/dist/esm/FloatingLabelInput/FloatingLabelInputImpl.js +31 -16
- package/dist/esm/FloatingLabelInput/FloatingLabelInputImpl.js.map +1 -1
- package/dist/esm/FormItem/DSFormItemLayout.js +64 -34
- package/dist/esm/FormItem/DSFormItemLayout.js.map +2 -2
- package/dist/esm/FormItem/Error/DSError.js +5 -4
- package/dist/esm/FormItem/Error/DSError.js.map +2 -2
- package/dist/esm/FormItem/Feedback.js +5 -4
- package/dist/esm/FormItem/Feedback.js.map +2 -2
- package/dist/esm/FormItem/Label/DSLabel.js +15 -9
- package/dist/esm/FormItem/Label/DSLabel.js.map +2 -2
- package/dist/esm/InputGroup/AddonWrapper.js +14 -4
- package/dist/esm/InputGroup/AddonWrapper.js.map +2 -2
- package/dist/esm/InputGroup/DSInputGroup.js +5 -4
- package/dist/esm/InputGroup/DSInputGroup.js.map +2 -2
- package/dist/esm/InputMask/DSInputMask.js +3 -2
- package/dist/esm/InputMask/DSInputMask.js.map +2 -2
- package/dist/esm/InputMask/DSInputMaskDeprecated.js +2 -1
- package/dist/esm/InputMask/DSInputMaskDeprecated.js.map +1 -1
- package/dist/esm/InputMask/mask_types/DateInputMask.js +3 -2
- package/dist/esm/InputMask/mask_types/DateInputMask.js.map +2 -2
- package/dist/esm/InputMask/mask_types/DateTimeInputMask.js +3 -2
- package/dist/esm/InputMask/mask_types/DateTimeInputMask.js.map +2 -2
- package/dist/esm/InputMask/mask_types/DictionaryInputMask.js +3 -2
- package/dist/esm/InputMask/mask_types/DictionaryInputMask.js.map +2 -2
- package/dist/esm/InputMask/mask_types/NumberInputMask.js +3 -2
- package/dist/esm/InputMask/mask_types/NumberInputMask.js.map +2 -2
- package/dist/esm/InputMask/mask_types/PhoneInputMask.js +3 -2
- package/dist/esm/InputMask/mask_types/PhoneInputMask.js.map +2 -2
- package/dist/esm/InputMask/mask_types/PhoneInternationalInputMask.js +3 -2
- package/dist/esm/InputMask/mask_types/PhoneInternationalInputMask.js.map +2 -2
- package/dist/esm/InputMask/mask_types/SsnInputMask.js +3 -2
- package/dist/esm/InputMask/mask_types/SsnInputMask.js.map +2 -2
- package/dist/esm/InputMask/mask_types/UsZipCodeInputMask.js +3 -2
- package/dist/esm/InputMask/mask_types/UsZipCodeInputMask.js.map +2 -2
- package/dist/esm/InputMask/mask_types/ZipCodeSearchInputMask.js +3 -2
- package/dist/esm/InputMask/mask_types/ZipCodeSearchInputMask.js.map +2 -2
- package/dist/esm/InputMask/mask_types/index.js +11 -11
- package/dist/esm/InputMask/mask_types/index.js.map +2 -2
- package/dist/esm/InputProtected/DSInputProtected.js +34 -30
- package/dist/esm/InputProtected/DSInputProtected.js.map +2 -2
- package/dist/esm/LargeInputText/DSLargeInputText.js +49 -40
- package/dist/esm/LargeInputText/DSLargeInputText.js.map +2 -2
- package/dist/esm/Radio/Circle.js +10 -9
- package/dist/esm/Radio/Circle.js.map +2 -2
- package/dist/esm/Radio/DSRadio.js +61 -48
- package/dist/esm/Radio/DSRadio.js.map +2 -2
- package/dist/esm/RadioGroup/DSRadioGroup.js +32 -28
- package/dist/esm/RadioGroup/DSRadioGroup.js.map +1 -1
- package/dist/esm/RequiredMark/RequiredMark.js +9 -7
- package/dist/esm/RequiredMark/RequiredMark.js.map +2 -2
- package/dist/esm/TimeInput/DSTimeInput.js +3 -3
- package/dist/esm/TimeInput/DSTimeInput.js.map +2 -2
- package/dist/esm/TimeInput/TimeInputImpl.js +17 -15
- package/dist/esm/TimeInput/TimeInputImpl.js.map +2 -2
- package/dist/esm/TimeInput/TimeInputs.js +16 -13
- package/dist/esm/TimeInput/TimeInputs.js.map +1 -1
- package/dist/esm/Toggle/DSToggle.js +2 -2
- package/dist/esm/Toggle/DSToggle.js.map +2 -2
- package/dist/esm/Toggle/DSToggleImpl.js +2 -1
- package/dist/esm/Toggle/DSToggleImpl.js.map +1 -1
- package/dist/esm/Toggle/DSToggleRender.js +42 -34
- package/dist/esm/Toggle/DSToggleRender.js.map +2 -2
- package/package.json +12 -12
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createElement } from "react";
|
|
2
4
|
import React2, { useEffect, useState } from "react";
|
|
3
5
|
import { aggregatedClasses } from "@elliemae/ds-classnames";
|
|
4
6
|
import moment from "moment";
|
|
@@ -39,9 +41,10 @@ const TimeInput = aggregatedClasses("input")(blockName, "input");
|
|
|
39
41
|
const Divider = aggregatedClasses("span")(blockName, "divider", ({ value }) => ({
|
|
40
42
|
value
|
|
41
43
|
}));
|
|
42
|
-
const TimeDivider = ({ content = ":", value = "" }) => /* @__PURE__ */
|
|
43
|
-
value: !!value
|
|
44
|
-
|
|
44
|
+
const TimeDivider = ({ content = ":", value = "" }) => /* @__PURE__ */ jsx(Divider, {
|
|
45
|
+
value: !!value,
|
|
46
|
+
children: content
|
|
47
|
+
});
|
|
45
48
|
const TimeInputs = ({
|
|
46
49
|
time,
|
|
47
50
|
format,
|
|
@@ -248,7 +251,7 @@ const TimeInputs = ({
|
|
|
248
251
|
const renderSecondsInput = () => {
|
|
249
252
|
if (!showSeconds)
|
|
250
253
|
return null;
|
|
251
|
-
return /* @__PURE__ */
|
|
254
|
+
return /* @__PURE__ */ createElement(TimeInput, {
|
|
252
255
|
...commonInputProps((e) => onKeyDown(e, GENERAL_TIME_RANGE.max), onInputFocus, onClick),
|
|
253
256
|
key: "seconds-input",
|
|
254
257
|
"data-testid": "ds-time-input__seconds",
|
|
@@ -263,7 +266,7 @@ const TimeInputs = ({
|
|
|
263
266
|
const renderMinutesInput = () => {
|
|
264
267
|
if (!showMinutes)
|
|
265
268
|
return null;
|
|
266
|
-
return /* @__PURE__ */
|
|
269
|
+
return /* @__PURE__ */ createElement(TimeInput, {
|
|
267
270
|
...commonInputProps((e) => onKeyDown(e, GENERAL_TIME_RANGE.max), onInputFocus, onClick),
|
|
268
271
|
key: "minutes-input",
|
|
269
272
|
"data-testid": "ds-time-input__minutes",
|
|
@@ -279,7 +282,7 @@ const TimeInputs = ({
|
|
|
279
282
|
if (!showHours)
|
|
280
283
|
return null;
|
|
281
284
|
const hourFormatRange = use12Hours ? HOUR_RANGE_12 : HOUR_RANGE_24;
|
|
282
|
-
return /* @__PURE__ */
|
|
285
|
+
return /* @__PURE__ */ createElement(TimeInput, {
|
|
283
286
|
...commonInputProps((e) => onKeyDown(e, hourFormatRange.max), onInputFocus, onClick),
|
|
284
287
|
key: "hour-input",
|
|
285
288
|
"data-testid": "ds-time-input__hours",
|
|
@@ -294,7 +297,7 @@ const TimeInputs = ({
|
|
|
294
297
|
const renderMeridiemInput = () => {
|
|
295
298
|
if (!use12Hours)
|
|
296
299
|
return null;
|
|
297
|
-
return /* @__PURE__ */
|
|
300
|
+
return /* @__PURE__ */ createElement(TimeInput, {
|
|
298
301
|
...commonInputProps,
|
|
299
302
|
key: "meridiem-input",
|
|
300
303
|
"data-testid": "ds-time-input__ampm",
|
|
@@ -310,11 +313,10 @@ const TimeInputs = ({
|
|
|
310
313
|
const inputs = [renderHoursInput(), renderMinutesInput(), renderSecondsInput()];
|
|
311
314
|
const inputsWithDividers = inputs.reduce(
|
|
312
315
|
(acc, input, index) => input ? acc.concat([
|
|
313
|
-
index ? /* @__PURE__ */
|
|
314
|
-
key: index,
|
|
316
|
+
index ? /* @__PURE__ */ jsx(TimeDivider, {
|
|
315
317
|
content: ":",
|
|
316
318
|
value: input.props.value
|
|
317
|
-
}) : null,
|
|
319
|
+
}, index) : null,
|
|
318
320
|
input
|
|
319
321
|
]) : acc,
|
|
320
322
|
[]
|
|
@@ -325,10 +327,11 @@ const TimeInputs = ({
|
|
|
325
327
|
renderMeridiemInput()
|
|
326
328
|
];
|
|
327
329
|
};
|
|
328
|
-
return /* @__PURE__ */
|
|
330
|
+
return /* @__PURE__ */ jsx(InputTimesGroup, {
|
|
329
331
|
onBlur: handleOnBlur,
|
|
330
|
-
innerRef
|
|
331
|
-
|
|
332
|
+
innerRef,
|
|
333
|
+
children: renderTimeInputs()
|
|
334
|
+
});
|
|
332
335
|
};
|
|
333
336
|
var TimeInputs_default = TimeInputs;
|
|
334
337
|
export {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/TimeInput/TimeInputs.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* 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"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { PropTypes, describe } from "@elliemae/ds-utilities";
|
|
4
4
|
import { DSToggleImpl } from "./DSToggleImpl";
|
|
5
5
|
import { dsBasicSizes } from "@elliemae/ds-shared";
|
|
@@ -15,7 +15,7 @@ const DSToggle = ({
|
|
|
15
15
|
value,
|
|
16
16
|
size,
|
|
17
17
|
...otherProps
|
|
18
|
-
}) => /* @__PURE__ */
|
|
18
|
+
}) => /* @__PURE__ */ jsx(DSToggleImpl, {
|
|
19
19
|
...otherProps,
|
|
20
20
|
checked,
|
|
21
21
|
containerProps,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/Toggle/DSToggle.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { PropTypes, describe } from '@elliemae/ds-utilities';\nimport { DSToggleImpl } from './DSToggleImpl';\nimport { dsBasicSizes } from '@elliemae/ds-shared';\n\nconst DSToggle = ({\n containerProps,\n hasError,\n readOnly,\n disabled,\n checked,\n labelOn,\n labelOff,\n name,\n value,\n size,\n ...otherProps\n}) => (\n <DSToggleImpl\n {...otherProps}\n checked={checked}\n containerProps={containerProps}\n disabled={disabled}\n hasError={hasError}\n labelOff={labelOff}\n labelOn={labelOn}\n name={name}\n readOnly={readOnly}\n size={size}\n value={value}\n />\n);\n\nDSToggle.defaultProps = {\n labelOn: 'ON',\n labelOff: 'OFF',\n size: 's',\n hasError: false,\n readOnly: false,\n disabled: false,\n checked: undefined,\n};\n\nconst props = {\n /**\n * Set of Properties attached to the main container\n */\n containerProps: PropTypes.shape({}).description('Set of Properties attached to the main container'),\n /**\n * Whether the toggle has error or not\n */\n hasError: PropTypes.bool.description('Whether the toggle has error or not'),\n /**\n * Whether the toggle is read only or not\n */\n readOnly: PropTypes.bool.description('Whether the toggle is read only or not'),\n /**\n * Whether the toggle is disabled or not\n */\n disabled: PropTypes.bool.description('Whether the toggle is disabled or not'),\n /**\n * Whether the toggle is checked or not\n */\n checked: PropTypes.bool.description('Whether the toggle is checked or not'),\n /**\n * Allows a function that is triggered once the toggle changes\n */\n onChange: PropTypes.func.description('Allows a function that is triggered once the toggle changes'),\n /**\n * Label to show when the toggle is ON\n */\n labelOn: PropTypes.string.description('Label to show when the toggle is ON'),\n /**\n * Label to show when the toggle is OFF\n */\n labelOff: PropTypes.string.description('Label to show when the toggle is OFF'),\n /**\n * Default value once the component is initialized\n */\n value: PropTypes.string.description('Default value once the component is initialized'),\n /**\n * ['s', 'm', 'l']\n */\n size: PropTypes.oneOf(dsBasicSizes).description(\"['s', 'm', 'l']\"),\n /**\n * Input name\n */\n name: PropTypes.string.description('Input name'),\n};\n\nDSToggle.propTypes = props;\nDSToggle.displayName = 'DSToggle';\nconst DSToggleWithSchema = describe(DSToggle);\n\nDSToggleWithSchema.propTypes = props;\n\nexport default DSToggle;\n\nexport { DSToggleWithSchema, DSToggle };\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACAvB
|
|
6
|
-
"names": [
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB;AACA,SAAS,WAAW,gBAAgB;AACpC,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAE7B,MAAM,WAAW,CAAC;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,KACG;AACL,MACE,oBAAC;AAAA,EACE,GAAG;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,CACF;AAGF,SAAS,eAAe;AAAA,EACtB,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,SAAS;AACX;AAEA,MAAM,QAAQ;AAAA,EAIZ,gBAAgB,UAAU,MAAM,CAAC,CAAC,EAAE,YAAY,kDAAkD;AAAA,EAIlG,UAAU,UAAU,KAAK,YAAY,qCAAqC;AAAA,EAI1E,UAAU,UAAU,KAAK,YAAY,wCAAwC;AAAA,EAI7E,UAAU,UAAU,KAAK,YAAY,uCAAuC;AAAA,EAI5E,SAAS,UAAU,KAAK,YAAY,sCAAsC;AAAA,EAI1E,UAAU,UAAU,KAAK,YAAY,6DAA6D;AAAA,EAIlG,SAAS,UAAU,OAAO,YAAY,qCAAqC;AAAA,EAI3E,UAAU,UAAU,OAAO,YAAY,sCAAsC;AAAA,EAI7E,OAAO,UAAU,OAAO,YAAY,iDAAiD;AAAA,EAIrF,MAAM,UAAU,MAAM,YAAY,EAAE,YAAY,iBAAiB;AAAA,EAIjE,MAAM,UAAU,OAAO,YAAY,YAAY;AACjD;AAEA,SAAS,YAAY;AACrB,SAAS,cAAc;AACvB,MAAM,qBAAqB,SAAS,QAAQ;AAE5C,mBAAmB,YAAY;AAE/B,IAAO,mBAAQ;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
3
|
import React2, { Component } from "react";
|
|
3
4
|
import { isValidDrag, cleanDrag, calculateDrag, dragStartingPoints } from "./toggleHelper";
|
|
4
5
|
import { DSToggleRender } from "./DSToggleRender";
|
|
@@ -160,7 +161,7 @@ class DSToggleImpl extends Component {
|
|
|
160
161
|
render() {
|
|
161
162
|
const { checked, drag, inside, hide } = this.state;
|
|
162
163
|
const dragStyle = drag !== null || checked || this.props.checked ? { left: `${drag}px` } : null;
|
|
163
|
-
return /* @__PURE__ */
|
|
164
|
+
return /* @__PURE__ */ jsx(DSToggleRender, {
|
|
164
165
|
...this.props,
|
|
165
166
|
defaultState: this.props.checked,
|
|
166
167
|
checked,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/Toggle/DSToggleImpl.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport { isValidDrag, cleanDrag, calculateDrag, dragStartingPoints } from './toggleHelper';\nimport { DSToggleRender } from './DSToggleRender';\nimport { togglePropTypes } from './props';\n\nclass DSToggleImpl extends Component {\n constructor(props) {\n super(props);\n this.state = {\n checked: props.checked || false,\n inside: false,\n isDragging: false,\n // prevent draw of toggle before drag handle positioning calculations\n hide: true,\n drag: null,\n startPoint: null,\n circleWidth: null,\n boxWidth: null,\n };\n this.circle = React.createRef();\n this.box = React.createRef();\n\n this.setDragOnChange = this.setDragOnChange.bind(this);\n this.verifyElements = this.verifyElements.bind(this);\n }\n\n componentDidMount() {\n this.verifyElements();\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (\n this.state.hide &&\n this.state.circleWidth &&\n this.state.boxWidth &&\n prevState.hide &&\n this.state.drag !== null\n ) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ hide: false });\n }\n if (snapshot) {\n this.verifyElements();\n }\n }\n\n /**\n * ******************************************************\n * Drag\n * ****************************************************** *\n *\n * @param clientX\n */\n onDragStart = (clientX) => {\n const { startPoint, checked, isDragging, boxWidth, circleWidth } = this.state;\n // const { checked: checkedProp, } = this.props\n const drag = calculateDrag(clientX, {\n startPoint,\n checked,\n isDragging,\n boxWidth,\n circleWidth,\n });\n if (drag) this.setState({ drag });\n // else this.setDragOnChange(checkedProp != null ? checkedProp : checked) // set initial position\n else this.setDragOnChange(checked); // set initial position\n };\n\n onDragStop = (e) => {\n const { checked } = this.state;\n // const { checked: checkedProp, } = this.props\n if (isValidDrag(this.state)) {\n this.onChange(e);\n this.setState(cleanDrag);\n // } else this.setDragOnChange(checkedProp != null ? checkedProp : checked) // set initial position\n } else this.setDragOnChange(checked); // set initial position\n };\n\n /**\n * ******************************************************\n * StandardEvents\n * ****************************************************** *\n *\n * @param e\n */\n onBlur = (e) => {\n const { onBlur, id } = this.props;\n if (onBlur) onBlur(e, id);\n };\n\n onFocus = (e) => {\n const { onFocus, id } = this.props;\n if (onFocus) onFocus(e, id);\n };\n\n onChange = (e) => {\n const { checked } = this.state;\n const {\n onChange,\n id,\n value,\n // checked: checkedProp,\n } = this.props;\n const newCheck = !checked;\n // this.setState({\n // checked: checkedProp != null ? checkedProp : newCheck,\n // })\n this.setState({\n checked: newCheck,\n });\n e.target.value = value;\n e.target.checked = newCheck;\n e.checked = newCheck;\n onChange(e, id);\n // this.setDragOnChange(checkedProp != null ? checkedProp : newCheck) // set new position\n this.setDragOnChange(newCheck); // set new position\n };\n\n /** ******************************************************\n MouseEvents\n ******************************************************* * */\n onMouseEnter = () => {\n this.setState({ inside: true });\n };\n\n onMouseLeave = () => {\n this.setState({ inside: false });\n };\n\n onMouseMove = (event) => {\n event.preventDefault();\n this.onDragStart(event.clientX);\n };\n\n onMouseDown = (event) => {\n this.onDragStart(event.clientX);\n this.setState({ startPoint: event.clientX, isDragging: true });\n window.addEventListener('mousemove', this.onMouseMove);\n window.addEventListener('mouseup', this.onMouseUp);\n };\n\n onMouseUp = (event) => {\n this.onDragStop(event);\n window.removeEventListener('mousemove', this.onMouseMove);\n window.removeEventListener('mouseup', this.onMouseUp);\n };\n\n /** ******************************************************\n Touch\n ******************************************************* * */\n onTouchCancel = () => {\n this.setState({ inside: false });\n };\n\n onTouchEnd = (event) => {\n event.preventDefault();\n this.onDragStop(event);\n };\n\n onTouchMove = (event) => {\n this.onDragStart(event.touches[0].clientX);\n };\n\n onTouchStart = (event) => {\n this.onDragStart(event.touches[0].clientX);\n this.setState({ startPoint: event.touches[0].clientX, isDragging: true });\n };\n\n static getDerivedStateFromProps(props, state) {\n if (props.checked === true || props.checked === false) {\n return {\n checked: props.checked,\n ...dragStartingPoints(props.checked)(state),\n };\n }\n return null;\n }\n\n getSnapshotBeforeUpdate(prevProps) {\n const { size } = this.props;\n if (prevProps.size !== size) {\n return true;\n }\n return false;\n }\n\n /**\n * ******************************************************\n * other\n * ****************************************************** *\n *\n * @param currentCheckState\n */\n setDragOnChange(currentCheckState) {\n this.setState(dragStartingPoints(currentCheckState));\n }\n\n verifyElements() {\n const { checked } = this.state;\n const { checked: checkedProp } = this.props;\n const nodesInterval = setInterval(() => {\n // !important it checks when nodes are availables\n if (!this.circle || !this.box || !this.circle.current || !this.box.current) return;\n const {\n current: { clientWidth: circleWidth },\n } = this.circle;\n const {\n current: { clientWidth: boxWidth },\n } = this.box;\n if (!circleWidth || !boxWidth || circleWidth === boxWidth) return;\n this.setState({\n boxWidth,\n circleWidth,\n });\n this.setDragOnChange(checkedProp != null ? checkedProp : checked);\n // this.setDragOnChange(checked)\n clearInterval(nodesInterval);\n }, 5);\n }\n\n render() {\n const { checked, drag, inside, hide } = this.state;\n const dragStyle = drag !== null || checked || this.props.checked ? { left: `${drag}px` } : null;\n return (\n <DSToggleRender\n {...this.props}\n defaultState={this.props.checked}\n checked={checked}\n containerRef={this.box}\n hide={hide}\n dragStyle={dragStyle}\n handRef={this.circle}\n inside={inside}\n onBlur={this.onBlur}\n onChange={this.onChange}\n onFocus={this.onFocus}\n onMouseDown={this.onMouseDown}\n onMouseEnter={this.onMouseEnter}\n onMouseLeave={this.onMouseLeave}\n onTouchCancel={this.onTouchCancel}\n onTouchEnd={this.onTouchEnd}\n onTouchMove={this.onTouchMove}\n onTouchStart={this.onTouchStart}\n />\n );\n }\n}\n\nDSToggleImpl.propTypes = togglePropTypes;\n\nexport { DSToggleImpl };\nexport default DSToggleImpl;\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { onClickHandlerForNonInteractiveElements } from "@elliemae/ds-utilities";
|
|
4
4
|
import { convertPropToCssClassName } from "@elliemae/ds-classnames";
|
|
5
5
|
import { DSTooltip } from "@elliemae/ds-tooltip";
|
|
@@ -46,19 +46,21 @@ const DSToggleRender = ({
|
|
|
46
46
|
size
|
|
47
47
|
});
|
|
48
48
|
const allowChange = disabled || readOnly;
|
|
49
|
-
let label = checked ? /* @__PURE__ */
|
|
50
|
-
className: classNameElement("icon-on")
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
let label = checked ? /* @__PURE__ */ jsx("div", {
|
|
50
|
+
className: classNameElement("icon-on"),
|
|
51
|
+
children: labelOn
|
|
52
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
53
|
+
className: classNameElement("icon-off"),
|
|
54
|
+
children: labelOff
|
|
55
|
+
});
|
|
54
56
|
if (readOnly) {
|
|
55
|
-
label = /* @__PURE__ */
|
|
57
|
+
label = /* @__PURE__ */ jsx(DSTooltip, {
|
|
56
58
|
interactionType: "hover",
|
|
57
59
|
title: "Read Only",
|
|
58
60
|
triggerComponent: label
|
|
59
61
|
});
|
|
60
62
|
}
|
|
61
|
-
return /* @__PURE__ */
|
|
63
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
62
64
|
"data-testid": "em-ds-toggle",
|
|
63
65
|
...containerProps,
|
|
64
66
|
"aria-disabled": disabled,
|
|
@@ -73,32 +75,38 @@ const DSToggleRender = ({
|
|
|
73
75
|
onFocus,
|
|
74
76
|
"aria-checked": checked,
|
|
75
77
|
role: "checkbox",
|
|
76
|
-
tabIndex: 0
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
78
|
+
tabIndex: 0,
|
|
79
|
+
children: [
|
|
80
|
+
/* @__PURE__ */ jsx("div", {
|
|
81
|
+
className: classNameBlock("box"),
|
|
82
|
+
children: label
|
|
83
|
+
}),
|
|
84
|
+
/* @__PURE__ */ jsx("div", {
|
|
85
|
+
ref: handRef,
|
|
86
|
+
"aria-checked": checked,
|
|
87
|
+
"aria-disabled": disabled,
|
|
88
|
+
className: `${classNameElement("input")} ${defaultState ? "default-state-checked" : ""}`,
|
|
89
|
+
onMouseDown: allowChange ? null : onMouseDown,
|
|
90
|
+
onMouseEnter: allowChange ? null : onMouseEnter,
|
|
91
|
+
onMouseLeave: allowChange ? null : onMouseLeave,
|
|
92
|
+
onTouchCancel: allowChange ? null : onTouchCancel,
|
|
93
|
+
onTouchEnd: allowChange ? null : onTouchEnd,
|
|
94
|
+
onTouchMove: allowChange ? null : onTouchMove,
|
|
95
|
+
onTouchStart: allowChange ? null : onTouchStart,
|
|
96
|
+
style: {
|
|
97
|
+
...style,
|
|
98
|
+
...dragStyle
|
|
99
|
+
}
|
|
100
|
+
}),
|
|
101
|
+
/* @__PURE__ */ jsx("input", {
|
|
102
|
+
className: classNameElement("hidden-checkbox"),
|
|
103
|
+
defaultChecked: checked,
|
|
104
|
+
defaultValue: value,
|
|
105
|
+
name,
|
|
106
|
+
type: "checkbox"
|
|
107
|
+
})
|
|
108
|
+
]
|
|
109
|
+
});
|
|
102
110
|
};
|
|
103
111
|
var DSToggleRender_default = DSToggleRender;
|
|
104
112
|
export {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/Toggle/DSToggleRender.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\n/* eslint-disable complexity */\nimport React from 'react';\nimport { onClickHandlerForNonInteractiveElements } from '@elliemae/ds-utilities';\nimport { convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { DSTooltip } from '@elliemae/ds-tooltip';\n\nconst DSToggleRender = ({\n containerProps,\n id,\n className = '',\n style = {},\n hasError = false,\n hide,\n readOnly = false,\n disabled = false,\n checked = false,\n onBlur = () => null,\n onFocus = () => null,\n onChange = () => null,\n onMouseDown = () => null,\n onMouseEnter = () => null,\n onMouseLeave = () => null,\n onTouchCancel = () => null,\n onTouchEnd = () => null,\n onTouchMove = () => null,\n onTouchStart = () => null,\n labelOn = 'ON',\n labelOff = 'OFF',\n dragStyle = {},\n containerRef = null,\n handRef = null,\n name = '',\n value = '',\n size = 's',\n defaultState,\n}) => {\n const {\n cssClassName,\n classNameBlock,\n classNameElement,\n } = convertPropToCssClassName('form-element-toggle', className, {\n hasError,\n readOnly,\n disabled,\n checked,\n id,\n size,\n });\n const allowChange = disabled || readOnly;\n\n let label = checked ? (\n <div className={classNameElement('icon-on')}>{labelOn}</div>\n ) : (\n <div className={classNameElement('icon-off')}>{labelOff}</div>\n );\n\n if (readOnly) {\n label = (\n <DSTooltip\n interactionType=\"hover\"\n title=\"Read Only\"\n triggerComponent={label}\n />\n );\n }\n\n return (\n <div\n data-testid=\"em-ds-toggle\"\n {...containerProps}\n aria-disabled={disabled}\n defaultChecked={checked}\n defaultValue={value}\n {...onClickHandlerForNonInteractiveElements(\n allowChange ? null : onChange,\n )}\n ref={containerRef}\n className={`${cssClassName} ${\n defaultState ? 'default-state-checked' : ''\n }${hide ? ' ds-form-element-toggle-hide' : ''}`}\n onBlur={onBlur}\n onFocus={onFocus}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n aria-checked={checked}\n role=\"checkbox\"\n tabIndex={0}\n >\n <div className={classNameBlock('box')}>{label}</div>\n <div\n ref={handRef}\n aria-checked={checked}\n aria-disabled={disabled}\n className={`${classNameElement('input')} ${\n defaultState ? 'default-state-checked' : ''\n }`}\n onMouseDown={allowChange ? null : onMouseDown}\n onMouseEnter={allowChange ? null : onMouseEnter}\n onMouseLeave={allowChange ? null : onMouseLeave}\n onTouchCancel={allowChange ? null : onTouchCancel}\n onTouchEnd={allowChange ? null : onTouchEnd}\n onTouchMove={allowChange ? null : onTouchMove}\n onTouchStart={allowChange ? null : onTouchStart}\n style={{\n ...style,\n ...dragStyle,\n }}\n />\n <input\n className={classNameElement('hidden-checkbox')}\n defaultChecked={checked}\n defaultValue={value}\n name={name}\n type=\"checkbox\"\n />\n </div>\n );\n};\n\nexport { DSToggleRender };\nexport default DSToggleRender;\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
6
|
-
"names": [
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB;AAGA,SAAS,+CAA+C;AACxD,SAAS,iCAAiC;AAC1C,SAAS,iBAAiB;AAE1B,MAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,QAAQ,CAAC;AAAA,EACT,WAAW;AAAA,EACX;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AAAA,EACV,SAAS,MAAM;AAAA,EACf,UAAU,MAAM;AAAA,EAChB,WAAW,MAAM;AAAA,EACjB,cAAc,MAAM;AAAA,EACpB,eAAe,MAAM;AAAA,EACrB,eAAe,MAAM;AAAA,EACrB,gBAAgB,MAAM;AAAA,EACtB,aAAa,MAAM;AAAA,EACnB,cAAc,MAAM;AAAA,EACpB,eAAe,MAAM;AAAA,EACrB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,YAAY,CAAC;AAAA,EACb,eAAe;AAAA,EACf,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,0BAA0B,uBAAuB,WAAW;AAAA,IAC9D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,cAAc,YAAY;AAEhC,MAAI,QAAQ,UACV,oBAAC;AAAA,IAAI,WAAW,iBAAiB,SAAS;AAAA,IAAI;AAAA,GAAQ,IAEtD,oBAAC;AAAA,IAAI,WAAW,iBAAiB,UAAU;AAAA,IAAI;AAAA,GAAS;AAG1D,MAAI,UAAU;AACZ,YACE,oBAAC;AAAA,MACC,iBAAgB;AAAA,MAChB,OAAM;AAAA,MACN,kBAAkB;AAAA,KACpB;AAAA,EAEJ;AAEA,SACE,qBAAC;AAAA,IACC,eAAY;AAAA,IACX,GAAG;AAAA,IACJ,iBAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACb,GAAG;AAAA,MACF,cAAc,OAAO;AAAA,IACvB;AAAA,IACA,KAAK;AAAA,IACL,WAAW,GAAG,gBACZ,eAAe,0BAA0B,KACxC,OAAO,iCAAiC;AAAA,IAC3C;AAAA,IACA;AAAA,IAEA,gBAAc;AAAA,IACd,MAAK;AAAA,IACL,UAAU;AAAA,IAEV;AAAA,0BAAC;AAAA,QAAI,WAAW,eAAe,KAAK;AAAA,QAAI;AAAA,OAAM;AAAA,MAC9C,oBAAC;AAAA,QACC,KAAK;AAAA,QACL,gBAAc;AAAA,QACd,iBAAe;AAAA,QACf,WAAW,GAAG,iBAAiB,OAAO,KACpC,eAAe,0BAA0B;AAAA,QAE3C,aAAa,cAAc,OAAO;AAAA,QAClC,cAAc,cAAc,OAAO;AAAA,QACnC,cAAc,cAAc,OAAO;AAAA,QACnC,eAAe,cAAc,OAAO;AAAA,QACpC,YAAY,cAAc,OAAO;AAAA,QACjC,aAAa,cAAc,OAAO;AAAA,QAClC,cAAc,cAAc,OAAO;AAAA,QACnC,OAAO;AAAA,UACL,GAAG;AAAA,UACH,GAAG;AAAA,QACL;AAAA,OACF;AAAA,MACA,oBAAC;AAAA,QACC,WAAW,iBAAiB,iBAAiB;AAAA,QAC7C,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd;AAAA,QACA,MAAK;AAAA,OACP;AAAA;AAAA,GACF;AAEJ;AAGA,IAAO,yBAAQ;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-form",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0-next.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Form",
|
|
6
6
|
"files": [
|
|
@@ -475,17 +475,17 @@
|
|
|
475
475
|
"indent": 4
|
|
476
476
|
},
|
|
477
477
|
"dependencies": {
|
|
478
|
-
"@elliemae/ds-button": "3.
|
|
479
|
-
"@elliemae/ds-classnames": "3.
|
|
480
|
-
"@elliemae/ds-common": "3.
|
|
481
|
-
"@elliemae/ds-grid": "3.
|
|
482
|
-
"@elliemae/ds-icons": "3.
|
|
483
|
-
"@elliemae/ds-shared": "3.
|
|
484
|
-
"@elliemae/ds-system": "3.
|
|
485
|
-
"@elliemae/ds-text-wrapper": "3.
|
|
486
|
-
"@elliemae/ds-tooltip": "3.
|
|
487
|
-
"@elliemae/ds-truncated-tooltip-text": "3.
|
|
488
|
-
"@elliemae/ds-utilities": "3.
|
|
478
|
+
"@elliemae/ds-button": "3.6.0-next.0",
|
|
479
|
+
"@elliemae/ds-classnames": "3.6.0-next.0",
|
|
480
|
+
"@elliemae/ds-common": "3.6.0-next.0",
|
|
481
|
+
"@elliemae/ds-grid": "3.6.0-next.0",
|
|
482
|
+
"@elliemae/ds-icons": "3.6.0-next.0",
|
|
483
|
+
"@elliemae/ds-shared": "3.6.0-next.0",
|
|
484
|
+
"@elliemae/ds-system": "3.6.0-next.0",
|
|
485
|
+
"@elliemae/ds-text-wrapper": "3.6.0-next.0",
|
|
486
|
+
"@elliemae/ds-tooltip": "3.6.0-next.0",
|
|
487
|
+
"@elliemae/ds-truncated-tooltip-text": "3.6.0-next.0",
|
|
488
|
+
"@elliemae/ds-utilities": "3.6.0-next.0",
|
|
489
489
|
"memoize-one": "~6.0.0",
|
|
490
490
|
"moment": "~2.29.3",
|
|
491
491
|
"prop-types": "~15.8.1",
|