@elliemae/ds-controlled-form 2.4.1-rc.1 → 2.4.1-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/cjs/autocomplete/Autocomplete.js +4 -5
  2. package/cjs/autocomplete/AutocompleteCTX.js +3 -14
  3. package/cjs/autocomplete/AutocompleteDataTestids.js +1 -7
  4. package/cjs/autocomplete/config/useAutocomplete.js +23 -10
  5. package/cjs/autocomplete/parts/container/Container.js +36 -20
  6. package/cjs/autocomplete/parts/container/styled.js +1 -5
  7. package/cjs/autocomplete/parts/{controls → container}/useKeyboardNavigation.js +8 -24
  8. package/cjs/autocomplete/parts/menu-list/MenuList.js +17 -50
  9. package/cjs/autocomplete/parts/menu-list/styled.js +9 -10
  10. package/cjs/autocomplete/parts/menu-list/useItemRenderer.js +38 -44
  11. package/cjs/autocomplete/react-desc-prop-types.js +4 -8
  12. package/cjs/autocomplete/utils/listHelper.js +8 -16
  13. package/cjs/checkbox/ControlledCheckbox.js +2 -1
  14. package/cjs/checkbox/react-desc-prop-types.js +2 -0
  15. package/cjs/combobox/ComboBox.js +1 -0
  16. package/cjs/combobox/config/useComboBox.js +8 -2
  17. package/cjs/combobox/config/useCorrectOptions.js +14 -42
  18. package/cjs/combobox/index.js +1 -0
  19. package/cjs/combobox/parts/A11yFocusedOption.js +3 -3
  20. package/cjs/combobox/parts/controls/Controls.js +4 -2
  21. package/cjs/combobox/parts/controls-input/ControlsInput.js +2 -0
  22. package/cjs/combobox/parts/controls-input/styled.js +1 -1
  23. package/cjs/combobox/parts/controls-input/useControlsInput.js +6 -6
  24. package/cjs/combobox/parts/controls-input/useKeyboardNavigation.js +30 -26
  25. package/cjs/combobox/parts/controls-input/useMaskedOnChange.js +7 -5
  26. package/cjs/combobox/parts/dropdown-indicator/DropdownIndicator.js +6 -4
  27. package/cjs/combobox/parts/header-list/useHeaderListHandlers.js +4 -4
  28. package/cjs/combobox/parts/menu-list/MenuList.js +13 -7
  29. package/cjs/combobox/parts/menu-list/styled.js +16 -5
  30. package/cjs/combobox/parts/menu-list/useItemRenderer.js +8 -8
  31. package/cjs/combobox/parts/menu-list/useMenuListSetFocusOption.js +6 -6
  32. package/cjs/combobox/react-desc-prop-types.js +2 -1
  33. package/cjs/combobox/utils/listHelper.js +40 -11
  34. package/cjs/index.js +16 -3
  35. package/cjs/large-text-input/DSControlledLargeTextInput.js +83 -0
  36. package/cjs/large-text-input/exported-related/data-test-ids.js +11 -0
  37. package/cjs/large-text-input/exported-related/index.js +12 -0
  38. package/cjs/large-text-input/exported-related/theming.js +13 -0
  39. package/cjs/large-text-input/index.js +15 -0
  40. package/cjs/large-text-input/react-desc-prop-types.js +45 -0
  41. package/cjs/large-text-input/styles.js +40 -0
  42. package/cjs/mask-hook/hooks/index.js +7 -3
  43. package/cjs/mask-hook/hooks/useNumberMask.js +5 -0
  44. package/cjs/mask-hook/hooks/usePhoneMask.js +5 -0
  45. package/cjs/mask-hook/hooks/useSSNMask.js +5 -0
  46. package/cjs/mask-hook/hooks/{useZipCode.js → useZipCodeMask.js} +10 -5
  47. package/cjs/mask-hook/index.js +7 -3
  48. package/esm/autocomplete/Autocomplete.js +2 -3
  49. package/esm/autocomplete/AutocompleteCTX.js +3 -14
  50. package/esm/autocomplete/AutocompleteDataTestids.js +1 -7
  51. package/esm/autocomplete/config/useAutocomplete.js +27 -14
  52. package/esm/autocomplete/parts/container/Container.js +38 -23
  53. package/esm/autocomplete/parts/container/styled.js +2 -5
  54. package/esm/autocomplete/parts/{controls → container}/useKeyboardNavigation.js +8 -24
  55. package/esm/autocomplete/parts/menu-list/MenuList.js +19 -52
  56. package/esm/autocomplete/parts/menu-list/styled.js +9 -10
  57. package/esm/autocomplete/parts/menu-list/useItemRenderer.js +39 -45
  58. package/esm/autocomplete/react-desc-prop-types.js +5 -8
  59. package/esm/autocomplete/utils/listHelper.js +8 -16
  60. package/esm/checkbox/ControlledCheckbox.js +2 -1
  61. package/esm/checkbox/react-desc-prop-types.js +2 -0
  62. package/esm/combobox/ComboBox.js +1 -1
  63. package/esm/combobox/config/useComboBox.js +8 -2
  64. package/esm/combobox/config/useCorrectOptions.js +15 -43
  65. package/esm/combobox/index.js +1 -1
  66. package/esm/combobox/parts/A11yFocusedOption.js +3 -3
  67. package/esm/combobox/parts/controls/Controls.js +4 -2
  68. package/esm/combobox/parts/controls-input/ControlsInput.js +2 -0
  69. package/esm/combobox/parts/controls-input/styled.js +1 -1
  70. package/esm/combobox/parts/controls-input/useControlsInput.js +6 -6
  71. package/esm/combobox/parts/controls-input/useKeyboardNavigation.js +30 -26
  72. package/esm/combobox/parts/controls-input/useMaskedOnChange.js +7 -5
  73. package/esm/combobox/parts/dropdown-indicator/DropdownIndicator.js +2 -2
  74. package/esm/combobox/parts/header-list/useHeaderListHandlers.js +4 -4
  75. package/esm/combobox/parts/menu-list/MenuList.js +13 -7
  76. package/esm/combobox/parts/menu-list/styled.js +16 -5
  77. package/esm/combobox/parts/menu-list/useItemRenderer.js +8 -8
  78. package/esm/combobox/parts/menu-list/useMenuListSetFocusOption.js +6 -6
  79. package/esm/combobox/react-desc-prop-types.js +2 -1
  80. package/esm/combobox/utils/listHelper.js +38 -12
  81. package/esm/index.js +8 -5
  82. package/esm/large-text-input/DSControlledLargeTextInput.js +72 -0
  83. package/esm/large-text-input/exported-related/data-test-ids.js +7 -0
  84. package/esm/large-text-input/exported-related/index.js +2 -0
  85. package/esm/large-text-input/exported-related/theming.js +8 -0
  86. package/esm/large-text-input/index.js +3 -0
  87. package/esm/large-text-input/react-desc-prop-types.js +36 -0
  88. package/esm/large-text-input/styles.js +30 -0
  89. package/esm/mask-hook/hooks/index.js +4 -4
  90. package/esm/mask-hook/hooks/useNumberMask.js +5 -1
  91. package/esm/mask-hook/hooks/usePhoneMask.js +5 -1
  92. package/esm/mask-hook/hooks/useSSNMask.js +5 -1
  93. package/esm/mask-hook/hooks/{useZipCode.js → useZipCodeMask.js} +9 -5
  94. package/esm/mask-hook/index.js +4 -4
  95. package/package.json +52 -88
  96. package/types/autocomplete/Autocomplete.d.ts +4 -61
  97. package/types/autocomplete/AutocompleteCTX.d.ts +4 -3
  98. package/types/autocomplete/AutocompleteDataTestids.d.ts +1 -7
  99. package/types/autocomplete/config/useAutocomplete.d.ts +3 -2
  100. package/types/autocomplete/parts/container/Container.d.ts +1 -2
  101. package/types/autocomplete/parts/container/styled.d.ts +0 -1
  102. package/types/autocomplete/parts/{controls → container}/useKeyboardNavigation.d.ts +0 -0
  103. package/types/autocomplete/parts/menu-list/MenuList.d.ts +1 -2
  104. package/types/autocomplete/parts/menu-list/styled.d.ts +1 -4
  105. package/types/autocomplete/parts/menu-list/useItemRenderer.d.ts +2 -3
  106. package/types/autocomplete/react-desc-prop-types.d.ts +8 -18
  107. package/types/autocomplete/sharedTypes.d.ts +1 -3
  108. package/types/autocomplete/tests/general.test.d.ts +1 -0
  109. package/types/autocomplete/tests/utils.d.ts +5 -0
  110. package/types/autocomplete/utils/listHelper.d.ts +2 -2
  111. package/types/checkbox/ControlledCheckbox.d.ts +1 -1
  112. package/types/checkbox/react-desc-prop-types.d.ts +367 -1
  113. package/types/combobox/ComboBox.d.ts +2 -2
  114. package/types/combobox/parts/dropdown-indicator/DropdownIndicator.d.ts +1 -0
  115. package/types/combobox/react-desc-prop-types.d.ts +381 -3
  116. package/types/combobox/utils/listHelper.d.ts +4 -1
  117. package/types/index.d.ts +1 -0
  118. package/types/large-text-input/DSControlledLargeTextInput.d.ts +5 -0
  119. package/types/large-text-input/exported-related/data-test-ids.d.ts +5 -0
  120. package/types/large-text-input/exported-related/index.d.ts +2 -0
  121. package/types/large-text-input/exported-related/theming.d.ts +6 -0
  122. package/types/large-text-input/index.d.ts +2 -0
  123. package/types/large-text-input/react-desc-prop-types.d.ts +447 -0
  124. package/types/large-text-input/styles.d.ts +3 -0
  125. package/types/large-text-input/tests/DSControlledLargeTextInput.test.d.ts +1 -0
  126. package/types/mask-hook/hooks/index.d.ts +1 -1
  127. package/types/mask-hook/hooks/useNumberMask.d.ts +2 -1
  128. package/types/mask-hook/hooks/usePhoneMask.d.ts +2 -1
  129. package/types/mask-hook/hooks/useSSNMask.d.ts +2 -1
  130. package/types/mask-hook/hooks/useZipCodeMask.d.ts +4 -0
  131. package/types/text-input/DSInputText.d.ts +1 -1
  132. package/types/text-input/config/useInputText.d.ts +110 -110
  133. package/cjs/autocomplete/config/constants.js +0 -14
  134. package/cjs/autocomplete/config/useGetPropsWithDefault.js +0 -11
  135. package/cjs/autocomplete/index.d.js +0 -2
  136. package/cjs/autocomplete/parts/a11y-messages/MultiAllyMessages.js +0 -33
  137. package/cjs/autocomplete/parts/a11y-messages/SingleAllyMessages.js +0 -28
  138. package/cjs/autocomplete/parts/a11y-messages/index.js +0 -11
  139. package/cjs/autocomplete/parts/a11y-messages/styled.js +0 -15
  140. package/cjs/autocomplete/parts/controls/Controls.js +0 -63
  141. package/cjs/autocomplete/parts/controls/index.js +0 -9
  142. package/cjs/autocomplete/parts/controls/styled.js +0 -44
  143. package/cjs/autocomplete/parts/controls/useControlsInput.js +0 -44
  144. package/cjs/autocomplete/parts/controls/useMaskedOnChange.js +0 -28
  145. package/cjs/autocomplete/parts/menu-list/useMenuList.js +0 -69
  146. package/cjs/autocomplete/propTypes.js +0 -25
  147. package/cjs/autocomplete/utils/hooks/useKeyboardNavigation.js +0 -97
  148. package/cjs/autocomplete/utils/hooks/useOnElementResize.js +0 -37
  149. package/cjs/text-input/exported-related/name.js +0 -7
  150. package/cjs/text-input/exported-related/slots.js +0 -11
  151. package/esm/autocomplete/config/constants.js +0 -10
  152. package/esm/autocomplete/config/useGetPropsWithDefault.js +0 -7
  153. package/esm/autocomplete/index.d.js +0 -1
  154. package/esm/autocomplete/parts/a11y-messages/MultiAllyMessages.js +0 -25
  155. package/esm/autocomplete/parts/a11y-messages/SingleAllyMessages.js +0 -20
  156. package/esm/autocomplete/parts/a11y-messages/index.js +0 -2
  157. package/esm/autocomplete/parts/a11y-messages/styled.js +0 -7
  158. package/esm/autocomplete/parts/controls/Controls.js +0 -55
  159. package/esm/autocomplete/parts/controls/index.js +0 -1
  160. package/esm/autocomplete/parts/controls/styled.js +0 -32
  161. package/esm/autocomplete/parts/controls/useControlsInput.js +0 -40
  162. package/esm/autocomplete/parts/controls/useMaskedOnChange.js +0 -24
  163. package/esm/autocomplete/parts/menu-list/useMenuList.js +0 -65
  164. package/esm/autocomplete/propTypes.js +0 -21
  165. package/esm/autocomplete/utils/hooks/useKeyboardNavigation.js +0 -93
  166. package/esm/autocomplete/utils/hooks/useOnElementResize.js +0 -33
  167. package/esm/text-input/exported-related/name.js +0 -3
  168. package/esm/text-input/exported-related/slots.js +0 -7
  169. package/types/autocomplete/config/constants.d.ts +0 -8
  170. package/types/autocomplete/config/useGetPropsWithDefault.d.ts +0 -2
  171. package/types/autocomplete/parts/a11y-messages/MultiAllyMessages.d.ts +0 -3
  172. package/types/autocomplete/parts/a11y-messages/SingleAllyMessages.d.ts +0 -3
  173. package/types/autocomplete/parts/a11y-messages/index.d.ts +0 -2
  174. package/types/autocomplete/parts/a11y-messages/styled.d.ts +0 -1
  175. package/types/autocomplete/parts/controls/Controls.d.ts +0 -3
  176. package/types/autocomplete/parts/controls/index.d.ts +0 -1
  177. package/types/autocomplete/parts/controls/styled.d.ts +0 -8
  178. package/types/autocomplete/parts/controls/useControlsInput.d.ts +0 -9
  179. package/types/autocomplete/parts/controls/useMaskedOnChange.d.ts +0 -2
  180. package/types/autocomplete/parts/menu-list/useMenuList.d.ts +0 -2
  181. package/types/autocomplete/propTypes.d.ts +0 -51
  182. package/types/autocomplete/utils/hooks/useKeyboardNavigation.d.ts +0 -4
  183. package/types/autocomplete/utils/hooks/useOnElementResize.d.ts +0 -3
  184. package/types/mask-hook/hooks/useZipCode.d.ts +0 -3
  185. package/types/text-input/exported-related/name.d.ts +0 -1
  186. package/types/text-input/exported-related/slots.d.ts +0 -5
