@elliemae/ds-controlled-form 2.4.2-rc.12 → 2.4.2-rc.13
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/cjs/autocomplete/config/useAutocomplete.js +0 -1
- package/cjs/autocomplete/parts/A11yFocusedOption.js +9 -6
- package/cjs/autocomplete/parts/container/Container.js +1 -1
- package/cjs/autocomplete/parts/container/useKeyboardNavigation.js +2 -2
- package/cjs/autocomplete/parts/menu-list/MenuList.js +3 -5
- package/cjs/autocomplete/parts/menu-list/styled.js +2 -2
- package/cjs/autocomplete/parts/menu-list/useItemRenderer.js +1 -1
- package/cjs/checkbox/config/useValidateProps.js +6 -3
- package/cjs/checkbox/styles.js +72 -28
- package/cjs/checkbox/utils/styleHelpers.js +20 -2
- package/cjs/combobox/config/useComboBox.js +1 -2
- package/cjs/combobox/config/useCorrectOptions.js +1 -2
- package/cjs/combobox/parts/A11yFocusedOption.js +4 -4
- package/cjs/combobox/parts/A11ySelectedValues.js +2 -2
- package/cjs/combobox/parts/DropdownIndicator.js +13 -5
- package/cjs/combobox/parts/container/Container.js +1 -1
- package/cjs/combobox/parts/container/styled.js +11 -10
- package/cjs/combobox/parts/controls/Controls.js +3 -9
- package/cjs/combobox/parts/controls/styled.js +54 -22
- package/cjs/combobox/parts/controls/useOnPillsNavigation.js +4 -12
- package/cjs/combobox/parts/controls-input/styled.js +41 -11
- package/cjs/combobox/parts/controls-input/useControlsInput.js +1 -5
- package/cjs/combobox/parts/controls-input/useKeyboardNavigation.js +4 -6
- package/cjs/combobox/parts/controls-input/useMaskedOnChange.js +1 -1
- package/cjs/combobox/parts/header-list/HeaderList.js +1 -1
- package/cjs/combobox/parts/header-list/styled.js +39 -10
- package/cjs/combobox/parts/header-list/useHeaderListHandlers.js +4 -11
- package/cjs/combobox/parts/menu-list/MenuList.js +2 -2
- package/cjs/combobox/parts/menu-list/styled.js +37 -21
- package/cjs/combobox/parts/menu-list/useItemRenderer.js +3 -3
- package/cjs/combobox/parts/multi-selected-values-container/MultiSelectedValuesContainer.js +1 -1
- package/cjs/combobox/parts/multi-selected-values-container/RemovableSelectedValuePill.js +1 -3
- package/cjs/combobox/parts/multi-selected-values-container/useGroupPills.js +1 -2
- package/cjs/combobox/parts/styled.js +6 -7
- package/cjs/combobox/sharedTypes.js +2 -2
- package/cjs/combobox/utils/listHelper.js +4 -9
- package/cjs/date-range-picker/config/useRangePickerLogic.js +4 -8
- package/cjs/date-range-picker/parts/ControlledDateRangeCalendar.js +0 -2
- package/cjs/date-range-picker/parts/ControlledDateRangeFromDate.js +0 -2
- package/cjs/date-range-picker/parts/ControlledDateRangeToDate.js +0 -2
- package/cjs/date-time-picker/config/useChangeHandlers.js +3 -3
- package/cjs/date-time-picker/config/useControlledDateTimePicker.js +1 -1
- package/cjs/date-time-picker/config/useFocusTracker.js +1 -1
- package/cjs/date-time-picker/config/useGetDestructuredValues.js +6 -6
- package/cjs/date-time-picker/config/useGetPropsBasedOnType.js +1 -1
- package/cjs/date-time-picker/config/useGetReferences.js +1 -1
- package/cjs/date-time-picker/config/useRelevantValueFromProps.js +1 -1
- package/cjs/date-time-picker/config/useValidateProps.js +42 -11
- package/cjs/date-time-picker/parts/ClearButton/ClearButton.js +1 -3
- package/cjs/date-time-picker/parts/DateInputs/DDInput.js +3 -7
- package/cjs/date-time-picker/parts/DateInputs/MMInput.js +3 -7
- package/cjs/date-time-picker/parts/DateInputs/YYYYInput.js +3 -7
- package/cjs/date-time-picker/parts/DateInputs/useDateInputs.js +13 -23
- package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +4 -4
- package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarHead.js +6 -14
- package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +1 -1
- package/cjs/date-time-picker/parts/Pickers/Calendar/Day.js +8 -10
- package/cjs/date-time-picker/parts/Pickers/Calendar/Styleds.js +44 -15
- package/cjs/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +1 -2
- package/cjs/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +2 -1
- package/cjs/date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +0 -1
- package/cjs/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +3 -5
- package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +1 -1
- package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +3 -5
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/HoursList.js +5 -7
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +6 -8
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +5 -7
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +2 -2
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/Styleds.js +47 -15
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +1 -1
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +1 -1
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +3 -3
- package/cjs/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +2 -5
- package/cjs/date-time-picker/parts/Styleds.js +12 -6
- package/cjs/date-time-picker/parts/TimeInputs/HHInput.js +2 -4
- package/cjs/date-time-picker/parts/TimeInputs/MeridiemInput.js +3 -8
- package/cjs/date-time-picker/parts/TimeInputs/MinutesInput.js +3 -7
- package/cjs/date-time-picker/parts/TimeInputs/useTimeInputs.js +14 -26
- package/cjs/date-time-picker/utils/dateHelpers.js +17 -34
- package/cjs/date-time-picker/utils/hooks/useOnClickOutside.js +1 -3
- package/cjs/date-time-picker/utils/stringHelpers.js +5 -11
- package/cjs/input-group/styled.js +79 -13
- package/cjs/large-text-input/DSControlledLargeTextInput.js +1 -1
- package/cjs/large-text-input/styles.js +27 -13
- package/cjs/mask-hook/hooks/useNumberMask.js +1 -5
- package/cjs/mask-hook/hooks/usePhoneMask.js +1 -4
- package/cjs/mask-hook/hooks/useRegExpMask.js +4 -7
- package/cjs/mask-hook/hooks/useSSNMask.js +1 -4
- package/cjs/mask-hook/hooks/useZipCodeMask.js +1 -4
- package/cjs/mask-hook/utils/addSpecialCharacters.js +0 -1
- package/cjs/mask-hook/utils/flatStringArray.js +0 -1
- package/cjs/text-input/config/useInputText.js +0 -1
- package/cjs/text-input/styled/borders.js +18 -11
- package/cjs/text-input/styled/components.js +49 -10
- package/cjs/toggle/ControlledToggle.js +2 -3
- package/cjs/toggle/styles.js +7 -5
- package/esm/autocomplete/config/useAutocomplete.js +0 -1
- package/esm/autocomplete/parts/A11yFocusedOption.js +9 -5
- package/esm/autocomplete/parts/container/Container.js +1 -1
- package/esm/autocomplete/parts/container/useKeyboardNavigation.js +2 -2
- package/esm/autocomplete/parts/menu-list/MenuList.js +3 -5
- package/esm/autocomplete/parts/menu-list/styled.js +2 -2
- package/esm/autocomplete/parts/menu-list/useItemRenderer.js +1 -1
- package/esm/checkbox/config/useValidateProps.js +6 -3
- package/esm/checkbox/styles.js +72 -24
- package/esm/checkbox/utils/styleHelpers.js +20 -2
- package/esm/combobox/config/useComboBox.js +0 -1
- package/esm/combobox/config/useCorrectOptions.js +1 -2
- package/esm/combobox/parts/A11yFocusedOption.js +4 -4
- package/esm/combobox/parts/A11ySelectedValues.js +2 -2
- package/esm/combobox/parts/DropdownIndicator.js +13 -4
- package/esm/combobox/parts/container/Container.js +1 -1
- package/esm/combobox/parts/container/styled.js +11 -6
- package/esm/combobox/parts/controls/Controls.js +3 -9
- package/esm/combobox/parts/controls/styled.js +54 -18
- package/esm/combobox/parts/controls/useOnPillsNavigation.js +4 -12
- package/esm/combobox/parts/controls-input/styled.js +41 -7
- package/esm/combobox/parts/controls-input/useControlsInput.js +1 -5
- package/esm/combobox/parts/controls-input/useKeyboardNavigation.js +4 -6
- package/esm/combobox/parts/controls-input/useMaskedOnChange.js +1 -1
- package/esm/combobox/parts/header-list/HeaderList.js +1 -1
- package/esm/combobox/parts/header-list/styled.js +40 -7
- package/esm/combobox/parts/header-list/useHeaderListHandlers.js +4 -11
- package/esm/combobox/parts/menu-list/MenuList.js +2 -2
- package/esm/combobox/parts/menu-list/styled.js +37 -17
- package/esm/combobox/parts/menu-list/useItemRenderer.js +3 -3
- package/esm/combobox/parts/multi-selected-values-container/MultiSelectedValuesContainer.js +1 -1
- package/esm/combobox/parts/multi-selected-values-container/RemovableSelectedValuePill.js +1 -3
- package/esm/combobox/parts/multi-selected-values-container/useGroupPills.js +1 -2
- package/esm/combobox/parts/styled.js +6 -3
- package/esm/combobox/sharedTypes.js +2 -2
- package/esm/combobox/utils/listHelper.js +4 -9
- package/esm/date-range-picker/config/useRangePickerLogic.js +3 -7
- package/esm/date-range-picker/parts/ControlledDateRangeCalendar.js +0 -2
- package/esm/date-range-picker/parts/ControlledDateRangeFromDate.js +0 -2
- package/esm/date-range-picker/parts/ControlledDateRangeToDate.js +0 -2
- package/esm/date-time-picker/config/useChangeHandlers.js +3 -3
- package/esm/date-time-picker/config/useControlledDateTimePicker.js +1 -1
- package/esm/date-time-picker/config/useFocusTracker.js +1 -1
- package/esm/date-time-picker/config/useGetDestructuredValues.js +6 -6
- package/esm/date-time-picker/config/useGetPropsBasedOnType.js +1 -1
- package/esm/date-time-picker/config/useGetReferences.js +1 -1
- package/esm/date-time-picker/config/useRelevantValueFromProps.js +1 -1
- package/esm/date-time-picker/config/useValidateProps.js +42 -11
- package/esm/date-time-picker/parts/ClearButton/ClearButton.js +1 -3
- package/esm/date-time-picker/parts/DateInputs/DDInput.js +3 -7
- package/esm/date-time-picker/parts/DateInputs/MMInput.js +3 -7
- package/esm/date-time-picker/parts/DateInputs/YYYYInput.js +3 -7
- package/esm/date-time-picker/parts/DateInputs/useDateInputs.js +13 -23
- package/esm/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +4 -4
- package/esm/date-time-picker/parts/Pickers/Calendar/CalendarHead.js +6 -14
- package/esm/date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +1 -1
- package/esm/date-time-picker/parts/Pickers/Calendar/Day.js +8 -10
- package/esm/date-time-picker/parts/Pickers/Calendar/Styleds.js +44 -14
- package/esm/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +0 -1
- package/esm/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +2 -1
- package/esm/date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +0 -1
- package/esm/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +3 -5
- package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +1 -1
- package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +3 -5
- package/esm/date-time-picker/parts/Pickers/TimeWheel/HoursList.js +5 -7
- package/esm/date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +6 -8
- package/esm/date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +5 -7
- package/esm/date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +2 -2
- package/esm/date-time-picker/parts/Pickers/TimeWheel/Styleds.js +47 -14
- package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +1 -1
- package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +1 -1
- package/esm/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +3 -3
- package/esm/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +2 -5
- package/esm/date-time-picker/parts/Styleds.js +12 -6
- package/esm/date-time-picker/parts/TimeInputs/HHInput.js +2 -4
- package/esm/date-time-picker/parts/TimeInputs/MeridiemInput.js +3 -8
- package/esm/date-time-picker/parts/TimeInputs/MinutesInput.js +3 -7
- package/esm/date-time-picker/parts/TimeInputs/useTimeInputs.js +14 -26
- package/esm/date-time-picker/utils/dateHelpers.js +17 -34
- package/esm/date-time-picker/utils/hooks/useOnClickOutside.js +1 -3
- package/esm/date-time-picker/utils/stringHelpers.js +5 -11
- package/esm/input-group/styled.js +79 -9
- package/esm/large-text-input/DSControlledLargeTextInput.js +1 -1
- package/esm/large-text-input/styles.js +27 -9
- package/esm/mask-hook/hooks/useNumberMask.js +1 -5
- package/esm/mask-hook/hooks/usePhoneMask.js +1 -4
- package/esm/mask-hook/hooks/useRegExpMask.js +4 -7
- package/esm/mask-hook/hooks/useSSNMask.js +1 -4
- package/esm/mask-hook/hooks/useZipCodeMask.js +1 -4
- package/esm/mask-hook/utils/addSpecialCharacters.js +0 -1
- package/esm/mask-hook/utils/flatStringArray.js +0 -1
- package/esm/text-input/config/useInputText.js +0 -1
- package/esm/text-input/styled/borders.js +18 -7
- package/esm/text-input/styled/components.js +49 -6
- package/esm/toggle/ControlledToggle.js +0 -1
- package/esm/toggle/styles.js +7 -5
- package/package.json +15 -15
- package/types/text-input/config/useInputText.d.ts +3 -3
|
@@ -2,38 +2,52 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
|
|
6
5
|
var dsSystem = require('@elliemae/ds-system');
|
|
7
6
|
var styledComponents = require('@xstyled/styled-components');
|
|
8
7
|
var theming = require('./exported-related/theming.js');
|
|
9
8
|
|
|
10
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
|
-
|
|
12
|
-
var _taggedTemplateLiteral__default = /*#__PURE__*/_interopDefaultLegacy(_taggedTemplateLiteral);
|
|
13
|
-
|
|
14
|
-
var _templateObject, _templateObject2, _templateObject3;
|
|
15
9
|
const StyledContainer = dsSystem.styled('div', {
|
|
16
10
|
name: theming.DSControlledLargeTextInputName,
|
|
17
11
|
slot: theming.DSControlledLargeTextInputSlots.CONTAINER
|
|
18
|
-
})
|
|
12
|
+
})`
|
|
13
|
+
display: grid;
|
|
14
|
+
grid-gap: 4px;
|
|
15
|
+
grid-template-rows: auto auto;
|
|
16
|
+
grid-template-columns: fit-content;
|
|
17
|
+
${styledComponents.layout}
|
|
18
|
+
${styledComponents.space}
|
|
19
|
+
${styledComponents.sizing}
|
|
20
|
+
`;
|
|
19
21
|
const StyledCharCounter = dsSystem.styled('span', {
|
|
20
22
|
name: theming.DSControlledLargeTextInputName,
|
|
21
23
|
slot: theming.DSControlledLargeTextInputSlots.CHAR_COUNTER
|
|
22
|
-
})
|
|
24
|
+
})`
|
|
25
|
+
justify-self: flex-end;
|
|
26
|
+
`;
|
|
23
27
|
const StyledTextArea = dsSystem.styled('textarea', {
|
|
24
28
|
name: theming.DSControlledLargeTextInputName,
|
|
25
29
|
slot: theming.DSControlledLargeTextInputSlots.INPUT
|
|
26
|
-
})
|
|
30
|
+
})`
|
|
31
|
+
width: 100%;
|
|
32
|
+
${_ref => {
|
|
27
33
|
let {
|
|
28
34
|
resizable
|
|
29
35
|
} = _ref;
|
|
30
|
-
return resizable ?
|
|
31
|
-
}
|
|
36
|
+
return resizable ? `` : `resize: none;`;
|
|
37
|
+
}}
|
|
38
|
+
&:disabled {
|
|
39
|
+
&:hover {
|
|
40
|
+
cursor: not-allowed;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
${_ref2 => {
|
|
32
45
|
let {
|
|
33
46
|
hasError
|
|
34
47
|
} = _ref2;
|
|
35
|
-
return hasError ?
|
|
36
|
-
}
|
|
48
|
+
return hasError ? `border: 1px solid red;` : ``;
|
|
49
|
+
}}
|
|
50
|
+
`;
|
|
37
51
|
|
|
38
52
|
exports.StyledCharCounter = StyledCharCounter;
|
|
39
53
|
exports.StyledContainer = StyledContainer;
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
6
|
-
require('core-js/modules/es.string.replace.js');
|
|
7
6
|
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
8
7
|
require('core-js/modules/esnext.iterator.constructor.js');
|
|
9
8
|
require('core-js/modules/esnext.iterator.filter.js');
|
|
10
|
-
require('core-js/modules/web.dom-collections.iterator.js');
|
|
11
9
|
var React = require('react');
|
|
12
10
|
var dsPropsHelpers = require('@elliemae/ds-props-helpers');
|
|
13
11
|
var dsUtilities = require('@elliemae/ds-utilities');
|
|
@@ -149,9 +147,7 @@ const useNumberMask = props => {
|
|
|
149
147
|
if (userOnKeyDown) userOnKeyDown(e);
|
|
150
148
|
}, [userOnKeyDown]);
|
|
151
149
|
const onChange = React.useCallback(e => {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
const [mask, cursorPos] = conformValue(e.target.value, (_e$target$selectionEn = e.target.selectionEnd) !== null && _e$target$selectionEn !== void 0 ? _e$target$selectionEn : 0, lastKeyCode.current, opts);
|
|
150
|
+
const [mask, cursorPos] = conformValue(e.target.value, e.target.selectionEnd ?? 0, lastKeyCode.current, opts);
|
|
155
151
|
valueSetter(prevMask => {
|
|
156
152
|
// Here we need to update the key
|
|
157
153
|
if (mask === prevMask) setKey(key => key + 1);
|
|
@@ -6,7 +6,6 @@ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProp
|
|
|
6
6
|
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
7
7
|
require('core-js/modules/esnext.iterator.constructor.js');
|
|
8
8
|
require('core-js/modules/esnext.iterator.filter.js');
|
|
9
|
-
require('core-js/modules/web.dom-collections.iterator.js');
|
|
10
9
|
var React = require('react');
|
|
11
10
|
var dsPropsHelpers = require('@elliemae/ds-props-helpers');
|
|
12
11
|
var dsUtilities = require('@elliemae/ds-utilities');
|
|
@@ -72,9 +71,7 @@ const usePhoneMask = props => {
|
|
|
72
71
|
if (userOnKeyDown) userOnKeyDown(e);
|
|
73
72
|
}, [userOnKeyDown]);
|
|
74
73
|
const onChange = React.useCallback(e => {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const [mask, cursorPos] = conformValue(e.target.value, (_e$target$selectionEn = e.target.selectionEnd) !== null && _e$target$selectionEn !== void 0 ? _e$target$selectionEn : 0, lastKeyCode.current, opts);
|
|
74
|
+
const [mask, cursorPos] = conformValue(e.target.value, e.target.selectionEnd ?? 0, lastKeyCode.current, opts);
|
|
78
75
|
valueSetter(prevMask => {
|
|
79
76
|
// Here we need to update the key
|
|
80
77
|
if (mask === prevMask) setKey(key => key + 1);
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
require('core-js/modules/web.dom-collections.iterator.js');
|
|
6
5
|
var React = require('react');
|
|
7
6
|
var dsPropsHelpers = require('@elliemae/ds-props-helpers');
|
|
8
7
|
var dsUtilities = require('@elliemae/ds-utilities');
|
|
@@ -15,6 +14,8 @@ require('core-js/modules/esnext.iterator.filter.js');
|
|
|
15
14
|
var flatStringArray = require('../utils/flatStringArray.js');
|
|
16
15
|
var reactDescPropTypes = require('../react-desc-prop-types.js');
|
|
17
16
|
|
|
17
|
+
/* eslint-disable max-depth */
|
|
18
|
+
|
|
18
19
|
const isRegExp = item => typeof item === 'object';
|
|
19
20
|
|
|
20
21
|
const conformValue = (rawValue, cursorPos, lastKeyCode, regExp, filledMask) => {
|
|
@@ -33,9 +34,7 @@ const conformValue = (rawValue, cursorPos, lastKeyCode, regExp, filledMask) => {
|
|
|
33
34
|
fullRegExpMatched = false;
|
|
34
35
|
|
|
35
36
|
for (let j = charsFound + offSet; j < rawValueArray.length; j += 1) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const match = (_rawValueArray$j = rawValueArray[j]) === null || _rawValueArray$j === void 0 ? void 0 : _rawValueArray$j.match(flatRegExp[i]);
|
|
37
|
+
const match = rawValueArray[j]?.match(flatRegExp[i]);
|
|
39
38
|
|
|
40
39
|
if (match) {
|
|
41
40
|
maskedValue.push(match[0]);
|
|
@@ -87,9 +86,7 @@ const useRegExpMask = props => {
|
|
|
87
86
|
if (userOnKeyDown) userOnKeyDown(e);
|
|
88
87
|
}, [userOnKeyDown]);
|
|
89
88
|
const onChange = React.useCallback(e => {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const [mask, cursorPos] = conformValue(e.target.value, (_e$target$selectionEn = e.target.selectionEnd) !== null && _e$target$selectionEn !== void 0 ? _e$target$selectionEn : 0, lastKeyCode.current, regExp, filledMask);
|
|
89
|
+
const [mask, cursorPos] = conformValue(e.target.value, e.target.selectionEnd ?? 0, lastKeyCode.current, regExp, filledMask);
|
|
93
90
|
valueSetter(prevMask => {
|
|
94
91
|
// Here we need to update the key
|
|
95
92
|
if (mask === prevMask) setKey(key => key + 1);
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
6
6
|
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
7
|
require('core-js/modules/esnext.iterator.filter.js');
|
|
8
|
-
require('core-js/modules/web.dom-collections.iterator.js');
|
|
9
8
|
var React = require('react');
|
|
10
9
|
var dsPropsHelpers = require('@elliemae/ds-props-helpers');
|
|
11
10
|
var dsUtilities = require('@elliemae/ds-utilities');
|
|
@@ -51,9 +50,7 @@ const useSSNMask = props => {
|
|
|
51
50
|
if (userOnKeyDown) userOnKeyDown(e);
|
|
52
51
|
}, [userOnKeyDown]);
|
|
53
52
|
const onChange = React.useCallback(e => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const [mask, cursorPos] = conformValue(e.target.value, (_e$target$selectionEn = e.target.selectionEnd) !== null && _e$target$selectionEn !== void 0 ? _e$target$selectionEn : 0, lastKeyCode.current);
|
|
53
|
+
const [mask, cursorPos] = conformValue(e.target.value, e.target.selectionEnd ?? 0, lastKeyCode.current);
|
|
57
54
|
valueSetter(prevMask => {
|
|
58
55
|
// Here we need to update the key
|
|
59
56
|
if (mask === prevMask) setKey(key => key + 1);
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
6
6
|
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
7
|
require('core-js/modules/esnext.iterator.filter.js');
|
|
8
|
-
require('core-js/modules/web.dom-collections.iterator.js');
|
|
9
8
|
var React = require('react');
|
|
10
9
|
var dsPropsHelpers = require('@elliemae/ds-props-helpers');
|
|
11
10
|
var dsUtilities = require('@elliemae/ds-utilities');
|
|
@@ -48,9 +47,7 @@ const useZipCodeMask = props => {
|
|
|
48
47
|
if (userOnKeyDown) userOnKeyDown(e);
|
|
49
48
|
}, [userOnKeyDown]);
|
|
50
49
|
const onChange = React.useCallback(e => {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const [mask, cursorPos] = conformValue(e.target.value, (_e$target$selectionEn = e.target.selectionEnd) !== null && _e$target$selectionEn !== void 0 ? _e$target$selectionEn : 0, lastKeyCode.current);
|
|
50
|
+
const [mask, cursorPos] = conformValue(e.target.value, e.target.selectionEnd ?? 0, lastKeyCode.current);
|
|
54
51
|
valueSetter(prevMask => {
|
|
55
52
|
// Here we need to update the key
|
|
56
53
|
if (mask === prevMask) setKey(key => key + 1);
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
6
6
|
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
7
|
require('core-js/modules/esnext.iterator.for-each.js');
|
|
8
|
-
require('core-js/modules/web.dom-collections.iterator.js');
|
|
9
8
|
|
|
10
9
|
/* eslint-disable max-params */
|
|
11
10
|
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
require('core-js/modules/esnext.async-iterator.reduce.js');
|
|
6
6
|
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
7
|
require('core-js/modules/esnext.iterator.reduce.js');
|
|
8
|
-
require('core-js/modules/web.dom-collections.iterator.js');
|
|
9
8
|
|
|
10
9
|
const flatStringArray = stringArray => stringArray.reduce((acc, curr) => {
|
|
11
10
|
if (typeof curr === 'string') {
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
require('core-js/modules/web.dom-collections.iterator.js');
|
|
6
5
|
var dsPropsHelpers = require('@elliemae/ds-props-helpers');
|
|
7
6
|
var React = require('react');
|
|
8
7
|
var reactDescPropTypes = require('../react-desc-prop-types.js');
|
|
@@ -2,20 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
|
|
6
5
|
var dsSystem = require('@elliemae/ds-system');
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
const commonBorderCss = dsSystem.css`
|
|
8
|
+
border: 1px solid ${dsSystem.th.color('neutral-400')};
|
|
9
|
+
`;
|
|
10
|
+
const readOnlyBorderCss = dsSystem.css`
|
|
11
|
+
border: 1px solid transparent;
|
|
12
|
+
border-top-color: ${dsSystem.th.color('neutral-400')};
|
|
13
|
+
`;
|
|
15
14
|
const disabledBorderCss = commonBorderCss;
|
|
16
|
-
const hasErrorBorderCss = dsSystem.css
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
const hasErrorBorderCss = dsSystem.css`
|
|
16
|
+
border: 1px solid ${dsSystem.th.color('danger-900')};
|
|
17
|
+
`;
|
|
18
|
+
const hoverBorderCss = dsSystem.css`
|
|
19
|
+
border: 1px solid ${dsSystem.th.color('brand-700')};
|
|
20
|
+
`;
|
|
21
|
+
const focusBorderCss = dsSystem.css`
|
|
22
|
+
border: 1px solid transparent;
|
|
23
|
+
outline: 2px solid ${dsSystem.th.color('brand-700')};
|
|
24
|
+
outline-offset: -2px;
|
|
25
|
+
`;
|
|
19
26
|
const getBorderCss = props => {
|
|
20
27
|
if (props.isDisabled) return disabledBorderCss;
|
|
21
28
|
if (props.hasFocus) return focusBorderCss;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
|
|
6
5
|
var DSButton = require('@elliemae/ds-button');
|
|
7
6
|
var dsGrid = require('@elliemae/ds-grid');
|
|
8
7
|
var dsSystem = require('@elliemae/ds-system');
|
|
@@ -10,28 +9,68 @@ var styledComponents = require('@xstyled/styled-components');
|
|
|
10
9
|
var theming = require('../exported-related/theming.js');
|
|
11
10
|
var borders = require('./borders.js');
|
|
12
11
|
|
|
13
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
|
-
|
|
15
|
-
var _taggedTemplateLiteral__default = /*#__PURE__*/_interopDefaultLegacy(_taggedTemplateLiteral);
|
|
16
|
-
|
|
17
|
-
var _templateObject, _templateObject2, _templateObject3;
|
|
18
12
|
const StyledInputWrapper = dsSystem.styled(dsGrid.Grid, {
|
|
19
13
|
name: theming.DSInputTextName,
|
|
20
14
|
slot: theming.DSInputTextSlots.INPUT_WRAPPER
|
|
21
|
-
})
|
|
15
|
+
})`
|
|
16
|
+
height: ${_ref => {
|
|
22
17
|
let {
|
|
23
18
|
inputSize
|
|
24
19
|
} = _ref;
|
|
25
20
|
return inputSize === 'm' ? '28px' : '24px';
|
|
26
|
-
}
|
|
21
|
+
}};
|
|
22
|
+
|
|
23
|
+
${borders.getBorderCss}
|
|
24
|
+
border-radius: 2px;
|
|
25
|
+
|
|
26
|
+
:hover {
|
|
27
|
+
${borders.getHoverBorderCss}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
${styledComponents.layout}
|
|
31
|
+
${styledComponents.space}
|
|
32
|
+
${styledComponents.sizing}
|
|
33
|
+
`;
|
|
27
34
|
const StyledInput = dsSystem.styled('input', {
|
|
28
35
|
name: theming.DSInputTextName,
|
|
29
36
|
slot: theming.DSInputTextSlots.INPUT
|
|
30
|
-
})
|
|
37
|
+
})`
|
|
38
|
+
padding: 0 ${dsSystem.th.space('xxs')};
|
|
39
|
+
border: none;
|
|
40
|
+
outline: none;
|
|
41
|
+
border-radius: 2px;
|
|
42
|
+
|
|
43
|
+
width: 100%;
|
|
44
|
+
height: 100%;
|
|
45
|
+
font-size: 13px;
|
|
46
|
+
|
|
47
|
+
::placeholder {
|
|
48
|
+
font-weight: ${dsSystem.th.fontWeight('regular')};
|
|
49
|
+
font-style: italic;
|
|
50
|
+
color: ${dsSystem.th.color('neutral-500')};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:disabled {
|
|
54
|
+
background-color: ${dsSystem.th.color('neutral-080')};
|
|
55
|
+
color: #616b7f;
|
|
56
|
+
cursor: not-allowed;
|
|
57
|
+
}
|
|
58
|
+
`;
|
|
31
59
|
const StyledClearButton = dsSystem.styled(DSButton.DSButtonV2, {
|
|
32
60
|
name: theming.DSInputTextName,
|
|
33
61
|
slot: theming.DSInputTextSlots.CLEAR_BUTTON
|
|
34
|
-
})
|
|
62
|
+
})`
|
|
63
|
+
height: 100%;
|
|
64
|
+
min-width: 20px;
|
|
65
|
+
width: 20px;
|
|
66
|
+
&:after {
|
|
67
|
+
border-top-left-radius: 0px !important;
|
|
68
|
+
border-bottom-left-radius: 0px !important;
|
|
69
|
+
}
|
|
70
|
+
:focus {
|
|
71
|
+
border-width: 0px;
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
35
74
|
|
|
36
75
|
exports.StyledClearButton = StyledClearButton;
|
|
37
76
|
exports.StyledInput = StyledInput;
|
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
-
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
7
|
-
require('core-js/modules/web.dom-collections.iterator.js');
|
|
8
5
|
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
9
6
|
require('core-js/modules/esnext.iterator.constructor.js');
|
|
10
7
|
require('core-js/modules/esnext.iterator.filter.js');
|
|
11
8
|
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
12
9
|
require('core-js/modules/esnext.iterator.for-each.js');
|
|
10
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
11
|
+
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
13
12
|
var React = require('react');
|
|
14
13
|
var uid = require('uid');
|
|
15
14
|
var reactDesc = require('react-desc');
|
package/cjs/toggle/styles.js
CHANGED
|
@@ -39,7 +39,7 @@ const StyledLabel = /*#__PURE__*/styled__default["default"].div.withConfig({
|
|
|
39
39
|
width,
|
|
40
40
|
size
|
|
41
41
|
} = _ref5;
|
|
42
|
-
return
|
|
42
|
+
return `calc(${width}px + ${styleHelpers.margin[size]})`;
|
|
43
43
|
}, _ref6 => {
|
|
44
44
|
let {
|
|
45
45
|
size
|
|
@@ -62,7 +62,7 @@ const StyledVisibleContent = /*#__PURE__*/styled__default["default"].label.withC
|
|
|
62
62
|
let {
|
|
63
63
|
size
|
|
64
64
|
} = _ref9;
|
|
65
|
-
return
|
|
65
|
+
return `calc(${styleHelpers.labelHeight[size]} - 4px)`;
|
|
66
66
|
}, _ref10 => {
|
|
67
67
|
let {
|
|
68
68
|
theme,
|
|
@@ -72,7 +72,9 @@ const StyledVisibleContent = /*#__PURE__*/styled__default["default"].label.withC
|
|
|
72
72
|
readOnly,
|
|
73
73
|
active
|
|
74
74
|
} = _ref10;
|
|
75
|
-
return size === 's' ?
|
|
75
|
+
return size === 's' ? `1px solid ${styleHelpers.handleBorderColor(checked, disabled, readOnly, active, theme)}` : `
|
|
76
|
+
2px solid ${styleHelpers.handleBorderColor(checked, disabled, readOnly, active, theme)}
|
|
77
|
+
`;
|
|
76
78
|
}, _ref11 => {
|
|
77
79
|
let {
|
|
78
80
|
theme,
|
|
@@ -137,13 +139,13 @@ const StyledText = /*#__PURE__*/styled__default["default"].div.withConfig({
|
|
|
137
139
|
isLongerTextRendering,
|
|
138
140
|
checked
|
|
139
141
|
} = _ref20;
|
|
140
|
-
return isLongerTextRendering && checked ?
|
|
142
|
+
return isLongerTextRendering && checked ? `margin-left: 6px;` : undefined;
|
|
141
143
|
}, _ref21 => {
|
|
142
144
|
let {
|
|
143
145
|
isLongerTextRendering,
|
|
144
146
|
checked
|
|
145
147
|
} = _ref21;
|
|
146
|
-
return isLongerTextRendering && !checked ?
|
|
148
|
+
return isLongerTextRendering && !checked ? `margin-left: 4px;` : undefined;
|
|
147
149
|
});
|
|
148
150
|
const StyledInput = /*#__PURE__*/styled__default["default"].input.withConfig({
|
|
149
151
|
componentId: "sc-yhh3ee-5"
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
2
2
|
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
3
3
|
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
4
|
-
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
5
4
|
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
6
5
|
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
7
6
|
import 'core-js/modules/esnext.iterator.filter.js';
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
|
-
import _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';
|
|
3
2
|
import 'core-js/modules/esnext.async-iterator.find.js';
|
|
4
3
|
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
5
4
|
import 'core-js/modules/esnext.iterator.find.js';
|
|
@@ -8,9 +7,13 @@ import { styled } from '@elliemae/ds-system';
|
|
|
8
7
|
import { AutocompleteContext } from '../AutocompleteCTX.js';
|
|
9
8
|
import { getSelectableOptions } from '../utils/listHelper.js';
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
|
|
10
|
+
const isSeparator = el => el?.type === 'separator';
|
|
11
|
+
const StyledA11ySelectedValues = styled.span`
|
|
12
|
+
width: 1px;
|
|
13
|
+
height: 1px;
|
|
14
|
+
position: absolute;
|
|
15
|
+
clip: rect(1px, 1px, 1px, 1px);
|
|
16
|
+
`;
|
|
14
17
|
const A11yFocusedOption = () => {
|
|
15
18
|
const {
|
|
16
19
|
props: {
|
|
@@ -25,7 +28,8 @@ const A11yFocusedOption = () => {
|
|
|
25
28
|
const focusSelectableOptionIdx = selectabledOptions.findIndex(option => option.dsId === focusOptionIdx);
|
|
26
29
|
return /*#__PURE__*/_jsx(StyledA11ySelectedValues, {
|
|
27
30
|
"aria-live": "polite"
|
|
28
|
-
}, void 0, !isSeparator(focusOption) && showPopover && focusOption &&
|
|
31
|
+
}, void 0, !isSeparator(focusOption) && showPopover && focusOption && `option ${focusOption.label} focused.${focusSelectableOptionIdx + 1} of ${selectabledOptions.length}
|
|
32
|
+
`);
|
|
29
33
|
}, [options, showPopover, focusOptionIdx]);
|
|
30
34
|
};
|
|
31
35
|
|
|
@@ -48,7 +48,7 @@ const Container = () => {
|
|
|
48
48
|
const childrenWithProps = /*#__PURE__*/React.isValidElement(input) ? /*#__PURE__*/React.cloneElement(input, {
|
|
49
49
|
'aria-activedescendant': focusOptionIdx
|
|
50
50
|
}) : input;
|
|
51
|
-
const idList = useMemo(() =>
|
|
51
|
+
const idList = useMemo(() => `${id ? `${id}-` : ''}listbox`, [id]);
|
|
52
52
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
53
53
|
children: [_A11yFocusedOption || (_A11yFocusedOption = /*#__PURE__*/_jsx(A11yFocusedOption, {})), /*#__PURE__*/jsxs(StyledContainer, {
|
|
54
54
|
id: id,
|
|
@@ -31,7 +31,7 @@ const useKeyboardNavigation = () => {
|
|
|
31
31
|
|
|
32
32
|
if (e.key === 'Enter' && showPopover) {
|
|
33
33
|
e.preventDefault();
|
|
34
|
-
onSelect(currentItem
|
|
34
|
+
onSelect(currentItem?.label, e);
|
|
35
35
|
setShowPopover(false);
|
|
36
36
|
} // =============================================================================
|
|
37
37
|
// ARROWS UP AND DOWN
|
|
@@ -64,7 +64,7 @@ const useKeyboardNavigation = () => {
|
|
|
64
64
|
if (e.key === 'Escape') {
|
|
65
65
|
setShowPopover(false);
|
|
66
66
|
}
|
|
67
|
-
}, [currentItem
|
|
67
|
+
}, [currentItem?.label, currentItemIndex, onSelect, options, scrollOptionIntoView, setCurrentOption, setShowPopover, showPopover]);
|
|
68
68
|
return {
|
|
69
69
|
onInputKeyDown
|
|
70
70
|
};
|
|
@@ -22,15 +22,13 @@ const MenuList = () => {
|
|
|
22
22
|
} = useContext(AutocompleteContext);
|
|
23
23
|
const ItemRenderer = useItemRenderer();
|
|
24
24
|
const handleOnFocus = useCallback(() => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
|
|
25
|
+
inputRef.current?.focus();
|
|
28
26
|
}, [inputRef]);
|
|
29
|
-
const idList = useMemo(() =>
|
|
27
|
+
const idList = useMemo(() => `${id ? `${id}-` : ''}listbox`, [id]);
|
|
30
28
|
return /*#__PURE__*/_jsx(StyledListWrapper, {
|
|
31
29
|
tabIndex: -1,
|
|
32
30
|
onMouseDown: e => e.preventDefault(),
|
|
33
|
-
minWidth: referenceElement
|
|
31
|
+
minWidth: referenceElement?.offsetWidth,
|
|
34
32
|
id: idList,
|
|
35
33
|
role: "listbox"
|
|
36
34
|
}, void 0, options.length > 0 && /*#__PURE__*/jsx(StyledVirtualListWrapper, {
|
|
@@ -6,7 +6,7 @@ const StyledListWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
|
6
6
|
let {
|
|
7
7
|
minWidth
|
|
8
8
|
} = _ref;
|
|
9
|
-
return minWidth ?
|
|
9
|
+
return minWidth ? `${minWidth}px` : '100%';
|
|
10
10
|
});
|
|
11
11
|
const StyledList = /*#__PURE__*/styled.ul.withConfig({
|
|
12
12
|
componentId: "sc-qt1kwv-1"
|
|
@@ -17,7 +17,7 @@ const StyledVirtualListWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
|
17
17
|
let {
|
|
18
18
|
maxHeight
|
|
19
19
|
} = _ref2;
|
|
20
|
-
return
|
|
20
|
+
return `${!maxHeight ? '400' : maxHeight}px`;
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
export { StyledList, StyledListWrapper, StyledVirtualListWrapper };
|
|
@@ -1,18 +1,21 @@
|
|
|
1
|
+
import 'core-js/modules/es.error.cause.js';
|
|
1
2
|
import { useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';
|
|
2
3
|
|
|
3
4
|
const throwError = message => {
|
|
4
|
-
throw new Error(
|
|
5
|
+
throw new Error(`DSControlledCheckbox:: ${message}
|
|
6
|
+
`);
|
|
5
7
|
};
|
|
6
8
|
|
|
7
9
|
const useValidateProps = (props, propTypes) => {
|
|
8
10
|
useValidateTypescriptPropTypes(props, propTypes);
|
|
9
11
|
|
|
10
12
|
if (typeof props.label === 'undefined' && typeof props['aria-label'] === 'undefined') {
|
|
11
|
-
throwError(
|
|
13
|
+
throwError(`Please provide a label or ariaLabel property to use this component.`);
|
|
12
14
|
}
|
|
13
15
|
|
|
14
16
|
if (props.checked === 'mixed' && typeof props['aria-controls'] === 'undefined') {
|
|
15
|
-
throwError(
|
|
17
|
+
throwError(`Please provide an ariaControls property to use a checkbox mixed state.
|
|
18
|
+
This property must be a string containing all the ids that this mixed checkbox is controlling.`);
|
|
16
19
|
}
|
|
17
20
|
};
|
|
18
21
|
|