@boomerang-io/carbon-addons-boomerang-react 4.6.11 → 4.6.13-beta.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.
Files changed (255) hide show
  1. package/README.md +162 -162
  2. package/dist/cjs/components/AboutPlatform/AboutPlatform.js +50 -50
  3. package/dist/cjs/components/AdvantageSideNav/AdvantageSideNav.js +218 -218
  4. package/dist/cjs/components/AutoSuggest/AutoSuggest.js +101 -101
  5. package/dist/cjs/components/Avatar/Avatar.js +18 -18
  6. package/dist/cjs/components/CheckboxList/CheckboxList.js +34 -34
  7. package/dist/cjs/components/ComboBox/ComboBox.js +103 -103
  8. package/dist/cjs/components/ComboBoxMultiSelect/ComboBoxMultiSelect.js +32 -32
  9. package/dist/cjs/components/ComboBoxMultiSelect/MultiSelect.js +208 -208
  10. package/dist/cjs/components/ComposedModal/ComposedModal.js +80 -80
  11. package/dist/cjs/components/ConfirmModal/ConfirmModal.js +43 -43
  12. package/dist/cjs/components/Creatable/Creatable.js +137 -137
  13. package/dist/cjs/components/DataDrivenInput/DataDrivenInput.js +226 -226
  14. package/dist/cjs/components/DateInput/DateInput.js +35 -35
  15. package/dist/cjs/components/DecisionButtons/DecisionButtons.js +61 -61
  16. package/dist/cjs/components/DelayedRender/DelayedRender.js +17 -17
  17. package/dist/cjs/components/DynamicFormik/DynamicFormik.js +578 -578
  18. package/dist/cjs/components/Error403/Error403.js +13 -13
  19. package/dist/cjs/components/Error403/ForbiddenErrorBackground.js +113 -113
  20. package/dist/cjs/components/Error403/GraphicWrangler/GraphicWrangler.js +62 -62
  21. package/dist/cjs/components/Error404/Error404.js +13 -13
  22. package/dist/cjs/components/Error404/GraphicLoch/GraphicLoch.js +17 -17
  23. package/dist/cjs/components/Error404/NotFoundErrorBackground.js +129 -129
  24. package/dist/cjs/components/ErrorBoundary/ErrorBoundary.js +32 -32
  25. package/dist/cjs/components/ErrorDragon/ErrorDragon.js +13 -13
  26. package/dist/cjs/components/ErrorDragon/assets/ErrorGraphic.js +35 -35
  27. package/dist/cjs/components/ErrorFullPage/ErrorFullPage.js +10 -10
  28. package/dist/cjs/components/ErrorMessage/ErrorMessage.js +22 -22
  29. package/dist/cjs/components/ErrorPage/ErrorPage.js +11 -11
  30. package/dist/cjs/components/ErrorPageCore/ErrorPageCore.js +15 -15
  31. package/dist/cjs/components/ErrorPageCore/GenericErrorBackground.js +124 -124
  32. package/dist/cjs/components/FeatureHeader/FeatureHeader.js +29 -29
  33. package/dist/cjs/components/FeatureNavTab/FeatureNavTab.js +12 -12
  34. package/dist/cjs/components/FeatureNavTabs/FeatureNavTabs.js +12 -12
  35. package/dist/cjs/components/FeatureSideNav/FeatureSideNav.js +12 -12
  36. package/dist/cjs/components/FeatureSideNav/FeatureSideNavFooter.js +8 -8
  37. package/dist/cjs/components/FeatureSideNav/FeatureSideNavHeader.js +8 -8
  38. package/dist/cjs/components/FeatureSideNav/FeatureSideNavLinks.js +14 -14
  39. package/dist/cjs/components/FeatureSideNavLink/FeatureSideNavLink.js +12 -12
  40. package/dist/cjs/components/Feedback/Feedback.js +37 -37
  41. package/dist/cjs/components/FlowModal/FlowModal.js +141 -141
  42. package/dist/cjs/components/FlowModal/FlowModalForm.js +12 -12
  43. package/dist/cjs/components/Header/Header.js +179 -187
  44. package/dist/cjs/components/Header/HeaderAppSwitcher.js +94 -94
  45. package/dist/cjs/components/Header/HeaderMenu.js +7 -7
  46. package/dist/cjs/components/Header/HeaderMenuItem.js +51 -51
  47. package/dist/cjs/components/Header/HeaderTeamSwitcher.js +305 -305
  48. package/dist/cjs/components/Header/UserRequests.js +29 -29
  49. package/dist/cjs/components/ImageModal/ImageModal.js +17 -17
  50. package/dist/cjs/components/Loading/Loading.js +8 -8
  51. package/dist/cjs/components/MemberBar/MemberBar.js +20 -20
  52. package/dist/cjs/components/Modal/Modal.js +20 -20
  53. package/dist/cjs/components/ModalConfirmEdit/ModalConfirmArray.js +14 -14
  54. package/dist/cjs/components/ModalConfirmEdit/ModalConfirmDetails.js +11 -11
  55. package/dist/cjs/components/ModalConfirmEdit/ModalConfirmEdit.js +17 -17
  56. package/dist/cjs/components/ModalForm/ModalForm.js +9 -9
  57. package/dist/cjs/components/Notifications/NotificationsContainer.js +22 -22
  58. package/dist/cjs/components/Notifications/ToastNotification.js +21 -21
  59. package/dist/cjs/components/Notifications/notify.js +17 -17
  60. package/dist/cjs/components/PlatformBanner/PlatformBanner.js +8 -8
  61. package/dist/cjs/components/PlatformNotifications/PlatformNotification.js +17 -17
  62. package/dist/cjs/components/PlatformNotifications/PlatformNotificationsContainer.js +136 -136
  63. package/dist/cjs/components/Portal/Portal.js +14 -14
  64. package/dist/cjs/components/PrivacyRedirect/PrivacyRedirect.js +30 -30
  65. package/dist/cjs/components/PrivacyStatement/PrivacyStatement.js +90 -90
  66. package/dist/cjs/components/ProfileSettings/ProfileSettings.js +124 -124
  67. package/dist/cjs/components/ProtectedRoute/ProtectedRoute.js +13 -13
  68. package/dist/cjs/components/RadioGroup/RadioGroup.js +33 -33
  69. package/dist/cjs/components/RichTextArea/RichTextArea.js +142 -142
  70. package/dist/cjs/components/SignOut/SignOut.js +27 -27
  71. package/dist/cjs/components/SupportCenter/SupportCenter.js +65 -65
  72. package/dist/cjs/components/TextArea/TextArea.js +16 -16
  73. package/dist/cjs/components/TextInput/TextInput.js +13 -13
  74. package/dist/cjs/components/Toggle/Toggle.js +22 -22
  75. package/dist/cjs/components/TooltipHover/TooltipHover.js +39 -39
  76. package/dist/cjs/components/UIShell/UIShell.js +95 -95
  77. package/dist/cjs/config/servicesConfig.js +21 -22
  78. package/dist/cjs/constants/DataDrivenInputTypes.js +74 -74
  79. package/dist/cjs/constants/UserType.js +13 -13
  80. package/dist/cjs/hooks/useHeaderMenu.js +49 -49
  81. package/dist/cjs/hooks/usePortal.js +74 -74
  82. package/dist/cjs/hooks/useWindowSize.js +33 -33
  83. package/dist/cjs/internal/ListBox/ListBox.js +41 -41
  84. package/dist/cjs/internal/ListBox/ListBoxField.js +19 -19
  85. package/dist/cjs/internal/ListBox/ListBoxMenu.js +19 -19
  86. package/dist/cjs/internal/ListBox/ListBoxMenuIcon.js +31 -31
  87. package/dist/cjs/internal/ListBox/ListBoxMenuItem.js +38 -38
  88. package/dist/cjs/internal/ListBox/ListBoxSelection.js +64 -64
  89. package/dist/cjs/internal/ListBox/index.js +10 -10
  90. package/dist/cjs/internal/keyboard/keys.js +16 -16
  91. package/dist/cjs/internal/keyboard/match.js +67 -67
  92. package/dist/cjs/internal/settings.js +5 -5
  93. package/dist/cjs/tools/accessibility.js +13 -13
  94. package/dist/cjs/tools/createPropAdapter.js +44 -44
  95. package/dist/cjs/tools/isUrl.js +39 -39
  96. package/dist/cjs/tools/setupGetInstanceId.js +20 -20
  97. package/dist/cjs/tools/useSetState.js +12 -12
  98. package/dist/cjs/tools/yupAst/astGenerator.js +212 -212
  99. package/dist/cjs/tools/yupAst/customValidators.js +17 -17
  100. package/dist/esm/components/AboutPlatform/AboutPlatform.js +50 -50
  101. package/dist/esm/components/AdvantageSideNav/AdvantageSideNav.js +218 -218
  102. package/dist/esm/components/AutoSuggest/AutoSuggest.js +101 -101
  103. package/dist/esm/components/Avatar/Avatar.js +18 -18
  104. package/dist/esm/components/CheckboxList/CheckboxList.js +34 -34
  105. package/dist/esm/components/ComboBox/ComboBox.js +103 -103
  106. package/dist/esm/components/ComboBoxMultiSelect/ComboBoxMultiSelect.js +32 -32
  107. package/dist/esm/components/ComboBoxMultiSelect/MultiSelect.js +208 -208
  108. package/dist/esm/components/ComposedModal/ComposedModal.js +80 -80
  109. package/dist/esm/components/ConfirmModal/ConfirmModal.js +43 -43
  110. package/dist/esm/components/Creatable/Creatable.js +137 -137
  111. package/dist/esm/components/DataDrivenInput/DataDrivenInput.js +226 -226
  112. package/dist/esm/components/DateInput/DateInput.js +35 -35
  113. package/dist/esm/components/DecisionButtons/DecisionButtons.js +61 -61
  114. package/dist/esm/components/DelayedRender/DelayedRender.js +17 -17
  115. package/dist/esm/components/DynamicFormik/DynamicFormik.js +578 -578
  116. package/dist/esm/components/Error403/Error403.js +13 -13
  117. package/dist/esm/components/Error403/ForbiddenErrorBackground.js +113 -113
  118. package/dist/esm/components/Error403/GraphicWrangler/GraphicWrangler.js +62 -62
  119. package/dist/esm/components/Error404/Error404.js +13 -13
  120. package/dist/esm/components/Error404/GraphicLoch/GraphicLoch.js +17 -17
  121. package/dist/esm/components/Error404/NotFoundErrorBackground.js +129 -129
  122. package/dist/esm/components/ErrorBoundary/ErrorBoundary.js +32 -32
  123. package/dist/esm/components/ErrorDragon/ErrorDragon.js +13 -13
  124. package/dist/esm/components/ErrorDragon/assets/ErrorGraphic.js +35 -35
  125. package/dist/esm/components/ErrorFullPage/ErrorFullPage.js +10 -10
  126. package/dist/esm/components/ErrorMessage/ErrorMessage.js +22 -22
  127. package/dist/esm/components/ErrorPage/ErrorPage.js +11 -11
  128. package/dist/esm/components/ErrorPageCore/ErrorPageCore.js +15 -15
  129. package/dist/esm/components/ErrorPageCore/GenericErrorBackground.js +124 -124
  130. package/dist/esm/components/FeatureHeader/FeatureHeader.js +29 -29
  131. package/dist/esm/components/FeatureNavTab/FeatureNavTab.js +12 -12
  132. package/dist/esm/components/FeatureNavTabs/FeatureNavTabs.js +12 -12
  133. package/dist/esm/components/FeatureSideNav/FeatureSideNav.js +12 -12
  134. package/dist/esm/components/FeatureSideNav/FeatureSideNavFooter.js +8 -8
  135. package/dist/esm/components/FeatureSideNav/FeatureSideNavHeader.js +8 -8
  136. package/dist/esm/components/FeatureSideNav/FeatureSideNavLinks.js +14 -14
  137. package/dist/esm/components/FeatureSideNavLink/FeatureSideNavLink.js +12 -12
  138. package/dist/esm/components/Feedback/Feedback.js +37 -37
  139. package/dist/esm/components/FlowModal/FlowModal.js +141 -141
  140. package/dist/esm/components/FlowModal/FlowModalForm.js +12 -12
  141. package/dist/esm/components/Header/Header.js +179 -187
  142. package/dist/esm/components/Header/HeaderAppSwitcher.js +94 -94
  143. package/dist/esm/components/Header/HeaderMenu.js +7 -7
  144. package/dist/esm/components/Header/HeaderMenuItem.js +51 -51
  145. package/dist/esm/components/Header/HeaderTeamSwitcher.js +305 -305
  146. package/dist/esm/components/Header/UserRequests.js +29 -29
  147. package/dist/esm/components/ImageModal/ImageModal.js +17 -17
  148. package/dist/esm/components/Loading/Loading.js +8 -8
  149. package/dist/esm/components/MemberBar/MemberBar.js +20 -20
  150. package/dist/esm/components/Modal/Modal.js +20 -20
  151. package/dist/esm/components/ModalConfirmEdit/ModalConfirmArray.js +14 -14
  152. package/dist/esm/components/ModalConfirmEdit/ModalConfirmDetails.js +11 -11
  153. package/dist/esm/components/ModalConfirmEdit/ModalConfirmEdit.js +17 -17
  154. package/dist/esm/components/ModalForm/ModalForm.js +9 -9
  155. package/dist/esm/components/Notifications/NotificationsContainer.js +22 -22
  156. package/dist/esm/components/Notifications/ToastNotification.js +21 -21
  157. package/dist/esm/components/Notifications/notify.js +17 -17
  158. package/dist/esm/components/PlatformBanner/PlatformBanner.js +8 -8
  159. package/dist/esm/components/PlatformNotifications/PlatformNotification.js +17 -17
  160. package/dist/esm/components/PlatformNotifications/PlatformNotificationsContainer.js +136 -136
  161. package/dist/esm/components/Portal/Portal.js +14 -14
  162. package/dist/esm/components/PrivacyRedirect/PrivacyRedirect.js +30 -30
  163. package/dist/esm/components/PrivacyStatement/PrivacyStatement.js +90 -90
  164. package/dist/esm/components/ProfileSettings/ProfileSettings.js +124 -124
  165. package/dist/esm/components/ProtectedRoute/ProtectedRoute.js +13 -13
  166. package/dist/esm/components/RadioGroup/RadioGroup.js +33 -33
  167. package/dist/esm/components/RichTextArea/RichTextArea.js +142 -142
  168. package/dist/esm/components/SignOut/SignOut.js +27 -27
  169. package/dist/esm/components/SupportCenter/SupportCenter.js +65 -65
  170. package/dist/esm/components/TextArea/TextArea.js +16 -16
  171. package/dist/esm/components/TextInput/TextInput.js +13 -13
  172. package/dist/esm/components/Toggle/Toggle.js +22 -22
  173. package/dist/esm/components/TooltipHover/TooltipHover.js +39 -39
  174. package/dist/esm/components/UIShell/UIShell.js +95 -95
  175. package/dist/esm/config/servicesConfig.js +21 -22
  176. package/dist/esm/constants/DataDrivenInputTypes.js +74 -74
  177. package/dist/esm/constants/UserType.js +13 -13
  178. package/dist/esm/hooks/useHeaderMenu.js +49 -49
  179. package/dist/esm/hooks/usePortal.js +74 -74
  180. package/dist/esm/hooks/useWindowSize.js +33 -33
  181. package/dist/esm/internal/ListBox/ListBox.js +41 -41
  182. package/dist/esm/internal/ListBox/ListBoxField.js +19 -19
  183. package/dist/esm/internal/ListBox/ListBoxMenu.js +19 -19
  184. package/dist/esm/internal/ListBox/ListBoxMenuIcon.js +31 -31
  185. package/dist/esm/internal/ListBox/ListBoxMenuItem.js +38 -38
  186. package/dist/esm/internal/ListBox/ListBoxSelection.js +64 -64
  187. package/dist/esm/internal/ListBox/index.js +10 -10
  188. package/dist/esm/internal/keyboard/keys.js +16 -16
  189. package/dist/esm/internal/keyboard/match.js +67 -67
  190. package/dist/esm/internal/settings.js +5 -5
  191. package/dist/esm/tools/accessibility.js +13 -13
  192. package/dist/esm/tools/createPropAdapter.js +44 -44
  193. package/dist/esm/tools/isUrl.js +39 -39
  194. package/dist/esm/tools/setupGetInstanceId.js +20 -20
  195. package/dist/esm/tools/useSetState.js +12 -12
  196. package/dist/esm/tools/yupAst/astGenerator.js +212 -212
  197. package/dist/esm/tools/yupAst/customValidators.js +17 -17
  198. package/dist/types/index.d.ts +1345 -1359
  199. package/package.json +167 -167
  200. package/scss/components/AboutPlatform/_aboutPlatform.scss +139 -139
  201. package/scss/components/AdvantageSideNav/_advantageSideNav.scss +261 -261
  202. package/scss/components/AutoSuggest/_autoSuggest.scss +62 -62
  203. package/scss/components/Avatar/_avatar.scss +32 -32
  204. package/scss/components/CheckboxList/_checkboxList.scss +26 -26
  205. package/scss/components/ComboBox/_combobox.scss +23 -23
  206. package/scss/components/ComboBoxMultiSelect/_comboBoxMultiSelect.scss +53 -53
  207. package/scss/components/ConfirmModal/_confirmModal.scss +12 -12
  208. package/scss/components/Creatable/_creatable.scss +48 -48
  209. package/scss/components/DateInput/_dateInput.scss +36 -36
  210. package/scss/components/DecisionButtons/_decisionButtons.scss +132 -132
  211. package/scss/components/DynamicFormik/_dynamicFormik.scss +17 -17
  212. package/scss/components/ErrorBoundary/_errorBoundary.scss +12 -12
  213. package/scss/components/ErrorDragon/_errorDragon.scss +55 -55
  214. package/scss/components/ErrorMessage/_errorMessage.scss +43 -43
  215. package/scss/components/ErrorPage/_errorPage.scss +66 -66
  216. package/scss/components/ErrorPageCore/_errorPageCore.scss +73 -73
  217. package/scss/components/FeatureHeader/_featureHeader.scss +67 -67
  218. package/scss/components/FeatureNavTab/_featureNavTab.scss +27 -27
  219. package/scss/components/FeatureSideNav/_featureSideNav.scss +76 -76
  220. package/scss/components/FeatureSideNavLink/_featureSideNavLink.scss +49 -49
  221. package/scss/components/Feedback/_feedback.scss +46 -46
  222. package/scss/components/Header/_header.scss +179 -179
  223. package/scss/components/Header/_headerAppSwitcher.scss +117 -117
  224. package/scss/components/Header/_headerMenu.scss +30 -30
  225. package/scss/components/Header/_headerMenuItem.scss +65 -65
  226. package/scss/components/Header/_headerTeamSwitcher.scss +195 -195
  227. package/scss/components/Header/_userRequests.scss +36 -36
  228. package/scss/components/ImageModal/_imageModal.scss +51 -51
  229. package/scss/components/MemberBar/_memberBar.scss +99 -99
  230. package/scss/components/Modal/_modal.scss +163 -163
  231. package/scss/components/ModalConfirmEdit/_modalConfirmEdit.scss +113 -113
  232. package/scss/components/Notifications/_notifications.scss +57 -57
  233. package/scss/components/PlatformBanner/_platformBanner.scss +30 -30
  234. package/scss/components/PlatformNotifications/_platformNotifications.scss +230 -230
  235. package/scss/components/PrivacyRedirect/_privacyRedirect.scss +43 -43
  236. package/scss/components/PrivacyStatement/_privacyStatement.scss +137 -137
  237. package/scss/components/ProfileSettings/_profileSettings.scss +117 -117
  238. package/scss/components/ProtectedRoute/_protectedRoute.scss +32 -32
  239. package/scss/components/RadioGroup/_radioGroup.scss +46 -46
  240. package/scss/components/RichTextArea/_richTextArea.scss +82 -82
  241. package/scss/components/SignOut/_signOut.scss +51 -51
  242. package/scss/components/SupportCenter/_supportCenter.scss +16 -16
  243. package/scss/components/TextArea/_textArea.scss +19 -19
  244. package/scss/components/TextInput/_textInput.scss +26 -26
  245. package/scss/components/Toggle/_toggle.scss +80 -80
  246. package/scss/components/TooltipHover/_tooltip.scss +48 -48
  247. package/scss/global/_config.scss +14 -14
  248. package/scss/global/_tippy.scss +49 -49
  249. package/scss/global/index.scss +401 -401
  250. package/scss/global/themes/_boomerang.scss +184 -184
  251. package/scss/global/themes/_default.scss +79 -79
  252. package/scss/global/themes/_shell-tokens.scss +42 -42
  253. package/scss/global/utils/_animations.scss +15 -15
  254. package/scss/global/utils/_mixins.scss +67 -67
  255. package/scss/global/utils/index.scss +10 -10