@@ -34,12 +34,12 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
34
34
  const useItemRenderer = () => {
35
35
  const {
36
36
  props: {
37
- options,
37
+ filteredOptions,
38
38
  onCreate,
39
39
  onChange,
40
40
  selectedValues,
41
41
  onFilter,
42
- innerRef
42
+ allOptions
43
43
  },
44
44
  setShowPopover,
45
45
  inputValue,
@@ -54,11 +54,11 @@ const useItemRenderer = () => {
54
54
  if (inputValue) {
55
55
  onCreate(inputValue);
56
56
  setInputValue('');
57
- onFilter('');
57
+ onFilter(allOptions, inputValue);
58
58
  }
59
59
  } else if (option.type === constants.MENU_OPTION_TYPES.OPTION) {
60
60
  if (!option.disabled) {
61
- if (onFilter) onFilter('');
61
+ if (onFilter) onFilter(allOptions, inputValue);
62
62
  setInputValue('');
63
63
 
64
64
  if (!multiple) {
@@ -72,7 +72,7 @@ const useItemRenderer = () => {
72
72
 
73
73
  e.stopPropagation();
74
74
  e.preventDefault();
75
- }, [onFilter, selectedValues, onChange, setShowPopover, multiple, innerRef]); // prevent blur from controls input
75
+ }, [onFilter, selectedValues, onChange, setShowPopover, multiple]); // prevent blur from controls input
76
76
 
77
77
  const handleOnMouseDown = React.useCallback(e => {
78
78
  e.preventDefault();
@@ -83,7 +83,7 @@ const useItemRenderer = () => {
83
83
  }
84
84
 
85
85
  return virtualListHelpers.virtualItems.map(vItem => {
86
- const option = options[vItem.index];
86
+ const option = filteredOptions[vItem.index];
87
87
  const generalProps = {
88
88
  wrapperStyles: {
89
89
  position: 'absolute',
@@ -133,7 +133,7 @@ const useItemRenderer = () => {
133
133
  height: "16px",
134
134
  gutter: "xxs",
135
135
  alignItems: "center"
136
- }, void 0, _StyledCreatableLabel || (_StyledCreatableLabel = /*#__PURE__*/_jsx__default["default"](styled.StyledCreatableLabel, {}, void 0, "Add:")), /*#__PURE__*/_jsx__default["default"]("span", {}, void 0, label));
136
+ }, void 0, _StyledCreatableLabel || (_StyledCreatableLabel = /*#__PURE__*/_jsx__default["default"](styled.StyledCreatableLabel, {}, void 0, "Add:")), /*#__PURE__*/_jsx__default["default"]("span", {}, void 0, "\"".concat(label, "\"")));
137
137
  },
138
138
  label: option.label,
139
139
  onClick: e => handleClick(option, e)
@@ -142,7 +142,7 @@ const useItemRenderer = () => {
142
142
 
143
143
  return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {});
144
144
  });
145
- }, [options, focusOptionIdx, selectedValues, innerRef, virtualListHelpers === null || virtualListHelpers === void 0 ? void 0 : virtualListHelpers.virtualItems]);
145
+ }, [filteredOptions, focusOptionIdx, selectedValues, virtualListHelpers]);
146
146
  };
