@boomerang-io/carbon-addons-boomerang-react 4.6.10-beta.0 → 4.6.10-beta.1

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 (513) hide show
  1. package/README.md +162 -162
  2. package/dist/cjs/_virtual/_commonjsHelpers.js +5 -0
  3. package/dist/cjs/_virtual/_nodeUtil.js +9 -0
  4. package/dist/cjs/_virtual/isBuffer.js +9 -0
  5. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_DataView.js +16 -0
  6. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Hash.js +44 -0
  7. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_ListCache.js +44 -0
  8. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Map.js +16 -0
  9. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_MapCache.js +44 -0
  10. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Promise.js +16 -0
  11. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Set.js +16 -0
  12. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_SetCache.js +37 -0
  13. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Stack.js +40 -0
  14. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js +14 -0
  15. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Uint8Array.js +14 -0
  16. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_WeakMap.js +16 -0
  17. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayFilter.js +32 -0
  18. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayLikeKeys.js +63 -0
  19. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayMap.js +28 -0
  20. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayPush.js +27 -0
  21. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arraySome.js +30 -0
  22. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assocIndexOf.js +29 -0
  23. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseEach.js +23 -0
  24. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFor.js +24 -0
  25. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseForOwn.js +25 -0
  26. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGet.js +33 -0
  27. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetAllKeys.js +29 -0
  28. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js +38 -0
  29. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHasIn.js +20 -0
  30. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsArguments.js +27 -0
  31. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqual.js +37 -0
  32. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqualDeep.js +99 -0
  33. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMatch.js +71 -0
  34. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNative.js +58 -0
  35. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsTypedArray.js +70 -0
  36. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIteratee.js +43 -0
  37. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeys.js +39 -0
  38. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMap.js +31 -0
  39. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatches.js +32 -0
  40. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatchesProperty.js +47 -0
  41. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseOrderBy.js +65 -0
  42. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseProperty.js +21 -0
  43. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyDeep.js +24 -0
  44. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSortBy.js +28 -0
  45. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTimes.js +27 -0
  46. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseToString.js +48 -0
  47. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnary.js +21 -0
  48. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cacheHas.js +20 -0
  49. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castPath.js +32 -0
  50. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_compareAscending.js +49 -0
  51. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_compareMultiple.js +52 -0
  52. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_coreJsData.js +14 -0
  53. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseEach.js +40 -0
  54. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseFor.js +32 -0
  55. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalArrays.js +94 -0
  56. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalByTag.js +125 -0
  57. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalObjects.js +98 -0
  58. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js +13 -0
  59. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeys.js +26 -0
  60. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMapData.js +26 -0
  61. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMatchData.js +33 -0
  62. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getNative.js +26 -0
  63. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js +54 -0
  64. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbols.js +39 -0
  65. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getTag.js +72 -0
  66. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getValue.js +20 -0
  67. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasPath.js +52 -0
  68. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashClear.js +23 -0
  69. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashDelete.js +24 -0
  70. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashGet.js +38 -0
  71. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashHas.js +31 -0
  72. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashSet.js +31 -0
  73. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIndex.js +32 -0
  74. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKey.js +38 -0
  75. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKeyable.js +22 -0
  76. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isMasked.js +28 -0
  77. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isPrototype.js +25 -0
  78. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isStrictComparable.js +23 -0
  79. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheClear.js +20 -0
  80. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheDelete.js +43 -0
  81. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheGet.js +27 -0
  82. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheHas.js +24 -0
  83. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheSet.js +34 -0
  84. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheClear.js +31 -0
  85. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheDelete.js +26 -0
  86. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheGet.js +24 -0
  87. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheHas.js +24 -0
  88. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheSet.js +30 -0
  89. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapToArray.js +25 -0
  90. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_matchesStrictComparable.js +27 -0
  91. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_memoizeCapped.js +34 -0
  92. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeCreate.js +14 -0
  93. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeys.js +14 -0
  94. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nodeUtil.js +37 -0
  95. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js +29 -0
  96. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overArg.js +22 -0
  97. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js +17 -0
  98. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheAdd.js +26 -0
  99. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheHas.js +21 -0
  100. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToArray.js +25 -0
  101. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackClear.js +23 -0
  102. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackDelete.js +25 -0
  103. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackGet.js +21 -0
  104. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackHas.js +21 -0
  105. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackSet.js +44 -0
  106. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToPath.js +35 -0
  107. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toKey.js +29 -0
  108. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toSource.js +33 -0
  109. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/eq.js +44 -0
  110. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js +41 -0
  111. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/hasIn.js +43 -0
  112. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/identity.js +28 -0
  113. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArguments.js +45 -0
  114. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArray.js +33 -0
  115. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLike.js +42 -0
  116. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBuffer.js +46 -0
  117. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isFunction.js +46 -0
  118. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isLength.js +42 -0
  119. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js +38 -0
  120. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js +36 -0
  121. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js +38 -0
  122. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isTypedArray.js +38 -0
  123. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keys.js +47 -0
  124. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/memoize.js +81 -0
  125. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/orderBy.js +56 -0
  126. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/property.js +43 -0
  127. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubArray.js +30 -0
  128. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubFalse.js +25 -0
  129. package/dist/cjs/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toString.js +36 -0
  130. package/dist/cjs/{components → src/components}/AboutPlatform/AboutPlatform.js +50 -50
  131. package/dist/cjs/{components → src/components}/AdvantageSideNav/AdvantageSideNav.js +241 -212
  132. package/dist/cjs/{components → src/components}/AutoSuggest/AutoSuggest.js +101 -101
  133. package/dist/cjs/{components → src/components}/Avatar/Avatar.js +18 -18
  134. package/dist/cjs/{components → src/components}/CheckboxList/CheckboxList.js +34 -34
  135. package/dist/cjs/{components → src/components}/ComboBox/ComboBox.js +103 -103
  136. package/dist/cjs/{components → src/components}/ComboBoxMultiSelect/ComboBoxMultiSelect.js +32 -32
  137. package/dist/cjs/{components → src/components}/ComboBoxMultiSelect/MultiSelect.js +208 -208
  138. package/dist/cjs/{components → src/components}/ComposedModal/ComposedModal.js +80 -80
  139. package/dist/cjs/{components → src/components}/ConfirmModal/ConfirmModal.js +43 -43
  140. package/dist/cjs/{components → src/components}/Creatable/Creatable.js +137 -137
  141. package/dist/cjs/{components → src/components}/DataDrivenInput/DataDrivenInput.js +226 -226
  142. package/dist/cjs/{components → src/components}/DateInput/DateInput.js +35 -35
  143. package/dist/cjs/{components → src/components}/DecisionButtons/DecisionButtons.js +61 -61
  144. package/dist/cjs/{components → src/components}/DelayedRender/DelayedRender.js +17 -17
  145. package/dist/cjs/{components → src/components}/DynamicFormik/DynamicFormik.js +578 -578
  146. package/dist/cjs/{components → src/components}/Error403/Error403.js +13 -13
  147. package/dist/cjs/{components → src/components}/Error403/ForbiddenErrorBackground.js +113 -113
  148. package/dist/cjs/{components → src/components}/Error403/GraphicWrangler/GraphicWrangler.js +62 -62
  149. package/dist/cjs/{components → src/components}/Error404/Error404.js +13 -13
  150. package/dist/cjs/{components → src/components}/Error404/GraphicLoch/GraphicLoch.js +17 -17
  151. package/dist/cjs/{components → src/components}/Error404/NotFoundErrorBackground.js +129 -129
  152. package/dist/cjs/{components → src/components}/ErrorBoundary/ErrorBoundary.js +32 -32
  153. package/dist/cjs/{components → src/components}/ErrorDragon/ErrorDragon.js +13 -13
  154. package/dist/cjs/{components → src/components}/ErrorDragon/assets/ErrorGraphic.js +35 -35
  155. package/dist/cjs/{components → src/components}/ErrorFullPage/ErrorFullPage.js +10 -10
  156. package/dist/cjs/{components → src/components}/ErrorMessage/ErrorMessage.js +22 -22
  157. package/dist/cjs/{components → src/components}/ErrorPage/ErrorPage.js +11 -11
  158. package/dist/cjs/{components → src/components}/ErrorPageCore/ErrorPageCore.js +15 -15
  159. package/dist/cjs/{components → src/components}/ErrorPageCore/GenericErrorBackground.js +124 -124
  160. package/dist/cjs/{components → src/components}/FeatureHeader/FeatureHeader.js +29 -29
  161. package/dist/cjs/{components → src/components}/FeatureNavTab/FeatureNavTab.js +12 -12
  162. package/dist/cjs/{components → src/components}/FeatureNavTabs/FeatureNavTabs.js +12 -12
  163. package/dist/cjs/{components → src/components}/FeatureSideNav/FeatureSideNav.js +12 -12
  164. package/dist/cjs/{components → src/components}/FeatureSideNav/FeatureSideNavFooter.js +8 -8
  165. package/dist/cjs/{components → src/components}/FeatureSideNav/FeatureSideNavHeader.js +8 -8
  166. package/dist/cjs/{components → src/components}/FeatureSideNav/FeatureSideNavLinks.js +14 -14
  167. package/dist/cjs/{components → src/components}/FeatureSideNavLink/FeatureSideNavLink.js +12 -12
  168. package/dist/cjs/{components → src/components}/Feedback/Feedback.js +40 -40
  169. package/dist/cjs/{components → src/components}/FlowModal/FlowModal.js +141 -141
  170. package/dist/cjs/{components → src/components}/FlowModal/FlowModalForm.js +12 -12
  171. package/dist/cjs/{components → src/components}/Header/Header.js +182 -180
  172. package/dist/cjs/{components → src/components}/Header/HeaderAppSwitcher.js +94 -102
  173. package/dist/cjs/{components → src/components}/Header/HeaderMenu.js +7 -7
  174. package/dist/cjs/{components → src/components}/Header/HeaderMenuItem.js +52 -52
  175. package/dist/cjs/src/components/Header/HeaderTeamSwitcher.js +269 -0
  176. package/dist/cjs/{components → src/components}/Header/UserRequests.js +29 -29
  177. package/dist/cjs/{components → src/components}/ImageModal/ImageModal.js +17 -17
  178. package/dist/cjs/{components → src/components}/Loading/Loading.js +8 -8
  179. package/dist/cjs/{components → src/components}/MemberBar/MemberBar.js +20 -20
  180. package/dist/cjs/{components → src/components}/Modal/Modal.js +20 -20
  181. package/dist/cjs/{components → src/components}/ModalConfirmEdit/ModalConfirmArray.js +14 -14
  182. package/dist/cjs/{components → src/components}/ModalConfirmEdit/ModalConfirmDetails.js +11 -11
  183. package/dist/cjs/{components → src/components}/ModalConfirmEdit/ModalConfirmEdit.js +17 -17
  184. package/dist/cjs/{components → src/components}/ModalForm/ModalForm.js +9 -9
  185. package/dist/cjs/{components → src/components}/Notifications/NotificationsContainer.js +22 -22
  186. package/dist/cjs/{components → src/components}/Notifications/ToastNotification.js +21 -21
  187. package/dist/cjs/{components → src/components}/Notifications/notify.js +17 -17
  188. package/dist/cjs/{components → src/components}/PlatformBanner/PlatformBanner.js +8 -8
  189. package/dist/cjs/{components → src/components}/PlatformNotifications/PlatformNotification.js +17 -17
  190. package/dist/cjs/{components → src/components}/PlatformNotifications/PlatformNotificationsContainer.js +136 -136
  191. package/dist/cjs/{components → src/components}/Portal/Portal.js +14 -14
  192. package/dist/cjs/{components → src/components}/PrivacyRedirect/PrivacyRedirect.js +30 -30
  193. package/dist/cjs/{components → src/components}/PrivacyStatement/PrivacyStatement.js +90 -90
  194. package/dist/cjs/{components → src/components}/ProfileSettings/ProfileSettings.js +124 -124
  195. package/dist/cjs/{components → src/components}/ProtectedRoute/ProtectedRoute.js +13 -13
  196. package/dist/cjs/{components → src/components}/RadioGroup/RadioGroup.js +33 -33
  197. package/dist/cjs/{components → src/components}/RichTextArea/RichTextArea.js +142 -142
  198. package/dist/cjs/{components → src/components}/SignOut/SignOut.js +27 -27
  199. package/dist/cjs/{components → src/components}/SupportCenter/SupportCenter.js +65 -65
  200. package/dist/cjs/{components → src/components}/TextArea/TextArea.js +16 -16
  201. package/dist/cjs/{components → src/components}/TextInput/TextInput.js +13 -13
  202. package/dist/cjs/{components → src/components}/Toggle/Toggle.js +22 -22
  203. package/dist/cjs/{components → src/components}/TooltipHover/TooltipHover.js +39 -39
  204. package/dist/cjs/{components → src/components}/UIShell/UIShell.js +90 -89
  205. package/dist/cjs/{config → src/config}/servicesConfig.js +21 -21
  206. package/dist/cjs/{constants → src/constants}/DataDrivenInputTypes.js +74 -74
  207. package/dist/cjs/{constants → src/constants}/UserType.js +13 -13
  208. package/dist/cjs/{hooks → src/hooks}/useHeaderMenu.js +49 -49
  209. package/dist/cjs/{hooks → src/hooks}/usePortal.js +74 -74
  210. package/dist/cjs/{hooks → src/hooks}/useWindowSize.js +33 -33
  211. package/dist/cjs/{internal → src/internal}/ListBox/ListBox.js +41 -41
  212. package/dist/cjs/{internal → src/internal}/ListBox/ListBoxField.js +19 -19
  213. package/dist/cjs/{internal → src/internal}/ListBox/ListBoxMenu.js +19 -19
  214. package/dist/cjs/{internal → src/internal}/ListBox/ListBoxMenuIcon.js +31 -31
  215. package/dist/cjs/{internal → src/internal}/ListBox/ListBoxMenuItem.js +38 -38
  216. package/dist/cjs/{internal → src/internal}/ListBox/ListBoxSelection.js +64 -64
  217. package/dist/cjs/{internal → src/internal}/ListBox/index.js +10 -10
  218. package/dist/cjs/{internal → src/internal}/keyboard/keys.js +16 -16
  219. package/dist/cjs/{internal → src/internal}/keyboard/match.js +67 -67
  220. package/dist/cjs/{internal → src/internal}/settings.js +5 -5
  221. package/dist/cjs/{tools → src/tools}/accessibility.js +13 -13
  222. package/dist/cjs/{tools → src/tools}/createPropAdapter.js +44 -44
  223. package/dist/cjs/{tools → src/tools}/isUrl.js +39 -39
  224. package/dist/cjs/{tools → src/tools}/setupGetInstanceId.js +20 -20
  225. package/dist/cjs/{tools → src/tools}/useSetState.js +12 -12
  226. package/dist/cjs/{tools → src/tools}/yupAst/astGenerator.js +212 -212
  227. package/dist/cjs/{tools → src/tools}/yupAst/customValidators.js +17 -17
  228. package/dist/esm/_virtual/_commonjsHelpers.js +3 -0
  229. package/dist/esm/_virtual/_nodeUtil.js +7 -0
  230. package/dist/esm/_virtual/isBuffer.js +7 -0
  231. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_DataView.js +12 -0
  232. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Hash.js +40 -0
  233. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_ListCache.js +40 -0
  234. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Map.js +12 -0
  235. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_MapCache.js +40 -0
  236. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Promise.js +12 -0
  237. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Set.js +12 -0
  238. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_SetCache.js +33 -0
  239. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Stack.js +36 -0
  240. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js +10 -0
  241. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Uint8Array.js +10 -0
  242. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_WeakMap.js +12 -0
  243. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayFilter.js +28 -0
  244. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayLikeKeys.js +59 -0
  245. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayMap.js +24 -0
  246. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayPush.js +23 -0
  247. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arraySome.js +26 -0
  248. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assocIndexOf.js +25 -0
  249. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseEach.js +19 -0
  250. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFor.js +20 -0
  251. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseForOwn.js +21 -0
  252. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGet.js +29 -0
  253. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetAllKeys.js +25 -0
  254. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js +34 -0
  255. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHasIn.js +16 -0
  256. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsArguments.js +23 -0
  257. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqual.js +33 -0
  258. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqualDeep.js +95 -0
  259. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMatch.js +67 -0
  260. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNative.js +54 -0
  261. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsTypedArray.js +66 -0
  262. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIteratee.js +39 -0
  263. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeys.js +35 -0
  264. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMap.js +27 -0
  265. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatches.js +28 -0
  266. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatchesProperty.js +43 -0
  267. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseOrderBy.js +61 -0
  268. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseProperty.js +17 -0
  269. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyDeep.js +20 -0
  270. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSortBy.js +24 -0
  271. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTimes.js +23 -0
  272. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseToString.js +44 -0
  273. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnary.js +17 -0
  274. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cacheHas.js +16 -0
  275. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castPath.js +28 -0
  276. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_compareAscending.js +45 -0
  277. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_compareMultiple.js +48 -0
  278. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_coreJsData.js +10 -0
  279. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseEach.js +36 -0
  280. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseFor.js +28 -0
  281. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalArrays.js +90 -0
  282. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalByTag.js +121 -0
  283. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalObjects.js +94 -0
  284. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js +9 -0
  285. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeys.js +22 -0
  286. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMapData.js +22 -0
  287. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMatchData.js +29 -0
  288. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getNative.js +22 -0
  289. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js +50 -0
  290. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbols.js +35 -0
  291. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getTag.js +68 -0
  292. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getValue.js +16 -0
  293. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasPath.js +48 -0
  294. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashClear.js +19 -0
  295. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashDelete.js +20 -0
  296. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashGet.js +34 -0
  297. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashHas.js +27 -0
  298. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashSet.js +27 -0
  299. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIndex.js +28 -0
  300. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKey.js +34 -0
  301. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKeyable.js +18 -0
  302. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isMasked.js +24 -0
  303. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isPrototype.js +21 -0
  304. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isStrictComparable.js +19 -0
  305. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheClear.js +16 -0
  306. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheDelete.js +39 -0
  307. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheGet.js +23 -0
  308. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheHas.js +20 -0
  309. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheSet.js +30 -0
  310. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheClear.js +27 -0
  311. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheDelete.js +22 -0
  312. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheGet.js +20 -0
  313. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheHas.js +20 -0
  314. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheSet.js +26 -0
  315. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapToArray.js +21 -0
  316. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_matchesStrictComparable.js +23 -0
  317. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_memoizeCapped.js +30 -0
  318. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeCreate.js +10 -0
  319. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeys.js +10 -0
  320. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nodeUtil.js +35 -0
  321. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js +25 -0
  322. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overArg.js +18 -0
  323. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js +13 -0
  324. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheAdd.js +22 -0
  325. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheHas.js +17 -0
  326. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToArray.js +21 -0
  327. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackClear.js +19 -0
  328. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackDelete.js +21 -0
  329. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackGet.js +17 -0
  330. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackHas.js +17 -0
  331. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackSet.js +40 -0
  332. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToPath.js +31 -0
  333. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toKey.js +25 -0
  334. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toSource.js +29 -0
  335. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/eq.js +40 -0
  336. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js +37 -0
  337. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/hasIn.js +39 -0
  338. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/identity.js +24 -0
  339. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArguments.js +41 -0
  340. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArray.js +29 -0
  341. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLike.js +38 -0
  342. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBuffer.js +44 -0
  343. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isFunction.js +42 -0
  344. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isLength.js +38 -0
  345. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js +34 -0
  346. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js +32 -0
  347. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js +34 -0
  348. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isTypedArray.js +34 -0
  349. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keys.js +43 -0
  350. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/memoize.js +77 -0
  351. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/orderBy.js +52 -0
  352. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/property.js +39 -0
  353. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubArray.js +26 -0
  354. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubFalse.js +21 -0
  355. package/dist/esm/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toString.js +32 -0
  356. package/dist/esm/{components → src/components}/AboutPlatform/AboutPlatform.js +50 -50
  357. package/dist/esm/{components → src/components}/AdvantageSideNav/AdvantageSideNav.js +242 -213
  358. package/dist/esm/{components → src/components}/AutoSuggest/AutoSuggest.js +101 -101
  359. package/dist/esm/{components → src/components}/Avatar/Avatar.js +18 -18
  360. package/dist/esm/{components → src/components}/CheckboxList/CheckboxList.js +34 -34
  361. package/dist/esm/{components → src/components}/ComboBox/ComboBox.js +103 -103
  362. package/dist/esm/{components → src/components}/ComboBoxMultiSelect/ComboBoxMultiSelect.js +32 -32
  363. package/dist/esm/{components → src/components}/ComboBoxMultiSelect/MultiSelect.js +208 -208
  364. package/dist/esm/{components → src/components}/ComposedModal/ComposedModal.js +80 -80
  365. package/dist/esm/{components → src/components}/ConfirmModal/ConfirmModal.js +43 -43
  366. package/dist/esm/{components → src/components}/Creatable/Creatable.js +137 -137
  367. package/dist/esm/{components → src/components}/DataDrivenInput/DataDrivenInput.js +226 -226
  368. package/dist/esm/{components → src/components}/DateInput/DateInput.js +35 -35
  369. package/dist/esm/{components → src/components}/DecisionButtons/DecisionButtons.js +61 -61
  370. package/dist/esm/{components → src/components}/DelayedRender/DelayedRender.js +17 -17
  371. package/dist/esm/{components → src/components}/DynamicFormik/DynamicFormik.js +578 -578
  372. package/dist/esm/{components → src/components}/Error403/Error403.js +13 -13
  373. package/dist/esm/{components → src/components}/Error403/ForbiddenErrorBackground.js +113 -113
  374. package/dist/esm/{components → src/components}/Error403/GraphicWrangler/GraphicWrangler.js +62 -62
  375. package/dist/esm/{components → src/components}/Error404/Error404.js +13 -13
  376. package/dist/esm/{components → src/components}/Error404/GraphicLoch/GraphicLoch.js +17 -17
  377. package/dist/esm/{components → src/components}/Error404/NotFoundErrorBackground.js +129 -129
  378. package/dist/esm/{components → src/components}/ErrorBoundary/ErrorBoundary.js +32 -32
  379. package/dist/esm/{components → src/components}/ErrorDragon/ErrorDragon.js +13 -13
  380. package/dist/esm/{components → src/components}/ErrorDragon/assets/ErrorGraphic.js +35 -35
  381. package/dist/esm/{components → src/components}/ErrorFullPage/ErrorFullPage.js +10 -10
  382. package/dist/esm/{components → src/components}/ErrorMessage/ErrorMessage.js +22 -22
  383. package/dist/esm/{components → src/components}/ErrorPage/ErrorPage.js +11 -11
  384. package/dist/esm/{components → src/components}/ErrorPageCore/ErrorPageCore.js +15 -15
  385. package/dist/esm/{components → src/components}/ErrorPageCore/GenericErrorBackground.js +124 -124
  386. package/dist/esm/{components → src/components}/FeatureHeader/FeatureHeader.js +29 -29
  387. package/dist/esm/{components → src/components}/FeatureNavTab/FeatureNavTab.js +12 -12
  388. package/dist/esm/{components → src/components}/FeatureNavTabs/FeatureNavTabs.js +12 -12
  389. package/dist/esm/{components → src/components}/FeatureSideNav/FeatureSideNav.js +12 -12
  390. package/dist/esm/{components → src/components}/FeatureSideNav/FeatureSideNavFooter.js +8 -8
  391. package/dist/esm/{components → src/components}/FeatureSideNav/FeatureSideNavHeader.js +8 -8
  392. package/dist/esm/{components → src/components}/FeatureSideNav/FeatureSideNavLinks.js +14 -14
  393. package/dist/esm/{components → src/components}/FeatureSideNavLink/FeatureSideNavLink.js +12 -12
  394. package/dist/esm/{components → src/components}/Feedback/Feedback.js +40 -40
  395. package/dist/esm/{components → src/components}/FlowModal/FlowModal.js +141 -141
  396. package/dist/esm/{components → src/components}/FlowModal/FlowModalForm.js +12 -12
  397. package/dist/esm/{components → src/components}/Header/Header.js +183 -181
  398. package/dist/esm/{components → src/components}/Header/HeaderAppSwitcher.js +94 -102
  399. package/dist/esm/{components → src/components}/Header/HeaderMenu.js +7 -7
  400. package/dist/esm/{components → src/components}/Header/HeaderMenuItem.js +52 -52
  401. package/dist/esm/src/components/Header/HeaderTeamSwitcher.js +261 -0
  402. package/dist/esm/{components → src/components}/Header/UserRequests.js +29 -29
  403. package/dist/esm/{components → src/components}/ImageModal/ImageModal.js +17 -17
  404. package/dist/esm/{components → src/components}/Loading/Loading.js +8 -8
  405. package/dist/esm/{components → src/components}/MemberBar/MemberBar.js +20 -20
  406. package/dist/esm/{components → src/components}/Modal/Modal.js +20 -20
  407. package/dist/esm/{components → src/components}/ModalConfirmEdit/ModalConfirmArray.js +14 -14
  408. package/dist/esm/{components → src/components}/ModalConfirmEdit/ModalConfirmDetails.js +11 -11
  409. package/dist/esm/{components → src/components}/ModalConfirmEdit/ModalConfirmEdit.js +17 -17
  410. package/dist/esm/{components → src/components}/ModalForm/ModalForm.js +9 -9
  411. package/dist/esm/{components → src/components}/Notifications/NotificationsContainer.js +22 -22
  412. package/dist/esm/{components → src/components}/Notifications/ToastNotification.js +21 -21
  413. package/dist/esm/{components → src/components}/Notifications/notify.js +17 -17
  414. package/dist/esm/{components → src/components}/PlatformBanner/PlatformBanner.js +8 -8
  415. package/dist/esm/{components → src/components}/PlatformNotifications/PlatformNotification.js +17 -17
  416. package/dist/esm/{components → src/components}/PlatformNotifications/PlatformNotificationsContainer.js +136 -136
  417. package/dist/esm/{components → src/components}/Portal/Portal.js +14 -14
  418. package/dist/esm/{components → src/components}/PrivacyRedirect/PrivacyRedirect.js +30 -30
  419. package/dist/esm/{components → src/components}/PrivacyStatement/PrivacyStatement.js +90 -90
  420. package/dist/esm/{components → src/components}/ProfileSettings/ProfileSettings.js +124 -124
  421. package/dist/esm/{components → src/components}/ProtectedRoute/ProtectedRoute.js +13 -13
  422. package/dist/esm/{components → src/components}/RadioGroup/RadioGroup.js +33 -33
  423. package/dist/esm/{components → src/components}/RichTextArea/RichTextArea.js +142 -142
  424. package/dist/esm/{components → src/components}/SignOut/SignOut.js +27 -27
  425. package/dist/esm/{components → src/components}/SupportCenter/SupportCenter.js +65 -65
  426. package/dist/esm/{components → src/components}/TextArea/TextArea.js +16 -16
  427. package/dist/esm/{components → src/components}/TextInput/TextInput.js +13 -13
  428. package/dist/esm/{components → src/components}/Toggle/Toggle.js +22 -22
  429. package/dist/esm/{components → src/components}/TooltipHover/TooltipHover.js +39 -39
  430. package/dist/esm/{components → src/components}/UIShell/UIShell.js +90 -89
  431. package/dist/esm/{config → src/config}/servicesConfig.js +21 -21
  432. package/dist/esm/{constants → src/constants}/DataDrivenInputTypes.js +74 -74
  433. package/dist/esm/{constants → src/constants}/UserType.js +13 -13
  434. package/dist/esm/{hooks → src/hooks}/useHeaderMenu.js +49 -49
  435. package/dist/esm/{hooks → src/hooks}/usePortal.js +74 -74
  436. package/dist/esm/{hooks → src/hooks}/useWindowSize.js +33 -33
  437. package/dist/esm/{internal → src/internal}/ListBox/ListBox.js +41 -41
  438. package/dist/esm/{internal → src/internal}/ListBox/ListBoxField.js +19 -19
  439. package/dist/esm/{internal → src/internal}/ListBox/ListBoxMenu.js +19 -19
  440. package/dist/esm/{internal → src/internal}/ListBox/ListBoxMenuIcon.js +31 -31
  441. package/dist/esm/{internal → src/internal}/ListBox/ListBoxMenuItem.js +38 -38
  442. package/dist/esm/{internal → src/internal}/ListBox/ListBoxSelection.js +64 -64
  443. package/dist/esm/{internal → src/internal}/ListBox/index.js +10 -10
  444. package/dist/esm/{internal → src/internal}/keyboard/keys.js +16 -16
  445. package/dist/esm/{internal → src/internal}/keyboard/match.js +67 -67
  446. package/dist/esm/{internal → src/internal}/settings.js +5 -5
  447. package/dist/esm/{tools → src/tools}/accessibility.js +13 -13
  448. package/dist/esm/{tools → src/tools}/createPropAdapter.js +44 -44
  449. package/dist/esm/{tools → src/tools}/isUrl.js +39 -39
  450. package/dist/esm/{tools → src/tools}/setupGetInstanceId.js +20 -20
  451. package/dist/esm/{tools → src/tools}/useSetState.js +12 -12
  452. package/dist/esm/{tools → src/tools}/yupAst/astGenerator.js +212 -212
  453. package/dist/esm/{tools → src/tools}/yupAst/customValidators.js +17 -17
  454. package/dist/types/index.d.ts +1321 -1307
  455. package/package.json +167 -167
  456. package/scss/components/AboutPlatform/_aboutPlatform.scss +139 -139
  457. package/scss/components/AdvantageSideNav/_advantageSideNav.scss +261 -258
  458. package/scss/components/AutoSuggest/_autoSuggest.scss +62 -62
  459. package/scss/components/Avatar/_avatar.scss +32 -32
  460. package/scss/components/CheckboxList/_checkboxList.scss +26 -26
  461. package/scss/components/ComboBox/_combobox.scss +23 -23
  462. package/scss/components/ComboBoxMultiSelect/_comboBoxMultiSelect.scss +53 -53
  463. package/scss/components/ConfirmModal/_confirmModal.scss +12 -12
  464. package/scss/components/Creatable/_creatable.scss +48 -48
  465. package/scss/components/DateInput/_dateInput.scss +36 -36
  466. package/scss/components/DecisionButtons/_decisionButtons.scss +132 -132
  467. package/scss/components/DynamicFormik/_dynamicFormik.scss +17 -17
  468. package/scss/components/ErrorBoundary/_errorBoundary.scss +12 -12
  469. package/scss/components/ErrorDragon/_errorDragon.scss +55 -55
  470. package/scss/components/ErrorMessage/_errorMessage.scss +43 -43
  471. package/scss/components/ErrorPage/_errorPage.scss +66 -66
  472. package/scss/components/ErrorPageCore/_errorPageCore.scss +73 -73
  473. package/scss/components/FeatureHeader/_featureHeader.scss +67 -67
  474. package/scss/components/FeatureNavTab/_featureNavTab.scss +27 -27
  475. package/scss/components/FeatureSideNav/_featureSideNav.scss +76 -76
  476. package/scss/components/FeatureSideNavLink/_featureSideNavLink.scss +49 -49
  477. package/scss/components/Feedback/_feedback.scss +46 -46
  478. package/scss/components/Header/_header.scss +179 -179
  479. package/scss/components/Header/_headerAppSwitcher.scss +117 -117
  480. package/scss/components/Header/_headerMenu.scss +30 -30
  481. package/scss/components/Header/_headerMenuItem.scss +65 -65
  482. package/scss/components/Header/_headerTeamSwitcher.scss +165 -0
  483. package/scss/components/Header/_userRequests.scss +36 -36
  484. package/scss/components/ImageModal/_imageModal.scss +51 -51
  485. package/scss/components/MemberBar/_memberBar.scss +99 -99
  486. package/scss/components/Modal/_modal.scss +163 -163
  487. package/scss/components/ModalConfirmEdit/_modalConfirmEdit.scss +113 -113
  488. package/scss/components/Notifications/_notifications.scss +57 -57
  489. package/scss/components/PlatformBanner/_platformBanner.scss +30 -30
  490. package/scss/components/PlatformNotifications/_platformNotifications.scss +230 -230
  491. package/scss/components/PrivacyRedirect/_privacyRedirect.scss +43 -43
  492. package/scss/components/PrivacyStatement/_privacyStatement.scss +137 -137
  493. package/scss/components/ProfileSettings/_profileSettings.scss +117 -117
  494. package/scss/components/ProtectedRoute/_protectedRoute.scss +32 -32
  495. package/scss/components/RadioGroup/_radioGroup.scss +46 -46
  496. package/scss/components/RichTextArea/_richTextArea.scss +82 -82
  497. package/scss/components/SignOut/_signOut.scss +51 -51
  498. package/scss/components/SupportCenter/_supportCenter.scss +16 -16
  499. package/scss/components/TextArea/_textArea.scss +19 -19
  500. package/scss/components/TextInput/_textInput.scss +26 -26
  501. package/scss/components/Toggle/_toggle.scss +80 -80
  502. package/scss/components/TooltipHover/_tooltip.scss +48 -48
  503. package/scss/global/_config.scss +14 -14
  504. package/scss/global/_tippy.scss +49 -49
  505. package/scss/global/index.scss +401 -402
  506. package/scss/global/themes/_boomerang.scss +184 -184
  507. package/scss/global/themes/_default.scss +79 -79
  508. package/scss/global/themes/_shell-tokens.scss +42 -42
  509. package/scss/global/utils/_animations.scss +15 -15
  510. package/scss/global/utils/_mixins.scss +67 -67
  511. package/scss/global/utils/index.scss +10 -10
  512. /package/dist/cjs/{index.js → src/index.js} +0 -0
  513. /package/dist/esm/{index.js → src/index.js} +0 -0
