@dnb/eufemia 10.31.0 → 10.32.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 (549) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/cjs/components/anchor/Anchor.d.ts +8 -1
  3. package/cjs/components/anchor/Anchor.js.map +1 -1
  4. package/cjs/components/card/Card.js +3 -2
  5. package/cjs/components/card/Card.js.map +1 -1
  6. package/cjs/components/card/style/dnb-card.css +1 -2
  7. package/cjs/components/card/style/dnb-card.min.css +1 -1
  8. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
  9. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
  10. package/cjs/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
  11. package/cjs/components/checkbox/style/dnb-checkbox.css +2 -2
  12. package/cjs/components/checkbox/style/dnb-checkbox.min.css +1 -1
  13. package/cjs/components/checkbox/style/dnb-checkbox.scss +2 -3
  14. package/cjs/components/flex/Container.d.ts +4 -1
  15. package/cjs/components/flex/Container.js +10 -7
  16. package/cjs/components/flex/Container.js.map +1 -1
  17. package/cjs/components/flex/Stack.js +3 -3
  18. package/cjs/components/flex/Stack.js.map +1 -1
  19. package/cjs/components/flex/utils.js +7 -7
  20. package/cjs/components/flex/utils.js.map +1 -1
  21. package/cjs/components/skeleton/style/dnb-skeleton.css +4 -8
  22. package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
  23. package/cjs/components/space/SpacingUtils.d.ts +1 -1
  24. package/cjs/components/space/SpacingUtils.js +1 -1
  25. package/cjs/components/space/SpacingUtils.js.map +1 -1
  26. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
  27. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
  28. package/cjs/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
  29. package/cjs/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
  30. package/cjs/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
  31. package/cjs/components/table/style/dnb-table.css +5 -10
  32. package/cjs/components/table/style/dnb-table.min.css +1 -1
  33. package/cjs/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
  34. package/cjs/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  35. package/cjs/extensions/forms/DataContext/Context.d.ts +19 -9
  36. package/cjs/extensions/forms/DataContext/Context.js +2 -2
  37. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  38. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  39. package/cjs/extensions/forms/DataContext/Provider/Provider.js +68 -32
  40. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  41. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  42. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  43. package/cjs/extensions/forms/Field/Boolean/Boolean.js +2 -1
  44. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  45. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
  46. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  47. package/cjs/extensions/forms/Field/Number/Number.js +3 -1
  48. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  49. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
  50. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  51. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +5 -0
  52. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  53. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
  54. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  55. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
  56. package/cjs/extensions/forms/Form/Element/Element.js +1 -1
  57. package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
  58. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  59. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  60. package/cjs/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
  61. package/cjs/extensions/forms/Form/Tools/GenerateSchema.js +100 -0
  62. package/cjs/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
  63. package/cjs/extensions/forms/Form/Tools/index.d.ts +1 -0
  64. package/cjs/extensions/forms/Form/Tools/index.js +14 -0
  65. package/cjs/extensions/forms/Form/Tools/index.js.map +1 -0
  66. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
  67. package/cjs/extensions/forms/Form/Visibility/Visibility.js +41 -10
  68. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  69. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
  70. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  71. package/cjs/extensions/forms/Form/data-context/useData.d.ts +1 -1
  72. package/cjs/extensions/forms/Form/data-context/useData.js +2 -2
  73. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  74. package/cjs/extensions/forms/Form/data-context/useError.d.ts +1 -0
  75. package/cjs/extensions/forms/Form/data-context/useError.js +5 -3
  76. package/cjs/extensions/forms/Form/data-context/useError.js.map +1 -1
  77. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  78. package/cjs/extensions/forms/Form/index.js +5 -0
  79. package/cjs/extensions/forms/Form/index.js.map +1 -1
  80. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
  81. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
  82. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  83. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
  84. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  85. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  86. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  87. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
  88. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  89. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  90. package/cjs/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  91. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
  92. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  93. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  94. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  95. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  96. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  97. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
  98. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  99. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
  100. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +4 -2
  101. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  102. package/cjs/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
  103. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +102 -32
  104. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  105. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  106. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  107. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +6 -1
  108. package/cjs/extensions/forms/Wizard/Step/Step.js +9 -5
  109. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  110. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
  111. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  112. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
  113. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
  114. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
  115. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
  116. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
  117. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
  118. package/cjs/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
  119. package/cjs/extensions/forms/hooks/useFieldProps.js +70 -31
  120. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  121. package/cjs/extensions/forms/style/dnb-forms.css +4 -5
  122. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  123. package/cjs/extensions/forms/types.d.ts +4 -0
  124. package/cjs/extensions/forms/types.js.map +1 -1
  125. package/cjs/fragments/drawer-list/DrawerListHelpers.js +5 -2
  126. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  127. package/cjs/shared/Eufemia.d.ts +1 -1
  128. package/cjs/shared/Eufemia.js +2 -2
  129. package/cjs/shared/Eufemia.js.map +1 -1
  130. package/cjs/shared/MediaQuery.js +19 -1
  131. package/cjs/shared/MediaQuery.js.map +1 -1
  132. package/cjs/shared/MediaQueryUtils.d.ts +12 -34
  133. package/cjs/shared/MediaQueryUtils.js +22 -12
  134. package/cjs/shared/MediaQueryUtils.js.map +1 -1
  135. package/cjs/shared/component-helper.d.ts +1 -1
  136. package/cjs/shared/component-helper.js +5 -1
  137. package/cjs/shared/component-helper.js.map +1 -1
  138. package/cjs/shared/useMedia.d.ts +7 -2
  139. package/cjs/shared/useMedia.js +16 -11
  140. package/cjs/shared/useMedia.js.map +1 -1
  141. package/cjs/shared/useMediaQuery.js +30 -9
  142. package/cjs/shared/useMediaQuery.js.map +1 -1
  143. package/cjs/style/core/scopes.scss +1 -1
  144. package/cjs/style/dnb-ui-basis.css +2 -3
  145. package/cjs/style/dnb-ui-basis.min.css +1 -1
  146. package/cjs/style/dnb-ui-body.css +1 -1
  147. package/cjs/style/dnb-ui-body.min.css +1 -1
  148. package/cjs/style/dnb-ui-components.css +17 -29
  149. package/cjs/style/dnb-ui-components.min.css +3 -3
  150. package/cjs/style/dnb-ui-core.css +2 -3
  151. package/cjs/style/dnb-ui-core.min.css +1 -1
  152. package/cjs/style/dnb-ui-extensions.css +4 -5
  153. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  154. package/cjs/style/dnb-ui-forms.css +4 -5
  155. package/cjs/style/dnb-ui-forms.min.css +1 -1
  156. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +26 -36
  157. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  158. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
  159. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  160. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  161. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
  162. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  163. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  164. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +99 -112
  165. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  166. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  167. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
  168. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  169. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  170. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
  171. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  172. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  173. package/cjs/style/themes/theme-ui/ui-theme-components.css +26 -36
  174. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  175. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +8 -5
  176. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  177. package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  178. package/cjs/style/themes/theme-ui/ui-theme-forms.css +8 -5
  179. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  180. package/cjs/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  181. package/components/anchor/Anchor.d.ts +8 -1
  182. package/components/anchor/Anchor.js.map +1 -1
  183. package/components/card/Card.js +3 -2
  184. package/components/card/Card.js.map +1 -1
  185. package/components/card/style/dnb-card.css +1 -2
  186. package/components/card/style/dnb-card.min.css +1 -1
  187. package/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
  188. package/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
  189. package/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
  190. package/components/checkbox/style/dnb-checkbox.css +2 -2
  191. package/components/checkbox/style/dnb-checkbox.min.css +1 -1
  192. package/components/checkbox/style/dnb-checkbox.scss +2 -3
  193. package/components/flex/Container.d.ts +4 -1
  194. package/components/flex/Container.js +10 -7
  195. package/components/flex/Container.js.map +1 -1
  196. package/components/flex/Stack.js +3 -3
  197. package/components/flex/Stack.js.map +1 -1
  198. package/components/flex/utils.js +8 -8
  199. package/components/flex/utils.js.map +1 -1
  200. package/components/skeleton/style/dnb-skeleton.css +4 -8
  201. package/components/skeleton/style/dnb-skeleton.min.css +1 -1
  202. package/components/space/SpacingUtils.d.ts +1 -1
  203. package/components/space/SpacingUtils.js +1 -1
  204. package/components/space/SpacingUtils.js.map +1 -1
  205. package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
  206. package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
  207. package/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
  208. package/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
  209. package/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
  210. package/components/table/style/dnb-table.css +5 -10
  211. package/components/table/style/dnb-table.min.css +1 -1
  212. package/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
  213. package/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  214. package/es/components/anchor/Anchor.d.ts +8 -1
  215. package/es/components/anchor/Anchor.js.map +1 -1
  216. package/es/components/card/Card.js +3 -2
  217. package/es/components/card/Card.js.map +1 -1
  218. package/es/components/card/style/dnb-card.css +1 -2
  219. package/es/components/card/style/dnb-card.min.css +1 -1
  220. package/es/components/card/style/themes/dnb-card-theme-sbanken.css +5 -0
  221. package/es/components/card/style/themes/dnb-card-theme-sbanken.min.css +1 -0
  222. package/es/components/card/style/themes/dnb-card-theme-sbanken.scss +7 -0
  223. package/es/components/checkbox/style/dnb-checkbox.css +2 -2
  224. package/es/components/checkbox/style/dnb-checkbox.min.css +1 -1
  225. package/es/components/checkbox/style/dnb-checkbox.scss +2 -3
  226. package/es/components/flex/Container.d.ts +4 -1
  227. package/es/components/flex/Container.js +10 -7
  228. package/es/components/flex/Container.js.map +1 -1
  229. package/es/components/flex/Stack.js +3 -3
  230. package/es/components/flex/Stack.js.map +1 -1
  231. package/es/components/flex/utils.js +8 -8
  232. package/es/components/flex/utils.js.map +1 -1
  233. package/es/components/skeleton/style/dnb-skeleton.css +4 -8
  234. package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
  235. package/es/components/space/SpacingUtils.d.ts +1 -1
  236. package/es/components/space/SpacingUtils.js +1 -1
  237. package/es/components/space/SpacingUtils.js.map +1 -1
  238. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.css +70 -0
  239. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.min.css +1 -0
  240. package/es/components/step-indicator/style/themes/dnb-step-indicator-theme-sbanken.scss +97 -0
  241. package/es/components/switch/style/themes/dnb-switch-theme-ui.css +1 -2
  242. package/es/components/switch/style/themes/dnb-switch-theme-ui.min.css +1 -1
  243. package/es/components/table/style/dnb-table.css +5 -10
  244. package/es/components/table/style/dnb-table.min.css +1 -1
  245. package/es/components/visually-hidden/style/dnb-visually-hidden.css +1 -2
  246. package/es/components/visually-hidden/style/dnb-visually-hidden.min.css +1 -1
  247. package/es/extensions/forms/DataContext/Context.d.ts +19 -9
  248. package/es/extensions/forms/DataContext/Context.js +2 -2
  249. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  250. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  251. package/es/extensions/forms/DataContext/Provider/Provider.js +65 -30
  252. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  253. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  254. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  255. package/es/extensions/forms/Field/Boolean/Boolean.js +2 -1
  256. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  257. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
  258. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  259. package/es/extensions/forms/Field/Number/Number.js +3 -1
  260. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  261. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
  262. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  263. package/es/extensions/forms/FieldBlock/FieldBlock.js +5 -0
  264. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  265. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
  266. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  267. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
  268. package/es/extensions/forms/Form/Element/Element.js +1 -1
  269. package/es/extensions/forms/Form/Element/Element.js.map +1 -1
  270. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  271. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  272. package/es/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
  273. package/es/extensions/forms/Form/Tools/GenerateSchema.js +89 -0
  274. package/es/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
  275. package/es/extensions/forms/Form/Tools/index.d.ts +1 -0
  276. package/es/extensions/forms/Form/Tools/index.js +1 -0
  277. package/es/extensions/forms/Form/Tools/index.js.map +1 -0
  278. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
  279. package/es/extensions/forms/Form/Visibility/Visibility.js +41 -10
  280. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  281. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
  282. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  283. package/es/extensions/forms/Form/data-context/useData.d.ts +1 -1
  284. package/es/extensions/forms/Form/data-context/useData.js +1 -2
  285. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  286. package/es/extensions/forms/Form/data-context/useError.d.ts +1 -0
  287. package/es/extensions/forms/Form/data-context/useError.js +5 -3
  288. package/es/extensions/forms/Form/data-context/useError.js.map +1 -1
  289. package/es/extensions/forms/Form/index.d.ts +1 -0
  290. package/es/extensions/forms/Form/index.js +1 -0
  291. package/es/extensions/forms/Form/index.js.map +1 -1
  292. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
  293. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
  294. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  295. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
  296. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  297. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  298. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  299. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
  300. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  301. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  302. package/es/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  303. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
  304. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  305. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  306. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  307. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  308. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  309. package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
  310. package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  311. package/es/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
  312. package/es/extensions/forms/ValueBlock/ValueBlock.js +4 -2
  313. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  314. package/es/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
  315. package/es/extensions/forms/Wizard/Container/WizardContainer.js +98 -32
  316. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  317. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  318. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  319. package/es/extensions/forms/Wizard/Step/Step.d.ts +6 -1
  320. package/es/extensions/forms/Wizard/Step/Step.js +9 -5
  321. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  322. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
  323. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  324. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
  325. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
  326. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
  327. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
  328. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
  329. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
  330. package/es/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
  331. package/es/extensions/forms/hooks/useFieldProps.js +67 -28
  332. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  333. package/es/extensions/forms/style/dnb-forms.css +4 -5
  334. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  335. package/es/extensions/forms/types.d.ts +4 -0
  336. package/es/extensions/forms/types.js.map +1 -1
  337. package/es/fragments/drawer-list/DrawerListHelpers.js +5 -2
  338. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  339. package/es/shared/Eufemia.d.ts +1 -1
  340. package/es/shared/Eufemia.js +2 -2
  341. package/es/shared/Eufemia.js.map +1 -1
  342. package/es/shared/MediaQuery.js +19 -1
  343. package/es/shared/MediaQuery.js.map +1 -1
  344. package/es/shared/MediaQueryUtils.d.ts +12 -34
  345. package/es/shared/MediaQueryUtils.js +22 -17
  346. package/es/shared/MediaQueryUtils.js.map +1 -1
  347. package/es/shared/component-helper.d.ts +1 -1
  348. package/es/shared/component-helper.js +5 -2
  349. package/es/shared/component-helper.js.map +1 -1
  350. package/es/shared/useMedia.d.ts +7 -2
  351. package/es/shared/useMedia.js +14 -11
  352. package/es/shared/useMedia.js.map +1 -1
  353. package/es/shared/useMediaQuery.js +28 -9
  354. package/es/shared/useMediaQuery.js.map +1 -1
  355. package/es/style/core/scopes.scss +1 -1
  356. package/es/style/dnb-ui-basis.css +2 -3
  357. package/es/style/dnb-ui-basis.min.css +1 -1
  358. package/es/style/dnb-ui-body.css +1 -1
  359. package/es/style/dnb-ui-body.min.css +1 -1
  360. package/es/style/dnb-ui-components.css +17 -29
  361. package/es/style/dnb-ui-components.min.css +3 -3
  362. package/es/style/dnb-ui-core.css +2 -3
  363. package/es/style/dnb-ui-core.min.css +1 -1
  364. package/es/style/dnb-ui-extensions.css +4 -5
  365. package/es/style/dnb-ui-extensions.min.css +1 -1
  366. package/es/style/dnb-ui-forms.css +4 -5
  367. package/es/style/dnb-ui-forms.min.css +1 -1
  368. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +26 -36
  369. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  370. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
  371. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  372. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  373. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
  374. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  375. package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  376. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +99 -112
  377. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  378. package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  379. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
  380. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  381. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  382. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
  383. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  384. package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  385. package/es/style/themes/theme-ui/ui-theme-components.css +26 -36
  386. package/es/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  387. package/es/style/themes/theme-ui/ui-theme-extensions.css +8 -5
  388. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  389. package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  390. package/es/style/themes/theme-ui/ui-theme-forms.css +8 -5
  391. package/es/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  392. package/es/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  393. package/esm/dnb-ui-basis.min.mjs +1 -1
  394. package/esm/dnb-ui-components.min.mjs +1 -1
  395. package/esm/dnb-ui-elements.min.mjs +1 -1
  396. package/esm/dnb-ui-extensions.min.mjs +2 -2
  397. package/esm/dnb-ui-lib.min.mjs +1 -1
  398. package/extensions/forms/DataContext/Context.d.ts +19 -9
  399. package/extensions/forms/DataContext/Context.js +2 -2
  400. package/extensions/forms/DataContext/Context.js.map +1 -1
  401. package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  402. package/extensions/forms/DataContext/Provider/Provider.js +68 -32
  403. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  404. package/extensions/forms/DataContext/Provider/ProviderDocs.js +3 -3
  405. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  406. package/extensions/forms/Field/Boolean/Boolean.js +2 -1
  407. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  408. package/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
  409. package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  410. package/extensions/forms/Field/Number/Number.js +3 -1
  411. package/extensions/forms/Field/Number/Number.js.map +1 -1
  412. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +1 -1
  413. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  414. package/extensions/forms/FieldBlock/FieldBlock.js +5 -0
  415. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  416. package/extensions/forms/FieldBlock/style/dnb-field-block.css +1 -3
  417. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  418. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +1 -2
  419. package/extensions/forms/Form/Element/Element.js +1 -1
  420. package/extensions/forms/Form/Element/Element.js.map +1 -1
  421. package/extensions/forms/Form/SubmitButton/SubmitButton.js +3 -3
  422. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  423. package/extensions/forms/Form/Tools/GenerateSchema.d.ts +8 -0
  424. package/extensions/forms/Form/Tools/GenerateSchema.js +90 -0
  425. package/extensions/forms/Form/Tools/GenerateSchema.js.map +1 -0
  426. package/extensions/forms/Form/Tools/index.d.ts +1 -0
  427. package/extensions/forms/Form/Tools/index.js +1 -0
  428. package/extensions/forms/Form/Tools/index.js.map +1 -0
  429. package/extensions/forms/Form/Visibility/Visibility.d.ts +19 -5
  430. package/extensions/forms/Form/Visibility/Visibility.js +41 -10
  431. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  432. package/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -6
  433. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  434. package/extensions/forms/Form/data-context/useData.d.ts +1 -1
  435. package/extensions/forms/Form/data-context/useData.js +2 -2
  436. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  437. package/extensions/forms/Form/data-context/useError.d.ts +1 -0
  438. package/extensions/forms/Form/data-context/useError.js +5 -3
  439. package/extensions/forms/Form/data-context/useError.js.map +1 -1
  440. package/extensions/forms/Form/index.d.ts +1 -0
  441. package/extensions/forms/Form/index.js +2 -0
  442. package/extensions/forms/Form/index.js.map +1 -1
  443. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.d.ts +8 -1
  444. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +4 -3
  445. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  446. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -1
  447. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  448. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +5 -0
  449. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  450. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +1 -1
  451. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  452. package/extensions/forms/Iterate/Toolbar/Toolbar.js +1 -1
  453. package/extensions/forms/Iterate/Toolbar/Toolbar.js.map +1 -1
  454. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +2 -1
  455. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  456. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  457. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  458. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  459. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  460. package/extensions/forms/Iterate/style/dnb-form-iterate.css +3 -1
  461. package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +1 -1
  462. package/extensions/forms/Iterate/style/dnb-form-iterate.scss +4 -1
  463. package/extensions/forms/ValueBlock/ValueBlock.js +4 -2
  464. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  465. package/extensions/forms/Wizard/Container/WizardContainer.d.ts +31 -2
  466. package/extensions/forms/Wizard/Container/WizardContainer.js +102 -32
  467. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  468. package/extensions/forms/Wizard/Context/WizardContext.d.ts +4 -0
  469. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  470. package/extensions/forms/Wizard/Step/Step.d.ts +6 -1
  471. package/extensions/forms/Wizard/Step/Step.js +9 -5
  472. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  473. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +0 -1
  474. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  475. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -1
  476. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.css +1 -0
  477. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.min.css +0 -0
  478. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-sbanken.scss +1 -0
  479. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.css +3 -0
  480. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.min.css +1 -0
  481. package/extensions/forms/Wizard/style/themes/dnb-wizard-layout-theme-ui.scss +7 -0
  482. package/extensions/forms/hooks/useFieldProps.js +70 -31
  483. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  484. package/extensions/forms/style/dnb-forms.css +4 -5
  485. package/extensions/forms/style/dnb-forms.min.css +1 -1
  486. package/extensions/forms/types.d.ts +4 -0
  487. package/extensions/forms/types.js.map +1 -1
  488. package/fragments/drawer-list/DrawerListHelpers.js +5 -2
  489. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  490. package/package.json +1 -1
  491. package/shared/Eufemia.d.ts +1 -1
  492. package/shared/Eufemia.js +2 -2
  493. package/shared/Eufemia.js.map +1 -1
  494. package/shared/MediaQuery.js +19 -1
  495. package/shared/MediaQuery.js.map +1 -1
  496. package/shared/MediaQueryUtils.d.ts +12 -34
  497. package/shared/MediaQueryUtils.js +22 -12
  498. package/shared/MediaQueryUtils.js.map +1 -1
  499. package/shared/component-helper.d.ts +1 -1
  500. package/shared/component-helper.js +5 -1
  501. package/shared/component-helper.js.map +1 -1
  502. package/shared/useMedia.d.ts +7 -2
  503. package/shared/useMedia.js +14 -11
  504. package/shared/useMedia.js.map +1 -1
  505. package/shared/useMediaQuery.js +28 -9
  506. package/shared/useMediaQuery.js.map +1 -1
  507. package/style/core/scopes.scss +1 -1
  508. package/style/dnb-ui-basis.css +2 -3
  509. package/style/dnb-ui-basis.min.css +1 -1
  510. package/style/dnb-ui-body.css +1 -1
  511. package/style/dnb-ui-body.min.css +1 -1
  512. package/style/dnb-ui-components.css +17 -29
  513. package/style/dnb-ui-components.min.css +3 -3
  514. package/style/dnb-ui-core.css +2 -3
  515. package/style/dnb-ui-core.min.css +1 -1
  516. package/style/dnb-ui-extensions.css +4 -5
  517. package/style/dnb-ui-extensions.min.css +1 -1
  518. package/style/dnb-ui-forms.css +4 -5
  519. package/style/dnb-ui-forms.min.css +1 -1
  520. package/style/themes/theme-eiendom/eiendom-theme-components.css +26 -36
  521. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  522. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +8 -5
  523. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  524. package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  525. package/style/themes/theme-eiendom/eiendom-theme-forms.css +8 -5
  526. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  527. package/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  528. package/style/themes/theme-sbanken/sbanken-theme-components.css +99 -112
  529. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  530. package/style/themes/theme-sbanken/sbanken-theme-components.scss +2 -2
  531. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +5 -5
  532. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  533. package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  534. package/style/themes/theme-sbanken/sbanken-theme-forms.css +5 -5
  535. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  536. package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  537. package/style/themes/theme-ui/ui-theme-components.css +26 -36
  538. package/style/themes/theme-ui/ui-theme-components.min.css +5 -5
  539. package/style/themes/theme-ui/ui-theme-extensions.css +8 -5
  540. package/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  541. package/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  542. package/style/themes/theme-ui/ui-theme-forms.css +8 -5
  543. package/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  544. package/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  545. package/umd/dnb-ui-basis.min.js +1 -1
  546. package/umd/dnb-ui-components.min.js +1 -1
  547. package/umd/dnb-ui-elements.min.js +1 -1
  548. package/umd/dnb-ui-extensions.min.js +2 -2
  549. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MediaQueryUtils.js","names":["_componentHelper","require","_helpers","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","defaultBreakpoints","small","medium","large","exports","onMediaQueryChange","property","callback","runOnInit","query","when","not","mediaQueryList","makeMediaQueryList","matches","createMediaQueryListener","isMatchMediaSupported","window","matchMedia","log","disabled","breakpoints","isSupported","buildQuery","mediaQueryString","convertToMediaQuery","warn","listener","event","addEventListener","removeEventListener","split","listOfQueries","Array","isArray","concat","combineQueries","join","Boolean","replace","isTrue","reverseQuery","startsWith","test","queries","reduce","arr","mergeBreakpoints","entries","sort","a","b","acc","_ref","q","index","objToMediaQuery","hasNot","feature","toKebabCase","getValueByFeature","types","prototype","hasOwnProperty"],"sources":["../../../src/shared/MediaQueryUtils.ts"],"sourcesContent":["import { isTrue, toKebabCase } from './component-helper'\nimport { warn } from './helpers'\n\nexport type MediaQuerySizes =\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\nexport type MediaQueryBreakpoints = Partial<\n Record<MediaQuerySizes, string>\n>\n\nexport const defaultBreakpoints: MediaQueryBreakpoints = {\n small: '40em',\n medium: '60em',\n large: '72em',\n 'x-large': '80em',\n 'xx-large': '90em',\n}\n\nexport type MediaQueryCondition =\n | {\n min?: number | string | MediaQuerySizes\n max?: number | string | MediaQuerySizes\n screen?: boolean\n minWidth?: number | string | MediaQuerySizes\n maxWidth?: number | string | MediaQuerySizes\n orientation?: string\n handheld?: boolean\n not?: boolean\n all?: boolean\n monochrome?: boolean\n aspectRatio?: string\n }\n | string\n\nexport type MediaQueryProperties = {\n /**\n * A MediaQuery as a string similar to the CSS API, but without `@media`.\n */\n query?: MediaQueryCondition\n\n /**\n * Define a list of sizes to match, given as an object `{ min: 'small', max: 'medium' }` or as an array `[{ min: 'small', max: 'medium' }, { min: 'medium', max: 'large' }]`.\n */\n when?: MediaQueryCondition | Array<MediaQueryCondition>\n\n /**\n * Reverts the defined queries as a whole.\n */\n not?: boolean\n\n /**\n * If set to true, no MediaQuery will be used.\n */\n disabled?: boolean\n\n /**\n * For debugging\n */\n log?: boolean\n} & MediaQueryCondition\n\nexport type MediaQueryListener = () => void\n\nexport type MediaQueryProps = {\n /**\n * If set to true, it will match and return the given children during SSR.\n */\n matchOnSSR?: boolean\n\n children?: React.ReactNode\n} & MediaQueryProperties\n\nexport type MediaQueryState = {\n match?: boolean | null\n mediaQueryList?: { matches: boolean }\n}\n\n/**\n * Adds a listener to a given MediaQuery\n *\n * @type {object} string or object { when: { min: 'small' } } that describes the media query\n * @property {string} query - media queries\n * @property {object} when - media queries\n * @property {boolean} not - reverses a media query\n * @param {function} callback function that gets emitted when the given media query\n * @returns function to remove listeners when called\n */\nexport function onMediaQueryChange(\n property: MediaQueryProperties | string,\n callback?: (matches: boolean, mediaQueryList: MediaQueryList) => void,\n { runOnInit = false } = {}\n): MediaQueryListener {\n let query = property\n let when = null\n let not = null\n\n if (property && typeof property === 'object') {\n query = null\n when = property.when || property\n not = property.not\n }\n\n const mediaQueryList = makeMediaQueryList({ query, when, not })\n\n if (runOnInit) {\n if (typeof callback === 'function') {\n callback(mediaQueryList?.matches, mediaQueryList)\n }\n }\n\n return createMediaQueryListener(mediaQueryList, callback)\n}\n\n/**\n * Returns a boolean for whether window.matchMedia is supported or not\n *\n * @returns boolean\n */\nexport const isMatchMediaSupported = (): boolean =>\n typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined'\n\n/**\n * Convert user defined media queries to an valid MediaQueryList we can assign a listener to\n *\n * @type {object} object that contains either a query, a when or not\n * @property {string} query - media queries\n * @property {object} when - media queries\n * @property {boolean} not - reverses a media query\n * @property {boolean} log - print used query to console\n * @returns MediaQueryList type\n */\nexport function makeMediaQueryList(\n {\n query,\n when,\n not = null,\n log = false,\n disabled = false,\n }: MediaQueryProperties = {},\n breakpoints: MediaQueryBreakpoints = null\n): MediaQueryList {\n const isSupported = isMatchMediaSupported()\n\n if (disabled || !isSupported) {\n return null\n }\n\n if (when) {\n query = buildQuery({ query, when, not }, breakpoints)\n }\n\n const mediaQueryString = convertToMediaQuery(query, breakpoints)\n const mediaQueryList = window.matchMedia(mediaQueryString)\n\n if (log) {\n warn('MediaQuery:', mediaQueryString)\n }\n\n return mediaQueryList\n}\n\n/**\n * Adds a listener to the window.matchMedia Browser API\n *\n * @param {MatchMediaList} mediaQueryList a DOM MatchMediaList object\n * @param {function} callback callback function\n * @returns function to remove listeners when called\n */\nexport function createMediaQueryListener(\n mediaQueryList: MediaQueryList,\n callback: (matches: boolean, event: Partial<MediaQueryListEvent>) => void\n): MediaQueryListener {\n if (!mediaQueryList) {\n return () => null\n }\n\n const listener = (event: MediaQueryListEvent) => {\n if (typeof callback === 'function') {\n callback(event?.matches, event)\n }\n }\n if (mediaQueryList?.addEventListener) {\n mediaQueryList.addEventListener('change', listener)\n }\n\n return () => {\n if (mediaQueryList?.removeEventListener) {\n mediaQueryList.removeEventListener('change', listener)\n }\n }\n}\n\n/**\n * Builds a valid media query we can use on window.matchMedia(...)\n *\n * @type {object} object that contains either a query, a when or not\n * @property {string} query - media queries\n * @property {object} when - media queries\n * @property {boolean} not - reverses a media query\n * @returns media queries as a string\n */\nexport function buildQuery(\n { query = null, when = null, not = null }: MediaQueryProperties = {},\n breakpoints?: MediaQueryBreakpoints\n) {\n if (when) {\n if (typeof when === 'string') {\n when = when.split(/[ ,]/g)\n }\n\n let listOfQueries = []\n\n if (Array.isArray(when)) {\n listOfQueries = listOfQueries.concat(\n combineQueries(when, breakpoints)\n )\n } else if (when && typeof when === 'object') {\n const query = convertToMediaQuery(when, breakpoints)\n if (query) {\n listOfQueries.push(query)\n }\n }\n\n if (listOfQueries.length > 0) {\n query = [listOfQueries.join(' '), query || '']\n .filter(Boolean)\n .join(' and ')\n .replace(/ +/g, ' ')\n .replace(/ ,/g, ',')\n }\n }\n\n if (isTrue(not)) {\n query = reverseQuery(String(query))\n }\n\n return query || 'not'\n}\n\n/**\n * Reverses a media query\n * @param {string} query media query to reverse with \"not\"\n * @returns reversed query\n */\nfunction reverseQuery(query: string) {\n if (query.startsWith('not')) {\n return query.replace(/^not +/, '')\n }\n if (!/^(screen|all|print|speech)/.test(query)) {\n query = `all and ${query}`\n }\n return `not ${query}`\n}\n\n/**\n * Builds a list of queries based on sizing types, like small, medium\n *\n * @param {*} queries media query definitions as an array that contains either strings with size types or an object with all the media query definitions\n * @returns array of JavaScript based queries\n */\nfunction combineQueries(\n queries: Array<MediaQueryCondition>,\n breakpoints: MediaQueryBreakpoints = null\n) {\n return queries\n .reduce((listOfQueries, when, i, arr) => {\n if (breakpoints) {\n breakpoints = mergeBreakpoints(breakpoints)\n }\n\n const query = convertToMediaQuery(when, breakpoints)\n\n if (query) {\n switch (arr[i - 1]) {\n case 'and':\n listOfQueries.push('and')\n break\n\n case 'or':\n default:\n listOfQueries.push(', ')\n break\n }\n\n listOfQueries.push(query)\n }\n\n return listOfQueries\n }, [])\n .filter((query, i) => {\n return !(i === 0 && query.startsWith(', '))\n })\n}\n\n/**\n * If custom breakpoints are given, we order them by the value\n * and return again an object as before\n */\nfunction mergeBreakpoints(breakpoints: MediaQueryBreakpoints) {\n return Object.entries({\n ...defaultBreakpoints,\n ...breakpoints,\n })\n .sort((a, b) => (a[1] > b[1] ? 1 : -1))\n .reduce((acc, [key, value]) => {\n acc[key] = value\n return acc\n }, {})\n}\n\n/**\n * Convert a media query from various formats to a valid string based media query\n *\n * @param {array|object|string} query media query definitions\n * @returns media query string\n */\nexport function convertToMediaQuery(\n query: MediaQueryCondition | Array<MediaQueryCondition>,\n breakpoints: MediaQueryBreakpoints = null\n): string {\n if (typeof query === 'string') {\n return query\n }\n\n // Handling array of media queries\n if (Array.isArray(query)) {\n return query.reduce((acc, q, index) => {\n acc += objToMediaQuery(q, breakpoints)\n if (index < query.length - 1) {\n acc += ', '\n }\n\n return acc\n }, '') as string\n }\n\n // Handling single media query\n return objToMediaQuery(query, breakpoints)\n}\n\n/**\n * Converts an object with PascalCase defined properties to string based media queries\n * @param {object} obj Object with PascalCase defined properties and respective values\n * @returns media query string\n */\nfunction objToMediaQuery(\n obj: MediaQueryCondition,\n breakpoints: MediaQueryBreakpoints = null\n): string {\n let hasNot = false\n let query: string | Array<null> = Object.keys(obj).reduce(\n (acc, feature) => {\n let value = obj[feature]\n feature = toKebabCase(feature)\n\n if (feature === 'not') {\n hasNot = true\n return acc\n }\n\n if (feature === 'min' || feature === 'max') {\n feature = `${feature}-width`\n }\n\n // Add em to dimension features\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = value + 'em'\n }\n\n if (value === true) {\n acc.push(feature)\n } else if (value === false) {\n acc.push('not ' + feature)\n } else {\n value = getValueByFeature(value, breakpoints)\n if (typeof value !== 'undefined') {\n acc.push(`(${feature}: ${value})`)\n }\n }\n\n return acc\n },\n []\n )\n\n if (Array.isArray(query)) {\n query = query.length > 0 ? query.join(' and ') : query.join('')\n }\n\n if (hasNot) {\n query = reverseQuery(query)\n }\n\n return query\n}\n\n/**\n * Corrects breakpoint types\n *\n * @param {string} value small, medium, large etc\n * @param {object} types breakpoints\n * @returns corrected value\n */\nfunction getValueByFeature(\n value: string,\n types: MediaQueryBreakpoints = null\n) {\n types = types || defaultBreakpoints\n if (Object.prototype.hasOwnProperty.call(types, value)) {\n value = types[value]\n }\n return value\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"MediaQueryUtils.js","names":["_componentHelper","require","_helpers","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","defaultBreakpoints","small","medium","large","exports","onMediaQueryChange","property","callback","runOnInit","query","when","not","mediaQueryList","makeMediaQueryList","matches","createMediaQueryListener","isMatchMediaSupported","window","matchMedia","breakpoints","options","isSupported","disabled","buildQuery","mediaQueryString","convertToMediaQuery","log","warn","listener","event","addEventListener","removeEventListener","split","listOfQueries","Array","isArray","concat","combineQueries","join","Boolean","replace","isTrue","reverseQuery","startsWith","test","queries","reduce","arr","mergeBreakpoints","entries","sort","a","b","acc","_ref","q","index","objToMediaQuery","hasNot","feature","toKebabCase","getValueByFeature","correctRange","size","parseFloat","match","correctedSize","types","prototype","hasOwnProperty"],"sources":["../../../src/shared/MediaQueryUtils.ts"],"sourcesContent":["import { isTrue, toKebabCase } from './component-helper'\nimport { warn } from './helpers'\n\nexport type MediaQuerySizes =\n | 'small'\n | 'medium'\n | 'large'\n | 'x-large'\n | 'xx-large'\nexport type MediaQueryBreakpoints = Partial<\n Record<MediaQuerySizes, string>\n>\n\nexport const defaultBreakpoints: MediaQueryBreakpoints = {\n small: '40em',\n medium: '60em',\n large: '72em',\n 'x-large': '80em',\n 'xx-large': '90em',\n}\n\nexport type MediaQueryCondition =\n | {\n min?: number | string | MediaQuerySizes\n max?: number | string | MediaQuerySizes\n screen?: boolean\n minWidth?: number | string | MediaQuerySizes\n maxWidth?: number | string | MediaQuerySizes\n orientation?: string\n handheld?: boolean\n not?: boolean\n all?: boolean\n monochrome?: boolean\n aspectRatio?: string\n }\n | string\n\nexport type MediaQueryProperties = {\n /**\n * A MediaQuery as a string similar to the CSS API, but without `@media`.\n */\n query?: MediaQueryCondition\n\n /**\n * Define a list of sizes to match, given as an object `{ min: 'small', max: 'medium' }` or as an array `[{ min: 'small', max: 'medium' }, { min: 'medium', max: 'large' }]`.\n */\n when?: MediaQueryCondition | Array<MediaQueryCondition>\n\n /**\n * Reverts the defined queries as a whole.\n */\n not?: boolean\n} & MediaQueryCondition\n\nexport type MediaQueryOptions = {\n /**\n * If set to true, no MediaQuery will be used.\n */\n disabled?: boolean\n\n /**\n * Will correct the size of the media query ranges (e.g. medium will be from 40.0625em to 60em)\n * Default: true\n */\n correctRange?: boolean\n\n /**\n * For debugging\n */\n log?: boolean\n}\n\nexport type MediaQueryListener = () => void\n\nexport type MediaQueryProps = {\n /**\n * If set to true, it will match and return the given children during SSR.\n */\n matchOnSSR?: boolean\n\n children?: React.ReactNode\n} & MediaQueryProperties &\n MediaQueryOptions\n\nexport type MediaQueryState = {\n match?: boolean | null\n mediaQueryList?: { matches: boolean }\n}\n\n/**\n * Adds a listener to a given MediaQuery\n */\nexport function onMediaQueryChange(\n property: MediaQueryProperties | string,\n callback?: (matches: boolean, mediaQueryList: MediaQueryList) => void,\n { runOnInit = false } = {}\n): MediaQueryListener {\n let query = property\n let when = null\n let not = null\n\n if (property && typeof property === 'object') {\n query = null\n when = property.when || property\n not = property.not\n }\n\n const mediaQueryList = makeMediaQueryList({ query, when, not })\n\n if (runOnInit) {\n if (typeof callback === 'function') {\n callback(mediaQueryList?.matches, mediaQueryList)\n }\n }\n\n return createMediaQueryListener(mediaQueryList, callback)\n}\n\n/**\n * Returns a boolean for whether window.matchMedia is supported or not\n */\nexport const isMatchMediaSupported = (): boolean =>\n typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined'\n\n/**\n * Convert user defined media queries to an valid MediaQueryList we can assign a listener to\n */\nexport function makeMediaQueryList(\n { query, when, not = null }: MediaQueryProperties = {},\n breakpoints: MediaQueryBreakpoints = null,\n options?: MediaQueryOptions\n): MediaQueryList {\n const isSupported = isMatchMediaSupported()\n\n if (options?.disabled || !isSupported) {\n return null\n }\n\n if (when) {\n query = buildQuery({ query, when, not }, breakpoints, options)\n }\n\n const mediaQueryString = convertToMediaQuery(query, breakpoints, options)\n const mediaQueryList = window.matchMedia(mediaQueryString)\n\n if (options?.log) {\n warn('MediaQuery:', mediaQueryString)\n }\n\n return mediaQueryList\n}\n\n/**\n * Adds a listener to the window.matchMedia Browser API\n */\nexport function createMediaQueryListener(\n mediaQueryList: MediaQueryList,\n callback: (matches: boolean, event: Partial<MediaQueryListEvent>) => void\n): MediaQueryListener {\n if (!mediaQueryList) {\n return () => null\n }\n\n const listener = (event: MediaQueryListEvent) => {\n if (typeof callback === 'function') {\n callback(event?.matches, event)\n }\n }\n if (mediaQueryList?.addEventListener) {\n mediaQueryList.addEventListener('change', listener)\n }\n\n return () => {\n if (mediaQueryList?.removeEventListener) {\n mediaQueryList.removeEventListener('change', listener)\n }\n }\n}\n\n/**\n * Builds a valid media query we can use on window.matchMedia(...)\n */\nexport function buildQuery(\n { query = null, when = null, not = null }: MediaQueryProperties = {},\n breakpoints?: MediaQueryBreakpoints,\n options?: MediaQueryOptions\n) {\n if (when) {\n if (typeof when === 'string') {\n when = when.split(/[ ,]/g)\n }\n\n let listOfQueries = []\n\n if (Array.isArray(when)) {\n listOfQueries = listOfQueries.concat(\n combineQueries(when, breakpoints, options)\n )\n } else if (when && typeof when === 'object') {\n const query = convertToMediaQuery(when, breakpoints, options)\n if (query) {\n listOfQueries.push(query)\n }\n }\n\n if (listOfQueries.length > 0) {\n query = [listOfQueries.join(' '), query || '']\n .filter(Boolean)\n .join(' and ')\n .replace(/ +/g, ' ')\n .replace(/ ,/g, ',')\n }\n }\n\n if (isTrue(not)) {\n query = reverseQuery(String(query))\n }\n\n return query || 'not'\n}\n\n/**\n * Reverses a media query\n */\nfunction reverseQuery(query: string) {\n if (query.startsWith('not')) {\n return query.replace(/^not +/, '')\n }\n if (!/^(screen|all|print|speech)/.test(query)) {\n query = `all and ${query}`\n }\n return `not ${query}`\n}\n\n/**\n * Builds a list of queries based on sizing types, like small, medium\n */\nfunction combineQueries(\n queries: Array<MediaQueryCondition>,\n breakpoints: MediaQueryBreakpoints = null,\n options?: MediaQueryOptions\n) {\n return queries\n .reduce((listOfQueries, when, i, arr) => {\n if (breakpoints) {\n breakpoints = mergeBreakpoints(breakpoints)\n }\n\n const query = convertToMediaQuery(when, breakpoints, options)\n\n if (query) {\n switch (arr[i - 1]) {\n case 'and':\n listOfQueries.push('and')\n break\n\n case 'or':\n default:\n listOfQueries.push(', ')\n break\n }\n\n listOfQueries.push(query)\n }\n\n return listOfQueries\n }, [])\n .filter((query, i) => {\n return !(i === 0 && query.startsWith(', '))\n })\n}\n\n/**\n * If custom breakpoints are given, we order them by the value\n * and return again an object as before\n */\nfunction mergeBreakpoints(breakpoints: MediaQueryBreakpoints) {\n return Object.entries({\n ...defaultBreakpoints,\n ...breakpoints,\n })\n .sort((a, b) => (a[1] > b[1] ? 1 : -1))\n .reduce((acc, [key, value]) => {\n acc[key] = value\n return acc\n }, {})\n}\n\n/**\n * Convert a media query from various formats to a valid string based media query\n */\nexport function convertToMediaQuery(\n query: MediaQueryCondition | Array<MediaQueryCondition>,\n breakpoints: MediaQueryBreakpoints = null,\n options?: MediaQueryOptions\n): string {\n if (typeof query === 'string') {\n return query\n }\n\n // Handling array of media queries\n if (Array.isArray(query)) {\n return query.reduce((acc, q, index) => {\n acc += objToMediaQuery(q, breakpoints, options)\n if (index < query.length - 1) {\n acc += ', '\n }\n\n return acc\n }, '') as string\n }\n\n // Handling single media query\n return objToMediaQuery(query, breakpoints, options)\n}\n\n/**\n * Converts an object with PascalCase defined properties to string based media queries\n */\nfunction objToMediaQuery(\n obj: MediaQueryCondition,\n breakpoints: MediaQueryBreakpoints = null,\n options?: MediaQueryOptions\n): string {\n let hasNot = false\n let query: string | Array<null> = Object.keys(obj).reduce(\n (acc, feature) => {\n let value = obj[feature]\n feature = toKebabCase(feature)\n\n if (feature === 'not') {\n hasNot = true\n return acc\n }\n\n if (feature === 'min' || feature === 'max') {\n feature = `${feature}-width`\n }\n\n // Add em to dimension features\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = value + 'em'\n }\n\n if (value === true) {\n acc.push(feature)\n } else if (value === false) {\n acc.push('not ' + feature)\n } else {\n value = getValueByFeature(value, breakpoints)\n if (typeof value !== 'undefined') {\n acc.push(`(${feature}: ${value})`)\n }\n }\n\n return acc\n },\n []\n )\n\n if (Array.isArray(query)) {\n query = query.length > 0 ? query.join(' and ') : query.join('')\n }\n\n if (hasNot) {\n query = reverseQuery(query)\n }\n\n if (options?.correctRange && /\\(min-width: [0-9]+em\\)/.test(query)) {\n const size =\n parseFloat(query.match(/\\(min-width: ([0-9]+)em\\)/)[1]) || 0\n if (size > 0) {\n const correctedSize = (size * 16 + 1) / 16\n query = query.replace(\n /(min-width: [0-9]+em)/,\n `min-width: ${correctedSize}em`\n )\n }\n }\n\n return query\n}\n\n/**\n * Corrects breakpoint types\n */\nfunction getValueByFeature(\n value: string,\n types: MediaQueryBreakpoints = null\n) {\n types = types || defaultBreakpoints\n if (Object.prototype.hasOwnProperty.call(types, value)) {\n value = types[value]\n }\n return value\n}\n"],"mappings":"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"}
@@ -43,7 +43,7 @@ export function matchAll(string: any, regex: any): any[];
43
43
  export function isChildOfElement(element: HTMLElement, target: HTMLElement, callback?: Function): HTMLElement | null;
44
44
  export function roundToNearest(num: any, target: any): any;
45
45
  export function getClosestScrollViewElement(currentElement: any): Element;
46
- export function convertJsxToString(elements: any, separator?: any): any;
46
+ export function convertJsxToString(elements: any, separator?: any, transformWord?: any): any;
47
47
  import { getPreviousSibling } from './helpers/getPreviousSibling';
48
48
  import { warn } from './helpers';
49
49
  export { getPreviousSibling, warn };
@@ -494,17 +494,21 @@ const getClosestScrollViewElement = currentElement => {
494
494
  exports.getClosestScrollViewElement = getClosestScrollViewElement;
495
495
  const convertJsxToString = function (elements) {
496
496
  let separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
497
+ let transformWord = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
497
498
  if (!Array.isArray(elements)) {
498
499
  elements = [elements];
499
500
  }
500
501
  const process = word => {
501
502
  if (_react.default.isValidElement(word)) {
503
+ if (transformWord) {
504
+ word = transformWord(word);
505
+ }
502
506
  if (typeof word.props.children === 'string') {
503
507
  word = word.props.children.trim();
504
508
  } else if (Array.isArray(word.props.children)) {
505
509
  word = word.props.children.reduce((acc, word) => {
506
510
  if (typeof word !== 'string') {
507
- word = process(word);
511
+ word = process(word, separator, transformWord);
508
512
  }
509
513
  if (typeof word === 'string') {
510
514
  acc = (acc + (separator || '') + word).trim();
@@ -1 +1 @@
1
- {"version":3,"file":"component-helper.js","names":["_react","_interopRequireDefault","require","_keycode","_whatInput","_helpers","_getPreviousSibling","_Eufemia","_InteractionInvalidation","_extendPropsWithContext","_assignPropsWithContext","_filterProps","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","init","whatInput","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","e","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","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","onlyTexts","reduce","pV","cV","join","extend","first","_len","objects","_key","keepRef","shift","acc1","acc2","_ref3","isTrue","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","eventObject","event","currentTarget","dataset","replace","r","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","l","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","_ref4","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","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","process","word","React","isValidElement","trim","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","_len2","_key2","combineAriaBy","combineDescribedBy","_len3","_key3","combineDetails","_len4","_key4","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 { 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 its 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// extends given objects recursively and removes entries with null values\n// makes sure that we by default return a totally new object every time\nexport const extend = (...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 = extend(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\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// TODO: Test if this solution is faster\n// const toCamelCase = (str) =>\n// str.replace(/([-_][a-z])/g, (group) =>\n// group.toUpperCase().replace('-', '').replace('_', '')\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 .replace(/(?<=(^|\\s|-))(.)/g, (l) => l.toUpperCase())\n : str\n}\n\n/**\n * [detectOutsideClick Detects a click outside a given DOM element]\n * @param {[type]} ignoreElement [The element we want to protect from a click]\n * @param {[type]} onSuccess [Will be called on outside click]\n * @return {[type]} [void]\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 elem = currentElement\n if (!ignoreElements[i]) {\n continue\n }\n do {\n if (elem === ignoreElements[i]) {\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 = (elements, separator = undefined) => {\n if (!Array.isArray(elements)) {\n elements = [elements]\n }\n\n const process = (word) => {\n if (React.isValidElement(word)) {\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)\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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"}
1
+ {"version":3,"file":"component-helper.js","names":["_react","_interopRequireDefault","require","_keycode","_whatInput","_helpers","_getPreviousSibling","_Eufemia","_InteractionInvalidation","_extendPropsWithContext","_assignPropsWithContext","_filterProps","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","init","whatInput","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","e","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","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","onlyTexts","reduce","pV","cV","join","extend","first","_len","objects","_key","keepRef","shift","acc1","acc2","_ref3","isTrue","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","eventObject","event","currentTarget","dataset","replace","r","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","l","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","_ref4","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","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","_len2","_key2","combineAriaBy","combineDescribedBy","_len3","_key3","combineDetails","_len4","_key4","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 { 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 its 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// extends given objects recursively and removes entries with null values\n// makes sure that we by default return a totally new object every time\nexport const extend = (...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 = extend(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\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// TODO: Test if this solution is faster\n// const toCamelCase = (str) =>\n// str.replace(/([-_][a-z])/g, (group) =>\n// group.toUpperCase().replace('-', '').replace('_', '')\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 .replace(/(?<=(^|\\s|-))(.)/g, (l) => l.toUpperCase())\n : str\n}\n\n/**\n * [detectOutsideClick Detects a click outside a given DOM element]\n * @param {[type]} ignoreElement [The element we want to protect from a click]\n * @param {[type]} onSuccess [Will be called on outside click]\n * @return {[type]} [void]\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 elem = currentElement\n if (!ignoreElements[i]) {\n continue\n }\n do {\n if (elem === ignoreElements[i]) {\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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"}
@@ -1,4 +1,4 @@
1
- import type { MediaQueryCondition, MediaQueryBreakpoints } from './MediaQueryUtils';
1
+ import type { MediaQueryCondition, MediaQueryBreakpoints, MediaQueryOptions } from './MediaQueryUtils';
2
2
  export type UseMediaProps = {
3
3
  /**
4
4
  * Give a initial value, that is used during SSR as well.
@@ -9,7 +9,7 @@ export type UseMediaProps = {
9
9
  * If set to true, no MediaQuery will be used.
10
10
  * Default: false
11
11
  */
12
- disabled?: boolean;
12
+ disabled?: MediaQueryOptions['disabled'];
13
13
  /**
14
14
  * Provide a custom breakpoint
15
15
  * Default: defaultBreakpoints
@@ -24,6 +24,11 @@ export type UseMediaProps = {
24
24
  * For debugging
25
25
  */
26
26
  log?: boolean;
27
+ /**
28
+ * Not documented as of now. For internal use only.
29
+ * Default: true
30
+ */
31
+ correctRange?: MediaQueryOptions['correctRange'];
27
32
  };
28
33
  export type UseMediaQueries = {
29
34
  small: MediaQueryCondition;
@@ -6,18 +6,20 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = useMedia;
8
8
  exports.defaultQueries = void 0;
9
- var _react = _interopRequireDefault(require("react"));
9
+ var _react = _interopRequireWildcard(require("react"));
10
10
  var _Context = _interopRequireDefault(require("./Context"));
11
11
  var _MediaQueryUtils = require("./MediaQueryUtils");
12
12
  var _componentHelper = require("./component-helper");
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
16
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
17
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
18
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
19
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
18
20
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
19
21
  const makeLayoutEffect = () => {
20
- return typeof window === 'undefined' ? _react.default.useEffect : window['__SSR_TEST__'] ? () => null : _react.default.useLayoutEffect;
22
+ return typeof window === 'undefined' ? _react.useEffect : window['__SSR_TEST__'] ? () => null : _react.default.useLayoutEffect;
21
23
  };
22
24
  const defaultQueries = {
23
25
  small: {
@@ -38,17 +40,18 @@ function useMedia() {
38
40
  const {
39
41
  initialValue = null,
40
42
  disabled,
43
+ correctRange = true,
41
44
  breakpoints,
42
45
  queries = defaultQueries,
43
46
  log
44
47
  } = props;
45
- const context = _react.default.useContext(_Context.default);
46
- const refs = _react.default.useRef({});
47
- const defaults = _react.default.useRef({});
48
- const isMounted = _react.default.useRef(false);
49
- const isDisabled = _react.default.useRef(disabled);
50
- const [result, updateRerender] = _react.default.useState(makeResult);
51
- const useLayoutEffect = _react.default.useMemo(makeLayoutEffect, []);
48
+ const context = (0, _react.useContext)(_Context.default);
49
+ const refs = (0, _react.useRef)({});
50
+ const defaults = (0, _react.useRef)({});
51
+ const isMounted = (0, _react.useRef)(false);
52
+ const isDisabled = (0, _react.useRef)(disabled);
53
+ const [result, updateRerender] = (0, _react.useState)(makeResult);
54
+ const useLayoutEffect = (0, _react.useMemo)(makeLayoutEffect, []);
52
55
  useLayoutEffect(() => {
53
56
  if (!isMounted.current) {
54
57
  isMounted.current = true;
@@ -109,10 +112,12 @@ function useMedia() {
109
112
  return;
110
113
  }
111
114
  const mediaQueryList = (0, _MediaQueryUtils.makeMediaQueryList)({
112
- when,
115
+ when
116
+ }, breakpoints || context.breakpoints, {
113
117
  disabled,
118
+ correctRange,
114
119
  log
115
- }, breakpoints || context.breakpoints);
120
+ });
116
121
  const event = (0, _MediaQueryUtils.createMediaQueryListener)(mediaQueryList, match => {
117
122
  if (!isDisabled.current && match) {
118
123
  const state = _objectSpread(_objectSpread({}, defaults.current), {}, {
@@ -1 +1 @@
1
- {"version":3,"file":"useMedia.js","names":["_react","_interopRequireDefault","require","_Context","_MediaQueryUtils","_componentHelper","obj","__esModule","default","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","makeLayoutEffect","window","React","useEffect","useLayoutEffect","defaultQueries","small","min","max","medium","large","exports","useMedia","props","initialValue","disabled","breakpoints","queries","log","context","useContext","Context","refs","useRef","defaults","isMounted","isDisabled","result","updateRerender","useState","makeResult","useMemo","current","removeListeners","entries","_ref","_item$event","item","event","reduce","acc","_ref2","_item$mediaQueryList","k","when","name","toPascalCase","runQuery","hasMatch","mediaQueryList","matches","isSSR","isMatchMediaSupported","_ref3","makeMediaQueryList","createMediaQueryListener","match","state"],"sources":["../../../src/shared/useMedia.tsx"],"sourcesContent":["import React from 'react'\nimport Context from './Context'\nimport {\n makeMediaQueryList,\n createMediaQueryListener,\n isMatchMediaSupported,\n} from './MediaQueryUtils'\nimport type {\n MediaQueryListener,\n MediaQueryCondition,\n MediaQueryBreakpoints,\n} from './MediaQueryUtils'\nimport { toPascalCase } from './component-helper'\n\nconst makeLayoutEffect = () => {\n // SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n return typeof window === 'undefined'\n ? React.useEffect\n : window['__SSR_TEST__'] // To be able to test this hook like we are in SSR land\n ? () => null\n : React.useLayoutEffect\n}\n\nexport type UseMediaProps = {\n /**\n * Give a initial value, that is used during SSR as well.\n * Default: null\n */\n initialValue?: Partial<UseMediaResult>\n\n /**\n * If set to true, no MediaQuery will be used.\n * Default: false\n */\n disabled?: boolean\n\n /**\n * Provide a custom breakpoint\n * Default: defaultBreakpoints\n */\n breakpoints?: MediaQueryBreakpoints\n\n /**\n * Provide a custom query\n * Default: defaultQueries\n */\n queries?: Record<string, MediaQueryCondition>\n\n /**\n * For debugging\n */\n log?: boolean\n}\n\nexport type UseMediaQueries = {\n small: MediaQueryCondition\n medium: MediaQueryCondition\n large: MediaQueryCondition\n}\n\nexport const defaultQueries: UseMediaQueries = {\n small: { min: 0, max: 'small' },\n medium: { min: 'small', max: 'medium' },\n large: { min: 'medium' },\n}\n\nexport type UseMediaResult = {\n isSmall: boolean\n isMedium: boolean\n isLarge: boolean\n isSSR: boolean\n key: Keys\n}\n\n/**\n * Internal stuff\n */\n\ntype Keys = keyof UseMediaQueries\ntype Names = 'isSmall' | 'isMedium' | 'isLarge'\n\ntype UseMediaItem = {\n event: MediaQueryListener\n mediaQueryList: MediaQueryList\n}\n\ntype UseMediaQueryProps = {\n when: MediaQueryCondition\n name: Names\n key: Keys\n}\n\nexport default function useMedia(\n props: UseMediaProps = {}\n): UseMediaResult {\n const {\n initialValue = null,\n disabled,\n breakpoints,\n queries = defaultQueries,\n log,\n } = props\n\n const context = React.useContext(Context)\n\n const refs = React.useRef({})\n const defaults = React.useRef({})\n const isMounted = React.useRef(false)\n const isDisabled = React.useRef(disabled)\n const [result, updateRerender] =\n React.useState<UseMediaResult>(makeResult)\n\n const useLayoutEffect = React.useMemo(makeLayoutEffect, [])\n\n useLayoutEffect(() => {\n if (!isMounted.current) {\n isMounted.current = true\n updateRerender(makeResult())\n }\n\n return removeListeners\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n // If it was disabled before\n if (isDisabled.current && !disabled) {\n updateRerender(makeResult())\n }\n isDisabled.current = disabled\n }, [disabled]) // eslint-disable-line react-hooks/exhaustive-deps\n\n return result\n\n function removeListeners() {\n Object.entries(refs.current).forEach(\n ([key, item]: [Keys, UseMediaItem]) => {\n item?.event?.()\n delete refs.current[key]\n }\n )\n }\n\n function makeResult() {\n return Object.entries(queries).reduce(\n (acc, [k, when]) => {\n const key = k as Keys\n const name = `is${toPascalCase(key)}` as Names\n\n if (disabled) {\n acc[name] = false\n return acc\n }\n\n defaults.current[name] = false\n\n const item = runQuery({\n when,\n name,\n key,\n })\n\n const hasMatch = !isMounted.current\n ? typeof initialValue?.[name] !== 'undefined'\n ? initialValue[name]\n : false\n : item?.mediaQueryList?.matches || false\n acc[name] = hasMatch\n if (hasMatch) {\n acc.key = key\n }\n\n refs.current[key] = item\n\n return acc\n },\n { isSSR: !isMatchMediaSupported(), key: null } as UseMediaResult\n ) as UseMediaResult\n }\n\n function runQuery({\n when,\n name,\n key,\n }: UseMediaQueryProps): UseMediaItem {\n if (!isMatchMediaSupported()) {\n return // do nothing\n }\n\n const mediaQueryList = makeMediaQueryList(\n {\n when,\n disabled,\n log,\n },\n\n breakpoints || context.breakpoints\n )\n\n const event = createMediaQueryListener(mediaQueryList, (match) => {\n if (!isDisabled.current && match) {\n const state = {\n ...defaults.current,\n key,\n isSSR: result.isSSR,\n } as UseMediaResult\n state[name] = match\n updateRerender(state)\n }\n })\n\n return { event, mediaQueryList }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useMedia.js","names":["_react","_interopRequireWildcard","require","_Context","_interopRequireDefault","_MediaQueryUtils","_componentHelper","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","makeLayoutEffect","window","useEffect","React","useLayoutEffect","defaultQueries","small","min","max","medium","large","exports","useMedia","props","initialValue","disabled","correctRange","breakpoints","queries","log","context","useContext","Context","refs","useRef","defaults","isMounted","isDisabled","result","updateRerender","useState","makeResult","useMemo","current","removeListeners","entries","_ref","_item$event","item","event","reduce","acc","_ref2","_item$mediaQueryList","k","when","name","toPascalCase","runQuery","hasMatch","mediaQueryList","matches","isSSR","isMatchMediaSupported","_ref3","makeMediaQueryList","createMediaQueryListener","match","state"],"sources":["../../../src/shared/useMedia.tsx"],"sourcesContent":["import React, {\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport Context from './Context'\nimport {\n makeMediaQueryList,\n createMediaQueryListener,\n isMatchMediaSupported,\n} from './MediaQueryUtils'\nimport type {\n MediaQueryListener,\n MediaQueryCondition,\n MediaQueryBreakpoints,\n MediaQueryOptions,\n} from './MediaQueryUtils'\nimport { toPascalCase } from './component-helper'\n\nconst makeLayoutEffect = () => {\n // SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n return typeof window === 'undefined'\n ? useEffect\n : window['__SSR_TEST__'] // To be able to test this hook like we are in SSR land\n ? () => null\n : React.useLayoutEffect\n}\n\nexport type UseMediaProps = {\n /**\n * Give a initial value, that is used during SSR as well.\n * Default: null\n */\n initialValue?: Partial<UseMediaResult>\n\n /**\n * If set to true, no MediaQuery will be used.\n * Default: false\n */\n disabled?: MediaQueryOptions['disabled']\n\n /**\n * Provide a custom breakpoint\n * Default: defaultBreakpoints\n */\n breakpoints?: MediaQueryBreakpoints\n\n /**\n * Provide a custom query\n * Default: defaultQueries\n */\n queries?: Record<string, MediaQueryCondition>\n\n /**\n * For debugging\n */\n log?: boolean\n\n /**\n * Not documented as of now. For internal use only.\n * Default: true\n */\n correctRange?: MediaQueryOptions['correctRange']\n}\n\nexport type UseMediaQueries = {\n small: MediaQueryCondition\n medium: MediaQueryCondition\n large: MediaQueryCondition\n}\n\nexport const defaultQueries: UseMediaQueries = {\n small: { min: 0, max: 'small' },\n medium: { min: 'small', max: 'medium' },\n large: { min: 'medium' },\n}\n\nexport type UseMediaResult = {\n isSmall: boolean\n isMedium: boolean\n isLarge: boolean\n isSSR: boolean\n key: Keys\n}\n\n/**\n * Internal stuff\n */\n\ntype Keys = keyof UseMediaQueries\ntype Names = 'isSmall' | 'isMedium' | 'isLarge'\n\ntype UseMediaItem = {\n event: MediaQueryListener\n mediaQueryList: MediaQueryList\n}\n\ntype UseMediaQueryProps = {\n when: MediaQueryCondition\n name: Names\n key: Keys\n}\n\nexport default function useMedia(\n props: UseMediaProps = {}\n): UseMediaResult {\n const {\n initialValue = null,\n disabled,\n correctRange = true,\n breakpoints,\n queries = defaultQueries,\n log,\n } = props\n\n const context = useContext(Context)\n\n const refs = useRef({})\n const defaults = useRef({})\n const isMounted = useRef(false)\n const isDisabled = useRef(disabled)\n const [result, updateRerender] = useState<UseMediaResult>(makeResult)\n\n const useLayoutEffect = useMemo(makeLayoutEffect, [])\n\n useLayoutEffect(() => {\n if (!isMounted.current) {\n isMounted.current = true\n updateRerender(makeResult())\n }\n\n return removeListeners\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n // If it was disabled before\n if (isDisabled.current && !disabled) {\n updateRerender(makeResult())\n }\n isDisabled.current = disabled\n }, [disabled]) // eslint-disable-line react-hooks/exhaustive-deps\n\n return result\n\n function removeListeners() {\n Object.entries(refs.current).forEach(\n ([key, item]: [Keys, UseMediaItem]) => {\n item?.event?.()\n delete refs.current[key]\n }\n )\n }\n\n function makeResult() {\n return Object.entries(queries).reduce(\n (acc, [k, when]) => {\n const key = k as Keys\n const name = `is${toPascalCase(key)}` as Names\n\n if (disabled) {\n acc[name] = false\n return acc\n }\n\n defaults.current[name] = false\n\n const item = runQuery({\n when,\n name,\n key,\n })\n\n const hasMatch = !isMounted.current\n ? typeof initialValue?.[name] !== 'undefined'\n ? initialValue[name]\n : false\n : item?.mediaQueryList?.matches || false\n acc[name] = hasMatch\n if (hasMatch) {\n acc.key = key\n }\n\n refs.current[key] = item\n\n return acc\n },\n { isSSR: !isMatchMediaSupported(), key: null } as UseMediaResult\n ) as UseMediaResult\n }\n\n function runQuery({\n when,\n name,\n key,\n }: UseMediaQueryProps): UseMediaItem {\n if (!isMatchMediaSupported()) {\n return // do nothing\n }\n\n const mediaQueryList = makeMediaQueryList(\n { when },\n breakpoints || context.breakpoints,\n { disabled, correctRange, log }\n )\n\n const event = createMediaQueryListener(mediaQueryList, (match) => {\n if (!isDisabled.current && match) {\n const state = {\n ...defaults.current,\n key,\n isSSR: result.isSSR,\n } as UseMediaResult\n state[name] = match\n updateRerender(state)\n }\n })\n\n return { event, mediaQueryList }\n }\n}\n"],"mappings":"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"}
@@ -5,41 +5,62 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = useMediaQuery;
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
  var _componentHelper = require("./component-helper");
10
10
  var _Context = _interopRequireDefault(require("./Context"));
11
11
  var _MediaQueryUtils = require("./MediaQueryUtils");
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ const useLayoutEffect = typeof window === 'undefined' ? _react.default.useEffect : _react.default.useLayoutEffect;
13
16
  function useMediaQuery(props) {
14
17
  var _mediaQueryList$curre;
15
- const context = _react.default.useContext(_Context.default);
18
+ const context = (0, _react.useContext)(_Context.default);
16
19
  const {
17
20
  query,
18
21
  when,
19
22
  not,
20
23
  matchOnSSR,
21
- disabled
24
+ disabled,
25
+ correctRange = true,
26
+ log
22
27
  } = props;
23
- let matches = _react.default.useMemo(() => {
28
+ let matches = (0, _react.useMemo)(() => {
24
29
  if (disabled) {
25
30
  return false;
26
31
  }
27
32
  return (0, _componentHelper.isTrue)(matchOnSSR) && !(0, _MediaQueryUtils.isMatchMediaSupported)();
28
33
  }, [disabled, matchOnSSR]);
29
- const mediaQueryList = _react.default.useRef((0, _MediaQueryUtils.makeMediaQueryList)(props, context.breakpoints));
34
+ const mediaQueryList = (0, _react.useRef)((0, _MediaQueryUtils.makeMediaQueryList)({
35
+ query,
36
+ when,
37
+ not
38
+ }, context.breakpoints, {
39
+ disabled,
40
+ correctRange,
41
+ log
42
+ }));
30
43
  if ((_mediaQueryList$curre = mediaQueryList.current) !== null && _mediaQueryList$curre !== void 0 && _mediaQueryList$curre.matches) {
31
44
  matches = true;
32
45
  }
33
- const [match, matchUpdate] = _react.default.useState(matches);
34
- const listenerRef = _react.default.useRef();
35
- _react.default.useLayoutEffect(() => {
46
+ const [match, matchUpdate] = (0, _react.useState)(matches);
47
+ const listenerRef = (0, _react.useRef)();
48
+ useLayoutEffect(() => {
36
49
  if (disabled) {
37
50
  return;
38
51
  }
39
52
  if (typeof listenerRef.current === 'function') {
40
53
  var _mediaQueryList$curre2;
41
54
  listenerRef.current();
42
- mediaQueryList.current = (0, _MediaQueryUtils.makeMediaQueryList)(props, context.breakpoints);
55
+ mediaQueryList.current = (0, _MediaQueryUtils.makeMediaQueryList)({
56
+ query,
57
+ when,
58
+ not
59
+ }, context.breakpoints, {
60
+ disabled,
61
+ correctRange,
62
+ log
63
+ });
43
64
  matchUpdate((_mediaQueryList$curre2 = mediaQueryList.current) === null || _mediaQueryList$curre2 === void 0 ? void 0 : _mediaQueryList$curre2.matches);
44
65
  }
45
66
  listenerRef.current = (0, _MediaQueryUtils.createMediaQueryListener)(mediaQueryList.current, match => matchUpdate(match));