147
147
 
148
148
  exports.useItemRenderer = useItemRenderer;
@@ -10,7 +10,7 @@ const useMenuListSetFocusOption = () => {
10
10
  const {
11
11
  props: {
12
12
  selectedValues,
13
- options
13
+ filteredOptions
14
14
  },
15
15
  setFocusOptionIdx,
16
16
  hasFocus,
@@ -19,16 +19,16 @@ const useMenuListSetFocusOption = () => {
19
19
  scrollOptionIntoView
20
20
  } = React.useContext(ComboBoxCTX.ComboBoxContext);
21
21
  const getFirstOption = React.useCallback(() => {
22
- for (let i = 0; i < options.length; i += 1) if (!['section', 'separator'].includes(options[i].type) && !options[i].disabled) {
23
- setFocusOptionIdx(options[i].dsId);
22
+ for (let i = 0; i < filteredOptions.length; i += 1) if (!['section', 'separator'].includes(filteredOptions[i].type) && !filteredOptions[i].disabled) {
23
+ setFocusOptionIdx(filteredOptions[i].dsId);
24
24
  break;
25
25
  }
26
- }, [options, setFocusOptionIdx]);
26
+ }, [filteredOptions, setFocusOptionIdx]);
27
27
  React.useEffect(() => {
28
28
  scrollOptionIntoView(focusOptionIdx); // eslint-disable-next-line react-hooks/exhaustive-deps
29
29
  }, [focusOptionIdx]);
30
30
  React.useEffect(() => {
31
- if (options.length === 0) {
31
+ if (filteredOptions.length === 0) {
32
32
  setFocusOptionIdx('');
33
33
  }
34
34
 
@@ -45,7 +45,7 @@ const useMenuListSetFocusOption = () => {
45
45
  }
46
46
 
47
47
  if (hasFocus) getFirstOption();
48
- }, [getFirstOption, inputValue, selectedValues, hasFocus, setFocusOptionIdx, options.length]);
48
+ }, [getFirstOption, inputValue, selectedValues, hasFocus, setFocusOptionIdx, filteredOptions.length]);
49
49
  };
