@dnb/eufemia 10.73.2 → 10.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/cjs/components/autocomplete/Autocomplete.js +7 -4
  3. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/autocomplete/AutocompleteDocs.d.ts +289 -3
  5. package/cjs/components/autocomplete/AutocompleteDocs.js +2 -2
  6. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  7. package/cjs/components/button/style/dnb-button.css +1 -0
  8. package/cjs/components/button/style/dnb-button.min.css +1 -1
  9. package/cjs/components/button/style/dnb-button.scss +1 -0
  10. package/cjs/components/checkbox/Checkbox.d.ts +9 -1
  11. package/cjs/components/checkbox/Checkbox.js +59 -34
  12. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  13. package/cjs/components/checkbox/CheckboxDocs.js +6 -1
  14. package/cjs/components/checkbox/CheckboxDocs.js.map +1 -1
  15. package/cjs/components/date-picker/DatePicker.d.ts +4 -0
  16. package/cjs/components/date-picker/DatePicker.js +4 -3
  17. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  18. package/cjs/components/date-picker/DatePickerCalendar.d.ts +2 -16
  19. package/cjs/components/date-picker/DatePickerCalendar.js +27 -86
  20. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  21. package/cjs/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
  22. package/cjs/components/date-picker/DatePickerCalendarNavigator.js +173 -0
  23. package/cjs/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
  24. package/cjs/components/date-picker/DatePickerContext.d.ts +3 -0
  25. package/cjs/components/date-picker/DatePickerContext.js.map +1 -1
  26. package/cjs/components/date-picker/DatePickerDocs.js +6 -1
  27. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  28. package/cjs/components/date-picker/DatePickerFooter.js +20 -17
  29. package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
  30. package/cjs/components/date-picker/DatePickerProvider.js +7 -0
  31. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  32. package/cjs/components/date-picker/DatePickerRange.js +2 -28
  33. package/cjs/components/date-picker/DatePickerRange.js.map +1 -1
  34. package/cjs/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
  35. package/cjs/components/date-picker/hooks/useSubmittedDates.js +19 -0
  36. package/cjs/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
  37. package/cjs/components/date-picker/style/dnb-date-picker.css +1 -1
  38. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  39. package/cjs/components/date-picker/style/dnb-date-picker.scss +1 -1
  40. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
  41. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  42. package/cjs/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
  43. package/cjs/components/drawer/Drawer.js +1 -0
  44. package/cjs/components/drawer/Drawer.js.map +1 -1
  45. package/cjs/components/dropdown/Dropdown.js +6 -4
  46. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  47. package/cjs/components/dropdown/DropdownDocs.d.ts +179 -3
  48. package/cjs/components/dropdown/DropdownDocs.js.map +1 -1
  49. package/cjs/components/heading/HeadingHelpers.js +9 -5
  50. package/cjs/components/heading/HeadingHelpers.js.map +1 -1
  51. package/cjs/components/icon/Icon.d.ts +2 -2
  52. package/cjs/components/input-masked/InputMaskedDocs.js +1 -1
  53. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  54. package/cjs/components/input-masked/InputMaskedHooks.d.ts +1 -0
  55. package/cjs/components/input-masked/InputMaskedHooks.js +38 -6
  56. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  57. package/cjs/components/input-masked/InputMaskedUtils.js +5 -4
  58. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  59. package/cjs/components/number-format/NumberUtils.js +6 -4
  60. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  61. package/cjs/components/switch/SwitchDocs.js +2 -2
  62. package/cjs/components/switch/SwitchDocs.js.map +1 -1
  63. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -1
  64. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  65. package/cjs/extensions/forms/DataContext/Provider/Provider.js +9 -0
  66. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  67. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  68. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  69. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
  70. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +8 -1
  71. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  72. package/cjs/extensions/forms/Field/Date/Date.d.ts +1 -1
  73. package/cjs/extensions/forms/Field/Date/Date.js +1 -1
  74. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  75. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  76. package/cjs/extensions/forms/Field/Number/NumberDocs.js +1 -1
  77. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  78. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  79. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +2 -2
  80. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  81. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +2 -2
  82. package/cjs/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
  83. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -0
  84. package/cjs/extensions/forms/Field/Selection/Selection.js +10 -9
  85. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  86. package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
  87. package/cjs/extensions/forms/Field/Toggle/Toggle.js +24 -8
  88. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  89. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
  90. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +8 -1
  91. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  92. package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
  93. package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js +64 -0
  94. package/cjs/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
  95. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
  96. package/cjs/extensions/forms/Form/Isolation/Isolation.js +39 -14
  97. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  98. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
  99. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  100. package/cjs/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
  101. package/cjs/extensions/forms/Form/Isolation/IsolationContext.js +11 -0
  102. package/cjs/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
  103. package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
  104. package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js +31 -0
  105. package/cjs/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
  106. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
  107. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  108. package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
  109. package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js +112 -0
  110. package/cjs/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
  111. package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
  112. package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js +58 -0
  113. package/cjs/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
  114. package/cjs/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
  115. package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js +57 -0
  116. package/cjs/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
  117. package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +11 -9
  118. package/cjs/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
  119. package/cjs/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
  120. package/cjs/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
  121. package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
  122. package/cjs/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
  123. package/cjs/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
  124. package/cjs/extensions/forms/Iterate/EditContainer/index.js +1 -1
  125. package/cjs/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  126. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
  127. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +15 -56
  128. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  129. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
  130. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  131. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +1 -1
  132. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -3
  133. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  134. package/cjs/extensions/forms/constants/locales/en-US.d.ts +1 -1
  135. package/cjs/extensions/forms/constants/locales/index.d.ts +2 -2
  136. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
  137. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -3
  138. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  139. package/cjs/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
  140. package/cjs/extensions/forms/constants/locales/sv-SE.js +3 -3
  141. package/cjs/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  142. package/cjs/extensions/forms/hooks/useDataContext.js +5 -3
  143. package/cjs/extensions/forms/hooks/useDataContext.js.map +1 -1
  144. package/cjs/extensions/forms/hooks/useSnapshot.js +17 -14
  145. package/cjs/extensions/forms/hooks/useSnapshot.js.map +1 -1
  146. package/cjs/fragments/drawer-list/DrawerList.d.ts +176 -224
  147. package/cjs/fragments/drawer-list/DrawerList.js +70 -175
  148. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  149. package/cjs/fragments/drawer-list/DrawerListContext.d.ts +27 -2
  150. package/cjs/fragments/drawer-list/DrawerListContext.js.map +1 -1
  151. package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
  152. package/cjs/fragments/drawer-list/DrawerListDocs.js +2 -2
  153. package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  154. package/cjs/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
  155. package/cjs/fragments/drawer-list/DrawerListHelpers.js +52 -58
  156. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  157. package/cjs/fragments/drawer-list/DrawerListItem.d.ts +30 -0
  158. package/cjs/fragments/drawer-list/DrawerListItem.js +106 -0
  159. package/cjs/fragments/drawer-list/DrawerListItem.js.map +1 -0
  160. package/cjs/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
  161. package/cjs/fragments/drawer-list/DrawerListPortal.js +93 -125
  162. package/cjs/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  163. package/cjs/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
  164. package/cjs/fragments/drawer-list/DrawerListProvider.js +11 -18
  165. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  166. package/cjs/shared/Eufemia.d.ts +1 -1
  167. package/cjs/shared/Eufemia.js +2 -2
  168. package/cjs/shared/Eufemia.js.map +1 -1
  169. package/cjs/shared/component-helper.d.ts +45 -48
  170. package/cjs/shared/component-helper.js +72 -201
  171. package/cjs/shared/component-helper.js.map +1 -1
  172. package/cjs/shared/helpers/withCamelCaseProps.d.ts +4 -5
  173. package/cjs/shared/helpers/withCamelCaseProps.js +7 -2
  174. package/cjs/shared/helpers/withCamelCaseProps.js.map +1 -1
  175. package/cjs/shared/legacy/component-helper-legacy.d.ts +19 -0
  176. package/cjs/shared/legacy/component-helper-legacy.js +202 -0
  177. package/cjs/shared/legacy/component-helper-legacy.js.map +1 -0
  178. package/cjs/shared/locales/en-GB.d.ts +1 -0
  179. package/cjs/shared/locales/en-GB.js +1 -0
  180. package/cjs/shared/locales/en-GB.js.map +1 -1
  181. package/cjs/shared/locales/en-US.js.map +1 -1
  182. package/cjs/shared/locales/index.d.ts +2 -0
  183. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  184. package/cjs/shared/locales/nb-NO.js +2 -1
  185. package/cjs/shared/locales/nb-NO.js.map +1 -1
  186. package/cjs/shared/locales/sv-SE.d.ts +1 -0
  187. package/cjs/shared/locales/sv-SE.js +1 -0
  188. package/cjs/shared/locales/sv-SE.js.map +1 -1
  189. package/cjs/style/core/scopes.scss +1 -1
  190. package/cjs/style/dnb-ui-basis.css +1 -1
  191. package/cjs/style/dnb-ui-basis.min.css +1 -1
  192. package/cjs/style/dnb-ui-body.css +1 -1
  193. package/cjs/style/dnb-ui-body.min.css +1 -1
  194. package/cjs/style/dnb-ui-components.css +2 -1
  195. package/cjs/style/dnb-ui-components.min.css +1 -1
  196. package/cjs/style/dnb-ui-core.css +1 -1
  197. package/cjs/style/dnb-ui-core.min.css +1 -1
  198. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
  199. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  200. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
  201. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  202. package/cjs/style/themes/theme-ui/ui-theme-components.css +19 -1
  203. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  204. package/components/autocomplete/Autocomplete.js +6 -3
  205. package/components/autocomplete/Autocomplete.js.map +1 -1
  206. package/components/autocomplete/AutocompleteDocs.d.ts +289 -3
  207. package/components/autocomplete/AutocompleteDocs.js +1 -1
  208. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  209. package/components/button/style/dnb-button.css +1 -0
  210. package/components/button/style/dnb-button.min.css +1 -1
  211. package/components/button/style/dnb-button.scss +1 -0
  212. package/components/checkbox/Checkbox.d.ts +9 -1
  213. package/components/checkbox/Checkbox.js +60 -35
  214. package/components/checkbox/Checkbox.js.map +1 -1
  215. package/components/checkbox/CheckboxDocs.js +6 -1
  216. package/components/checkbox/CheckboxDocs.js.map +1 -1
  217. package/components/date-picker/DatePicker.d.ts +4 -0
  218. package/components/date-picker/DatePicker.js +4 -3
  219. package/components/date-picker/DatePicker.js.map +1 -1
  220. package/components/date-picker/DatePickerCalendar.d.ts +2 -16
  221. package/components/date-picker/DatePickerCalendar.js +27 -86
  222. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  223. package/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
  224. package/components/date-picker/DatePickerCalendarNavigator.js +162 -0
  225. package/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
  226. package/components/date-picker/DatePickerContext.d.ts +3 -0
  227. package/components/date-picker/DatePickerContext.js.map +1 -1
  228. package/components/date-picker/DatePickerDocs.js +6 -1
  229. package/components/date-picker/DatePickerDocs.js.map +1 -1
  230. package/components/date-picker/DatePickerFooter.js +20 -17
  231. package/components/date-picker/DatePickerFooter.js.map +1 -1
  232. package/components/date-picker/DatePickerProvider.js +7 -0
  233. package/components/date-picker/DatePickerProvider.js.map +1 -1
  234. package/components/date-picker/DatePickerRange.js +2 -28
  235. package/components/date-picker/DatePickerRange.js.map +1 -1
  236. package/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
  237. package/components/date-picker/hooks/useSubmittedDates.js +14 -0
  238. package/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
  239. package/components/date-picker/style/dnb-date-picker.css +1 -1
  240. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  241. package/components/date-picker/style/dnb-date-picker.scss +1 -1
  242. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
  243. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  244. package/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
  245. package/components/drawer/Drawer.js +1 -0
  246. package/components/drawer/Drawer.js.map +1 -1
  247. package/components/dropdown/Dropdown.js +6 -4
  248. package/components/dropdown/Dropdown.js.map +1 -1
  249. package/components/dropdown/DropdownDocs.d.ts +179 -3
  250. package/components/dropdown/DropdownDocs.js.map +1 -1
  251. package/components/heading/HeadingHelpers.js +9 -5
  252. package/components/heading/HeadingHelpers.js.map +1 -1
  253. package/components/icon/Icon.d.ts +2 -2
  254. package/components/input-masked/InputMaskedDocs.js +1 -1
  255. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  256. package/components/input-masked/InputMaskedHooks.d.ts +1 -0
  257. package/components/input-masked/InputMaskedHooks.js +39 -7
  258. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  259. package/components/input-masked/InputMaskedUtils.js +6 -5
  260. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  261. package/components/number-format/NumberUtils.js +5 -4
  262. package/components/number-format/NumberUtils.js.map +1 -1
  263. package/components/switch/SwitchDocs.js +2 -2
  264. package/components/switch/SwitchDocs.js.map +1 -1
  265. package/es/components/autocomplete/Autocomplete.js +6 -3
  266. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  267. package/es/components/autocomplete/AutocompleteDocs.d.ts +289 -3
  268. package/es/components/autocomplete/AutocompleteDocs.js +1 -1
  269. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  270. package/es/components/button/style/dnb-button.css +1 -0
  271. package/es/components/button/style/dnb-button.min.css +1 -1
  272. package/es/components/button/style/dnb-button.scss +1 -0
  273. package/es/components/checkbox/Checkbox.d.ts +9 -1
  274. package/es/components/checkbox/Checkbox.js +60 -35
  275. package/es/components/checkbox/Checkbox.js.map +1 -1
  276. package/es/components/checkbox/CheckboxDocs.js +6 -1
  277. package/es/components/checkbox/CheckboxDocs.js.map +1 -1
  278. package/es/components/date-picker/DatePicker.d.ts +4 -0
  279. package/es/components/date-picker/DatePicker.js +4 -3
  280. package/es/components/date-picker/DatePicker.js.map +1 -1
  281. package/es/components/date-picker/DatePickerCalendar.d.ts +2 -16
  282. package/es/components/date-picker/DatePickerCalendar.js +23 -80
  283. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  284. package/es/components/date-picker/DatePickerCalendarNavigator.d.ts +37 -0
  285. package/es/components/date-picker/DatePickerCalendarNavigator.js +158 -0
  286. package/es/components/date-picker/DatePickerCalendarNavigator.js.map +1 -0
  287. package/es/components/date-picker/DatePickerContext.d.ts +3 -0
  288. package/es/components/date-picker/DatePickerContext.js.map +1 -1
  289. package/es/components/date-picker/DatePickerDocs.js +6 -1
  290. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  291. package/es/components/date-picker/DatePickerFooter.js +20 -17
  292. package/es/components/date-picker/DatePickerFooter.js.map +1 -1
  293. package/es/components/date-picker/DatePickerProvider.js +7 -0
  294. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  295. package/es/components/date-picker/DatePickerRange.js +2 -27
  296. package/es/components/date-picker/DatePickerRange.js.map +1 -1
  297. package/es/components/date-picker/hooks/useSubmittedDates.d.ts +7 -0
  298. package/es/components/date-picker/hooks/useSubmittedDates.js +14 -0
  299. package/es/components/date-picker/hooks/useSubmittedDates.js.map +1 -0
  300. package/es/components/date-picker/style/dnb-date-picker.css +1 -1
  301. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  302. package/es/components/date-picker/style/dnb-date-picker.scss +1 -1
  303. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.css +17 -0
  304. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.min.css +1 -1
  305. package/es/components/date-picker/style/themes/dnb-date-picker-theme-ui.scss +19 -0
  306. package/es/components/drawer/Drawer.js +1 -0
  307. package/es/components/drawer/Drawer.js.map +1 -1
  308. package/es/components/dropdown/Dropdown.js +6 -4
  309. package/es/components/dropdown/Dropdown.js.map +1 -1
  310. package/es/components/dropdown/DropdownDocs.d.ts +179 -3
  311. package/es/components/dropdown/DropdownDocs.js.map +1 -1
  312. package/es/components/heading/HeadingHelpers.js +9 -5
  313. package/es/components/heading/HeadingHelpers.js.map +1 -1
  314. package/es/components/icon/Icon.d.ts +2 -2
  315. package/es/components/input-masked/InputMaskedDocs.js +1 -1
  316. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  317. package/es/components/input-masked/InputMaskedHooks.d.ts +1 -0
  318. package/es/components/input-masked/InputMaskedHooks.js +39 -7
  319. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  320. package/es/components/input-masked/InputMaskedUtils.js +6 -5
  321. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  322. package/es/components/number-format/NumberUtils.js +5 -4
  323. package/es/components/number-format/NumberUtils.js.map +1 -1
  324. package/es/components/switch/SwitchDocs.js +2 -2
  325. package/es/components/switch/SwitchDocs.js.map +1 -1
  326. package/es/extensions/forms/DataContext/Context.d.ts +1 -1
  327. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  328. package/es/extensions/forms/DataContext/Provider/Provider.js +9 -0
  329. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  330. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  331. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  332. package/es/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
  333. package/es/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
  334. package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  335. package/es/extensions/forms/Field/Date/Date.d.ts +1 -1
  336. package/es/extensions/forms/Field/Date/Date.js +1 -1
  337. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  338. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  339. package/es/extensions/forms/Field/Number/NumberDocs.js +1 -1
  340. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  341. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  342. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
  343. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  344. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
  345. package/es/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
  346. package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -0
  347. package/es/extensions/forms/Field/Selection/Selection.js +9 -8
  348. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  349. package/es/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
  350. package/es/extensions/forms/Field/Toggle/Toggle.js +24 -6
  351. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  352. package/es/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
  353. package/es/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
  354. package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  355. package/es/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
  356. package/es/extensions/forms/Form/Isolation/IsolatedContainer.js +53 -0
  357. package/es/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
  358. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
  359. package/es/extensions/forms/Form/Isolation/Isolation.js +40 -14
  360. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  361. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
  362. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  363. package/es/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
  364. package/es/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
  365. package/es/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
  366. package/es/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
  367. package/es/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
  368. package/es/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
  369. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
  370. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  371. package/es/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
  372. package/es/extensions/forms/Form/Isolation/IsolationResetButton.js +99 -0
  373. package/es/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
  374. package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
  375. package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js +50 -0
  376. package/es/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
  377. package/es/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
  378. package/es/extensions/forms/Form/Isolation/useHandleStatus.js +48 -0
  379. package/es/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
  380. package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
  381. package/es/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
  382. package/es/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
  383. package/es/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
  384. package/es/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
  385. package/es/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
  386. package/es/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
  387. package/es/extensions/forms/Iterate/EditContainer/index.js +1 -1
  388. package/es/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  389. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
  390. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +16 -55
  391. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  392. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
  393. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  394. package/es/extensions/forms/constants/locales/en-GB.d.ts +1 -1
  395. package/es/extensions/forms/constants/locales/en-GB.js +3 -3
  396. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  397. package/es/extensions/forms/constants/locales/en-US.d.ts +1 -1
  398. package/es/extensions/forms/constants/locales/index.d.ts +2 -2
  399. package/es/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
  400. package/es/extensions/forms/constants/locales/nb-NO.js +3 -3
  401. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  402. package/es/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
  403. package/es/extensions/forms/constants/locales/sv-SE.js +3 -3
  404. package/es/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  405. package/es/extensions/forms/hooks/useDataContext.js +5 -3
  406. package/es/extensions/forms/hooks/useDataContext.js.map +1 -1
  407. package/es/extensions/forms/hooks/useSnapshot.js +18 -15
  408. package/es/extensions/forms/hooks/useSnapshot.js.map +1 -1
  409. package/es/fragments/drawer-list/DrawerList.d.ts +176 -224
  410. package/es/fragments/drawer-list/DrawerList.js +72 -173
  411. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  412. package/es/fragments/drawer-list/DrawerListContext.d.ts +27 -2
  413. package/es/fragments/drawer-list/DrawerListContext.js.map +1 -1
  414. package/es/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
  415. package/es/fragments/drawer-list/DrawerListDocs.js +2 -2
  416. package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  417. package/es/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
  418. package/es/fragments/drawer-list/DrawerListHelpers.js +45 -54
  419. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  420. package/es/fragments/drawer-list/DrawerListItem.d.ts +30 -0
  421. package/es/fragments/drawer-list/DrawerListItem.js +90 -0
  422. package/es/fragments/drawer-list/DrawerListItem.js.map +1 -0
  423. package/es/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
  424. package/es/fragments/drawer-list/DrawerListPortal.js +88 -120
  425. package/es/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  426. package/es/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
  427. package/es/fragments/drawer-list/DrawerListProvider.js +33 -19
  428. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  429. package/es/shared/Eufemia.d.ts +1 -1
  430. package/es/shared/Eufemia.js +2 -2
  431. package/es/shared/Eufemia.js.map +1 -1
  432. package/es/shared/component-helper.d.ts +45 -48
  433. package/es/shared/component-helper.js +20 -183
  434. package/es/shared/component-helper.js.map +1 -1
  435. package/es/shared/helpers/withCamelCaseProps.d.ts +4 -5
  436. package/es/shared/helpers/withCamelCaseProps.js +7 -2
  437. package/es/shared/helpers/withCamelCaseProps.js.map +1 -1
  438. package/es/shared/legacy/component-helper-legacy.d.ts +19 -0
  439. package/es/shared/legacy/component-helper-legacy.js +180 -0
  440. package/es/shared/legacy/component-helper-legacy.js.map +1 -0
  441. package/es/shared/locales/en-GB.d.ts +1 -0
  442. package/es/shared/locales/en-GB.js +1 -0
  443. package/es/shared/locales/en-GB.js.map +1 -1
  444. package/es/shared/locales/en-US.js.map +1 -1
  445. package/es/shared/locales/index.d.ts +2 -0
  446. package/es/shared/locales/nb-NO.d.ts +1 -0
  447. package/es/shared/locales/nb-NO.js +2 -1
  448. package/es/shared/locales/nb-NO.js.map +1 -1
  449. package/es/shared/locales/sv-SE.d.ts +1 -0
  450. package/es/shared/locales/sv-SE.js +1 -0
  451. package/es/shared/locales/sv-SE.js.map +1 -1
  452. package/es/style/core/scopes.scss +1 -1
  453. package/es/style/dnb-ui-basis.css +1 -1
  454. package/es/style/dnb-ui-basis.min.css +1 -1
  455. package/es/style/dnb-ui-body.css +1 -1
  456. package/es/style/dnb-ui-body.min.css +1 -1
  457. package/es/style/dnb-ui-components.css +2 -1
  458. package/es/style/dnb-ui-components.min.css +1 -1
  459. package/es/style/dnb-ui-core.css +1 -1
  460. package/es/style/dnb-ui-core.min.css +1 -1
  461. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
  462. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  463. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
  464. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  465. package/es/style/themes/theme-ui/ui-theme-components.css +19 -1
  466. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  467. package/esm/dnb-ui-basis.min.mjs +1 -1
  468. package/esm/dnb-ui-components.min.mjs +1 -1
  469. package/esm/dnb-ui-elements.min.mjs +1 -1
  470. package/esm/dnb-ui-extensions.min.mjs +2 -2
  471. package/esm/dnb-ui-lib.min.mjs +1 -1
  472. package/extensions/forms/DataContext/Context.d.ts +1 -1
  473. package/extensions/forms/DataContext/Context.js.map +1 -1
  474. package/extensions/forms/DataContext/Provider/Provider.js +9 -0
  475. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  476. package/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  477. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  478. package/extensions/forms/Field/Boolean/BooleanDocs.d.ts +1 -0
  479. package/extensions/forms/Field/Boolean/BooleanDocs.js +7 -0
  480. package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  481. package/extensions/forms/Field/Date/Date.d.ts +1 -1
  482. package/extensions/forms/Field/Date/Date.js +1 -1
  483. package/extensions/forms/Field/Date/Date.js.map +1 -1
  484. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  485. package/extensions/forms/Field/Number/NumberDocs.js +1 -1
  486. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  487. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  488. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +3 -3
  489. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  490. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js +3 -3
  491. package/extensions/forms/Field/SelectCurrency/SelectCurrencyDocs.js.map +1 -1
  492. package/extensions/forms/Field/Selection/Selection.d.ts +2 -0
  493. package/extensions/forms/Field/Selection/Selection.js +10 -9
  494. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  495. package/extensions/forms/Field/Toggle/Toggle.d.ts +7 -0
  496. package/extensions/forms/Field/Toggle/Toggle.js +26 -9
  497. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  498. package/extensions/forms/Field/Toggle/ToggleDocs.d.ts +1 -0
  499. package/extensions/forms/Field/Toggle/ToggleDocs.js +7 -0
  500. package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  501. package/extensions/forms/Form/Isolation/IsolatedContainer.d.ts +4 -0
  502. package/extensions/forms/Form/Isolation/IsolatedContainer.js +54 -0
  503. package/extensions/forms/Form/Isolation/IsolatedContainer.js.map +1 -0
  504. package/extensions/forms/Form/Isolation/Isolation.d.ts +16 -0
  505. package/extensions/forms/Form/Isolation/Isolation.js +40 -15
  506. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  507. package/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -1
  508. package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  509. package/extensions/forms/Form/Isolation/IsolationContext.d.ts +12 -0
  510. package/extensions/forms/Form/Isolation/IsolationContext.js +6 -0
  511. package/extensions/forms/Form/Isolation/IsolationContext.js.map +1 -0
  512. package/extensions/forms/Form/Isolation/IsolationDataReference.d.ts +9 -0
  513. package/extensions/forms/Form/Isolation/IsolationDataReference.js +25 -0
  514. package/extensions/forms/Form/Isolation/IsolationDataReference.js.map +1 -0
  515. package/extensions/forms/Form/Isolation/IsolationDocs.js +15 -0
  516. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  517. package/extensions/forms/Form/Isolation/IsolationResetButton.d.ts +7 -0
  518. package/extensions/forms/Form/Isolation/IsolationResetButton.js +100 -0
  519. package/extensions/forms/Form/Isolation/IsolationResetButton.js.map +1 -0
  520. package/extensions/forms/Form/Isolation/useDataContextSnapshot.d.ts +7 -0
  521. package/extensions/forms/Form/Isolation/useDataContextSnapshot.js +52 -0
  522. package/extensions/forms/Form/Isolation/useDataContextSnapshot.js.map +1 -0
  523. package/extensions/forms/Form/Isolation/useHandleStatus.d.ts +9 -0
  524. package/extensions/forms/Form/Isolation/useHandleStatus.js +51 -0
  525. package/extensions/forms/Form/Isolation/useHandleStatus.js.map +1 -0
  526. package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.js +12 -10
  527. package/extensions/forms/Form/Isolation/useHasContentChanged.js.map +1 -0
  528. package/extensions/forms/Form/Snapshot/Snapshot.d.ts +2 -1
  529. package/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -1
  530. package/extensions/forms/Iterate/EditContainer/ResetButton.js +1 -1
  531. package/extensions/forms/Iterate/EditContainer/ResetButton.js.map +1 -1
  532. package/extensions/forms/Iterate/EditContainer/index.d.ts +1 -1
  533. package/extensions/forms/Iterate/EditContainer/index.js +1 -1
  534. package/extensions/forms/Iterate/EditContainer/index.js.map +1 -1
  535. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +7 -0
  536. package/extensions/forms/Iterate/PushContainer/PushContainer.js +16 -57
  537. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  538. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +2 -2
  539. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  540. package/extensions/forms/constants/locales/en-GB.d.ts +1 -1
  541. package/extensions/forms/constants/locales/en-GB.js +3 -3
  542. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  543. package/extensions/forms/constants/locales/en-US.d.ts +1 -1
  544. package/extensions/forms/constants/locales/index.d.ts +2 -2
  545. package/extensions/forms/constants/locales/nb-NO.d.ts +1 -1
  546. package/extensions/forms/constants/locales/nb-NO.js +3 -3
  547. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  548. package/extensions/forms/constants/locales/sv-SE.d.ts +1 -1
  549. package/extensions/forms/constants/locales/sv-SE.js +3 -3
  550. package/extensions/forms/constants/locales/sv-SE.js.map +1 -1
  551. package/extensions/forms/hooks/useDataContext.js +5 -3
  552. package/extensions/forms/hooks/useDataContext.js.map +1 -1
  553. package/extensions/forms/hooks/useSnapshot.js +18 -15
  554. package/extensions/forms/hooks/useSnapshot.js.map +1 -1
  555. package/fragments/drawer-list/DrawerList.d.ts +176 -224
  556. package/fragments/drawer-list/DrawerList.js +71 -175
  557. package/fragments/drawer-list/DrawerList.js.map +1 -1
  558. package/fragments/drawer-list/DrawerListContext.d.ts +27 -2
  559. package/fragments/drawer-list/DrawerListContext.js.map +1 -1
  560. package/fragments/drawer-list/DrawerListDocs.d.ts +211 -4
  561. package/fragments/drawer-list/DrawerListDocs.js +2 -2
  562. package/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  563. package/fragments/drawer-list/DrawerListHelpers.d.ts +85 -89
  564. package/fragments/drawer-list/DrawerListHelpers.js +45 -53
  565. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  566. package/fragments/drawer-list/DrawerListItem.d.ts +30 -0
  567. package/fragments/drawer-list/DrawerListItem.js +91 -0
  568. package/fragments/drawer-list/DrawerListItem.js.map +1 -0
  569. package/fragments/drawer-list/DrawerListPortal.d.ts +20 -30
  570. package/fragments/drawer-list/DrawerListPortal.js +91 -121
  571. package/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  572. package/fragments/drawer-list/DrawerListProvider.d.ts +217 -11
  573. package/fragments/drawer-list/DrawerListProvider.js +12 -19
  574. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  575. package/package.json +1 -1
  576. package/shared/Eufemia.d.ts +1 -1
  577. package/shared/Eufemia.js +2 -2
  578. package/shared/Eufemia.js.map +1 -1
  579. package/shared/component-helper.d.ts +45 -48
  580. package/shared/component-helper.js +23 -189
  581. package/shared/component-helper.js.map +1 -1
  582. package/shared/helpers/withCamelCaseProps.d.ts +4 -5
  583. package/shared/helpers/withCamelCaseProps.js +7 -2
  584. package/shared/helpers/withCamelCaseProps.js.map +1 -1
  585. package/shared/legacy/component-helper-legacy.d.ts +19 -0
  586. package/shared/legacy/component-helper-legacy.js +185 -0
  587. package/shared/legacy/component-helper-legacy.js.map +1 -0
  588. package/shared/locales/en-GB.d.ts +1 -0
  589. package/shared/locales/en-GB.js +1 -0
  590. package/shared/locales/en-GB.js.map +1 -1
  591. package/shared/locales/en-US.js.map +1 -1
  592. package/shared/locales/index.d.ts +2 -0
  593. package/shared/locales/nb-NO.d.ts +1 -0
  594. package/shared/locales/nb-NO.js +2 -1
  595. package/shared/locales/nb-NO.js.map +1 -1
  596. package/shared/locales/sv-SE.d.ts +1 -0
  597. package/shared/locales/sv-SE.js +1 -0
  598. package/shared/locales/sv-SE.js.map +1 -1
  599. package/style/core/scopes.scss +1 -1
  600. package/style/dnb-ui-basis.css +1 -1
  601. package/style/dnb-ui-basis.min.css +1 -1
  602. package/style/dnb-ui-body.css +1 -1
  603. package/style/dnb-ui-body.min.css +1 -1
  604. package/style/dnb-ui-components.css +2 -1
  605. package/style/dnb-ui-components.min.css +1 -1
  606. package/style/dnb-ui-core.css +1 -1
  607. package/style/dnb-ui-core.min.css +1 -1
  608. package/style/themes/theme-eiendom/eiendom-theme-components.css +19 -1
  609. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  610. package/style/themes/theme-sbanken/sbanken-theme-components.css +19 -1
  611. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  612. package/style/themes/theme-ui/ui-theme-components.css +19 -1
  613. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  614. package/umd/dnb-ui-basis.min.js +1 -1
  615. package/umd/dnb-ui-components.min.js +1 -1
  616. package/umd/dnb-ui-elements.min.js +1 -1
  617. package/umd/dnb-ui-extensions.min.js +1 -1
  618. package/umd/dnb-ui-lib.min.js +1 -1
  619. package/cjs/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
  620. package/es/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
  621. package/extensions/forms/Iterate/EditContainer/useHasContentChanged.js.map +0 -1
  622. /package/cjs/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
  623. /package/es/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
  624. /package/extensions/forms/{Iterate/EditContainer → Form/Isolation}/useHasContentChanged.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"component-helper.js","names":["_react","_interopRequireDefault","require","_keycode","_whatInput","_helpers","_getPreviousSibling","_Eufemia","_InteractionInvalidation","_extendPropsWithContext","_assignPropsWithContext","_filterProps","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","init","whatInput","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","PLATFORM_MAC","setAttribute","PLATFORM_WIN","PLATFORM_LINUX","warn","removeEventListener","readyState","addEventListener","validateDOMAttributes","props","params","attributes","attr","JSON","parse","entries","_ref","key","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","test","exports","processChildren","global","Array","isArray","registeredElements","cache","reverse","map","_ref2","cb","includes","isFrozen","children","createElement","Fragment","Boolean","res","onlyTexts","reduce","pV","cV","join","extendGracefully","first","_len","objects","_key","keepRef","shift","acc1","object","acc2","_ref3","isObject","item","extendDeep","target","undefined","_len2","sources","_key2","source","prototype","hasOwnProperty","isTrue","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","eventObject","event","currentTarget","dataset","replace","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","char","index","arr","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","_ref4","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","l","ignoreElement","current","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","keyCode","keycode","includedKeys","keyupCallback","remove","scrollHeight","offsetHeight","scrollWidth","offsetWidth","overflowIsScrollable","style","getComputedStyle","overflow","overflowX","overflowY","makeUniqueId","prefix","Math","random","toString","substr","idIncrement","slice","slugify","matchAll","string","regex","from","matches","exec","isChildOfElement","element","callback","contains","parentElement","roundToNearest","num","diff","getClosestScrollViewElement","getPreviousSibling","convertJsxToString","elements","separator","transformWord","process","word","React","isValidElement","trim","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","_len3","_key3","combineAriaBy","combineDescribedBy","_len4","_key4","combineDetails","_len5","_key5","type","findElementInChildren","find","result","some","escapeRegexChars","removeUndefinedProps"],"sources":["../../../src/shared/component-helper.js"],"sourcesContent":["/**\n * Component helpers\n *\n */\n\nimport React from 'react'\nimport keycode from './keycode'\nimport whatInput from 'what-input'\nimport {\n warn,\n PLATFORM_MAC,\n PLATFORM_WIN,\n PLATFORM_LINUX,\n} from './helpers'\nimport { getPreviousSibling } from './helpers/getPreviousSibling'\nimport { init } from './Eufemia'\n\nexport { InteractionInvalidation } from './helpers/InteractionInvalidation'\nexport {\n extendPropsWithContext,\n extendPropsWithContextInClassComponent,\n} from './helpers/extendPropsWithContext'\nexport { assignPropsWithContext } from './helpers/assignPropsWithContext'\nexport { filterProps } from './helpers/filterProps'\n\nexport { keycode, getPreviousSibling, warn }\n\ninit()\n\n// run component helper functions\nwhatInput.specificKeys([9])\ndefineNavigator()\n\n/**\n * Check if device is touch device or not\n */\nexport function isTouchDevice() {\n if (typeof document !== 'undefined') {\n let intent = false\n try {\n intent = document.documentElement.getAttribute('data-whatintent')\n } catch (e) {\n //\n }\n return intent === 'touch'\n }\n return false\n}\n\nexport function defineNavigator() {\n const handleNavigator = () => {\n if (\n typeof document === 'undefined' ||\n typeof window === 'undefined' ||\n typeof navigator === 'undefined'\n ) {\n return\n }\n\n try {\n if (!(typeof window !== 'undefined' && window.IS_TEST)) {\n if (navigator.platform.match(new RegExp(PLATFORM_MAC)) !== null) {\n document.documentElement.setAttribute('data-os', 'mac')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_WIN)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'win')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_LINUX)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'linux')\n }\n } else {\n document.documentElement.setAttribute('data-os', 'other')\n }\n } catch (e) {\n warn(e)\n }\n\n document.removeEventListener('DOMContentLoaded', handleNavigator)\n }\n\n if (\n typeof document !== 'undefined' &&\n document.readyState === 'loading'\n ) {\n document.addEventListener('DOMContentLoaded', handleNavigator)\n } else {\n handleNavigator()\n }\n}\n\nexport const validateDOMAttributes = (props, params) => {\n // if there is an \"attributes\" prop, prepare these\n // mostly used for prop example usage\n if (props && props.attributes) {\n let attr = props.attributes\n if (attr) {\n if (attr[0] === '{') {\n attr = JSON.parse(attr)\n }\n if (attr && typeof attr === 'object') {\n Object.entries(attr).forEach(([key, value]) => {\n Object.assign(params, { [key]: value })\n })\n }\n delete params.attributes\n }\n }\n\n // remove disabled, in case it is false (this is for web components support)\n if (params.disabled === null || params.disabled === 'false') {\n delete params.disabled\n }\n if (typeof params.space !== 'undefined') {\n delete params.space\n }\n if (typeof params.top !== 'undefined') {\n delete params.top\n }\n if (typeof params.right !== 'undefined') {\n delete params.right\n }\n if (typeof params.bottom !== 'undefined') {\n delete params.bottom\n }\n if (typeof params.left !== 'undefined') {\n delete params.left\n }\n if (typeof params.no_collapse !== 'undefined') {\n delete params.no_collapse\n }\n if (typeof params.innerSpace !== 'undefined') {\n delete params.innerSpace\n }\n\n // in case disabled is a string, it's enabled, send it in as a true (this is for web components support)\n else if (params.disabled === 'true') {\n params.disabled = true\n }\n if (params.disabled === true) {\n params['aria-disabled'] = true\n }\n\n if (props && props.tabindex) {\n let tabIndex = props.tabindex\n if (tabIndex === 'off') {\n tabIndex = '-1'\n }\n params['tabIndex'] = tabIndex\n }\n\n // make sure we don't return a render prop as a DOM attribute\n if (params && typeof params === 'object') {\n for (const i in params) {\n if (\n // is React\n typeof params[i] === 'function' &&\n // only React Style props, like onClick are allowed\n !/(^[a-z]{1,}[A-Z]{1})/.test(i)\n ) {\n delete params[i]\n\n // filter out invalid attributes\n } else if (\n // we don't want NULL values\n params[i] === null ||\n // we don't want\n /[^a-z-]/i.test(i)\n // (typeof params[i] !== 'string' && /[^a-z-]/i.test(i))\n ) {\n delete params[i]\n }\n }\n }\n\n return params\n}\n\nexport const processChildren = (props) => {\n if (!props) {\n return null\n }\n\n // If used in WB, call functions who starts with \"render_\"\n if (\n typeof global !== 'undefined' &&\n Array.isArray(global.registeredElements) &&\n global.registeredElements.length > 0\n ) {\n let cache = null\n Object.entries(props)\n .reverse()\n .map(([key, cb]) => {\n if (key.includes('render_') && /^render_/.test(key)) {\n if (typeof cb === 'function') {\n if (cache) {\n if (Object.isFrozen(props)) {\n props = { ...props }\n }\n props.children = cache\n }\n return (cache = (\n <React.Fragment key={key}>{cb(props)}</React.Fragment>\n ))\n }\n }\n\n return null\n })\n .filter(Boolean)\n if (cache) {\n return cache\n }\n }\n\n const res =\n typeof props.children === 'function'\n ? props.children(props)\n : props.children\n\n // if we get several react children which represents only a text\n if (Array.isArray(res)) {\n const onlyTexts = res.reduce((pV, cV) => {\n if (typeof cV === 'string' || typeof cV === 'number') {\n pV.push(cV)\n }\n return pV\n }, [])\n\n // if there was one or more text elements\n if (onlyTexts.length === res.length && onlyTexts.length > 0) {\n return onlyTexts.join('')\n }\n }\n\n return res\n}\n\n/** @deprecated Can be removed in v11 */\nexport const extendGracefully = (...objects) => {\n let first = {}\n const keepRef = objects[0]\n\n if (keepRef === true || keepRef === false) {\n // remove settings value\n objects.shift()\n\n if (keepRef) {\n // by extracting the first, we keep the same main object reference\n first = objects.shift()\n }\n }\n\n return objects.reduce((acc1, object) => {\n if (object) {\n acc1 = Object.assign(\n acc1,\n Object.entries(object).reduce((acc2, [key, value]) => {\n if (value !== null) {\n // go recursively\n if (typeof value === 'object') {\n value = extendGracefully(acc1[key] || {}, value)\n if (Object.keys(value).length > 0) {\n acc2[key] = value\n }\n } else {\n acc2[key] = value\n }\n }\n return acc2\n }, {})\n )\n }\n return acc1\n }, first)\n}\n\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item)\n}\n\nexport function extendDeep(target = {}, ...sources) {\n for (const source of sources) {\n if (isObject(source)) {\n for (const key in source) {\n // Prototype-polluting checks etc.\n if (key === '__proto__' || key === 'constructor') continue\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue\n if (!isObject(target)) continue\n\n if (isObject(source[key])) {\n if (!isObject(target[key])) {\n target[key] = {}\n }\n extendDeep(target[key], source[key])\n } else {\n target[key] = source[key]\n }\n }\n }\n }\n\n return target\n}\n\n// check if value is \"truthy\"\nexport const isTrue = (value) => {\n if (\n value !== null &&\n typeof value !== 'undefined' &&\n (String(value) === 'true' || String(value) === '1')\n ) {\n return true\n }\n return false\n}\n\nexport const dispatchCustomElementEvent = (\n src,\n eventName,\n eventObjectOrig\n) => {\n let ret = undefined\n\n const eventObject = {\n ...((eventObjectOrig && eventObjectOrig.event) || {}),\n ...eventObjectOrig,\n }\n\n // distribute dataset like \"data-*\" to both currentTarget and target\n if (eventObject && eventObject.attributes && eventObject.event) {\n const currentTarget = eventObject.event.currentTarget\n if (currentTarget) {\n try {\n // 1. create new dataset, and copy if exists\n const dataset = { ...(currentTarget.dataset || {}) }\n\n // 2. copy in our attributes if they are of \"data-\" type\n const attributes = { ...eventObject.attributes }\n for (const i in attributes) {\n if (/^data-/.test(i)) {\n dataset[String(i).replace(/^data-/, '')] = attributes[i]\n }\n }\n\n // 3. and distribute them to the targets. Use the for method because of immutability\n for (const i in dataset) {\n if (eventObject.event.currentTarget.dataset) {\n eventObject.event.currentTarget.dataset[i] = dataset[i]\n }\n if (\n eventObject.event.target &&\n eventObject.event.target.dataset\n ) {\n eventObject.event.target.dataset[i] = dataset[i]\n }\n }\n } catch (e) {\n warn('Error on handling dataset:', e)\n }\n }\n }\n\n const props = (src && src.props) || src\n\n // call the default snake case event\n if (eventName.includes('_')) {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call Synthetic React event camelCase naming events\n eventName = toCamelCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n } else {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call (in future deprecated) event snake case naming events\n eventName = toSnakeCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n }\n\n return ret\n}\n\n// transform on_click to onClick\nexport const toCamelCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur, i) =>\n acc +\n (i === 0\n ? cur\n : cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n )),\n ''\n )\n\n// transform my_component to MyComponent\nexport const toPascalCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur) =>\n acc +\n cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n ),\n ''\n )\n\n// transform MyComponent to my_component\nexport const toSnakeCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `_${letter}`).toLowerCase()\n\n// transform MyComponent to my-component\nexport const toKebabCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `-${letter}`).toLowerCase()\n\nexport function toCapitalized(str) {\n return typeof str === 'string'\n ? str\n .toLowerCase()\n .split('')\n .map((char, index, arr) =>\n index === 0 || arr[index - 1] === ' ' || arr[index - 1] === '-'\n ? char.toUpperCase()\n : char\n )\n .join('')\n : str\n}\n\n/**\n * [detectOutsideClick Detects a click outside a given DOM element]\n * @param {HTMLElement} ignoreElement [The element we want to protect from a click]\n * @param {Function} onSuccess [Will be called on outside click]\n * @param {Object} [options] [Options]\n * @return {DetectOutsideClickClass} [A new instance of DetectOutsideClickClass]\n */\nexport const detectOutsideClick = (ignoreElements, onSuccess, options) =>\n new DetectOutsideClickClass(ignoreElements, onSuccess, options)\n\n// Used by detectOutsideClick\nexport class DetectOutsideClickClass {\n constructor(ignoreElements, onSuccess, options = {}) {\n if (\n !this.handleClickOutside &&\n typeof document !== 'undefined' &&\n typeof window !== 'undefined'\n ) {\n if (!Array.isArray(ignoreElements)) {\n ignoreElements = [ignoreElements]\n }\n this.handleClickOutside = (event) => {\n this.checkOutsideClick(\n {\n event,\n ignoreElements,\n },\n () => typeof onSuccess === 'function' && onSuccess({ event })\n )\n }\n document.addEventListener('mousedown', this.handleClickOutside)\n\n this.keydownCallback = (event) => {\n const keyCode = keycode(event)\n if (keyCode === 'esc') {\n window.removeEventListener('keydown', this.keydownCallback)\n if (typeof onSuccess === 'function') {\n onSuccess({ event })\n }\n }\n }\n window.addEventListener('keydown', this.keydownCallback)\n\n // e.g. includedKeys = ['tab']\n if (options.includedKeys) {\n // use keyup so we get the correct new target\n this.keyupCallback = (event) => {\n const keyCode = keycode(event)\n if (\n options.includedKeys.includes(keyCode) &&\n typeof this.handleClickOutside === 'function'\n ) {\n this.handleClickOutside(event, () => {\n if (this.keyupCallback)\n window.removeEventListener('keyup', this.keyupCallback)\n })\n }\n }\n window.addEventListener('keyup', this.keyupCallback)\n }\n }\n }\n\n remove() {\n if (this.handleClickOutside && typeof document !== 'undefined') {\n document.removeEventListener('mousedown', this.handleClickOutside)\n this.handleClickOutside = null\n }\n if (this.keydownCallback && typeof window !== 'undefined') {\n window.removeEventListener('keydown', this.keydownCallback)\n this.keydownCallback = null\n }\n if (this.keyupCallback && typeof window !== 'undefined') {\n window.removeEventListener('keyup', this.keyupCallback)\n this.keyupCallback = null\n }\n }\n\n checkOutsideClick = ({ event, ignoreElements }, onSuccess = null) => {\n try {\n const currentElement = event.target\n\n // we also check if currentElement is documentElement\n // and if it has scrollbars, we then ignore the click\n if (\n currentElement?.tagName === 'HTML' &&\n (event.pageX > document.documentElement.clientWidth - 40 ||\n event.pageY > document.documentElement.clientHeight - 40)\n ) {\n return // stop here\n }\n\n // check if element has e.g. \"overflow: scroll\"\n if (checkIfHasScrollbar(currentElement)) {\n return // stop here\n }\n\n // check the rest\n for (let i = 0, elem, l = ignoreElements.length; i < l; ++i) {\n // Allow for comparing ref elements that are rendered conditionally,\n // That might be `null` or ´undefined` during the construction stage of this class\n\n const ignoreElement =\n ignoreElements[i] && 'current' in ignoreElements[i]\n ? ignoreElements[i].current\n : ignoreElements[i]\n\n elem = currentElement\n if (!ignoreElements[i]) {\n continue\n }\n do {\n if (elem === ignoreElement) {\n return // stop here\n }\n elem = elem && elem.parentNode\n } while (elem)\n }\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n } catch (e) {\n warn(e)\n }\n }\n}\n\nexport const checkIfHasScrollbar = (elem) => {\n return (\n elem &&\n (elem.scrollHeight > elem.offsetHeight ||\n elem.scrollWidth > elem.offsetWidth) &&\n overflowIsScrollable(elem)\n )\n}\nconst overflowIsScrollable = (elem) => {\n const style =\n typeof window !== 'undefined' ? window.getComputedStyle(elem) : {}\n return /scroll|auto/i.test(\n (style.overflow || '') +\n (style.overflowX || '') +\n (style.overflowY || '')\n )\n}\n\nexport const makeUniqueId = (prefix = 'id-', length = 8) =>\n prefix +\n String(\n Math.random().toString(36).substr(2, length) + idIncrement++\n ).slice(-length)\nlet idIncrement = 0\n\nexport const slugify = (s) =>\n String(s)\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/[\\s_-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n\n// NB: in future we can use String.matchAll() instead\nexport const matchAll = (string, regex) => {\n if (typeof string.matchAll === 'function') {\n return Array.from(string.matchAll(regex))\n }\n const matches = []\n let match\n while ((match = regex.exec(string))) {\n matches.push(match)\n }\n return matches\n}\n\n/**\n * Check if an element exists in its children\n * If it finds it, the child \"element\" of target will be returned.\n *\n * @param {HTMLElement} element The DOM Element to find\n * @param {HTMLElement} target The DOM Element that should contain \"element\"\n * @param {function} callback (optional)\n * @returns {HTMLElement | null} Returns the found child of all existing dom elements inside of \"target\"\n */\nexport const isChildOfElement = (element, target, callback = null) => {\n try {\n const contains = (element) => {\n if (callback) {\n const res = callback(element)\n if (res) {\n return element\n }\n }\n return element && element === target\n }\n\n if (contains(element)) {\n return element\n }\n\n while (\n (element = element && element.parentElement) &&\n !contains(element)\n );\n } catch (e) {\n //\n }\n\n return element\n}\n\n// Round number to nearest target number\nexport const roundToNearest = (num, target) => {\n const diff = num % target\n return diff > target / 2 ? num - diff + target : num - diff\n}\n\nexport const getClosestScrollViewElement = (currentElement) => {\n return getPreviousSibling('.dnb-scroll-view', currentElement)\n}\n\nexport const convertJsxToString = (\n elements,\n separator = undefined,\n transformWord = undefined\n) => {\n if (!Array.isArray(elements)) {\n elements = [elements]\n }\n\n const process = (word) => {\n if (React.isValidElement(word)) {\n if (transformWord) {\n word = transformWord(word)\n }\n\n if (typeof word.props.children === 'string') {\n word = word.props.children.trim()\n } else if (Array.isArray(word.props.children)) {\n word = word.props.children.reduce((acc, word) => {\n if (typeof word !== 'string') {\n word = process(word, separator, transformWord)\n }\n if (typeof word === 'string') {\n acc = (acc + (separator || '') + word).trim()\n }\n return acc\n }, '')\n } else {\n return null\n }\n }\n\n return word\n }\n\n return elements\n .map((word) => process(word))\n .filter(Boolean)\n .join(separator)\n .trim()\n}\n\nexport function convertStatusToStateOnly(status, state) {\n return status ? state : null\n}\n\nexport function getStatusState(status) {\n return (\n status && status !== 'error' && status !== 'warn' && status !== 'info'\n )\n}\n\nexport function combineLabelledBy(...params) {\n return combineAriaBy('aria-labelledby', params)\n}\nexport function combineDescribedBy(...params) {\n return combineAriaBy('aria-describedby', params)\n}\nexport function combineDetails(...params) {\n return combineAriaBy('aria-details', params)\n}\nfunction combineAriaBy(type, params) {\n params = params.map((cur) => {\n if (Array.isArray(cur)) {\n return cur.join(' ')\n }\n if (cur && params.includes(cur[type])) {\n return null\n }\n if (cur && typeof cur[type] !== 'undefined') {\n cur = cur[type]\n }\n if (typeof cur !== 'string') {\n cur = null\n }\n return cur\n })\n params = params.filter(Boolean).join(' ')\n if (params === '') {\n params = undefined\n }\n return params\n}\n\nexport function findElementInChildren(children, find) {\n if (!Array.isArray(children)) {\n children = [children]\n }\n\n let result = null\n children.some((cur) => {\n if (cur && cur.props && cur.props.children) {\n const res = findElementInChildren(cur.props.children, find)\n if (res) {\n return (result = res)\n }\n }\n if (React.isValidElement(cur) && find(cur)) {\n return (result = cur)\n }\n return null\n })\n\n return result\n}\n\nexport function escapeRegexChars(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, '\\\\$&')\n}\n\nexport function removeUndefinedProps(object) {\n Object.keys(object || {}).forEach((key) => {\n if (object[key] === undefined) {\n delete object[key]\n }\n })\n return object\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"component-helper.js","names":["_react","_interopRequireDefault","require","_keycode","_whatInput","_helpers","_getPreviousSibling","_Eufemia","_componentHelperLegacy","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_InteractionInvalidation","_extendPropsWithContext","_assignPropsWithContext","_filterProps","e","__esModule","default","ownKeys","r","t","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","push","apply","_objectSpread","arguments","length","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","init","whatInput","specificKeys","defineNavigator","validateDOMAttributes","props","params","attributes","attr","JSON","parse","entries","_ref","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","test","extendGracefully","first","_len","objects","Array","_key","keepRef","shift","reduce","acc1","object","acc2","_ref2","isObject","item","isArray","extendDeep","target","undefined","_len2","sources","_key2","source","isTrue","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","eventObject","event","currentTarget","dataset","replace","warn","includes","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","map","char","index","arr","join","makeUniqueId","prefix","Math","random","toString","substr","idIncrement","slice","slugify","matchAll","string","regex","from","matches","match","exec","isChildOfElement","element","callback","contains","res","parentElement","roundToNearest","num","diff","getClosestScrollViewElement","currentElement","getPreviousSibling","convertJsxToString","elements","separator","transformWord","process","word","React","isValidElement","children","trim","Boolean","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","_len3","_key3","combineAriaBy","combineDescribedBy","_len4","_key4","combineDetails","_len5","_key5","type","findElementInChildren","find","result","some","escapeRegexChars","removeUndefinedProps"],"sources":["../../../src/shared/component-helper.ts"],"sourcesContent":["/**\n * Component helpers\n *\n */\n\nimport React from 'react'\n\nimport keycode from './keycode'\nimport whatInput from 'what-input'\nimport { warn } from './helpers'\nimport { getPreviousSibling } from './helpers/getPreviousSibling'\nimport { init } from './Eufemia'\nimport { defineNavigator } from './legacy/component-helper-legacy'\n\nexport * from './legacy/component-helper-legacy'\nexport { InteractionInvalidation } from './helpers/InteractionInvalidation'\nexport {\n extendPropsWithContext,\n extendPropsWithContextInClassComponent,\n} from './helpers/extendPropsWithContext'\nexport { assignPropsWithContext } from './helpers/assignPropsWithContext'\nexport { filterProps } from './helpers/filterProps'\n\nexport { keycode, getPreviousSibling, warn }\n\ninit()\n\n// run component helper functions\nwhatInput.specificKeys([9])\ndefineNavigator()\n\nexport const validateDOMAttributes = (props, params) => {\n // if there is an \"attributes\" prop, prepare these\n // mostly used for prop example usage\n if (props && props.attributes) {\n let attr = props.attributes\n if (attr) {\n if (attr[0] === '{') {\n attr = JSON.parse(attr)\n }\n if (attr && typeof attr === 'object') {\n Object.entries(attr).forEach(([key, value]) => {\n Object.assign(params, { [key]: value })\n })\n }\n delete params.attributes\n }\n }\n\n // remove disabled, in case it is false (this is for web components support)\n if (params.disabled === null || params.disabled === 'false') {\n delete params.disabled\n }\n if (typeof params.space !== 'undefined') {\n delete params.space\n }\n if (typeof params.top !== 'undefined') {\n delete params.top\n }\n if (typeof params.right !== 'undefined') {\n delete params.right\n }\n if (typeof params.bottom !== 'undefined') {\n delete params.bottom\n }\n if (typeof params.left !== 'undefined') {\n delete params.left\n }\n if (typeof params.no_collapse !== 'undefined') {\n delete params.no_collapse\n }\n if (typeof params.innerSpace !== 'undefined') {\n delete params.innerSpace\n }\n\n // in case disabled is a string, it's enabled, send it in as a true (this is for web components support)\n else if (params.disabled === 'true') {\n params.disabled = true\n }\n if (params.disabled === true) {\n params['aria-disabled'] = true\n }\n\n if (props && props.tabindex) {\n let tabIndex = props.tabindex\n if (tabIndex === 'off') {\n tabIndex = '-1'\n }\n params['tabIndex'] = tabIndex\n }\n\n // make sure we don't return a render prop as a DOM attribute\n if (params && typeof params === 'object') {\n for (const i in params) {\n if (\n // is React\n typeof params[i] === 'function' &&\n // only React Style props, like onClick are allowed\n !/(^[a-z]{1,}[A-Z]{1})/.test(i)\n ) {\n delete params[i]\n\n // filter out invalid attributes\n } else if (\n // we don't want NULL values\n params[i] === null ||\n // we don't want\n /[^a-z-]/i.test(i)\n // (typeof params[i] !== 'string' && /[^a-z-]/i.test(i))\n ) {\n delete params[i]\n }\n }\n }\n\n return params\n}\n\n/** @deprecated Can be removed in v11 */\nexport const extendGracefully = (...objects) => {\n let first = {}\n const keepRef = objects[0]\n\n if (keepRef === true || keepRef === false) {\n // remove settings value\n objects.shift()\n\n if (keepRef) {\n // by extracting the first, we keep the same main object reference\n first = objects.shift()\n }\n }\n\n return objects.reduce((acc1, object) => {\n if (object) {\n acc1 = Object.assign(\n acc1,\n Object.entries(object).reduce((acc2, [key, value]) => {\n if (value !== null) {\n // go recursively\n if (typeof value === 'object') {\n value = extendGracefully(acc1[key] || {}, value)\n if (Object.keys(value).length > 0) {\n acc2[key] = value\n }\n } else {\n acc2[key] = value\n }\n }\n return acc2\n }, {})\n )\n }\n return acc1\n }, first)\n}\n\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item)\n}\n\nexport function extendDeep(target = {}, ...sources) {\n for (const source of sources) {\n if (isObject(source)) {\n for (const key in source) {\n // Prototype-polluting checks etc.\n if (key === '__proto__' || key === 'constructor') continue\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue\n if (!isObject(target)) continue\n\n if (isObject(source[key])) {\n if (!isObject(target[key])) {\n target[key] = {}\n }\n extendDeep(target[key], source[key])\n } else {\n target[key] = source[key]\n }\n }\n }\n }\n\n return target\n}\n\n// check if value is \"truthy\"\nexport const isTrue = (value) => {\n if (\n value !== null &&\n typeof value !== 'undefined' &&\n (String(value) === 'true' || String(value) === '1')\n ) {\n return true\n }\n return false\n}\n\nexport const dispatchCustomElementEvent = (\n src,\n eventName,\n eventObjectOrig = undefined\n) => {\n let ret = undefined\n\n const eventObject = {\n ...((eventObjectOrig && eventObjectOrig.event) || {}),\n ...eventObjectOrig,\n }\n\n // distribute dataset like \"data-*\" to both currentTarget and target\n if (eventObject && eventObject.attributes && eventObject.event) {\n const currentTarget = eventObject.event.currentTarget\n if (currentTarget) {\n try {\n // 1. create new dataset, and copy if exists\n const dataset = { ...(currentTarget.dataset || {}) }\n\n // 2. copy in our attributes if they are of \"data-\" type\n const attributes = { ...eventObject.attributes }\n for (const i in attributes) {\n if (/^data-/.test(i)) {\n dataset[String(i).replace(/^data-/, '')] = attributes[i]\n }\n }\n\n // 3. and distribute them to the targets. Use the for method because of immutability\n for (const i in dataset) {\n if (eventObject.event.currentTarget.dataset) {\n eventObject.event.currentTarget.dataset[i] = dataset[i]\n }\n if (\n eventObject.event.target &&\n eventObject.event.target.dataset\n ) {\n eventObject.event.target.dataset[i] = dataset[i]\n }\n }\n } catch (e) {\n warn('Error on handling dataset:', e)\n }\n }\n }\n\n const props = (src && src.props) || src\n\n // call the default snake case event\n if (eventName.includes('_')) {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call Synthetic React event camelCase naming events\n eventName = toCamelCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n } else {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call (in future deprecated) event snake case naming events\n eventName = toSnakeCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n }\n\n return ret\n}\n\n// transform on_click to onClick\nexport const toCamelCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur, i) =>\n acc +\n (i === 0\n ? cur\n : cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n )),\n ''\n )\n\n// transform my_component to MyComponent\nexport const toPascalCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur) =>\n acc +\n cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n ),\n ''\n )\n\n// transform MyComponent to my_component\nexport const toSnakeCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `_${letter}`).toLowerCase()\n\n// transform MyComponent to my-component\nexport const toKebabCase = (str) =>\n str.replace(/\\B[A-Z]/g, (letter) => `-${letter}`).toLowerCase()\n\nexport function toCapitalized(str) {\n return typeof str === 'string'\n ? str\n .toLowerCase()\n .split('')\n .map((char, index, arr) =>\n index === 0 || arr[index - 1] === ' ' || arr[index - 1] === '-'\n ? char.toUpperCase()\n : char\n )\n .join('')\n : str\n}\n\nexport const makeUniqueId = (prefix = 'id-', length = 8) =>\n prefix +\n String(\n Math.random().toString(36).substr(2, length) + idIncrement++\n ).slice(-length)\nlet idIncrement = 0\n\nexport const slugify = (s) =>\n String(s)\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/[\\s_-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n\n// NB: in future we can use String.matchAll() instead\nexport const matchAll = (string, regex) => {\n if (typeof string.matchAll === 'function') {\n return Array.from(string.matchAll(regex))\n }\n const matches = []\n let match\n while ((match = regex.exec(string))) {\n matches.push(match)\n }\n return matches\n}\n\n/**\n * Check if an element exists in its children\n * If it finds it, the child \"element\" of target will be returned.\n *\n * @param {HTMLElement} element The DOM Element to find\n * @param {HTMLElement} target The DOM Element that should contain \"element\"\n * @param {function} callback (optional)\n * @returns {HTMLElement | null} Returns the found child of all existing dom elements inside of \"target\"\n */\nexport const isChildOfElement = (element, target, callback = null) => {\n try {\n const contains = (element) => {\n if (callback) {\n const res = callback(element)\n if (res) {\n return element\n }\n }\n return element && element === target\n }\n\n if (contains(element)) {\n return element\n }\n\n while (\n (element = element && element.parentElement) &&\n !contains(element)\n );\n } catch (e) {\n //\n }\n\n return element\n}\n\n// Round number to nearest target number\nexport const roundToNearest = (num, target) => {\n const diff = num % target\n return diff > target / 2 ? num - diff + target : num - diff\n}\n\nexport const getClosestScrollViewElement = (currentElement) => {\n return getPreviousSibling('.dnb-scroll-view', currentElement)\n}\n\nexport function convertJsxToString(\n elements: React.ReactNode | React.ReactNode[],\n separator: string = undefined,\n transformWord: (\n element: React.ReactElement\n ) => React.ReactElement<unknown> = undefined\n): string {\n if (!Array.isArray(elements)) {\n elements = [elements]\n }\n\n const process = (word: React.ReactNode) => {\n if (React.isValidElement(word)) {\n if (transformWord) {\n word = transformWord(word)\n }\n\n if (Array.isArray(word.props.children)) {\n word = word.props.children.reduce((acc, word) => {\n if (typeof word !== 'string') {\n word = process(word)\n }\n if (typeof word === 'string') {\n acc = (acc + (separator || '') + word).trim()\n }\n return acc\n }, '')\n } else if (word.props.children) {\n word = word.props.children\n if (typeof word !== 'string') {\n word = process(word)\n }\n if (typeof word === 'string') {\n word = word.trim()\n } else {\n return undefined\n }\n } else {\n return undefined\n }\n }\n\n return word\n }\n\n return Array.from(elements)\n .map((word) => process(word))\n .filter(Boolean)\n .join(separator)\n .trim()\n}\n\nexport function convertStatusToStateOnly(status, state) {\n return status ? state : null\n}\n\nexport function getStatusState(status) {\n return (\n status && status !== 'error' && status !== 'warn' && status !== 'info'\n )\n}\n\nexport function combineLabelledBy(...params) {\n return combineAriaBy('aria-labelledby', params)\n}\nexport function combineDescribedBy(...params) {\n return combineAriaBy('aria-describedby', params)\n}\nexport function combineDetails(...params) {\n return combineAriaBy('aria-details', params)\n}\nfunction combineAriaBy(type, params) {\n params = params.map((cur) => {\n if (Array.isArray(cur)) {\n return cur.join(' ')\n }\n if (cur && params.includes(cur[type])) {\n return null\n }\n if (cur && typeof cur[type] !== 'undefined') {\n cur = cur[type]\n }\n if (typeof cur !== 'string') {\n cur = null\n }\n return cur\n })\n params = params.filter(Boolean).join(' ')\n if (params === '') {\n params = undefined\n }\n return params\n}\n\nexport function findElementInChildren(children, find) {\n if (!Array.isArray(children)) {\n children = [children]\n }\n\n let result = null\n children.some((cur) => {\n if (cur && cur.props && cur.props.children) {\n const res = findElementInChildren(cur.props.children, find)\n if (res) {\n return (result = res)\n }\n }\n if (React.isValidElement(cur) && find(cur)) {\n return (result = cur)\n }\n return null\n })\n\n return result\n}\n\nexport function escapeRegexChars(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#]/g, '\\\\$&')\n}\n\nexport function removeUndefinedProps(object) {\n Object.keys(object || {}).forEach((key) => {\n if (object[key] === undefined) {\n delete object[key]\n }\n })\n return object\n}\n"],"mappings":"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","ignoreList":[]}
@@ -21,12 +21,11 @@ export declare function withCamelCaseProps<TBase, P>(Base: React.FunctionCompone
21
21
  export declare function classWithCamelCaseProps<TBase extends React.ComponentClass>(Base: TBase): typeof Base;
22
22
  /**
23
23
  * Converts camel case props to snake case props.
24
- *
25
- * @template P - The type of the props object.
26
- * @param {P} props - The props object to convert.
27
- * @returns {P} - The converted props object.
28
24
  */
29
- export declare function convertCamelCasePropsToSnakeCase<P>(props: P): P;
25
+ export declare function convertCamelCasePropsToSnakeCase<P>(props: P, validProperties?: Array<string> | ReadonlyArray<string>): P;
26
+ export type AssertNoMissing<T extends readonly string[], P extends Record<string, unknown>> = Exclude<Extract<keyof P, `${string}_${string}`>, T[number]> extends never ? T : never;
27
+ type KeysMatching<T, P extends string> = Extract<keyof T, P>;
28
+ export type KeysWithUnderscore<T> = KeysMatching<T, `${string}_${string}`>;
30
29
  /**
31
30
  * Convert recursively Types from snake_case to camelCase
32
31
  *
@@ -49,9 +49,10 @@ function classWithCamelCaseProps(Base) {
49
49
  });
50
50
  return Derived;
51
51
  }
52
- function convertCamelCasePropsToSnakeCase(props) {
52
+ function convertCamelCasePropsToSnakeCase(props, validProperties) {
53
53
  const isFrozen = Object.isFrozen(props);
54
54
  const newProps = isFrozen ? _objectSpread({}, props) : props;
55
+ const hasValidProperties = Array.isArray(validProperties);
55
56
  for (const key in props) {
56
57
  switch (key) {
57
58
  case 'className':
@@ -60,7 +61,11 @@ function convertCamelCasePropsToSnakeCase(props) {
60
61
  }
61
62
  }
62
63
  if (/^[a-z]+[A-Z]/.test(key)) {
63
- newProps[(0, _componentHelper.toSnakeCase)(key)] = props[key];
64
+ const name = (0, _componentHelper.toSnakeCase)(key);
65
+ if (hasValidProperties && !(validProperties !== null && validProperties !== void 0 && validProperties.includes(name))) {
66
+ continue;
67
+ }
68
+ newProps[name] = props[key];
64
69
  delete newProps[key];
65
70
  }
66
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"withCamelCaseProps.js","names":["_react","_interopRequireDefault","require","_componentHelper","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","withCamelCaseProps","Base","Component","Derived","props","createElement","convertCamelCasePropsToSnakeCase","name","classWithCamelCaseProps","componentDidMount","render","_prevProps","_elem","displayName","isFrozen","newProps","key","test","toSnakeCase","freeze"],"sources":["../../../../src/shared/helpers/withCamelCaseProps.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport React from 'react'\nimport { toSnakeCase } from '../component-helper'\n\n/**\n * withCamelCaseProps is a HOC for function components\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToCamelCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function withCamelCaseProps<TBase, P>(\n Base: React.FunctionComponent<P> & TBase\n): typeof Base {\n const Component: React.ComponentType = Base\n\n const Derived = (props: P) => {\n return <Component {...convertCamelCasePropsToSnakeCase(props)} />\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n for (const name in Base) {\n Object.defineProperty(Derived, name, {\n value: Base[name],\n })\n }\n\n // @ts-ignore\n return Derived\n}\n\n/**\n * withCamelCaseProps is a HOC for classes\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToCamelCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function classWithCamelCaseProps<\n TBase extends React.ComponentClass,\n>(Base: TBase): typeof Base {\n const Component: React.ComponentClass = Base\n\n // Bug? https://github.com/microsoft/TypeScript/issues/37142\n // @ts-ignore\n class Derived extends Base {\n _prevProps: Record<string, unknown>\n _elem: React.ReactElement\n\n componentDidMount() {\n // ensures we do not run componentDidMount twice\n }\n\n render() {\n if (this.props !== this._prevProps) {\n this._prevProps = this.props\n this._elem = (\n // @ts-ignore\n <Component {...convertCamelCasePropsToSnakeCase(this.props)} />\n )\n }\n\n return this._elem\n }\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n Object.defineProperty(Derived, 'displayName', {\n value: Base.displayName || Base.name,\n })\n\n return Derived\n}\n\n/**\n * Converts camel case props to snake case props.\n *\n * @template P - The type of the props object.\n * @param {P} props - The props object to convert.\n * @returns {P} - The converted props object.\n */\nexport function convertCamelCasePropsToSnakeCase<P>(props: P) {\n const isFrozen = Object.isFrozen(props)\n const newProps = isFrozen ? { ...props } : props\n\n for (const key in props) {\n switch (key) {\n case 'className': {\n continue\n }\n }\n\n if (/^[a-z]+[A-Z]/.test(key)) {\n newProps[toSnakeCase(key)] = props[key]\n delete newProps[key]\n }\n }\n\n return isFrozen ? Object.freeze(newProps) : newProps\n}\n\n/**\n * Convert recursively Types from snake_case to camelCase\n *\n * Use it like so:\n * OriginalProps & ToCamelCase<OriginalProps>\n *\n * Disclaimer: Be careful using these with required props\n * - ToCamelCase makes the required snake_case props also required in camelCase\n * - ToCamelCasePartial removes required for the camelCase props\n * - ToCamelCaseFlat is like ToCamelCase, but it will not convert nested objects for performance boost\n * - ToCamelCasePartialFlat is like ToCamelCasePartial, but it will not convert nested objects for performance boost\n */\nexport type ToCamelCasePartial<T> = Partial<ToCamelCase<T>>\nexport type ToCamelCase<T> = T extends object\n ? {\n [K in keyof T as ConvertSnakeToCamelCase<K & string>]:\n | T[K]\n | ToCamelCase<T[K]>\n }\n : T\nexport type IncludeCamelCase<T> = Partial<T> & ToCamelCasePartial<T>\ntype ConvertSnakeToCamelCase<S extends string> =\n S extends `${infer T}_${infer U}`\n ? `${T}${Capitalize<ConvertSnakeToCamelCase<U>>}`\n : S\n\ntype ConvertObjectKeysToCamelCase<T> = {\n [K in keyof T as ConvertSnakeToCamelCase<K & string>]: T[K]\n}\nexport type ToCamelCaseFlat<T> = T extends object\n ? ConvertObjectKeysToCamelCase<T>\n : T\nexport type ToCamelCasePartialFlat<T> = Partial<ToCamelCaseFlat<T>>\n"],"mappings":";;;;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAAiD,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAW1C,SAAS8B,kBAAkBA,CAChCC,IAAwC,EAC3B;EACb,MAAMC,SAA8B,GAAGD,IAAI;EAE3C,MAAME,OAAO,GAAIC,KAAQ,IAAK;IAC5B,OAAO3C,MAAA,CAAAM,OAAA,CAAAsC,aAAA,CAACH,SAAS,EAAKI,gCAAgC,CAACF,KAAK,CAAI,CAAC;EACnE,CAAC;EAEDjC,MAAM,CAACgB,cAAc,CAACgB,OAAO,EAAE,MAAM,EAAE;IACrCd,KAAK,EAAEY,IAAI,CAACM;EACd,CAAC,CAAC;EAEF,KAAK,MAAMA,IAAI,IAAIN,IAAI,EAAE;IACvB9B,MAAM,CAACgB,cAAc,CAACgB,OAAO,EAAEI,IAAI,EAAE;MACnClB,KAAK,EAAEY,IAAI,CAACM,IAAI;IAClB,CAAC,CAAC;EACJ;EAGA,OAAOJ,OAAO;AAChB;AAWO,SAASK,uBAAuBA,CAErCP,IAAW,EAAe;EAC1B,MAAMC,SAA+B,GAAGD,IAAI;EAI5C,MAAME,OAAO,SAASF,IAAI,CAAC;IAIzBQ,iBAAiBA,CAAA,EAAG,CAEpB;IAEAC,MAAMA,CAAA,EAAG;MACP,IAAI,IAAI,CAACN,KAAK,KAAK,IAAI,CAACO,UAAU,EAAE;QAClC,IAAI,CAACA,UAAU,GAAG,IAAI,CAACP,KAAK;QAC5B,IAAI,CAACQ,KAAK,GAERnD,MAAA,CAAAM,OAAA,CAAAsC,aAAA,CAACH,SAAS,EAAKI,gCAAgC,CAAC,IAAI,CAACF,KAAK,CAAI,CAC/D;MACH;MAEA,OAAO,IAAI,CAACQ,KAAK;IACnB;EACF;EAEAzC,MAAM,CAACgB,cAAc,CAACgB,OAAO,EAAE,MAAM,EAAE;IACrCd,KAAK,EAAEY,IAAI,CAACM;EACd,CAAC,CAAC;EAEFpC,MAAM,CAACgB,cAAc,CAACgB,OAAO,EAAE,aAAa,EAAE;IAC5Cd,KAAK,EAAEY,IAAI,CAACY,WAAW,IAAIZ,IAAI,CAACM;EAClC,CAAC,CAAC;EAEF,OAAOJ,OAAO;AAChB;AASO,SAASG,gCAAgCA,CAAIF,KAAQ,EAAE;EAC5D,MAAMU,QAAQ,GAAG3C,MAAM,CAAC2C,QAAQ,CAACV,KAAK,CAAC;EACvC,MAAMW,QAAQ,GAAGD,QAAQ,GAAAlC,aAAA,KAAQwB,KAAK,IAAKA,KAAK;EAEhD,KAAK,MAAMY,GAAG,IAAIZ,KAAK,EAAE;IACvB,QAAQY,GAAG;MACT,KAAK,WAAW;QAAE;UAChB;QACF;IACF;IAEA,IAAI,cAAc,CAACC,IAAI,CAACD,GAAG,CAAC,EAAE;MAC5BD,QAAQ,CAAC,IAAAG,4BAAW,EAACF,GAAG,CAAC,CAAC,GAAGZ,KAAK,CAACY,GAAG,CAAC;MACvC,OAAOD,QAAQ,CAACC,GAAG,CAAC;IACtB;EACF;EAEA,OAAOF,QAAQ,GAAG3C,MAAM,CAACgD,MAAM,CAACJ,QAAQ,CAAC,GAAGA,QAAQ;AACtD","ignoreList":[]}
1
+ {"version":3,"file":"withCamelCaseProps.js","names":["_react","_interopRequireDefault","require","_componentHelper","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","withCamelCaseProps","Base","Component","Derived","props","createElement","convertCamelCasePropsToSnakeCase","name","classWithCamelCaseProps","componentDidMount","render","_prevProps","_elem","displayName","validProperties","isFrozen","newProps","hasValidProperties","Array","isArray","key","test","toSnakeCase","includes","freeze"],"sources":["../../../../src/shared/helpers/withCamelCaseProps.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport React from 'react'\nimport { toSnakeCase } from '../component-helper'\n\n/**\n * withCamelCaseProps is a HOC for function components\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToCamelCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function withCamelCaseProps<TBase, P>(\n Base: React.FunctionComponent<P> & TBase\n): typeof Base {\n const Component: React.ComponentType = Base\n\n const Derived = (props: P) => {\n return <Component {...convertCamelCasePropsToSnakeCase(props)} />\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n for (const name in Base) {\n Object.defineProperty(Derived, name, {\n value: Base[name],\n })\n }\n\n // @ts-ignore\n return Derived\n}\n\n/**\n * withCamelCaseProps is a HOC for classes\n * it will return a React Component where all snake_case props gets converted to camelCase\n *\n * Use the same for TypeScript types by using: ToCamelCase\n *\n * @param Base the original function or class\n * @returns extended function or class\n */\nexport function classWithCamelCaseProps<\n TBase extends React.ComponentClass,\n>(Base: TBase): typeof Base {\n const Component: React.ComponentClass = Base\n\n // Bug? https://github.com/microsoft/TypeScript/issues/37142\n // @ts-ignore\n class Derived extends Base {\n _prevProps: Record<string, unknown>\n _elem: React.ReactElement\n\n componentDidMount() {\n // ensures we do not run componentDidMount twice\n }\n\n render() {\n if (this.props !== this._prevProps) {\n this._prevProps = this.props\n this._elem = (\n // @ts-ignore\n <Component {...convertCamelCasePropsToSnakeCase(this.props)} />\n )\n }\n\n return this._elem\n }\n }\n\n Object.defineProperty(Derived, 'name', {\n value: Base.name,\n })\n\n Object.defineProperty(Derived, 'displayName', {\n value: Base.displayName || Base.name,\n })\n\n return Derived\n}\n\n/**\n * Converts camel case props to snake case props.\n */\nexport function convertCamelCasePropsToSnakeCase<P>(\n props: P,\n validProperties?: Array<string> | ReadonlyArray<string>\n): P {\n const isFrozen = Object.isFrozen(props)\n const newProps = isFrozen ? { ...props } : props\n const hasValidProperties = Array.isArray(validProperties)\n\n for (const key in props) {\n switch (key) {\n case 'className': {\n continue\n }\n }\n\n if (/^[a-z]+[A-Z]/.test(key)) {\n const name = toSnakeCase(key)\n if (hasValidProperties && !validProperties?.includes(name)) {\n continue\n }\n newProps[name] = props[key]\n delete newProps[key]\n }\n }\n\n return isFrozen ? Object.freeze(newProps) : newProps\n}\n\nexport type AssertNoMissing<\n T extends readonly string[],\n P extends Record<string, unknown>,\n> = Exclude<\n Extract<keyof P, `${string}_${string}`>,\n T[number]\n> extends never\n ? T\n : never\ntype KeysMatching<T, P extends string> = Extract<keyof T, P>\nexport type KeysWithUnderscore<T> = KeysMatching<T, `${string}_${string}`>\n\n/**\n * Convert recursively Types from snake_case to camelCase\n *\n * Use it like so:\n * OriginalProps & ToCamelCase<OriginalProps>\n *\n * Disclaimer: Be careful using these with required props\n * - ToCamelCase makes the required snake_case props also required in camelCase\n * - ToCamelCasePartial removes required for the camelCase props\n * - ToCamelCaseFlat is like ToCamelCase, but it will not convert nested objects for performance boost\n * - ToCamelCasePartialFlat is like ToCamelCasePartial, but it will not convert nested objects for performance boost\n */\nexport type ToCamelCasePartial<T> = Partial<ToCamelCase<T>>\nexport type ToCamelCase<T> = T extends object\n ? {\n [K in keyof T as ConvertSnakeToCamelCase<K & string>]:\n | T[K]\n | ToCamelCase<T[K]>\n }\n : T\nexport type IncludeCamelCase<T> = Partial<T> & ToCamelCasePartial<T>\ntype ConvertSnakeToCamelCase<S extends string> =\n S extends `${infer T}_${infer U}`\n ? `${T}${Capitalize<ConvertSnakeToCamelCase<U>>}`\n : S\n\ntype ConvertObjectKeysToCamelCase<T> = {\n [K in keyof T as ConvertSnakeToCamelCase<K & string>]: T[K]\n}\nexport type ToCamelCaseFlat<T> = T extends object\n ? ConvertObjectKeysToCamelCase<T>\n : T\nexport type ToCamelCasePartialFlat<T> = Partial<ToCamelCaseFlat<T>>\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Check if device is touch device or not
3
+ */
4
+ export function isTouchDevice(): boolean;
5
+ export function defineNavigator(): void;
6
+ export function processChildren(props: any): any;
7
+ export function detectOutsideClick(ignoreElements: any, onSuccess: Function, options?: any): DetectOutsideClickClass;
8
+ export class DetectOutsideClickClass {
9
+ constructor(ignoreElements: any, onSuccess: any, options?: {});
10
+ handleClickOutside: (event: any) => void;
11
+ keydownCallback: (event: any) => void;
12
+ keyupCallback: (event: any) => void;
13
+ remove(): void;
14
+ checkOutsideClick: ({ event, ignoreElements }: {
15
+ event: any;
16
+ ignoreElements: any;
17
+ }, onSuccess?: any) => void;
18
+ }
19
+ export function checkIfHasScrollbar(elem: any): boolean;
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.checkIfHasScrollbar = exports.DetectOutsideClickClass = void 0;
7
+ exports.defineNavigator = defineNavigator;
8
+ exports.detectOutsideClick = void 0;
9
+ exports.isTouchDevice = isTouchDevice;
10
+ exports.processChildren = void 0;
11
+ require("core-js/modules/web.dom-collections.iterator.js");
12
+ var _react = _interopRequireDefault(require("react"));
13
+ var _keycode = _interopRequireDefault(require("../keycode"));
14
+ var _helpers = require("../helpers");
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
19
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
20
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
21
+ function isTouchDevice() {
22
+ if (typeof document !== 'undefined') {
23
+ let intent = false;
24
+ try {
25
+ intent = document.documentElement.getAttribute('data-whatintent');
26
+ } catch (e) {}
27
+ return intent === 'touch';
28
+ }
29
+ return false;
30
+ }
31
+ function defineNavigator() {
32
+ const handleNavigator = () => {
33
+ if (typeof document === 'undefined' || typeof window === 'undefined' || typeof navigator === 'undefined') {
34
+ return;
35
+ }
36
+ try {
37
+ if (!(typeof window !== 'undefined' && window.IS_TEST)) {
38
+ if (navigator.platform.match(new RegExp(_helpers.PLATFORM_MAC)) !== null) {
39
+ document.documentElement.setAttribute('data-os', 'mac');
40
+ } else if (navigator.platform.match(new RegExp(_helpers.PLATFORM_WIN)) !== null) {
41
+ document.documentElement.setAttribute('data-os', 'win');
42
+ } else if (navigator.platform.match(new RegExp(_helpers.PLATFORM_LINUX)) !== null) {
43
+ document.documentElement.setAttribute('data-os', 'linux');
44
+ }
45
+ } else {
46
+ document.documentElement.setAttribute('data-os', 'other');
47
+ }
48
+ } catch (e) {
49
+ (0, _helpers.warn)(e);
50
+ }
51
+ document.removeEventListener('DOMContentLoaded', handleNavigator);
52
+ };
53
+ if (typeof document !== 'undefined' && document.readyState === 'loading') {
54
+ document.addEventListener('DOMContentLoaded', handleNavigator);
55
+ } else {
56
+ handleNavigator();
57
+ }
58
+ }
59
+ const processChildren = props => {
60
+ if (!props) {
61
+ return null;
62
+ }
63
+ if (typeof global !== 'undefined' && Array.isArray(global.registeredElements) && global.registeredElements.length > 0) {
64
+ let cache = null;
65
+ Object.entries(props).reverse().map(_ref => {
66
+ let [key, cb] = _ref;
67
+ if (key.includes('render_') && /^render_/.test(key)) {
68
+ if (typeof cb === 'function') {
69
+ if (cache) {
70
+ if (Object.isFrozen(props)) {
71
+ props = _objectSpread({}, props);
72
+ }
73
+ props.children = cache;
74
+ }
75
+ return cache = _react.default.createElement(_react.default.Fragment, {
76
+ key: key
77
+ }, cb(props));
78
+ }
79
+ }
80
+ return null;
81
+ }).filter(Boolean);
82
+ if (cache) {
83
+ return cache;
84
+ }
85
+ }
86
+ const res = typeof props.children === 'function' ? props.children(props) : props.children;
87
+ if (Array.isArray(res)) {
88
+ const onlyTexts = res.reduce((pV, cV) => {
89
+ if (typeof cV === 'string' || typeof cV === 'number') {
90
+ pV.push(cV);
91
+ }
92
+ return pV;
93
+ }, []);
94
+ if (onlyTexts.length === res.length && onlyTexts.length > 0) {
95
+ return onlyTexts.join('');
96
+ }
97
+ }
98
+ return res;
99
+ };
100
+ exports.processChildren = processChildren;
101
+ const detectOutsideClick = (ignoreElements, onSuccess, options) => new DetectOutsideClickClass(ignoreElements, onSuccess, options);
102
+ exports.detectOutsideClick = detectOutsideClick;
103
+ class DetectOutsideClickClass {
104
+ constructor(_ignoreElements, _onSuccess) {
105
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
106
+ _defineProperty(this, "checkOutsideClick", function (_ref2) {
107
+ let {
108
+ event,
109
+ ignoreElements
110
+ } = _ref2;
111
+ let onSuccess = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
112
+ try {
113
+ const currentElement = event.target;
114
+ if ((currentElement === null || currentElement === void 0 ? void 0 : currentElement.tagName) === 'HTML' && (event.pageX > document.documentElement.clientWidth - 40 || event.pageY > document.documentElement.clientHeight - 40)) {
115
+ return;
116
+ }
117
+ if (checkIfHasScrollbar(currentElement)) {
118
+ return;
119
+ }
120
+ for (let i = 0, elem, l = ignoreElements.length; i < l; ++i) {
121
+ const ignoreElement = ignoreElements[i] && 'current' in ignoreElements[i] ? ignoreElements[i].current : ignoreElements[i];
122
+ elem = currentElement;
123
+ if (!ignoreElements[i]) {
124
+ continue;
125
+ }
126
+ do {
127
+ if (elem === ignoreElement) {
128
+ return;
129
+ }
130
+ elem = elem && elem.parentNode;
131
+ } while (elem);
132
+ }
133
+ if (typeof onSuccess === 'function') {
134
+ onSuccess();
135
+ }
136
+ } catch (e) {
137
+ (0, _helpers.warn)(e);
138
+ }
139
+ });
140
+ if (!this.handleClickOutside && typeof document !== 'undefined' && typeof window !== 'undefined') {
141
+ if (!Array.isArray(_ignoreElements)) {
142
+ _ignoreElements = [_ignoreElements];
143
+ }
144
+ this.handleClickOutside = event => {
145
+ this.checkOutsideClick({
146
+ event,
147
+ ignoreElements: _ignoreElements
148
+ }, () => typeof _onSuccess === 'function' && _onSuccess({
149
+ event
150
+ }));
151
+ };
152
+ document.addEventListener('mousedown', this.handleClickOutside);
153
+ this.keydownCallback = event => {
154
+ const keyCode = (0, _keycode.default)(event);
155
+ if (keyCode === 'esc') {
156
+ window.removeEventListener('keydown', this.keydownCallback);
157
+ if (typeof _onSuccess === 'function') {
158
+ _onSuccess({
159
+ event
160
+ });
161
+ }
162
+ }
163
+ };
164
+ window.addEventListener('keydown', this.keydownCallback);
165
+ if (options.includedKeys) {
166
+ this.keyupCallback = event => {
167
+ const keyCode = (0, _keycode.default)(event);
168
+ if (options.includedKeys.includes(keyCode) && typeof this.handleClickOutside === 'function') {
169
+ this.handleClickOutside(event, () => {
170
+ if (this.keyupCallback) window.removeEventListener('keyup', this.keyupCallback);
171
+ });
172
+ }
173
+ };
174
+ window.addEventListener('keyup', this.keyupCallback);
175
+ }
176
+ }
177
+ }
178
+ remove() {
179
+ if (this.handleClickOutside && typeof document !== 'undefined') {
180
+ document.removeEventListener('mousedown', this.handleClickOutside);
181
+ this.handleClickOutside = null;
182
+ }
183
+ if (this.keydownCallback && typeof window !== 'undefined') {
184
+ window.removeEventListener('keydown', this.keydownCallback);
185
+ this.keydownCallback = null;
186
+ }
187
+ if (this.keyupCallback && typeof window !== 'undefined') {
188
+ window.removeEventListener('keyup', this.keyupCallback);
189
+ this.keyupCallback = null;
190
+ }
191
+ }
192
+ }
193
+ exports.DetectOutsideClickClass = DetectOutsideClickClass;
194
+ const checkIfHasScrollbar = elem => {
195
+ return elem && (elem.scrollHeight > elem.offsetHeight || elem.scrollWidth > elem.offsetWidth) && overflowIsScrollable(elem);
196
+ };
197
+ exports.checkIfHasScrollbar = checkIfHasScrollbar;
198
+ const overflowIsScrollable = elem => {
199
+ const style = typeof window !== 'undefined' ? window.getComputedStyle(elem) : {};
200
+ return /scroll|auto/i.test((style.overflow || '') + (style.overflowX || '') + (style.overflowY || ''));
201
+ };
202
+ //# sourceMappingURL=component-helper-legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-helper-legacy.js","names":["_react","_interopRequireDefault","require","_keycode","_helpers","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","isTouchDevice","document","intent","documentElement","getAttribute","defineNavigator","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","PLATFORM_MAC","setAttribute","PLATFORM_WIN","PLATFORM_LINUX","warn","removeEventListener","readyState","addEventListener","processChildren","props","global","Array","isArray","registeredElements","cache","entries","reverse","map","_ref","key","cb","includes","test","isFrozen","children","createElement","Fragment","Boolean","res","onlyTexts","reduce","pV","cV","join","exports","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","undefined","_ref2","event","currentElement","target","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","l","ignoreElement","current","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","keyCode","keycode","includedKeys","keyupCallback","remove","scrollHeight","offsetHeight","scrollWidth","offsetWidth","overflowIsScrollable","style","getComputedStyle","overflow","overflowX","overflowY"],"sources":["../../../../src/shared/legacy/component-helper-legacy.js"],"sourcesContent":["/**\n * Component helpers legacy\n *\n * These are functions for ../component-helper.ts that have yet to be refactored to typescript.\n */\n\nimport React from 'react'\nimport keycode from '../keycode'\nimport {\n warn,\n PLATFORM_MAC,\n PLATFORM_WIN,\n PLATFORM_LINUX,\n} from '../helpers'\n\n/**\n * Check if device is touch device or not\n */\nexport function isTouchDevice() {\n if (typeof document !== 'undefined') {\n let intent = false\n try {\n intent = document.documentElement.getAttribute('data-whatintent')\n } catch (e) {\n //\n }\n return intent === 'touch'\n }\n return false\n}\n\nexport function defineNavigator() {\n const handleNavigator = () => {\n if (\n typeof document === 'undefined' ||\n typeof window === 'undefined' ||\n typeof navigator === 'undefined'\n ) {\n return\n }\n\n try {\n if (!(typeof window !== 'undefined' && window.IS_TEST)) {\n if (navigator.platform.match(new RegExp(PLATFORM_MAC)) !== null) {\n document.documentElement.setAttribute('data-os', 'mac')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_WIN)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'win')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_LINUX)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'linux')\n }\n } else {\n document.documentElement.setAttribute('data-os', 'other')\n }\n } catch (e) {\n warn(e)\n }\n\n document.removeEventListener('DOMContentLoaded', handleNavigator)\n }\n\n if (\n typeof document !== 'undefined' &&\n document.readyState === 'loading'\n ) {\n document.addEventListener('DOMContentLoaded', handleNavigator)\n } else {\n handleNavigator()\n }\n}\n\nexport const processChildren = (props) => {\n if (!props) {\n return null\n }\n\n // If used in WB, call functions who starts with \"render_\"\n if (\n typeof global !== 'undefined' &&\n Array.isArray(global.registeredElements) &&\n global.registeredElements.length > 0\n ) {\n let cache = null\n Object.entries(props)\n .reverse()\n .map(([key, cb]) => {\n if (key.includes('render_') && /^render_/.test(key)) {\n if (typeof cb === 'function') {\n if (cache) {\n if (Object.isFrozen(props)) {\n props = { ...props }\n }\n props.children = cache\n }\n return (cache = (\n <React.Fragment key={key}>{cb(props)}</React.Fragment>\n ))\n }\n }\n\n return null\n })\n .filter(Boolean)\n if (cache) {\n return cache\n }\n }\n\n const res =\n typeof props.children === 'function'\n ? props.children(props)\n : props.children\n\n // if we get several react children which represents only a text\n if (Array.isArray(res)) {\n const onlyTexts = res.reduce((pV, cV) => {\n if (typeof cV === 'string' || typeof cV === 'number') {\n pV.push(cV)\n }\n return pV\n }, [])\n\n // if there was one or more text elements\n if (onlyTexts.length === res.length && onlyTexts.length > 0) {\n return onlyTexts.join('')\n }\n }\n\n return res\n}\n\n/**\n * [detectOutsideClick Detects a click outside a given DOM element]\n * @param {HTMLElement} ignoreElement [The element we want to protect from a click]\n * @param {Function} onSuccess [Will be called on outside click]\n * @param {Object} [options] [Options]\n * @return {DetectOutsideClickClass} [A new instance of DetectOutsideClickClass]\n */\nexport const detectOutsideClick = (ignoreElements, onSuccess, options) =>\n new DetectOutsideClickClass(ignoreElements, onSuccess, options)\n\n// Used by detectOutsideClick\nexport class DetectOutsideClickClass {\n constructor(ignoreElements, onSuccess, options = {}) {\n if (\n !this.handleClickOutside &&\n typeof document !== 'undefined' &&\n typeof window !== 'undefined'\n ) {\n if (!Array.isArray(ignoreElements)) {\n ignoreElements = [ignoreElements]\n }\n this.handleClickOutside = (event) => {\n this.checkOutsideClick(\n {\n event,\n ignoreElements,\n },\n () => typeof onSuccess === 'function' && onSuccess({ event })\n )\n }\n document.addEventListener('mousedown', this.handleClickOutside)\n\n this.keydownCallback = (event) => {\n const keyCode = keycode(event)\n if (keyCode === 'esc') {\n window.removeEventListener('keydown', this.keydownCallback)\n if (typeof onSuccess === 'function') {\n onSuccess({ event })\n }\n }\n }\n window.addEventListener('keydown', this.keydownCallback)\n\n // e.g. includedKeys = ['tab']\n if (options.includedKeys) {\n // use keyup so we get the correct new target\n this.keyupCallback = (event) => {\n const keyCode = keycode(event)\n if (\n options.includedKeys.includes(keyCode) &&\n typeof this.handleClickOutside === 'function'\n ) {\n this.handleClickOutside(event, () => {\n if (this.keyupCallback)\n window.removeEventListener('keyup', this.keyupCallback)\n })\n }\n }\n window.addEventListener('keyup', this.keyupCallback)\n }\n }\n }\n\n remove() {\n if (this.handleClickOutside && typeof document !== 'undefined') {\n document.removeEventListener('mousedown', this.handleClickOutside)\n this.handleClickOutside = null\n }\n if (this.keydownCallback && typeof window !== 'undefined') {\n window.removeEventListener('keydown', this.keydownCallback)\n this.keydownCallback = null\n }\n if (this.keyupCallback && typeof window !== 'undefined') {\n window.removeEventListener('keyup', this.keyupCallback)\n this.keyupCallback = null\n }\n }\n\n checkOutsideClick = ({ event, ignoreElements }, onSuccess = null) => {\n try {\n const currentElement = event.target\n\n // we also check if currentElement is documentElement\n // and if it has scrollbars, we then ignore the click\n if (\n currentElement?.tagName === 'HTML' &&\n (event.pageX > document.documentElement.clientWidth - 40 ||\n event.pageY > document.documentElement.clientHeight - 40)\n ) {\n return // stop here\n }\n\n // check if element has e.g. \"overflow: scroll\"\n if (checkIfHasScrollbar(currentElement)) {\n return // stop here\n }\n\n // check the rest\n for (let i = 0, elem, l = ignoreElements.length; i < l; ++i) {\n // Allow for comparing ref elements that are rendered conditionally,\n // That might be `null` or ´undefined` during the construction stage of this class\n\n const ignoreElement =\n ignoreElements[i] && 'current' in ignoreElements[i]\n ? ignoreElements[i].current\n : ignoreElements[i]\n\n elem = currentElement\n if (!ignoreElements[i]) {\n continue\n }\n do {\n if (elem === ignoreElement) {\n return // stop here\n }\n elem = elem && elem.parentNode\n } while (elem)\n }\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n } catch (e) {\n warn(e)\n }\n }\n}\n\nexport const checkIfHasScrollbar = (elem) => {\n return (\n elem &&\n (elem.scrollHeight > elem.offsetHeight ||\n elem.scrollWidth > elem.offsetWidth) &&\n overflowIsScrollable(elem)\n )\n}\n\nconst overflowIsScrollable = (elem) => {\n const style =\n typeof window !== 'undefined' ? window.getComputedStyle(elem) : {}\n return /scroll|auto/i.test(\n (style.overflow || '') +\n (style.overflowX || '') +\n (style.overflowY || '')\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -35,6 +35,7 @@ declare const _default: {
35
35
  maskPlaceholder: string;
36
36
  dateFormat: string;
37
37
  returnFormat: string;
38
+ firstDay: string;
38
39
  submitButtonText: string;
39
40
  cancelButtonText: string;
40
41
  resetButtonText: string;
@@ -41,6 +41,7 @@ var _default = exports.default = {
41
41
  maskPlaceholder: 'dd/mm/yyyy',
42
42
  dateFormat: 'yyyy-MM-dd',
43
43
  returnFormat: 'yyyy-MM-dd',
44
+ firstDay: 'monday',
44
45
  submitButtonText: 'OK',
45
46
  cancelButtonText: 'Cancel',
46
47
  resetButtonText: 'Reset',