@@ -9,584 +9,584 @@ import { transformAll } from '../../tools/yupAst/astGenerator.js';
9
9
  import { prefix } from '../../internal/settings.js';
10
10
  import { TEXT_INPUT_TYPES, TEXT_AREA_TYPES, TEXT_EDITOR_TYPES, ARRAY_INPUT_TYPES, CHECKBOX_TYPES, INPUT_GROUPS, CREATABLE_TYPES, DATE_TYPES, MULTI_SELECT_TYPES, RADIO_TYPES, SELECT_TYPES, BOOLEAN_TYPES, INPUT_TYPES_ARRAY } from '../../constants/DataDrivenInputTypes.js';
11
11
 
12
- /*
13
- IBM Confidential
14
- 694970X, 69497O0
15
- © Copyright IBM Corp. 2022, 2024
16
- */
17
- /**
18
- *
19
- * @param {string} value - value to test for valid property syntax
20
- */
21
- function isPropertySyntaxValid({ value, customPropertySyntaxPattern, propsSyntaxFound }) {
22
- // Look property pattern and capture group for the property itself
23
- let match = value.match(customPropertySyntaxPattern);
24
- // if the first matched group is truthy, then a property has been entered
25
- // Empty properties are not valid
26
- if (Array.isArray(match) && match.length === propsSyntaxFound) {
27
- return true;
28
- }
29
- else {
30
- return false;
31
- }
32
- }
33
- function validateUrlWithProperties(customPropertySyntaxPattern, customPropertyStartsWithPattern) {
34
- return function () {
35
- return this.transform(function (value, originalValue) {
36
- const propsSyntaxFound = value.match(customPropertyStartsWithPattern)?.length ?? 0;
37
- if ((isUrl(value) && !Boolean(propsSyntaxFound)) ||
38
- isPropertySyntaxValid({ value, customPropertySyntaxPattern, propsSyntaxFound })) {
39
- return value;
40
- }
41
- return false;
42
- });
43
- };
44
- }
45
- function validateEmailWithProperties(customPropertySyntaxPattern, customPropertyStartsWithPattern) {
46
- return function () {
47
- return this.transform(function (value, originalValue) {
48
- // Simple pattern for emails
49
- const isValidEmail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
50
- const propsSyntaxFound = value.match(customPropertyStartsWithPattern)?.length ?? 0;
51
- if ((isValidEmail && !Boolean(propsSyntaxFound)) ||
52
- isPropertySyntaxValid({ value, customPropertySyntaxPattern, propsSyntaxFound })) {
53
- return value;
54
- }
55
- return false;
56
- });
57
- };
58
- }
59
- function registerCustomPropertyMethods(customPropertySyntaxPattern, customPropertyStartsWithPattern) {
60
- const validateUrl = validateUrlWithProperties(customPropertySyntaxPattern, customPropertyStartsWithPattern);
61
- const validateEmail = validateEmailWithProperties(customPropertySyntaxPattern, customPropertyStartsWithPattern);
62
- yup.addMethod(yup.string, "urlWithCustomProperty", validateUrl);
63
- yup.addMethod(yup.string, "emailWithCustomProperty", validateEmail);
64
- }
65
- function getGoverningSelectKeysMap({ governingKey, governingJsonKey, governingKeys, inputs, }) {
66
- if (Boolean(governingKey) && governingKey !== governingJsonKey)
67
- governingKeys.unshift(governingKey);
68
- const governingInput = inputs.find((input) => input.key === governingKey) ?? {};
69
- /** Continue recursion if the governing select has a governingKey */
70
- if (Boolean(governingInput.governingKey)) {
71
- return getGoverningSelectKeysMap({
72
- governingKey: governingInput.governingKey,
73
- governingJsonKey,
74
- governingKeys,
75
- inputs,
76
- });
77
- }
78
- else {
79
- return governingKeys;
80
- }
81
- }
82
- function getGoverningSelectDeepOptions({ formikValues, governingInputJsonObject, governingKeys, input, inputs, }) {
83
- const nextKey = governingKeys.shift();
84
- if (nextKey) {
85
- const nextKeyInput = inputs.find((input) => input.key === nextKey) ?? {};
86
- const nextInputJsonObject = governingInputJsonObject[nextKey].find((jsonElement) => jsonElement[nextKeyInput.jsonKey] === formikValues[nextKey]);
87
- return getGoverningSelectDeepOptions({
88
- formikValues,
89
- governingInputJsonObject: nextInputJsonObject,
90
- governingKeys,
91
- input,
92
- inputs,
93
- });
94
- }
95
- else {
96
- return governingInputJsonObject[input.key].map((option) => ({
97
- label: option[input.jsonLabel],
98
- value: option[input.jsonKey],
99
- }));
100
- }
101
- }
102
- async function handleGoverningSelectChange({ formikProps, input, inputs, isInputBeingChanged, selectedItem, }) {
103
- const { key, value } = input;
104
- const inputsGovernedByCurrentOne = inputs.filter((formikInput) => formikInput.governingKey === key);
105
- if (selectedItem?.value !== value) {
106
- /** Erase value of governed inputs */
107
- if (inputsGovernedByCurrentOne.length) {
108
- await inputsGovernedByCurrentOne.forEach(async (input) => {
109
- await handleGoverningSelectChange({ formikProps, input, inputs, isInputBeingChanged: false, selectedItem: null });
110
- });
111
- }
112
- // only the top governing select should display warnings if changed and reset touched status for governed ones
113
- await formikProps.setFieldTouched(`['${key}']`, isInputBeingChanged);
114
- formikProps.setFieldValue(`['${key}']`, selectedItem ? selectedItem.value : "");
115
- formikProps.setFieldValue(`['${key}-keyLabel']`, selectedItem ? selectedItem.label : "");
116
- }
117
- }
118
- function generateYupAst({ inputs, allowCustomPropertySyntax, customPropertySyntaxPattern, customPropertyStartsWithPattern, useCSVforArrays, }) {
119
- if (allowCustomPropertySyntax) {
120
- registerCustomPropertyMethods(customPropertySyntaxPattern, customPropertyStartsWithPattern);
121
- }
122
- let yupShape = {};
123
- inputs.forEach((input) => {
124
- let yupValidationArray = [];
125
- const inputType = input.type ?? "";
126
- if (!INPUT_TYPES_ARRAY.includes(inputType)) {
127
- return;
128
- }
129
- if (inputType === DATE_TYPES.DATE) {
130
- yupValidationArray.push(["yup.date", "Enter a valid date"]);
131
- }
132
- if (inputType === TEXT_AREA_TYPES.TEXT_AREA ||
133
- inputType === TEXT_INPUT_TYPES.EMAIL ||
134
- inputType === TEXT_INPUT_TYPES.PASSWORD ||
135
- inputType === TEXT_INPUT_TYPES.SECURED ||
136
- inputType === TEXT_INPUT_TYPES.TEL ||
137
- inputType === TEXT_INPUT_TYPES.TEXT ||
138
- inputType === TEXT_INPUT_TYPES.TIME ||
139
- inputType === TEXT_INPUT_TYPES.URL ||
140
- inputType === RADIO_TYPES.RADIO ||
141
- inputType === SELECT_TYPES.SELECT ||
142
- inputType?.startsWith(TEXT_EDITOR_TYPES.TEXT_EDITOR)) {
143
- yupValidationArray.push(["yup.string"]);
144
- // if (
145
- // allowCustomPropertySyntax &&
146
- // inputType !== TEXT_INPUT_TYPES.EMAIL &&
147
- // inputType !== TEXT_INPUT_TYPES.URL &&
148
- // inputType !== TEXT_INPUT_TYPES.SECURED &&
149
- // inputType !== TEXT_INPUT_TYPES.PASSWORD
150
- // )
151
- // yupValidationArray.push(
152
- // ['yup.customProperty'],
153
- // ['yup.typeError', 'Enter valid syntax for a property']
154
- // );
155
- // Create a customValidator for each input b/c regex deserialization
156
- // does not work currently
157
- const { pattern } = input;
158
- if (typeof pattern === "string") {
159
- addCustomValidator(`${input.key}-matches`, yup.string().test(`${input.key}-matches`, input.patternInvalidText || `Enter a value that matches pattern: ${input.pattern}`, (value) => {
160
- if (!input.required && !Boolean(value)) {
161
- return true;
162
- }
163
- else
164
- return new RegExp(pattern).test(value);
165
- }));
166
- yupValidationArray.push([`${input.key}-matches`]);
167
- }
168
- //TODO: figure out how to update serialization in yup-ast so we can use the native "matches" validator
169
- // if (input.pattern) {
170
- // yupValidationArray.push([
171
- // 'yup.matches',
172
- // new RegExp(input.pattern),
173
- // {
174
- // message: `Enter a value that matches pattern ${input.pattern}`,
175
- // excludeEmptyString: true,
176
- // },
177
- // ]);
178
- // }
179
- if (inputType === TEXT_INPUT_TYPES.EMAIL) {
180
- if (allowCustomPropertySyntax)
181
- yupValidationArray.push(["yup.emailWithCustomProperty"], ["yup.typeError", "Enter a valid email"]);
182
- else
183
- yupValidationArray.push(["yup.email", "Enter a valid email"]);
184
- }
185
- if (inputType === TEXT_INPUT_TYPES.URL) {
186
- if (allowCustomPropertySyntax)
187
- yupValidationArray.push(["yup.urlWithCustomProperty"], ["yup.typeError", "Enter a valid URL"]);
188
- else
189
- yupValidationArray.push(["yup.url", "Enter a valid URL"]);
190
- }
191
- }
192
- if (inputType === TEXT_INPUT_TYPES.NUMBER) {
193
- yupValidationArray.push(["yup.number", "Enter a number"]);
194
- }
195
- if (inputType === BOOLEAN_TYPES.BOOLEAN) {
196
- yupValidationArray.push(["yup.boolean"]);
197
- }
198
- if (inputType === MULTI_SELECT_TYPES.MULTI_SELECT ||
199
- inputType === CREATABLE_TYPES.CREATABLE_SINGLE ||
200
- inputType === CREATABLE_TYPES.CREATABLE_SINGLE_NON_DELETABLE ||
201
- inputType === CREATABLE_TYPES.CREATABLE_PAIR ||
202
- inputType === CREATABLE_TYPES.CREATABLE_PAIR_NON_DELETABLE ||
203
- inputType === CHECKBOX_TYPES.CHECKBOX) {
204
- if (useCSVforArrays) {
205
- yupValidationArray.push(["yup.string"]);
206
- const { pattern } = input;
207
- if (pattern === typeof "string") {
208
- addCustomValidator(`${input.key}-matches`, yup.string().test(`${input.key}-matches`, input.patternInvalidText || `Enter values that matches pattern: ${input.pattern}`, (csv) => {
209
- const regexTester = new RegExp(pattern);
210
- return csv?.split(",").every((val) => regexTester.test(val)) ?? false;
211
- }));
212
- yupValidationArray.push([`${input.key}-matches`]);
213
- }
214
- }
215
- else {
216
- yupValidationArray.push(["yup.array"]);
217
- const { pattern } = input;
218
- if (typeof pattern === "string") {
219
- addCustomValidator(`${input.key}-matches`, yup.array().test(`${input.key}-matches`, input.patternInvalidText || `Enter values that matches pattern: ${pattern}`, (values) => {
220
- const regexTester = new RegExp(pattern);
221
- return values?.every((val) => regexTester.test(val)) ?? false;
222
- }));
223
- yupValidationArray.push([`${input.key}-matches`]);
224
- }
225
- }
226
- }
227
- if (Object.values(TEXT_INPUT_TYPES).includes(inputType) ||
228
- inputType === TEXT_AREA_TYPES.TEXT_AREA ||
229
- inputType === TEXT_EDITOR_TYPES.TEXT_EDITOR) {
230
- if (inputType === TEXT_INPUT_TYPES.NUMBER) {
231
- if (input.min) {
232
- yupValidationArray.push(["yup.min", input.min, `Enter value greater than ${input.min}`]);
233
- }
234
- if (input.max) {
235
- yupValidationArray.push(["yup.max", input.max, `Enter value less than ${input.max}`]);
236
- }
237
- }
238
- else {
239
- if (input.min) {
240
- yupValidationArray.push(["yup.min", input.min, `Enter at least ${input.min} characters`]);
241
- }
242
- if (input.max) {
243
- yupValidationArray.push(["yup.max", input.max, `Enter at most ${input.max} characters`]);
244
- }
245
- }
246
- }
247
- if (Array.isArray(input.invalidValues)) {
248
- yupValidationArray.push(["yup.notOneOf", input.invalidValues, `Enter an allowed value`]);
249
- }
250
- if (input.required) {
251
- if (inputType === BOOLEAN_TYPES.BOOLEAN) {
252
- yupValidationArray.push(["yup.oneOf", [true], "Toggle must be checked"]);
253
- }
254
- else {
255
- yupValidationArray.push(["yup.required", `Enter a value for ${input.label}`]);
256
- }
257
- }
258
- if (yupValidationArray.length > 0) {
259
- yupShape[input.key] = yupValidationArray;
260
- }
261
- });
262
- return [["yup.object"], ["yup.shape", yupShape]];
263
- }
264
- function generateYupSchema({ inputs, allowCustomPropertySyntax, customPropertySyntaxPattern, customPropertyStartsWithPattern, useCSVforArrays, validationSchemaExtension, }) {
265
- let validationSchema = transformAll(generateYupAst({
266
- inputs,
267
- allowCustomPropertySyntax,
268
- customPropertySyntaxPattern,
269
- customPropertyStartsWithPattern,
270
- useCSVforArrays,
271
- }));
272
- if (validationSchemaExtension) {
273
- validationSchema = validationSchema.concat(validationSchemaExtension);
274
- }
275
- return validationSchema;
276
- }
277
- /**
278
- * Get initial values of each input in array of inputs
279
- */
280
- const determineInitialValues = (inputs, useCSVforArrays) => {
281
- const values = {};
282
- inputs.forEach((input) => {
283
- let value = "";
284
- let valueToCheck = input.value || input.defaultValue;
285
- const isArrayInput = !useCSVforArrays && Object.values(ARRAY_INPUT_TYPES).includes(input.type);
286
- if (isArrayInput) {
287
- valueToCheck = input.value || input.defaultValue || input.values || input.defaultValues;
288
- }
289
- if (valueToCheck) {
290
- switch (valueToCheck) {
291
- case "false": {
292
- value = false;
293
- break;
294
- }
295
- case "true": {
296
- value = true;
297
- break;
298
- }
299
- default: {
300
- value = valueToCheck;
301
- }
302
- }
303
- }
304
- values[input.key] = value;
305
- });
306
- return values;
307
- };
308
- /**
309
- * Check if an input X needs to be conditionally rendered
310
- * If it does, then find an input Y in the same section that has key equal to the input X's requiredForKey
311
- * If input Y has a value that is present in input X's requiredValueOf array, then render X
312
- */
313
- const conditionallyRenderInput = (input, values) => {
314
- if (!input.conditionallyRender) {
315
- return true;
316
- }
317
- if (input.requiredForKey && input.requiredValueOf) {
318
- /**
319
- * Check which input in this section has the key equal to requiredForKey and get its value
320
- */
321
- const requiredForKeyInputValue = values[input.requiredForKey];
322
- const valuesInputIsRenderedFor = input.requiredValueOf;
323
- /**
324
- * If the value of the input this input is required for is an array loop through those values to find a matching one
325
- * by going through all of configured values for the input - the "requiredValueOf" of property
326
- * Check for the value and the string of the value bc of how the services work. "true" and "false" are strings not boolean values
327
- */
328
- if (Array.isArray(requiredForKeyInputValue)) {
329
- for (let requiredForValue of valuesInputIsRenderedFor) {
330
- for (let singleRequiredForKeyInputValue of requiredForKeyInputValue) {
331
- if (requiredForValue === singleRequiredForKeyInputValue ||
332
- requiredForValue === String(singleRequiredForKeyInputValue)) {
333
- return true;
334
- }
335
- }
336
- }
337
- }
338
- else {
339
- for (let requiredForValue of valuesInputIsRenderedFor) {
340
- if (requiredForValue === requiredForKeyInputValue || requiredForValue === String(requiredForKeyInputValue)) {
341
- return true;
342
- }
343
- }
344
- }
345
- }
346
- else {
347
- return false;
348
- }
349
- };
350
- /**
351
- * Map of the input groups to specifc props to be passed
352
- */
353
- const TYPE_PROPS = {
354
- [INPUT_GROUPS.CHECKBOX]: (formikProps, { key }, inputs, useCSVforArrays) => ({
355
- onChange: (value, id, event, selectedItems) => {
356
- if (useCSVforArrays) {
357
- formikProps.setFieldValue(`['${key}']`, selectedItems?.join() ?? "");
358
- }
359
- else {
360
- formikProps.setFieldValue(`['${key}']`, selectedItems);
361
- }
362
- },
363
- }),
364
- [INPUT_GROUPS.CREATABLE]: (formikProps, { key }, inputs, useCSVforArrays) => ({
365
- onChange: (createdItems) => {
366
- formikProps.setFieldTouched(`['${key}']`, true);
367
- if (useCSVforArrays) {
368
- formikProps.setFieldValue(`['${key}']`, createdItems?.join() ?? "");
369
- }
370
- else {
371
- formikProps.setFieldValue(`['${key}']`, createdItems);
372
- }
373
- },
374
- onInputBlur: () => formikProps.setFieldTouched(`['${key}']`, true, true),
375
- }),
376
- [INPUT_GROUPS.DATE]: (formikProps, { key, type }) => type === DATE_TYPES.DATE_RANGE
377
- ? {
378
- onChange: (dateArray) => formikProps.setFieldValue(`['${key}']`, dateArray?.map((date) => date.toISOString())),
379
- }
380
- : {
381
- onChange: formikProps.handleChange,
382
- onCalendarChange: (dateArray) => formikProps.setFieldValue(`['${key}']`, dateArray[0]?.toISOString()),
383
- },
384
- [INPUT_GROUPS.MULTI_SELECT]: (formikProps, { key }, inputs, useCSVforArrays) => ({
385
- onChange: async ({ selectedItems }) => {
386
- await formikProps.setFieldTouched(`['${key}']`, true);
387
- if (useCSVforArrays) {
388
- formikProps.setFieldValue(`['${key}']`, selectedItems ? selectedItems.map((item) => item && item.value).join() : "");
389
- }
390
- else {
391
- formikProps.setFieldValue(`['${key}']`, selectedItems.map((item) => item && item.value));
392
- }
393
- },
394
- onInputBlur: () => formikProps.setFieldTouched(`['${key}']`, true, true),
395
- }),
396
- [INPUT_GROUPS.RADIO]: (formikProps, { key }) => ({
397
- onChange: (value) => formikProps.setFieldValue(`['${key}']`, value),
398
- }),
399
- [INPUT_GROUPS.SELECT]: (formikProps, input, inputs) => {
400
- const { key, value } = input;
401
- let typeProps = {
402
- onChange: async ({ selectedItem }) => {
403
- if (selectedItem.value !== value) {
404
- await formikProps.setFieldTouched(`['${key}']`, true);
405
- formikProps.setFieldValue(`['${key}']`, selectedItem ? selectedItem.value : "");
406
- }
407
- },
408
- onInputBlur: () => formikProps.setFieldTouched(`['${key}']`, true, true),
409
- };
410
- /**
411
- * Start Governing Selects logic if input contains governingJsonKey
412
- */
413
- if (Boolean(input.governingJsonKey)) {
414
- const { governingJsonKey, governingKey, jsonKey, jsonLabel } = input;
415
- const governingJsonInput = inputs.find((input) => input.key === governingJsonKey);
416
- /** Check if governingJson with all governing selects data exists as an array */
417
- if (governingJsonInput && Array.isArray(governingJsonInput.governingJson)) {
418
- const { governingJson } = governingJsonInput;
419
- let governingOptions = [];
420
- let governingDisabled = false;
421
- /**
422
- * Select "governingOptions"
423
- * If current select is the top level governing select, just get the top level options from the json
424
- */
425
- if (key === governingJsonKey) {
426
- governingOptions = governingJson.map((option) => ({
427
- label: option[jsonLabel],
428
- value: option[jsonKey],
429
- }));
430
- }
431
- else {
432
- /** Check if the select that governs this one has a value and disable if it doesn't */
433
- const governingSelectValue = formikProps.values[governingKey];
434
- if (Boolean(governingSelectValue)) {
435
- let governingKeys = getGoverningSelectKeysMap({
436
- governingKey,
437
- governingJsonKey,
438
- governingKeys: [],
439
- inputs,
440
- });
441
- governingOptions = getGoverningSelectDeepOptions({
442
- formikValues: formikProps.values,
443
- governingInputJsonObject: governingJson.find((jsonElement) => jsonElement[governingJsonInput.jsonKey] === formikProps.values[governingJsonKey]),
444
- governingKeys: [...governingKeys],
445
- input,
446
- inputs,
447
- });
448
- }
449
- else {
450
- governingDisabled = true;
451
- }
452
- }
453
- typeProps = {
454
- ...typeProps,
455
- onChange: ({ selectedItem }) => handleGoverningSelectChange({ formikProps, input, inputs, selectedItem, isInputBeingChanged: true }),
456
- governingOptions,
457
- governingDisabled,
458
- };
459
- }
460
- }
461
- return typeProps;
462
- },
463
- [INPUT_GROUPS.TEXT_AREA]: (formikProps) => ({
464
- onChange: formikProps.handleChange,
465
- }),
466
- [INPUT_GROUPS.TEXT_EDITOR]: (formikProps) => ({
467
- onChange: formikProps.handleChange,
468
- }),
469
- [INPUT_GROUPS.TEXT_INPUT]: (formikProps) => ({
470
- onChange: formikProps.handleChange,
471
- }),
472
- [INPUT_GROUPS.BOOLEAN]: (formikProps, { key }) => ({
473
- onChange: (value) => {
474
- formikProps.setFieldTouched(`['${key}']`, true, true);
475
- formikProps.setFieldValue(`['${key}']`, value);
476
- },
477
- }),
478
- };
479
- function determineTypeProps(type, otherProps) {
480
- const { checkboxListProps, creatableProps, dateProps, multiSelectProps, radioProps, selectProps, textAreaProps, textEditorProps, textInputProps, toggleProps, } = otherProps;
481
- if (Object.values(CHECKBOX_TYPES).includes(type)) {
482
- return {
483
- typeProps: TYPE_PROPS[INPUT_GROUPS.CHECKBOX],
484
- additionalTypeProps: checkboxListProps,
485
- };
486
- }
487
- if (Object.values(CREATABLE_TYPES).includes(type)) {
488
- return {
489
- typeProps: TYPE_PROPS[INPUT_GROUPS.CREATABLE],
490
- additionalTypeProps: creatableProps,
491
- };
492
- }
493
- if (Object.values(DATE_TYPES).includes(type)) {
494
- return {
495
- typeProps: TYPE_PROPS[INPUT_GROUPS.DATE],
496
- additionalTypeProps: dateProps,
497
- };
498
- }
499
- if (Object.values(MULTI_SELECT_TYPES).includes(type)) {
500
- return {
501
- typeProps: TYPE_PROPS[INPUT_GROUPS.MULTI_SELECT],
502
- additionalTypeProps: multiSelectProps,
503
- };
504
- }
505
- if (Object.values(RADIO_TYPES).includes(type)) {
506
- return {
507
- typeProps: TYPE_PROPS[INPUT_GROUPS.RADIO],
508
- additionalTypeProps: radioProps,
509
- };
510
- }
511
- if (Object.values(SELECT_TYPES).includes(type)) {
512
- return {
513
- typeProps: TYPE_PROPS[INPUT_GROUPS.SELECT],
514
- additionalTypeProps: selectProps,
515
- };
516
- }
517
- if (Object.values(TEXT_AREA_TYPES).includes(type)) {
518
- return {
519
- typeProps: TYPE_PROPS[INPUT_GROUPS.TEXT_AREA],
520
- additionalTypeProps: textAreaProps,
521
- };
522
- }
523
- if (type.startsWith(TEXT_EDITOR_TYPES.TEXT_EDITOR)) {
524
- return {
525
- typeProps: TYPE_PROPS[INPUT_GROUPS.TEXT_EDITOR],
526
- additionalTypeProps: textEditorProps,
527
- };
528
- }
529
- if (Object.values(TEXT_INPUT_TYPES).includes(type)) {
530
- return {
531
- typeProps: TYPE_PROPS[INPUT_GROUPS.TEXT_INPUT],
532
- additionalTypeProps: textInputProps,
533
- };
534
- }
535
- if (Object.values(BOOLEAN_TYPES).includes(type)) {
536
- return {
537
- typeProps: TYPE_PROPS[INPUT_GROUPS.BOOLEAN],
538
- additionalTypeProps: toggleProps,
539
- };
540
- }
541
- return { typeProps: () => { }, additionalTypeProps: () => { } };
542
- }
543
- DynamicFormik.defaultProps = {
544
- checkboxListProps: (...args) => ({}),
545
- creatableProps: (...args) => ({}),
546
- dateProps: (...args) => ({}),
547
- multiSelectProps: (...args) => ({}),
548
- radioProps: (...args) => ({}),
549
- selectProps: (...args) => ({}),
550
- textAreaProps: (...args) => ({}),
551
- textEditorProps: (...args) => ({}),
552
- textInputProps: (...args) => ({}),
553
- toggleProps: (...args) => ({}),
554
- };
555
- function DynamicFormik({ additionalInitialValues = {}, allowCustomPropertySyntax = false, customPropertySyntaxPattern = /\$\{p:([a-zA-Z0-9_.-]+)\}|\$\(([a-zA-Z0-9_.-\s]+)\)/g, customPropertyStartsWithPattern = /\$\{|\$\(/g, children, dataDrivenInputProps, inputProps, initialValues, inputs, onSubmit, useCSVforArrays = false, validationSchema, validationSchemaExtension, ...otherProps }) {
556
- return (React.createElement(Formik, { initialValues: (Boolean(initialValues) && initialValues) || {
557
- ...determineInitialValues(inputs, useCSVforArrays),
558
- ...additionalInitialValues,
559
- }, validationSchema: validationSchema ||
560
- generateYupSchema({
561
- inputs,
562
- allowCustomPropertySyntax,
563
- customPropertySyntaxPattern,
564
- customPropertyStartsWithPattern,
565
- useCSVforArrays,
566
- validationSchemaExtension,
567
- }), onSubmit: (values, actions) => {
568
- if (onSubmit)
569
- onSubmit(values, actions);
570
- }, ...otherProps }, (formikProps) => {
571
- const { values, touched, errors, handleBlur } = formikProps;
572
- const finalInputs = inputs.filter((input) => conditionallyRenderInput(input, values));
573
- const dataDrivenInputs = finalInputs.map((input) => {
574
- const { key, type, value, // eslint-disable-line
575
- ...otherInputsProps } = input;
576
- const inputValue = values[key] !== undefined &&
577
- values[key] !== null &&
578
- (Object.values(TEXT_INPUT_TYPES).includes(type) ||
579
- type === TEXT_AREA_TYPES.TEXT_AREA ||
580
- type === TEXT_EDITOR_TYPES.TEXT_EDITOR)
581
- ? values[key].toString()
582
- : values[key];
583
- const invalidText = get(errors, key);
584
- const invalid = invalidText && get(touched, key);
585
- const { typeProps = () => { }, additionalTypeProps = () => { } } = determineTypeProps(type, otherProps);
586
- return (React.createElement(DataDrivenInput, { key: key, customComponent: input.customComponent, formikProps: formikProps, id: `['${key}']`, invalid: invalid, invalidText: invalidText, name: `['${key}']`, onBlur: handleBlur, type: type, value: inputValue, ...typeProps(formikProps, input, finalInputs, useCSVforArrays), ...otherInputsProps, ...inputProps, ...additionalTypeProps({ formikProps, input }), ...dataDrivenInputProps }));
587
- });
588
- return (React.createElement("div", { className: `${prefix}--bmrg-dynamic-formik` }, children({ inputs: dataDrivenInputs, formikProps })));
589
- }));
12
+ /*
13
+ IBM Confidential
14
+ 694970X, 69497O0
15
+ © Copyright IBM Corp. 2022, 2024
16
+ */
17
+ /**
18
+ *
19
+ * @param {string} value - value to test for valid property syntax
20
+ */
21
+ function isPropertySyntaxValid({ value, customPropertySyntaxPattern, propsSyntaxFound }) {
22
+ // Look property pattern and capture group for the property itself
23
+ let match = value.match(customPropertySyntaxPattern);
24
+ // if the first matched group is truthy, then a property has been entered
25
+ // Empty properties are not valid
26
+ if (Array.isArray(match) && match.length === propsSyntaxFound) {
27
+ return true;
28
+ }
29
+ else {
30
+ return false;
31
+ }
32
+ }
33
+ function validateUrlWithProperties(customPropertySyntaxPattern, customPropertyStartsWithPattern) {
34
+ return function () {
35
+ return this.transform(function (value, originalValue) {
36
+ const propsSyntaxFound = value.match(customPropertyStartsWithPattern)?.length ?? 0;
37
+ if ((isUrl(value) && !Boolean(propsSyntaxFound)) ||
38
+ isPropertySyntaxValid({ value, customPropertySyntaxPattern, propsSyntaxFound })) {
39
+ return value;
40
+ }
41
+ return false;
42
+ });
43
+ };
44
+ }
45
+ function validateEmailWithProperties(customPropertySyntaxPattern, customPropertyStartsWithPattern) {
46
+ return function () {
47
+ return this.transform(function (value, originalValue) {
48
+ // Simple pattern for emails
49
+ const isValidEmail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
50
+ const propsSyntaxFound = value.match(customPropertyStartsWithPattern)?.length ?? 0;
51
+ if ((isValidEmail && !Boolean(propsSyntaxFound)) ||
52
+ isPropertySyntaxValid({ value, customPropertySyntaxPattern, propsSyntaxFound })) {
53
+ return value;
54
+ }
55
+ return false;
56
+ });
57
+ };
58
+ }
59
+ function registerCustomPropertyMethods(customPropertySyntaxPattern, customPropertyStartsWithPattern) {
60
+ const validateUrl = validateUrlWithProperties(customPropertySyntaxPattern, customPropertyStartsWithPattern);
61
+ const validateEmail = validateEmailWithProperties(customPropertySyntaxPattern, customPropertyStartsWithPattern);
62
+ yup.addMethod(yup.string, "urlWithCustomProperty", validateUrl);
63
+ yup.addMethod(yup.string, "emailWithCustomProperty", validateEmail);
64
+ }
65
+ function getGoverningSelectKeysMap({ governingKey, governingJsonKey, governingKeys, inputs, }) {
66
+ if (Boolean(governingKey) && governingKey !== governingJsonKey)
67
+ governingKeys.unshift(governingKey);
68
+ const governingInput = inputs.find((input) => input.key === governingKey) ?? {};
69
+ /** Continue recursion if the governing select has a governingKey */
70
+ if (Boolean(governingInput.governingKey)) {
71
+ return getGoverningSelectKeysMap({
72
+ governingKey: governingInput.governingKey,
73
+ governingJsonKey,
74
+ governingKeys,
75
+ inputs,
76
+ });
77
+ }
78
+ else {
79
+ return governingKeys;
80
+ }
81
+ }
82
+ function getGoverningSelectDeepOptions({ formikValues, governingInputJsonObject, governingKeys, input, inputs, }) {
83
+ const nextKey = governingKeys.shift();
84
+ if (nextKey) {
85
+ const nextKeyInput = inputs.find((input) => input.key === nextKey) ?? {};
86
+ const nextInputJsonObject = governingInputJsonObject[nextKey].find((jsonElement) => jsonElement[nextKeyInput.jsonKey] === formikValues[nextKey]);
87
+ return getGoverningSelectDeepOptions({
88
+ formikValues,
89
+ governingInputJsonObject: nextInputJsonObject,
90
+ governingKeys,
91
+ input,
92
+ inputs,
93
+ });
94
+ }
95
+ else {
96
+ return governingInputJsonObject[input.key].map((option) => ({
97
+ label: option[input.jsonLabel],
98
+ value: option[input.jsonKey],
99
+ }));
100
+ }
101
+ }
102
+ async function handleGoverningSelectChange({ formikProps, input, inputs, isInputBeingChanged, selectedItem, }) {
103
+ const { key, value } = input;
104
+ const inputsGovernedByCurrentOne = inputs.filter((formikInput) => formikInput.governingKey === key);
105
+ if (selectedItem?.value !== value) {
106
+ /** Erase value of governed inputs */
107
+ if (inputsGovernedByCurrentOne.length) {
108
+ await inputsGovernedByCurrentOne.forEach(async (input) => {
109
+ await handleGoverningSelectChange({ formikProps, input, inputs, isInputBeingChanged: false, selectedItem: null });
110
+ });
111
+ }
112
+ // only the top governing select should display warnings if changed and reset touched status for governed ones
113
+ await formikProps.setFieldTouched(`['${key}']`, isInputBeingChanged);
114
+ formikProps.setFieldValue(`['${key}']`, selectedItem ? selectedItem.value : "");
115
+ formikProps.setFieldValue(`['${key}-keyLabel']`, selectedItem ? selectedItem.label : "");
116
+ }
117
+ }
118
+ function generateYupAst({ inputs, allowCustomPropertySyntax, customPropertySyntaxPattern, customPropertyStartsWithPattern, useCSVforArrays, }) {
119
+ if (allowCustomPropertySyntax) {
120
+ registerCustomPropertyMethods(customPropertySyntaxPattern, customPropertyStartsWithPattern);
121
+ }
122
+ let yupShape = {};
123
+ inputs.forEach((input) => {
124
+ let yupValidationArray = [];
125
+ const inputType = input.type ?? "";
126
+ if (!INPUT_TYPES_ARRAY.includes(inputType)) {
127
+ return;
128
+ }
129
+ if (inputType === DATE_TYPES.DATE) {
130
+ yupValidationArray.push(["yup.date", "Enter a valid date"]);
131
+ }
132
+ if (inputType === TEXT_AREA_TYPES.TEXT_AREA ||
133
+ inputType === TEXT_INPUT_TYPES.EMAIL ||
134
+ inputType === TEXT_INPUT_TYPES.PASSWORD ||
135
+ inputType === TEXT_INPUT_TYPES.SECURED ||
136
+ inputType === TEXT_INPUT_TYPES.TEL ||
137
+ inputType === TEXT_INPUT_TYPES.TEXT ||
138
+ inputType === TEXT_INPUT_TYPES.TIME ||
139
+ inputType === TEXT_INPUT_TYPES.URL ||
140
+ inputType === RADIO_TYPES.RADIO ||
141
+ inputType === SELECT_TYPES.SELECT ||
142
+ inputType?.startsWith(TEXT_EDITOR_TYPES.TEXT_EDITOR)) {
143
+ yupValidationArray.push(["yup.string"]);
144
+ // if (
145
+ // allowCustomPropertySyntax &&
146
+ // inputType !== TEXT_INPUT_TYPES.EMAIL &&
147
+ // inputType !== TEXT_INPUT_TYPES.URL &&
148
+ // inputType !== TEXT_INPUT_TYPES.SECURED &&
149
+ // inputType !== TEXT_INPUT_TYPES.PASSWORD
150
+ // )
151
+ // yupValidationArray.push(
152
+ // ['yup.customProperty'],
153
+ // ['yup.typeError', 'Enter valid syntax for a property']
154
+ // );
155
+ // Create a customValidator for each input b/c regex deserialization
156
+ // does not work currently
157
+ const { pattern } = input;
158
+ if (typeof pattern === "string") {
159
+ addCustomValidator(`${input.key}-matches`, yup.string().test(`${input.key}-matches`, input.patternInvalidText || `Enter a value that matches pattern: ${input.pattern}`, (value) => {
160
+ if (!input.required && !Boolean(value)) {
161
+ return true;
162
+ }
163
+ else
164
+ return new RegExp(pattern).test(value);
165
+ }));
166
+ yupValidationArray.push([`${input.key}-matches`]);
167
+ }
168
+ //TODO: figure out how to update serialization in yup-ast so we can use the native "matches" validator
169
+ // if (input.pattern) {
170
+ // yupValidationArray.push([
171
+ // 'yup.matches',
172
+ // new RegExp(input.pattern),
173
+ // {
174
+ // message: `Enter a value that matches pattern ${input.pattern}`,
175
+ // excludeEmptyString: true,
176
+ // },
177
+ // ]);
178
+ // }
179
+ if (inputType === TEXT_INPUT_TYPES.EMAIL) {
180
+ if (allowCustomPropertySyntax)
181
+ yupValidationArray.push(["yup.emailWithCustomProperty"], ["yup.typeError", "Enter a valid email"]);
182
+ else
183
+ yupValidationArray.push(["yup.email", "Enter a valid email"]);
184
+ }
185
+ if (inputType === TEXT_INPUT_TYPES.URL) {
186
+ if (allowCustomPropertySyntax)
187
+ yupValidationArray.push(["yup.urlWithCustomProperty"], ["yup.typeError", "Enter a valid URL"]);
188
+ else
189
+ yupValidationArray.push(["yup.url", "Enter a valid URL"]);
190
+ }
191
+ }
192
+ if (inputType === TEXT_INPUT_TYPES.NUMBER) {
193
+ yupValidationArray.push(["yup.number", "Enter a number"]);
194
+ }
195
+ if (inputType === BOOLEAN_TYPES.BOOLEAN) {
196
+ yupValidationArray.push(["yup.boolean"]);
197
+ }
198
+ if (inputType === MULTI_SELECT_TYPES.MULTI_SELECT ||
199
+ inputType === CREATABLE_TYPES.CREATABLE_SINGLE ||
200
+ inputType === CREATABLE_TYPES.CREATABLE_SINGLE_NON_DELETABLE ||
201
+ inputType === CREATABLE_TYPES.CREATABLE_PAIR ||
202
+ inputType === CREATABLE_TYPES.CREATABLE_PAIR_NON_DELETABLE ||
203
+ inputType === CHECKBOX_TYPES.CHECKBOX) {
204
+ if (useCSVforArrays) {
205
+ yupValidationArray.push(["yup.string"]);
206
+ const { pattern } = input;
207
+ if (pattern === typeof "string") {
208
+ addCustomValidator(`${input.key}-matches`, yup.string().test(`${input.key}-matches`, input.patternInvalidText || `Enter values that matches pattern: ${input.pattern}`, (csv) => {
209
+ const regexTester = new RegExp(pattern);
210
+ return csv?.split(",").every((val) => regexTester.test(val)) ?? false;
211
+ }));
212
+ yupValidationArray.push([`${input.key}-matches`]);
213
+ }
214
+ }
215
+ else {
216
+ yupValidationArray.push(["yup.array"]);
217
+ const { pattern } = input;
218
+ if (typeof pattern === "string") {
219
+ addCustomValidator(`${input.key}-matches`, yup.array().test(`${input.key}-matches`, input.patternInvalidText || `Enter values that matches pattern: ${pattern}`, (values) => {
220
+ const regexTester = new RegExp(pattern);
221
+ return values?.every((val) => regexTester.test(val)) ?? false;
222
+ }));
223
+ yupValidationArray.push([`${input.key}-matches`]);
224
+ }
225
+ }
226
+ }
227
+ if (Object.values(TEXT_INPUT_TYPES).includes(inputType) ||
228
+ inputType === TEXT_AREA_TYPES.TEXT_AREA ||
229
+ inputType === TEXT_EDITOR_TYPES.TEXT_EDITOR) {
230
+ if (inputType === TEXT_INPUT_TYPES.NUMBER) {
231
+ if (input.min) {
232
+ yupValidationArray.push(["yup.min", input.min, `Enter value greater than ${input.min}`]);
233
+ }
234
+ if (input.max) {
235
+ yupValidationArray.push(["yup.max", input.max, `Enter value less than ${input.max}`]);
236
+ }
237
+ }
238
+ else {
239
+ if (input.min) {
240
+ yupValidationArray.push(["yup.min", input.min, `Enter at least ${input.min} characters`]);
241
+ }
242
+ if (input.max) {
243
+ yupValidationArray.push(["yup.max", input.max, `Enter at most ${input.max} characters`]);
244
+ }
245
+ }
246
+ }
247
+ if (Array.isArray(input.invalidValues)) {
248
+ yupValidationArray.push(["yup.notOneOf", input.invalidValues, `Enter an allowed value`]);
249
+ }
250
+ if (input.required) {
251
+ if (inputType === BOOLEAN_TYPES.BOOLEAN) {
252
+ yupValidationArray.push(["yup.oneOf", [true], "Toggle must be checked"]);
253
+ }
254
+ else {
255
+ yupValidationArray.push(["yup.required", `Enter a value for ${input.label}`]);
256
+ }
257
+ }
258
+ if (yupValidationArray.length > 0) {
259
+ yupShape[input.key] = yupValidationArray;
260
+ }
261
+ });
262
+ return [["yup.object"], ["yup.shape", yupShape]];
263
+ }
264
+ function generateYupSchema({ inputs, allowCustomPropertySyntax, customPropertySyntaxPattern, customPropertyStartsWithPattern, useCSVforArrays, validationSchemaExtension, }) {
265
+ let validationSchema = transformAll(generateYupAst({
266
+ inputs,
267
+ allowCustomPropertySyntax,
268
+ customPropertySyntaxPattern,
269
+ customPropertyStartsWithPattern,
270
+ useCSVforArrays,
271
+ }));
272
+ if (validationSchemaExtension) {
273
+ validationSchema = validationSchema.concat(validationSchemaExtension);
274
+ }
275
+ return validationSchema;
276
+ }
277
+ /**
278
+ * Get initial values of each input in array of inputs
279
+ */
280
+ const determineInitialValues = (inputs, useCSVforArrays) => {
281
+ const values = {};
282
+ inputs.forEach((input) => {
283
+ let value = "";
284
+ let valueToCheck = input.value || input.defaultValue;
285
+ const isArrayInput = !useCSVforArrays && Object.values(ARRAY_INPUT_TYPES).includes(input.type);
286
+ if (isArrayInput) {
287
+ valueToCheck = input.value || input.defaultValue || input.values || input.defaultValues;
288
+ }
289
+ if (valueToCheck) {
290
+ switch (valueToCheck) {
291
+ case "false": {
292
+ value = false;
293
+ break;
294
+ }
295
+ case "true": {
296
+ value = true;
297
+ break;
298
+ }
299
+ default: {
300
+ value = valueToCheck;
301
+ }
302
+ }
303
+ }
304
+ values[input.key] = value;
305
+ });
306
+ return values;
307
+ };
308
+ /**
309
+ * Check if an input X needs to be conditionally rendered
310
+ * If it does, then find an input Y in the same section that has key equal to the input X's requiredForKey
311
+ * If input Y has a value that is present in input X's requiredValueOf array, then render X
312
+ */
313
+ const conditionallyRenderInput = (input, values) => {
314
+ if (!input.conditionallyRender) {
315
+ return true;
316
+ }
317
+ if (input.requiredForKey && input.requiredValueOf) {
318
+ /**
319
+ * Check which input in this section has the key equal to requiredForKey and get its value
320
+ */
321
+ const requiredForKeyInputValue = values[input.requiredForKey];
322
+ const valuesInputIsRenderedFor = input.requiredValueOf;
323
+ /**
324
+ * If the value of the input this input is required for is an array loop through those values to find a matching one
325
+ * by going through all of configured values for the input - the "requiredValueOf" of property
326
+ * Check for the value and the string of the value bc of how the services work. "true" and "false" are strings not boolean values
327
+ */
328
+ if (Array.isArray(requiredForKeyInputValue)) {
329
+ for (let requiredForValue of valuesInputIsRenderedFor) {
330
+ for (let singleRequiredForKeyInputValue of requiredForKeyInputValue) {
331
+ if (requiredForValue === singleRequiredForKeyInputValue ||
332
+ requiredForValue === String(singleRequiredForKeyInputValue)) {
333
+ return true;
334
+ }
335
+ }
336
+ }
337
+ }
338
+ else {
339
+ for (let requiredForValue of valuesInputIsRenderedFor) {
340
+ if (requiredForValue === requiredForKeyInputValue || requiredForValue === String(requiredForKeyInputValue)) {
341
+ return true;
342
+ }
343
+ }
344
+ }
345
+ }
346
+ else {
347
+ return false;
348
+ }
349
+ };
350
+ /**
351
+ * Map of the input groups to specifc props to be passed
352
+ */
353
+ const TYPE_PROPS = {
354
+ [INPUT_GROUPS.CHECKBOX]: (formikProps, { key }, inputs, useCSVforArrays) => ({
355
+ onChange: (value, id, event, selectedItems) => {
356
+ if (useCSVforArrays) {
357
+ formikProps.setFieldValue(`['${key}']`, selectedItems?.join() ?? "");
358
+ }
359
+ else {
360
+ formikProps.setFieldValue(`['${key}']`, selectedItems);
361
+ }
362
+ },
363
+ }),
364
+ [INPUT_GROUPS.CREATABLE]: (formikProps, { key }, inputs, useCSVforArrays) => ({
365
+ onChange: (createdItems) => {
366
+ formikProps.setFieldTouched(`['${key}']`, true);
367
+ if (useCSVforArrays) {
368
+ formikProps.setFieldValue(`['${key}']`, createdItems?.join() ?? "");
369
+ }
370
+ else {
371
+ formikProps.setFieldValue(`['${key}']`, createdItems);
372
+ }
373
+ },
374
+ onInputBlur: () => formikProps.setFieldTouched(`['${key}']`, true, true),
375
+ }),
376
+ [INPUT_GROUPS.DATE]: (formikProps, { key, type }) => type === DATE_TYPES.DATE_RANGE
377
+ ? {
378
+ onChange: (dateArray) => formikProps.setFieldValue(`['${key}']`, dateArray?.map((date) => date.toISOString())),
379
+ }
380
+ : {
381
+ onChange: formikProps.handleChange,
382
+ onCalendarChange: (dateArray) => formikProps.setFieldValue(`['${key}']`, dateArray[0]?.toISOString()),
383
+ },
384
+ [INPUT_GROUPS.MULTI_SELECT]: (formikProps, { key }, inputs, useCSVforArrays) => ({
385
+ onChange: async ({ selectedItems }) => {
386
+ await formikProps.setFieldTouched(`['${key}']`, true);
387
+ if (useCSVforArrays) {
388
+ formikProps.setFieldValue(`['${key}']`, selectedItems ? selectedItems.map((item) => item && item.value).join() : "");
389
+ }
390
+ else {
391
+ formikProps.setFieldValue(`['${key}']`, selectedItems.map((item) => item && item.value));
392
+ }
393
+ },
394
+ onInputBlur: () => formikProps.setFieldTouched(`['${key}']`, true, true),
395
+ }),
396
+ [INPUT_GROUPS.RADIO]: (formikProps, { key }) => ({
397
+ onChange: (value) => formikProps.setFieldValue(`['${key}']`, value),
398
+ }),
399
+ [INPUT_GROUPS.SELECT]: (formikProps, input, inputs) => {
400
+ const { key, value } = input;
401
+ let typeProps = {
402
+ onChange: async ({ selectedItem }) => {
403
+ if (selectedItem.value !== value) {
404
+ await formikProps.setFieldTouched(`['${key}']`, true);
405
+ formikProps.setFieldValue(`['${key}']`, selectedItem ? selectedItem.value : "");
406
+ }
407
+ },
408
+ onInputBlur: () => formikProps.setFieldTouched(`['${key}']`, true, true),
409
+ };
410
+ /**
411
+ * Start Governing Selects logic if input contains governingJsonKey
412
+ */
413
+ if (Boolean(input.governingJsonKey)) {
414
+ const { governingJsonKey, governingKey, jsonKey, jsonLabel } = input;
415
+ const governingJsonInput = inputs.find((input) => input.key === governingJsonKey);
416
+ /** Check if governingJson with all governing selects data exists as an array */
417
+ if (governingJsonInput && Array.isArray(governingJsonInput.governingJson)) {
418
+ const { governingJson } = governingJsonInput;
419
+ let governingOptions = [];
420
+ let governingDisabled = false;
421
+ /**
422
+ * Select "governingOptions"
423
+ * If current select is the top level governing select, just get the top level options from the json
424
+ */
425
+ if (key === governingJsonKey) {
426
+ governingOptions = governingJson.map((option) => ({
427
+ label: option[jsonLabel],
428
+ value: option[jsonKey],
429
+ }));
430
+ }
431
+ else {
432
+ /** Check if the select that governs this one has a value and disable if it doesn't */
433
+ const governingSelectValue = formikProps.values[governingKey];
434
+ if (Boolean(governingSelectValue)) {
435
+ let governingKeys = getGoverningSelectKeysMap({
436
+ governingKey,
437
+ governingJsonKey,
438
+ governingKeys: [],
439
+ inputs,
440
+ });
441
+ governingOptions = getGoverningSelectDeepOptions({
442
+ formikValues: formikProps.values,
443
+ governingInputJsonObject: governingJson.find((jsonElement) => jsonElement[governingJsonInput.jsonKey] === formikProps.values[governingJsonKey]),
444
+ governingKeys: [...governingKeys],
445
+ input,
446
+ inputs,
447
+ });
448
+ }
449
+ else {
450
+ governingDisabled = true;
451
+ }
452
+ }
453
+ typeProps = {
454
+ ...typeProps,
455
+ onChange: ({ selectedItem }) => handleGoverningSelectChange({ formikProps, input, inputs, selectedItem, isInputBeingChanged: true }),
456
+ governingOptions,
457
+ governingDisabled,
458
+ };
459
+ }
460
+ }
461
+ return typeProps;
462
+ },
463
+ [INPUT_GROUPS.TEXT_AREA]: (formikProps) => ({
464
+ onChange: formikProps.handleChange,
465
+ }),
466
+ [INPUT_GROUPS.TEXT_EDITOR]: (formikProps) => ({
467
+ onChange: formikProps.handleChange,
468
+ }),
469
+ [INPUT_GROUPS.TEXT_INPUT]: (formikProps) => ({
470
+ onChange: formikProps.handleChange,
471
+ }),
472
+ [INPUT_GROUPS.BOOLEAN]: (formikProps, { key }) => ({
473
+ onChange: (value) => {
474
+ formikProps.setFieldTouched(`['${key}']`, true, true);
475
+ formikProps.setFieldValue(`['${key}']`, value);
476
+ },
477
+ }),
478
+ };
479
+ function determineTypeProps(type, otherProps) {
480
+ const { checkboxListProps, creatableProps, dateProps, multiSelectProps, radioProps, selectProps, textAreaProps, textEditorProps, textInputProps, toggleProps, } = otherProps;
481
+ if (Object.values(CHECKBOX_TYPES).includes(type)) {
482
+ return {
483
+ typeProps: TYPE_PROPS[INPUT_GROUPS.CHECKBOX],
484
+ additionalTypeProps: checkboxListProps,
485
+ };
486
+ }
487
+ if (Object.values(CREATABLE_TYPES).includes(type)) {
488
+ return {
489
+ typeProps: TYPE_PROPS[INPUT_GROUPS.CREATABLE],
490
+ additionalTypeProps: creatableProps,
491
+ };
492
+ }
493
+ if (Object.values(DATE_TYPES).includes(type)) {
494
+ return {
495
+ typeProps: TYPE_PROPS[INPUT_GROUPS.DATE],
496
+ additionalTypeProps: dateProps,
497
+ };
498
+ }
499
+ if (Object.values(MULTI_SELECT_TYPES).includes(type)) {
500
+ return {
501
+ typeProps: TYPE_PROPS[INPUT_GROUPS.MULTI_SELECT],
502
+ additionalTypeProps: multiSelectProps,
503
+ };
504
+ }
505
+ if (Object.values(RADIO_TYPES).includes(type)) {
506
+ return {
507
+ typeProps: TYPE_PROPS[INPUT_GROUPS.RADIO],
508
+ additionalTypeProps: radioProps,
509
+ };
510
+ }
511
+ if (Object.values(SELECT_TYPES).includes(type)) {
512
+ return {
513
+ typeProps: TYPE_PROPS[INPUT_GROUPS.SELECT],
514
+ additionalTypeProps: selectProps,
515
+ };
516
+ }
517
+ if (Object.values(TEXT_AREA_TYPES).includes(type)) {
518
+ return {
519
+ typeProps: TYPE_PROPS[INPUT_GROUPS.TEXT_AREA],
520
+ additionalTypeProps: textAreaProps,
521
+ };
522
+ }
523
+ if (type.startsWith(TEXT_EDITOR_TYPES.TEXT_EDITOR)) {
524
+ return {
525
+ typeProps: TYPE_PROPS[INPUT_GROUPS.TEXT_EDITOR],
526
+ additionalTypeProps: textEditorProps,
527
+ };
528
+ }
529
+ if (Object.values(TEXT_INPUT_TYPES).includes(type)) {
530
+ return {
531
+ typeProps: TYPE_PROPS[INPUT_GROUPS.TEXT_INPUT],
532
+ additionalTypeProps: textInputProps,
533
+ };
534
+ }
535
+ if (Object.values(BOOLEAN_TYPES).includes(type)) {
536
+ return {
537
+ typeProps: TYPE_PROPS[INPUT_GROUPS.BOOLEAN],
538
+ additionalTypeProps: toggleProps,
539
+ };
540
+ }
541
+ return { typeProps: () => { }, additionalTypeProps: () => { } };
542
+ }
543
+ DynamicFormik.defaultProps = {
544
+ checkboxListProps: (...args) => ({}),
545
+ creatableProps: (...args) => ({}),
546
+ dateProps: (...args) => ({}),
547
+ multiSelectProps: (...args) => ({}),
548
+ radioProps: (...args) => ({}),
549
+ selectProps: (...args) => ({}),
550
+ textAreaProps: (...args) => ({}),
551
+ textEditorProps: (...args) => ({}),
552
+ textInputProps: (...args) => ({}),
553
+ toggleProps: (...args) => ({}),
554
+ };
555
+ function DynamicFormik({ additionalInitialValues = {}, allowCustomPropertySyntax = false, customPropertySyntaxPattern = /\$\{p:([a-zA-Z0-9_.-]+)\}|\$\(([a-zA-Z0-9_.-\s]+)\)/g, customPropertyStartsWithPattern = /\$\{|\$\(/g, children, dataDrivenInputProps, inputProps, initialValues, inputs, onSubmit, useCSVforArrays = false, validationSchema, validationSchemaExtension, ...otherProps }) {
556
+ return (React.createElement(Formik, { initialValues: (Boolean(initialValues) && initialValues) || {
557
+ ...determineInitialValues(inputs, useCSVforArrays),
558
+ ...additionalInitialValues,
559
+ }, validationSchema: validationSchema ||
560
+ generateYupSchema({
561
+ inputs,
562
+ allowCustomPropertySyntax,
563
+ customPropertySyntaxPattern,
564
+ customPropertyStartsWithPattern,
565
+ useCSVforArrays,
566
+ validationSchemaExtension,
567
+ }), onSubmit: (values, actions) => {
568
+ if (onSubmit)
569
+ onSubmit(values, actions);
570
+ }, ...otherProps }, (formikProps) => {
571
+ const { values, touched, errors, handleBlur } = formikProps;
572
+ const finalInputs = inputs.filter((input) => conditionallyRenderInput(input, values));
573
+ const dataDrivenInputs = finalInputs.map((input) => {
574
+ const { key, type, value, // eslint-disable-line
575
+ ...otherInputsProps } = input;
576
+ const inputValue = values[key] !== undefined &&
577
+ values[key] !== null &&
578
+ (Object.values(TEXT_INPUT_TYPES).includes(type) ||
579
+ type === TEXT_AREA_TYPES.TEXT_AREA ||
580
+ type === TEXT_EDITOR_TYPES.TEXT_EDITOR)
581
+ ? values[key].toString()
582
+ : values[key];
583
+ const invalidText = get(errors, key);
584
+ const invalid = invalidText && get(touched, key);
585
+ const { typeProps = () => { }, additionalTypeProps = () => { } } = determineTypeProps(type, otherProps);
586
+ return (React.createElement(DataDrivenInput, { key: key, customComponent: input.customComponent, formikProps: formikProps, id: `['${key}']`, invalid: invalid, invalidText: invalidText, name: `['${key}']`, onBlur: handleBlur, type: type, value: inputValue, ...typeProps(formikProps, input, finalInputs, useCSVforArrays), ...otherInputsProps, ...inputProps, ...additionalTypeProps({ formikProps, input }), ...dataDrivenInputProps }));
587
+ });
588
+ return (React.createElement("div", { className: `${prefix}--bmrg-dynamic-formik` }, children({ inputs: dataDrivenInputs, formikProps })));
589
+ }));
590
590
  }
591
591
 
592
592
  export { DynamicFormik as default };