50
50
 
51
51
  exports.useMenuListSetFocusOption = useMenuListSetFocusOption;
@@ -20,7 +20,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
20
20
  function noop() {}
21
21
  const ComboboxPropTypes = _objectSpread(_objectSpread({}, dsPropsHelpers.globalAttributesPropTypes), {}, {
22
22
  placeholder: dsPropsHelpers.PropTypes.string.description("input's placeholder value").defaultValue(''),
23
- options: dsPropsHelpers.PropTypes.oneOfType([dsPropsHelpers.PropTypes.array, dsPropsHelpers.PropTypes.object]).isRequired.description('List of options').defaultValue([]),
23
+ allOptions: dsPropsHelpers.PropTypes.oneOfType([dsPropsHelpers.PropTypes.array, dsPropsHelpers.PropTypes.object]).isRequired.description('List of original options').defaultValue([]),
24
+ filteredOptions: dsPropsHelpers.PropTypes.oneOfType([dsPropsHelpers.PropTypes.array, dsPropsHelpers.PropTypes.object]).description('List of filtered options to show in the menu based on the current internal input filter value').defaultValue([]),
24
25
  selectedValues: dsPropsHelpers.PropTypes.oneOfType([dsPropsHelpers.PropTypes.arrayOf(dsPropsHelpers.PropTypes.object), dsPropsHelpers.PropTypes.object]).isRequired.description('Array of option or single option selected'),
25
26
  disabled: dsPropsHelpers.PropTypes.bool.description('wheter or not the input is disabled').defaultValue('false'),
26
27
  autoFocus: dsPropsHelpers.PropTypes.bool.description('Whether the combo box uses auto focus or not').defaultValue('false'),
@@ -10,6 +10,8 @@ require('core-js/modules/esnext.iterator.some.js');
10
10
  require('core-js/modules/esnext.async-iterator.find.js');
11
11
  require('core-js/modules/esnext.iterator.find.js');
12
12
  require('core-js/modules/web.dom-collections.iterator.js');
13
+ require('core-js/modules/esnext.async-iterator.for-each.js');
14
+ require('core-js/modules/esnext.iterator.for-each.js');
13
15
  var constants = require('../constants.js');
14
16
 
15
17
  const getSelectableOptions = options => options.filter(option => option.type === constants.MENU_OPTION_TYPES.OPTION && !option.disabled);
@@ -34,15 +36,17 @@ const findInCircularList = function (list, from, criteria) {
34
36
 
35
37
  return from; // return same item
36
38
  };
39
+ const getLastValueSelected = selectedValues => {
40
+ if (Array.isArray(selectedValues)) {
41
+ return selectedValues[selectedValues.length - 1];
42
+ }
43
+
44
+ return selectedValues;
45
+ };
37
46
  const getFirstOption = (options, selectedValues, inputValue) => {
38
47
  if (!inputValue) {
39
- if (Array.isArray(selectedValues) && selectedValues.length > 0) {
40
- return selectedValues[selectedValues.length - 1].dsId;
41
- }
42
-
43
- if (selectedValues !== null && selectedValues !== void 0 && selectedValues.dsId) {
44
- return selectedValues.dsId;
45
- }
48
+ const lastValue = getLastValueSelected(selectedValues);
49
+ if (lastValue) return lastValue.dsId;
46
50
  }
47
51
 
48
52
  for (let i = 0; i < options.length; i += 1) if (!['section', 'separator'].includes(options[i].type) && !options[i].disabled) {
@@ -68,15 +72,39 @@ const getSuggestedValueOnChange = (selectedOption, selectedValues) => {
68
72
 
69
73
  return selectedOption;
70
74
  };
71
- const getLastValueSelected = selectedValues => {
72
- if (Array.isArray(selectedValues)) {
73
- return selectedValues[selectedValues.length - 1];
75
+ const filterOptions = (inputValue, options) => options.filter(option => option.type === constants.MENU_OPTION_TYPES.OPTION && option.label.toLowerCase().includes(inputValue.toLowerCase()));
76
+ const selectedValuesWithSections = (optionsToParse, multiSelectedValue) => {
77
+ var _items2;
78
+
79
+ const items = [];
80
+ if (optionsToParse) optionsToParse.forEach(option => {
81
+ // const isSelectedValue = multiSelectedValue.find((item) => item?.dsId === option.dsId);
82
+ if (option.type === constants.MENU_OPTION_TYPES.OPTION && isSelected(multiSelectedValue, option)) {
83
+ items.push(option);
84
+ }
85
+
86
+ if (option.type === constants.MENU_OPTION_TYPES.SECTION) {
87
+ var _items;
88
+
89
+ if (((_items = items[items.length - 1]) === null || _items === void 0 ? void 0 : _items.type) === constants.MENU_OPTION_TYPES.SECTION) {
90
+ items[items.length - 1] = option;
91
+ } else {
92
+ items.push(option);
93
+ }
94
+ }
95
+ });
96
+
97
+ if (((_items2 = items[items.length - 1]) === null || _items2 === void 0 ? void 0 : _items2.type) === constants.MENU_OPTION_TYPES.SECTION) {
98
+ items.pop();
74
99
  }
75
100
 
76
- return selectedValues;
101
+ return items;
77
102
  };
103
+ const getFilteredOptionsSelected = (filteredOption, selectedValues) => filteredOption.filter(option => option.type === constants.MENU_OPTION_TYPES.OPTION && isSelected(selectedValues, option));
78
104
 
105
+ exports.filterOptions = filterOptions;
79
106
  exports.findInCircularList = findInCircularList;
107
+ exports.getFilteredOptionsSelected = getFilteredOptionsSelected;
80
108
  exports.getFirstOption = getFirstOption;
81
109
  exports.getLastValueSelected = getLastValueSelected;
82
110
  exports.getOptions = getOptions;
@@ -85,3 +113,4 @@ exports.getSuggestedValueOnChange = getSuggestedValueOnChange;
85
113
  exports.isSelected = isSelected;
86
114
  exports.isSelectedValueEmpty = isSelectedValueEmpty;
87
115
  exports.isSelectedValueMultiple = isSelectedValueMultiple;
116
+ exports.selectedValuesWithSections = selectedValuesWithSections;
package/cjs/index.js CHANGED
@@ -18,11 +18,14 @@ var timeHelpers = require('./date-time-picker/utils/timeHelpers.js');
18
18
  var usePhoneMask = require('./mask-hook/hooks/usePhoneMask.js');
19
19
  var useNumberMask = require('./mask-hook/hooks/useNumberMask.js');
20
20
  var useSSNMask = require('./mask-hook/hooks/useSSNMask.js');
21
- var useZipCode = require('./mask-hook/hooks/useZipCode.js');
21
+ var useZipCodeMask = require('./mask-hook/hooks/useZipCodeMask.js');
22
22
  var DSInputText = require('./text-input/DSInputText.js');
23
23
  var dataTestIds = require('./text-input/exported-related/data-test-ids.js');
24
24
  var theming = require('./text-input/exported-related/theming.js');
25
25
  var ControlledToggle = require('./toggle/ControlledToggle.js');
26
+ var DSControlledLargeTextInput = require('./large-text-input/DSControlledLargeTextInput.js');
27
+ var dataTestIds$1 = require('./large-text-input/exported-related/data-test-ids.js');
28
+ var theming$1 = require('./large-text-input/exported-related/theming.js');
26
29
 
27
30
 
28
31
 
@@ -31,6 +34,7 @@ exports.DSAutocompleteWithSchema = Autocomplete.DSAutocompleteWithSchema;
31
34
  exports.DSControlledCheckbox = ControlledCheckbox.DSControlledCheckbox;
32
35
  exports.DSControlledCheckboxWithSchema = ControlledCheckbox.DSControlledCheckboxWithSchema;
33
36
  exports.DSComboBox = ComboBox.DSComboBox;
37
+ exports.DSComboBoxV3 = ComboBox.DSComboBox;
34
38
  exports.DSComboBoxWithSchema = ComboBox.DSComboBoxWithSchema;
35
39
  exports.DSControlledDateRangePicker = ControlledDateRangePicker.DSControlledDateRangePicker;
36
40
  exports.DSControlledDateRangePickerWithSchema = ControlledDateRangePicker.DSControlledDateRangePickerWithSchema;
@@ -49,13 +53,17 @@ exports.getDayFromDateString = dateHelpers.getDayFromDateString;
49
53
  exports.getValidationDateStringMetaInfo = dateHelpers.getValidationDateStringMetaInfo;
50
54
  exports.getValidationTimeStringMetaInfo = timeHelpers.getValidationTimeStringMetaInfo;
51
55
  exports.UsePhoneMaskWithSchema = usePhoneMask.UsePhoneMaskWithSchema;
56
+ exports.getPhoneMaskedValue = usePhoneMask.getPhoneMaskedValue;
52
57
  exports.usePhoneMask = usePhoneMask.usePhoneMask;
53
58
  exports.UseNumberMaskWithSchema = useNumberMask.UseNumberMaskWithSchema;
59
+ exports.getNumberMaskedValue = useNumberMask.getNumberMaskedValue;
54
60
  exports.useNumberMask = useNumberMask.useNumberMask;
55
61
  exports.UseSSNMaskWithSchema = useSSNMask.UseSSNMaskWithSchema;
62
+ exports.getSSNMaskedValue = useSSNMask.getSSNMaskedValue;
56
63
  exports.useSSNMask = useSSNMask.useSSNMask;
57
- exports.UseZipCodeMaskWithSchema = useZipCode.UseZipCodeMaskWithSchema;
58
- exports.useZipCode = useZipCode.useZipCode;
64
+ exports.UseZipCodeMaskWithSchema = useZipCodeMask.UseZipCodeMaskWithSchema;
65
+ exports.getUseZipMaskedValue = useZipCodeMask.getUseZipMaskedValue;
66
+ exports.useZipCodeMask = useZipCodeMask.useZipCodeMask;
59
67
  exports.DSInputText = DSInputText.DSInputText;
60
68
  exports.DSInputTextWithSchema = DSInputText.DSInputTextWithSchema;
61
69
  exports.DSInputTextDataTestIds = dataTestIds.DSInputTextDataTestIds;
@@ -63,3 +71,8 @@ exports.DSInputTextName = theming.DSInputTextName;
63
71
  exports.DSInputTextSlots = theming.DSInputTextSlots;
64
72
  exports.DSControlledToggle = ControlledToggle.DSControlledToggle;
65
73
  exports.DSControlledToggleWithSchema = ControlledToggle.DSControlledToggleWithSchema;
74
+ exports.DSControlledLargeTextInput = DSControlledLargeTextInput.DSControlledLargeTextInput;
75
+ exports.DSControlledLargeTextInputWithSchema = DSControlledLargeTextInput.DSControlledLargeTextInputWithSchema;
76
+ exports.DSControlledLargetTextInputDatatestids = dataTestIds$1.DSControlledLargetTextInputDatatestids;
77
+ exports.DSControlledLargeTextInputName = theming$1.DSControlledLargeTextInputName;
78
+ exports.DSControlledLargeTextInputSlots = theming$1.DSControlledLargeTextInputSlots;
@@ -0,0 +1,83 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _jsx = require('@babel/runtime/helpers/jsx');
11
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
12
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
13
+ var React = require('react');
14
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
15
+ var reactDescPropTypes = require('./react-desc-prop-types.js');
16
+ var styles = require('./styles.js');
17
+ var dataTestIds = require('./exported-related/data-test-ids.js');
18
+ var jsxRuntime = require('react/jsx-runtime');
19
+
20
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
+
22
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
23
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
24
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
25
+
26
+ const _excluded = ["maxLength", "value", "onChange", "innerRef", "resizable", "name", "id", "withoutCharacterCounter", "hasError"],
27
+ _excluded2 = ["className"];
28
+
29
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
+
31
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
32
+
33
+ const DSControlledLargeTextInput = props => {
34
+ dsPropsHelpers.useValidateTypescriptPropTypes(props, reactDescPropTypes.propTypes);
35
+ const propsWithDefault = dsPropsHelpers.useMemoMergePropsWithDefault(props, reactDescPropTypes.defaultProps);
36
+
37
+ const {
38
+ maxLength,
39
+ value,
40
+ onChange,
41
+ innerRef,
42
+ resizable,
43
+ name,
44
+ id,
45
+ withoutCharacterCounter,
46
+ hasError
47
+ } = propsWithDefault,
48
+ otherProps = _objectWithoutProperties__default["default"](propsWithDefault, _excluded);
49
+
50
+ const _useGetGlobalAttribut = dsPropsHelpers.useGetGlobalAttributes(otherProps),
51
+ {
52
+ className
53
+ } = _useGetGlobalAttribut,
54
+ globalAttributes = _objectWithoutProperties__default["default"](_useGetGlobalAttribut, _excluded2);
55
+
56
+ const xstyledProps = dsPropsHelpers.useGetXstyledProps(otherProps);
57
+ const handleOnChange = React.useCallback(e => onChange(e.target.value, e), [onChange]);
58
+ return /*#__PURE__*/jsxRuntime.jsxs(styles.StyledContainer, _objectSpread(_objectSpread({
59
+ className: className,
60
+ "data-testid": dataTestIds.DSControlledLargetTextInputDatatestids.CONTAINER
61
+ }, xstyledProps), {}, {
62
+ children: [/*#__PURE__*/jsxRuntime.jsx(styles.StyledTextArea, _objectSpread({
63
+ ref: innerRef,
64
+ maxLength: maxLength,
65
+ "aria-multiline": true,
66
+ value: value,
67
+ onChange: handleOnChange,
68
+ resizable: resizable,
69
+ name: name,
70
+ id: id,
71
+ "data-testid": dataTestIds.DSControlledLargetTextInputDatatestids.INPUT,
72
+ hasError: hasError
73
+ }, globalAttributes)), maxLength && !withoutCharacterCounter && /*#__PURE__*/_jsx__default["default"](styles.StyledCharCounter, {
74
+ "data-testid": dataTestIds.DSControlledLargetTextInputDatatestids.CHAR_COUNTER
75
+ }, void 0, "".concat(value.length, "/").concat(maxLength))]
76
+ }));
77
+ };
78
+
79
+ const DSControlledLargeTextInputWithSchema = dsPropsHelpers.describe(DSControlledLargeTextInput);
80
+ DSControlledLargeTextInputWithSchema.propTypes = reactDescPropTypes.propTypes;
81
+
82
+ exports.DSControlledLargeTextInput = DSControlledLargeTextInput;
83
+ exports.DSControlledLargeTextInputWithSchema = DSControlledLargeTextInputWithSchema;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const DSControlledLargetTextInputDatatestids = {
6
+ CONTAINER: 'ds-controlled-large-text-input-container',
7
+ CHAR_COUNTER: 'ds-controlled-large-text-input-char-counter',
8
+ INPUT: 'ds-controlled-large-text-input'
9
+ };
10
+
11
+ exports.DSControlledLargetTextInputDatatestids = DSControlledLargetTextInputDatatestids;
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var dataTestIds = require('./data-test-ids.js');
6
+ var theming = require('./theming.js');
7
+
8
+
9
+
10
+ exports.DSControlledLargetTextInputDatatestids = dataTestIds.DSControlledLargetTextInputDatatestids;
11
+ exports.DSControlledLargeTextInputName = theming.DSControlledLargeTextInputName;
12
+ exports.DSControlledLargeTextInputSlots = theming.DSControlledLargeTextInputSlots;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const DSControlledLargeTextInputName = 'ds-controlled-large-text-input';
6
+ const DSControlledLargeTextInputSlots = {
7
+ CONTAINER: 'root',
8
+ INPUT: 'input',
9
+ CHAR_COUNTER: 'char-counter'
10
+ };
11
+
12
+ exports.DSControlledLargeTextInputName = DSControlledLargeTextInputName;
13
+ exports.DSControlledLargeTextInputSlots = DSControlledLargeTextInputSlots;
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var DSControlledLargeTextInput = require('./DSControlledLargeTextInput.js');
6
+ var dataTestIds = require('./exported-related/data-test-ids.js');
7
+ var theming = require('./exported-related/theming.js');
8
+
9
+
10
+
11
+ exports.DSControlledLargeTextInput = DSControlledLargeTextInput.DSControlledLargeTextInput;
12
+ exports.DSControlledLargeTextInputWithSchema = DSControlledLargeTextInput.DSControlledLargeTextInputWithSchema;
13
+ exports.DSControlledLargetTextInputDatatestids = dataTestIds.DSControlledLargetTextInputDatatestids;
14
+ exports.DSControlledLargeTextInputName = theming.DSControlledLargeTextInputName;
15
+ exports.DSControlledLargeTextInputSlots = theming.DSControlledLargeTextInputSlots;
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
16
+
17
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
+
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20
+
21
+ const noop = () => {};
22
+
23
+ const defaultProps = {
24
+ value: '',
25
+ onChange: noop,
26
+ withoutCharacterCounter: false,
27
+ resizable: false,
28
+ hasError: false
29
+ };
30
+ const propTypes = _objectSpread(_objectSpread(_objectSpread({}, dsPropsHelpers.globalAttributesPropTypes), dsPropsHelpers.xstyledPropTypes), {}, {
31
+ value: dsPropsHelpers.PropTypes.string.description('Text are value.').defaultValue(''),
32
+ onChange: dsPropsHelpers.PropTypes.func.description('OnChange cb.').defaultValue('() => {}'),
33
+ resizable: dsPropsHelpers.PropTypes.bool.description('Enables to resize the component.').defaultValue(false),
34
+ rows: dsPropsHelpers.PropTypes.string.description('Sets the number of lines for the default height. Once lines are reached, scroll behavior enables.'),
35
+ withoutCharacterCounter: dsPropsHelpers.PropTypes.bool.description('Removes the character counter.').defaultValue(false),
36
+ id: dsPropsHelpers.PropTypes.string.description('Unique id.'),
37
+ innerRef: dsPropsHelpers.PropTypes.oneOfType([dsPropsHelpers.PropTypes.object, dsPropsHelpers.PropTypes.func]).description('Inner ref to the input.'),
38
+ maxLength: dsPropsHelpers.PropTypes.string.description('Max characters allowed.'),
39
+ disabled: dsPropsHelpers.PropTypes.bool.description('Set disabled state.'),
40
+ readOnly: dsPropsHelpers.PropTypes.bool.description('Set readonly state.'),
41
+ hasError: dsPropsHelpers.PropTypes.bool.description('Set error state.').defaultValue(false)
42
+ });
43
+
44
+ exports.defaultProps = defaultProps;
45
+ exports.propTypes = propTypes;
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
6
+ var dsSystem = require('@elliemae/ds-system');
7
+ var styledComponents = require('@xstyled/styled-components');
8
+ var theming = require('./exported-related/theming.js');
9
+
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
+ const StyledContainer = dsSystem.styled('div', {
16
+ name: theming.DSControlledLargeTextInputName,
17
+ slot: theming.DSControlledLargeTextInputSlots.CONTAINER
18
+ })(_templateObject || (_templateObject = _taggedTemplateLiteral__default["default"](["\n display: grid;\n grid-gap: 4px;\n grid-template-rows: auto auto;\n grid-template-columns: fit-content;\n ", "\n ", "\n ", "\n"])), styledComponents.layout, styledComponents.space, styledComponents.sizing);
19
+ const StyledCharCounter = dsSystem.styled('span', {
20
+ name: theming.DSControlledLargeTextInputName,
21
+ slot: theming.DSControlledLargeTextInputSlots.CHAR_COUNTER
22
+ })(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral__default["default"](["\n justify-self: flex-end;\n"])));
23
+ const StyledTextArea = dsSystem.styled('textarea', {
24
+ name: theming.DSControlledLargeTextInputName,
25
+ slot: theming.DSControlledLargeTextInputSlots.INPUT
26
+ })(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral__default["default"](["\n width: 100%;\n ", "\n &:disabled {\n &:hover {\n cursor: not-allowed;\n }\n }\n\n ", "\n"])), _ref => {
27
+ let {
28
+ resizable
29
+ } = _ref;
30
+ return resizable ? "" : "resize: none;";
31
+ }, _ref2 => {
32
+ let {
33
+ hasError
34
+ } = _ref2;
35
+ return hasError ? "border: 1px solid red;" : "";
36
+ });
37
+
38
+ exports.StyledCharCounter = StyledCharCounter;
39
+ exports.StyledContainer = StyledContainer;
40
+ exports.StyledTextArea = StyledTextArea;
@@ -5,15 +5,19 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var usePhoneMask = require('./usePhoneMask.js');
6
6
  var useNumberMask = require('./useNumberMask.js');
7
7
  var useSSNMask = require('./useSSNMask.js');
8
- var useZipCode = require('./useZipCode.js');
8
+ var useZipCodeMask = require('./useZipCodeMask.js');
9
9
 
10
10
 
11
11
 
12
12
  exports.UsePhoneMaskWithSchema = usePhoneMask.UsePhoneMaskWithSchema;
13
+ exports.getPhoneMaskedValue = usePhoneMask.getPhoneMaskedValue;
13
14
  exports.usePhoneMask = usePhoneMask.usePhoneMask;
14
15
  exports.UseNumberMaskWithSchema = useNumberMask.UseNumberMaskWithSchema;
16
+ exports.getNumberMaskedValue = useNumberMask.getNumberMaskedValue;
15
17
  exports.useNumberMask = useNumberMask.useNumberMask;
16
18
  exports.UseSSNMaskWithSchema = useSSNMask.UseSSNMaskWithSchema;
19
+ exports.getSSNMaskedValue = useSSNMask.getSSNMaskedValue;
17
20
  exports.useSSNMask = useSSNMask.useSSNMask;
18
- exports.UseZipCodeMaskWithSchema = useZipCode.UseZipCodeMaskWithSchema;
19
- exports.useZipCode = useZipCode.useZipCode;
21
+ exports.UseZipCodeMaskWithSchema = useZipCodeMask.UseZipCodeMaskWithSchema;
22
+ exports.getUseZipMaskedValue = useZipCodeMask.getUseZipMaskedValue;
23
+ exports.useZipCodeMask = useZipCodeMask.useZipCodeMask;
@@ -164,8 +164,13 @@ const useNumberMask = props => {
164
164
  onBlur
165
165
  };
166
166
  };
167
+ const getNumberMaskedValue = (value, opts) => {
168
+ const [maskedValue] = conformValue(value, value.length - 1, '', opts);
169
+ return maskedValue;
170
+ };
167
171
  const UseNumberMaskWithSchema = dsPropsHelpers.describe(useNumberMask);
168
172
  UseNumberMaskWithSchema.propTypes = reactDescPropTypes.DSMaskNumberHookPropsTypes;
169
173
 
170
174
  exports.UseNumberMaskWithSchema = UseNumberMaskWithSchema;
175
+ exports.getNumberMaskedValue = getNumberMaskedValue;
171
176
  exports.useNumberMask = useNumberMask;
@@ -86,8 +86,13 @@ const usePhoneMask = props => {
86
86
  onChange
87
87
  };
88
88
  };
89
+ const getPhoneMaskedValue = (value, opts) => {
90
+ const [maskedValue] = conformValue(value, value.length - 1, '', opts);
91
+ return maskedValue;
92
+ };
89
93
  const UsePhoneMaskWithSchema = dsPropsHelpers.describe(usePhoneMask);
90
94
  UsePhoneMaskWithSchema.propTypes = reactDescPropTypes.DSMaskPhoneHookPropsTypes;
91
95
 
92
96
  exports.UsePhoneMaskWithSchema = UsePhoneMaskWithSchema;
97
+ exports.getPhoneMaskedValue = getPhoneMaskedValue;
93
98
  exports.usePhoneMask = usePhoneMask;
@@ -65,8 +65,13 @@ const useSSNMask = props => {
65
65
  onChange
66
66
  };
67
67
  };
68
+ const getSSNMaskedValue = value => {
69
+ const [maskedValue] = conformValue(value, value.length - 1, '');
70
+ return maskedValue;
71
+ };
68
72
  const UseSSNMaskWithSchema = dsPropsHelpers.describe(useSSNMask);
69
73
  UseSSNMaskWithSchema.propTypes = reactDescPropTypes.DSMaskHookPropsTypes;
70
74
 
71
75
  exports.UseSSNMaskWithSchema = UseSSNMaskWithSchema;
76
+ exports.getSSNMaskedValue = getSSNMaskedValue;
72
77
  exports.useSSNMask = useSSNMask;
@@ -18,14 +18,14 @@ const zipCodeSpecialChars = [['-', 5]];
18
18
 
19
19
  const conformValue = (rawValue, cursorPos, lastKeyCode) => {
20
20
  // Work with digits only
21
- let maskedValue = rawValue.split('').filter(char => char >= '0' && char <= '9'); // We only consider first 5 digits
21
+ let maskedValue = rawValue.split('').filter(char => char >= '0' && char <= '9'); // We only consider first 9 digits
22
22
 
23
- maskedValue = maskedValue.slice(0, 6);
23
+ maskedValue = maskedValue.slice(0, 9);
24
24
  const maskedPos = getPartialMaskedPos.getPartialMaskedPos(rawValue, maskedValue, cursorPos);
25
25
  return addSpecialCharacters.addSpecialCharacters(maskedValue, zipCodeSpecialChars, maskedPos, lastKeyCode);
26
26
  };
27
27
 
28
- const useZipCode = props => {
28
+ const useZipCodeMask = props => {
29
29
  const propsWithDefault = dsPropsHelpers.useMemoMergePropsWithDefault(props, reactDescPropTypes.DSMaskHookDefaultProps);
30
30
  dsPropsHelpers.useValidateTypescriptPropTypes(propsWithDefault, reactDescPropTypes.DSMaskHookPropsTypes);
31
31
  const {
@@ -62,8 +62,13 @@ const useZipCode = props => {
62
62
  onChange
63
63
  };
64
64
  };
65
- const UseZipCodeMaskWithSchema = dsPropsHelpers.describe(useZipCode);
65
+ const getUseZipMaskedValue = value => {
66
+ const [maskedValue] = conformValue(value, value.length - 1, '');
67
+ return maskedValue;
68
+ };
69
+ const UseZipCodeMaskWithSchema = dsPropsHelpers.describe(useZipCodeMask);
66
70
  UseZipCodeMaskWithSchema.propTypes = reactDescPropTypes.DSMaskHookPropsTypes;
67
71
 
68
72
  exports.UseZipCodeMaskWithSchema = UseZipCodeMaskWithSchema;
69
- exports.useZipCode = useZipCode;
73
+ exports.getUseZipMaskedValue = getUseZipMaskedValue;
74
+ exports.useZipCodeMask = useZipCodeMask;
@@ -5,15 +5,19 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var usePhoneMask = require('./hooks/usePhoneMask.js');
6
6
  var useNumberMask = require('./hooks/useNumberMask.js');
7
7
  var useSSNMask = require('./hooks/useSSNMask.js');
8
- var useZipCode = require('./hooks/useZipCode.js');
8
+ var useZipCodeMask = require('./hooks/useZipCodeMask.js');
9
9
 
10
10
 
11
11
 
12
12
  exports.UsePhoneMaskWithSchema = usePhoneMask.UsePhoneMaskWithSchema;
13
+ exports.getPhoneMaskedValue = usePhoneMask.getPhoneMaskedValue;
13
14
  exports.usePhoneMask = usePhoneMask.usePhoneMask;
14
15
  exports.UseNumberMaskWithSchema = useNumberMask.UseNumberMaskWithSchema;
16
+ exports.getNumberMaskedValue = useNumberMask.getNumberMaskedValue;
15
17
  exports.useNumberMask = useNumberMask.useNumberMask;
16
18
  exports.UseSSNMaskWithSchema = useSSNMask.UseSSNMaskWithSchema;
19
+ exports.getSSNMaskedValue = useSSNMask.getSSNMaskedValue;
17
20
  exports.useSSNMask = useSSNMask.useSSNMask;
18
- exports.UseZipCodeMaskWithSchema = useZipCode.UseZipCodeMaskWithSchema;
19
- exports.useZipCode = useZipCode.useZipCode;
21
+ exports.UseZipCodeMaskWithSchema = useZipCodeMask.UseZipCodeMaskWithSchema;
22
+ exports.getUseZipMaskedValue = useZipCodeMask.getUseZipMaskedValue;
23
+ exports.useZipCodeMask = useZipCodeMask.useZipCodeMask;
@@ -1,11 +1,10 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import 'react';
3
- import { describe } from 'react-desc';
4
- import { useMemoMergePropsWithDefault, useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';
3
+ import { describe, useMemoMergePropsWithDefault, useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';
5
4
  import { useAutocomplete } from './config/useAutocomplete.js';
6
5
  import { Container } from './parts/container/Container.js';
7
- import { propTypes } from './propTypes.js';
8
6
  import { defaultProps, AutocompleteContext } from './AutocompleteCTX.js';
7
+ import { propTypes } from './react-desc-prop-types.js';
9
8
 
10
9
  var _Container;
11
10