@@ -21,214 +21,214 @@ var Downshift__default = /*#__PURE__*/_interopDefault(Downshift);
21
21
  var cx__default = /*#__PURE__*/_interopDefault(cx);
22
22
  var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
23
23
 
24
- /*
25
- IBM Confidential
26
- 694970X, 69497O0
27
- © Copyright IBM Corp. 2022, 2024
28
- */
29
- const defaultItemToString = (item) => {
30
- if (typeof item === "string") {
31
- return item;
32
- }
33
- return item && item.label;
34
- };
35
- const defaultShouldFilterItem = ({ item, selectedItems, itemToString, inputValue }) => {
36
- let keepItem = true;
37
- const itemString = itemToString(item);
38
- if (selectedItems.some((selectedItem) => itemString === itemToString(selectedItem)) ||
39
- !itemString.toLowerCase().includes(inputValue.toLowerCase())) {
40
- keepItem = false;
41
- }
42
- return keepItem;
43
- };
44
- const getInputValue = (state) => {
45
- return state.inputValue || "";
46
- };
47
- const getInstanceId = setupGetInstanceId.default();
48
- class MultiSelectComboBox extends React__default.default.Component {
49
- static defaultProps = {
50
- itemToString: defaultItemToString,
51
- };
52
- comboBoxInstanceId;
53
- inputNode;
54
- textInput;
55
- constructor(props) {
56
- super(props);
57
- this.textInput = React__default.default.createRef();
58
- this.comboBoxInstanceId = getInstanceId();
59
- this.state = {
60
- inputValue: getInputValue({}),
61
- isOpen: props.open ?? false,
62
- stateSelectedItems: props.initialSelectedItems || props.selectedItems || [],
63
- };
64
- }
65
- //eslint disable-next-line
66
- static getDerivedStateFromProps(nextProps, state) {
67
- /**
68
- * programmatically control this `open` prop
69
- */
70
- const { open } = nextProps;
71
- const { prevOpen } = state;
72
- return prevOpen === open
73
- ? { inputValue: getInputValue(state) }
74
- : {
75
- isOpen: open,
76
- prevOpen: open,
77
- inputValue: getInputValue(state),
78
- };
79
- }
80
- filterItems = (items, selectedItems, itemToString, inputValue) => {
81
- const { shouldFilterItem = defaultShouldFilterItem } = this.props;
82
- return shouldFilterItem
83
- ? items.filter((item) => shouldFilterItem({
84
- item,
85
- selectedItems,
86
- itemToString,
87
- inputValue,
88
- }))
89
- : items;
90
- };
91
- handleOnInputKeyDown = (event) => {
92
- event.stopPropagation();
93
- };
94
- handleOnInputValueChange = (inputValue) => {
95
- const { onInputChange } = this.props;
96
- this.setState(() => ({
97
- // Default to empty string if we have a false-y `inputValue`
98
- inputValue: inputValue || "",
99
- }), () => {
100
- if (onInputChange) {
101
- onInputChange(inputValue);
102
- }
103
- });
104
- };
105
- handleOnChange = (item) => {
106
- if (!item) {
107
- return;
108
- }
109
- const selectedItems = [...this.state.stateSelectedItems];
110
- let selectedIndex;
111
- selectedItems.forEach((selectedItem, index) => {
112
- if (isEqual__default.default(selectedItem, item)) {
113
- selectedIndex = index;
114
- }
115
- });
116
- if (selectedIndex === undefined) {
117
- selectedItems.push(item);
118
- }
119
- else {
120
- selectedItems.splice(selectedIndex, 1);
121
- }
122
- this.setState({ stateSelectedItems: selectedItems });
123
- if (typeof this.props.onChange === "function") {
124
- this.props.onChange({ selectedItems });
125
- }
126
- };
127
- onToggleClick = (isOpen) => (event) => {
128
- if (this.props.onToggleClick) {
129
- this.props.onToggleClick(event);
130
- }
131
- if (event.target === this.textInput.current && isOpen) {
132
- event.preventDownshiftDefault = true;
133
- event.persist();
134
- }
135
- };
136
- openMenu = () => {
137
- this.setState({ isOpen: true });
138
- };
139
- closeMenu = () => {
140
- this.setState({ isOpen: false });
141
- };
142
- handleClearSelection = () => {
143
- this.setState({ stateSelectedItems: [] });
144
- if (typeof this.props.onChange === "function") {
145
- this.props.onChange({ selectedItems: [] });
146
- }
147
- };
148
- handleInputBlur = (e) => {
149
- this.props.onInputBlur && this.props.onInputBlur(e);
150
- this.closeMenu();
151
- };
152
- handleOnStateChange = (changes) => {
153
- const { type } = changes;
154
- switch (type) {
155
- case Downshift__default.default.stateChangeTypes.keyDownEscape:
156
- case Downshift__default.default.stateChangeTypes.mouseUp:
157
- this.setState({ isOpen: false });
158
- break;
159
- // Opt-in to some cases where we should be toggling the menu based on
160
- // a given key press or mouse handler
161
- // Reference: https://github.com/paypal/downshift/issues/206
162
- case Downshift__default.default.stateChangeTypes.clickButton:
163
- case Downshift__default.default.stateChangeTypes.keyDownSpaceButton:
164
- this.setState(() => {
165
- let nextIsOpen = changes.isOpen || false;
166
- if (changes.isOpen === false) {
167
- // If Downshift is trying to close the menu, but we know the input
168
- // is the active element in the document, then keep the menu open
169
- if (this.inputNode === document.activeElement) {
170
- nextIsOpen = true;
171
- }
172
- }
173
- return {
174
- isOpen: nextIsOpen,
175
- };
176
- });
177
- break;
178
- }
179
- };
180
- render() {
181
- const { ariaLabel = "Choose an item", className: containerClassName, disabled = false, direction, downshiftProps, id, invalid, invalidText, items, itemToString = defaultItemToString, itemToElement, initialSelectedItems, titleText, helperText, placeholder, onChange, onInputBlur, onInputChange, light = false, selectedItems: propsSelectedItems, size,
182
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
183
- shouldFilterItem = defaultShouldFilterItem, tagProps, translateWithId, type = "default", ...rest } = this.props;
184
- const { stateSelectedItems, isOpen } = this.state;
185
- const { ListBox, ListBoxField: Field, ListBoxSelection: Selection, ListBoxMenu: Menu, ListBoxMenuItem: MenuItem, ListBoxMenuIcon: MenuIcon, } = index;
186
- // externally controlled if selectedItems props exist
187
- const selectedItems = propsSelectedItems || stateSelectedItems;
188
- const className = cx__default.default(`${settings.prefix}--combo-box`, containerClassName, {
189
- [`${settings.prefix}--list-box--up`]: direction === "top",
190
- });
191
- const titleClasses = cx__default.default(`${settings.prefix}--label`, {
192
- [`${settings.prefix}--label--disabled`]: disabled,
193
- });
194
- const comboBoxHelperId = !helperText ? undefined : `combobox-helper-text-${this.comboBoxInstanceId}`;
195
- const helperClasses = cx__default.default(`${settings.prefix}--form__helper-text`, {
196
- [`${settings.prefix}--form__helper-text--disabled`]: disabled,
197
- });
198
- const wrapperClasses = cx__default.default(`${settings.prefix}--list-box__wrapper`);
199
- const inputClasses = cx__default.default(`${settings.prefix}--text-input`, {
200
- [`${settings.prefix}--text-input--empty`]: !this.state.inputValue,
201
- });
202
- const ItemToElement = itemToElement;
203
- return (React__default.default.createElement(Downshift__default.default, { ...createPropAdapter.mapDownshiftProps(downshiftProps), onChange: this.handleOnChange, onInputValueChange: this.handleOnInputValueChange, inputValue: this.state.inputValue || "", isOpen: isOpen, itemToString: itemToString, onStateChange: this.handleOnStateChange, onOuterClick: this.closeMenu, selectedItem: selectedItems }, ({ getInputProps, getItemProps, getLabelProps, getMenuProps, getToggleButtonProps, isOpen, inputValue, selectedItem, highlightedIndex, clearSelection, }) => (React__default.default.createElement("div", { className: wrapperClasses },
204
- titleText && (React__default.default.createElement("label", { htmlFor: id, className: titleClasses, ...getLabelProps() }, titleText)),
205
- React__default.default.createElement(ListBox, { className: className, disabled: disabled, invalid: invalid, "aria-label": ariaLabel, invalidText: invalidText, isOpen: isOpen, light: light, type: type, size: size },
206
- React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-multi-select-selected` }, Array.isArray(selectedItems) &&
207
- selectedItems.map((item, index) => {
208
- const itemString = itemToString(item);
209
- return (React__default.default.createElement(react.Tag, { key: `${itemString}-${index}`, disabled: disabled, type: "teal", onClick: () => this.handleOnChange(item), onKeyDown: (e) => accessibility.isAccessibleKeyDownEvent(e) && this.handleOnChange(item), filter: true, ...tagProps }, itemString));
210
- })),
211
- React__default.default.createElement(Field, { id: id, disabled: disabled, ...getToggleButtonProps({
212
- disabled,
213
- onClick: this.onToggleClick(isOpen),
214
- }) },
215
- React__default.default.createElement("input", { className: inputClasses, "aria-label": ariaLabel, "aria-controls": `${id}__menu`, "aria-autocomplete": "list", tabIndex: 0, ref: this.textInput, ...rest, ...getInputProps({
216
- disabled,
217
- id,
218
- placeholder,
219
- onKeyDown: this.handleOnInputKeyDown,
220
- onFocus: this.openMenu,
221
- onBlur: this.handleInputBlur,
222
- }) }),
223
- invalid && React__default.default.createElement(icons.WarningFilled, { size: 16, className: `${settings.prefix}--list-box__invalid-icon` }),
224
- (inputValue || selectedItems.length > 0) && (React__default.default.createElement(Selection, { clearSelection: clearSelection, onClearSelection: this.handleClearSelection, disabled: disabled, translateWithId: translateWithId })),
225
- React__default.default.createElement(MenuIcon, { isOpen: isOpen, translateWithId: translateWithId })),
226
- isOpen && (React__default.default.createElement(Menu, { id: id, ...getMenuProps({ "aria-label": ariaLabel }) }, this.filterItems(items, selectedItem, itemToString, inputValue).map((item, index) => {
227
- const itemProps = getItemProps({ item, index });
228
- return (React__default.default.createElement(MenuItem, { key: itemProps.id, isHighlighted: highlightedIndex === index, title: itemToElement ? item.text : itemToString(item), ...itemProps }, typeof ItemToElement !== "undefined" ? (React__default.default.createElement(ItemToElement, { key: itemToString(item), ...item })) : (itemToString(item))));
229
- })))),
230
- helperText && !invalid && (React__default.default.createElement("div", { id: comboBoxHelperId, className: helperClasses }, helperText))))));
231
- }
24
+ /*
25
+ IBM Confidential
26
+ 694970X, 69497O0
27
+ © Copyright IBM Corp. 2022, 2024
28
+ */
29
+ const defaultItemToString = (item) => {
30
+ if (typeof item === "string") {
31
+ return item;
32
+ }
33
+ return item && item.label;
34
+ };
35
+ const defaultShouldFilterItem = ({ item, selectedItems, itemToString, inputValue }) => {
36
+ let keepItem = true;
37
+ const itemString = itemToString(item);
38
+ if (selectedItems.some((selectedItem) => itemString === itemToString(selectedItem)) ||
39
+ !itemString.toLowerCase().includes(inputValue.toLowerCase())) {
40
+ keepItem = false;
41
+ }
42
+ return keepItem;
43
+ };
44
+ const getInputValue = (state) => {
45
+ return state.inputValue || "";
46
+ };
47
+ const getInstanceId = setupGetInstanceId.default();
48
+ class MultiSelectComboBox extends React__default.default.Component {
49
+ static defaultProps = {
50
+ itemToString: defaultItemToString,
51
+ };
52
+ comboBoxInstanceId;
53
+ inputNode;
54
+ textInput;
55
+ constructor(props) {
56
+ super(props);
57
+ this.textInput = React__default.default.createRef();
58
+ this.comboBoxInstanceId = getInstanceId();
59
+ this.state = {
60
+ inputValue: getInputValue({}),
61
+ isOpen: props.open ?? false,
62
+ stateSelectedItems: props.initialSelectedItems || props.selectedItems || [],
63
+ };
64
+ }
65
+ //eslint disable-next-line
66
+ static getDerivedStateFromProps(nextProps, state) {
67
+ /**
68
+ * programmatically control this `open` prop
69
+ */
70
+ const { open } = nextProps;
71
+ const { prevOpen } = state;
72
+ return prevOpen === open
73
+ ? { inputValue: getInputValue(state) }
74
+ : {
75
+ isOpen: open,
76
+ prevOpen: open,
77
+ inputValue: getInputValue(state),
78
+ };
79
+ }
80
+ filterItems = (items, selectedItems, itemToString, inputValue) => {
81
+ const { shouldFilterItem = defaultShouldFilterItem } = this.props;
82
+ return shouldFilterItem
83
+ ? items.filter((item) => shouldFilterItem({
84
+ item,
85
+ selectedItems,
86
+ itemToString,
87
+ inputValue,
88
+ }))
89
+ : items;
90
+ };
91
+ handleOnInputKeyDown = (event) => {
92
+ event.stopPropagation();
93
+ };
94
+ handleOnInputValueChange = (inputValue) => {
95
+ const { onInputChange } = this.props;
96
+ this.setState(() => ({
97
+ // Default to empty string if we have a false-y `inputValue`
98
+ inputValue: inputValue || "",
99
+ }), () => {
100
+ if (onInputChange) {
101
+ onInputChange(inputValue);
102
+ }
103
+ });
104
+ };
105
+ handleOnChange = (item) => {
106
+ if (!item) {
107
+ return;
108
+ }
109
+ const selectedItems = [...this.state.stateSelectedItems];
110
+ let selectedIndex;
111
+ selectedItems.forEach((selectedItem, index) => {
112
+ if (isEqual__default.default(selectedItem, item)) {
113
+ selectedIndex = index;
114
+ }
115
+ });
116
+ if (selectedIndex === undefined) {
117
+ selectedItems.push(item);
118
+ }
119
+ else {
120
+ selectedItems.splice(selectedIndex, 1);
121
+ }
122
+ this.setState({ stateSelectedItems: selectedItems });
123
+ if (typeof this.props.onChange === "function") {
124
+ this.props.onChange({ selectedItems });
125
+ }
126
+ };
127
+ onToggleClick = (isOpen) => (event) => {
128
+ if (this.props.onToggleClick) {
129
+ this.props.onToggleClick(event);
130
+ }
131
+ if (event.target === this.textInput.current && isOpen) {
132
+ event.preventDownshiftDefault = true;
133
+ event.persist();
134
+ }
135
+ };
136
+ openMenu = () => {
137
+ this.setState({ isOpen: true });
138
+ };
139
+ closeMenu = () => {
140
+ this.setState({ isOpen: false });
141
+ };
142
+ handleClearSelection = () => {
143
+ this.setState({ stateSelectedItems: [] });
144
+ if (typeof this.props.onChange === "function") {
145
+ this.props.onChange({ selectedItems: [] });
146
+ }
147
+ };
148
+ handleInputBlur = (e) => {
149
+ this.props.onInputBlur && this.props.onInputBlur(e);
150
+ this.closeMenu();
151
+ };
152
+ handleOnStateChange = (changes) => {
153
+ const { type } = changes;
154
+ switch (type) {
155
+ case Downshift__default.default.stateChangeTypes.keyDownEscape:
156
+ case Downshift__default.default.stateChangeTypes.mouseUp:
157
+ this.setState({ isOpen: false });
158
+ break;
159
+ // Opt-in to some cases where we should be toggling the menu based on
160
+ // a given key press or mouse handler
161
+ // Reference: https://github.com/paypal/downshift/issues/206
162
+ case Downshift__default.default.stateChangeTypes.clickButton:
163
+ case Downshift__default.default.stateChangeTypes.keyDownSpaceButton:
164
+ this.setState(() => {
165
+ let nextIsOpen = changes.isOpen || false;
166
+ if (changes.isOpen === false) {
167
+ // If Downshift is trying to close the menu, but we know the input
168
+ // is the active element in the document, then keep the menu open
169
+ if (this.inputNode === document.activeElement) {
170
+ nextIsOpen = true;
171
+ }
172
+ }
173
+ return {
174
+ isOpen: nextIsOpen,
175
+ };
176
+ });
177
+ break;
178
+ }
179
+ };
180
+ render() {
181
+ const { ariaLabel = "Choose an item", className: containerClassName, disabled = false, direction, downshiftProps, id, invalid, invalidText, items, itemToString = defaultItemToString, itemToElement, initialSelectedItems, titleText, helperText, placeholder, onChange, onInputBlur, onInputChange, light = false, selectedItems: propsSelectedItems, size,
182
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
183
+ shouldFilterItem = defaultShouldFilterItem, tagProps, translateWithId, type = "default", ...rest } = this.props;
184
+ const { stateSelectedItems, isOpen } = this.state;
185
+ const { ListBox, ListBoxField: Field, ListBoxSelection: Selection, ListBoxMenu: Menu, ListBoxMenuItem: MenuItem, ListBoxMenuIcon: MenuIcon, } = index;
186
+ // externally controlled if selectedItems props exist
187
+ const selectedItems = propsSelectedItems || stateSelectedItems;
188
+ const className = cx__default.default(`${settings.prefix}--combo-box`, containerClassName, {
189
+ [`${settings.prefix}--list-box--up`]: direction === "top",
190
+ });
191
+ const titleClasses = cx__default.default(`${settings.prefix}--label`, {
192
+ [`${settings.prefix}--label--disabled`]: disabled,
193
+ });
194
+ const comboBoxHelperId = !helperText ? undefined : `combobox-helper-text-${this.comboBoxInstanceId}`;
195
+ const helperClasses = cx__default.default(`${settings.prefix}--form__helper-text`, {
196
+ [`${settings.prefix}--form__helper-text--disabled`]: disabled,
197
+ });
198
+ const wrapperClasses = cx__default.default(`${settings.prefix}--list-box__wrapper`);
199
+ const inputClasses = cx__default.default(`${settings.prefix}--text-input`, {
200
+ [`${settings.prefix}--text-input--empty`]: !this.state.inputValue,
201
+ });
202
+ const ItemToElement = itemToElement;
203
+ return (React__default.default.createElement(Downshift__default.default, { ...createPropAdapter.mapDownshiftProps(downshiftProps), onChange: this.handleOnChange, onInputValueChange: this.handleOnInputValueChange, inputValue: this.state.inputValue || "", isOpen: isOpen, itemToString: itemToString, onStateChange: this.handleOnStateChange, onOuterClick: this.closeMenu, selectedItem: selectedItems }, ({ getInputProps, getItemProps, getLabelProps, getMenuProps, getToggleButtonProps, isOpen, inputValue, selectedItem, highlightedIndex, clearSelection, }) => (React__default.default.createElement("div", { className: wrapperClasses },
204
+ titleText && (React__default.default.createElement("label", { htmlFor: id, className: titleClasses, ...getLabelProps() }, titleText)),
205
+ React__default.default.createElement(ListBox, { className: className, disabled: disabled, invalid: invalid, "aria-label": ariaLabel, invalidText: invalidText, isOpen: isOpen, light: light, type: type, size: size },
206
+ React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-multi-select-selected` }, Array.isArray(selectedItems) &&
207
+ selectedItems.map((item, index) => {
208
+ const itemString = itemToString(item);
209
+ return (React__default.default.createElement(react.Tag, { key: `${itemString}-${index}`, disabled: disabled, type: "teal", onClick: () => this.handleOnChange(item), onKeyDown: (e) => accessibility.isAccessibleKeyDownEvent(e) && this.handleOnChange(item), filter: true, ...tagProps }, itemString));
210
+ })),
211
+ React__default.default.createElement(Field, { id: id, disabled: disabled, ...getToggleButtonProps({
212
+ disabled,
213
+ onClick: this.onToggleClick(isOpen),
214
+ }) },
215
+ React__default.default.createElement("input", { className: inputClasses, "aria-label": ariaLabel, "aria-controls": `${id}__menu`, "aria-autocomplete": "list", tabIndex: 0, ref: this.textInput, ...rest, ...getInputProps({
216
+ disabled,
217
+ id,
218
+ placeholder,
219
+ onKeyDown: this.handleOnInputKeyDown,
220
+ onFocus: this.openMenu,
221
+ onBlur: this.handleInputBlur,
222
+ }) }),
223
+ invalid && React__default.default.createElement(icons.WarningFilled, { size: 16, className: `${settings.prefix}--list-box__invalid-icon` }),
224
+ (inputValue || selectedItems.length > 0) && (React__default.default.createElement(Selection, { clearSelection: clearSelection, onClearSelection: this.handleClearSelection, disabled: disabled, translateWithId: translateWithId })),
225
+ React__default.default.createElement(MenuIcon, { isOpen: isOpen, translateWithId: translateWithId })),
226
+ isOpen && (React__default.default.createElement(Menu, { id: id, ...getMenuProps({ "aria-label": ariaLabel }) }, this.filterItems(items, selectedItem, itemToString, inputValue).map((item, index) => {
227
+ const itemProps = getItemProps({ item, index });
228
+ return (React__default.default.createElement(MenuItem, { key: itemProps.id, isHighlighted: highlightedIndex === index, title: itemToElement ? item.text : itemToString(item), ...itemProps }, typeof ItemToElement !== "undefined" ? (React__default.default.createElement(ItemToElement, { key: itemToString(item), ...item })) : (itemToString(item))));
229
+ })))),
230
+ helperText && !invalid && (React__default.default.createElement("div", { id: comboBoxHelperId, className: helperClasses }, helperText))))));
231
+ }
232
232
  }
