@dnb/eufemia 10.53.0 → 10.54.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 (807) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/cjs/components/CountryFlag.d.ts +12 -0
  3. package/cjs/components/CountryFlag.js +24 -0
  4. package/cjs/components/CountryFlag.js.map +1 -0
  5. package/cjs/components/autocomplete/Autocomplete.js +2 -3
  6. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  7. package/cjs/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  8. package/cjs/components/checkbox/Checkbox.js +1 -2
  9. package/cjs/components/checkbox/Checkbox.js.map +1 -1
  10. package/cjs/components/country-flag/CountryFlag.d.ts +11 -0
  11. package/cjs/components/country-flag/CountryFlag.js +48 -0
  12. package/cjs/components/country-flag/CountryFlag.js.map +1 -0
  13. package/cjs/components/country-flag/CountryFlagDocs.d.ts +2 -0
  14. package/cjs/components/country-flag/CountryFlagDocs.js +25 -0
  15. package/cjs/components/country-flag/CountryFlagDocs.js.map +1 -0
  16. package/cjs/components/country-flag/index.d.ts +7 -0
  17. package/cjs/components/country-flag/index.js +24 -0
  18. package/cjs/components/country-flag/index.js.map +1 -0
  19. package/cjs/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
  20. package/cjs/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
  21. package/cjs/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
  22. package/cjs/components/country-flag/style/dnb-country-flag.css +42 -0
  23. package/cjs/components/country-flag/style/dnb-country-flag.min.css +1 -0
  24. package/cjs/components/country-flag/style/dnb-country-flag.scss +53 -0
  25. package/cjs/components/country-flag/style/index.d.ts +5 -0
  26. package/cjs/components/country-flag/style/index.js +4 -0
  27. package/cjs/components/country-flag/style/index.js.map +1 -0
  28. package/cjs/components/country-flag/style.d.ts +5 -0
  29. package/cjs/components/country-flag/style.js +4 -0
  30. package/cjs/components/country-flag/style.js.map +1 -0
  31. package/cjs/components/date-picker/DatePickerCalendar.js +1 -1
  32. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  33. package/cjs/components/date-picker/DatePickerInput.js +1 -2
  34. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  35. package/cjs/components/dialog/Dialog.js +3 -1
  36. package/cjs/components/dialog/Dialog.js.map +1 -1
  37. package/cjs/components/dialog/DialogDocs.d.ts +2 -0
  38. package/cjs/components/dialog/DialogDocs.js +120 -0
  39. package/cjs/components/dialog/DialogDocs.js.map +1 -0
  40. package/cjs/components/dropdown/Dropdown.js +1 -2
  41. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  42. package/cjs/components/global-status/GlobalStatus.js +2 -3
  43. package/cjs/components/global-status/GlobalStatus.js.map +1 -1
  44. package/cjs/components/index.d.ts +2 -1
  45. package/cjs/components/index.js +7 -0
  46. package/cjs/components/index.js.map +1 -1
  47. package/cjs/components/input-masked/InputMaskedHooks.js +1 -2
  48. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  49. package/cjs/components/input-masked/InputMaskedUtils.js +9 -5
  50. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  51. package/cjs/components/lib.d.ts +10 -1
  52. package/cjs/components/lib.js +8 -0
  53. package/cjs/components/lib.js.map +1 -1
  54. package/cjs/components/modal/Modal.d.ts +1 -0
  55. package/cjs/components/modal/Modal.js +4 -1
  56. package/cjs/components/modal/Modal.js.map +1 -1
  57. package/cjs/components/modal/ModalContent.js +4 -4
  58. package/cjs/components/modal/ModalContent.js.map +1 -1
  59. package/cjs/components/modal/style/dnb-modal.css +4 -0
  60. package/cjs/components/modal/style/dnb-modal.min.css +1 -1
  61. package/cjs/components/modal/style/dnb-modal.scss +5 -0
  62. package/cjs/components/modal/types.d.ts +4 -0
  63. package/cjs/components/modal/types.js.map +1 -1
  64. package/cjs/components/number-format/NumberUtils.d.ts +2 -2
  65. package/cjs/components/number-format/NumberUtils.js +1 -1
  66. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  67. package/cjs/components/pagination/Pagination.d.ts +3 -3
  68. package/cjs/components/pagination/PaginationBar.d.ts +1 -1
  69. package/cjs/components/pagination/PaginationBar.js.map +1 -1
  70. package/cjs/components/radio/Radio.js +1 -2
  71. package/cjs/components/radio/Radio.js.map +1 -1
  72. package/cjs/components/table/TableClickableHead.js +1 -1
  73. package/cjs/components/table/TableClickableHead.js.map +1 -1
  74. package/cjs/components/table/style/dnb-table.css +0 -9
  75. package/cjs/components/table/style/dnb-table.min.css +1 -1
  76. package/cjs/components/table/style/dnb-table.scss +3 -1
  77. package/cjs/components/table/style/table-accordion.scss +0 -10
  78. package/cjs/components/table/style/table-container.scss +3 -2
  79. package/cjs/components/table/style/table-td.scss +2 -1
  80. package/cjs/components/tabs/Tabs.js +2 -3
  81. package/cjs/components/tabs/Tabs.js.map +1 -1
  82. package/cjs/components/toggle-button/ToggleButton.js +2 -3
  83. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  84. package/cjs/components/upload/UploadDocs.js +2 -2
  85. package/cjs/components/upload/UploadDocs.js.map +1 -1
  86. package/cjs/components/upload/UploadFileListCell.js +2 -8
  87. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  88. package/cjs/components/upload/UploadInfo.js +3 -3
  89. package/cjs/components/upload/UploadInfo.js.map +1 -1
  90. package/cjs/extensions/forms/DataContext/Context.d.ts +12 -9
  91. package/cjs/extensions/forms/DataContext/Context.js +2 -4
  92. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  93. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  94. package/cjs/extensions/forms/DataContext/Provider/Provider.js +34 -20
  95. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  96. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  97. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  98. package/cjs/extensions/forms/DataContext/index.d.ts +3 -0
  99. package/cjs/extensions/forms/DataContext/index.js +5 -0
  100. package/cjs/extensions/forms/DataContext/index.js.map +1 -1
  101. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +6 -2
  102. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +30 -11
  103. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  104. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -7
  105. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  106. package/cjs/extensions/forms/Field/Date/Date.js +21 -5
  107. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  108. package/cjs/extensions/forms/Field/Email/Email.js +13 -8
  109. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  110. package/cjs/extensions/forms/Field/Expiry/Expiry.js +42 -34
  111. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  112. package/cjs/extensions/forms/Field/Name/Name.js +20 -13
  113. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
  114. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
  115. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +8 -17
  116. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  117. package/cjs/extensions/forms/Field/Number/Number.d.ts +4 -11
  118. package/cjs/extensions/forms/Field/Number/Number.js +14 -16
  119. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  120. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
  121. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  122. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
  123. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +43 -30
  124. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  125. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -4
  126. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  127. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
  128. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
  129. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  130. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  131. package/cjs/extensions/forms/Field/Selection/Selection.js +39 -18
  132. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  133. package/cjs/extensions/forms/Field/Slider/Slider.js +34 -12
  134. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  135. package/cjs/extensions/forms/Field/String/String.d.ts +2 -9
  136. package/cjs/extensions/forms/Field/String/String.js +9 -12
  137. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  138. package/cjs/extensions/forms/Field/Toggle/Toggle.js +8 -1
  139. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  140. package/cjs/extensions/forms/Field/Upload/Upload.js +6 -8
  141. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  142. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  143. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +16 -11
  144. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  145. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  146. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  147. package/cjs/extensions/forms/Form/Handler/Handler.js +1 -2
  148. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  149. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  150. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  151. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +9 -5
  152. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  153. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
  154. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  155. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
  156. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
  157. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  158. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  159. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +7 -5
  160. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  161. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
  162. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  163. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
  164. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
  165. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
  166. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  167. package/cjs/extensions/forms/Iterate/Array/Array.js +2 -2
  168. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  169. package/cjs/extensions/forms/Tools/Log.js +2 -2
  170. package/cjs/extensions/forms/Tools/Log.js.map +1 -1
  171. package/cjs/extensions/forms/Value/Date/Date.d.ts +5 -0
  172. package/cjs/extensions/forms/Value/Date/Date.js +27 -13
  173. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  174. package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
  175. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
  176. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  177. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
  178. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +8 -8
  179. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  180. package/cjs/extensions/forms/constants/countries.js +20 -20
  181. package/cjs/extensions/forms/constants/countries.js.map +1 -1
  182. package/cjs/extensions/forms/hooks/index.d.ts +2 -1
  183. package/cjs/extensions/forms/hooks/index.js +1 -1
  184. package/cjs/extensions/forms/hooks/index.js.map +1 -1
  185. package/cjs/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
  186. package/cjs/extensions/forms/hooks/useErrorMessage.js.map +1 -1
  187. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +4 -3
  188. package/cjs/extensions/forms/hooks/useFieldProps.js +136 -71
  189. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  190. package/cjs/extensions/forms/hooks/usePath.d.ts +3 -0
  191. package/cjs/extensions/forms/hooks/usePath.js +2 -1
  192. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  193. package/cjs/extensions/forms/hooks/useProcessManager.js +1 -1
  194. package/cjs/extensions/forms/hooks/useProcessManager.js.map +1 -1
  195. package/cjs/extensions/forms/hooks/useTranslation.d.ts +2 -2
  196. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  197. package/cjs/extensions/forms/style/dnb-forms.css +1 -6
  198. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  199. package/cjs/extensions/forms/types.d.ts +59 -36
  200. package/cjs/extensions/forms/types.js +0 -17
  201. package/cjs/extensions/forms/types.js.map +1 -1
  202. package/cjs/extensions/forms/utils/FormError.d.ts +45 -0
  203. package/cjs/extensions/forms/utils/FormError.js +25 -0
  204. package/cjs/extensions/forms/utils/FormError.js.map +1 -0
  205. package/cjs/extensions/forms/utils/ajv.d.ts +17 -1
  206. package/cjs/extensions/forms/utils/ajv.js +82 -7
  207. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  208. package/cjs/extensions/forms/utils/errors.d.ts +1 -1
  209. package/cjs/extensions/forms/utils/errors.js.map +1 -1
  210. package/cjs/extensions/forms/utils/index.d.ts +2 -0
  211. package/cjs/extensions/forms/utils/index.js +24 -0
  212. package/cjs/extensions/forms/utils/index.js.map +1 -1
  213. package/cjs/fragments/drawer-list/DrawerList.js +1 -2
  214. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  215. package/cjs/fragments/drawer-list/DrawerListProvider.js +2 -3
  216. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  217. package/cjs/index.d.ts +2 -1
  218. package/cjs/index.js +7 -0
  219. package/cjs/index.js.map +1 -1
  220. package/cjs/shared/Eufemia.d.ts +1 -1
  221. package/cjs/shared/Eufemia.js +2 -2
  222. package/cjs/shared/Eufemia.js.map +1 -1
  223. package/cjs/shared/component-helper.d.ts +2 -1
  224. package/cjs/shared/component-helper.js +9 -2
  225. package/cjs/shared/component-helper.js.map +1 -1
  226. package/cjs/shared/keycode.d.ts +75 -0
  227. package/cjs/shared/keycode.js +138 -0
  228. package/cjs/shared/keycode.js.map +1 -0
  229. package/cjs/shared/libs/Shortcuts.js +1 -3
  230. package/cjs/shared/libs/Shortcuts.js.map +1 -1
  231. package/cjs/shared/locales/nb-NO.js +2 -2
  232. package/cjs/shared/locales/nb-NO.js.map +1 -1
  233. package/cjs/shared/useTranslation.d.ts +2 -2
  234. package/cjs/shared/useTranslation.js.map +1 -1
  235. package/cjs/style/core/scopes.scss +1 -1
  236. package/cjs/style/dnb-ui-basis.css +1 -1
  237. package/cjs/style/dnb-ui-basis.min.css +1 -1
  238. package/cjs/style/dnb-ui-body.css +1 -1
  239. package/cjs/style/dnb-ui-body.min.css +1 -1
  240. package/cjs/style/dnb-ui-components.css +1307 -186
  241. package/cjs/style/dnb-ui-components.min.css +3 -3
  242. package/cjs/style/dnb-ui-components.scss +2 -0
  243. package/cjs/style/dnb-ui-core.css +1 -1
  244. package/cjs/style/dnb-ui-core.min.css +1 -1
  245. package/cjs/style/dnb-ui-extensions.css +1 -6
  246. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  247. package/cjs/style/dnb-ui-forms.css +1 -6
  248. package/cjs/style/dnb-ui-forms.min.css +1 -1
  249. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +1296 -180
  250. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  251. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -6
  252. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  253. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -6
  254. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  255. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +1296 -180
  256. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  257. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -6
  258. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  259. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -6
  260. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  261. package/cjs/style/themes/theme-ui/ui-theme-components.css +1296 -180
  262. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  263. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +1 -6
  264. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  265. package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -6
  266. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  267. package/components/CountryFlag.d.ts +12 -0
  268. package/components/CountryFlag.js +4 -0
  269. package/components/CountryFlag.js.map +1 -0
  270. package/components/autocomplete/Autocomplete.js +1 -2
  271. package/components/autocomplete/Autocomplete.js.map +1 -1
  272. package/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  273. package/components/checkbox/Checkbox.js +1 -2
  274. package/components/checkbox/Checkbox.js.map +1 -1
  275. package/components/country-flag/CountryFlag.d.ts +11 -0
  276. package/components/country-flag/CountryFlag.js +38 -0
  277. package/components/country-flag/CountryFlag.js.map +1 -0
  278. package/components/country-flag/CountryFlagDocs.d.ts +2 -0
  279. package/components/country-flag/CountryFlagDocs.js +18 -0
  280. package/components/country-flag/CountryFlagDocs.js.map +1 -0
  281. package/components/country-flag/index.d.ts +7 -0
  282. package/components/country-flag/index.js +4 -0
  283. package/components/country-flag/index.js.map +1 -0
  284. package/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
  285. package/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
  286. package/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
  287. package/components/country-flag/style/dnb-country-flag.css +42 -0
  288. package/components/country-flag/style/dnb-country-flag.min.css +1 -0
  289. package/components/country-flag/style/dnb-country-flag.scss +53 -0
  290. package/components/country-flag/style/index.d.ts +5 -0
  291. package/components/country-flag/style/index.js +1 -0
  292. package/components/country-flag/style/index.js.map +1 -0
  293. package/components/country-flag/style.d.ts +5 -0
  294. package/components/country-flag/style.js +1 -0
  295. package/components/country-flag/style.js.map +1 -0
  296. package/components/date-picker/DatePickerCalendar.js +1 -1
  297. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  298. package/components/date-picker/DatePickerInput.js +1 -2
  299. package/components/date-picker/DatePickerInput.js.map +1 -1
  300. package/components/dialog/Dialog.js +3 -1
  301. package/components/dialog/Dialog.js.map +1 -1
  302. package/components/dialog/DialogDocs.d.ts +2 -0
  303. package/components/dialog/DialogDocs.js +113 -0
  304. package/components/dialog/DialogDocs.js.map +1 -0
  305. package/components/dropdown/Dropdown.js +1 -2
  306. package/components/dropdown/Dropdown.js.map +1 -1
  307. package/components/global-status/GlobalStatus.js +1 -2
  308. package/components/global-status/GlobalStatus.js.map +1 -1
  309. package/components/index.d.ts +2 -1
  310. package/components/index.js +2 -1
  311. package/components/index.js.map +1 -1
  312. package/components/input-masked/InputMaskedHooks.js +1 -2
  313. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  314. package/components/input-masked/InputMaskedUtils.js +9 -5
  315. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  316. package/components/lib.d.ts +10 -1
  317. package/components/lib.js +3 -1
  318. package/components/lib.js.map +1 -1
  319. package/components/modal/Modal.d.ts +1 -0
  320. package/components/modal/Modal.js +4 -1
  321. package/components/modal/Modal.js.map +1 -1
  322. package/components/modal/ModalContent.js +4 -4
  323. package/components/modal/ModalContent.js.map +1 -1
  324. package/components/modal/style/dnb-modal.css +4 -0
  325. package/components/modal/style/dnb-modal.min.css +1 -1
  326. package/components/modal/style/dnb-modal.scss +5 -0
  327. package/components/modal/types.d.ts +4 -0
  328. package/components/modal/types.js.map +1 -1
  329. package/components/number-format/NumberUtils.d.ts +2 -2
  330. package/components/number-format/NumberUtils.js +1 -1
  331. package/components/number-format/NumberUtils.js.map +1 -1
  332. package/components/pagination/Pagination.d.ts +3 -3
  333. package/components/pagination/PaginationBar.d.ts +1 -1
  334. package/components/pagination/PaginationBar.js.map +1 -1
  335. package/components/radio/Radio.js +1 -2
  336. package/components/radio/Radio.js.map +1 -1
  337. package/components/table/TableClickableHead.js +1 -1
  338. package/components/table/TableClickableHead.js.map +1 -1
  339. package/components/table/style/dnb-table.css +0 -9
  340. package/components/table/style/dnb-table.min.css +1 -1
  341. package/components/table/style/dnb-table.scss +3 -1
  342. package/components/table/style/table-accordion.scss +0 -10
  343. package/components/table/style/table-container.scss +3 -2
  344. package/components/table/style/table-td.scss +2 -1
  345. package/components/tabs/Tabs.js +1 -2
  346. package/components/tabs/Tabs.js.map +1 -1
  347. package/components/toggle-button/ToggleButton.js +1 -2
  348. package/components/toggle-button/ToggleButton.js.map +1 -1
  349. package/components/upload/UploadDocs.js +2 -2
  350. package/components/upload/UploadDocs.js.map +1 -1
  351. package/components/upload/UploadFileListCell.js +2 -8
  352. package/components/upload/UploadFileListCell.js.map +1 -1
  353. package/components/upload/UploadInfo.js +3 -3
  354. package/components/upload/UploadInfo.js.map +1 -1
  355. package/es/components/CountryFlag.d.ts +12 -0
  356. package/es/components/CountryFlag.js +4 -0
  357. package/es/components/CountryFlag.js.map +1 -0
  358. package/es/components/autocomplete/Autocomplete.js +1 -2
  359. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  360. package/es/components/button/style/themes/dnb-button-theme-eiendom.scss +1 -1
  361. package/es/components/checkbox/Checkbox.js +1 -2
  362. package/es/components/checkbox/Checkbox.js.map +1 -1
  363. package/es/components/country-flag/CountryFlag.d.ts +11 -0
  364. package/es/components/country-flag/CountryFlag.js +38 -0
  365. package/es/components/country-flag/CountryFlag.js.map +1 -0
  366. package/es/components/country-flag/CountryFlagDocs.d.ts +2 -0
  367. package/es/components/country-flag/CountryFlagDocs.js +18 -0
  368. package/es/components/country-flag/CountryFlagDocs.js.map +1 -0
  369. package/es/components/country-flag/index.d.ts +7 -0
  370. package/es/components/country-flag/index.js +4 -0
  371. package/es/components/country-flag/index.js.map +1 -0
  372. package/es/components/country-flag/style/dnb-country-flag-icons.css +1087 -0
  373. package/es/components/country-flag/style/dnb-country-flag-icons.min.css +1 -0
  374. package/es/components/country-flag/style/dnb-country-flag-icons.scss +1088 -0
  375. package/es/components/country-flag/style/dnb-country-flag.css +42 -0
  376. package/es/components/country-flag/style/dnb-country-flag.min.css +1 -0
  377. package/es/components/country-flag/style/dnb-country-flag.scss +53 -0
  378. package/es/components/country-flag/style/index.d.ts +5 -0
  379. package/es/components/country-flag/style/index.js +1 -0
  380. package/es/components/country-flag/style/index.js.map +1 -0
  381. package/es/components/country-flag/style.d.ts +5 -0
  382. package/es/components/country-flag/style.js +1 -0
  383. package/es/components/country-flag/style.js.map +1 -0
  384. package/es/components/date-picker/DatePickerCalendar.js +1 -1
  385. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  386. package/es/components/date-picker/DatePickerInput.js +1 -2
  387. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  388. package/es/components/dialog/Dialog.js +3 -1
  389. package/es/components/dialog/Dialog.js.map +1 -1
  390. package/es/components/dialog/DialogDocs.d.ts +2 -0
  391. package/es/components/dialog/DialogDocs.js +113 -0
  392. package/es/components/dialog/DialogDocs.js.map +1 -0
  393. package/es/components/dropdown/Dropdown.js +1 -2
  394. package/es/components/dropdown/Dropdown.js.map +1 -1
  395. package/es/components/global-status/GlobalStatus.js +1 -2
  396. package/es/components/global-status/GlobalStatus.js.map +1 -1
  397. package/es/components/index.d.ts +2 -1
  398. package/es/components/index.js +2 -1
  399. package/es/components/index.js.map +1 -1
  400. package/es/components/input-masked/InputMaskedHooks.js +1 -2
  401. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  402. package/es/components/input-masked/InputMaskedUtils.js +9 -5
  403. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  404. package/es/components/lib.d.ts +10 -1
  405. package/es/components/lib.js +3 -1
  406. package/es/components/lib.js.map +1 -1
  407. package/es/components/modal/Modal.d.ts +1 -0
  408. package/es/components/modal/Modal.js +4 -1
  409. package/es/components/modal/Modal.js.map +1 -1
  410. package/es/components/modal/ModalContent.js +4 -4
  411. package/es/components/modal/ModalContent.js.map +1 -1
  412. package/es/components/modal/style/dnb-modal.css +4 -0
  413. package/es/components/modal/style/dnb-modal.min.css +1 -1
  414. package/es/components/modal/style/dnb-modal.scss +5 -0
  415. package/es/components/modal/types.d.ts +4 -0
  416. package/es/components/modal/types.js.map +1 -1
  417. package/es/components/number-format/NumberUtils.d.ts +2 -2
  418. package/es/components/number-format/NumberUtils.js +1 -1
  419. package/es/components/number-format/NumberUtils.js.map +1 -1
  420. package/es/components/pagination/Pagination.d.ts +3 -3
  421. package/es/components/pagination/PaginationBar.d.ts +1 -1
  422. package/es/components/pagination/PaginationBar.js.map +1 -1
  423. package/es/components/radio/Radio.js +1 -2
  424. package/es/components/radio/Radio.js.map +1 -1
  425. package/es/components/table/TableClickableHead.js +1 -1
  426. package/es/components/table/TableClickableHead.js.map +1 -1
  427. package/es/components/table/style/dnb-table.css +0 -9
  428. package/es/components/table/style/dnb-table.min.css +1 -1
  429. package/es/components/table/style/dnb-table.scss +3 -1
  430. package/es/components/table/style/table-accordion.scss +0 -10
  431. package/es/components/table/style/table-container.scss +3 -2
  432. package/es/components/table/style/table-td.scss +2 -1
  433. package/es/components/tabs/Tabs.js +1 -2
  434. package/es/components/tabs/Tabs.js.map +1 -1
  435. package/es/components/toggle-button/ToggleButton.js +1 -2
  436. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  437. package/es/components/upload/UploadDocs.js +2 -2
  438. package/es/components/upload/UploadDocs.js.map +1 -1
  439. package/es/components/upload/UploadFileListCell.js +2 -8
  440. package/es/components/upload/UploadFileListCell.js.map +1 -1
  441. package/es/components/upload/UploadInfo.js +3 -3
  442. package/es/components/upload/UploadInfo.js.map +1 -1
  443. package/es/extensions/forms/DataContext/Context.d.ts +12 -9
  444. package/es/extensions/forms/DataContext/Context.js +1 -3
  445. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  446. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  447. package/es/extensions/forms/DataContext/Provider/Provider.js +32 -18
  448. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  449. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  450. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  451. package/es/extensions/forms/DataContext/index.d.ts +3 -0
  452. package/es/extensions/forms/DataContext/index.js +5 -0
  453. package/es/extensions/forms/DataContext/index.js.map +1 -1
  454. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +6 -2
  455. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +24 -9
  456. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  457. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -7
  458. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  459. package/es/extensions/forms/Field/Date/Date.js +23 -6
  460. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  461. package/es/extensions/forms/Field/Email/Email.js +11 -8
  462. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  463. package/es/extensions/forms/Field/Expiry/Expiry.js +42 -34
  464. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  465. package/es/extensions/forms/Field/Name/Name.js +18 -13
  466. package/es/extensions/forms/Field/Name/Name.js.map +1 -1
  467. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
  468. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -15
  469. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  470. package/es/extensions/forms/Field/Number/Number.d.ts +4 -11
  471. package/es/extensions/forms/Field/Number/Number.js +15 -17
  472. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  473. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
  474. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  475. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
  476. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +44 -31
  477. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  478. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -4
  479. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  480. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
  481. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
  482. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  483. package/es/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  484. package/es/extensions/forms/Field/Selection/Selection.js +37 -15
  485. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  486. package/es/extensions/forms/Field/Slider/Slider.js +35 -13
  487. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  488. package/es/extensions/forms/Field/String/String.d.ts +2 -9
  489. package/es/extensions/forms/Field/String/String.js +10 -13
  490. package/es/extensions/forms/Field/String/String.js.map +1 -1
  491. package/es/extensions/forms/Field/Toggle/Toggle.js +9 -2
  492. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  493. package/es/extensions/forms/Field/Upload/Upload.js +7 -9
  494. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  495. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  496. package/es/extensions/forms/FieldBlock/FieldBlock.js +15 -10
  497. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  498. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  499. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  500. package/es/extensions/forms/Form/Handler/Handler.js +1 -2
  501. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  502. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  503. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  504. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +8 -4
  505. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  506. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
  507. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  508. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
  509. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
  510. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  511. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  512. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +6 -4
  513. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  514. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
  515. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  516. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
  517. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
  518. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
  519. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  520. package/es/extensions/forms/Iterate/Array/Array.js +3 -3
  521. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  522. package/es/extensions/forms/Tools/Log.js +2 -2
  523. package/es/extensions/forms/Tools/Log.js.map +1 -1
  524. package/es/extensions/forms/Value/Date/Date.d.ts +5 -0
  525. package/es/extensions/forms/Value/Date/Date.js +25 -14
  526. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  527. package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
  528. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
  529. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  530. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
  531. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +8 -8
  532. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  533. package/es/extensions/forms/constants/countries.js +20 -20
  534. package/es/extensions/forms/constants/countries.js.map +1 -1
  535. package/es/extensions/forms/hooks/index.d.ts +2 -1
  536. package/es/extensions/forms/hooks/index.js +1 -1
  537. package/es/extensions/forms/hooks/index.js.map +1 -1
  538. package/es/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
  539. package/es/extensions/forms/hooks/useErrorMessage.js.map +1 -1
  540. package/es/extensions/forms/hooks/useFieldProps.d.ts +4 -3
  541. package/es/extensions/forms/hooks/useFieldProps.js +134 -69
  542. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  543. package/es/extensions/forms/hooks/usePath.d.ts +3 -0
  544. package/es/extensions/forms/hooks/usePath.js +2 -1
  545. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  546. package/es/extensions/forms/hooks/useProcessManager.js +1 -1
  547. package/es/extensions/forms/hooks/useProcessManager.js.map +1 -1
  548. package/es/extensions/forms/hooks/useTranslation.d.ts +2 -2
  549. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  550. package/es/extensions/forms/style/dnb-forms.css +1 -6
  551. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  552. package/es/extensions/forms/types.d.ts +59 -36
  553. package/es/extensions/forms/types.js +0 -13
  554. package/es/extensions/forms/types.js.map +1 -1
  555. package/es/extensions/forms/utils/FormError.d.ts +45 -0
  556. package/es/extensions/forms/utils/FormError.js +16 -0
  557. package/es/extensions/forms/utils/FormError.js.map +1 -0
  558. package/es/extensions/forms/utils/ajv.d.ts +17 -1
  559. package/es/extensions/forms/utils/ajv.js +72 -7
  560. package/es/extensions/forms/utils/ajv.js.map +1 -1
  561. package/es/extensions/forms/utils/errors.d.ts +1 -1
  562. package/es/extensions/forms/utils/errors.js.map +1 -1
  563. package/es/extensions/forms/utils/index.d.ts +2 -0
  564. package/es/extensions/forms/utils/index.js +2 -0
  565. package/es/extensions/forms/utils/index.js.map +1 -1
  566. package/es/fragments/drawer-list/DrawerList.js +1 -2
  567. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  568. package/es/fragments/drawer-list/DrawerListProvider.js +1 -2
  569. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  570. package/es/index.d.ts +2 -1
  571. package/es/index.js +2 -1
  572. package/es/index.js.map +1 -1
  573. package/es/shared/Eufemia.d.ts +1 -1
  574. package/es/shared/Eufemia.js +2 -2
  575. package/es/shared/Eufemia.js.map +1 -1
  576. package/es/shared/component-helper.d.ts +2 -1
  577. package/es/shared/component-helper.js +2 -2
  578. package/es/shared/component-helper.js.map +1 -1
  579. package/es/shared/keycode.d.ts +75 -0
  580. package/es/shared/keycode.js +127 -0
  581. package/es/shared/keycode.js.map +1 -0
  582. package/es/shared/libs/Shortcuts.js +1 -2
  583. package/es/shared/libs/Shortcuts.js.map +1 -1
  584. package/es/shared/locales/nb-NO.js +2 -2
  585. package/es/shared/locales/nb-NO.js.map +1 -1
  586. package/es/shared/useTranslation.d.ts +2 -2
  587. package/es/shared/useTranslation.js.map +1 -1
  588. package/es/style/core/scopes.scss +1 -1
  589. package/es/style/dnb-ui-basis.css +1 -1
  590. package/es/style/dnb-ui-basis.min.css +1 -1
  591. package/es/style/dnb-ui-body.css +1 -1
  592. package/es/style/dnb-ui-body.min.css +1 -1
  593. package/es/style/dnb-ui-components.css +1307 -186
  594. package/es/style/dnb-ui-components.min.css +3 -3
  595. package/es/style/dnb-ui-components.scss +2 -0
  596. package/es/style/dnb-ui-core.css +1 -1
  597. package/es/style/dnb-ui-core.min.css +1 -1
  598. package/es/style/dnb-ui-extensions.css +1 -6
  599. package/es/style/dnb-ui-extensions.min.css +1 -1
  600. package/es/style/dnb-ui-forms.css +1 -6
  601. package/es/style/dnb-ui-forms.min.css +1 -1
  602. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +1296 -180
  603. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  604. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -6
  605. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  606. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -6
  607. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  608. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +1296 -180
  609. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  610. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -6
  611. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  612. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -6
  613. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  614. package/es/style/themes/theme-ui/ui-theme-components.css +1296 -180
  615. package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  616. package/es/style/themes/theme-ui/ui-theme-extensions.css +1 -6
  617. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  618. package/es/style/themes/theme-ui/ui-theme-forms.css +1 -6
  619. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  620. package/esm/dnb-ui-basis.min.mjs +1 -1
  621. package/esm/dnb-ui-components.min.mjs +1 -1
  622. package/esm/dnb-ui-elements.min.mjs +1 -1
  623. package/esm/dnb-ui-extensions.min.mjs +5 -5
  624. package/esm/dnb-ui-lib.min.mjs +1 -1
  625. package/extensions/forms/DataContext/Context.d.ts +12 -9
  626. package/extensions/forms/DataContext/Context.js +1 -3
  627. package/extensions/forms/DataContext/Context.js.map +1 -1
  628. package/extensions/forms/DataContext/Provider/Provider.d.ts +3 -3
  629. package/extensions/forms/DataContext/Provider/Provider.js +32 -18
  630. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  631. package/extensions/forms/DataContext/Provider/ProviderDocs.js +1 -1
  632. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  633. package/extensions/forms/DataContext/index.d.ts +3 -0
  634. package/extensions/forms/DataContext/index.js +5 -0
  635. package/extensions/forms/DataContext/index.js.map +1 -1
  636. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +6 -2
  637. package/extensions/forms/Field/ArraySelection/ArraySelection.js +30 -11
  638. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  639. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +6 -7
  640. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  641. package/extensions/forms/Field/Date/Date.js +23 -6
  642. package/extensions/forms/Field/Date/Date.js.map +1 -1
  643. package/extensions/forms/Field/Email/Email.js +11 -8
  644. package/extensions/forms/Field/Email/Email.js.map +1 -1
  645. package/extensions/forms/Field/Expiry/Expiry.js +42 -34
  646. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  647. package/extensions/forms/Field/Name/Name.js +18 -13
  648. package/extensions/forms/Field/Name/Name.js.map +1 -1
  649. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -1
  650. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +6 -15
  651. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  652. package/extensions/forms/Field/Number/Number.d.ts +4 -11
  653. package/extensions/forms/Field/Number/Number.js +15 -17
  654. package/extensions/forms/Field/Number/Number.js.map +1 -1
  655. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +4 -7
  656. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  657. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -0
  658. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +44 -31
  659. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  660. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +4 -4
  661. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  662. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +6 -6
  663. package/extensions/forms/Field/SelectCountry/SelectCountry.js +18 -11
  664. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  665. package/extensions/forms/Field/Selection/Selection.d.ts +2 -1
  666. package/extensions/forms/Field/Selection/Selection.js +38 -17
  667. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  668. package/extensions/forms/Field/Slider/Slider.js +35 -13
  669. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  670. package/extensions/forms/Field/String/String.d.ts +2 -9
  671. package/extensions/forms/Field/String/String.js +10 -13
  672. package/extensions/forms/Field/String/String.js.map +1 -1
  673. package/extensions/forms/Field/Toggle/Toggle.js +9 -2
  674. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  675. package/extensions/forms/Field/Upload/Upload.js +7 -9
  676. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  677. package/extensions/forms/FieldBlock/FieldBlock.d.ts +1 -1
  678. package/extensions/forms/FieldBlock/FieldBlock.js +15 -10
  679. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  680. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  681. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  682. package/extensions/forms/Form/Handler/Handler.js +1 -2
  683. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  684. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  685. package/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +2 -0
  686. package/extensions/forms/Form/Section/EditContainer/EditContainer.js +8 -4
  687. package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -1
  688. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +12 -1
  689. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -1
  690. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +5 -1
  691. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +9 -3
  692. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  693. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +1 -0
  694. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +6 -4
  695. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -1
  696. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +7 -1
  697. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -1
  698. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +4 -1
  699. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +6 -2
  700. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -1
  701. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  702. package/extensions/forms/Iterate/Array/Array.js +3 -3
  703. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  704. package/extensions/forms/Tools/Log.js +2 -2
  705. package/extensions/forms/Tools/Log.js.map +1 -1
  706. package/extensions/forms/Value/Date/Date.d.ts +5 -0
  707. package/extensions/forms/Value/Date/Date.js +26 -14
  708. package/extensions/forms/Value/Date/Date.js.map +1 -1
  709. package/extensions/forms/Value/Provider/useValueProvider.d.ts +3 -3
  710. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -6
  711. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  712. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -11
  713. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +8 -8
  714. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  715. package/extensions/forms/constants/countries.js +20 -20
  716. package/extensions/forms/constants/countries.js.map +1 -1
  717. package/extensions/forms/hooks/index.d.ts +2 -1
  718. package/extensions/forms/hooks/index.js +1 -1
  719. package/extensions/forms/hooks/index.js.map +1 -1
  720. package/extensions/forms/hooks/useErrorMessage.d.ts +3 -10
  721. package/extensions/forms/hooks/useErrorMessage.js.map +1 -1
  722. package/extensions/forms/hooks/useFieldProps.d.ts +4 -3
  723. package/extensions/forms/hooks/useFieldProps.js +136 -71
  724. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  725. package/extensions/forms/hooks/usePath.d.ts +3 -0
  726. package/extensions/forms/hooks/usePath.js +2 -1
  727. package/extensions/forms/hooks/usePath.js.map +1 -1
  728. package/extensions/forms/hooks/useProcessManager.js +1 -1
  729. package/extensions/forms/hooks/useProcessManager.js.map +1 -1
  730. package/extensions/forms/hooks/useTranslation.d.ts +2 -2
  731. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  732. package/extensions/forms/style/dnb-forms.css +1 -6
  733. package/extensions/forms/style/dnb-forms.min.css +1 -1
  734. package/extensions/forms/types.d.ts +59 -36
  735. package/extensions/forms/types.js +0 -13
  736. package/extensions/forms/types.js.map +1 -1
  737. package/extensions/forms/utils/FormError.d.ts +45 -0
  738. package/extensions/forms/utils/FormError.js +16 -0
  739. package/extensions/forms/utils/FormError.js.map +1 -0
  740. package/extensions/forms/utils/ajv.d.ts +17 -1
  741. package/extensions/forms/utils/ajv.js +77 -7
  742. package/extensions/forms/utils/ajv.js.map +1 -1
  743. package/extensions/forms/utils/errors.d.ts +1 -1
  744. package/extensions/forms/utils/errors.js.map +1 -1
  745. package/extensions/forms/utils/index.d.ts +2 -0
  746. package/extensions/forms/utils/index.js +2 -0
  747. package/extensions/forms/utils/index.js.map +1 -1
  748. package/fragments/drawer-list/DrawerList.js +1 -2
  749. package/fragments/drawer-list/DrawerList.js.map +1 -1
  750. package/fragments/drawer-list/DrawerListProvider.js +1 -2
  751. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  752. package/index.d.ts +2 -1
  753. package/index.js +2 -1
  754. package/index.js.map +1 -1
  755. package/package.json +2 -2
  756. package/shared/Eufemia.d.ts +1 -1
  757. package/shared/Eufemia.js +2 -2
  758. package/shared/Eufemia.js.map +1 -1
  759. package/shared/component-helper.d.ts +2 -1
  760. package/shared/component-helper.js +2 -2
  761. package/shared/component-helper.js.map +1 -1
  762. package/shared/keycode.d.ts +75 -0
  763. package/shared/keycode.js +127 -0
  764. package/shared/keycode.js.map +1 -0
  765. package/shared/libs/Shortcuts.js +1 -2
  766. package/shared/libs/Shortcuts.js.map +1 -1
  767. package/shared/locales/nb-NO.js +2 -2
  768. package/shared/locales/nb-NO.js.map +1 -1
  769. package/shared/useTranslation.d.ts +2 -2
  770. package/shared/useTranslation.js.map +1 -1
  771. package/style/core/scopes.scss +1 -1
  772. package/style/dnb-ui-basis.css +1 -1
  773. package/style/dnb-ui-basis.min.css +1 -1
  774. package/style/dnb-ui-body.css +1 -1
  775. package/style/dnb-ui-body.min.css +1 -1
  776. package/style/dnb-ui-components.css +1307 -186
  777. package/style/dnb-ui-components.min.css +3 -3
  778. package/style/dnb-ui-components.scss +2 -0
  779. package/style/dnb-ui-core.css +1 -1
  780. package/style/dnb-ui-core.min.css +1 -1
  781. package/style/dnb-ui-extensions.css +1 -6
  782. package/style/dnb-ui-extensions.min.css +1 -1
  783. package/style/dnb-ui-forms.css +1 -6
  784. package/style/dnb-ui-forms.min.css +1 -1
  785. package/style/themes/theme-eiendom/eiendom-theme-components.css +1296 -180
  786. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  787. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -6
  788. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  789. package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -6
  790. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  791. package/style/themes/theme-sbanken/sbanken-theme-components.css +1296 -180
  792. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  793. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -6
  794. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  795. package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -6
  796. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  797. package/style/themes/theme-ui/ui-theme-components.css +1296 -180
  798. package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  799. package/style/themes/theme-ui/ui-theme-extensions.css +1 -6
  800. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  801. package/style/themes/theme-ui/ui-theme-forms.css +1 -6
  802. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  803. package/umd/dnb-ui-basis.min.js +1 -1
  804. package/umd/dnb-ui-components.min.js +1 -1
  805. package/umd/dnb-ui-elements.min.js +1 -1
  806. package/umd/dnb-ui-extensions.min.js +5 -5
  807. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"component-helper.js","names":["React","keycode","whatInput","warn","PLATFORM_MAC","PLATFORM_WIN","PLATFORM_LINUX","getPreviousSibling","init","InteractionInvalidation","extendPropsWithContext","extendPropsWithContextInClassComponent","assignPropsWithContext","filterProps","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","e","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","setAttribute","removeEventListener","readyState","addEventListener","validateDOMAttributes","props","params","attributes","attr","JSON","parse","Object","entries","forEach","key","value","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","i","test","processChildren","global","Array","isArray","registeredElements","length","cache","reverse","map","cb","includes","isFrozen","_objectSpread","children","createElement","Fragment","filter","Boolean","res","onlyTexts","reduce","pV","cV","push","join","extendGracefully","objects","first","keepRef","shift","acc1","object","acc2","keys","isObject","item","extendDeep","target","sources","source","prototype","hasOwnProperty","call","isTrue","String","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","undefined","eventObject","event","currentTarget","dataset","replace","r","apply","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","char","index","arr","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","_defineProperty","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","l","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","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","convertJsxToString","elements","separator","transformWord","process","word","isValidElement","trim","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","combineAriaBy","combineDescribedBy","combineDetails","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/** @deprecated Can be removed in v11 */\nexport const extendGracefully = (...objects) => {\n let first = {}\n const keepRef = objects[0]\n\n if (keepRef === true || keepRef === false) {\n // remove settings value\n objects.shift()\n\n if (keepRef) {\n // by extracting the first, we keep the same main object reference\n first = objects.shift()\n }\n }\n\n return objects.reduce((acc1, object) => {\n if (object) {\n acc1 = Object.assign(\n acc1,\n Object.entries(object).reduce((acc2, [key, value]) => {\n if (value !== null) {\n // go recursively\n if (typeof value === 'object') {\n value = extendGracefully(acc1[key] || {}, value)\n if (Object.keys(value).length > 0) {\n acc2[key] = value\n }\n } else {\n acc2[key] = value\n }\n }\n return acc2\n }, {})\n )\n }\n return acc1\n }, first)\n}\n\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item)\n}\n\nexport function extendDeep(target = {}, ...sources) {\n for (const source of sources) {\n if (isObject(source)) {\n for (const key in source) {\n // Prototype-polluting checks etc.\n if (key === '__proto__' || key === 'constructor') continue\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue\n if (!isObject(target)) continue\n\n if (isObject(source[key])) {\n if (!isObject(target[key])) {\n target[key] = {}\n }\n extendDeep(target[key], source[key])\n } else {\n target[key] = source[key]\n }\n }\n }\n }\n\n return target\n}\n\n// check if value is \"truthy\"\nexport const isTrue = (value) => {\n if (\n value !== null &&\n typeof value !== 'undefined' &&\n (String(value) === 'true' || String(value) === '1')\n ) {\n return true\n }\n return false\n}\n\nexport const dispatchCustomElementEvent = (\n src,\n eventName,\n eventObjectOrig\n) => {\n let ret = undefined\n\n const eventObject = {\n ...((eventObjectOrig && eventObjectOrig.event) || {}),\n ...eventObjectOrig,\n }\n\n // distribute dataset like \"data-*\" to both currentTarget and target\n if (eventObject && eventObject.attributes && eventObject.event) {\n const currentTarget = eventObject.event.currentTarget\n if (currentTarget) {\n try {\n // 1. create new dataset, and copy if exists\n const dataset = { ...(currentTarget.dataset || {}) }\n\n // 2. copy in our attributes if they are of \"data-\" type\n const attributes = { ...eventObject.attributes }\n for (const i in attributes) {\n if (/^data-/.test(i)) {\n dataset[String(i).replace(/^data-/, '')] = attributes[i]\n }\n }\n\n // 3. and distribute them to the targets. Use the for method because of immutability\n for (const i in dataset) {\n if (eventObject.event.currentTarget.dataset) {\n eventObject.event.currentTarget.dataset[i] = dataset[i]\n }\n if (\n eventObject.event.target &&\n eventObject.event.target.dataset\n ) {\n eventObject.event.target.dataset[i] = dataset[i]\n }\n }\n } catch (e) {\n warn('Error on handling dataset:', e)\n }\n }\n }\n\n const props = (src && src.props) || src\n\n // call the default snake case event\n if (eventName.includes('_')) {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call Synthetic React event camelCase naming events\n eventName = toCamelCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n } else {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call (in future deprecated) event snake case naming events\n eventName = toSnakeCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n }\n\n return ret\n}\n\n// transform on_click to onClick\nexport const toCamelCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur, i) =>\n acc +\n (i === 0\n ? cur\n : cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n )),\n ''\n )\n\n// 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 .split('')\n .map((char, index, arr) =>\n index === 0 || arr[index - 1] === ' ' || arr[index - 1] === '-'\n ? char.toUpperCase()\n : char\n )\n .join('')\n : str\n}\n\n/**\n * [detectOutsideClick Detects a click outside a given DOM element]\n * @param {[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
+ {"version":3,"file":"component-helper.js","names":["React","keycode","whatInput","warn","PLATFORM_MAC","PLATFORM_WIN","PLATFORM_LINUX","getPreviousSibling","init","InteractionInvalidation","extendPropsWithContext","extendPropsWithContextInClassComponent","assignPropsWithContext","filterProps","specificKeys","defineNavigator","isTouchDevice","document","intent","documentElement","getAttribute","e","handleNavigator","window","navigator","IS_TEST","platform","match","RegExp","setAttribute","removeEventListener","readyState","addEventListener","validateDOMAttributes","props","params","attributes","attr","JSON","parse","Object","entries","forEach","key","value","assign","disabled","space","top","right","bottom","left","no_collapse","innerSpace","tabindex","tabIndex","i","test","processChildren","global","Array","isArray","registeredElements","length","cache","reverse","map","cb","includes","isFrozen","_objectSpread","children","createElement","Fragment","filter","Boolean","res","onlyTexts","reduce","pV","cV","push","join","extendGracefully","objects","first","keepRef","shift","acc1","object","acc2","keys","isObject","item","extendDeep","target","sources","source","prototype","hasOwnProperty","call","isTrue","String","dispatchCustomElementEvent","src","eventName","eventObjectOrig","ret","undefined","eventObject","event","currentTarget","dataset","replace","r","apply","toCamelCase","toSnakeCase","s","split","acc","cur","g0","g1","g2","toUpperCase","toLowerCase","toPascalCase","str","letter","toKebabCase","toCapitalized","char","index","arr","detectOutsideClick","ignoreElements","onSuccess","options","DetectOutsideClickClass","constructor","_defineProperty","currentElement","tagName","pageX","clientWidth","pageY","clientHeight","checkIfHasScrollbar","elem","l","parentNode","handleClickOutside","checkOutsideClick","keydownCallback","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","convertJsxToString","elements","separator","transformWord","process","word","isValidElement","trim","convertStatusToStateOnly","status","state","getStatusState","combineLabelledBy","combineAriaBy","combineDescribedBy","combineDetails","type","findElementInChildren","find","result","some","escapeRegexChars","removeUndefinedProps"],"sources":["../../../src/shared/component-helper.js"],"sourcesContent":["/**\n * Component helpers\n *\n */\n\nimport React from 'react'\nimport keycode from './keycode'\nimport whatInput from 'what-input'\nimport {\n warn,\n PLATFORM_MAC,\n PLATFORM_WIN,\n PLATFORM_LINUX,\n} from './helpers'\nimport { getPreviousSibling } from './helpers/getPreviousSibling'\nimport { init } from './Eufemia'\n\nexport { InteractionInvalidation } from './helpers/InteractionInvalidation'\nexport {\n extendPropsWithContext,\n extendPropsWithContextInClassComponent,\n} from './helpers/extendPropsWithContext'\nexport { assignPropsWithContext } from './helpers/assignPropsWithContext'\nexport { filterProps } from './helpers/filterProps'\n\nexport { keycode, getPreviousSibling, warn }\n\ninit()\n\n// run component helper functions\nwhatInput.specificKeys([9])\ndefineNavigator()\n\n/**\n * Check if device is touch device or not\n */\nexport function isTouchDevice() {\n if (typeof document !== 'undefined') {\n let intent = false\n try {\n intent = document.documentElement.getAttribute('data-whatintent')\n } catch (e) {\n //\n }\n return intent === 'touch'\n }\n return false\n}\n\nexport function defineNavigator() {\n const handleNavigator = () => {\n if (\n typeof document === 'undefined' ||\n typeof window === 'undefined' ||\n typeof navigator === 'undefined'\n ) {\n return\n }\n\n try {\n if (!(typeof window !== 'undefined' && window.IS_TEST)) {\n if (navigator.platform.match(new RegExp(PLATFORM_MAC)) !== null) {\n document.documentElement.setAttribute('data-os', 'mac')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_WIN)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'win')\n } else if (\n navigator.platform.match(new RegExp(PLATFORM_LINUX)) !== null\n ) {\n document.documentElement.setAttribute('data-os', 'linux')\n }\n } else {\n document.documentElement.setAttribute('data-os', 'other')\n }\n } catch (e) {\n warn(e)\n }\n\n document.removeEventListener('DOMContentLoaded', handleNavigator)\n }\n\n if (\n typeof document !== 'undefined' &&\n document.readyState === 'loading'\n ) {\n document.addEventListener('DOMContentLoaded', handleNavigator)\n } else {\n handleNavigator()\n }\n}\n\nexport const validateDOMAttributes = (props, params) => {\n // if there is an \"attributes\" prop, prepare these\n // mostly used for prop example usage\n if (props && props.attributes) {\n let attr = props.attributes\n if (attr) {\n if (attr[0] === '{') {\n attr = JSON.parse(attr)\n }\n if (attr && typeof attr === 'object') {\n Object.entries(attr).forEach(([key, value]) => {\n Object.assign(params, { [key]: value })\n })\n }\n delete params.attributes\n }\n }\n\n // remove disabled, in case it is false (this is for web components support)\n if (params.disabled === null || params.disabled === 'false') {\n delete params.disabled\n }\n if (typeof params.space !== 'undefined') {\n delete params.space\n }\n if (typeof params.top !== 'undefined') {\n delete params.top\n }\n if (typeof params.right !== 'undefined') {\n delete params.right\n }\n if (typeof params.bottom !== 'undefined') {\n delete params.bottom\n }\n if (typeof params.left !== 'undefined') {\n delete params.left\n }\n if (typeof params.no_collapse !== 'undefined') {\n delete params.no_collapse\n }\n if (typeof params.innerSpace !== 'undefined') {\n delete params.innerSpace\n }\n\n // in case disabled is a string, it's enabled, send it in as a true (this is for web components support)\n else if (params.disabled === 'true') {\n params.disabled = true\n }\n if (params.disabled === true) {\n params['aria-disabled'] = true\n }\n\n if (props && props.tabindex) {\n let tabIndex = props.tabindex\n if (tabIndex === 'off') {\n tabIndex = '-1'\n }\n params['tabIndex'] = tabIndex\n }\n\n // make sure we don't return a render prop as a DOM attribute\n if (params && typeof params === 'object') {\n for (const i in params) {\n if (\n // is React\n typeof params[i] === 'function' &&\n // only React Style props, like onClick are allowed\n !/(^[a-z]{1,}[A-Z]{1})/.test(i)\n ) {\n delete params[i]\n\n // filter out invalid attributes\n } else if (\n // we don't want NULL values\n params[i] === null ||\n // we don't want\n /[^a-z-]/i.test(i)\n // (typeof params[i] !== 'string' && /[^a-z-]/i.test(i))\n ) {\n delete params[i]\n }\n }\n }\n\n return params\n}\n\nexport const processChildren = (props) => {\n if (!props) {\n return null\n }\n\n // If used in WB, call functions who starts with \"render_\"\n if (\n typeof global !== 'undefined' &&\n Array.isArray(global.registeredElements) &&\n global.registeredElements.length > 0\n ) {\n let cache = null\n Object.entries(props)\n .reverse()\n .map(([key, cb]) => {\n if (key.includes('render_') && /^render_/.test(key)) {\n if (typeof cb === 'function') {\n if (cache) {\n if (Object.isFrozen(props)) {\n props = { ...props }\n }\n props.children = cache\n }\n return (cache = (\n <React.Fragment key={key}>{cb(props)}</React.Fragment>\n ))\n }\n }\n\n return null\n })\n .filter(Boolean)\n if (cache) {\n return cache\n }\n }\n\n const res =\n typeof props.children === 'function'\n ? props.children(props)\n : props.children\n\n // if we get several react children which represents only a text\n if (Array.isArray(res)) {\n const onlyTexts = res.reduce((pV, cV) => {\n if (typeof cV === 'string' || typeof cV === 'number') {\n pV.push(cV)\n }\n return pV\n }, [])\n\n // if there was one or more text elements\n if (onlyTexts.length === res.length && onlyTexts.length > 0) {\n return onlyTexts.join('')\n }\n }\n\n return res\n}\n\n/** @deprecated Can be removed in v11 */\nexport const extendGracefully = (...objects) => {\n let first = {}\n const keepRef = objects[0]\n\n if (keepRef === true || keepRef === false) {\n // remove settings value\n objects.shift()\n\n if (keepRef) {\n // by extracting the first, we keep the same main object reference\n first = objects.shift()\n }\n }\n\n return objects.reduce((acc1, object) => {\n if (object) {\n acc1 = Object.assign(\n acc1,\n Object.entries(object).reduce((acc2, [key, value]) => {\n if (value !== null) {\n // go recursively\n if (typeof value === 'object') {\n value = extendGracefully(acc1[key] || {}, value)\n if (Object.keys(value).length > 0) {\n acc2[key] = value\n }\n } else {\n acc2[key] = value\n }\n }\n return acc2\n }, {})\n )\n }\n return acc1\n }, first)\n}\n\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item)\n}\n\nexport function extendDeep(target = {}, ...sources) {\n for (const source of sources) {\n if (isObject(source)) {\n for (const key in source) {\n // Prototype-polluting checks etc.\n if (key === '__proto__' || key === 'constructor') continue\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue\n if (!isObject(target)) continue\n\n if (isObject(source[key])) {\n if (!isObject(target[key])) {\n target[key] = {}\n }\n extendDeep(target[key], source[key])\n } else {\n target[key] = source[key]\n }\n }\n }\n }\n\n return target\n}\n\n// check if value is \"truthy\"\nexport const isTrue = (value) => {\n if (\n value !== null &&\n typeof value !== 'undefined' &&\n (String(value) === 'true' || String(value) === '1')\n ) {\n return true\n }\n return false\n}\n\nexport const dispatchCustomElementEvent = (\n src,\n eventName,\n eventObjectOrig\n) => {\n let ret = undefined\n\n const eventObject = {\n ...((eventObjectOrig && eventObjectOrig.event) || {}),\n ...eventObjectOrig,\n }\n\n // distribute dataset like \"data-*\" to both currentTarget and target\n if (eventObject && eventObject.attributes && eventObject.event) {\n const currentTarget = eventObject.event.currentTarget\n if (currentTarget) {\n try {\n // 1. create new dataset, and copy if exists\n const dataset = { ...(currentTarget.dataset || {}) }\n\n // 2. copy in our attributes if they are of \"data-\" type\n const attributes = { ...eventObject.attributes }\n for (const i in attributes) {\n if (/^data-/.test(i)) {\n dataset[String(i).replace(/^data-/, '')] = attributes[i]\n }\n }\n\n // 3. and distribute them to the targets. Use the for method because of immutability\n for (const i in dataset) {\n if (eventObject.event.currentTarget.dataset) {\n eventObject.event.currentTarget.dataset[i] = dataset[i]\n }\n if (\n eventObject.event.target &&\n eventObject.event.target.dataset\n ) {\n eventObject.event.target.dataset[i] = dataset[i]\n }\n }\n } catch (e) {\n warn('Error on handling dataset:', e)\n }\n }\n }\n\n const props = (src && src.props) || src\n\n // call the default snake case event\n if (eventName.includes('_')) {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call Synthetic React event camelCase naming events\n eventName = toCamelCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n } else {\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n\n // call (in future deprecated) event snake case naming events\n eventName = toSnakeCase(eventName)\n if (typeof props[eventName] === 'function') {\n const r = props[eventName].apply(src, [eventObject])\n if (typeof r !== 'undefined') {\n ret = r\n }\n }\n }\n\n return ret\n}\n\n// transform on_click to onClick\nexport const toCamelCase = (s) =>\n s\n .split(/_/g)\n .reduce(\n (acc, cur, i) =>\n acc +\n (i === 0\n ? cur\n : cur.replace(\n /(\\w)(\\w*)/g,\n (g0, g1, g2) => g1.toUpperCase() + g2.toLowerCase()\n )),\n ''\n )\n\n// 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 .split('')\n .map((char, index, arr) =>\n index === 0 || arr[index - 1] === ' ' || arr[index - 1] === '-'\n ? char.toUpperCase()\n : char\n )\n .join('')\n : str\n}\n\n/**\n * [detectOutsideClick Detects a click outside a given DOM element]\n * @param {[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":";;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,SAAS,MAAM,YAAY;AAClC,SACEC,IAAI,EACJC,YAAY,EACZC,YAAY,EACZC,cAAc,QACT,WAAW;AAClB,SAASC,kBAAkB,QAAQ,8BAA8B;AACjE,SAASC,IAAI,QAAQ,WAAW;AAEhC,SAASC,uBAAuB,QAAQ,mCAAmC;AAC3E,SACEC,sBAAsB,EACtBC,sCAAsC,QACjC,kCAAkC;AACzC,SAASC,sBAAsB,QAAQ,kCAAkC;AACzE,SAASC,WAAW,QAAQ,uBAAuB;AAEnD,SAASZ,OAAO,EAAEM,kBAAkB,EAAEJ,IAAI;AAE1CK,IAAI,CAAC,CAAC;AAGNN,SAAS,CAACY,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3BC,eAAe,CAAC,CAAC;AAKjB,OAAO,SAASC,aAAaA,CAAA,EAAG;EAC9B,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;IACnC,IAAIC,MAAM,GAAG,KAAK;IAClB,IAAI;MACFA,MAAM,GAAGD,QAAQ,CAACE,eAAe,CAACC,YAAY,CAAC,iBAAiB,CAAC;IACnE,CAAC,CAAC,OAAOC,CAAC,EAAE,CAEZ;IACA,OAAOH,MAAM,KAAK,OAAO;EAC3B;EACA,OAAO,KAAK;AACd;AAEA,OAAO,SAASH,eAAeA,CAAA,EAAG;EAChC,MAAMO,eAAe,GAAGA,CAAA,KAAM;IAC5B,IACE,OAAOL,QAAQ,KAAK,WAAW,IAC/B,OAAOM,MAAM,KAAK,WAAW,IAC7B,OAAOC,SAAS,KAAK,WAAW,EAChC;MACA;IACF;IAEA,IAAI;MACF,IAAI,EAAE,OAAOD,MAAM,KAAK,WAAW,IAAIA,MAAM,CAACE,OAAO,CAAC,EAAE;QACtD,IAAID,SAAS,CAACE,QAAQ,CAACC,KAAK,CAAC,IAAIC,MAAM,CAACxB,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE;UAC/Da,QAAQ,CAACE,eAAe,CAACU,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC;QACzD,CAAC,MAAM,IACLL,SAAS,CAACE,QAAQ,CAACC,KAAK,CAAC,IAAIC,MAAM,CAACvB,YAAY,CAAC,CAAC,KAAK,IAAI,EAC3D;UACAY,QAAQ,CAACE,eAAe,CAACU,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC;QACzD,CAAC,MAAM,IACLL,SAAS,CAACE,QAAQ,CAACC,KAAK,CAAC,IAAIC,MAAM,CAACtB,cAAc,CAAC,CAAC,KAAK,IAAI,EAC7D;UACAW,QAAQ,CAACE,eAAe,CAACU,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC;QAC3D;MACF,CAAC,MAAM;QACLZ,QAAQ,CAACE,eAAe,CAACU,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC;MAC3D;IACF,CAAC,CAAC,OAAOR,CAAC,EAAE;MACVlB,IAAI,CAACkB,CAAC,CAAC;IACT;IAEAJ,QAAQ,CAACa,mBAAmB,CAAC,kBAAkB,EAAER,eAAe,CAAC;EACnE,CAAC;EAED,IACE,OAAOL,QAAQ,KAAK,WAAW,IAC/BA,QAAQ,CAACc,UAAU,KAAK,SAAS,EACjC;IACAd,QAAQ,CAACe,gBAAgB,CAAC,kBAAkB,EAAEV,eAAe,CAAC;EAChE,CAAC,MAAM;IACLA,eAAe,CAAC,CAAC;EACnB;AACF;AAEA,OAAO,MAAMW,qBAAqB,GAAGA,CAACC,KAAK,EAAEC,MAAM,KAAK;EAGtD,IAAID,KAAK,IAAIA,KAAK,CAACE,UAAU,EAAE;IAC7B,IAAIC,IAAI,GAAGH,KAAK,CAACE,UAAU;IAC3B,IAAIC,IAAI,EAAE;MACR,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACnBA,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACF,IAAI,CAAC;MACzB;MACA,IAAIA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QACpCG,MAAM,CAACC,OAAO,CAACJ,IAAI,CAAC,CAACK,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;UAC7CJ,MAAM,CAACK,MAAM,CAACV,MAAM,EAAE;YAAE,CAACQ,GAAG,GAAGC;UAAM,CAAC,CAAC;QACzC,CAAC,CAAC;MACJ;MACA,OAAOT,MAAM,CAACC,UAAU;IAC1B;EACF;EAGA,IAAID,MAAM,CAACW,QAAQ,KAAK,IAAI,IAAIX,MAAM,CAACW,QAAQ,KAAK,OAAO,EAAE;IAC3D,OAAOX,MAAM,CAACW,QAAQ;EACxB;EACA,IAAI,OAAOX,MAAM,CAACY,KAAK,KAAK,WAAW,EAAE;IACvC,OAAOZ,MAAM,CAACY,KAAK;EACrB;EACA,IAAI,OAAOZ,MAAM,CAACa,GAAG,KAAK,WAAW,EAAE;IACrC,OAAOb,MAAM,CAACa,GAAG;EACnB;EACA,IAAI,OAAOb,MAAM,CAACc,KAAK,KAAK,WAAW,EAAE;IACvC,OAAOd,MAAM,CAACc,KAAK;EACrB;EACA,IAAI,OAAOd,MAAM,CAACe,MAAM,KAAK,WAAW,EAAE;IACxC,OAAOf,MAAM,CAACe,MAAM;EACtB;EACA,IAAI,OAAOf,MAAM,CAACgB,IAAI,KAAK,WAAW,EAAE;IACtC,OAAOhB,MAAM,CAACgB,IAAI;EACpB;EACA,IAAI,OAAOhB,MAAM,CAACiB,WAAW,KAAK,WAAW,EAAE;IAC7C,OAAOjB,MAAM,CAACiB,WAAW;EAC3B;EACA,IAAI,OAAOjB,MAAM,CAACkB,UAAU,KAAK,WAAW,EAAE;IAC5C,OAAOlB,MAAM,CAACkB,UAAU;EAC1B,CAAC,MAGI,IAAIlB,MAAM,CAACW,QAAQ,KAAK,MAAM,EAAE;IACnCX,MAAM,CAACW,QAAQ,GAAG,IAAI;EACxB;EACA,IAAIX,MAAM,CAACW,QAAQ,KAAK,IAAI,EAAE;IAC5BX,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI;EAChC;EAEA,IAAID,KAAK,IAAIA,KAAK,CAACoB,QAAQ,EAAE;IAC3B,IAAIC,QAAQ,GAAGrB,KAAK,CAACoB,QAAQ;IAC7B,IAAIC,QAAQ,KAAK,KAAK,EAAE;MACtBA,QAAQ,GAAG,IAAI;IACjB;IACApB,MAAM,CAAC,UAAU,CAAC,GAAGoB,QAAQ;EAC/B;EAGA,IAAIpB,MAAM,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IACxC,KAAK,MAAMqB,CAAC,IAAIrB,MAAM,EAAE;MACtB,IAEE,OAAOA,MAAM,CAACqB,CAAC,CAAC,KAAK,UAAU,IAE/B,CAAC,sBAAsB,CAACC,IAAI,CAACD,CAAC,CAAC,EAC/B;QACA,OAAOrB,MAAM,CAACqB,CAAC,CAAC;MAGlB,CAAC,MAAM,IAELrB,MAAM,CAACqB,CAAC,CAAC,KAAK,IAAI,IAElB,UAAU,CAACC,IAAI,CAACD,CAAC,CAAC,EAElB;QACA,OAAOrB,MAAM,CAACqB,CAAC,CAAC;MAClB;IACF;EACF;EAEA,OAAOrB,MAAM;AACf,CAAC;AAED,OAAO,MAAMuB,eAAe,GAAIxB,KAAK,IAAK;EACxC,IAAI,CAACA,KAAK,EAAE;IACV,OAAO,IAAI;EACb;EAGA,IACE,OAAOyB,MAAM,KAAK,WAAW,IAC7BC,KAAK,CAACC,OAAO,CAACF,MAAM,CAACG,kBAAkB,CAAC,IACxCH,MAAM,CAACG,kBAAkB,CAACC,MAAM,GAAG,CAAC,EACpC;IACA,IAAIC,KAAK,GAAG,IAAI;IAChBxB,MAAM,CAACC,OAAO,CAACP,KAAK,CAAC,CAClB+B,OAAO,CAAC,CAAC,CACTC,GAAG,CAAC,CAAC,CAACvB,GAAG,EAAEwB,EAAE,CAAC,KAAK;MAClB,IAAIxB,GAAG,CAACyB,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAACX,IAAI,CAACd,GAAG,CAAC,EAAE;QACnD,IAAI,OAAOwB,EAAE,KAAK,UAAU,EAAE;UAC5B,IAAIH,KAAK,EAAE;YACT,IAAIxB,MAAM,CAAC6B,QAAQ,CAACnC,KAAK,CAAC,EAAE;cAC1BA,KAAK,GAAAoC,aAAA,KAAQpC,KAAK,CAAE;YACtB;YACAA,KAAK,CAACqC,QAAQ,GAAGP,KAAK;UACxB;UACA,OAAQA,KAAK,GACXhE,KAAA,CAAAwE,aAAA,CAACxE,KAAK,CAACyE,QAAQ;YAAC9B,GAAG,EAAEA;UAAI,GAAEwB,EAAE,CAACjC,KAAK,CAAkB,CACtD;QACH;MACF;MAEA,OAAO,IAAI;IACb,CAAC,CAAC,CACDwC,MAAM,CAACC,OAAO,CAAC;IAClB,IAAIX,KAAK,EAAE;MACT,OAAOA,KAAK;IACd;EACF;EAEA,MAAMY,GAAG,GACP,OAAO1C,KAAK,CAACqC,QAAQ,KAAK,UAAU,GAChCrC,KAAK,CAACqC,QAAQ,CAACrC,KAAK,CAAC,GACrBA,KAAK,CAACqC,QAAQ;EAGpB,IAAIX,KAAK,CAACC,OAAO,CAACe,GAAG,CAAC,EAAE;IACtB,MAAMC,SAAS,GAAGD,GAAG,CAACE,MAAM,CAAC,CAACC,EAAE,EAAEC,EAAE,KAAK;MACvC,IAAI,OAAOA,EAAE,KAAK,QAAQ,IAAI,OAAOA,EAAE,KAAK,QAAQ,EAAE;QACpDD,EAAE,CAACE,IAAI,CAACD,EAAE,CAAC;MACb;MACA,OAAOD,EAAE;IACX,CAAC,EAAE,EAAE,CAAC;IAGN,IAAIF,SAAS,CAACd,MAAM,KAAKa,GAAG,CAACb,MAAM,IAAIc,SAAS,CAACd,MAAM,GAAG,CAAC,EAAE;MAC3D,OAAOc,SAAS,CAACK,IAAI,CAAC,EAAE,CAAC;IAC3B;EACF;EAEA,OAAON,GAAG;AACZ,CAAC;AAGD,OAAO,MAAMO,gBAAgB,GAAGA,CAAC,GAAGC,OAAO,KAAK;EAC9C,IAAIC,KAAK,GAAG,CAAC,CAAC;EACd,MAAMC,OAAO,GAAGF,OAAO,CAAC,CAAC,CAAC;EAE1B,IAAIE,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAK,KAAK,EAAE;IAEzCF,OAAO,CAACG,KAAK,CAAC,CAAC;IAEf,IAAID,OAAO,EAAE;MAEXD,KAAK,GAAGD,OAAO,CAACG,KAAK,CAAC,CAAC;IACzB;EACF;EAEA,OAAOH,OAAO,CAACN,MAAM,CAAC,CAACU,IAAI,EAAEC,MAAM,KAAK;IACtC,IAAIA,MAAM,EAAE;MACVD,IAAI,GAAGhD,MAAM,CAACK,MAAM,CAClB2C,IAAI,EACJhD,MAAM,CAACC,OAAO,CAACgD,MAAM,CAAC,CAACX,MAAM,CAAC,CAACY,IAAI,EAAE,CAAC/C,GAAG,EAAEC,KAAK,CAAC,KAAK;QACpD,IAAIA,KAAK,KAAK,IAAI,EAAE;UAElB,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;YAC7BA,KAAK,GAAGuC,gBAAgB,CAACK,IAAI,CAAC7C,GAAG,CAAC,IAAI,CAAC,CAAC,EAAEC,KAAK,CAAC;YAChD,IAAIJ,MAAM,CAACmD,IAAI,CAAC/C,KAAK,CAAC,CAACmB,MAAM,GAAG,CAAC,EAAE;cACjC2B,IAAI,CAAC/C,GAAG,CAAC,GAAGC,KAAK;YACnB;UACF,CAAC,MAAM;YACL8C,IAAI,CAAC/C,GAAG,CAAC,GAAGC,KAAK;UACnB;QACF;QACA,OAAO8C,IAAI;MACb,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;IACH;IACA,OAAOF,IAAI;EACb,CAAC,EAAEH,KAAK,CAAC;AACX,CAAC;AAED,OAAO,SAASO,QAAQA,CAACC,IAAI,EAAE;EAC7B,OAAOA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,CAACjC,KAAK,CAACC,OAAO,CAACgC,IAAI,CAAC;AACjE;AAEA,OAAO,SAASC,UAAUA,CAACC,MAAM,GAAG,CAAC,CAAC,EAAE,GAAGC,OAAO,EAAE;EAClD,KAAK,MAAMC,MAAM,IAAID,OAAO,EAAE;IAC5B,IAAIJ,QAAQ,CAACK,MAAM,CAAC,EAAE;MACpB,KAAK,MAAMtD,GAAG,IAAIsD,MAAM,EAAE;QAExB,IAAItD,GAAG,KAAK,WAAW,IAAIA,GAAG,KAAK,aAAa,EAAE;QAClD,IAAI,CAACH,MAAM,CAAC0D,SAAS,CAACC,cAAc,CAACC,IAAI,CAACH,MAAM,EAAEtD,GAAG,CAAC,EAAE;QACxD,IAAI,CAACiD,QAAQ,CAACG,MAAM,CAAC,EAAE;QAEvB,IAAIH,QAAQ,CAACK,MAAM,CAACtD,GAAG,CAAC,CAAC,EAAE;UACzB,IAAI,CAACiD,QAAQ,CAACG,MAAM,CAACpD,GAAG,CAAC,CAAC,EAAE;YAC1BoD,MAAM,CAACpD,GAAG,CAAC,GAAG,CAAC,CAAC;UAClB;UACAmD,UAAU,CAACC,MAAM,CAACpD,GAAG,CAAC,EAAEsD,MAAM,CAACtD,GAAG,CAAC,CAAC;QACtC,CAAC,MAAM;UACLoD,MAAM,CAACpD,GAAG,CAAC,GAAGsD,MAAM,CAACtD,GAAG,CAAC;QAC3B;MACF;IACF;EACF;EAEA,OAAOoD,MAAM;AACf;AAGA,OAAO,MAAMM,MAAM,GAAIzD,KAAK,IAAK;EAC/B,IACEA,KAAK,KAAK,IAAI,IACd,OAAOA,KAAK,KAAK,WAAW,KAC3B0D,MAAM,CAAC1D,KAAK,CAAC,KAAK,MAAM,IAAI0D,MAAM,CAAC1D,KAAK,CAAC,KAAK,GAAG,CAAC,EACnD;IACA,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd,CAAC;AAED,OAAO,MAAM2D,0BAA0B,GAAGA,CACxCC,GAAG,EACHC,SAAS,EACTC,eAAe,KACZ;EACH,IAAIC,GAAG,GAAGC,SAAS;EAEnB,MAAMC,WAAW,GAAAvC,aAAA,CAAAA,aAAA,KACVoC,eAAe,IAAIA,eAAe,CAACI,KAAK,IAAK,CAAC,CAAC,GACjDJ,eAAe,CACnB;EAGD,IAAIG,WAAW,IAAIA,WAAW,CAACzE,UAAU,IAAIyE,WAAW,CAACC,KAAK,EAAE;IAC9D,MAAMC,aAAa,GAAGF,WAAW,CAACC,KAAK,CAACC,aAAa;IACrD,IAAIA,aAAa,EAAE;MACjB,IAAI;QAEF,MAAMC,OAAO,GAAA1C,aAAA,KAASyC,aAAa,CAACC,OAAO,IAAI,CAAC,CAAC,CAAG;QAGpD,MAAM5E,UAAU,GAAAkC,aAAA,KAAQuC,WAAW,CAACzE,UAAU,CAAE;QAChD,KAAK,MAAMoB,CAAC,IAAIpB,UAAU,EAAE;UAC1B,IAAI,QAAQ,CAACqB,IAAI,CAACD,CAAC,CAAC,EAAE;YACpBwD,OAAO,CAACV,MAAM,CAAC9C,CAAC,CAAC,CAACyD,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG7E,UAAU,CAACoB,CAAC,CAAC;UAC1D;QACF;QAGA,KAAK,MAAMA,CAAC,IAAIwD,OAAO,EAAE;UACvB,IAAIH,WAAW,CAACC,KAAK,CAACC,aAAa,CAACC,OAAO,EAAE;YAC3CH,WAAW,CAACC,KAAK,CAACC,aAAa,CAACC,OAAO,CAACxD,CAAC,CAAC,GAAGwD,OAAO,CAACxD,CAAC,CAAC;UACzD;UACA,IACEqD,WAAW,CAACC,KAAK,CAACf,MAAM,IACxBc,WAAW,CAACC,KAAK,CAACf,MAAM,CAACiB,OAAO,EAChC;YACAH,WAAW,CAACC,KAAK,CAACf,MAAM,CAACiB,OAAO,CAACxD,CAAC,CAAC,GAAGwD,OAAO,CAACxD,CAAC,CAAC;UAClD;QACF;MACF,CAAC,CAAC,OAAOnC,CAAC,EAAE;QACVlB,IAAI,CAAC,4BAA4B,EAAEkB,CAAC,CAAC;MACvC;IACF;EACF;EAEA,MAAMa,KAAK,GAAIsE,GAAG,IAAIA,GAAG,CAACtE,KAAK,IAAKsE,GAAG;EAGvC,IAAIC,SAAS,CAACrC,QAAQ,CAAC,GAAG,CAAC,EAAE;IAC3B,IAAI,OAAOlC,KAAK,CAACuE,SAAS,CAAC,KAAK,UAAU,EAAE;MAC1C,MAAMS,CAAC,GAAGhF,KAAK,CAACuE,SAAS,CAAC,CAACU,KAAK,CAACX,GAAG,EAAE,CAACK,WAAW,CAAC,CAAC;MACpD,IAAI,OAAOK,CAAC,KAAK,WAAW,EAAE;QAC5BP,GAAG,GAAGO,CAAC;MACT;IACF;IAGAT,SAAS,GAAGW,WAAW,CAACX,SAAS,CAAC;IAClC,IAAI,OAAOvE,KAAK,CAACuE,SAAS,CAAC,KAAK,UAAU,EAAE;MAC1C,MAAMS,CAAC,GAAGhF,KAAK,CAACuE,SAAS,CAAC,CAACU,KAAK,CAACX,GAAG,EAAE,CAACK,WAAW,CAAC,CAAC;MACpD,IAAI,OAAOK,CAAC,KAAK,WAAW,EAAE;QAC5BP,GAAG,GAAGO,CAAC;MACT;IACF;EACF,CAAC,MAAM;IACL,IAAI,OAAOhF,KAAK,CAACuE,SAAS,CAAC,KAAK,UAAU,EAAE;MAC1C,MAAMS,CAAC,GAAGhF,KAAK,CAACuE,SAAS,CAAC,CAACU,KAAK,CAACX,GAAG,EAAE,CAACK,WAAW,CAAC,CAAC;MACpD,IAAI,OAAOK,CAAC,KAAK,WAAW,EAAE;QAC5BP,GAAG,GAAGO,CAAC;MACT;IACF;IAGAT,SAAS,GAAGY,WAAW,CAACZ,SAAS,CAAC;IAClC,IAAI,OAAOvE,KAAK,CAACuE,SAAS,CAAC,KAAK,UAAU,EAAE;MAC1C,MAAMS,CAAC,GAAGhF,KAAK,CAACuE,SAAS,CAAC,CAACU,KAAK,CAACX,GAAG,EAAE,CAACK,WAAW,CAAC,CAAC;MACpD,IAAI,OAAOK,CAAC,KAAK,WAAW,EAAE;QAC5BP,GAAG,GAAGO,CAAC;MACT;IACF;EACF;EAEA,OAAOP,GAAG;AACZ,CAAC;AAGD,OAAO,MAAMS,WAAW,GAAIE,CAAC,IAC3BA,CAAC,CACEC,KAAK,CAAC,IAAI,CAAC,CACXzC,MAAM,CACL,CAAC0C,GAAG,EAAEC,GAAG,EAAEjE,CAAC,KACVgE,GAAG,IACFhE,CAAC,KAAK,CAAC,GACJiE,GAAG,GACHA,GAAG,CAACR,OAAO,CACT,YAAY,EACZ,CAACS,EAAE,EAAEC,EAAE,EAAEC,EAAE,KAAKD,EAAE,CAACE,WAAW,CAAC,CAAC,GAAGD,EAAE,CAACE,WAAW,CAAC,CACpD,CAAC,CAAC,EACR,EACF,CAAC;AASL,OAAO,MAAMC,YAAY,GAAIT,CAAC,IAC5BA,CAAC,CACEC,KAAK,CAAC,IAAI,CAAC,CACXzC,MAAM,CACL,CAAC0C,GAAG,EAAEC,GAAG,KACPD,GAAG,GACHC,GAAG,CAACR,OAAO,CACT,YAAY,EACZ,CAACS,EAAE,EAAEC,EAAE,EAAEC,EAAE,KAAKD,EAAE,CAACE,WAAW,CAAC,CAAC,GAAGD,EAAE,CAACE,WAAW,CAAC,CACpD,CAAC,EACH,EACF,CAAC;AAGL,OAAO,MAAMT,WAAW,GAAIW,GAAG,IAC7BA,GAAG,CAACf,OAAO,CAAC,UAAU,EAAGgB,MAAM,IAAM,IAAGA,MAAO,EAAC,CAAC,CAACH,WAAW,CAAC,CAAC;AAGjE,OAAO,MAAMI,WAAW,GAAIF,GAAG,IAC7BA,GAAG,CAACf,OAAO,CAAC,UAAU,EAAGgB,MAAM,IAAM,IAAGA,MAAO,EAAC,CAAC,CAACH,WAAW,CAAC,CAAC;AAEjE,OAAO,SAASK,aAAaA,CAACH,GAAG,EAAE;EACjC,OAAO,OAAOA,GAAG,KAAK,QAAQ,GAC1BA,GAAG,CACAF,WAAW,CAAC,CAAC,CACbP,KAAK,CAAC,EAAE,CAAC,CACTrD,GAAG,CAAC,CAACkE,IAAI,EAAEC,KAAK,EAAEC,GAAG,KACpBD,KAAK,KAAK,CAAC,IAAIC,GAAG,CAACD,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,IAAIC,GAAG,CAACD,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,GAC3DD,IAAI,CAACP,WAAW,CAAC,CAAC,GAClBO,IACN,CAAC,CACAlD,IAAI,CAAC,EAAE,CAAC,GACX8C,GAAG;AACT;AAQA,OAAO,MAAMO,kBAAkB,GAAGA,CAACC,cAAc,EAAEC,SAAS,EAAEC,OAAO,KACnE,IAAIC,uBAAuB,CAACH,cAAc,EAAEC,SAAS,EAAEC,OAAO,CAAC;AAGjE,OAAO,MAAMC,uBAAuB,CAAC;EACnCC,WAAWA,CAACJ,eAAc,EAAEC,UAAS,EAAEC,OAAO,GAAG,CAAC,CAAC,EAAE;IAAAG,eAAA,4BAkEjC,CAAC;MAAE/B,KAAK;MAAE0B;IAAe,CAAC,EAAEC,SAAS,GAAG,IAAI,KAAK;MACnE,IAAI;QACF,MAAMK,cAAc,GAAGhC,KAAK,CAACf,MAAM;QAInC,IACE,CAAA+C,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEC,OAAO,MAAK,MAAM,KACjCjC,KAAK,CAACkC,KAAK,GAAG/H,QAAQ,CAACE,eAAe,CAAC8H,WAAW,GAAG,EAAE,IACtDnC,KAAK,CAACoC,KAAK,GAAGjI,QAAQ,CAACE,eAAe,CAACgI,YAAY,GAAG,EAAE,CAAC,EAC3D;UACA;QACF;QAGA,IAAIC,mBAAmB,CAACN,cAAc,CAAC,EAAE;UACvC;QACF;QAGA,KAAK,IAAItF,CAAC,GAAG,CAAC,EAAE6F,IAAI,EAAEC,CAAC,GAAGd,cAAc,CAACzE,MAAM,EAAEP,CAAC,GAAG8F,CAAC,EAAE,EAAE9F,CAAC,EAAE;UAC3D6F,IAAI,GAAGP,cAAc;UACrB,IAAI,CAACN,cAAc,CAAChF,CAAC,CAAC,EAAE;YACtB;UACF;UACA,GAAG;YACD,IAAI6F,IAAI,KAAKb,cAAc,CAAChF,CAAC,CAAC,EAAE;cAC9B;YACF;YACA6F,IAAI,GAAGA,IAAI,IAAIA,IAAI,CAACE,UAAU;UAChC,CAAC,QAAQF,IAAI;QACf;QAEA,IAAI,OAAOZ,SAAS,KAAK,UAAU,EAAE;UACnCA,SAAS,CAAC,CAAC;QACb;MACF,CAAC,CAAC,OAAOpH,CAAC,EAAE;QACVlB,IAAI,CAACkB,CAAC,CAAC;MACT;IACF,CAAC;IAxGC,IACE,CAAC,IAAI,CAACmI,kBAAkB,IACxB,OAAOvI,QAAQ,KAAK,WAAW,IAC/B,OAAOM,MAAM,KAAK,WAAW,EAC7B;MACA,IAAI,CAACqC,KAAK,CAACC,OAAO,CAAC2E,eAAc,CAAC,EAAE;QAClCA,eAAc,GAAG,CAACA,eAAc,CAAC;MACnC;MACA,IAAI,CAACgB,kBAAkB,GAAI1C,KAAK,IAAK;QACnC,IAAI,CAAC2C,iBAAiB,CACpB;UACE3C,KAAK;UACL0B,cAAc,EAAdA;QACF,CAAC,EACD,MAAM,OAAOC,UAAS,KAAK,UAAU,IAAIA,UAAS,CAAC;UAAE3B;QAAM,CAAC,CAC9D,CAAC;MACH,CAAC;MACD7F,QAAQ,CAACe,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACwH,kBAAkB,CAAC;MAE/D,IAAI,CAACE,eAAe,GAAI5C,KAAK,IAAK;QAChC,MAAM6C,OAAO,GAAG1J,OAAO,CAAC6G,KAAK,CAAC;QAC9B,IAAI6C,OAAO,KAAK,KAAK,EAAE;UACrBpI,MAAM,CAACO,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC4H,eAAe,CAAC;UAC3D,IAAI,OAAOjB,UAAS,KAAK,UAAU,EAAE;YACnCA,UAAS,CAAC;cAAE3B;YAAM,CAAC,CAAC;UACtB;QACF;MACF,CAAC;MACDvF,MAAM,CAACS,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC0H,eAAe,CAAC;MAGxD,IAAIhB,OAAO,CAACkB,YAAY,EAAE;QAExB,IAAI,CAACC,aAAa,GAAI/C,KAAK,IAAK;UAC9B,MAAM6C,OAAO,GAAG1J,OAAO,CAAC6G,KAAK,CAAC;UAC9B,IACE4B,OAAO,CAACkB,YAAY,CAACxF,QAAQ,CAACuF,OAAO,CAAC,IACtC,OAAO,IAAI,CAACH,kBAAkB,KAAK,UAAU,EAC7C;YACA,IAAI,CAACA,kBAAkB,CAAC1C,KAAK,EAAE,MAAM;cACnC,IAAI,IAAI,CAAC+C,aAAa,EACpBtI,MAAM,CAACO,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC+H,aAAa,CAAC;YAC3D,CAAC,CAAC;UACJ;QACF,CAAC;QACDtI,MAAM,CAACS,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC6H,aAAa,CAAC;MACtD;IACF;EACF;EAEAC,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAACN,kBAAkB,IAAI,OAAOvI,QAAQ,KAAK,WAAW,EAAE;MAC9DA,QAAQ,CAACa,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC0H,kBAAkB,CAAC;MAClE,IAAI,CAACA,kBAAkB,GAAG,IAAI;IAChC;IACA,IAAI,IAAI,CAACE,eAAe,IAAI,OAAOnI,MAAM,KAAK,WAAW,EAAE;MACzDA,MAAM,CAACO,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC4H,eAAe,CAAC;MAC3D,IAAI,CAACA,eAAe,GAAG,IAAI;IAC7B;IACA,IAAI,IAAI,CAACG,aAAa,IAAI,OAAOtI,MAAM,KAAK,WAAW,EAAE;MACvDA,MAAM,CAACO,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC+H,aAAa,CAAC;MACvD,IAAI,CAACA,aAAa,GAAG,IAAI;IAC3B;EACF;AA0CF;AAEA,OAAO,MAAMT,mBAAmB,GAAIC,IAAI,IAAK;EAC3C,OACEA,IAAI,KACHA,IAAI,CAACU,YAAY,GAAGV,IAAI,CAACW,YAAY,IACpCX,IAAI,CAACY,WAAW,GAAGZ,IAAI,CAACa,WAAW,CAAC,IACtCC,oBAAoB,CAACd,IAAI,CAAC;AAE9B,CAAC;AACD,MAAMc,oBAAoB,GAAId,IAAI,IAAK;EACrC,MAAMe,KAAK,GACT,OAAO7I,MAAM,KAAK,WAAW,GAAGA,MAAM,CAAC8I,gBAAgB,CAAChB,IAAI,CAAC,GAAG,CAAC,CAAC;EACpE,OAAO,cAAc,CAAC5F,IAAI,CACxB,CAAC2G,KAAK,CAACE,QAAQ,IAAI,EAAE,KAClBF,KAAK,CAACG,SAAS,IAAI,EAAE,CAAC,IACtBH,KAAK,CAACI,SAAS,IAAI,EAAE,CAC1B,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,YAAY,GAAGA,CAACC,MAAM,GAAG,KAAK,EAAE3G,MAAM,GAAG,CAAC,KACrD2G,MAAM,GACNpE,MAAM,CACJqE,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,MAAM,CAAC,CAAC,EAAE/G,MAAM,CAAC,GAAGgH,WAAW,EAC5D,CAAC,CAACC,KAAK,CAAC,CAACjH,MAAM,CAAC;AAClB,IAAIgH,WAAW,GAAG,CAAC;AAEnB,OAAO,MAAME,OAAO,GAAI3D,CAAC,IACvBhB,MAAM,CAACgB,CAAC,CAAC,CACNQ,WAAW,CAAC,CAAC,CACbb,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CACxBA,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CACxBA,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AAG5B,OAAO,MAAMiE,QAAQ,GAAGA,CAACC,MAAM,EAAEC,KAAK,KAAK;EACzC,IAAI,OAAOD,MAAM,CAACD,QAAQ,KAAK,UAAU,EAAE;IACzC,OAAOtH,KAAK,CAACyH,IAAI,CAACF,MAAM,CAACD,QAAQ,CAACE,KAAK,CAAC,CAAC;EAC3C;EACA,MAAME,OAAO,GAAG,EAAE;EAClB,IAAI3J,KAAK;EACT,OAAQA,KAAK,GAAGyJ,KAAK,CAACG,IAAI,CAACJ,MAAM,CAAC,EAAG;IACnCG,OAAO,CAACrG,IAAI,CAACtD,KAAK,CAAC;EACrB;EACA,OAAO2J,OAAO;AAChB,CAAC;AAWD,OAAO,MAAME,gBAAgB,GAAGA,CAACC,OAAO,EAAE1F,MAAM,EAAE2F,QAAQ,GAAG,IAAI,KAAK;EACpE,IAAI;IACF,MAAMC,QAAQ,GAAIF,OAAO,IAAK;MAC5B,IAAIC,QAAQ,EAAE;QACZ,MAAM9G,GAAG,GAAG8G,QAAQ,CAACD,OAAO,CAAC;QAC7B,IAAI7G,GAAG,EAAE;UACP,OAAO6G,OAAO;QAChB;MACF;MACA,OAAOA,OAAO,IAAIA,OAAO,KAAK1F,MAAM;IACtC,CAAC;IAED,IAAI4F,QAAQ,CAACF,OAAO,CAAC,EAAE;MACrB,OAAOA,OAAO;IAChB;IAEA,OACE,CAACA,OAAO,GAAGA,OAAO,IAAIA,OAAO,CAACG,aAAa,KAC3C,CAACD,QAAQ,CAACF,OAAO,CAAC,CACnB;EACH,CAAC,CAAC,OAAOpK,CAAC,EAAE,CAEZ;EAEA,OAAOoK,OAAO;AAChB,CAAC;AAGD,OAAO,MAAMI,cAAc,GAAGA,CAACC,GAAG,EAAE/F,MAAM,KAAK;EAC7C,MAAMgG,IAAI,GAAGD,GAAG,GAAG/F,MAAM;EACzB,OAAOgG,IAAI,GAAGhG,MAAM,GAAG,CAAC,GAAG+F,GAAG,GAAGC,IAAI,GAAGhG,MAAM,GAAG+F,GAAG,GAAGC,IAAI;AAC7D,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAIlD,cAAc,IAAK;EAC7D,OAAOvI,kBAAkB,CAAC,kBAAkB,EAAEuI,cAAc,CAAC;AAC/D,CAAC;AAED,OAAO,MAAMmD,kBAAkB,GAAGA,CAChCC,QAAQ,EACRC,SAAS,GAAGvF,SAAS,EACrBwF,aAAa,GAAGxF,SAAS,KACtB;EACH,IAAI,CAAChD,KAAK,CAACC,OAAO,CAACqI,QAAQ,CAAC,EAAE;IAC5BA,QAAQ,GAAG,CAACA,QAAQ,CAAC;EACvB;EAEA,MAAMG,OAAO,GAAIC,IAAI,IAAK;IACxB,IAAItM,KAAK,CAACuM,cAAc,CAACD,IAAI,CAAC,EAAE;MAC9B,IAAIF,aAAa,EAAE;QACjBE,IAAI,GAAGF,aAAa,CAACE,IAAI,CAAC;MAC5B;MAEA,IAAI,OAAOA,IAAI,CAACpK,KAAK,CAACqC,QAAQ,KAAK,QAAQ,EAAE;QAC3C+H,IAAI,GAAGA,IAAI,CAACpK,KAAK,CAACqC,QAAQ,CAACiI,IAAI,CAAC,CAAC;MACnC,CAAC,MAAM,IAAI5I,KAAK,CAACC,OAAO,CAACyI,IAAI,CAACpK,KAAK,CAACqC,QAAQ,CAAC,EAAE;QAC7C+H,IAAI,GAAGA,IAAI,CAACpK,KAAK,CAACqC,QAAQ,CAACO,MAAM,CAAC,CAAC0C,GAAG,EAAE8E,IAAI,KAAK;UAC/C,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;YAC5BA,IAAI,GAAGD,OAAO,CAACC,IAAI,EAAEH,SAAS,EAAEC,aAAa,CAAC;UAChD;UACA,IAAI,OAAOE,IAAI,KAAK,QAAQ,EAAE;YAC5B9E,GAAG,GAAG,CAACA,GAAG,IAAI2E,SAAS,IAAI,EAAE,CAAC,GAAGG,IAAI,EAAEE,IAAI,CAAC,CAAC;UAC/C;UACA,OAAOhF,GAAG;QACZ,CAAC,EAAE,EAAE,CAAC;MACR,CAAC,MAAM;QACL,OAAO,IAAI;MACb;IACF;IAEA,OAAO8E,IAAI;EACb,CAAC;EAED,OAAOJ,QAAQ,CACZhI,GAAG,CAAEoI,IAAI,IAAKD,OAAO,CAACC,IAAI,CAAC,CAAC,CAC5B5H,MAAM,CAACC,OAAO,CAAC,CACfO,IAAI,CAACiH,SAAS,CAAC,CACfK,IAAI,CAAC,CAAC;AACX,CAAC;AAED,OAAO,SAASC,wBAAwBA,CAACC,MAAM,EAAEC,KAAK,EAAE;EACtD,OAAOD,MAAM,GAAGC,KAAK,GAAG,IAAI;AAC9B;AAEA,OAAO,SAASC,cAAcA,CAACF,MAAM,EAAE;EACrC,OACEA,MAAM,IAAIA,MAAM,KAAK,OAAO,IAAIA,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAK,MAAM;AAE1E;AAEA,OAAO,SAASG,iBAAiBA,CAAC,GAAG1K,MAAM,EAAE;EAC3C,OAAO2K,aAAa,CAAC,iBAAiB,EAAE3K,MAAM,CAAC;AACjD;AACA,OAAO,SAAS4K,kBAAkBA,CAAC,GAAG5K,MAAM,EAAE;EAC5C,OAAO2K,aAAa,CAAC,kBAAkB,EAAE3K,MAAM,CAAC;AAClD;AACA,OAAO,SAAS6K,cAAcA,CAAC,GAAG7K,MAAM,EAAE;EACxC,OAAO2K,aAAa,CAAC,cAAc,EAAE3K,MAAM,CAAC;AAC9C;AACA,SAAS2K,aAAaA,CAACG,IAAI,EAAE9K,MAAM,EAAE;EACnCA,MAAM,GAAGA,MAAM,CAAC+B,GAAG,CAAEuD,GAAG,IAAK;IAC3B,IAAI7D,KAAK,CAACC,OAAO,CAAC4D,GAAG,CAAC,EAAE;MACtB,OAAOA,GAAG,CAACvC,IAAI,CAAC,GAAG,CAAC;IACtB;IACA,IAAIuC,GAAG,IAAItF,MAAM,CAACiC,QAAQ,CAACqD,GAAG,CAACwF,IAAI,CAAC,CAAC,EAAE;MACrC,OAAO,IAAI;IACb;IACA,IAAIxF,GAAG,IAAI,OAAOA,GAAG,CAACwF,IAAI,CAAC,KAAK,WAAW,EAAE;MAC3CxF,GAAG,GAAGA,GAAG,CAACwF,IAAI,CAAC;IACjB;IACA,IAAI,OAAOxF,GAAG,KAAK,QAAQ,EAAE;MAC3BA,GAAG,GAAG,IAAI;IACZ;IACA,OAAOA,GAAG;EACZ,CAAC,CAAC;EACFtF,MAAM,GAAGA,MAAM,CAACuC,MAAM,CAACC,OAAO,CAAC,CAACO,IAAI,CAAC,GAAG,CAAC;EACzC,IAAI/C,MAAM,KAAK,EAAE,EAAE;IACjBA,MAAM,GAAGyE,SAAS;EACpB;EACA,OAAOzE,MAAM;AACf;AAEA,OAAO,SAAS+K,qBAAqBA,CAAC3I,QAAQ,EAAE4I,IAAI,EAAE;EACpD,IAAI,CAACvJ,KAAK,CAACC,OAAO,CAACU,QAAQ,CAAC,EAAE;IAC5BA,QAAQ,GAAG,CAACA,QAAQ,CAAC;EACvB;EAEA,IAAI6I,MAAM,GAAG,IAAI;EACjB7I,QAAQ,CAAC8I,IAAI,CAAE5F,GAAG,IAAK;IACrB,IAAIA,GAAG,IAAIA,GAAG,CAACvF,KAAK,IAAIuF,GAAG,CAACvF,KAAK,CAACqC,QAAQ,EAAE;MAC1C,MAAMK,GAAG,GAAGsI,qBAAqB,CAACzF,GAAG,CAACvF,KAAK,CAACqC,QAAQ,EAAE4I,IAAI,CAAC;MAC3D,IAAIvI,GAAG,EAAE;QACP,OAAQwI,MAAM,GAAGxI,GAAG;MACtB;IACF;IACA,IAAI5E,KAAK,CAACuM,cAAc,CAAC9E,GAAG,CAAC,IAAI0F,IAAI,CAAC1F,GAAG,CAAC,EAAE;MAC1C,OAAQ2F,MAAM,GAAG3F,GAAG;IACtB;IACA,OAAO,IAAI;EACb,CAAC,CAAC;EAEF,OAAO2F,MAAM;AACf;AAEA,OAAO,SAASE,gBAAgBA,CAACtF,GAAG,EAAE;EACpC,OAAOA,GAAG,CAACf,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC;AACtD;AAEA,OAAO,SAASsG,oBAAoBA,CAAC9H,MAAM,EAAE;EAC3CjD,MAAM,CAACmD,IAAI,CAACF,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC/C,OAAO,CAAEC,GAAG,IAAK;IACzC,IAAI8C,MAAM,CAAC9C,GAAG,CAAC,KAAKiE,SAAS,EAAE;MAC7B,OAAOnB,MAAM,CAAC9C,GAAG,CAAC;IACpB;EACF,CAAC,CAAC;EACF,OAAO8C,MAAM;AACf"}
@@ -0,0 +1,75 @@
1
+ type SearchInput = KeyboardEvent | {
2
+ which: number;
3
+ keyCode: number;
4
+ charCode: number;
5
+ } | string | number | Array<unknown> | Record<string, unknown> | RegExp;
6
+ export default function keyCode(searchInput: SearchInput): any;
7
+ export declare const codes: {
8
+ backspace: number;
9
+ tab: number;
10
+ enter: number;
11
+ shift: number;
12
+ ctrl: number;
13
+ alt: number;
14
+ 'pause/break': number;
15
+ 'caps lock': number;
16
+ esc: number;
17
+ space: number;
18
+ 'page up': number;
19
+ 'page down': number;
20
+ end: number;
21
+ home: number;
22
+ left: number;
23
+ up: number;
24
+ right: number;
25
+ down: number;
26
+ insert: number;
27
+ delete: number;
28
+ command: number;
29
+ 'left command': number;
30
+ 'right command': number;
31
+ 'numpad *': number;
32
+ 'numpad +': number;
33
+ 'numpad -': number;
34
+ 'numpad .': number;
35
+ 'numpad /': number;
36
+ 'num lock': number;
37
+ 'scroll lock': number;
38
+ 'my computer': number;
39
+ 'my calculator': number;
40
+ ';': number;
41
+ '=': number;
42
+ ',': number;
43
+ '-': number;
44
+ '.': number;
45
+ '/': number;
46
+ '`': number;
47
+ '[': number;
48
+ '\\': number;
49
+ ']': number;
50
+ "'": number;
51
+ };
52
+ export declare const aliases: {
53
+ windows: number;
54
+ '\u21E7': number;
55
+ '\u2325': number;
56
+ '\u2303': number;
57
+ '\u2318': number;
58
+ ctl: number;
59
+ control: number;
60
+ option: number;
61
+ pause: number;
62
+ break: number;
63
+ caps: number;
64
+ return: number;
65
+ escape: number;
66
+ spc: number;
67
+ spacebar: number;
68
+ pgup: number;
69
+ pgdn: number;
70
+ ins: number;
71
+ del: number;
72
+ cmd: number;
73
+ };
74
+ export declare const names: {};
75
+ export {};
@@ -0,0 +1,127 @@
1
+ export default function keyCode(searchInput) {
2
+ if (searchInput && 'object' === typeof searchInput) {
3
+ const sI = searchInput;
4
+ const foundKeyCode = sI.which || sI.keyCode || sI.charCode;
5
+ if (foundKeyCode) {
6
+ searchInput = foundKeyCode;
7
+ } else if (sI.key) {
8
+ searchInput = sI.key.toLowerCase();
9
+ if (searchInput.startsWith('arrow')) {
10
+ searchInput = searchInput.replace('arrow', '');
11
+ }
12
+ if (searchInput === 'spacebar') {
13
+ searchInput = searchInput.replace('bar', '');
14
+ }
15
+ if (searchInput !== 'tab') {
16
+ return searchInput;
17
+ }
18
+ }
19
+ }
20
+ if ('number' === typeof searchInput) {
21
+ return names[searchInput];
22
+ }
23
+ const search = String(searchInput);
24
+ {
25
+ const foundNamedKey = codes[search.toLowerCase()];
26
+ if (foundNamedKey) {
27
+ return foundNamedKey;
28
+ }
29
+ }
30
+ {
31
+ const foundNamedKey = aliases[search.toLowerCase()];
32
+ if (foundNamedKey) {
33
+ return foundNamedKey;
34
+ }
35
+ }
36
+ if (search.length === 1) {
37
+ return search.charCodeAt(0);
38
+ }
39
+ return undefined;
40
+ }
41
+ export const codes = {
42
+ backspace: 8,
43
+ tab: 9,
44
+ enter: 13,
45
+ shift: 16,
46
+ ctrl: 17,
47
+ alt: 18,
48
+ 'pause/break': 19,
49
+ 'caps lock': 20,
50
+ esc: 27,
51
+ space: 32,
52
+ 'page up': 33,
53
+ 'page down': 34,
54
+ end: 35,
55
+ home: 36,
56
+ left: 37,
57
+ up: 38,
58
+ right: 39,
59
+ down: 40,
60
+ insert: 45,
61
+ delete: 46,
62
+ command: 91,
63
+ 'left command': 91,
64
+ 'right command': 93,
65
+ 'numpad *': 106,
66
+ 'numpad +': 107,
67
+ 'numpad -': 109,
68
+ 'numpad .': 110,
69
+ 'numpad /': 111,
70
+ 'num lock': 144,
71
+ 'scroll lock': 145,
72
+ 'my computer': 182,
73
+ 'my calculator': 183,
74
+ ';': 186,
75
+ '=': 187,
76
+ ',': 188,
77
+ '-': 189,
78
+ '.': 190,
79
+ '/': 191,
80
+ '`': 192,
81
+ '[': 219,
82
+ '\\': 220,
83
+ ']': 221,
84
+ "'": 222
85
+ };
86
+ export const aliases = {
87
+ windows: 91,
88
+ '⇧': 16,
89
+ '⌥': 18,
90
+ '⌃': 17,
91
+ '⌘': 91,
92
+ ctl: 17,
93
+ control: 17,
94
+ option: 18,
95
+ pause: 19,
96
+ break: 19,
97
+ caps: 20,
98
+ return: 13,
99
+ escape: 27,
100
+ spc: 32,
101
+ spacebar: 32,
102
+ pgup: 33,
103
+ pgdn: 34,
104
+ ins: 45,
105
+ del: 46,
106
+ cmd: 91
107
+ };
108
+ for (let i = 97; i < 123; i++) {
109
+ codes[String.fromCharCode(i)] = i - 32;
110
+ }
111
+ for (let i = 48; i < 58; i++) {
112
+ codes[i - 48] = i;
113
+ }
114
+ for (let i = 1; i < 13; i++) {
115
+ codes['f' + i] = i + 111;
116
+ }
117
+ for (let i = 0; i < 10; i++) {
118
+ codes['numpad ' + i] = i + 96;
119
+ }
120
+ export const names = {};
121
+ for (const i in codes) {
122
+ names[codes[i]] = i;
123
+ }
124
+ for (const alias in aliases) {
125
+ codes[alias] = aliases[alias];
126
+ }
127
+ //# sourceMappingURL=keycode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keycode.js","names":["keyCode","searchInput","sI","foundKeyCode","which","charCode","key","toLowerCase","startsWith","replace","names","search","String","foundNamedKey","codes","aliases","length","charCodeAt","undefined","backspace","tab","enter","shift","ctrl","alt","esc","space","end","home","left","up","right","down","insert","delete","command","windows","ctl","control","option","pause","break","caps","return","escape","spc","spacebar","pgup","pgdn","ins","del","cmd","i","fromCharCode","alias"],"sources":["../../../src/shared/keycode.ts"],"sourcesContent":["// Source: https://github.com/timoxley/keycode\n\ntype SearchInput =\n | KeyboardEvent\n | { which: number; keyCode: number; charCode: number }\n | string\n | number\n | Array<unknown>\n | Record<string, unknown>\n | RegExp\n\nexport default function keyCode(searchInput: SearchInput) {\n if (searchInput && 'object' === typeof searchInput) {\n const sI = searchInput as KeyboardEvent\n const foundKeyCode = sI.which || sI.keyCode || sI.charCode\n if (foundKeyCode) {\n searchInput = foundKeyCode\n } else if (sI.key) {\n searchInput = sI.key.toLowerCase()\n if (searchInput.startsWith('arrow')) {\n searchInput = searchInput.replace('arrow', '')\n }\n if (searchInput === 'spacebar') {\n searchInput = searchInput.replace('bar', '')\n }\n if (searchInput !== 'tab') {\n return searchInput\n }\n }\n }\n\n // Numbers\n if ('number' === typeof searchInput) {\n return names[searchInput]\n }\n\n // Everything else (cast to string)\n const search = String(searchInput)\n\n // check codes\n {\n const foundNamedKey = codes[search.toLowerCase()]\n if (foundNamedKey) {\n return foundNamedKey\n }\n }\n\n // check aliases\n {\n const foundNamedKey = aliases[search.toLowerCase()]\n if (foundNamedKey) {\n return foundNamedKey\n }\n }\n\n // weird character?\n if (search.length === 1) {\n return search.charCodeAt(0)\n }\n\n return undefined\n}\n\nexport const codes = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n ctrl: 17,\n alt: 18,\n 'pause/break': 19,\n 'caps lock': 20,\n esc: 27,\n space: 32,\n 'page up': 33,\n 'page down': 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n insert: 45,\n delete: 46,\n command: 91,\n 'left command': 91,\n 'right command': 93,\n 'numpad *': 106,\n 'numpad +': 107,\n 'numpad -': 109,\n 'numpad .': 110,\n 'numpad /': 111,\n 'num lock': 144,\n 'scroll lock': 145,\n 'my computer': 182,\n 'my calculator': 183,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n \"'\": 222,\n}\n\nexport const aliases = {\n windows: 91,\n '⇧': 16,\n '⌥': 18,\n '⌃': 17,\n '⌘': 91,\n ctl: 17,\n control: 17,\n option: 18,\n pause: 19,\n break: 19,\n caps: 20,\n return: 13,\n escape: 27,\n spc: 32,\n spacebar: 32,\n pgup: 33,\n pgdn: 34,\n ins: 45,\n del: 46,\n cmd: 91,\n}\n\n// lower case chars\nfor (let i = 97; i < 123; i++) {\n codes[String.fromCharCode(i)] = i - 32\n}\n\n// numbers\nfor (let i = 48; i < 58; i++) {\n codes[i - 48] = i\n}\n\n// function keys\nfor (let i = 1; i < 13; i++) {\n codes['f' + i] = i + 111\n}\n\n// numpad keys\nfor (let i = 0; i < 10; i++) {\n codes['numpad ' + i] = i + 96\n}\n\nexport const names = {} // title for backward compat\n\n// Create reverse mapping\nfor (const i in codes) {\n names[codes[i]] = i\n}\n\n// Add aliases\nfor (const alias in aliases) {\n codes[alias] = aliases[alias]\n}\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import keycode from 'keycode';
2
- import { warn } from '../component-helper';
1
+ import { warn, keycode } from '../component-helper';
3
2
  export class createShortcut {
4
3
  constructor() {
5
4
  this.eventTracker = [];
@@ -1 +1 @@
1
- {"version":3,"file":"Shortcuts.js","names":["keycode","warn","createShortcut","constructor","eventTracker","shortcutExists","add","shortcut","callback","onDone","element","window","document","timeout","id","keyDown","e","event","code","shortcuts","split","metaWanted","cmd","ctrl","shift","alt","metaPressed","metaKey","ctrlKey","shiftKey","altKey","matches","forEach","cut","length","clearTimeout","setTimeout","keyUp","addEventListener","remove","toLowerCase","removeEventListener"],"sources":["../../../../src/shared/libs/Shortcuts.js"],"sourcesContent":["import keycode from 'keycode'\nimport { warn } from '../component-helper'\n\nexport class createShortcut {\n constructor() {\n this.eventTracker = []\n this.shortcutExists = []\n }\n\n // Lets you add a new shortcut\n add(shortcut, callback, onDone, element = null) {\n // Prevents multiple additions of the same shortcut\n if (\n typeof window === 'undefined' ||\n typeof document === 'undefined' ||\n this.shortcutExists[shortcut] === true\n ) {\n return\n }\n\n try {\n element = element || document\n const timeout = { id: null }\n\n const keyDown = (e) => {\n try {\n const event = e || window.event\n const code = keycode(event)\n const shortcuts = shortcut.split('+')\n const metaWanted = {\n cmd: false,\n ctrl: false,\n shift: false,\n alt: false,\n }\n const metaPressed = {\n cmd: event.metaKey,\n ctrl: event.ctrlKey,\n shift: event.shiftKey,\n alt: event.altKey,\n }\n\n let matches = 0\n shortcuts.forEach((cut) => {\n switch (cut) {\n case 'cmd':\n case 'ctrl':\n case 'shift':\n case 'alt':\n {\n metaWanted[cut] = true\n matches++\n }\n break\n default:\n {\n if (cut === code) {\n matches++\n }\n }\n break\n }\n // if (cut.length > 1) {\n // if (keycodes[cut] === keypress) {\n // matches++\n // }\n // }\n })\n\n // If we have matched the shortcut we issue the callback\n if (\n matches === shortcuts.length &&\n metaWanted.cmd === metaPressed.cmd &&\n metaWanted.ctrl === metaPressed.ctrl &&\n metaWanted.shift === metaPressed.shift &&\n metaWanted.alt === metaPressed.alt\n ) {\n callback(event)\n if (typeof onDone === 'function') {\n clearTimeout(timeout.id)\n timeout.id = setTimeout(onDone, 10)\n }\n }\n } catch (e) {\n warn(e)\n }\n }\n\n const keyUp = (e) => {\n if (typeof onDone === 'function') {\n onDone(e)\n }\n }\n\n // Add the event listener\n element.addEventListener('keydown', keyDown)\n element.addEventListener('keyup', keyUp)\n\n // Cache the event data so it can be removed later\n this.eventTracker[shortcut] = {\n timeout,\n element,\n keyDown,\n keyUp,\n }\n\n this.shortcutExists[shortcut] = true\n } catch (e) {\n warn(e)\n }\n }\n\n remove(shortcut) {\n try {\n shortcut = shortcut.toLowerCase()\n\n if (this.eventTracker[shortcut]) {\n const { timeout, element, keyDown, keyUp } =\n this.eventTracker[shortcut]\n\n element.removeEventListener('keydown', keyDown, false)\n element.removeEventListener('keyup', keyUp, false)\n\n clearTimeout(timeout.id)\n\n delete this.eventTracker[shortcut]\n this.shortcutExists[shortcut] = false\n }\n } catch (e) {\n //\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Shortcuts.js","names":["warn","keycode","createShortcut","constructor","eventTracker","shortcutExists","add","shortcut","callback","onDone","element","window","document","timeout","id","keyDown","e","event","code","shortcuts","split","metaWanted","cmd","ctrl","shift","alt","metaPressed","metaKey","ctrlKey","shiftKey","altKey","matches","forEach","cut","length","clearTimeout","setTimeout","keyUp","addEventListener","remove","toLowerCase","removeEventListener"],"sources":["../../../../src/shared/libs/Shortcuts.js"],"sourcesContent":["import { warn, keycode } from '../component-helper'\n\nexport class createShortcut {\n constructor() {\n this.eventTracker = []\n this.shortcutExists = []\n }\n\n // Lets you add a new shortcut\n add(shortcut, callback, onDone, element = null) {\n // Prevents multiple additions of the same shortcut\n if (\n typeof window === 'undefined' ||\n typeof document === 'undefined' ||\n this.shortcutExists[shortcut] === true\n ) {\n return\n }\n\n try {\n element = element || document\n const timeout = { id: null }\n\n const keyDown = (e) => {\n try {\n const event = e || window.event\n const code = keycode(event)\n const shortcuts = shortcut.split('+')\n const metaWanted = {\n cmd: false,\n ctrl: false,\n shift: false,\n alt: false,\n }\n const metaPressed = {\n cmd: event.metaKey,\n ctrl: event.ctrlKey,\n shift: event.shiftKey,\n alt: event.altKey,\n }\n\n let matches = 0\n shortcuts.forEach((cut) => {\n switch (cut) {\n case 'cmd':\n case 'ctrl':\n case 'shift':\n case 'alt':\n {\n metaWanted[cut] = true\n matches++\n }\n break\n default:\n {\n if (cut === code) {\n matches++\n }\n }\n break\n }\n // if (cut.length > 1) {\n // if (keycodes[cut] === keypress) {\n // matches++\n // }\n // }\n })\n\n // If we have matched the shortcut we issue the callback\n if (\n matches === shortcuts.length &&\n metaWanted.cmd === metaPressed.cmd &&\n metaWanted.ctrl === metaPressed.ctrl &&\n metaWanted.shift === metaPressed.shift &&\n metaWanted.alt === metaPressed.alt\n ) {\n callback(event)\n if (typeof onDone === 'function') {\n clearTimeout(timeout.id)\n timeout.id = setTimeout(onDone, 10)\n }\n }\n } catch (e) {\n warn(e)\n }\n }\n\n const keyUp = (e) => {\n if (typeof onDone === 'function') {\n onDone(e)\n }\n }\n\n // Add the event listener\n element.addEventListener('keydown', keyDown)\n element.addEventListener('keyup', keyUp)\n\n // Cache the event data so it can be removed later\n this.eventTracker[shortcut] = {\n timeout,\n element,\n keyDown,\n keyUp,\n }\n\n this.shortcutExists[shortcut] = true\n } catch (e) {\n warn(e)\n }\n }\n\n remove(shortcut) {\n try {\n shortcut = shortcut.toLowerCase()\n\n if (this.eventTracker[shortcut]) {\n const { timeout, element, keyDown, keyUp } =\n this.eventTracker[shortcut]\n\n element.removeEventListener('keydown', keyDown, false)\n element.removeEventListener('keyup', keyUp, false)\n\n clearTimeout(timeout.id)\n\n delete this.eventTracker[shortcut]\n this.shortcutExists[shortcut] = false\n }\n } catch (e) {\n //\n }\n }\n}\n"],"mappings":"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"}
@@ -144,8 +144,8 @@ export default {
144
144
  },
145
145
  Upload: {
146
146
  title: 'Last opp dokumenter',
147
- text: 'Dra & slipp eller velg hvilke filer du vil laste opp.',
148
- textSingular: 'Dra & slipp eller velg hvilken fil du vil laste opp.',
147
+ text: 'Dra og slipp eller velg hvilke filer du vil laste opp.',
148
+ textSingular: 'Dra og slipp eller velg hvilken fil du vil laste opp.',
149
149
  fileTypeTableCaption: 'Tillatte filformater og maks filstørrelse',
150
150
  fileTypeDescription: 'Tillatte filformater:',
151
151
  fileSizeDescription: 'Maks filstørrelse:',
@@ -1 +1 @@
1
- {"version":3,"file":"nb-NO.js","names":["TextCounter","characterDown","characterUp","characterExceeded","TimelineItem","alt_label_completed","alt_label_current","alt_label_upcoming","Breadcrumb","navText","goBackText","homeText","backToText","DatePicker","day","month","year","start","end","selected_date","selected_month","selected_year","next_month","prev_month","next_year","prev_year","open_picker_text","mask_order","mask_placeholder","date_format","return_format","submit_button_text","cancel_button_text","reset_button_text","placeholder_characters","Anchor","targetBlankTitle","GlobalStatus","default_title","close_text","status_anchor_text","GlobalError","title","text","code","help","ProgressIndicator","indicator_label","Dropdown","Autocomplete","submit_button_title","no_options","show_all","show_options_sr","aria_live_options","selected_sr","Modal","dialog_title","close_title","Dialog","declineText","confirmText","CopyOnClick","clipboard_copy","NumberFormat","not_available","HelpButton","aria_role","Input","clear_button_title","Pagination","button_title","next_title","prev_title","more_pages","is_loading_text","load_button_text","Skeleton","aria_busy","aria_ready","StepIndicator","overview_title","step_title_extended","step_title","Slider","addTitle","subtractTitle","PaymentCard","text_card_number","text_expired","text_blocked","text_not_active","text_order_in_process","text_renewed","text_replaced","text_unknown","Tag","removeIconTitle","addIconTitle","Table","accordionToggleButtonSR","accordionMoreContentSR","navigationButtonSR","Upload","textSingular","fileTypeTableCaption","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","buttonText","buttonTextSingular","loadingText","errorLargeFile","errorAmountLimit","errorUnsupportedFile","deleteButton","fileListAriaLabel"],"sources":["../../../../src/shared/locales/nb-NO.ts"],"sourcesContent":["export default {\n 'nb-NO': {\n TextCounter: {\n characterDown: '%count av %max tegn gjenstår.',\n characterUp: 'Du har brukt %count av %max tegn.',\n characterExceeded: '%count tegn over grensen på %max.',\n },\n TimelineItem: {\n alt_label_completed: 'Utført',\n alt_label_current: 'Nåværende',\n alt_label_upcoming: 'Kommende',\n },\n Breadcrumb: {\n navText: 'Sidehierarki',\n goBackText: 'Tilbake',\n homeText: 'Hjem',\n backToText: 'Tilbake til...',\n },\n DatePicker: {\n day: 'dag',\n month: 'måned',\n year: 'år',\n start: 'fra',\n end: 'til',\n selected_date: 'Valgt dato: %s',\n selected_month: 'Valgt måned %s',\n selected_year: 'Valgt år %s',\n next_month: 'Neste måned %s',\n prev_month: 'Forrige måned %s',\n next_year: 'Neste år %s',\n prev_year: 'Forrige år %s',\n open_picker_text: 'åpne datovelger',\n mask_order: 'dd/mm/yyyy',\n mask_placeholder: 'dd.mm.åååå', // have to be same setup as \"mask\" - but can be like: dd/mm/åååå\n date_format: 'yyyy-MM-dd', // in v1 of date-fns we were more flexible in terms of the format\n return_format: 'yyyy-MM-dd', // used in date-fns v1: YYYY-MM-DD\n submit_button_text: 'Ok',\n cancel_button_text: 'Avbryt',\n reset_button_text: 'Tilbakestill',\n placeholder_characters: {\n day: 'd',\n month: 'm',\n year: 'å',\n },\n },\n Anchor: {\n targetBlankTitle: 'Åpner et nytt vindu',\n },\n GlobalStatus: {\n default_title: 'En feil har skjedd',\n close_text: 'Lukk',\n status_anchor_text: 'Gå til %s',\n },\n GlobalError: {\n 404: {\n title: 'Vi finner ikke siden du leter etter …',\n text: 'Sikker på at du har skrevet riktig adresse? Eller har vi rotet med lenkene?',\n },\n 500: {\n title: 'Beklager, her skjedde det noe feil!',\n text: 'Tjenesten fungerer ikke slik den skal for øyeblikket, men prøv igjen senere.',\n },\n code: 'Feilmeldings-kode:',\n help: 'Her er noen lenker som kanskje kan hjelpe:',\n },\n ProgressIndicator: {\n indicator_label: 'Vennligst vent ...',\n },\n Dropdown: {\n title: 'Valgmeny',\n },\n Autocomplete: {\n title: 'Skriv og velg',\n submit_button_title: 'Vis alternativer',\n no_options: 'Ingen alternativer',\n show_all: 'Vis alt',\n show_options_sr: 'Bla gjennom alternativer, lukk med esc knappen',\n aria_live_options: '%s alternativer',\n selected_sr: 'Valgt:',\n indicator_label: 'Henter data ...',\n },\n Modal: {\n dialog_title: 'Separat Vindu',\n close_title: 'Lukk',\n },\n Dialog: {\n declineText: 'Avbryt',\n confirmText: 'Godta',\n },\n CopyOnClick: {\n clipboard_copy: 'Kopiert',\n },\n NumberFormat: {\n clipboard_copy: 'Kopiert',\n not_available: 'Ikke tilgjengelig',\n },\n HelpButton: {\n title: 'Hjelpetekst',\n aria_role: 'Hjelp-knapp',\n },\n Input: {\n submit_button_title: 'Send knapp',\n clear_button_title: 'Nullstill',\n },\n Pagination: {\n button_title: 'Side %s',\n next_title: 'Neste side',\n prev_title: 'Forrige side',\n more_pages: '%s flere sider',\n is_loading_text: 'Laster nytt innhold',\n load_button_text: 'Vis mer innhold',\n },\n Skeleton: {\n aria_busy: 'Behandler data ...',\n aria_ready: 'Klar til å samhandle',\n },\n StepIndicator: {\n overview_title: 'Stegoversikt',\n step_title_extended: 'Du er på steg %step av %count',\n step_title: 'Steg %step av %count',\n },\n Slider: {\n addTitle: 'Øk (%s)',\n subtractTitle: 'Reduser (%s)',\n },\n PaymentCard: {\n text_card_number: 'Kortnummer',\n text_expired: 'Utgått',\n text_blocked: 'Sperret',\n text_not_active: 'Ikke aktivert',\n text_order_in_process: 'Under behandling',\n text_renewed: 'Fornyet',\n text_replaced: 'Erstattet',\n text_unknown: 'Ukjent',\n },\n Tag: {\n removeIconTitle: 'Fjern',\n addIconTitle: 'Legg til',\n },\n Table: {\n accordionToggleButtonSR: 'Vis mer innhold',\n accordionMoreContentSR: 'Mer innhold i neste rad',\n navigationButtonSR: 'Naviger til mer innhold',\n },\n Upload: {\n title: 'Last opp dokumenter',\n text: 'Dra & slipp eller velg hvilke filer du vil laste opp.',\n textSingular: 'Dra & slipp eller velg hvilken fil du vil laste opp.',\n fileTypeTableCaption: 'Tillatte filformater og maks filstørrelse',\n fileTypeDescription: 'Tillatte filformater:',\n fileSizeDescription: 'Maks filstørrelse:',\n fileAmountDescription: 'Maks antall filer:',\n fileSizeContent: '%size MB',\n buttonText: 'Velg filer',\n buttonTextSingular: 'Velg fil',\n loadingText: 'Laster opp',\n errorLargeFile:\n 'Filen du prøver å laste opp er for stor, den maksimale støttede størrelsen er %size MB.',\n errorAmountLimit:\n 'Det er begrenset hvor mange filer du kan laste opp (%amount).',\n errorUnsupportedFile: 'Filen du prøver å laste opp er ikke støttet.',\n deleteButton: 'Slett',\n fileListAriaLabel: 'opplastede filer',\n },\n },\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"nb-NO.js","names":["TextCounter","characterDown","characterUp","characterExceeded","TimelineItem","alt_label_completed","alt_label_current","alt_label_upcoming","Breadcrumb","navText","goBackText","homeText","backToText","DatePicker","day","month","year","start","end","selected_date","selected_month","selected_year","next_month","prev_month","next_year","prev_year","open_picker_text","mask_order","mask_placeholder","date_format","return_format","submit_button_text","cancel_button_text","reset_button_text","placeholder_characters","Anchor","targetBlankTitle","GlobalStatus","default_title","close_text","status_anchor_text","GlobalError","title","text","code","help","ProgressIndicator","indicator_label","Dropdown","Autocomplete","submit_button_title","no_options","show_all","show_options_sr","aria_live_options","selected_sr","Modal","dialog_title","close_title","Dialog","declineText","confirmText","CopyOnClick","clipboard_copy","NumberFormat","not_available","HelpButton","aria_role","Input","clear_button_title","Pagination","button_title","next_title","prev_title","more_pages","is_loading_text","load_button_text","Skeleton","aria_busy","aria_ready","StepIndicator","overview_title","step_title_extended","step_title","Slider","addTitle","subtractTitle","PaymentCard","text_card_number","text_expired","text_blocked","text_not_active","text_order_in_process","text_renewed","text_replaced","text_unknown","Tag","removeIconTitle","addIconTitle","Table","accordionToggleButtonSR","accordionMoreContentSR","navigationButtonSR","Upload","textSingular","fileTypeTableCaption","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","buttonText","buttonTextSingular","loadingText","errorLargeFile","errorAmountLimit","errorUnsupportedFile","deleteButton","fileListAriaLabel"],"sources":["../../../../src/shared/locales/nb-NO.ts"],"sourcesContent":["export default {\n 'nb-NO': {\n TextCounter: {\n characterDown: '%count av %max tegn gjenstår.',\n characterUp: 'Du har brukt %count av %max tegn.',\n characterExceeded: '%count tegn over grensen på %max.',\n },\n TimelineItem: {\n alt_label_completed: 'Utført',\n alt_label_current: 'Nåværende',\n alt_label_upcoming: 'Kommende',\n },\n Breadcrumb: {\n navText: 'Sidehierarki',\n goBackText: 'Tilbake',\n homeText: 'Hjem',\n backToText: 'Tilbake til...',\n },\n DatePicker: {\n day: 'dag',\n month: 'måned',\n year: 'år',\n start: 'fra',\n end: 'til',\n selected_date: 'Valgt dato: %s',\n selected_month: 'Valgt måned %s',\n selected_year: 'Valgt år %s',\n next_month: 'Neste måned %s',\n prev_month: 'Forrige måned %s',\n next_year: 'Neste år %s',\n prev_year: 'Forrige år %s',\n open_picker_text: 'åpne datovelger',\n mask_order: 'dd/mm/yyyy',\n mask_placeholder: 'dd.mm.åååå', // have to be same setup as \"mask\" - but can be like: dd/mm/åååå\n date_format: 'yyyy-MM-dd', // in v1 of date-fns we were more flexible in terms of the format\n return_format: 'yyyy-MM-dd', // used in date-fns v1: YYYY-MM-DD\n submit_button_text: 'Ok',\n cancel_button_text: 'Avbryt',\n reset_button_text: 'Tilbakestill',\n placeholder_characters: {\n day: 'd',\n month: 'm',\n year: 'å',\n },\n },\n Anchor: {\n targetBlankTitle: 'Åpner et nytt vindu',\n },\n GlobalStatus: {\n default_title: 'En feil har skjedd',\n close_text: 'Lukk',\n status_anchor_text: 'Gå til %s',\n },\n GlobalError: {\n 404: {\n title: 'Vi finner ikke siden du leter etter …',\n text: 'Sikker på at du har skrevet riktig adresse? Eller har vi rotet med lenkene?',\n },\n 500: {\n title: 'Beklager, her skjedde det noe feil!',\n text: 'Tjenesten fungerer ikke slik den skal for øyeblikket, men prøv igjen senere.',\n },\n code: 'Feilmeldings-kode:',\n help: 'Her er noen lenker som kanskje kan hjelpe:',\n },\n ProgressIndicator: {\n indicator_label: 'Vennligst vent ...',\n },\n Dropdown: {\n title: 'Valgmeny',\n },\n Autocomplete: {\n title: 'Skriv og velg',\n submit_button_title: 'Vis alternativer',\n no_options: 'Ingen alternativer',\n show_all: 'Vis alt',\n show_options_sr: 'Bla gjennom alternativer, lukk med esc knappen',\n aria_live_options: '%s alternativer',\n selected_sr: 'Valgt:',\n indicator_label: 'Henter data ...',\n },\n Modal: {\n dialog_title: 'Separat Vindu',\n close_title: 'Lukk',\n },\n Dialog: {\n declineText: 'Avbryt',\n confirmText: 'Godta',\n },\n CopyOnClick: {\n clipboard_copy: 'Kopiert',\n },\n NumberFormat: {\n clipboard_copy: 'Kopiert',\n not_available: 'Ikke tilgjengelig',\n },\n HelpButton: {\n title: 'Hjelpetekst',\n aria_role: 'Hjelp-knapp',\n },\n Input: {\n submit_button_title: 'Send knapp',\n clear_button_title: 'Nullstill',\n },\n Pagination: {\n button_title: 'Side %s',\n next_title: 'Neste side',\n prev_title: 'Forrige side',\n more_pages: '%s flere sider',\n is_loading_text: 'Laster nytt innhold',\n load_button_text: 'Vis mer innhold',\n },\n Skeleton: {\n aria_busy: 'Behandler data ...',\n aria_ready: 'Klar til å samhandle',\n },\n StepIndicator: {\n overview_title: 'Stegoversikt',\n step_title_extended: 'Du er på steg %step av %count',\n step_title: 'Steg %step av %count',\n },\n Slider: {\n addTitle: 'Øk (%s)',\n subtractTitle: 'Reduser (%s)',\n },\n PaymentCard: {\n text_card_number: 'Kortnummer',\n text_expired: 'Utgått',\n text_blocked: 'Sperret',\n text_not_active: 'Ikke aktivert',\n text_order_in_process: 'Under behandling',\n text_renewed: 'Fornyet',\n text_replaced: 'Erstattet',\n text_unknown: 'Ukjent',\n },\n Tag: {\n removeIconTitle: 'Fjern',\n addIconTitle: 'Legg til',\n },\n Table: {\n accordionToggleButtonSR: 'Vis mer innhold',\n accordionMoreContentSR: 'Mer innhold i neste rad',\n navigationButtonSR: 'Naviger til mer innhold',\n },\n Upload: {\n title: 'Last opp dokumenter',\n text: 'Dra og slipp eller velg hvilke filer du vil laste opp.',\n textSingular:\n 'Dra og slipp eller velg hvilken fil du vil laste opp.',\n fileTypeTableCaption: 'Tillatte filformater og maks filstørrelse',\n fileTypeDescription: 'Tillatte filformater:',\n fileSizeDescription: 'Maks filstørrelse:',\n fileAmountDescription: 'Maks antall filer:',\n fileSizeContent: '%size MB',\n buttonText: 'Velg filer',\n buttonTextSingular: 'Velg fil',\n loadingText: 'Laster opp',\n errorLargeFile:\n 'Filen du prøver å laste opp er for stor, den maksimale støttede størrelsen er %size MB.',\n errorAmountLimit:\n 'Det er begrenset hvor mange filer du kan laste opp (%amount).',\n errorUnsupportedFile: 'Filen du prøver å laste opp er ikke støttet.',\n deleteButton: 'Slett',\n fileListAriaLabel: 'opplastede filer',\n },\n },\n}\n"],"mappings":"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"}
@@ -10,11 +10,11 @@ export type CombineWithExternalTranslationsArgs = {
10
10
  messages?: TranslationCustomLocales;
11
11
  locale?: InternalLocale;
12
12
  };
13
- export type FormatMessage = {
13
+ export type AdditionalReturnUtils = {
14
14
  formatMessage: typeof formatMessage;
15
15
  renderMessage: typeof renderMessage;
16
16
  };
17
- export type CombineWithExternalTranslationsReturn = Translation & TranslationCustomLocales & FormatMessage;
17
+ export type CombineWithExternalTranslationsReturn = Translation & TranslationCustomLocales & AdditionalReturnUtils;
18
18
  export declare function useAdditionalUtils(): {
19
19
  assignUtils: (translations: CombineWithExternalTranslationsReturn) => CombineWithExternalTranslationsReturn;
20
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useTranslation.js","names":["React","Fragment","useCallback","useContext","useMemo","useRef","Context","defaultLocales","useTranslation","messages","args","locale","translation","assignUtils","useAdditionalUtils","id","undefined","formatMessage","combineWithExternalTranslations","translationsRef","fM","current","rM","message","renderMessage","translations","Object","assign","combined","_objectSpread","keys","some","key","_str","str","_id$includes","found","includes","call","split","t","replace","RegExp","text","element","Array","isArray","map","item","index","createElement","_br"],"sources":["../../../src/shared/useTranslation.tsx"],"sourcesContent":["import React, {\n Fragment,\n useCallback,\n useContext,\n useMemo,\n useRef,\n} from 'react'\nimport Context, {\n Translation,\n TranslationLocale,\n TranslationCustomLocales,\n InternalLocale,\n} from './Context'\nimport defaultLocales from './locales'\n\nexport type TranslationId = string\nexport type TranslationIdAsFunction<T = TranslationCustomLocales> = (\n messages: T & Translation\n) => string\nexport type TranslationArguments = Record<TranslationId, unknown>\nexport type UseTranslationMessages<T = Translation> =\n | TranslationId\n | Translation\n | TranslationCustomLocales\n | Record<TranslationLocale, T>\n\nexport default function useTranslation<T = Translation>(\n messages?: UseTranslationMessages<T>,\n args?: TranslationArguments\n) {\n const { locale, translation } = useContext(Context)\n const { assignUtils } = useAdditionalUtils()\n\n return useMemo(() => {\n const id = typeof messages === 'string' ? messages : undefined\n if (id) {\n return formatMessage(id, args, translation)\n }\n\n return assignUtils(\n combineWithExternalTranslations({\n translation,\n messages,\n locale,\n })\n )\n }, [messages, translation, locale, assignUtils, args])\n}\n\nexport type CombineWithExternalTranslationsArgs = {\n translation: Translation\n messages?: TranslationCustomLocales\n locale?: InternalLocale\n}\nexport type FormatMessage = {\n formatMessage: typeof formatMessage\n renderMessage: typeof renderMessage\n}\nexport type CombineWithExternalTranslationsReturn = Translation &\n TranslationCustomLocales &\n FormatMessage\n\nexport function useAdditionalUtils() {\n const translationsRef = useRef<CombineWithExternalTranslationsReturn>()\n\n const fM = useCallback(\n (id: TranslationId, args: TranslationArguments) => {\n return formatMessage(id, args, translationsRef.current)\n },\n []\n )\n\n const rM = useCallback((message: string) => {\n return renderMessage(message)\n }, [])\n\n const assignUtils = useCallback(\n (translations: CombineWithExternalTranslationsReturn) => {\n translationsRef.current = translations\n Object.assign(translations, { formatMessage: fM, renderMessage: rM })\n return translations\n },\n [fM, rM]\n )\n\n return { assignUtils }\n}\n\nexport function combineWithExternalTranslations({\n translation,\n messages,\n locale,\n}: CombineWithExternalTranslationsArgs): CombineWithExternalTranslationsReturn {\n let combined = {\n ...translation,\n } as CombineWithExternalTranslationsReturn\n\n if (messages) {\n if (Object.keys(defaultLocales).some((locale) => messages[locale])) {\n if (messages[locale]) {\n combined = messages[locale]\n }\n }\n\n for (const key in messages as TranslationCustomLocales) {\n combined[key] = { ...translation[key], ...messages[key] }\n }\n }\n\n return combined\n}\n\nexport function formatMessage(\n id: TranslationId | TranslationIdAsFunction,\n args?: TranslationArguments,\n messages?: TranslationCustomLocales\n) {\n let str = undefined\n\n if (typeof id === 'string') {\n let found = false\n if (messages[id]) {\n str = messages[id]\n found = true\n } else if (id?.includes?.('.')) {\n const keys = id.split('.')\n for (const key of keys) {\n if (messages[key]) {\n messages = messages[key]\n } else {\n break\n }\n }\n if (typeof messages === 'string') {\n str = messages\n found = true\n }\n }\n if (!found && typeof id === 'string') {\n str = id\n }\n } else if (typeof id === 'function') {\n str = id(messages)\n }\n\n if (typeof str === 'string') {\n for (const t in args) {\n str = str.replace(new RegExp(`{${t}}`, 'g'), args[t])\n }\n }\n\n return str ?? id\n}\n\nexport function renderMessage(\n text: string | Array<React.ReactNode>\n): string | React.ReactNode {\n let element = text\n\n if (typeof text === 'string') {\n element = text.split('{br}')\n }\n\n if (Array.isArray(element)) {\n return element.map((item, index) => (\n <Fragment key={index}>\n {item}\n <br />\n </Fragment>\n ))\n }\n\n return text\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useTranslation.js","names":["React","Fragment","useCallback","useContext","useMemo","useRef","Context","defaultLocales","useTranslation","messages","args","locale","translation","assignUtils","useAdditionalUtils","id","undefined","formatMessage","combineWithExternalTranslations","translationsRef","fM","current","rM","message","renderMessage","translations","Object","assign","combined","_objectSpread","keys","some","key","_str","str","_id$includes","found","includes","call","split","t","replace","RegExp","text","element","Array","isArray","map","item","index","createElement","_br"],"sources":["../../../src/shared/useTranslation.tsx"],"sourcesContent":["import React, {\n Fragment,\n useCallback,\n useContext,\n useMemo,\n useRef,\n} from 'react'\nimport Context, {\n Translation,\n TranslationLocale,\n TranslationCustomLocales,\n InternalLocale,\n} from './Context'\nimport defaultLocales from './locales'\n\nexport type TranslationId = string\nexport type TranslationIdAsFunction<T = TranslationCustomLocales> = (\n messages: T & Translation\n) => string\nexport type TranslationArguments = Record<TranslationId, unknown>\nexport type UseTranslationMessages<T = Translation> =\n | TranslationId\n | Translation\n | TranslationCustomLocales\n | Record<TranslationLocale, T>\n\nexport default function useTranslation<T = Translation>(\n messages?: UseTranslationMessages<T>,\n args?: TranslationArguments\n) {\n const { locale, translation } = useContext(Context)\n const { assignUtils } = useAdditionalUtils()\n\n return useMemo(() => {\n const id = typeof messages === 'string' ? messages : undefined\n if (id) {\n return formatMessage(id, args, translation)\n }\n\n return assignUtils(\n combineWithExternalTranslations({\n translation,\n messages,\n locale,\n })\n )\n }, [messages, translation, locale, assignUtils, args])\n}\n\nexport type CombineWithExternalTranslationsArgs = {\n translation: Translation\n messages?: TranslationCustomLocales\n locale?: InternalLocale\n}\nexport type AdditionalReturnUtils = {\n formatMessage: typeof formatMessage\n renderMessage: typeof renderMessage\n}\nexport type CombineWithExternalTranslationsReturn = Translation &\n TranslationCustomLocales &\n AdditionalReturnUtils\n\nexport function useAdditionalUtils() {\n const translationsRef = useRef<CombineWithExternalTranslationsReturn>()\n\n const fM = useCallback(\n (id: TranslationId, args: TranslationArguments) => {\n return formatMessage(id, args, translationsRef.current)\n },\n []\n )\n\n const rM = useCallback((message: string) => {\n return renderMessage(message)\n }, [])\n\n const assignUtils = useCallback(\n (translations: CombineWithExternalTranslationsReturn) => {\n translationsRef.current = translations\n Object.assign(translations, { formatMessage: fM, renderMessage: rM })\n return translations\n },\n [fM, rM]\n )\n\n return { assignUtils }\n}\n\nexport function combineWithExternalTranslations({\n translation,\n messages,\n locale,\n}: CombineWithExternalTranslationsArgs): CombineWithExternalTranslationsReturn {\n let combined = {\n ...translation,\n } as CombineWithExternalTranslationsReturn\n\n if (messages) {\n if (Object.keys(defaultLocales).some((locale) => messages[locale])) {\n if (messages[locale]) {\n combined = messages[locale]\n }\n }\n\n for (const key in messages as TranslationCustomLocales) {\n combined[key] = { ...translation[key], ...messages[key] }\n }\n }\n\n return combined\n}\n\nexport function formatMessage(\n id: TranslationId | TranslationIdAsFunction,\n args?: TranslationArguments,\n messages?: TranslationCustomLocales\n) {\n let str = undefined\n\n if (typeof id === 'string') {\n let found = false\n if (messages[id]) {\n str = messages[id]\n found = true\n } else if (id?.includes?.('.')) {\n const keys = id.split('.')\n for (const key of keys) {\n if (messages[key]) {\n messages = messages[key]\n } else {\n break\n }\n }\n if (typeof messages === 'string') {\n str = messages\n found = true\n }\n }\n if (!found && typeof id === 'string') {\n str = id\n }\n } else if (typeof id === 'function') {\n str = id(messages)\n }\n\n if (typeof str === 'string') {\n for (const t in args) {\n str = str.replace(new RegExp(`{${t}}`, 'g'), args[t])\n }\n }\n\n return str ?? id\n}\n\nexport function renderMessage(\n text: string | Array<React.ReactNode>\n): string | React.ReactNode {\n let element = text\n\n if (typeof text === 'string') {\n element = text.split('{br}')\n }\n\n if (Array.isArray(element)) {\n return element.map((item, index) => (\n <Fragment key={index}>\n {item}\n <br />\n </Fragment>\n ))\n }\n\n return text\n}\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IACVC,QAAQ,EACRC,WAAW,EACXC,UAAU,EACVC,OAAO,EACPC,MAAM,QACD,OAAO;AACd,OAAOC,OAAO,MAKP,WAAW;AAClB,OAAOC,cAAc,MAAM,WAAW;AAatC,eAAe,SAASC,cAAcA,CACpCC,QAAoC,EACpCC,IAA2B,EAC3B;EACA,MAAM;IAAEC,MAAM;IAAEC;EAAY,CAAC,GAAGT,UAAU,CAACG,OAAO,CAAC;EACnD,MAAM;IAAEO;EAAY,CAAC,GAAGC,kBAAkB,CAAC,CAAC;EAE5C,OAAOV,OAAO,CAAC,MAAM;IACnB,MAAMW,EAAE,GAAG,OAAON,QAAQ,KAAK,QAAQ,GAAGA,QAAQ,GAAGO,SAAS;IAC9D,IAAID,EAAE,EAAE;MACN,OAAOE,aAAa,CAACF,EAAE,EAAEL,IAAI,EAAEE,WAAW,CAAC;IAC7C;IAEA,OAAOC,WAAW,CAChBK,+BAA+B,CAAC;MAC9BN,WAAW;MACXH,QAAQ;MACRE;IACF,CAAC,CACH,CAAC;EACH,CAAC,EAAE,CAACF,QAAQ,EAAEG,WAAW,EAAED,MAAM,EAAEE,WAAW,EAAEH,IAAI,CAAC,CAAC;AACxD;AAeA,OAAO,SAASI,kBAAkBA,CAAA,EAAG;EACnC,MAAMK,eAAe,GAAGd,MAAM,CAAwC,CAAC;EAEvE,MAAMe,EAAE,GAAGlB,WAAW,CACpB,CAACa,EAAiB,EAAEL,IAA0B,KAAK;IACjD,OAAOO,aAAa,CAACF,EAAE,EAAEL,IAAI,EAAES,eAAe,CAACE,OAAO,CAAC;EACzD,CAAC,EACD,EACF,CAAC;EAED,MAAMC,EAAE,GAAGpB,WAAW,CAAEqB,OAAe,IAAK;IAC1C,OAAOC,aAAa,CAACD,OAAO,CAAC;EAC/B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMV,WAAW,GAAGX,WAAW,CAC5BuB,YAAmD,IAAK;IACvDN,eAAe,CAACE,OAAO,GAAGI,YAAY;IACtCC,MAAM,CAACC,MAAM,CAACF,YAAY,EAAE;MAAER,aAAa,EAAEG,EAAE;MAAEI,aAAa,EAAEF;IAAG,CAAC,CAAC;IACrE,OAAOG,YAAY;EACrB,CAAC,EACD,CAACL,EAAE,EAAEE,EAAE,CACT,CAAC;EAED,OAAO;IAAET;EAAY,CAAC;AACxB;AAEA,OAAO,SAASK,+BAA+BA,CAAC;EAC9CN,WAAW;EACXH,QAAQ;EACRE;AACmC,CAAC,EAAyC;EAC7E,IAAIiB,QAAQ,GAAAC,aAAA,KACPjB,WAAW,CAC0B;EAE1C,IAAIH,QAAQ,EAAE;IACZ,IAAIiB,MAAM,CAACI,IAAI,CAACvB,cAAc,CAAC,CAACwB,IAAI,CAAEpB,MAAM,IAAKF,QAAQ,CAACE,MAAM,CAAC,CAAC,EAAE;MAClE,IAAIF,QAAQ,CAACE,MAAM,CAAC,EAAE;QACpBiB,QAAQ,GAAGnB,QAAQ,CAACE,MAAM,CAAC;MAC7B;IACF;IAEA,KAAK,MAAMqB,GAAG,IAAIvB,QAAQ,EAA8B;MACtDmB,QAAQ,CAACI,GAAG,CAAC,GAAAH,aAAA,CAAAA,aAAA,KAAQjB,WAAW,CAACoB,GAAG,CAAC,GAAKvB,QAAQ,CAACuB,GAAG,CAAC,CAAE;IAC3D;EACF;EAEA,OAAOJ,QAAQ;AACjB;AAEA,OAAO,SAASX,aAAaA,CAC3BF,EAA2C,EAC3CL,IAA2B,EAC3BD,QAAmC,EACnC;EAAA,IAAAwB,IAAA;EACA,IAAIC,GAAG,GAAGlB,SAAS;EAEnB,IAAI,OAAOD,EAAE,KAAK,QAAQ,EAAE;IAAA,IAAAoB,YAAA;IAC1B,IAAIC,KAAK,GAAG,KAAK;IACjB,IAAI3B,QAAQ,CAACM,EAAE,CAAC,EAAE;MAChBmB,GAAG,GAAGzB,QAAQ,CAACM,EAAE,CAAC;MAClBqB,KAAK,GAAG,IAAI;IACd,CAAC,MAAM,IAAIrB,EAAE,aAAFA,EAAE,gBAAAoB,YAAA,GAAFpB,EAAE,CAAEsB,QAAQ,cAAAF,YAAA,eAAZA,YAAA,CAAAG,IAAA,CAAAvB,EAAE,EAAa,GAAG,CAAC,EAAE;MAC9B,MAAMe,IAAI,GAAGf,EAAE,CAACwB,KAAK,CAAC,GAAG,CAAC;MAC1B,KAAK,MAAMP,GAAG,IAAIF,IAAI,EAAE;QACtB,IAAIrB,QAAQ,CAACuB,GAAG,CAAC,EAAE;UACjBvB,QAAQ,GAAGA,QAAQ,CAACuB,GAAG,CAAC;QAC1B,CAAC,MAAM;UACL;QACF;MACF;MACA,IAAI,OAAOvB,QAAQ,KAAK,QAAQ,EAAE;QAChCyB,GAAG,GAAGzB,QAAQ;QACd2B,KAAK,GAAG,IAAI;MACd;IACF;IACA,IAAI,CAACA,KAAK,IAAI,OAAOrB,EAAE,KAAK,QAAQ,EAAE;MACpCmB,GAAG,GAAGnB,EAAE;IACV;EACF,CAAC,MAAM,IAAI,OAAOA,EAAE,KAAK,UAAU,EAAE;IACnCmB,GAAG,GAAGnB,EAAE,CAACN,QAAQ,CAAC;EACpB;EAEA,IAAI,OAAOyB,GAAG,KAAK,QAAQ,EAAE;IAC3B,KAAK,MAAMM,CAAC,IAAI9B,IAAI,EAAE;MACpBwB,GAAG,GAAGA,GAAG,CAACO,OAAO,CAAC,IAAIC,MAAM,CAAE,IAAGF,CAAE,GAAE,EAAE,GAAG,CAAC,EAAE9B,IAAI,CAAC8B,CAAC,CAAC,CAAC;IACvD;EACF;EAEA,QAAAP,IAAA,GAAOC,GAAG,cAAAD,IAAA,cAAAA,IAAA,GAAIlB,EAAE;AAClB;AAEA,OAAO,SAASS,aAAaA,CAC3BmB,IAAqC,EACX;EAC1B,IAAIC,OAAO,GAAGD,IAAI;EAElB,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5BC,OAAO,GAAGD,IAAI,CAACJ,KAAK,CAAC,MAAM,CAAC;EAC9B;EAEA,IAAIM,KAAK,CAACC,OAAO,CAACF,OAAO,CAAC,EAAE;IAC1B,OAAOA,OAAO,CAACG,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAC7BjD,KAAA,CAAAkD,aAAA,CAACjD,QAAQ;MAAC+B,GAAG,EAAEiB;IAAM,GAClBD,IAAI,EAAAG,GAAA,KAAAA,GAAA,GACLnD,KAAA,CAAAkD,aAAA,WAAK,CAAC,CACE,CACX,CAAC;EACJ;EAEA,OAAOP,IAAI;AACb"}