233
233
 
234
234
  exports.default = MultiSelectComboBox;
@@ -15,86 +15,86 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
15
  var React__default = /*#__PURE__*/_interopDefault(React);
16
16
  var cx__default = /*#__PURE__*/_interopDefault(cx);
17
17
 
18
- /*
19
- IBM Confidential
20
- 694970X, 69497O0
21
- © Copyright IBM Corp. 2022, 2024
22
- */
23
- function ComposedModal(props) {
24
- const { appElement = "#app", composedModalProps = {}, isOpen = false, modalHeaderProps = {} } = props;
25
- const [state, setState] = useSetState.default({
26
- isConfirmModalOpen: false,
27
- isOpen: isOpen,
28
- shouldConfirmModalClose: false,
29
- step: 0,
30
- ...props.initialState,
31
- });
32
- // Let it be externally controlled
33
- React.useEffect(() => {
34
- setState({ isOpen });
35
- // eslint-disable-next-line
36
- }, [isOpen]);
37
- /**
38
- * Reset to initial state
39
- * and let parent know
40
- */
41
- const resetInitialState = (stateUpdate) => {
42
- setState({
43
- isConfirmModalOpen: false,
44
- shouldConfirmModalClose: false,
45
- ...props.initialState,
46
- ...stateUpdate,
47
- });
48
- };
49
- const handleOpenModal = () => {
50
- setState({ isOpen: true });
51
- };
52
- /**
53
- * Close modal and call event function for parent if provided
54
- */
55
- const handleCloseModal = () => {
56
- resetInitialState({ isOpen: false });
57
- if (typeof props.onCloseModal === "function") {
58
- props.onCloseModal();
59
- }
60
- };
61
- /**
62
- * Check if should confirm exit with confirm modal or just exit modal flow
63
- */
64
- const handleShouldCloseModal = () => {
65
- if (state.shouldConfirmModalClose) {
66
- setState({ isConfirmModalOpen: true });
67
- }
68
- else {
69
- handleCloseModal();
70
- }
71
- };
72
- const closeConfirmModal = () => {
73
- setState({ isConfirmModalOpen: false });
74
- };
75
- /**
76
- * Method passed to children components and they determine if should confirm exit of modal
77
- * @param {bool} shouldConfirmModalClose - boolean of current component
78
- */
79
- const handleSetShouldConfirmModalClose = (shouldConfirmModalClose) => {
80
- setState({ shouldConfirmModalClose });
81
- };
82
- const { containerClassName, ...restComposedModalProps } = composedModalProps;
83
- const { subtitle, ...restModalHeaderProps } = modalHeaderProps;
84
- return (React__default.default.createElement(React__default.default.Fragment, null,
85
- props.modalTrigger && props.modalTrigger({ openModal: handleOpenModal }),
86
- React__default.default.createElement(Modal.Modal, { appElement: appElement, containerClassName: cx__default.default(`${settings.prefix}--bmrg-modal-composed-container`, `${settings.prefix}--modal-container`, props.size ? `${settings.prefix}--modal-container--${props.size}` : "modal-container-fix-width", containerClassName), isOpen: state.isOpen, onRequestClose: handleShouldCloseModal, shouldCloseOnOverlayClick: false, ...restComposedModalProps },
87
- React__default.default.createElement(react.ModalHeader, { closeModal: handleShouldCloseModal, ...restModalHeaderProps }, subtitle && React__default.default.createElement("p", { className: `${settings.prefix}--bmrg-modal-composed-subtitle` }, subtitle)),
88
- state.isOpen &&
89
- typeof props.children === "function" &&
90
- props.children({
91
- closeModal: handleShouldCloseModal,
92
- forceCloseModal: handleCloseModal,
93
- resetInitialState: resetInitialState,
94
- setShouldConfirmModalClose: handleSetShouldConfirmModalClose,
95
- shouldConfirmModalClose: state.shouldConfirmModalClose,
96
- }),
97
- React__default.default.createElement(ConfirmModal.default, { affirmativeAction: handleCloseModal, appElement: appElement, negativeAction: closeConfirmModal, isOpen: state.isConfirmModalOpen, onCloseModal: closeConfirmModal, ...props.confirmModalProps }))));
18
+ /*
19
+ IBM Confidential
20
+ 694970X, 69497O0
21
+ © Copyright IBM Corp. 2022, 2024
22
+ */
23
+ function ComposedModal(props) {
24
+ const { appElement = "#app", composedModalProps = {}, isOpen = false, modalHeaderProps = {} } = props;
25
+ const [state, setState] = useSetState.default({
26
+ isConfirmModalOpen: false,
27
+ isOpen: isOpen,
28
+ shouldConfirmModalClose: false,
29
+ step: 0,
30
+ ...props.initialState,
31
+ });
32
+ // Let it be externally controlled
33
+ React.useEffect(() => {
34
+ setState({ isOpen });
35
+ // eslint-disable-next-line
36
+ }, [isOpen]);
37
+ /**
38
+ * Reset to initial state
39
+ * and let parent know
40
+ */
41
+ const resetInitialState = (stateUpdate) => {
42
+ setState({
43
+ isConfirmModalOpen: false,
44
+ shouldConfirmModalClose: false,
45
+ ...props.initialState,
46
+ ...stateUpdate,
47
+ });
48
+ };
49
+ const handleOpenModal = () => {
50
+ setState({ isOpen: true });
51
+ };
52
+ /**
53
+ * Close modal and call event function for parent if provided
54
+ */
55
+ const handleCloseModal = () => {
56
+ resetInitialState({ isOpen: false });
57
+ if (typeof props.onCloseModal === "function") {
58
+ props.onCloseModal();
59
+ }
60
+ };
61
+ /**
62
+ * Check if should confirm exit with confirm modal or just exit modal flow
63
+ */
64
+ const handleShouldCloseModal = () => {
65
+ if (state.shouldConfirmModalClose) {
66
+ setState({ isConfirmModalOpen: true });
67
+ }
68
+ else {
69
+ handleCloseModal();
70
+ }
71
+ };
72
+ const closeConfirmModal = () => {
73
+ setState({ isConfirmModalOpen: false });
74
+ };
75
+ /**
76
+ * Method passed to children components and they determine if should confirm exit of modal
77
+ * @param {bool} shouldConfirmModalClose - boolean of current component
78
+ */
79
+ const handleSetShouldConfirmModalClose = (shouldConfirmModalClose) => {
80
+ setState({ shouldConfirmModalClose });
81
+ };
82
+ const { containerClassName, ...restComposedModalProps } = composedModalProps;
83
+ const { subtitle, ...restModalHeaderProps } = modalHeaderProps;
84
+ return (React__default.default.createElement(React__default.default.Fragment, null,
85
+ props.modalTrigger && props.modalTrigger({ openModal: handleOpenModal }),
86
+ React__default.default.createElement(Modal.Modal, { appElement: appElement, containerClassName: cx__default.default(`${settings.prefix}--bmrg-modal-composed-container`, `${settings.prefix}--modal-container`, props.size ? `${settings.prefix}--modal-container--${props.size}` : "modal-container-fix-width", containerClassName), isOpen: state.isOpen, onRequestClose: handleShouldCloseModal, shouldCloseOnOverlayClick: false, ...restComposedModalProps },
87
+ React__default.default.createElement(react.ModalHeader, { closeModal: handleShouldCloseModal, ...restModalHeaderProps }, subtitle && React__default.default.createElement("p", { className: `${settings.prefix}--bmrg-modal-composed-subtitle` }, subtitle)),
88
+ state.isOpen &&
89
+ typeof props.children === "function" &&
90
+ props.children({
91
+ closeModal: handleShouldCloseModal,
92
+ forceCloseModal: handleCloseModal,
93
+ resetInitialState: resetInitialState,
94
+ setShouldConfirmModalClose: handleSetShouldConfirmModalClose,
95
+ shouldConfirmModalClose: state.shouldConfirmModalClose,
96
+ }),
97
+ React__default.default.createElement(ConfirmModal.default, { affirmativeAction: handleCloseModal, appElement: appElement, negativeAction: closeConfirmModal, isOpen: state.isConfirmModalOpen, onCloseModal: closeConfirmModal, ...props.confirmModalProps }))));
98
98
  }
99
99
 
100
100
  exports.ComposedModal = ComposedModal;