@fremtind/jokul 0.71.1 → 1.0.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 (588) hide show
  1. package/README.md +5 -37
  2. package/build/build-stats.html +1 -1
  3. package/build/cjs/components/autosuggest/BaseAutosuggest.cjs +1 -1
  4. package/build/cjs/components/autosuggest/BaseAutosuggest.cjs.map +1 -1
  5. package/build/cjs/components/autosuggest/Menu.cjs +1 -1
  6. package/build/cjs/components/autosuggest/Menu.cjs.map +1 -1
  7. package/build/cjs/components/button/Button.cjs +1 -1
  8. package/build/cjs/components/button/Button.cjs.map +1 -1
  9. package/build/cjs/components/card/index.cjs +1 -1
  10. package/build/cjs/components/card/index.d.cts +1 -4
  11. package/build/cjs/components/card/types.cjs +1 -1
  12. package/build/cjs/components/card/types.cjs.map +1 -1
  13. package/build/cjs/components/card/types.d.cts +0 -51
  14. package/build/cjs/components/checkbox-panel/CheckboxPanel.cjs +1 -1
  15. package/build/cjs/components/checkbox-panel/CheckboxPanel.cjs.map +1 -1
  16. package/build/cjs/components/combobox/Combobox.cjs +1 -1
  17. package/build/cjs/components/combobox/Combobox.cjs.map +1 -1
  18. package/build/cjs/components/combobox/stories/Combobox.stories.cjs +1 -1
  19. package/build/cjs/components/combobox/stories/Combobox.stories.cjs.map +1 -1
  20. package/build/cjs/components/combobox/stories/Combobox.stories.d.cts +1 -0
  21. package/build/cjs/components/cookie-consent/CookieConsent.cjs +1 -1
  22. package/build/cjs/components/cookie-consent/CookieConsent.cjs.map +1 -1
  23. package/build/cjs/components/datepicker/DatePicker.cjs +1 -1
  24. package/build/cjs/components/datepicker/DatePicker.cjs.map +1 -1
  25. package/build/cjs/components/datepicker/internal/Calendar.cjs +1 -1
  26. package/build/cjs/components/datepicker/internal/Calendar.cjs.map +1 -1
  27. package/build/cjs/components/datepicker/internal/utils.cjs +1 -1
  28. package/build/cjs/components/datepicker/internal/utils.cjs.map +1 -1
  29. package/build/cjs/components/datepicker/stories/Datepicker.stories.cjs +1 -1
  30. package/build/cjs/components/datepicker/stories/Datepicker.stories.cjs.map +1 -1
  31. package/build/cjs/components/datepicker/stories/Datepicker.stories.d.cts +13 -0
  32. package/build/cjs/components/description-list/stories/DescriptionList.stories.cjs +1 -1
  33. package/build/cjs/components/description-list/stories/DescriptionList.stories.cjs.map +1 -1
  34. package/build/cjs/components/expander/ExpandablePanel.cjs +1 -1
  35. package/build/cjs/components/expander/ExpandablePanel.cjs.map +1 -1
  36. package/build/cjs/components/expander/ExpandablePanelContent.cjs +1 -1
  37. package/build/cjs/components/expander/ExpandablePanelContent.cjs.map +1 -1
  38. package/build/cjs/components/expander/Expander.cjs +1 -1
  39. package/build/cjs/components/expander/Expander.cjs.map +1 -1
  40. package/build/cjs/components/expander/index.cjs +1 -1
  41. package/build/cjs/components/expander/index.d.cts +0 -1
  42. package/build/cjs/components/expander/stories/{ExpanderPanel.stories.cjs → ExpandablePanel.stories.cjs} +1 -1
  43. package/build/cjs/components/expander/stories/ExpandablePanel.stories.cjs.map +1 -0
  44. package/build/cjs/components/feedback/followup/Followup.cjs +1 -1
  45. package/build/cjs/components/feedback/followup/Followup.cjs.map +1 -1
  46. package/build/cjs/components/feedback/followup/useFollowup.cjs +1 -1
  47. package/build/cjs/components/feedback/followup/useFollowup.cjs.map +1 -1
  48. package/build/cjs/components/feedback/main-question/MainQuestion.cjs +1 -1
  49. package/build/cjs/components/feedback/main-question/MainQuestion.cjs.map +1 -1
  50. package/build/cjs/components/feedback/main-question/useMainQuestion.cjs +1 -1
  51. package/build/cjs/components/feedback/main-question/useMainQuestion.cjs.map +1 -1
  52. package/build/cjs/components/feedback/questions/AddonQuestion.cjs +1 -1
  53. package/build/cjs/components/feedback/questions/AddonQuestion.cjs.map +1 -1
  54. package/build/cjs/components/feedback/questions/CheckboxQuestion.cjs +1 -1
  55. package/build/cjs/components/feedback/questions/CheckboxQuestion.cjs.map +1 -1
  56. package/build/cjs/components/feedback/questions/ContactQuestion.cjs +1 -1
  57. package/build/cjs/components/feedback/questions/ContactQuestion.cjs.map +1 -1
  58. package/build/cjs/components/feedback/questions/RadioQuestion.cjs +1 -1
  59. package/build/cjs/components/feedback/questions/RadioQuestion.cjs.map +1 -1
  60. package/build/cjs/components/feedback/questions/SmileyQuestion.cjs +1 -1
  61. package/build/cjs/components/feedback/questions/SmileyQuestion.cjs.map +1 -1
  62. package/build/cjs/components/feedback/questions/TextQuestion.cjs +1 -1
  63. package/build/cjs/components/feedback/questions/TextQuestion.cjs.map +1 -1
  64. package/build/cjs/components/file/File.cjs.map +1 -1
  65. package/build/cjs/components/file/stories/File.stories.cjs.map +1 -1
  66. package/build/cjs/components/file/stories/File.stories.d.cts +1 -1
  67. package/build/cjs/components/file-input/FileInput.cjs.map +1 -1
  68. package/build/cjs/components/file-input/index.d.cts +1 -1
  69. package/build/cjs/components/file-input/internal/Dropzone.cjs.map +1 -1
  70. package/build/cjs/components/file-input/internal/Input.cjs.map +1 -1
  71. package/build/cjs/components/file-input/internal/fileInputContext.cjs.map +1 -1
  72. package/build/cjs/components/file-input/internal/validateFileInputFiles.cjs +1 -1
  73. package/build/cjs/components/file-input/internal/validateFileInputFiles.cjs.map +1 -1
  74. package/build/cjs/components/file-input/stories/FileInput.stories.cjs.map +1 -1
  75. package/build/cjs/components/icon/stories/Icons.stories.cjs +1 -1
  76. package/build/cjs/components/image/useImageLoadingStatus.cjs +1 -1
  77. package/build/cjs/components/image/useImageLoadingStatus.cjs.map +1 -1
  78. package/build/cjs/components/input-group/InputGroup.cjs +1 -1
  79. package/build/cjs/components/input-group/InputGroup.cjs.map +1 -1
  80. package/build/cjs/components/input-group/stories/FieldGroup.stories.cjs +1 -1
  81. package/build/cjs/components/link/stories/Link.stories.cjs +1 -1
  82. package/build/cjs/components/link/stories/Link.stories.cjs.map +1 -1
  83. package/build/cjs/components/menu/Menu.cjs +1 -1
  84. package/build/cjs/components/menu/Menu.cjs.map +1 -1
  85. package/build/cjs/components/menu/MenuItemCheckbox.cjs +1 -1
  86. package/build/cjs/components/menu/MenuItemCheckbox.cjs.map +1 -1
  87. package/build/cjs/components/message/Message.cjs +1 -1
  88. package/build/cjs/components/message/Message.cjs.map +1 -1
  89. package/build/cjs/components/modal/stories/ModalCloseButton.stories.d.cts +1 -1
  90. package/build/cjs/components/modal/stories/ModalOverlay.stories.cjs +1 -1
  91. package/build/cjs/components/modal/stories/ModalOverlay.stories.cjs.map +1 -1
  92. package/build/cjs/components/popover/Popover.cjs +1 -1
  93. package/build/cjs/components/popover/Popover.cjs.map +1 -1
  94. package/build/cjs/components/radio-panel/RadioPanel.cjs +1 -1
  95. package/build/cjs/components/radio-panel/RadioPanel.cjs.map +1 -1
  96. package/build/cjs/components/screen-reader-only/ScreenReaderOnly.cjs.map +1 -0
  97. package/build/cjs/components/screen-reader-only/ScreenReaderOnly.d.cts +3 -0
  98. package/build/cjs/components/screen-reader-only/index.cjs +2 -0
  99. package/build/cjs/components/screen-reader-only/index.d.cts +2 -0
  100. package/build/cjs/components/screen-reader-only/types.d.cts +4 -0
  101. package/build/cjs/components/select/Select.cjs +1 -1
  102. package/build/cjs/components/select/Select.cjs.map +1 -1
  103. package/build/cjs/components/select/select-utils.cjs +1 -1
  104. package/build/cjs/components/select/select-utils.cjs.map +1 -1
  105. package/build/cjs/components/system-message/SystemMessage.cjs +1 -1
  106. package/build/cjs/components/system-message/SystemMessage.cjs.map +1 -1
  107. package/build/cjs/components/table/TableHeader.cjs +1 -1
  108. package/build/cjs/components/table/TableHeader.cjs.map +1 -1
  109. package/build/cjs/components/table/TableRow.cjs +1 -1
  110. package/build/cjs/components/table/TableRow.cjs.map +1 -1
  111. package/build/cjs/components/table/stories/data.cjs +2 -0
  112. package/build/cjs/components/table/stories/data.cjs.map +1 -0
  113. package/build/cjs/components/table/stories/data.d.cts +8 -0
  114. package/build/cjs/components/table/stories/table.stories.cjs +1 -1
  115. package/build/cjs/components/table/stories/table.stories.cjs.map +1 -1
  116. package/build/cjs/components/table/stories/table.stories.d.cts +10 -1
  117. package/build/cjs/components/table/stories/tableCollapsing.stories.cjs +2 -0
  118. package/build/cjs/components/table/stories/tableCollapsing.stories.cjs.map +1 -0
  119. package/build/cjs/components/table/stories/tableCollapsing.stories.d.cts +16 -0
  120. package/build/cjs/components/table/stories/tableComplex.stories.cjs +2 -0
  121. package/build/cjs/components/table/stories/tableComplex.stories.cjs.map +1 -0
  122. package/build/cjs/components/table/stories/tableComplex.stories.d.cts +21 -0
  123. package/build/cjs/components/table/stories/tableFiltering.stories.cjs +2 -0
  124. package/build/cjs/components/table/stories/tableFiltering.stories.cjs.map +1 -0
  125. package/build/cjs/components/table/stories/tableFiltering.stories.d.cts +21 -0
  126. package/build/cjs/components/table/stories/tablePagination.stories.cjs +2 -0
  127. package/build/cjs/components/table/stories/tablePagination.stories.cjs.map +1 -0
  128. package/build/cjs/components/{accordion/stories/Accordion.stories.d.cts → table/stories/tablePagination.stories.d.cts} +2 -2
  129. package/build/cjs/components/tabs/NavTab.cjs +1 -1
  130. package/build/cjs/components/tabs/NavTab.cjs.map +1 -1
  131. package/build/cjs/components/tabs/NavTabs.cjs +1 -1
  132. package/build/cjs/components/tabs/NavTabs.cjs.map +1 -1
  133. package/build/cjs/components/tabs/TabList.cjs +1 -1
  134. package/build/cjs/components/tabs/TabList.cjs.map +1 -1
  135. package/build/cjs/components/text-area/BaseTextArea.cjs +1 -1
  136. package/build/cjs/components/text-area/BaseTextArea.cjs.map +1 -1
  137. package/build/cjs/components/toast/Toast.cjs +1 -1
  138. package/build/cjs/components/toast/Toast.cjs.map +1 -1
  139. package/build/cjs/components/toast/toastContext.cjs +1 -1
  140. package/build/cjs/components/toast/toastContext.cjs.map +1 -1
  141. package/build/cjs/components/toggle-switch/ToggleSwitch.cjs +1 -1
  142. package/build/cjs/components/toggle-switch/ToggleSwitch.cjs.map +1 -1
  143. package/build/cjs/components/toggle-switch/usePillStyles.cjs +1 -1
  144. package/build/cjs/components/toggle-switch/usePillStyles.cjs.map +1 -1
  145. package/build/cjs/components/tooltip/PopupTip.cjs +1 -1
  146. package/build/cjs/components/tooltip/PopupTip.cjs.map +1 -1
  147. package/build/cjs/components/tooltip/Tooltip.cjs +1 -1
  148. package/build/cjs/components/tooltip/Tooltip.cjs.map +1 -1
  149. package/build/cjs/components/tooltip/TooltipTrigger.cjs +1 -1
  150. package/build/cjs/components/tooltip/TooltipTrigger.cjs.map +1 -1
  151. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs +1 -1
  152. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeight.cjs.map +1 -1
  153. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs +1 -1
  154. package/build/cjs/hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs.map +1 -1
  155. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs +1 -1
  156. package/build/cjs/hooks/useAnimatedHeight/useAutoAnimateHeight.cjs.map +1 -1
  157. package/build/cjs/hooks/useAriaLiveRegion/useAriaLiveRegion.cjs +1 -1
  158. package/build/cjs/hooks/useAriaLiveRegion/useAriaLiveRegion.cjs.map +1 -1
  159. package/build/cjs/hooks/useAriaLiveRegion/useAriaLiveRegion.d.cts +1 -1
  160. package/build/cjs/hooks/useClickOutside/useClickOutside.cjs +1 -1
  161. package/build/cjs/hooks/useClickOutside/useClickOutside.cjs.map +1 -1
  162. package/build/cjs/hooks/useElementDimensions/useElementDimensions.cjs +1 -1
  163. package/build/cjs/hooks/useElementDimensions/useElementDimensions.cjs.map +1 -1
  164. package/build/cjs/hooks/useFocusOutside/useFocusOutside.cjs +1 -1
  165. package/build/cjs/hooks/useFocusOutside/useFocusOutside.cjs.map +1 -1
  166. package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs +1 -1
  167. package/build/cjs/hooks/useIntersectionObserver/useIntersectionObserver.cjs.map +1 -1
  168. package/build/cjs/hooks/useKeyListener/useKeyListener.cjs +1 -1
  169. package/build/cjs/hooks/useKeyListener/useKeyListener.cjs.map +1 -1
  170. package/build/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs +1 -1
  171. package/build/cjs/hooks/useScrollIntoView/useScrollIntoView.cjs.map +1 -1
  172. package/build/cjs/hooks/useSwipeGesture/useSwipeGesture.cjs +1 -1
  173. package/build/cjs/hooks/useSwipeGesture/useSwipeGesture.cjs.map +1 -1
  174. package/build/cjs/index.cjs +1 -1
  175. package/build/cjs/index.d.cts +0 -1
  176. package/build/cjs/utilities/formatters/date/formatDate.cjs +1 -1
  177. package/build/cjs/utilities/formatters/date/formatDate.cjs.map +1 -1
  178. package/build/cjs/utilities/formatters/fodselsnummer/formatFodselsnummer.cjs +1 -1
  179. package/build/cjs/utilities/formatters/fodselsnummer/formatFodselsnummer.cjs.map +1 -1
  180. package/build/cjs/utilities/formatters/kontonummer/formatKontonummer.cjs +1 -1
  181. package/build/cjs/utilities/formatters/kontonummer/formatKontonummer.cjs.map +1 -1
  182. package/build/cjs/utilities/formatters/kortnummer/formatKortnummer.cjs +1 -1
  183. package/build/cjs/utilities/formatters/kortnummer/formatKortnummer.cjs.map +1 -1
  184. package/build/cjs/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.cjs +1 -1
  185. package/build/cjs/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.cjs.map +1 -1
  186. package/build/cjs/utilities/formatters/telefonnummer/formatTelefonnummer.cjs +1 -1
  187. package/build/cjs/utilities/formatters/telefonnummer/formatTelefonnummer.cjs.map +1 -1
  188. package/build/cjs/utilities/formatters/util/registerWithMask.cjs +1 -1
  189. package/build/cjs/utilities/formatters/util/registerWithMask.cjs.map +1 -1
  190. package/build/cjs/utilities/formatters/valuta/formatValuta.cjs +1 -1
  191. package/build/cjs/utilities/formatters/valuta/formatValuta.cjs.map +1 -1
  192. package/build/cjs/utilities/tabListener.cjs +1 -1
  193. package/build/cjs/utilities/tabListener.cjs.map +1 -1
  194. package/build/cjs/utilities/validators/hasMinimumWords/hasMinimumWords.cjs +1 -1
  195. package/build/cjs/utilities/validators/hasMinimumWords/hasMinimumWords.cjs.map +1 -1
  196. package/build/es/components/autosuggest/BaseAutosuggest.js +2 -2
  197. package/build/es/components/autosuggest/BaseAutosuggest.js.map +1 -1
  198. package/build/es/components/autosuggest/Menu.js +1 -1
  199. package/build/es/components/autosuggest/Menu.js.map +1 -1
  200. package/build/es/components/button/Button.js +1 -1
  201. package/build/es/components/button/Button.js.map +1 -1
  202. package/build/es/components/card/index.d.ts +1 -4
  203. package/build/es/components/card/index.js +1 -1
  204. package/build/es/components/card/types.d.ts +0 -51
  205. package/build/es/components/card/types.js +1 -1
  206. package/build/es/components/card/types.js.map +1 -1
  207. package/build/es/components/checkbox-panel/CheckboxPanel.js +1 -1
  208. package/build/es/components/checkbox-panel/CheckboxPanel.js.map +1 -1
  209. package/build/es/components/combobox/Combobox.js +1 -1
  210. package/build/es/components/combobox/Combobox.js.map +1 -1
  211. package/build/es/components/combobox/stories/Combobox.stories.d.ts +1 -0
  212. package/build/es/components/combobox/stories/Combobox.stories.js +1 -1
  213. package/build/es/components/combobox/stories/Combobox.stories.js.map +1 -1
  214. package/build/es/components/cookie-consent/CookieConsent.js +1 -1
  215. package/build/es/components/cookie-consent/CookieConsent.js.map +1 -1
  216. package/build/es/components/datepicker/DatePicker.js +1 -1
  217. package/build/es/components/datepicker/DatePicker.js.map +1 -1
  218. package/build/es/components/datepicker/internal/Calendar.js +1 -1
  219. package/build/es/components/datepicker/internal/Calendar.js.map +1 -1
  220. package/build/es/components/datepicker/internal/utils.js +1 -1
  221. package/build/es/components/datepicker/internal/utils.js.map +1 -1
  222. package/build/es/components/datepicker/stories/Datepicker.stories.d.ts +13 -0
  223. package/build/es/components/datepicker/stories/Datepicker.stories.js +1 -1
  224. package/build/es/components/datepicker/stories/Datepicker.stories.js.map +1 -1
  225. package/build/es/components/description-list/stories/DescriptionList.stories.js +1 -1
  226. package/build/es/components/description-list/stories/DescriptionList.stories.js.map +1 -1
  227. package/build/es/components/expander/ExpandablePanel.js +1 -1
  228. package/build/es/components/expander/ExpandablePanel.js.map +1 -1
  229. package/build/es/components/expander/ExpandablePanelContent.js +1 -1
  230. package/build/es/components/expander/ExpandablePanelContent.js.map +1 -1
  231. package/build/es/components/expander/Expander.js +1 -1
  232. package/build/es/components/expander/Expander.js.map +1 -1
  233. package/build/es/components/expander/index.d.ts +0 -1
  234. package/build/es/components/expander/index.js +1 -1
  235. package/build/es/components/expander/stories/{ExpanderPanel.stories.js → ExpandablePanel.stories.js} +1 -1
  236. package/build/es/components/expander/stories/ExpandablePanel.stories.js.map +1 -0
  237. package/build/es/components/feedback/followup/Followup.js +1 -1
  238. package/build/es/components/feedback/followup/Followup.js.map +1 -1
  239. package/build/es/components/feedback/followup/useFollowup.js +1 -1
  240. package/build/es/components/feedback/followup/useFollowup.js.map +1 -1
  241. package/build/es/components/feedback/main-question/MainQuestion.js +1 -1
  242. package/build/es/components/feedback/main-question/MainQuestion.js.map +1 -1
  243. package/build/es/components/feedback/main-question/useMainQuestion.js +1 -1
  244. package/build/es/components/feedback/main-question/useMainQuestion.js.map +1 -1
  245. package/build/es/components/feedback/questions/AddonQuestion.js +1 -1
  246. package/build/es/components/feedback/questions/AddonQuestion.js.map +1 -1
  247. package/build/es/components/feedback/questions/CheckboxQuestion.js +1 -1
  248. package/build/es/components/feedback/questions/CheckboxQuestion.js.map +1 -1
  249. package/build/es/components/feedback/questions/ContactQuestion.js +1 -1
  250. package/build/es/components/feedback/questions/ContactQuestion.js.map +1 -1
  251. package/build/es/components/feedback/questions/RadioQuestion.js +1 -1
  252. package/build/es/components/feedback/questions/RadioQuestion.js.map +1 -1
  253. package/build/es/components/feedback/questions/SmileyQuestion.js +1 -1
  254. package/build/es/components/feedback/questions/SmileyQuestion.js.map +1 -1
  255. package/build/es/components/feedback/questions/TextQuestion.js +1 -1
  256. package/build/es/components/feedback/questions/TextQuestion.js.map +1 -1
  257. package/build/es/components/file/File.js.map +1 -1
  258. package/build/es/components/file/stories/File.stories.d.ts +1 -1
  259. package/build/es/components/file/stories/File.stories.js.map +1 -1
  260. package/build/es/components/file-input/FileInput.js.map +1 -1
  261. package/build/es/components/file-input/index.d.ts +1 -1
  262. package/build/es/components/file-input/internal/Dropzone.js.map +1 -1
  263. package/build/es/components/file-input/internal/Input.js.map +1 -1
  264. package/build/es/components/file-input/internal/fileInputContext.js.map +1 -1
  265. package/build/es/components/file-input/internal/validateFileInputFiles.js +1 -1
  266. package/build/es/components/file-input/internal/validateFileInputFiles.js.map +1 -1
  267. package/build/es/components/file-input/stories/FileInput.stories.js.map +1 -1
  268. package/build/es/components/icon/stories/Icons.stories.js +1 -1
  269. package/build/es/components/image/useImageLoadingStatus.js +1 -1
  270. package/build/es/components/image/useImageLoadingStatus.js.map +1 -1
  271. package/build/es/components/input-group/InputGroup.js +1 -1
  272. package/build/es/components/input-group/InputGroup.js.map +1 -1
  273. package/build/es/components/link/stories/Link.stories.js +1 -1
  274. package/build/es/components/link/stories/Link.stories.js.map +1 -1
  275. package/build/es/components/loader/stories/Skeleton.stories.js +1 -1
  276. package/build/es/components/menu/Menu.js +1 -1
  277. package/build/es/components/menu/Menu.js.map +1 -1
  278. package/build/es/components/menu/MenuItemCheckbox.js +1 -1
  279. package/build/es/components/menu/MenuItemCheckbox.js.map +1 -1
  280. package/build/es/components/message/Message.js +1 -1
  281. package/build/es/components/message/Message.js.map +1 -1
  282. package/build/es/components/modal/stories/ModalCloseButton.stories.d.ts +1 -1
  283. package/build/es/components/modal/stories/ModalOverlay.stories.js +1 -1
  284. package/build/es/components/modal/stories/ModalOverlay.stories.js.map +1 -1
  285. package/build/es/components/popover/Popover.js +1 -1
  286. package/build/es/components/popover/Popover.js.map +1 -1
  287. package/build/es/components/radio-panel/RadioPanel.js +1 -1
  288. package/build/es/components/radio-panel/RadioPanel.js.map +1 -1
  289. package/build/es/components/screen-reader-only/ScreenReaderOnly.d.ts +3 -0
  290. package/build/es/components/screen-reader-only/ScreenReaderOnly.js.map +1 -0
  291. package/build/es/components/screen-reader-only/index.d.ts +2 -0
  292. package/build/es/components/screen-reader-only/index.js +2 -0
  293. package/build/es/components/screen-reader-only/types.d.ts +4 -0
  294. package/build/es/components/select/Select.js +1 -1
  295. package/build/es/components/select/Select.js.map +1 -1
  296. package/build/es/components/select/select-utils.js +1 -1
  297. package/build/es/components/select/select-utils.js.map +1 -1
  298. package/build/es/components/system-message/SystemMessage.js +1 -1
  299. package/build/es/components/system-message/SystemMessage.js.map +1 -1
  300. package/build/es/components/table/TableHeader.js +1 -1
  301. package/build/es/components/table/TableHeader.js.map +1 -1
  302. package/build/es/components/table/TableRow.js +1 -1
  303. package/build/es/components/table/TableRow.js.map +1 -1
  304. package/build/es/components/table/stories/data.d.ts +8 -0
  305. package/build/es/components/table/stories/data.js +2 -0
  306. package/build/es/components/table/stories/data.js.map +1 -0
  307. package/build/es/components/table/stories/table.stories.d.ts +10 -1
  308. package/build/es/components/table/stories/table.stories.js +1 -1
  309. package/build/es/components/table/stories/table.stories.js.map +1 -1
  310. package/build/es/components/table/stories/tableCollapsing.stories.d.ts +16 -0
  311. package/build/es/components/table/stories/tableCollapsing.stories.js +2 -0
  312. package/build/es/components/table/stories/tableCollapsing.stories.js.map +1 -0
  313. package/build/es/components/table/stories/tableComplex.stories.d.ts +21 -0
  314. package/build/es/components/table/stories/tableComplex.stories.js +2 -0
  315. package/build/es/components/table/stories/tableComplex.stories.js.map +1 -0
  316. package/build/es/components/table/stories/tableFiltering.stories.d.ts +21 -0
  317. package/build/es/components/table/stories/tableFiltering.stories.js +2 -0
  318. package/build/es/components/table/stories/tableFiltering.stories.js.map +1 -0
  319. package/build/{cjs/components/accordion/stories/AccordionItem.stories.d.cts → es/components/table/stories/tablePagination.stories.d.ts} +2 -2
  320. package/build/es/components/table/stories/tablePagination.stories.js +2 -0
  321. package/build/es/components/table/stories/tablePagination.stories.js.map +1 -0
  322. package/build/es/components/tabs/NavTab.js +1 -1
  323. package/build/es/components/tabs/NavTab.js.map +1 -1
  324. package/build/es/components/tabs/NavTabs.js +1 -1
  325. package/build/es/components/tabs/NavTabs.js.map +1 -1
  326. package/build/es/components/tabs/TabList.js +1 -1
  327. package/build/es/components/tabs/TabList.js.map +1 -1
  328. package/build/es/components/text-area/BaseTextArea.js +1 -1
  329. package/build/es/components/text-area/BaseTextArea.js.map +1 -1
  330. package/build/es/components/toast/Toast.js +1 -1
  331. package/build/es/components/toast/Toast.js.map +1 -1
  332. package/build/es/components/toast/toastContext.js +1 -1
  333. package/build/es/components/toast/toastContext.js.map +1 -1
  334. package/build/es/components/toggle-switch/ToggleSwitch.js +1 -1
  335. package/build/es/components/toggle-switch/ToggleSwitch.js.map +1 -1
  336. package/build/es/components/toggle-switch/usePillStyles.js +1 -1
  337. package/build/es/components/toggle-switch/usePillStyles.js.map +1 -1
  338. package/build/es/components/tooltip/PopupTip.js +1 -1
  339. package/build/es/components/tooltip/PopupTip.js.map +1 -1
  340. package/build/es/components/tooltip/Tooltip.js +1 -1
  341. package/build/es/components/tooltip/Tooltip.js.map +1 -1
  342. package/build/es/components/tooltip/TooltipTrigger.js +1 -1
  343. package/build/es/components/tooltip/TooltipTrigger.js.map +1 -1
  344. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js +1 -1
  345. package/build/es/hooks/useAnimatedHeight/useAnimatedHeight.js.map +1 -1
  346. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js +1 -1
  347. package/build/es/hooks/useAnimatedHeight/useAnimatedHeightBetween.js.map +1 -1
  348. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js +1 -1
  349. package/build/es/hooks/useAnimatedHeight/useAutoAnimateHeight.js.map +1 -1
  350. package/build/es/hooks/useAriaLiveRegion/useAriaLiveRegion.d.ts +1 -1
  351. package/build/es/hooks/useAriaLiveRegion/useAriaLiveRegion.js +1 -1
  352. package/build/es/hooks/useAriaLiveRegion/useAriaLiveRegion.js.map +1 -1
  353. package/build/es/hooks/useClickOutside/useClickOutside.js +1 -1
  354. package/build/es/hooks/useClickOutside/useClickOutside.js.map +1 -1
  355. package/build/es/hooks/useElementDimensions/useElementDimensions.js +1 -1
  356. package/build/es/hooks/useElementDimensions/useElementDimensions.js.map +1 -1
  357. package/build/es/hooks/useFocusOutside/useFocusOutside.js +1 -1
  358. package/build/es/hooks/useFocusOutside/useFocusOutside.js.map +1 -1
  359. package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.js +1 -1
  360. package/build/es/hooks/useIntersectionObserver/useIntersectionObserver.js.map +1 -1
  361. package/build/es/hooks/useKeyListener/useKeyListener.js +1 -1
  362. package/build/es/hooks/useKeyListener/useKeyListener.js.map +1 -1
  363. package/build/es/hooks/useScrollIntoView/useScrollIntoView.js +1 -1
  364. package/build/es/hooks/useScrollIntoView/useScrollIntoView.js.map +1 -1
  365. package/build/es/hooks/useSwipeGesture/useSwipeGesture.js +1 -1
  366. package/build/es/hooks/useSwipeGesture/useSwipeGesture.js.map +1 -1
  367. package/build/es/index.d.ts +0 -1
  368. package/build/es/index.js +1 -1
  369. package/build/es/utilities/formatters/date/formatDate.js +1 -1
  370. package/build/es/utilities/formatters/date/formatDate.js.map +1 -1
  371. package/build/es/utilities/formatters/fodselsnummer/formatFodselsnummer.js +1 -1
  372. package/build/es/utilities/formatters/fodselsnummer/formatFodselsnummer.js.map +1 -1
  373. package/build/es/utilities/formatters/kontonummer/formatKontonummer.js +1 -1
  374. package/build/es/utilities/formatters/kontonummer/formatKontonummer.js.map +1 -1
  375. package/build/es/utilities/formatters/kortnummer/formatKortnummer.js +1 -1
  376. package/build/es/utilities/formatters/kortnummer/formatKortnummer.js.map +1 -1
  377. package/build/es/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.js +1 -1
  378. package/build/es/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.js.map +1 -1
  379. package/build/es/utilities/formatters/telefonnummer/formatTelefonnummer.js +1 -1
  380. package/build/es/utilities/formatters/telefonnummer/formatTelefonnummer.js.map +1 -1
  381. package/build/es/utilities/formatters/util/registerWithMask.js +1 -1
  382. package/build/es/utilities/formatters/util/registerWithMask.js.map +1 -1
  383. package/build/es/utilities/formatters/valuta/formatValuta.js +1 -1
  384. package/build/es/utilities/formatters/valuta/formatValuta.js.map +1 -1
  385. package/build/es/utilities/tabListener.js +1 -1
  386. package/build/es/utilities/tabListener.js.map +1 -1
  387. package/build/es/utilities/validators/hasMinimumWords/hasMinimumWords.js +1 -1
  388. package/build/es/utilities/validators/hasMinimumWords/hasMinimumWords.js.map +1 -1
  389. package/build/jokul.css +1 -1
  390. package/build/paginated-table-data-VQZB3_Aj.cjs +2 -0
  391. package/build/paginated-table-data-VQZB3_Aj.cjs.map +1 -0
  392. package/build/paginated-table-data-ZMeh4d0Y.js +2 -0
  393. package/build/paginated-table-data-ZMeh4d0Y.js.map +1 -0
  394. package/package.json +61 -81
  395. package/styles/components/autosuggest/autosuggest.scss +4 -4
  396. package/styles/components/card/card.css +0 -248
  397. package/styles/components/card/card.min.css +1 -1
  398. package/styles/components/card/card.scss +0 -3
  399. package/styles/components/checkbox/checkbox.css +4 -4
  400. package/styles/components/checkbox/checkbox.min.css +1 -1
  401. package/styles/components/checkbox-panel/checkbox-panel.css +2 -2
  402. package/styles/components/checkbox-panel/checkbox-panel.min.css +1 -1
  403. package/styles/components/chip/chip.css +9 -1
  404. package/styles/components/chip/chip.min.css +1 -1
  405. package/styles/components/chip/chip.scss +8 -1
  406. package/styles/components/combobox/combobox.css +17 -19
  407. package/styles/components/combobox/combobox.min.css +1 -1
  408. package/styles/components/combobox/combobox.scss +18 -18
  409. package/styles/components/countdown/countdown.css +2 -2
  410. package/styles/components/countdown/countdown.min.css +1 -1
  411. package/styles/components/datepicker/_index.scss +1 -0
  412. package/styles/components/description-list/description-list.scss +7 -7
  413. package/styles/components/expander/_index.scss +0 -1
  414. package/styles/components/feedback/feedback.css +2 -2
  415. package/styles/components/feedback/feedback.min.css +1 -1
  416. package/styles/components/feedback/feedback.scss +4 -3
  417. package/styles/components/file-input/file-input.css +13 -14
  418. package/styles/components/file-input/file-input.min.css +1 -1
  419. package/styles/components/input-group/_labels.scss +21 -21
  420. package/styles/components/input-group/input-group.css +2 -2
  421. package/styles/components/input-group/input-group.min.css +1 -1
  422. package/styles/components/link/link.css +2 -3
  423. package/styles/components/link/link.min.css +1 -1
  424. package/styles/components/link/link.scss +3 -2
  425. package/styles/components/loader/loader.css +6 -6
  426. package/styles/components/loader/loader.min.css +1 -1
  427. package/styles/components/loader/skeleton-loader.css +5 -5
  428. package/styles/components/loader/skeleton-loader.min.css +1 -1
  429. package/styles/components/loader/skeleton-loader.scss +10 -10
  430. package/styles/components/menu/menu.css +5 -5
  431. package/styles/components/menu/menu.min.css +1 -1
  432. package/styles/components/menu/menu.scss +3 -3
  433. package/styles/components/message/message.css +2 -2
  434. package/styles/components/message/message.min.css +1 -1
  435. package/styles/components/progress-bar/progress-bar.css +1 -1
  436. package/styles/components/progress-bar/progress-bar.min.css +1 -1
  437. package/styles/components/radio-button/radio-button.css +4 -3
  438. package/styles/components/radio-button/radio-button.min.css +1 -1
  439. package/styles/components/radio-button/radio-button.scss +18 -19
  440. package/styles/components/radio-panel/radio-panel.css +2 -2
  441. package/styles/components/radio-panel/radio-panel.min.css +1 -1
  442. package/styles/components/summary-table/summary-table.scss +3 -3
  443. package/styles/components/system-message/system-message.css +2 -2
  444. package/styles/components/system-message/system-message.min.css +1 -1
  445. package/styles/components/system-message/system-message.scss +8 -8
  446. package/styles/components/table/_table-cell.scss +4 -4
  447. package/styles/components/table/_table-header.scss +4 -2
  448. package/styles/components/table/_table-row.scss +13 -12
  449. package/styles/components/table/table.css +13 -11
  450. package/styles/components/text-area/text-area.css +6 -4
  451. package/styles/components/text-area/text-area.min.css +5 -1
  452. package/styles/components/text-input/text-input.css +6 -4
  453. package/styles/components/text-input/text-input.min.css +5 -1
  454. package/styles/components/toast/toast.css +4 -4
  455. package/styles/components/toast/toast.min.css +1 -1
  456. package/styles/components/toggle-switch/_toggle-slider.scss +2 -2
  457. package/styles/core/core.css +0 -160
  458. package/styles/core/core.min.css +1 -1
  459. package/styles/core/jkl/_spacing.scss +1 -62
  460. package/styles/core/jkl/_typography.scss +21 -91
  461. package/styles/shared/input/shared-input-styles.css +6 -4
  462. package/styles/shared/input/shared-input-styles.min.css +5 -1
  463. package/styles/shared/input/shared-input-styles.scss +15 -11
  464. package/styles/styles.css +265 -766
  465. package/styles/styles.min.css +5 -7
  466. package/styles/styles.scss +0 -1
  467. package/build/cjs/components/ScreenReaderOnly.cjs.map +0 -1
  468. package/build/cjs/components/ScreenReaderOnly.d.cts +0 -6
  469. package/build/cjs/components/accordion/Accordion.cjs +0 -2
  470. package/build/cjs/components/accordion/Accordion.cjs.map +0 -1
  471. package/build/cjs/components/accordion/Accordion.d.cts +0 -7
  472. package/build/cjs/components/accordion/AccordionItem.cjs +0 -2
  473. package/build/cjs/components/accordion/AccordionItem.cjs.map +0 -1
  474. package/build/cjs/components/accordion/AccordionItem.d.cts +0 -7
  475. package/build/cjs/components/accordion/documentation/AccordionDocs.cjs +0 -2
  476. package/build/cjs/components/accordion/documentation/AccordionDocs.cjs.map +0 -1
  477. package/build/cjs/components/accordion/documentation/AccordionDocs.d.cts +0 -2
  478. package/build/cjs/components/accordion/index.cjs +0 -2
  479. package/build/cjs/components/accordion/index.d.cts +0 -3
  480. package/build/cjs/components/accordion/stories/Accordion.stories.cjs +0 -2
  481. package/build/cjs/components/accordion/stories/Accordion.stories.cjs.map +0 -1
  482. package/build/cjs/components/accordion/stories/AccordionItem.stories.cjs +0 -2
  483. package/build/cjs/components/accordion/stories/AccordionItem.stories.cjs.map +0 -1
  484. package/build/cjs/components/accordion/types.d.cts +0 -13
  485. package/build/cjs/components/accordion/vite-env.d.cjs +0 -2
  486. package/build/cjs/components/accordion/vite-env.d.cjs.map +0 -1
  487. package/build/cjs/components/card/InfoCard.cjs +0 -2
  488. package/build/cjs/components/card/InfoCard.cjs.map +0 -1
  489. package/build/cjs/components/card/InfoCard.d.cts +0 -13
  490. package/build/cjs/components/card/NavCard.cjs +0 -2
  491. package/build/cjs/components/card/NavCard.cjs.map +0 -1
  492. package/build/cjs/components/card/NavCard.d.cts +0 -26
  493. package/build/cjs/components/card/TaskCard.cjs +0 -2
  494. package/build/cjs/components/card/TaskCard.cjs.map +0 -1
  495. package/build/cjs/components/card/TaskCard.d.cts +0 -23
  496. package/build/cjs/components/card/development/examples/InfoCardExample.d.cts +0 -3
  497. package/build/cjs/components/card/development/examples/NavCardExample.d.cts +0 -3
  498. package/build/cjs/components/card/development/examples/TaskCardExample.d.cts +0 -3
  499. package/build/cjs/components/card/development/examples/TopExample.d.cts +0 -3
  500. package/build/cjs/components/card/development/examples/cardExampleProps.d.cts +0 -13
  501. package/build/cjs/components/card/utils.cjs +0 -2
  502. package/build/cjs/components/card/utils.cjs.map +0 -1
  503. package/build/cjs/components/card/utils.d.cts +0 -3
  504. package/build/cjs/components/expander/deprecated/ExpandSection.cjs +0 -2
  505. package/build/cjs/components/expander/deprecated/ExpandSection.cjs.map +0 -1
  506. package/build/cjs/components/expander/deprecated/ExpandSection.d.cts +0 -26
  507. package/build/cjs/components/expander/deprecated/Expander.cjs +0 -2
  508. package/build/cjs/components/expander/deprecated/Expander.cjs.map +0 -1
  509. package/build/cjs/components/expander/deprecated/Expander.d.cts +0 -27
  510. package/build/cjs/components/expander/stories/ExpanderPanel.stories.cjs.map +0 -1
  511. package/build/cjs/components/index.cjs +0 -2
  512. package/build/cjs/components/index.cjs.map +0 -1
  513. package/build/cjs/components/index.d.cts +0 -47
  514. package/build/es/components/ScreenReaderOnly.d.ts +0 -6
  515. package/build/es/components/ScreenReaderOnly.js.map +0 -1
  516. package/build/es/components/accordion/Accordion.d.ts +0 -7
  517. package/build/es/components/accordion/Accordion.js +0 -2
  518. package/build/es/components/accordion/Accordion.js.map +0 -1
  519. package/build/es/components/accordion/AccordionItem.d.ts +0 -7
  520. package/build/es/components/accordion/AccordionItem.js +0 -2
  521. package/build/es/components/accordion/AccordionItem.js.map +0 -1
  522. package/build/es/components/accordion/documentation/AccordionDocs.d.ts +0 -2
  523. package/build/es/components/accordion/documentation/AccordionDocs.js +0 -2
  524. package/build/es/components/accordion/documentation/AccordionDocs.js.map +0 -1
  525. package/build/es/components/accordion/index.d.ts +0 -3
  526. package/build/es/components/accordion/index.js +0 -2
  527. package/build/es/components/accordion/stories/Accordion.stories.d.ts +0 -13
  528. package/build/es/components/accordion/stories/Accordion.stories.js +0 -2
  529. package/build/es/components/accordion/stories/Accordion.stories.js.map +0 -1
  530. package/build/es/components/accordion/stories/AccordionItem.stories.d.ts +0 -13
  531. package/build/es/components/accordion/stories/AccordionItem.stories.js +0 -2
  532. package/build/es/components/accordion/stories/AccordionItem.stories.js.map +0 -1
  533. package/build/es/components/accordion/types.d.ts +0 -13
  534. package/build/es/components/accordion/vite-env.d.js +0 -2
  535. package/build/es/components/accordion/vite-env.d.js.map +0 -1
  536. package/build/es/components/card/InfoCard.d.ts +0 -13
  537. package/build/es/components/card/InfoCard.js +0 -2
  538. package/build/es/components/card/InfoCard.js.map +0 -1
  539. package/build/es/components/card/NavCard.d.ts +0 -26
  540. package/build/es/components/card/NavCard.js +0 -2
  541. package/build/es/components/card/NavCard.js.map +0 -1
  542. package/build/es/components/card/TaskCard.d.ts +0 -23
  543. package/build/es/components/card/TaskCard.js +0 -2
  544. package/build/es/components/card/TaskCard.js.map +0 -1
  545. package/build/es/components/card/development/examples/InfoCardExample.d.ts +0 -3
  546. package/build/es/components/card/development/examples/NavCardExample.d.ts +0 -3
  547. package/build/es/components/card/development/examples/TaskCardExample.d.ts +0 -3
  548. package/build/es/components/card/development/examples/TopExample.d.ts +0 -3
  549. package/build/es/components/card/development/examples/cardExampleProps.d.ts +0 -13
  550. package/build/es/components/card/utils.d.ts +0 -3
  551. package/build/es/components/card/utils.js +0 -2
  552. package/build/es/components/card/utils.js.map +0 -1
  553. package/build/es/components/expander/deprecated/ExpandSection.d.ts +0 -26
  554. package/build/es/components/expander/deprecated/ExpandSection.js +0 -2
  555. package/build/es/components/expander/deprecated/ExpandSection.js.map +0 -1
  556. package/build/es/components/expander/deprecated/Expander.d.ts +0 -27
  557. package/build/es/components/expander/deprecated/Expander.js +0 -2
  558. package/build/es/components/expander/deprecated/Expander.js.map +0 -1
  559. package/build/es/components/expander/stories/ExpanderPanel.stories.js.map +0 -1
  560. package/build/es/components/index.d.ts +0 -47
  561. package/build/es/components/index.js +0 -2
  562. package/build/es/components/index.js.map +0 -1
  563. package/styles/components/accordion/_index.scss +0 -2
  564. package/styles/components/accordion/accordion.css +0 -189
  565. package/styles/components/accordion/accordion.min.css +0 -7
  566. package/styles/components/accordion/accordion.scss +0 -168
  567. package/styles/components/card/_info-card.scss +0 -42
  568. package/styles/components/card/_nav-card.scss +0 -119
  569. package/styles/components/card/_task-card.scss +0 -55
  570. package/styles/components/card/development/info-card-example.css +0 -26
  571. package/styles/components/card/development/info-card-example.min.css +0 -1
  572. package/styles/components/card/development/info-card-example.scss +0 -14
  573. package/styles/components/card/development/task-card-example.css +0 -9
  574. package/styles/components/card/development/task-card-example.min.css +0 -1
  575. package/styles/components/card/development/task-card-example.scss +0 -8
  576. package/styles/components/expander/deprecated/expander.css +0 -82
  577. package/styles/components/expander/deprecated/expander.min.css +0 -1
  578. package/styles/components/expander/deprecated/expander.scss +0 -87
  579. /package/build/cjs/components/expander/stories/{ExpanderPanel.stories.d.cts → ExpandablePanel.stories.d.cts} +0 -0
  580. /package/build/cjs/components/{ScreenReaderOnly.cjs → screen-reader-only/ScreenReaderOnly.cjs} +0 -0
  581. /package/build/cjs/components/{accordion → screen-reader-only}/index.cjs.map +0 -0
  582. /package/build/cjs/components/{accordion → screen-reader-only}/types.cjs +0 -0
  583. /package/build/cjs/components/{accordion → screen-reader-only}/types.cjs.map +0 -0
  584. /package/build/es/components/expander/stories/{ExpanderPanel.stories.d.ts → ExpandablePanel.stories.d.ts} +0 -0
  585. /package/build/es/components/{ScreenReaderOnly.js → screen-reader-only/ScreenReaderOnly.js} +0 -0
  586. /package/build/es/components/{accordion → screen-reader-only}/index.js.map +0 -0
  587. /package/build/es/components/{accordion → screen-reader-only}/types.js +0 -0
  588. /package/build/es/components/{accordion → screen-reader-only}/types.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"useIntersectionObserver.cjs","sources":["../../../../src/hooks/useIntersectionObserver/useIntersectionObserver.ts"],"sourcesContent":["import {\n type MutableRefObject,\n type RefObject,\n useEffect,\n useRef,\n} from \"react\";\n\ntype ValidElement = HTMLElement | SVGElement;\ntype Target =\n | MutableRefObject<ValidElement>\n | RefObject<ValidElement>\n | MutableRefObject<NodeListOf<ValidElement>>\n | RefObject<NodeListOf<ValidElement>>\n | NodeListOf<ValidElement>;\n\nfunction isNodeList(\n target: Target | ValidElement,\n): target is NodeListOf<ValidElement> {\n return (target as NodeListOf<ValidElement>).forEach !== undefined;\n}\n\nconst hasWindowWithIntersectionObserver = () =>\n typeof window !== \"undefined\" &&\n typeof IntersectionObserver !== \"undefined\";\n\n/**\n * Hook som gjør det enkelt å observere om et element er synlig i viewporten.\n *\n * @param target Elementet eller elementene som skal observeres. Du kan sende in en React ref til et HTMLElement eller SVG Element, eller en NodeList av samme type elementer (returneres f.eks. av document.querySelectorAll), eller en React ref med en NodeList av samme type elementer.\n * @param onIntersect Callback-funksjon som utføres når et av elementene som observeres overlapper angitt mål. Se https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/IntersectionObserver#parameters for mer info.\n * @param fallback Funksjon som kalles dersom nettleseren ikke støtter IntersectionOpserver-APIet.\n * @param options Objekt med innstillinger for oberveren. Se https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/IntersectionObserver#parameters for mer info.\n */\nexport const useIntersectionObserver = (\n target: Target,\n onIntersect: IntersectionObserverCallback,\n fallback?: VoidFunction | null,\n options?: Partial<IntersectionObserverInit>,\n): void => {\n const observerRef = useRef<IntersectionObserver>(null);\n\n useEffect(() => {\n let observer = observerRef.current;\n\n if (hasWindowWithIntersectionObserver()) {\n if (observer) {\n observer.disconnect();\n }\n\n observer = new IntersectionObserver(onIntersect, options);\n\n if (isNodeList(target)) {\n for (const element of target) {\n observer?.observe(element);\n }\n } else if (target.current && isNodeList(target.current)) {\n for (const element of target.current) {\n observer?.observe(element);\n }\n } else if (target.current) {\n observer.observe(target.current);\n }\n } else if (fallback) {\n fallback();\n }\n\n return () => {\n if (hasWindowWithIntersectionObserver() && observer) {\n observer.disconnect();\n }\n };\n }, [target, onIntersect, fallback, options]);\n};\n"],"names":["isNodeList","target","forEach","hasWindowWithIntersectionObserver","window","IntersectionObserver","onIntersect","fallback","options","observerRef","useRef","useEffect","observer","current","disconnect","element","observe"],"mappings":"yGAeA,SAASA,EACLC,GAEA,YAAwD,IAAhDA,EAAoCC,OAChD,CAEA,MAAMC,EAAoC,WAC/BC,OAAW,YACXC,qBAAyB,oCAUG,CACnCJ,EACAK,EACAC,EACAC,KAEM,MAAAC,EAAcC,SAA6B,MAEjDC,EAAAA,WAAU,KACN,IAAIC,EAAWH,EAAYI,QAE3B,GAAIV,IAOI,GANAS,GACAA,EAASE,aAGFF,EAAA,IAAIP,qBAAqBC,EAAaE,GAE7CR,EAAWC,GACX,IAAA,MAAWc,KAAWd,EAClB,MAAAW,GAAAA,EAAUI,QAAQD,QAEfd,GAAAA,EAAOY,SAAWb,EAAWC,EAAOY,SAChC,IAAA,MAAAE,KAAWd,EAAOY,QACzB,MAAAD,GAAAA,EAAUI,QAAQD,QAEfd,EAAOY,SACLD,EAAAI,QAAQf,EAAOY,cAErBN,GACEA,IAGb,MAAO,KACCJ,KAAuCS,GACvCA,EAASE,YAAW,CAE5B,GACD,CAACb,EAAQK,EAAaC,EAAUC,GAAQ"}
1
+ {"version":3,"file":"useIntersectionObserver.cjs","sources":["../../../../src/hooks/useIntersectionObserver/useIntersectionObserver.ts"],"sourcesContent":["import {\n type MutableRefObject,\n type RefObject,\n useEffect,\n useRef,\n} from \"react\";\n\ntype ValidElement = HTMLElement | SVGElement;\ntype Target =\n | MutableRefObject<ValidElement>\n | RefObject<ValidElement>\n | MutableRefObject<NodeListOf<ValidElement>>\n | RefObject<NodeListOf<ValidElement>>\n | NodeListOf<ValidElement>;\n\nfunction isNodeList(\n target: Target | ValidElement,\n): target is NodeListOf<ValidElement> {\n return (target as NodeListOf<ValidElement>).forEach !== undefined;\n}\n\nconst hasWindowWithIntersectionObserver = () =>\n typeof window !== \"undefined\" &&\n typeof IntersectionObserver !== \"undefined\";\n\n/**\n * Hook som gjør det enkelt å observere om et element er synlig i viewporten.\n *\n * @param target Elementet eller elementene som skal observeres. Du kan sende in en React ref til et HTMLElement eller SVG Element, eller en NodeList av samme type elementer (returneres f.eks. av document.querySelectorAll), eller en React ref med en NodeList av samme type elementer.\n * @param onIntersect Callback-funksjon som utføres når et av elementene som observeres overlapper angitt mål. Se https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/IntersectionObserver#parameters for mer info.\n * @param fallback Funksjon som kalles dersom nettleseren ikke støtter IntersectionOpserver-APIet.\n * @param options Objekt med innstillinger for oberveren. Se https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/IntersectionObserver#parameters for mer info.\n */\nexport const useIntersectionObserver = (\n target: Target,\n onIntersect: IntersectionObserverCallback,\n fallback?: VoidFunction | null,\n options?: Partial<IntersectionObserverInit>,\n): void => {\n const observerRef = useRef<IntersectionObserver>(null);\n\n useEffect(() => {\n let observer = observerRef.current;\n\n if (hasWindowWithIntersectionObserver()) {\n if (observer) {\n observer.disconnect();\n }\n\n observer = new IntersectionObserver(onIntersect, options);\n\n if (isNodeList(target)) {\n for (const element of target) {\n observer?.observe(element);\n }\n } else if (target.current && isNodeList(target.current)) {\n for (const element of target.current) {\n observer?.observe(element);\n }\n } else if (target.current) {\n observer.observe(target.current);\n }\n } else if (fallback) {\n fallback();\n }\n\n return () => {\n if (hasWindowWithIntersectionObserver() && observer) {\n observer.disconnect();\n }\n };\n }, [target, onIntersect, fallback, options]);\n};\n"],"names":["isNodeList","target","forEach","hasWindowWithIntersectionObserver","window","IntersectionObserver","onIntersect","fallback","options","observerRef","useRef","useEffect","observer","current","disconnect","element","observe"],"mappings":"yGAeA,SAASA,EACLC,GAEA,YAAwD,IAAhDA,EAAoCC,OAChD,CAEA,MAAMC,EAAoC,WAC/BC,OAAW,YACXC,qBAAyB,oCAUG,CACnCJ,EACAK,EACAC,EACAC,KAEM,MAAAC,EAAcC,SAA6B,MAEjDC,EAAAA,WAAU,KACN,IAAIC,EAAWH,EAAYI,QAE3B,GAAIV,IAOI,GANAS,GACAA,EAASE,aAGFF,EAAA,IAAIP,qBAAqBC,EAAaE,GAE7CR,EAAWC,GACX,IAAA,MAAWc,KAAWd,EAClBW,GAAUI,QAAQD,QAAO,GAEtBd,EAAOY,SAAWb,EAAWC,EAAOY,SAChC,IAAAE,MAAAA,KAAWd,EAAOY,QACzBD,GAAUI,QAAQD,QAEfd,EAAOY,SACLD,EAAAI,QAAQf,EAAOY,cAErBN,GACEA,IAGb,MAAO,KACCJ,KAAuCS,GACvCA,EAASE,YAAW,CAE5B,GACD,CAACb,EAAQK,EAAaC,EAAUC,GAAQ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");exports.useKeyListener=function(t,n,r){function o(e){n&&!n.includes(e.key)||r(e)}"string"==typeof n&&(n=[n]),e.useEffect((()=>{const e=null==t?void 0:t.current;return e&&e.addEventListener("keydown",o),()=>{e&&e.removeEventListener("keydown",o)}}))};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");exports.useKeyListener=function(t,n,r){function o(e){n&&!n.includes(e.key)||r(e)}"string"==typeof n&&(n=[n]),e.useEffect((()=>{const e=t?.current;return e&&e.addEventListener("keydown",o),()=>{e&&e.removeEventListener("keydown",o)}}))};
2
2
  //# sourceMappingURL=useKeyListener.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyListener.cjs","sources":["../../../../src/hooks/useKeyListener/useKeyListener.ts"],"sourcesContent":["import { type RefObject, useEffect } from \"react\";\n\n/**\n * Lar deg sette opp en tastaturlytter på et element.\n * @param ref Element som skal observeres\n * @param keys Taster som skal lyttes på\n * @param fn Funksjon som kalles når en tastetrykk observeres\n */\nexport function useKeyListener(\n ref: RefObject<HTMLElement | null> | null,\n keys: string[] | string | null,\n fn: (event: KeyboardEvent) => void,\n): void {\n if (typeof keys === \"string\") {\n // biome-ignore lint/style/noParameterAssign: Dette er helt greit å forstå\n keys = [keys];\n }\n function handleKeyDown(event: KeyboardEvent) {\n if (keys && !keys.includes(event.key)) {\n return;\n }\n fn(event);\n }\n\n useEffect(() => {\n const element = ref?.current;\n if (element) {\n element.addEventListener(\"keydown\", handleKeyDown);\n }\n return () => {\n if (element) {\n element.removeEventListener(\"keydown\", handleKeyDown);\n }\n };\n });\n}\n"],"names":["ref","keys","fn","handleKeyDown","event","includes","key","useEffect","element","current","addEventListener","removeEventListener"],"mappings":"gIAQgB,SACZA,EACAC,EACAC,GAMA,SAASC,EAAcC,GACfH,IAASA,EAAKI,SAASD,EAAME,MAGjCJ,EAAGE,EAAK,CARQ,iBAATH,IAEPA,EAAO,CAACA,IASZM,EAAAA,WAAU,KACN,MAAMC,EAAU,MAAAR,OAAA,EAAAA,EAAKS,QACrB,OAAID,GACQA,EAAAE,iBAAiB,UAAWP,GAEjC,KACCK,GACQA,EAAAG,oBAAoB,UAAWR,EAAa,CAE5D,GAER"}
1
+ {"version":3,"file":"useKeyListener.cjs","sources":["../../../../src/hooks/useKeyListener/useKeyListener.ts"],"sourcesContent":["import { type RefObject, useEffect } from \"react\";\n\n/**\n * Lar deg sette opp en tastaturlytter på et element.\n * @param ref Element som skal observeres\n * @param keys Taster som skal lyttes på\n * @param fn Funksjon som kalles når en tastetrykk observeres\n */\nexport function useKeyListener(\n ref: RefObject<HTMLElement | null> | null,\n keys: string[] | string | null,\n fn: (event: KeyboardEvent) => void,\n): void {\n if (typeof keys === \"string\") {\n // biome-ignore lint/style/noParameterAssign: Dette er helt greit å forstå\n keys = [keys];\n }\n function handleKeyDown(event: KeyboardEvent) {\n if (keys && !keys.includes(event.key)) {\n return;\n }\n fn(event);\n }\n\n useEffect(() => {\n const element = ref?.current;\n if (element) {\n element.addEventListener(\"keydown\", handleKeyDown);\n }\n return () => {\n if (element) {\n element.removeEventListener(\"keydown\", handleKeyDown);\n }\n };\n });\n}\n"],"names":["ref","keys","fn","handleKeyDown","event","includes","key","useEffect","element","current","addEventListener","removeEventListener"],"mappings":"gIAQgB,SACZA,EACAC,EACAC,GAMA,SAASC,EAAcC,GACfH,IAASA,EAAKI,SAASD,EAAME,MAGjCJ,EAAGE,EAAK,CARQ,iBAATH,IAEPA,EAAO,CAACA,IASZM,EAAAA,WAAU,KACN,MAAMC,EAAUR,GAAKS,QACrB,OAAID,GACQA,EAAAE,iBAAiB,UAAWP,GAEjC,KACCK,GACQA,EAAAG,oBAAoB,UAAWR,EAAa,CAE5D,GAER"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");exports.useScrollIntoView=({ref:t,timeout:r=0,autoScroll:o=!0,options:u={behavior:"smooth"}})=>{const n=()=>{null!=t&&t.current&&t.current.scrollIntoView(u)};return e.useEffect((()=>{if(!o)return;const e=setTimeout(n,r);return()=>clearTimeout(e)}),[t,r,o]),[n]};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");exports.useScrollIntoView=({ref:t,timeout:r=0,autoScroll:o=!0,options:u={behavior:"smooth"}})=>{const c=()=>{t?.current&&t.current.scrollIntoView(u)};return e.useEffect((()=>{if(!o)return;const e=setTimeout(c,r);return()=>clearTimeout(e)}),[t,r,o]),[c]};
2
2
  //# sourceMappingURL=useScrollIntoView.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollIntoView.cjs","sources":["../../../../src/hooks/useScrollIntoView/useScrollIntoView.tsx"],"sourcesContent":["import { type RefObject, useEffect } from \"react\";\n\ntype ValueOf<T> = T[keyof T];\n\nexport interface ScrollIntoViewProps {\n ref: RefObject<ValueOf<HTMLElementTagNameMap> | null> | null;\n timeout?: number;\n autoScroll?: boolean;\n options?: ScrollIntoViewOptions;\n}\n\ntype ScrollFunction = () => void;\n\nexport const useScrollIntoView = ({\n ref,\n timeout = 0,\n autoScroll = true,\n options = { behavior: \"smooth\" },\n}: ScrollIntoViewProps): [ScrollFunction] => {\n const scrollIntoView: ScrollFunction = () => {\n if (ref?.current) {\n ref.current.scrollIntoView(options);\n }\n };\n\n // biome-ignore lint/correctness/useExhaustiveDependencies:\n useEffect(() => {\n if (!autoScroll) {\n return;\n }\n const scrollFn = setTimeout(scrollIntoView, timeout);\n return () => clearTimeout(scrollFn);\n }, [ref, timeout, autoScroll]);\n\n return [scrollIntoView];\n};\n"],"names":["ref","timeout","autoScroll","options","behavior","scrollIntoView","current","useEffect","scrollFn","setTimeout","clearTimeout"],"mappings":"mIAaiC,EAC7BA,IAAAA,EACAC,QAAAA,EAAU,EACVC,WAAAA,GAAa,EACbC,QAAAA,EAAU,CAAEC,SAAU,cAEtB,MAAMC,EAAiC,KAC/B,MAAAL,GAAAA,EAAKM,SACDN,EAAAM,QAAQD,eAAeF,EAAO,EAK1CI,OAAAA,EAAAA,WAAU,KACN,IAAKL,EACD,OAEE,MAAAM,EAAWC,WAAWJ,EAAgBJ,GACrC,MAAA,IAAMS,aAAaF,EAAQ,GACnC,CAACR,EAAKC,EAASC,IAEX,CAACG,EAAc"}
1
+ {"version":3,"file":"useScrollIntoView.cjs","sources":["../../../../src/hooks/useScrollIntoView/useScrollIntoView.tsx"],"sourcesContent":["import { type RefObject, useEffect } from \"react\";\n\ntype ValueOf<T> = T[keyof T];\n\nexport interface ScrollIntoViewProps {\n ref: RefObject<ValueOf<HTMLElementTagNameMap> | null> | null;\n timeout?: number;\n autoScroll?: boolean;\n options?: ScrollIntoViewOptions;\n}\n\ntype ScrollFunction = () => void;\n\nexport const useScrollIntoView = ({\n ref,\n timeout = 0,\n autoScroll = true,\n options = { behavior: \"smooth\" },\n}: ScrollIntoViewProps): [ScrollFunction] => {\n const scrollIntoView: ScrollFunction = () => {\n if (ref?.current) {\n ref.current.scrollIntoView(options);\n }\n };\n\n // biome-ignore lint/correctness/useExhaustiveDependencies:\n useEffect(() => {\n if (!autoScroll) {\n return;\n }\n const scrollFn = setTimeout(scrollIntoView, timeout);\n return () => clearTimeout(scrollFn);\n }, [ref, timeout, autoScroll]);\n\n return [scrollIntoView];\n};\n"],"names":["ref","timeout","autoScroll","options","behavior","scrollIntoView","current","useEffect","scrollFn","setTimeout","clearTimeout"],"mappings":"mIAaiC,EAC7BA,IAAAA,EACAC,QAAAA,EAAU,EACVC,WAAAA,GAAa,EACbC,QAAAA,EAAU,CAAEC,SAAU,cAEtB,MAAMC,EAAiC,KAC/BL,GAAKM,SACDN,EAAAM,QAAQD,eAAeF,EAAO,EAK1CI,OAAAA,EAAAA,WAAU,KACN,IAAKL,EACD,OAEE,MAAAM,EAAWC,WAAWJ,EAAgBJ,GACrC,MAAA,IAAMS,aAAaF,EAAQ,GACnC,CAACR,EAAKC,EAASC,IAEX,CAACG,EAAc"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");function n(e){return{x:e.clientX,y:e.clientY}}exports.useSwipeGesture=function(r){const t=e.useRef(!1),o=e.useRef(),{onClick:u,onChange:l,onPointerCancel:c,onPointerDown:a,onPointerMove:i,onPointerUp:s}=r,p=e.useCallback((e=>{t.current||null==u||u(e),t.current=!1}),[u]),f=e.useCallback((e=>{var r,u;e.preventDefault(),null==(u=(r=e.target).setPointerCapture)||u.call(r,e.pointerId),o.current=n(e),t.current=!1,null==a||a(e)}),[a]),C=e.useCallback((e=>{if(e.preventDefault(),!o.current)return;const{x:r}=n(e),{x:u}=o.current;r-u>10&&l&&"on"!==t.current?(l(e,!0),t.current="on",o.current=n(e)):u-r>10&&l&&"off"!==t.current&&(l(e,!1),t.current="off",o.current=n(e)),null==i||i(e)}),[i,l]),P=e.useCallback((e=>{var n,r;e.preventDefault(),null==(r=(n=e.target).releasePointerCapture)||r.call(n,e.pointerId),o.current=void 0,"pointerup"===e.type?null==s||s(e):null==c||c(e)}),[s,c]);return{swipeHandled:t,gestureHandlers:{onClick:p,onPointerDown:f,onPointerMove:C,onPointerUp:P,onPointerCancel:P}}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");function r(e){return{x:e.clientX,y:e.clientY}}exports.useSwipeGesture=function(n){const t=e.useRef(!1),o=e.useRef(),{onClick:u,onChange:c,onPointerCancel:i,onPointerDown:a,onPointerMove:l,onPointerUp:s}=n,p=e.useCallback((e=>{t.current||u?.(e),t.current=!1}),[u]),f=e.useCallback((e=>{e.preventDefault(),e.target.setPointerCapture?.(e.pointerId),o.current=r(e),t.current=!1,a?.(e)}),[a]),C=e.useCallback((e=>{if(e.preventDefault(),!o.current)return;const{x:n}=r(e),{x:u}=o.current;n-u>10&&c&&"on"!==t.current?(c(e,!0),t.current="on",o.current=r(e)):u-n>10&&c&&"off"!==t.current&&(c(e,!1),t.current="off",o.current=r(e)),l?.(e)}),[l,c]),P=e.useCallback((e=>{e.preventDefault(),e.target.releasePointerCapture?.(e.pointerId),o.current=void 0,"pointerup"===e.type?s?.(e):i?.(e)}),[s,i]);return{swipeHandled:t,gestureHandlers:{onClick:p,onPointerDown:f,onPointerMove:C,onPointerUp:P,onPointerCancel:P}}};
2
2
  //# sourceMappingURL=useSwipeGesture.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSwipeGesture.cjs","sources":["../../../../src/hooks/useSwipeGesture/useSwipeGesture.ts"],"sourcesContent":["import {\n type MouseEventHandler,\n type MutableRefObject,\n type PointerEventHandler,\n useCallback,\n useRef,\n} from \"react\";\n\nexport type SwipeChangeHandler<T extends HTMLElement> = (\n event: React.MouseEvent<T> | React.PointerEvent<T>,\n pressed: boolean,\n) => void;\n\ntype Point = { x: number; y: number };\n\nfunction getGesturePointFromEvent<T extends HTMLElement>(\n event: React.PointerEvent<T>,\n): Point {\n return {\n x: event.clientX,\n y: event.clientY,\n };\n}\n\ntype SwipeGestureOptions<T extends HTMLElement> = {\n onClick?: MouseEventHandler<T>;\n onChange?: SwipeChangeHandler<T>;\n onPointerDown?: PointerEventHandler<T>;\n onPointerUp?: PointerEventHandler<T>;\n onPointerMove?: PointerEventHandler<T>;\n onPointerCancel?: PointerEventHandler<T>;\n};\n\n/**\n * Logikk for å håndtere en swipe, for eksempel brukt i toggle switch.\n *\n * @param options Callbacks for de ulike stegene i en swipe-gesture\n * @returns Handlers for de ulike stegene i en swipe-gesture\n */\nexport function useSwipeGesture<T extends HTMLElement>(\n options: SwipeGestureOptions<T>,\n): {\n swipeHandled: MutableRefObject<\"on\" | \"off\" | false>;\n gestureHandlers: {\n onClick: MouseEventHandler<T>;\n onPointerDown: PointerEventHandler<T>;\n onPointerMove: PointerEventHandler<T>;\n onPointerUp: PointerEventHandler<T>;\n onPointerCancel: PointerEventHandler<T>;\n };\n} {\n const swipeHandled = useRef<\"on\" | \"off\" | false>(false);\n const gestureStartPosition = useRef<Point>();\n\n const {\n onClick,\n onChange,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n } = options;\n\n const handleClick: MouseEventHandler<T> = useCallback(\n (event) => {\n if (!swipeHandled.current) {\n onClick?.(event);\n }\n swipeHandled.current = false; // sørg for at vi får klikke igjen etter swipes\n },\n [onClick],\n );\n\n const handleGestureStart: PointerEventHandler<T> = useCallback(\n (event) => {\n event.preventDefault();\n\n (event.target as T).setPointerCapture?.(event.pointerId);\n gestureStartPosition.current = getGesturePointFromEvent(event);\n swipeHandled.current = false;\n\n onPointerDown?.(event);\n },\n [onPointerDown],\n );\n\n const handleGestureMove: PointerEventHandler<T> = useCallback(\n (event) => {\n event.preventDefault();\n\n if (!gestureStartPosition.current) {\n return;\n }\n\n const { x: currentX } = getGesturePointFromEvent(event);\n const { x: startX } = gestureStartPosition.current;\n\n if (\n currentX - startX > 10 &&\n onChange &&\n swipeHandled.current !== \"on\"\n ) {\n onChange(event, true);\n swipeHandled.current = \"on\";\n gestureStartPosition.current = getGesturePointFromEvent(event);\n } else if (\n startX - currentX > 10 &&\n onChange &&\n swipeHandled.current !== \"off\"\n ) {\n onChange(event, false);\n swipeHandled.current = \"off\";\n gestureStartPosition.current = getGesturePointFromEvent(event);\n }\n\n onPointerMove?.(event);\n },\n [onPointerMove, onChange],\n );\n\n const handleGestureEnd: PointerEventHandler<T> = useCallback(\n (event) => {\n event.preventDefault();\n\n (event.target as T).releasePointerCapture?.(event.pointerId);\n gestureStartPosition.current = undefined;\n\n event.type === \"pointerup\"\n ? onPointerUp?.(event)\n : onPointerCancel?.(event);\n },\n [onPointerUp, onPointerCancel],\n );\n\n return {\n swipeHandled,\n gestureHandlers: {\n onClick: handleClick,\n onPointerDown: handleGestureStart,\n onPointerMove: handleGestureMove,\n onPointerUp: handleGestureEnd,\n onPointerCancel: handleGestureEnd,\n },\n };\n}\n"],"names":["getGesturePointFromEvent","event","x","clientX","y","clientY","options","swipeHandled","useRef","gestureStartPosition","onClick","onChange","onPointerCancel","onPointerDown","onPointerMove","onPointerUp","handleClick","useCallback","current","handleGestureStart","preventDefault","_b","_a","target","setPointerCapture","call","pointerId","handleGestureMove","currentX","startX","handleGestureEnd","releasePointerCapture","type","gestureHandlers"],"mappings":"yGAeA,SAASA,EACLC,GAEO,MAAA,CACHC,EAAGD,EAAME,QACTC,EAAGH,EAAMI,QAEjB,yBAiBO,SACHC,GAWM,MAAAC,EAAeC,UAA6B,GAC5CC,EAAuBD,EAAAA,UAGzBE,QAAAA,EACAC,SAAAA,EACAC,gBAAAA,EACAC,cAAAA,EACAC,cAAAA,EACAC,YAAAA,GACAT,EAEEU,EAAoCC,EAAAA,aACrChB,IACQM,EAAaW,SACd,MAAAR,GAAAA,EAAUT,GAEdM,EAAaW,SAAU,CAC3B,GACA,CAACR,IAGCS,EAA6CF,EAAAA,aAC9ChB,YACGA,EAAMmB,iBAEL,OAAAC,GAAAC,EAAArB,EAAMsB,QAAaC,oBAAnBH,EAAAI,KAAAH,EAAuCrB,EAAMyB,WACzBjB,EAAAS,QAAUlB,EAAyBC,GACxDM,EAAaW,SAAU,EAEvB,MAAAL,GAAAA,EAAgBZ,EAAAA,GAEpB,CAACY,IAGCc,EAA4CV,EAAAA,aAC7ChB,IAGO,GAFJA,EAAMmB,kBAEDX,EAAqBS,QACtB,OAGJ,MAAQhB,EAAG0B,GAAa5B,EAAyBC,IACzCC,EAAG2B,GAAWpB,EAAqBS,QAGvCU,EAAWC,EAAS,IACpBlB,GACyB,OAAzBJ,EAAaW,SAEbP,EAASV,GAAO,GAChBM,EAAaW,QAAU,KACFT,EAAAS,QAAUlB,EAAyBC,IAExD4B,EAASD,EAAW,IACpBjB,GACyB,QAAzBJ,EAAaW,UAEbP,EAASV,GAAO,GAChBM,EAAaW,QAAU,MACFT,EAAAS,QAAUlB,EAAyBC,IAG5D,MAAAa,GAAAA,EAAgBb,EAAAA,GAEpB,CAACa,EAAeH,IAGdmB,EAA2Cb,EAAAA,aAC5ChB,YACGA,EAAMmB,iBAEL,OAAAC,GAAAC,EAAArB,EAAMsB,QAAaQ,wBAAnBV,EAAAI,KAAAH,EAA2CrB,EAAMyB,WAClDjB,EAAqBS,aAAU,EAEhB,cAAfjB,EAAM+B,KACA,MAAAjB,GAAAA,EAAcd,GACd,MAAAW,GAAAA,EAAkBX,EAAAA,GAE5B,CAACc,EAAaH,IAGX,MAAA,CACHL,aAAAA,EACA0B,gBAAiB,CACbvB,QAASM,EACTH,cAAeM,EACfL,cAAea,EACfZ,YAAae,EACblB,gBAAiBkB,GAG7B"}
1
+ {"version":3,"file":"useSwipeGesture.cjs","sources":["../../../../src/hooks/useSwipeGesture/useSwipeGesture.ts"],"sourcesContent":["import {\n type MouseEventHandler,\n type MutableRefObject,\n type PointerEventHandler,\n useCallback,\n useRef,\n} from \"react\";\n\nexport type SwipeChangeHandler<T extends HTMLElement> = (\n event: React.MouseEvent<T> | React.PointerEvent<T>,\n pressed: boolean,\n) => void;\n\ntype Point = { x: number; y: number };\n\nfunction getGesturePointFromEvent<T extends HTMLElement>(\n event: React.PointerEvent<T>,\n): Point {\n return {\n x: event.clientX,\n y: event.clientY,\n };\n}\n\ntype SwipeGestureOptions<T extends HTMLElement> = {\n onClick?: MouseEventHandler<T>;\n onChange?: SwipeChangeHandler<T>;\n onPointerDown?: PointerEventHandler<T>;\n onPointerUp?: PointerEventHandler<T>;\n onPointerMove?: PointerEventHandler<T>;\n onPointerCancel?: PointerEventHandler<T>;\n};\n\n/**\n * Logikk for å håndtere en swipe, for eksempel brukt i toggle switch.\n *\n * @param options Callbacks for de ulike stegene i en swipe-gesture\n * @returns Handlers for de ulike stegene i en swipe-gesture\n */\nexport function useSwipeGesture<T extends HTMLElement>(\n options: SwipeGestureOptions<T>,\n): {\n swipeHandled: MutableRefObject<\"on\" | \"off\" | false>;\n gestureHandlers: {\n onClick: MouseEventHandler<T>;\n onPointerDown: PointerEventHandler<T>;\n onPointerMove: PointerEventHandler<T>;\n onPointerUp: PointerEventHandler<T>;\n onPointerCancel: PointerEventHandler<T>;\n };\n} {\n const swipeHandled = useRef<\"on\" | \"off\" | false>(false);\n const gestureStartPosition = useRef<Point>();\n\n const {\n onClick,\n onChange,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n } = options;\n\n const handleClick: MouseEventHandler<T> = useCallback(\n (event) => {\n if (!swipeHandled.current) {\n onClick?.(event);\n }\n swipeHandled.current = false; // sørg for at vi får klikke igjen etter swipes\n },\n [onClick],\n );\n\n const handleGestureStart: PointerEventHandler<T> = useCallback(\n (event) => {\n event.preventDefault();\n\n (event.target as T).setPointerCapture?.(event.pointerId);\n gestureStartPosition.current = getGesturePointFromEvent(event);\n swipeHandled.current = false;\n\n onPointerDown?.(event);\n },\n [onPointerDown],\n );\n\n const handleGestureMove: PointerEventHandler<T> = useCallback(\n (event) => {\n event.preventDefault();\n\n if (!gestureStartPosition.current) {\n return;\n }\n\n const { x: currentX } = getGesturePointFromEvent(event);\n const { x: startX } = gestureStartPosition.current;\n\n if (\n currentX - startX > 10 &&\n onChange &&\n swipeHandled.current !== \"on\"\n ) {\n onChange(event, true);\n swipeHandled.current = \"on\";\n gestureStartPosition.current = getGesturePointFromEvent(event);\n } else if (\n startX - currentX > 10 &&\n onChange &&\n swipeHandled.current !== \"off\"\n ) {\n onChange(event, false);\n swipeHandled.current = \"off\";\n gestureStartPosition.current = getGesturePointFromEvent(event);\n }\n\n onPointerMove?.(event);\n },\n [onPointerMove, onChange],\n );\n\n const handleGestureEnd: PointerEventHandler<T> = useCallback(\n (event) => {\n event.preventDefault();\n\n (event.target as T).releasePointerCapture?.(event.pointerId);\n gestureStartPosition.current = undefined;\n\n event.type === \"pointerup\"\n ? onPointerUp?.(event)\n : onPointerCancel?.(event);\n },\n [onPointerUp, onPointerCancel],\n );\n\n return {\n swipeHandled,\n gestureHandlers: {\n onClick: handleClick,\n onPointerDown: handleGestureStart,\n onPointerMove: handleGestureMove,\n onPointerUp: handleGestureEnd,\n onPointerCancel: handleGestureEnd,\n },\n };\n}\n"],"names":["getGesturePointFromEvent","event","x","clientX","y","clientY","options","swipeHandled","useRef","gestureStartPosition","onClick","onChange","onPointerCancel","onPointerDown","onPointerMove","onPointerUp","handleClick","useCallback","current","handleGestureStart","preventDefault","target","setPointerCapture","pointerId","handleGestureMove","currentX","startX","handleGestureEnd","releasePointerCapture","type","gestureHandlers"],"mappings":"yGAeA,SAASA,EACLC,GAEO,MAAA,CACHC,EAAGD,EAAME,QACTC,EAAGH,EAAMI,QAEjB,yBAiBO,SACHC,GAWM,MAAAC,EAAeC,UAA6B,GAC5CC,EAAuBD,EAAAA,UAGzBE,QAAAA,EACAC,SAAAA,EACAC,gBAAAA,EACAC,cAAAA,EACAC,cAAAA,EACAC,YAAAA,GACAT,EAEEU,EAAoCC,EAAAA,aACrChB,IACQM,EAAaW,SACdR,IAAUT,GAEdM,EAAaW,SAAU,CAAA,GAE3B,CAACR,IAGCS,EAA6CF,EAAAA,aAC9ChB,IACGA,EAAMmB,iBAELnB,EAAMoB,OAAaC,oBAAoBrB,EAAMsB,WACzBd,EAAAS,QAAUlB,EAAyBC,GACxDM,EAAaW,SAAU,EAEvBL,IAAgBZ,EAAK,GAEzB,CAACY,IAGCW,EAA4CP,EAAAA,aAC7ChB,IAGO,GAFJA,EAAMmB,kBAEDX,EAAqBS,QACtB,OAGJ,MAAQhB,EAAGuB,GAAazB,EAAyBC,IACzCC,EAAGwB,GAAWjB,EAAqBS,QAGvCO,EAAWC,EAAS,IACpBf,GACyB,OAAzBJ,EAAaW,SAEbP,EAASV,GAAO,GAChBM,EAAaW,QAAU,KACFT,EAAAS,QAAUlB,EAAyBC,IAExDyB,EAASD,EAAW,IACpBd,GACyB,QAAzBJ,EAAaW,UAEbP,EAASV,GAAO,GAChBM,EAAaW,QAAU,MACFT,EAAAS,QAAUlB,EAAyBC,IAG5Da,IAAgBb,EAAK,GAEzB,CAACa,EAAeH,IAGdgB,EAA2CV,EAAAA,aAC5ChB,IACGA,EAAMmB,iBAELnB,EAAMoB,OAAaO,wBAAwB3B,EAAMsB,WAClDd,EAAqBS,aAAU,EAEhB,cAAfjB,EAAM4B,KACAd,IAAcd,GACdW,IAAkBX,EAAK,GAEjC,CAACc,EAAaH,IAGX,MAAA,CACHL,aAAAA,EACAuB,gBAAiB,CACbpB,QAASM,EACTH,cAAeM,EACfL,cAAeU,EACfT,YAAaY,EACbf,gBAAiBe,GAG7B"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./components/accordion/Accordion.cjs"),o=require("./components/accordion/AccordionItem.cjs"),r=require("./components/autosuggest/Autosuggest.cjs"),s=require("./components/breadcrumb/Breadcrumb.cjs"),t=require("./components/breadcrumb/BreadcrumbItem.cjs"),n=require("./components/button/Button.cjs"),i=require("./components/card/Card.cjs"),a=require("./components/card/CardImage.cjs"),c=require("./components/card/NavCard.cjs"),u=require("./components/card/TaskCard.cjs"),p=require("./components/card/InfoCard.cjs"),m=require("./components/checkbox-panel/CheckboxPanel.cjs"),l=require("./components/checkbox/Checkbox.cjs"),x=require("./components/chip/Chip.cjs"),d=require("./components/combobox/Combobox.cjs"),g=require("./components/cookie-consent/CookieConsent.cjs"),j=require("./components/cookie-consent/CookieConsentContext.cjs"),b=require("./components/countdown/Countdown.cjs"),q=require("./components/datepicker/DatePicker.cjs"),I=require("./components/datepicker/validation.cjs"),T=require("./components/datepicker/utils.cjs"),k=require("./components/description-list/DescriptionList.cjs"),h=require("./components/expander/ExpandablePanel.cjs"),C=require("./components/expander/Expander.cjs"),S=require("./components/expander/deprecated/ExpandSection.cjs"),v=require("./components/feedback/Feedback.cjs"),M=require("./components/feedback/presets.cjs"),A=require("./components/file-input/FileInput.cjs"),f=require("./components/file-input/utils.cjs"),E=require("./components/flex/Flex.cjs"),L=require("./components/icon-button/IconButton.cjs"),R=require("./components/icon/Icon.cjs"),B=require("./components/icon/icons/animated/ArrowVerticalAnimated.cjs"),P=require("./components/icon/icons/animated/ArrowHorizontalAnimated.cjs"),w=require("./components/icon/icons/animated/PlusRemoveAnimated.cjs"),F=require("./components/icon/icons/ArrowDownIcon.cjs"),N=require("./components/icon/icons/ArrowLeftIcon.cjs"),D=require("./components/icon/icons/ArrowNorthEastIcon.cjs"),V=require("./components/icon/icons/ArrowRightIcon.cjs"),y=require("./components/icon/icons/ArrowUpIcon.cjs"),O=require("./components/icon/icons/CalendarIcon.cjs"),G=require("./components/icon/icons/CheckIcon.cjs"),H=require("./components/icon/icons/ChevronDownIcon.cjs"),W=require("./components/icon/icons/ChevronLeftIcon.cjs"),U=require("./components/icon/icons/ChevronRightIcon.cjs"),K=require("./components/icon/icons/ChevronUpIcon.cjs"),X=require("./components/icon/icons/CloseIcon.cjs"),_=require("./components/icon/icons/CopyIcon.cjs"),z=require("./components/icon/icons/DotsIcon.cjs"),Q=require("./components/icon/icons/DragIcon.cjs"),J=require("./components/icon/icons/ErrorIcon.cjs"),Y=require("./components/icon/icons/GreenCheckIcon.cjs"),Z=require("./components/icon/icons/HamburgerIcon.cjs"),$=require("./components/icon/icons/InfoIcon.cjs"),ee=require("./components/icon/icons/LinkIcon.cjs"),oe=require("./components/icon/icons/MinusIcon.cjs"),re=require("./components/icon/icons/OpenInNewIcon.cjs"),se=require("./components/icon/icons/PenIcon.cjs"),te=require("./components/icon/icons/PlusIcon.cjs"),ne=require("./components/icon/icons/QuestionIcon.cjs"),ie=require("./components/icon/icons/RedCrossIcon.cjs"),ae=require("./components/icon/icons/SearchIcon.cjs"),ce=require("./components/icon/icons/SuccessIcon.cjs"),ue=require("./components/icon/icons/ThumbDownIcon.cjs"),pe=require("./components/icon/icons/ThumbUpIcon.cjs"),me=require("./components/icon/icons/TrashCanIcon.cjs"),le=require("./components/icon/icons/WarningIcon.cjs"),xe=require("./components/image/Image.cjs"),de=require("./components/input-group/FieldGroup.cjs"),ge=require("./components/input-group/InputGroup.cjs"),je=require("./components/input-group/Label.cjs"),be=require("./components/input-group/SupportLabel.cjs"),qe=require("./components/link-list/LinkList.cjs"),Ie=require("./components/link/Link.cjs"),Te=require("./components/list/List.cjs"),ke=require("./components/list/ListItem.cjs"),he=require("./components/loader/Loader.cjs"),Ce=require("./components/loader/skeletons/SkeletonAnimation.cjs"),Se=require("./components/loader/skeletons/SkeletonButton.cjs"),ve=require("./components/loader/skeletons/SkeletonCheckboxGroup.cjs"),Me=require("./components/loader/skeletons/SkeletonElement.cjs"),Ae=require("./components/loader/skeletons/SkeletonInput.cjs"),fe=require("./components/loader/skeletons/SkeletonRadioButtonGroup.cjs"),Ee=require("./components/loader/skeletons/SkeletonTable.cjs"),Le=require("./components/loader/skeletons/SkeletonTextArea.cjs"),Re=require("./components/logo/Logo.cjs"),Be=require("./components/logo/LogoStamp.cjs"),Pe=require("./components/logo/text-paths/ForsikringLevertAvFremtind.cjs"),we=require("./components/logo/text-paths/FraSB1ogDNB.cjs"),Fe=require("./components/logo/text-paths/InnovasjonFraFremtind.cjs"),Ne=require("./components/logo/text-paths/TeknologiFraFremtind.cjs"),De=require("./components/logo/text-paths/VartEgetForsikringsselskap.cjs"),Ve=require("./components/logo/text-paths/VartForsikringsselskap.cjs"),ye=require("./components/menu/Menu.cjs"),Oe=require("./components/menu/MenuItem.cjs"),Ge=require("./components/menu/MenuItemCheckbox.cjs"),He=require("./components/menu/MenuDivider.cjs"),We=require("./components/message/Message.cjs"),Ue=require("./components/message/FormErrorMessage.cjs"),Ke=require("./components/modal/Modal.cjs"),Xe=require("./components/modal/useModal.cjs"),_e=require("./components/nav-link/NavLink.cjs"),ze=require("./components/pagination/Pagination.cjs"),Qe=require("./components/popover/Popover.cjs"),Je=require("./components/progress-bar/ProgressBar.cjs"),Ye=require("./components/radio-button/RadioButton.cjs"),Ze=require("./components/radio-button/RadioButtonGroup.cjs"),$e=require("./components/radio-button/BaseRadioButton.cjs"),eo=require("./components/radio-panel/RadioPanel.cjs"),oo=require("./components/radio-panel/RadioPanelGroup.cjs"),ro=require("./components/select/Select.cjs"),so=require("./components/select/NativeSelect.cjs"),to=require("./components/summary-table/SummaryTable.cjs"),no=require("./components/summary-table/SummaryTableRow.cjs"),io=require("./components/system-message/SystemMessage.cjs"),ao=require("./components/table/DataTable.cjs"),co=require("./components/table/Table.cjs"),uo=require("./components/table/TableBody.cjs"),po=require("./components/table/TableCaption.cjs"),mo=require("./components/table/TableCell.cjs"),lo=require("./components/table/TableColumn.cjs"),xo=require("./components/table/TableColumnGroup.cjs"),go=require("./components/table/tableContext.cjs"),jo=require("./components/table/tableSectionContext.cjs"),bo=require("./components/table/TableFooter.cjs"),qo=require("./components/table/TableHead.cjs"),Io=require("./components/table/TableHeader.cjs"),To=require("./components/table/TablePagination.cjs"),ko=require("./components/table/TableRow.cjs"),ho=require("./components/table/ExpandableTableRow.cjs"),Co=require("./components/table/ExpandableTableRowController.cjs"),So=require("./components/table/utils.cjs"),vo=require("./components/tabs/NavTab.cjs"),Mo=require("./components/tabs/NavTabs.cjs"),Ao=require("./components/tabs/Tabs.cjs"),fo=require("./components/tabs/TabList.cjs"),Eo=require("./components/tabs/Tab.cjs"),Lo=require("./components/tabs/TabPanel.cjs"),Ro=require("./components/tag/Tag.cjs"),Bo=require("./components/text-area/BaseTextArea.cjs"),Po=require("./components/text-area/TextArea.cjs"),wo=require("./components/text-input/BaseTextInput.cjs"),Fo=require("./components/text-input/TextInput.cjs"),No=require("./components/toast/toastContext.cjs"),Do=require("./components/toggle-switch/ToggleSwitch.cjs"),Vo=require("./components/toggle-switch/ToggleSlider.cjs"),yo=require("./components/tooltip/Tooltip.cjs"),Oo=require("./components/tooltip/TooltipContent.cjs"),Go=require("./components/tooltip/TooltipTrigger.cjs"),Ho=require("./components/tooltip/PopupTip.cjs"),Wo=require("./components/ScreenReaderOnly.cjs"),Uo=require("./core/tokens.cjs"),Ko=require("./hooks/useAnimatedDetails/useAnimatedDetails.cjs"),Xo=require("./hooks/useAnimatedHeight/useAnimatedHeight.cjs"),_o=require("./hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs"),zo=require("./hooks/useAnimatedHeight/useAutoAnimateHeight.cjs"),Qo=require("./hooks/useBrowserPreferences/useBrowserPreferences.cjs"),Jo=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),Yo=require("./hooks/useLocalStorage/useLocalStorage.cjs"),Zo=require("./hooks/useMutationObserver/useMutationObserver.cjs"),$o=require("./hooks/usePreviousValue/usePreviousValue.cjs"),er=require("./hooks/useProgressiveImg/useProgressiveImg.cjs"),or=require("./hooks/useScreen/useScreen.cjs"),rr=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),sr=require("./hooks/useAriaLiveRegion/useAriaLiveRegion.cjs"),tr=require("./hooks/useClickOutside/useClickOutside.cjs"),nr=require("./hooks/useFocusOutside/useFocusOutside.cjs"),ir=require("./hooks/useElementDimensions/useElementDimensions.cjs"),ar=require("./hooks/useId/useId.cjs"),cr=require("./hooks/useKeyListener/useKeyListener.cjs"),ur=require("./hooks/useListNavigation/useListNavigation.cjs"),pr=require("./hooks/useSwipeGesture/useSwipeGesture.cjs"),mr=require("../index-CaISwoxr.cjs"),lr=require("./utilities/formatters/util/formatNumber.cjs"),xr=require("./utilities/formatters/util/parseNumber.cjs"),dr=require("./utilities/formatters/util/registerWithMask.cjs"),gr=require("./utilities/formatters/avstand/formatAvstand.cjs"),jr=require("./utilities/formatters/bytes/formatBytes.cjs"),br=require("./utilities/formatters/date/formatDate.cjs"),qr=require("./utilities/formatters/fodselsnummer/formatFodselsnummer.cjs"),Ir=require("./utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.cjs"),Tr=require("./utilities/formatters/kontonummer/formatKontonummer.cjs"),kr=require("./utilities/formatters/kortnummer/formatKortnummer.cjs"),hr=require("./utilities/formatters/telefonnummer/formatTelefonnummer.cjs"),Cr=require("./utilities/formatters/valuta/formatValuta.cjs"),Sr=require("./utilities/getThemeAndDensity.cjs"),vr=require("./utilities/polymorphism/mergeProps.cjs"),Mr=require("./utilities/polymorphism/mergeRefs.cjs"),Ar=require("./utilities/polymorphism/SlotComponent.cjs"),fr=require("./utilities/validators/isValidEpost/isValidEpost.cjs"),Er=require("./utilities/validators/isValidTelefonnummer/isValidTelefonnummer.cjs"),Lr=require("./utilities/validators/isValidRegistreringsnummer/isValidRegistreringsnummer.cjs"),Rr=require("./utilities/validators/isValidChassisnummer/isValidChassisnummer.cjs"),Br=require("./utilities/validators/isValidDogId/isValidDogId.cjs"),Pr=require("./utilities/validators/isExactLength/isExactLength.cjs"),wr=require("./utilities/validators/isInteger/isInteger.cjs"),Fr=require("./utilities/validators/isValidFodselsnummer/isValidFodselsnummer.cjs"),Nr=require("./utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.cjs"),Dr=require("./utilities/validators/isValidName/isValidName.cjs"),Vr=require("./utilities/validators/hasMinimumWords/hasMinimumWords.cjs"),yr=require("./utilities/validators/hasNoIllegalCharacters/hasNoIllegalCharacters.cjs"),Or=require("./utilities/tabListener.cjs"),Gr=require("./utilities/valuePair.cjs");exports.Accordion=e.Accordion,exports.AccordionItem=o.AccordionItem,exports.Autosuggest=r.Autosuggest,exports.Breadcrumb=s.Breadcrumb,exports.BreadcrumbItem=t.BreadcrumbItem,exports.Button=n.Button,exports.PrimaryButton=n.PrimaryButton,exports.SecondaryButton=n.SecondaryButton,exports.TertiaryButton=n.TertiaryButton,exports.Card=i.Card,exports.CardImage=a.CardImage,exports.InfoBlock=c.InfoBlock,exports.NavCard=c.NavCard,exports.TaskCard=u.TaskCard,exports.InfoCard=p.InfoCard,exports.CheckboxPanel=m.CheckboxPanel,exports.Checkbox=l.Checkbox,exports.Chip=x.Chip,exports.Combobox=d.Combobox,exports.getComboboxValuePair=d.getComboboxValuePair,exports.CookieConsent=g.CookieConsent,exports.CookieConsentProvider=j.CookieConsentProvider,exports.useCookieConsent=j.useCookieConsent,exports.Countdown=b.Countdown,exports.DatePicker=q.DatePicker,exports.isCorrectFormat=I.isCorrectFormat,exports.isWithinLowerBound=I.isWithinLowerBound,exports.isWithinUpperBound=I.isWithinUpperBound,exports.formatInput=T.formatInput,exports.isBlurTargetOutside=T.isBlurTargetOutside,exports.parseDateString=T.parseDateString,exports.DescriptionDetail=k.DescriptionDetail,exports.DescriptionList=k.DescriptionList,exports.DescriptionTerm=k.DescriptionTerm,exports.ExpandablePanel=h.ExpandablePanel,exports.Expander=C.Expander,exports.ExpandSection=S.ExpandSection,exports.Feedback=v.Feedback,exports.PRESETS=M.PRESETS,exports.FileInput=A.FileInput,exports.upload=f.upload,exports.Flex=E.Flex,exports.IconButton=L.IconButton,exports.Icon=R.Icon,exports.ArrowVerticalAnimated=B.ArrowVerticalAnimated,exports.ArrowHorizontalAnimated=P.ArrowHorizontalAnimated,exports.PlusRemoveAnimated=w.PlusRemoveAnimated,exports.ArrowDownIcon=F.ArrowDownIcon,exports.ArrowLeftIcon=N.ArrowLeftIcon,exports.ArrowNorthEastIcon=D.ArrowNorthEastIcon,exports.ArrowRightIcon=V.ArrowRightIcon,exports.ArrowUpIcon=y.ArrowUpIcon,exports.CalendarIcon=O.CalendarIcon,exports.CheckIcon=G.CheckIcon,exports.ChevronDownIcon=H.ChevronDownIcon,exports.ChevronLeftIcon=W.ChevronLeftIcon,exports.ChevronRightIcon=U.ChevronRightIcon,exports.ChevronUpIcon=K.ChevronUpIcon,exports.CloseIcon=X.CloseIcon,exports.CopyIcon=_.CopyIcon,exports.DotsIcon=z.DotsIcon,exports.DragIcon=Q.DragIcon,exports.ErrorIcon=J.ErrorIcon,exports.GreenCheckIcon=Y.GreenCheckIcon,exports.HamburgerIcon=Z.HamburgerIcon,exports.InfoIcon=$.InfoIcon,exports.LinkIcon=ee.LinkIcon,exports.MinusIcon=oe.MinusIcon,exports.OpenInNewIcon=re.OpenInNewIcon,exports.PenIcon=se.PenIcon,exports.PlusIcon=te.PlusIcon,exports.QuestionIcon=ne.QuestionIcon,exports.RedCrossIcon=ie.RedCrossIcon,exports.SearchIcon=ae.SearchIcon,exports.SuccessIcon=ce.SuccessIcon,exports.ThumbDownIcon=ue.ThumbDownIcon,exports.ThumbUpIcon=pe.ThumbUpIcon,exports.TrashCanIcon=me.TrashCanIcon,exports.WarningIcon=le.WarningIcon,exports.Image=xe.Image,exports.FieldGroup=de.FieldGroup,exports.InputGroup=ge.InputGroup,exports.Label=je.Label,exports.SupportLabel=be.SupportLabel,exports.LinkList=qe.LinkList,exports.Link=Ie.Link,exports.List=Te.List,exports.OrderedList=Te.OrderedList,exports.UnorderedList=Te.UnorderedList,exports.CheckListItem=ke.CheckListItem,exports.CrossListItem=ke.CrossListItem,exports.ListItem=ke.ListItem,exports.Loader=he.Loader,exports.SkeletonAnimation=Ce.SkeletonAnimation,exports.SkeletonButton=Se.SkeletonButton,exports.SkeletonCheckboxGroup=ve.SkeletonCheckboxGroup,exports.SkeletonElement=Me.SkeletonElement,exports.SkeletonInput=Ae.SkeletonInput,exports.SkeletonRadioButtonGroup=fe.SkeletonRadioButtonGroup,exports.SkeletonTable=Ee.SkeletonTable,exports.SkeletonTableHeader=Ee.SkeletonTableHeader,exports.SkeletonTableRow=Ee.SkeletonTableRow,exports.SkeletonTextArea=Le.SkeletonTextArea,exports.Logo=Re.Logo,exports.LogoStamp=Be.LogoStamp,exports.ForsikringLevertAvFremtind=Pe.ForsikringLevertAvFremtind,exports.FraSB1ogDNB=we.FraSB1ogDNB,exports.InnovasjonFraFremtind=Fe.InnovasjonFraFremtind,exports.TeknologiFraFremtind=Ne.TeknologiFraFremtind,exports.VartEgetForsikringsselskap=De.VartEgetForsikringsselskap,exports.VartForsikringsselskap=Ve.VartForsikringsselskap,exports.Menu=ye.Menu,exports.MenuItem=Oe.MenuItem,exports.MenuItemCheckbox=Ge.MenuItemCheckbox,exports.MenuDivider=He.MenuDivider,exports.ErrorMessage=We.ErrorMessage,exports.InfoMessage=We.InfoMessage,exports.SuccessMessage=We.SuccessMessage,exports.WarningMessage=We.WarningMessage,exports.FormErrorMessage=Ue.FormErrorMessage,exports.Modal=Ke.Modal,exports.ModalActions=Ke.ModalActions,exports.ModalBody=Ke.ModalBody,exports.ModalCloseButton=Ke.ModalCloseButton,exports.ModalContainer=Ke.ModalContainer,exports.ModalHeader=Ke.ModalHeader,exports.ModalOverlay=Ke.ModalOverlay,exports.ModalTitle=Ke.ModalTitle,exports.useModal=Xe.useModal,exports.NavLink=_e.NavLink,exports.Pagination=ze.Pagination,exports.Popover=Qe.Popover,exports.ProgressBar=Je.ProgressBar,exports.RadioButton=Ye.RadioButton,exports.RadioButtonGroup=Ze.RadioButtonGroup,exports.BaseRadioButton=$e.BaseRadioButton,exports.RadioPanel=eo.RadioPanel,exports.RadioPanelGroup=oo.RadioPanelGroup,exports.Select=ro.Select,exports.NativeSelect=so.NativeSelect,exports.SummaryTable=to.SummaryTable,exports.SummaryTableRow=no.SummaryTableRow,exports.ErrorSystemMessage=io.ErrorSystemMessage,exports.InfoSystemMessage=io.InfoSystemMessage,exports.SuccessSystemMessage=io.SuccessSystemMessage,exports.WarningSystemMessage=io.WarningSystemMessage,exports.DataTable=ao.DataTable,exports.Table=co.Table,exports.TableBody=uo.TableBody,exports.TableCaption=po.TableCaption,exports.TableCell=mo.TableCell,exports.TableColumn=lo.TableColumn,exports.TableColumnGroup=xo.TableColumnGroup,exports.TableContextProvider=go.TableContextProvider,exports.useTableContext=go.useTableContext,exports.TableSectionContextProvider=jo.TableSectionContextProvider,exports.useTableSectionContext=jo.useTableSectionContext,exports.TableFooter=bo.TableFooter,exports.TableHead=qo.TableHead,exports.TableHeader=Io.TableHeader,exports.TablePagination=To.TablePagination,exports.TableRow=ko.TableRow,exports.ExpandableTableRow=ho.ExpandableTableRow,exports.ExpandableTableRowController=Co.ExpandableTableRowController,exports.useSortableTableHeader=So.useSortableTableHeader,exports.NavTab=vo.NavTab,exports.NavTabs=Mo.NavTabs,exports.Tabs=Ao.Tabs,exports.TabList=fo.TabList,exports.Tab=Eo.Tab,exports.TabPanel=Lo.TabPanel,exports.ErrorTag=Ro.ErrorTag,exports.InfoTag=Ro.InfoTag,exports.SuccessTag=Ro.SuccessTag,exports.Tag=Ro.Tag,exports.WarningTag=Ro.WarningTag,exports.BaseTextArea=Bo.BaseTextArea,exports.TextArea=Po.TextArea,exports.BaseTextInput=wo.BaseTextInput,exports.TextInput=Fo.TextInput,exports.ToastProvider=No.ToastProvider,exports.useToast=No.useToast,exports.ToggleSwitch=Do.ToggleSwitch,exports.ToggleSlider=Vo.ToggleSlider,exports.Tooltip=yo.Tooltip,exports.TooltipContent=Oo.TooltipContent,exports.TooltipTrigger=Go.TooltipTrigger,exports.PopupTip=Ho.PopupTip,exports.ScreenReaderOnly=Wo.ScreenReaderOnly,exports.tokens=Uo,exports.useAnimatedDetails=Ko.useAnimatedDetails,exports.useAnimatedHeight=Xo.useAnimatedHeight,exports.useAnimatedHeightBetween=_o.useAnimatedHeightBetween,exports.useAutoAnimatedHeight=zo.useAutoAnimatedHeight,exports.useBrowserPreferences=Qo.useBrowserPreferences,exports.useIntersectionObserver=Jo.useIntersectionObserver,exports.useLocalStorage=Yo.useLocalStorage,exports.useMutationObserver=Zo.useMutationObserver,exports.usePreviousValue=$o.usePreviousValue,exports.useProgressiveImg=er.useProgressiveImg,exports.useScreen=or.useScreen,exports.useScrollIntoView=rr.useScrollIntoView,exports.useAriaLiveRegion=sr.useAriaLiveRegion,exports.useClickOutside=tr.useClickOutside,exports.useFocusOutside=nr.useFocusOutside,exports.useElementDimensions=ir.useElementDimensions,exports.useId=ar.useId,exports.useKeyListener=cr.useKeyListener,exports.useListNavigation=ur.useListNavigation,exports.useSwipeGesture=pr.useSwipeGesture,exports.unicode=mr.unicode,exports.formatNumber=lr.formatNumber,exports.parseNumber=xr.parseNumber,exports.registerWithFodselsnummerMask=dr.registerWithFodselsnummerMask,exports.registerWithKontonummerMask=dr.registerWithKontonummerMask,exports.registerWithKortnummerMask=dr.registerWithKortnummerMask,exports.registerWithMasks=dr.registerWithMasks,exports.registerWithTelefonnummerMask=dr.registerWithTelefonnummerMask,exports.formatAvstand=gr.formatAvstand,exports.formatBytes=jr.formatBytes,exports.formatDate=br.formatDate,exports.FODSELSNUMMER_REGEX=qr.FODSELSNUMMER_REGEX,exports.formatFodselsnummer=qr.formatFodselsnummer,exports.ORGANISASJONSNUMMER_REGEX=Ir.ORGANISASJONSNUMMER_REGEX,exports.formatOrganisasjonsnummer=Ir.formatOrganisasjonsnummer,exports.KONTONUMMER_REGEX=Tr.KONTONUMMER_REGEX,exports.formatKontonummer=Tr.formatKontonummer,exports.KORTNUMMER_REGEX=kr.KORTNUMMER_REGEX,exports.formatKortnummer=kr.formatKortnummer,exports.TELEFONNUMMER_REGEX=hr.TELEFONNUMMER_REGEX,exports.formatTelefonnummer=hr.formatTelefonnummer,exports.formatValuta=Cr.formatValuta,exports.getThemeAndDensity=Sr.getThemeAndDensity,exports.mergeProps=vr.mergeProps,exports.mergeRefs=Mr.mergeRefs,exports.SlotComponent=Ar.SlotComponent,exports.isValidEpost=fr.isValidEpost,exports.isValidTelefonnummer=Er.isValidTelefonnummer,exports.isValidRegistreringsnummer=Lr.isValidRegistreringsnummer,exports.isValidChassisnummer=Rr.isValidChassisnummer,exports.isValidDogId=Br.isValidDogId,exports.isExactLength=Pr.isExactLength,exports.isInteger=wr.isInteger,exports.isValidFodselsnummer=Fr.isValidFodselsnummer,exports.isValidOrganisasjonsnummer=Nr.isValidOrganisasjonsnummer,exports.isValidName=Dr.isValidName,exports.hasMinimumWords=Vr.hasMinimumWords,exports.hasNoIllegalCharacters=yr.hasNoIllegalCharacters,exports.initTabListener=Or.initTabListener,exports.getValuePair=Gr.getValuePair;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./core/tokens.cjs"),s=require("./hooks/useAnimatedDetails/useAnimatedDetails.cjs"),r=require("./hooks/useAnimatedHeight/useAnimatedHeight.cjs"),i=require("./hooks/useAnimatedHeight/useAnimatedHeightBetween.cjs"),t=require("./hooks/useAnimatedHeight/useAutoAnimateHeight.cjs"),o=require("./hooks/useBrowserPreferences/useBrowserPreferences.cjs"),u=require("./hooks/useIntersectionObserver/useIntersectionObserver.cjs"),a=require("./hooks/useLocalStorage/useLocalStorage.cjs"),m=require("./hooks/useMutationObserver/useMutationObserver.cjs"),n=require("./hooks/usePreviousValue/usePreviousValue.cjs"),l=require("./hooks/useProgressiveImg/useProgressiveImg.cjs"),d=require("./hooks/useScreen/useScreen.cjs"),c=require("./hooks/useScrollIntoView/useScrollIntoView.cjs"),g=require("./hooks/useAriaLiveRegion/useAriaLiveRegion.cjs"),p=require("./hooks/useClickOutside/useClickOutside.cjs"),h=require("./hooks/useFocusOutside/useFocusOutside.cjs"),x=require("./hooks/useElementDimensions/useElementDimensions.cjs"),f=require("./hooks/useId/useId.cjs"),j=require("./hooks/useKeyListener/useKeyListener.cjs"),q=require("./hooks/useListNavigation/useListNavigation.cjs"),E=require("./hooks/useSwipeGesture/useSwipeGesture.cjs"),V=require("../index-CaISwoxr.cjs"),v=require("./utilities/formatters/util/formatNumber.cjs"),M=require("./utilities/formatters/util/parseNumber.cjs"),k=require("./utilities/formatters/util/registerWithMask.cjs"),O=require("./utilities/formatters/avstand/formatAvstand.cjs"),N=require("./utilities/formatters/bytes/formatBytes.cjs"),R=require("./utilities/formatters/date/formatDate.cjs"),A=require("./utilities/formatters/fodselsnummer/formatFodselsnummer.cjs"),S=require("./utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.cjs"),I=require("./utilities/formatters/kontonummer/formatKontonummer.cjs"),L=require("./utilities/formatters/kortnummer/formatKortnummer.cjs"),T=require("./utilities/formatters/telefonnummer/formatTelefonnummer.cjs"),b=require("./utilities/formatters/valuta/formatValuta.cjs"),D=require("./utilities/getThemeAndDensity.cjs"),P=require("./utilities/polymorphism/mergeProps.cjs"),K=require("./utilities/polymorphism/mergeRefs.cjs"),F=require("./utilities/polymorphism/SlotComponent.cjs"),y=require("./utilities/validators/isValidEpost/isValidEpost.cjs"),G=require("./utilities/validators/isValidTelefonnummer/isValidTelefonnummer.cjs"),w=require("./utilities/validators/isValidRegistreringsnummer/isValidRegistreringsnummer.cjs"),C=require("./utilities/validators/isValidChassisnummer/isValidChassisnummer.cjs"),W=require("./utilities/validators/isValidDogId/isValidDogId.cjs"),H=require("./utilities/validators/isExactLength/isExactLength.cjs"),B=require("./utilities/validators/isInteger/isInteger.cjs"),U=require("./utilities/validators/isValidFodselsnummer/isValidFodselsnummer.cjs"),X=require("./utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.cjs"),_=require("./utilities/validators/isValidName/isValidName.cjs"),J=require("./utilities/validators/hasMinimumWords/hasMinimumWords.cjs"),z=require("./utilities/validators/hasNoIllegalCharacters/hasNoIllegalCharacters.cjs"),Q=require("./utilities/tabListener.cjs"),Y=require("./utilities/valuePair.cjs");exports.tokens=e,exports.useAnimatedDetails=s.useAnimatedDetails,exports.useAnimatedHeight=r.useAnimatedHeight,exports.useAnimatedHeightBetween=i.useAnimatedHeightBetween,exports.useAutoAnimatedHeight=t.useAutoAnimatedHeight,exports.useBrowserPreferences=o.useBrowserPreferences,exports.useIntersectionObserver=u.useIntersectionObserver,exports.useLocalStorage=a.useLocalStorage,exports.useMutationObserver=m.useMutationObserver,exports.usePreviousValue=n.usePreviousValue,exports.useProgressiveImg=l.useProgressiveImg,exports.useScreen=d.useScreen,exports.useScrollIntoView=c.useScrollIntoView,exports.useAriaLiveRegion=g.useAriaLiveRegion,exports.useClickOutside=p.useClickOutside,exports.useFocusOutside=h.useFocusOutside,exports.useElementDimensions=x.useElementDimensions,exports.useId=f.useId,exports.useKeyListener=j.useKeyListener,exports.useListNavigation=q.useListNavigation,exports.useSwipeGesture=E.useSwipeGesture,exports.unicode=V.unicode,exports.formatNumber=v.formatNumber,exports.parseNumber=M.parseNumber,exports.registerWithFodselsnummerMask=k.registerWithFodselsnummerMask,exports.registerWithKontonummerMask=k.registerWithKontonummerMask,exports.registerWithKortnummerMask=k.registerWithKortnummerMask,exports.registerWithMasks=k.registerWithMasks,exports.registerWithTelefonnummerMask=k.registerWithTelefonnummerMask,exports.formatAvstand=O.formatAvstand,exports.formatBytes=N.formatBytes,exports.formatDate=R.formatDate,exports.FODSELSNUMMER_REGEX=A.FODSELSNUMMER_REGEX,exports.formatFodselsnummer=A.formatFodselsnummer,exports.ORGANISASJONSNUMMER_REGEX=S.ORGANISASJONSNUMMER_REGEX,exports.formatOrganisasjonsnummer=S.formatOrganisasjonsnummer,exports.KONTONUMMER_REGEX=I.KONTONUMMER_REGEX,exports.formatKontonummer=I.formatKontonummer,exports.KORTNUMMER_REGEX=L.KORTNUMMER_REGEX,exports.formatKortnummer=L.formatKortnummer,exports.TELEFONNUMMER_REGEX=T.TELEFONNUMMER_REGEX,exports.formatTelefonnummer=T.formatTelefonnummer,exports.formatValuta=b.formatValuta,exports.getThemeAndDensity=D.getThemeAndDensity,exports.mergeProps=P.mergeProps,exports.mergeRefs=K.mergeRefs,exports.SlotComponent=F.SlotComponent,exports.isValidEpost=y.isValidEpost,exports.isValidTelefonnummer=G.isValidTelefonnummer,exports.isValidRegistreringsnummer=w.isValidRegistreringsnummer,exports.isValidChassisnummer=C.isValidChassisnummer,exports.isValidDogId=W.isValidDogId,exports.isExactLength=H.isExactLength,exports.isInteger=B.isInteger,exports.isValidFodselsnummer=U.isValidFodselsnummer,exports.isValidOrganisasjonsnummer=X.isValidOrganisasjonsnummer,exports.isValidName=_.isValidName,exports.hasMinimumWords=J.hasMinimumWords,exports.hasNoIllegalCharacters=z.hasNoIllegalCharacters,exports.initTabListener=Q.initTabListener,exports.getValuePair=Y.getValuePair;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,4 +1,3 @@
1
- export * from './components/index.cjs';
2
1
  export * from './core/index.cjs';
3
2
  export * from './hooks/index.cjs';
4
3
  export * from './utilities/index.cjs';
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t={full:/^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])(\d{2}|\d{4})$/,partial:/^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])?(\d{1,4})?$/};exports.DATE_REGEX=t,exports.formatDate=function(t){return`${`${t.getDate()}`.padStart(2,"0")}.${`${t.getMonth()+1}`.padStart(2,"0")}.${t.getFullYear()}`},exports.formatDateString=function(e,r){const a=e.replace(/\D/g,""),l=null!=r&&r.partial?t.partial:t.full,o=a.match(l);return o?o.slice(1).filter(Boolean).join("."):e};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t={full:/^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])(\d{2}|\d{4})$/,partial:/^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])?(\d{1,4})?$/};exports.DATE_REGEX=t,exports.formatDate=function(t){return`${`${t.getDate()}`.padStart(2,"0")}.${`${t.getMonth()+1}`.padStart(2,"0")}.${t.getFullYear()}`},exports.formatDateString=function(e,r){const a=e.replace(/\D/g,""),o=r?.partial?t.partial:t.full,l=a.match(o);return l?l.slice(1).filter(Boolean).join("."):e};
2
2
  //# sourceMappingURL=formatDate.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatDate.cjs","sources":["../../../../../src/utilities/formatters/date/formatDate.ts"],"sourcesContent":["/**\n * Formaterer en dato med \"dd.mm.yyyy\"-format.\n * @param date Verdien som skal formateres\n * @returns Verdien i \"dd.mm.yyyy\"-format\n */\nexport function formatDate(date: Date): string {\n const day = `${date.getDate()}`.padStart(2, \"0\");\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n return `${day}.${month}.${date.getFullYear()}`;\n}\n\nexport const DATE_REGEX = {\n // Tillater datoer på formene DDMMYY og DDMMYYYY\n full: /^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])(\\d{2}|\\d{4})$/,\n partial: /^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])?(\\d{1,4})?$/,\n};\n\ntype FormatDateStringOptions = {\n partial?: boolean;\n};\n\nexport function formatDateString(\n input: string,\n options?: FormatDateStringOptions,\n): string {\n const strippedInput = input.replace(/\\D/g, \"\");\n const regex = options?.partial ? DATE_REGEX.partial : DATE_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(\".\");\n}\n"],"names":["DATE_REGEX","full","partial","date","getDate","padStart","getMonth","getFullYear","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join"],"mappings":"gFAWO,MAAMA,EAAa,CAEtBC,KAAM,yDACNC,QAAS,gGATN,SAAoBC,GAGvB,MAAO,GAFK,GAAGA,EAAKC,YAAYC,SAAS,EAAG,QAC9B,GAAGF,EAAKG,WAAa,IAAID,SAAS,EAAG,QACzBF,EAAKI,eACnC,2BAYgB,SACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQ,MAAAH,GAAAA,EAASP,QAAUF,EAAWE,QAAUF,EAAWC,KAE3DY,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAK,KAHhCT,CAIf"}
1
+ {"version":3,"file":"formatDate.cjs","sources":["../../../../../src/utilities/formatters/date/formatDate.ts"],"sourcesContent":["/**\n * Formaterer en dato med \"dd.mm.yyyy\"-format.\n * @param date Verdien som skal formateres\n * @returns Verdien i \"dd.mm.yyyy\"-format\n */\nexport function formatDate(date: Date): string {\n const day = `${date.getDate()}`.padStart(2, \"0\");\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n return `${day}.${month}.${date.getFullYear()}`;\n}\n\nexport const DATE_REGEX = {\n // Tillater datoer på formene DDMMYY og DDMMYYYY\n full: /^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])(\\d{2}|\\d{4})$/,\n partial: /^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])?(\\d{1,4})?$/,\n};\n\ntype FormatDateStringOptions = {\n partial?: boolean;\n};\n\nexport function formatDateString(\n input: string,\n options?: FormatDateStringOptions,\n): string {\n const strippedInput = input.replace(/\\D/g, \"\");\n const regex = options?.partial ? DATE_REGEX.partial : DATE_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(\".\");\n}\n"],"names":["DATE_REGEX","full","partial","date","getDate","padStart","getMonth","getFullYear","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join"],"mappings":"gFAWO,MAAMA,EAAa,CAEtBC,KAAM,yDACNC,QAAS,gGATN,SAAoBC,GAGvB,MAAO,GAFK,GAAGA,EAAKC,YAAYC,SAAS,EAAG,QAC9B,GAAGF,EAAKG,WAAa,IAAID,SAAS,EAAG,QACzBF,EAAKI,eACnC,2BAYgB,SACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQH,GAASP,QAAUF,EAAWE,QAAUF,EAAWC,KAE3DY,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAK,KAHhCT,CAIf"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../index-CaISwoxr.cjs"),t={full:/^(\d{6})(\d{5})$/,partial:/^(\d{6})(\d{1,5})?$/};exports.FODSELSNUMMER_REGEX=t,exports.formatFodselsnummer=function(r,l){const o=r.replace(/\W/g,""),a=null!=l&&l.partial?t.partial:t.full,i=o.match(a);return i?i.slice(1).filter(Boolean).join(e.NON_BREAKING_SPACE):r};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../index-CaISwoxr.cjs"),t={full:/^(\d{6})(\d{5})$/,partial:/^(\d{6})(\d{1,5})?$/};exports.FODSELSNUMMER_REGEX=t,exports.formatFodselsnummer=function(r,l){const o=r.replace(/\W/g,""),a=l?.partial?t.partial:t.full,i=o.match(a);return i?i.slice(1).filter(Boolean).join(e.NON_BREAKING_SPACE):r};
2
2
  //# sourceMappingURL=formatFodselsnummer.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatFodselsnummer.cjs","sources":["../../../../../src/utilities/formatters/fodselsnummer/formatFodselsnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const FODSELSNUMMER_REGEX = {\n full: /^(\\d{6})(\\d{5})$/,\n partial: /^(\\d{6})(\\d{1,5})?$/,\n};\n\ntype FormatFodselsnummerOptions = {\n partial?: boolean;\n};\n\n/**\n * Formaterer et fødselsnummer. Delene av fødselsnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig fødselsnummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatFodselsnummer(\n input: string,\n options?: FormatFodselsnummerOptions,\n) {\n const strippedInput = input.replace(/\\W/g, \"\");\n const regex = options?.partial\n ? FODSELSNUMMER_REGEX.partial\n : FODSELSNUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(unicode.NON_BREAKING_SPACE);\n}\n"],"names":["FODSELSNUMMER_REGEX","full","partial","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kIAEaA,EAAsB,CAC/BC,KAAM,mBACNC,QAAS,iFAaG,SACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQ,MAAAH,GAAAA,EAASF,QACjBF,EAAoBE,QACpBF,EAAoBC,KAEpBO,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,sBAHhCV,CAIf"}
1
+ {"version":3,"file":"formatFodselsnummer.cjs","sources":["../../../../../src/utilities/formatters/fodselsnummer/formatFodselsnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const FODSELSNUMMER_REGEX = {\n full: /^(\\d{6})(\\d{5})$/,\n partial: /^(\\d{6})(\\d{1,5})?$/,\n};\n\ntype FormatFodselsnummerOptions = {\n partial?: boolean;\n};\n\n/**\n * Formaterer et fødselsnummer. Delene av fødselsnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig fødselsnummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatFodselsnummer(\n input: string,\n options?: FormatFodselsnummerOptions,\n) {\n const strippedInput = input.replace(/\\W/g, \"\");\n const regex = options?.partial\n ? FODSELSNUMMER_REGEX.partial\n : FODSELSNUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(unicode.NON_BREAKING_SPACE);\n}\n"],"names":["FODSELSNUMMER_REGEX","full","partial","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kIAEaA,EAAsB,CAC/BC,KAAM,mBACNC,QAAS,iFAaG,SACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQH,GAASF,QACjBF,EAAoBE,QACpBF,EAAoBC,KAEpBO,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,sBAHhCV,CAIf"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../index-CaISwoxr.cjs"),t={full:/^(\d{4})(\d{2})(\d{5})$/,partial:/^(\d{4})(\d{1,2})?(\d{1,5})?$/};exports.KONTONUMMER_REGEX=t,exports.formatKontonummer=function(r,l){const o=r.replace(/\W/g,""),a=null!=l&&l.partial?t.partial:t.full,n=o.match(a);return n?n.slice(1).filter(Boolean).join((null==l?void 0:l.separator)||e.NON_BREAKING_SPACE):r};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../index-CaISwoxr.cjs"),t={full:/^(\d{4})(\d{2})(\d{5})$/,partial:/^(\d{4})(\d{1,2})?(\d{1,5})?$/};exports.KONTONUMMER_REGEX=t,exports.formatKontonummer=function(r,o){const a=r.replace(/\W/g,""),l=o?.partial?t.partial:t.full,i=a.match(l);return i?i.slice(1).filter(Boolean).join(o?.separator||e.NON_BREAKING_SPACE):r};
2
2
  //# sourceMappingURL=formatKontonummer.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatKontonummer.cjs","sources":["../../../../../src/utilities/formatters/kontonummer/formatKontonummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const KONTONUMMER_REGEX = {\n full: /^(\\d{4})(\\d{2})(\\d{5})$/,\n partial: /^(\\d{4})(\\d{1,2})?(\\d{1,5})?$/,\n};\n\ntype FormatKontonummerOptions = {\n partial?: boolean;\n separator?: string;\n};\n\n/**\n * Formaterer et kontonummer, med eller uten punktum som skilletegn. Default er med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig kontonummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatKontonummer(\n input: string,\n options?: FormatKontonummerOptions,\n) {\n const strippedInput = input.replace(/\\W/g, \"\");\n const regex = options?.partial\n ? KONTONUMMER_REGEX.partial\n : KONTONUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match\n .slice(1)\n .filter(Boolean)\n .join(options?.separator || unicode.NON_BREAKING_SPACE);\n}\n"],"names":["KONTONUMMER_REGEX","full","partial","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","separator","unicode.NON_BREAKING_SPACE"],"mappings":"kIAEaA,EAAoB,CAC7BC,KAAM,0BACNC,QAAS,uFAcG,SACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQ,MAAAH,GAAAA,EAASF,QACjBF,EAAkBE,QAClBF,EAAkBC,KAElBO,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EACFC,MAAM,GACNC,OAAOC,SACPC,MAAK,MAAAR,OAAA,EAAAA,EAASS,YAAaC,sBANrBX,CAOf"}
1
+ {"version":3,"file":"formatKontonummer.cjs","sources":["../../../../../src/utilities/formatters/kontonummer/formatKontonummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const KONTONUMMER_REGEX = {\n full: /^(\\d{4})(\\d{2})(\\d{5})$/,\n partial: /^(\\d{4})(\\d{1,2})?(\\d{1,5})?$/,\n};\n\ntype FormatKontonummerOptions = {\n partial?: boolean;\n separator?: string;\n};\n\n/**\n * Formaterer et kontonummer, med eller uten punktum som skilletegn. Default er med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig kontonummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatKontonummer(\n input: string,\n options?: FormatKontonummerOptions,\n) {\n const strippedInput = input.replace(/\\W/g, \"\");\n const regex = options?.partial\n ? KONTONUMMER_REGEX.partial\n : KONTONUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match\n .slice(1)\n .filter(Boolean)\n .join(options?.separator || unicode.NON_BREAKING_SPACE);\n}\n"],"names":["KONTONUMMER_REGEX","full","partial","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","separator","unicode.NON_BREAKING_SPACE"],"mappings":"kIAEaA,EAAoB,CAC7BC,KAAM,0BACNC,QAAS,uFAcG,SACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQH,GAASF,QACjBF,EAAkBE,QAClBF,EAAkBC,KAElBO,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EACFC,MAAM,GACNC,OAAOC,SACPC,KAAKR,GAASS,WAAaC,sBANrBX,CAOf"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../index-CaISwoxr.cjs"),t={full:/^(\d{4})(\d{4})(\d{4})(\d{4})$/,partial:/^(\d{4})(\d{1,4})?(\d{1,4})?(\d{1,4})?$/};exports.KORTNUMMER_REGEX=t,exports.formatKortnummer=function(r,l){const o=r.replace(/[\s-.]/g,""),a=null!=l&&l.partial?t.partial:t.full,i=o.match(a);return i?i.slice(1).filter(Boolean).join(e.NON_BREAKING_SPACE):r};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../index-CaISwoxr.cjs"),t={full:/^(\d{4})(\d{4})(\d{4})(\d{4})$/,partial:/^(\d{4})(\d{1,4})?(\d{1,4})?(\d{1,4})?$/};exports.KORTNUMMER_REGEX=t,exports.formatKortnummer=function(r,o){const l=r.replace(/[\s-.]/g,""),a=o?.partial?t.partial:t.full,i=l.match(a);return i?i.slice(1).filter(Boolean).join(e.NON_BREAKING_SPACE):r};
2
2
  //# sourceMappingURL=formatKortnummer.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatKortnummer.cjs","sources":["../../../../../src/utilities/formatters/kortnummer/formatKortnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const KORTNUMMER_REGEX = {\n full: /^(\\d{4})(\\d{4})(\\d{4})(\\d{4})$/,\n partial: /^(\\d{4})(\\d{1,4})?(\\d{1,4})?(\\d{1,4})?$/,\n};\n\ntype FormatKortnummerOptions = {\n partial?: boolean;\n};\n\n/**\n * Formaterer et kortnummer. Delene av kortnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig kortnummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatKortnummer(\n input: string,\n options?: FormatKortnummerOptions,\n) {\n const strippedInput = input.replace(/[\\s-.]/g, \"\");\n const regex = options?.partial\n ? KORTNUMMER_REGEX.partial\n : KORTNUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(unicode.NON_BREAKING_SPACE);\n}\n"],"names":["KORTNUMMER_REGEX","full","partial","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kIAEaA,EAAmB,CAC5BC,KAAM,iCACNC,QAAS,+FAaG,SACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,UAAW,IACzCC,EAAQ,MAAAH,GAAAA,EAASF,QACjBF,EAAiBE,QACjBF,EAAiBC,KAEjBO,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,sBAHhCV,CAIf"}
1
+ {"version":3,"file":"formatKortnummer.cjs","sources":["../../../../../src/utilities/formatters/kortnummer/formatKortnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const KORTNUMMER_REGEX = {\n full: /^(\\d{4})(\\d{4})(\\d{4})(\\d{4})$/,\n partial: /^(\\d{4})(\\d{1,4})?(\\d{1,4})?(\\d{1,4})?$/,\n};\n\ntype FormatKortnummerOptions = {\n partial?: boolean;\n};\n\n/**\n * Formaterer et kortnummer. Delene av kortnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig kortnummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatKortnummer(\n input: string,\n options?: FormatKortnummerOptions,\n) {\n const strippedInput = input.replace(/[\\s-.]/g, \"\");\n const regex = options?.partial\n ? KORTNUMMER_REGEX.partial\n : KORTNUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(unicode.NON_BREAKING_SPACE);\n}\n"],"names":["KORTNUMMER_REGEX","full","partial","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kIAEaA,EAAmB,CAC5BC,KAAM,iCACNC,QAAS,+FAaG,SACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,UAAW,IACzCC,EAAQH,GAASF,QACjBF,EAAiBE,QACjBF,EAAiBC,KAEjBO,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,sBAHhCV,CAIf"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../index-CaISwoxr.cjs"),r={full:/^(\d{3})(\d{3})(\d{3})$/,partial:/^(\d{3})(\d{1,3})?(\d{1,5})?$/};exports.ORGANISASJONSNUMMER_REGEX=r,exports.formatOrganisasjonsnummer=function(t,l){const o=t.replace(/[\s-.]/g,""),a=null!=l&&l.partial?r.partial:r.full,n=o.match(a);return n?n.slice(1).filter(Boolean).join(e.NON_BREAKING_SPACE):t};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../index-CaISwoxr.cjs"),r={full:/^(\d{3})(\d{3})(\d{3})$/,partial:/^(\d{3})(\d{1,3})?(\d{1,5})?$/};exports.ORGANISASJONSNUMMER_REGEX=r,exports.formatOrganisasjonsnummer=function(t,o){const a=t.replace(/[\s-.]/g,""),l=o?.partial?r.partial:r.full,i=a.match(l);return i?i.slice(1).filter(Boolean).join(e.NON_BREAKING_SPACE):t};
2
2
  //# sourceMappingURL=formatOrganisasjonsnummer.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatOrganisasjonsnummer.cjs","sources":["../../../../../src/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const ORGANISASJONSNUMMER_REGEX = {\n full: /^(\\d{3})(\\d{3})(\\d{3})$/,\n partial: /^(\\d{3})(\\d{1,3})?(\\d{1,5})?$/,\n};\n\ntype FormatOrganisasjonsnummerOptions = {\n partial?: boolean;\n};\n\n/**\n * Formaterer et organisasjonsnummer. Delene av organisasjonsnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig organisasjonsnummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatOrganisasjonsnummer(\n input: string,\n options?: FormatOrganisasjonsnummerOptions,\n) {\n const strippedInput = input.replace(/[\\s-.]/g, \"\");\n const regex = options?.partial\n ? ORGANISASJONSNUMMER_REGEX.partial\n : ORGANISASJONSNUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(unicode.NON_BREAKING_SPACE);\n}\n"],"names":["ORGANISASJONSNUMMER_REGEX","full","partial","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kIAEaA,EAA4B,CACrCC,KAAM,0BACNC,QAAS,uGAaG,SACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,UAAW,IACzCC,EAAQ,MAAAH,GAAAA,EAASF,QACjBF,EAA0BE,QAC1BF,EAA0BC,KAE1BO,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,sBAHhCV,CAIf"}
1
+ {"version":3,"file":"formatOrganisasjonsnummer.cjs","sources":["../../../../../src/utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const ORGANISASJONSNUMMER_REGEX = {\n full: /^(\\d{3})(\\d{3})(\\d{3})$/,\n partial: /^(\\d{3})(\\d{1,3})?(\\d{1,5})?$/,\n};\n\ntype FormatOrganisasjonsnummerOptions = {\n partial?: boolean;\n};\n\n/**\n * Formaterer et organisasjonsnummer. Delene av organisasjonsnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Angi at verdien er et ufullstendig organisasjonsnummer og likevel skal formateres.\n * @returns Den formaterte verdien\n */\nexport function formatOrganisasjonsnummer(\n input: string,\n options?: FormatOrganisasjonsnummerOptions,\n) {\n const strippedInput = input.replace(/[\\s-.]/g, \"\");\n const regex = options?.partial\n ? ORGANISASJONSNUMMER_REGEX.partial\n : ORGANISASJONSNUMMER_REGEX.full;\n\n const match = strippedInput.match(regex);\n\n if (!match) {\n return input;\n }\n\n return match.slice(1).filter(Boolean).join(unicode.NON_BREAKING_SPACE);\n}\n"],"names":["ORGANISASJONSNUMMER_REGEX","full","partial","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kIAEaA,EAA4B,CACrCC,KAAM,0BACNC,QAAS,uGAaG,SACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,UAAW,IACzCC,EAAQH,GAASF,QACjBF,EAA0BE,QAC1BF,EAA0BC,KAE1BO,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,sBAHhCV,CAIf"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../../index-CaISwoxr.cjs"),e={mobil:/^([8]\d{2})(\d{2})(\d{3})$/,fast:/^([2-9]\d)(\d{2})(\d{2})(\d{2})$/,mobilPartial:/^([8]\d{2})(\d{1,2})?(\d{1,3})?$/,fastPartial:/^([2-9]\d)(\d{1,2})?(\d{1,2})?(\d{1,2})?$/};exports.TELEFONNUMMER_REGEX=e,exports.formatTelefonnummer=function(l,o){const a=l.replace(/\W/g,""),r=null!=o&&o.partial?e.mobilPartial:e.mobil,d=null!=o&&o.partial?e.fastPartial:e.fast,i=a.match(r)||a.match(d);return i?[null!=o&&o.countryCode?`+${o.countryCode}`:void 0,...i.slice(1)].filter(Boolean).join(t.NON_BREAKING_SPACE):l};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../../index-CaISwoxr.cjs"),e={mobil:/^([8]\d{2})(\d{2})(\d{3})$/,fast:/^([2-9]\d)(\d{2})(\d{2})(\d{2})$/,mobilPartial:/^([8]\d{2})(\d{1,2})?(\d{1,3})?$/,fastPartial:/^([2-9]\d)(\d{1,2})?(\d{1,2})?(\d{1,2})?$/};exports.TELEFONNUMMER_REGEX=e,exports.formatTelefonnummer=function(o,a){const r=o.replace(/\W/g,""),d=a?.partial?e.mobilPartial:e.mobil,i=a?.partial?e.fastPartial:e.fast,l=r.match(d)||r.match(i);return l?[a?.countryCode?`+${a.countryCode}`:void 0,...l.slice(1)].filter(Boolean).join(t.NON_BREAKING_SPACE):o};
2
2
  //# sourceMappingURL=formatTelefonnummer.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatTelefonnummer.cjs","sources":["../../../../../src/utilities/formatters/telefonnummer/formatTelefonnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const TELEFONNUMMER_REGEX = {\n mobil: /^([8]\\d{2})(\\d{2})(\\d{3})$/,\n fast: /^([2-9]\\d)(\\d{2})(\\d{2})(\\d{2})$/,\n mobilPartial: /^([8]\\d{2})(\\d{1,2})?(\\d{1,3})?$/,\n fastPartial: /^([2-9]\\d)(\\d{1,2})?(\\d{1,2})?(\\d{1,2})?$/,\n};\n\ntype FormatTelefonnummerOptions = {\n partial?: boolean;\n countryCode?: string;\n};\n\n/**\n * Formaterer et telefonnummer etter språkrådets anbefalinger. Delene av telefonnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Inkluder en valgfri landkode, eller angi at verdien er et ufullstendig telefonnummer og likevel skal formateres.\n * @returns Den formatererte verdien\n */\nexport function formatTelefonnummer(\n input: string,\n options?: FormatTelefonnummerOptions,\n) {\n const strippedInput = input.replace(/\\W/g, \"\");\n const mobilRegex = options?.partial\n ? TELEFONNUMMER_REGEX.mobilPartial\n : TELEFONNUMMER_REGEX.mobil;\n const fastRegex = options?.partial\n ? TELEFONNUMMER_REGEX.fastPartial\n : TELEFONNUMMER_REGEX.fast;\n\n const match =\n strippedInput.match(mobilRegex) || strippedInput.match(fastRegex);\n\n if (!match) {\n return input;\n }\n\n return [\n options?.countryCode ? `+${options.countryCode}` : undefined,\n ...match.slice(1),\n ] // build array of number elements\n .filter(Boolean) // ensure all elements are valid\n .join(unicode.NON_BREAKING_SPACE); // build formattet string\n}\n"],"names":["TELEFONNUMMER_REGEX","mobil","fast","mobilPartial","fastPartial","input","options","strippedInput","replace","mobilRegex","partial","fastRegex","match","countryCode","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kIAEaA,EAAsB,CAC/BC,MAAO,6BACPC,KAAM,mCACNC,aAAc,mCACdC,YAAa,uGAcD,SACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAa,MAAAH,GAAAA,EAASI,QACtBV,EAAoBG,aACpBH,EAAoBC,MACpBU,EAAY,MAAAL,GAAAA,EAASI,QACrBV,EAAoBI,YACpBJ,EAAoBE,KAEpBU,EACFL,EAAcK,MAAMH,IAAeF,EAAcK,MAAMD,GAE3D,OAAKC,EAIE,CACH,MAAAN,GAAAA,EAASO,YAAc,IAAIP,EAAQO,mBAAgB,KAChDD,EAAME,MAAM,IAEdC,OAAOC,SACPC,KAAKC,EAAAA,oBARCb,CASf"}
1
+ {"version":3,"file":"formatTelefonnummer.cjs","sources":["../../../../../src/utilities/formatters/telefonnummer/formatTelefonnummer.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\n\nexport const TELEFONNUMMER_REGEX = {\n mobil: /^([8]\\d{2})(\\d{2})(\\d{3})$/,\n fast: /^([2-9]\\d)(\\d{2})(\\d{2})(\\d{2})$/,\n mobilPartial: /^([8]\\d{2})(\\d{1,2})?(\\d{1,3})?$/,\n fastPartial: /^([2-9]\\d)(\\d{1,2})?(\\d{1,2})?(\\d{1,2})?$/,\n};\n\ntype FormatTelefonnummerOptions = {\n partial?: boolean;\n countryCode?: string;\n};\n\n/**\n * Formaterer et telefonnummer etter språkrådets anbefalinger. Delene av telefonnummeret skilles med non-breaking space.\n * @param input Verdien som skal formateres\n * @param options Inkluder en valgfri landkode, eller angi at verdien er et ufullstendig telefonnummer og likevel skal formateres.\n * @returns Den formatererte verdien\n */\nexport function formatTelefonnummer(\n input: string,\n options?: FormatTelefonnummerOptions,\n) {\n const strippedInput = input.replace(/\\W/g, \"\");\n const mobilRegex = options?.partial\n ? TELEFONNUMMER_REGEX.mobilPartial\n : TELEFONNUMMER_REGEX.mobil;\n const fastRegex = options?.partial\n ? TELEFONNUMMER_REGEX.fastPartial\n : TELEFONNUMMER_REGEX.fast;\n\n const match =\n strippedInput.match(mobilRegex) || strippedInput.match(fastRegex);\n\n if (!match) {\n return input;\n }\n\n return [\n options?.countryCode ? `+${options.countryCode}` : undefined,\n ...match.slice(1),\n ] // build array of number elements\n .filter(Boolean) // ensure all elements are valid\n .join(unicode.NON_BREAKING_SPACE); // build formattet string\n}\n"],"names":["TELEFONNUMMER_REGEX","mobil","fast","mobilPartial","fastPartial","input","options","strippedInput","replace","mobilRegex","partial","fastRegex","match","countryCode","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kIAEaA,EAAsB,CAC/BC,MAAO,6BACPC,KAAM,mCACNC,aAAc,mCACdC,YAAa,uGAcD,SACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAaH,GAASI,QACtBV,EAAoBG,aACpBH,EAAoBC,MACpBU,EAAYL,GAASI,QACrBV,EAAoBI,YACpBJ,EAAoBE,KAEpBU,EACFL,EAAcK,MAAMH,IAAeF,EAAcK,MAAMD,GAE3D,OAAKC,EAIE,CACHN,GAASO,YAAc,IAAIP,EAAQO,mBAAgB,KAChDD,EAAME,MAAM,IAEdC,OAAOC,SACPC,KAAKC,EAAAA,oBARCb,CASf"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../date/formatDate.cjs"),r=require("../fodselsnummer/formatFodselsnummer.cjs"),t=require("../kontonummer/formatKontonummer.cjs"),n=require("../kortnummer/formatKortnummer.cjs"),m=require("../organisasjonsnummer/formatOrganisasjonsnummer.cjs"),s=require("../telefonnummer/formatTelefonnummer.cjs"),o=require("./formatNumber.cjs"),a={date:e.formatDateString,fodselsnummer:r.formatFodselsnummer,kortnummer:n.formatKortnummer,kontonummer:t.formatKontonummer,telefonnummer:s.formatTelefonnummer,number:o.formatNumber,organisasjonsnummer:m.formatOrganisasjonsnummer},u=e=>(r,t,n)=>{let m=0,s="";const o={setValueAs:e=>e.replace(/\s/g,""),onChange:o=>{var u;null==(u=null==n?void 0:n.onChange)||u.call(n,o);let i=0;const l=o.target.value.length;null!==o.target.selectionStart&&(i=o.target.selectionStart),r.setValue(t,a[e](o.target.value,{partial:!0}));let g=null;if(["Delete","Backspace"].includes(s)){g=m-(m-i)}else if(i<o.target.value.length){g=i+(o.target.value.length-l)}null!==g&&o.target.setSelectionRange(g,g,void 0)}};n&&Object.assign(o,n);const u=r.register(t,o),i={onKeyDown:e=>{null!==e.target.selectionStart&&(m=e.target.selectionStart),s=e.key}};return"number"===e&&(i.align="right"),Object.assign(u,i)},i=u("fodselsnummer"),l=u("kortnummer"),g=u("kontonummer"),f=u("telefonnummer");exports.registerWithFodselsnummerMask=i,exports.registerWithKontonummerMask=g,exports.registerWithKortnummerMask=l,exports.registerWithMasks=e=>({registerWithFodselsnummerMask:(r,t)=>u("fodselsnummer")(e,r,t),registerWithKortnummerMask:(r,t)=>u("kortnummer")(e,r,t),registerWithKontonummerMask:(r,t)=>u("kontonummer")(e,r,t),registerWithTelefonnummerMask:(r,t)=>u("telefonnummer")(e,r,t),registerWithOrganisasjonsnummerMask:(r,t)=>u("organisasjonsnummer")(e,r,t),registerWithDateMask:(r,t)=>u("date")(e,r,t),registerWithNumber:(r,t)=>u("number")(e,r,t)}),exports.registerWithTelefonnummerMask=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../date/formatDate.cjs"),r=require("../fodselsnummer/formatFodselsnummer.cjs"),t=require("../kontonummer/formatKontonummer.cjs"),n=require("../kortnummer/formatKortnummer.cjs"),m=require("../organisasjonsnummer/formatOrganisasjonsnummer.cjs"),s=require("../telefonnummer/formatTelefonnummer.cjs"),o=require("./formatNumber.cjs"),a={date:e.formatDateString,fodselsnummer:r.formatFodselsnummer,kortnummer:n.formatKortnummer,kontonummer:t.formatKontonummer,telefonnummer:s.formatTelefonnummer,number:o.formatNumber,organisasjonsnummer:m.formatOrganisasjonsnummer},u=e=>(r,t,n)=>{let m=0,s="";const o={setValueAs:e=>e.replace(/\s/g,""),onChange:o=>{n?.onChange?.(o);let u=0;const i=o.target.value.length;null!==o.target.selectionStart&&(u=o.target.selectionStart),r.setValue(t,a[e](o.target.value,{partial:!0}));let l=null;if(["Delete","Backspace"].includes(s)){l=m-(m-u)}else if(u<o.target.value.length){l=u+(o.target.value.length-i)}null!==l&&o.target.setSelectionRange(l,l,void 0)}};n&&Object.assign(o,n);const u=r.register(t,o),i={onKeyDown:e=>{null!==e.target.selectionStart&&(m=e.target.selectionStart),s=e.key}};return"number"===e&&(i.align="right"),Object.assign(u,i)},i=u("fodselsnummer"),l=u("kortnummer"),g=u("kontonummer"),f=u("telefonnummer");exports.registerWithFodselsnummerMask=i,exports.registerWithKontonummerMask=g,exports.registerWithKortnummerMask=l,exports.registerWithMasks=e=>({registerWithFodselsnummerMask:(r,t)=>u("fodselsnummer")(e,r,t),registerWithKortnummerMask:(r,t)=>u("kortnummer")(e,r,t),registerWithKontonummerMask:(r,t)=>u("kontonummer")(e,r,t),registerWithTelefonnummerMask:(r,t)=>u("telefonnummer")(e,r,t),registerWithOrganisasjonsnummerMask:(r,t)=>u("organisasjonsnummer")(e,r,t),registerWithDateMask:(r,t)=>u("date")(e,r,t),registerWithNumber:(r,t)=>u("number")(e,r,t)}),exports.registerWithTelefonnummerMask=f;
2
2
  //# sourceMappingURL=registerWithMask.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerWithMask.cjs","sources":["../../../../../src/utilities/formatters/util/registerWithMask.ts"],"sourcesContent":["import type { ChangeEvent, KeyboardEventHandler } from \"react\";\nimport type {\n FieldValues,\n Path,\n PathValue,\n RegisterOptions,\n UseFormRegisterReturn,\n UseFormReturn,\n} from \"react-hook-form\";\nimport { formatDateString } from \"../date/formatDate.js\";\nimport { formatFodselsnummer } from \"../fodselsnummer/formatFodselsnummer.js\";\nimport { formatKontonummer } from \"../kontonummer/formatKontonummer.js\";\nimport { formatKortnummer } from \"../kortnummer/formatKortnummer.js\";\nimport { formatOrganisasjonsnummer } from \"../organisasjonsnummer/formatOrganisasjonsnummer.js\";\nimport { formatTelefonnummer } from \"../telefonnummer/formatTelefonnummer.js\";\nimport { formatNumber } from \"./formatNumber.js\";\n\nconst formatters = {\n date: formatDateString,\n fodselsnummer: formatFodselsnummer,\n kortnummer: formatKortnummer,\n kontonummer: formatKontonummer,\n telefonnummer: formatTelefonnummer,\n number: formatNumber,\n organisasjonsnummer: formatOrganisasjonsnummer,\n};\nexport type Formatter = keyof typeof formatters;\n\nexport type RegisterWithMaskOptions<T extends FieldValues> = Omit<\n RegisterOptions<T>,\n \"setValueAs\"\n>;\n\nconst registerWithMask =\n (formatter: Formatter) =>\n <T extends FieldValues>(\n form: UseFormReturn<T>,\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ) => {\n let onKeyDownCaretPosition = 0;\n let onKeyDownKeyPressed = \"\";\n\n const setValueAs = (value: string) => value.replace(/\\s/g, \"\");\n const onChange = (event: ChangeEvent<HTMLInputElement>) => {\n options?.onChange?.(event);\n\n // save some values before event.target.value change\n let onChangeCaretPosition = 0;\n const inputLength = event.target.value.length;\n\n // type checking formalities\n if (event.target.selectionStart !== null) {\n onChangeCaretPosition = event.target.selectionStart;\n }\n\n form.setValue(\n name,\n formatters[formatter](event.target.value, {\n partial: true,\n }) as PathValue<T, Path<T>>,\n );\n\n let newPosition: number | null = null;\n\n if ([\"Delete\", \"Backspace\"].includes(onKeyDownKeyPressed)) {\n // handle removing content\n // calculate how much to move the caret, this also accounts for removing sections of text\n const delta = onKeyDownCaretPosition - onChangeCaretPosition;\n\n // calculate new caret position (- because we move backwards)\n newPosition = onKeyDownCaretPosition - delta;\n } else if (onChangeCaretPosition < event.target.value.length) {\n // handle adding content from inside the string\n // calculate how much to move the caret forwards\n const delta = event.target.value.length - inputLength;\n\n // calculate new caret position (+ because we move forwards)\n newPosition = onChangeCaretPosition + delta;\n }\n\n if (newPosition !== null) {\n event.target.setSelectionRange(\n newPosition,\n newPosition,\n undefined,\n );\n }\n };\n\n const registerOptions: RegisterOptions<T, Path<T>> = {\n setValueAs,\n onChange,\n };\n if (options) {\n Object.assign(registerOptions, options);\n }\n const register = form.register(name, registerOptions);\n\n // save the caret position before the change occured\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n if ((event.target as HTMLInputElement).selectionStart !== null) {\n onKeyDownCaretPosition = (event.target as HTMLInputElement)\n .selectionStart as number;\n }\n onKeyDownKeyPressed = event.key;\n };\n\n // add onKeyDown event handler to the registered input\n const extra: Record<string, unknown> = {\n onKeyDown,\n };\n\n if (formatter === \"number\") {\n extra.align = \"right\"; // Se https://github.com/fremtind/jokul/pull/2898\n }\n\n return Object.assign(register, extra);\n };\n\n/** @deprecated Bruk `registerWithMasks` i stedet */\nexport const registerWithFodselsnummerMask = registerWithMask(\"fodselsnummer\");\n/** @deprecated Bruk `registerWithMasks` i stedet */\nexport const registerWithKortnummerMask = registerWithMask(\"kortnummer\");\n/** @deprecated Bruk `registerWithMasks` i stedet */\nexport const registerWithKontonummerMask = registerWithMask(\"kontonummer\");\n/** @deprecated Bruk `registerWithMasks` i stedet */\nexport const registerWithTelefonnummerMask = registerWithMask(\"telefonnummer\");\n\n/**\n * Hjelpefunksjon for React Hook Form som lar deg bruke formateringsfunksjonene i denne pakken som inputmasker.\n */\nexport const registerWithMasks = <T extends FieldValues>(\n form: UseFormReturn<T>,\n) => ({\n registerWithFodselsnummerMask: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn =>\n registerWithMask(\"fodselsnummer\")<T>(form, name, options),\n registerWithKortnummerMask: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn =>\n registerWithMask(\"kortnummer\")<T>(form, name, options),\n registerWithKontonummerMask: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn =>\n registerWithMask(\"kontonummer\")<T>(form, name, options),\n registerWithTelefonnummerMask: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn =>\n registerWithMask(\"telefonnummer\")<T>(form, name, options),\n registerWithOrganisasjonsnummerMask: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn =>\n registerWithMask(\"organisasjonsnummer\")<T>(form, name, options),\n registerWithDateMask: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn =>\n registerWithMask(\"date\")<T>(form, name, options),\n registerWithNumber: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn & { align: \"right\" } =>\n registerWithMask(\"number\")<T>(\n form,\n name,\n options,\n ) as unknown as UseFormRegisterReturn & {\n align: \"right\";\n },\n});\n"],"names":["formatters","date","formatDateString","fodselsnummer","formatFodselsnummer","kortnummer","formatKortnummer","kontonummer","formatKontonummer","telefonnummer","formatTelefonnummer","number","formatNumber","organisasjonsnummer","formatOrganisasjonsnummer","registerWithMask","formatter","form","name","options","onKeyDownCaretPosition","onKeyDownKeyPressed","registerOptions","setValueAs","value","replace","onChange","event","_a","call","onChangeCaretPosition","inputLength","target","length","selectionStart","setValue","partial","newPosition","includes","setSelectionRange","Object","assign","register","extra","onKeyDown","key","align","registerWithFodselsnummerMask","registerWithKortnummerMask","registerWithKontonummerMask","registerWithTelefonnummerMask","registerWithOrganisasjonsnummerMask","registerWithDateMask","registerWithNumber"],"mappings":"0aAiBMA,EAAa,CACfC,KAAMC,EAAAA,iBACNC,cAAeC,EAAAA,oBACfC,WAAYC,EAAAA,iBACZC,YAAaC,EAAAA,kBACbC,cAAeC,EAAAA,oBACfC,OAAQC,EAAAA,aACRC,oBAAqBC,EAAAA,2BASnBC,EACDC,GACD,CACIC,EACAC,EACAC,KAEA,IAAIC,EAAyB,EACzBC,EAAsB,GAiD1B,MAAMC,EAA+C,CACjDC,WAhDgBC,GAAkBA,EAAMC,QAAQ,MAAO,IAiDvDC,SAhDcC,UACd,OAAAC,EAAA,MAAAT,OAAA,EAAAA,EAASO,WAATE,EAAAC,KAAAV,EAAoBQ,GAGpB,IAAIG,EAAwB,EACtB,MAAAC,EAAcJ,EAAMK,OAAOR,MAAMS,OAGH,OAAhCN,EAAMK,OAAOE,iBACbJ,EAAwBH,EAAMK,OAAOE,gBAGpCjB,EAAAkB,SACDjB,EACAlB,EAAWgB,GAAWW,EAAMK,OAAOR,MAAO,CACtCY,SAAS,KAIjB,IAAIC,EAA6B,KAEjC,GAAI,CAAC,SAAU,aAAaC,SAASjB,GAAsB,CAMvDgB,EAAcjB,GAHAA,EAAyBU,EAIhC,MAAAA,GAAAA,EAAwBH,EAAMK,OAAOR,MAAMS,OAAQ,CAM1DI,EAAcP,GAHAH,EAAMK,OAAOR,MAAMS,OAASF,EAGJ,CAGtB,OAAhBM,GACAV,EAAMK,OAAOO,kBACTF,EACAA,OACA,EACJ,GAQJlB,GACOqB,OAAAC,OAAOnB,EAAiBH,GAEnC,MAAMuB,EAAWzB,EAAKyB,SAASxB,EAAMI,GAY/BqB,EAAiC,CACnCC,UAVuDjB,IACG,OAArDA,EAAMK,OAA4BE,iBACnCd,EAA0BO,EAAMK,OAC3BE,gBAETb,EAAsBM,EAAMkB,MAQhC,MAAkB,WAAd7B,IACA2B,EAAMG,MAAQ,SAGXN,OAAOC,OAAOC,EAAUC,EAAK,EAI/BI,EAAgChC,EAAiB,iBAEjDiC,EAA6BjC,EAAiB,cAE9CkC,EAA8BlC,EAAiB,eAE/CmC,EAAgCnC,EAAiB,8JAM1DE,IACE,CACF8B,8BAA+B,CAC3B7B,EACAC,IAEAJ,EAAiB,gBAAjBA,CAAqCE,EAAMC,EAAMC,GACrD6B,2BAA4B,CACxB9B,EACAC,IAEAJ,EAAiB,aAAjBA,CAAkCE,EAAMC,EAAMC,GAClD8B,4BAA6B,CACzB/B,EACAC,IAEAJ,EAAiB,cAAjBA,CAAmCE,EAAMC,EAAMC,GACnD+B,8BAA+B,CAC3BhC,EACAC,IAEAJ,EAAiB,gBAAjBA,CAAqCE,EAAMC,EAAMC,GACrDgC,oCAAqC,CACjCjC,EACAC,IAEAJ,EAAiB,sBAAjBA,CAA2CE,EAAMC,EAAMC,GAC3DiC,qBAAsB,CAClBlC,EACAC,IAEAJ,EAAiB,OAAjBA,CAA4BE,EAAMC,EAAMC,GAC5CkC,mBAAoB,CAChBnC,EACAC,IAEAJ,EAAiB,SAAjBA,CACIE,EACAC,EACAC"}
1
+ {"version":3,"file":"registerWithMask.cjs","sources":["../../../../../src/utilities/formatters/util/registerWithMask.ts"],"sourcesContent":["import type { ChangeEvent, KeyboardEventHandler } from \"react\";\nimport type {\n FieldValues,\n Path,\n PathValue,\n RegisterOptions,\n UseFormRegisterReturn,\n UseFormReturn,\n} from \"react-hook-form\";\nimport { formatDateString } from \"../date/formatDate.js\";\nimport { formatFodselsnummer } from \"../fodselsnummer/formatFodselsnummer.js\";\nimport { formatKontonummer } from \"../kontonummer/formatKontonummer.js\";\nimport { formatKortnummer } from \"../kortnummer/formatKortnummer.js\";\nimport { formatOrganisasjonsnummer } from \"../organisasjonsnummer/formatOrganisasjonsnummer.js\";\nimport { formatTelefonnummer } from \"../telefonnummer/formatTelefonnummer.js\";\nimport { formatNumber } from \"./formatNumber.js\";\n\nconst formatters = {\n date: formatDateString,\n fodselsnummer: formatFodselsnummer,\n kortnummer: formatKortnummer,\n kontonummer: formatKontonummer,\n telefonnummer: formatTelefonnummer,\n number: formatNumber,\n organisasjonsnummer: formatOrganisasjonsnummer,\n};\nexport type Formatter = keyof typeof formatters;\n\nexport type RegisterWithMaskOptions<T extends FieldValues> = Omit<\n RegisterOptions<T>,\n \"setValueAs\"\n>;\n\nconst registerWithMask =\n (formatter: Formatter) =>\n <T extends FieldValues>(\n form: UseFormReturn<T>,\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ) => {\n let onKeyDownCaretPosition = 0;\n let onKeyDownKeyPressed = \"\";\n\n const setValueAs = (value: string) => value.replace(/\\s/g, \"\");\n const onChange = (event: ChangeEvent<HTMLInputElement>) => {\n options?.onChange?.(event);\n\n // save some values before event.target.value change\n let onChangeCaretPosition = 0;\n const inputLength = event.target.value.length;\n\n // type checking formalities\n if (event.target.selectionStart !== null) {\n onChangeCaretPosition = event.target.selectionStart;\n }\n\n form.setValue(\n name,\n formatters[formatter](event.target.value, {\n partial: true,\n }) as PathValue<T, Path<T>>,\n );\n\n let newPosition: number | null = null;\n\n if ([\"Delete\", \"Backspace\"].includes(onKeyDownKeyPressed)) {\n // handle removing content\n // calculate how much to move the caret, this also accounts for removing sections of text\n const delta = onKeyDownCaretPosition - onChangeCaretPosition;\n\n // calculate new caret position (- because we move backwards)\n newPosition = onKeyDownCaretPosition - delta;\n } else if (onChangeCaretPosition < event.target.value.length) {\n // handle adding content from inside the string\n // calculate how much to move the caret forwards\n const delta = event.target.value.length - inputLength;\n\n // calculate new caret position (+ because we move forwards)\n newPosition = onChangeCaretPosition + delta;\n }\n\n if (newPosition !== null) {\n event.target.setSelectionRange(\n newPosition,\n newPosition,\n undefined,\n );\n }\n };\n\n const registerOptions: RegisterOptions<T, Path<T>> = {\n setValueAs,\n onChange,\n };\n if (options) {\n Object.assign(registerOptions, options);\n }\n const register = form.register(name, registerOptions);\n\n // save the caret position before the change occured\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n if ((event.target as HTMLInputElement).selectionStart !== null) {\n onKeyDownCaretPosition = (event.target as HTMLInputElement)\n .selectionStart as number;\n }\n onKeyDownKeyPressed = event.key;\n };\n\n // add onKeyDown event handler to the registered input\n const extra: Record<string, unknown> = {\n onKeyDown,\n };\n\n if (formatter === \"number\") {\n extra.align = \"right\"; // Se https://github.com/fremtind/jokul/pull/2898\n }\n\n return Object.assign(register, extra);\n };\n\n/** @deprecated Bruk `registerWithMasks` i stedet */\nexport const registerWithFodselsnummerMask = registerWithMask(\"fodselsnummer\");\n/** @deprecated Bruk `registerWithMasks` i stedet */\nexport const registerWithKortnummerMask = registerWithMask(\"kortnummer\");\n/** @deprecated Bruk `registerWithMasks` i stedet */\nexport const registerWithKontonummerMask = registerWithMask(\"kontonummer\");\n/** @deprecated Bruk `registerWithMasks` i stedet */\nexport const registerWithTelefonnummerMask = registerWithMask(\"telefonnummer\");\n\n/**\n * Hjelpefunksjon for React Hook Form som lar deg bruke formateringsfunksjonene i denne pakken som inputmasker.\n */\nexport const registerWithMasks = <T extends FieldValues>(\n form: UseFormReturn<T>,\n) => ({\n registerWithFodselsnummerMask: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn =>\n registerWithMask(\"fodselsnummer\")<T>(form, name, options),\n registerWithKortnummerMask: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn =>\n registerWithMask(\"kortnummer\")<T>(form, name, options),\n registerWithKontonummerMask: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn =>\n registerWithMask(\"kontonummer\")<T>(form, name, options),\n registerWithTelefonnummerMask: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn =>\n registerWithMask(\"telefonnummer\")<T>(form, name, options),\n registerWithOrganisasjonsnummerMask: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn =>\n registerWithMask(\"organisasjonsnummer\")<T>(form, name, options),\n registerWithDateMask: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn =>\n registerWithMask(\"date\")<T>(form, name, options),\n registerWithNumber: (\n name: Path<T>,\n options?: RegisterWithMaskOptions<T>,\n ): UseFormRegisterReturn & { align: \"right\" } =>\n registerWithMask(\"number\")<T>(\n form,\n name,\n options,\n ) as unknown as UseFormRegisterReturn & {\n align: \"right\";\n },\n});\n"],"names":["formatters","date","formatDateString","fodselsnummer","formatFodselsnummer","kortnummer","formatKortnummer","kontonummer","formatKontonummer","telefonnummer","formatTelefonnummer","number","formatNumber","organisasjonsnummer","formatOrganisasjonsnummer","registerWithMask","formatter","form","name","options","onKeyDownCaretPosition","onKeyDownKeyPressed","registerOptions","setValueAs","value","replace","onChange","event","onChangeCaretPosition","inputLength","target","length","selectionStart","setValue","partial","newPosition","includes","setSelectionRange","Object","assign","register","extra","onKeyDown","key","align","registerWithFodselsnummerMask","registerWithKortnummerMask","registerWithKontonummerMask","registerWithTelefonnummerMask","registerWithOrganisasjonsnummerMask","registerWithDateMask","registerWithNumber"],"mappings":"0aAiBMA,EAAa,CACfC,KAAMC,EAAAA,iBACNC,cAAeC,EAAAA,oBACfC,WAAYC,EAAAA,iBACZC,YAAaC,EAAAA,kBACbC,cAAeC,EAAAA,oBACfC,OAAQC,EAAAA,aACRC,oBAAqBC,EAAAA,2BASnBC,EACDC,GACD,CACIC,EACAC,EACAC,KAEA,IAAIC,EAAyB,EACzBC,EAAsB,GAiD1B,MAAMC,EAA+C,CACjDC,WAhDgBC,GAAkBA,EAAMC,QAAQ,MAAO,IAiDvDC,SAhDcC,IACdR,GAASO,WAAWC,GAGpB,IAAIC,EAAwB,EACtB,MAAAC,EAAcF,EAAMG,OAAON,MAAMO,OAGH,OAAhCJ,EAAMG,OAAOE,iBACbJ,EAAwBD,EAAMG,OAAOE,gBAGpCf,EAAAgB,SACDf,EACAlB,EAAWgB,GAAWW,EAAMG,OAAON,MAAO,CACtCU,SAAS,KAIjB,IAAIC,EAA6B,KAEjC,GAAI,CAAC,SAAU,aAAaC,SAASf,GAAsB,CAMvDc,EAAcf,GAHAA,EAAyBQ,EAIhC,MAAA,GAAAA,EAAwBD,EAAMG,OAAON,MAAMO,OAAQ,CAM1DI,EAAcP,GAHAD,EAAMG,OAAON,MAAMO,OAASF,EAGJ,CAGtB,OAAhBM,GACAR,EAAMG,OAAOO,kBACTF,EACAA,OACA,EACJ,GAQJhB,GACOmB,OAAAC,OAAOjB,EAAiBH,GAEnC,MAAMqB,EAAWvB,EAAKuB,SAAStB,EAAMI,GAY/BmB,EAAiC,CACnCC,UAVuDf,IACG,OAArDA,EAAMG,OAA4BE,iBACnCZ,EAA0BO,EAAMG,OAC3BE,gBAETX,EAAsBM,EAAMgB,MAQhC,MAAkB,WAAd3B,IACAyB,EAAMG,MAAQ,SAGXN,OAAOC,OAAOC,EAAUC,EAAK,EAI/BI,EAAgC9B,EAAiB,iBAEjD+B,EAA6B/B,EAAiB,cAE9CgC,EAA8BhC,EAAiB,eAE/CiC,EAAgCjC,EAAiB,8JAM1DE,IACE,CACF4B,8BAA+B,CAC3B3B,EACAC,IAEAJ,EAAiB,gBAAjBA,CAAqCE,EAAMC,EAAMC,GACrD2B,2BAA4B,CACxB5B,EACAC,IAEAJ,EAAiB,aAAjBA,CAAkCE,EAAMC,EAAMC,GAClD4B,4BAA6B,CACzB7B,EACAC,IAEAJ,EAAiB,cAAjBA,CAAmCE,EAAMC,EAAMC,GACnD6B,8BAA+B,CAC3B9B,EACAC,IAEAJ,EAAiB,gBAAjBA,CAAqCE,EAAMC,EAAMC,GACrD8B,oCAAqC,CACjC/B,EACAC,IAEAJ,EAAiB,sBAAjBA,CAA2CE,EAAMC,EAAMC,GAC3D+B,qBAAsB,CAClBhC,EACAC,IAEAJ,EAAiB,OAAjBA,CAA4BE,EAAMC,EAAMC,GAC5CgC,mBAAoB,CAChBjC,EACAC,IAEAJ,EAAiB,SAAjBA,CACIE,EACAC,EACAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../../../index-CaISwoxr.cjs"),r=require("../util/formatNumber.cjs"),t=require("../util/parseNumber.cjs"),e={locale:"no-NB",minimumFractionDigits:0,maximumFractionDigits:2,suffix:"kr"};exports.formatValuta=function(u,n){const s=t.parseNumber(u);if(Number.isNaN(s))return u.toString();const m=Number.isInteger(s)?{}:{minimumFractionDigits:2,maximumFractionDigits:2},o=void 0!==(null==n?void 0:n.suffix)?n.suffix:e.suffix,{prefix:a,...l}={...e,...m,...n},f=null!=a&&a.length?`${a}${i.nbsp}`:"",c=null!=o&&o.length?`${i.nbsp}${o}`:"";return`${f}${r.formatNumber(s,l)}${c}`};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../../../index-CaISwoxr.cjs"),r=require("../util/formatNumber.cjs"),t=require("../util/parseNumber.cjs"),e={locale:"no-NB",minimumFractionDigits:0,maximumFractionDigits:2,suffix:"kr"};exports.formatValuta=function(u,s){const n=t.parseNumber(u);if(Number.isNaN(n))return u.toString();const m=Number.isInteger(n)?{}:{minimumFractionDigits:2,maximumFractionDigits:2},o=void 0!==s?.suffix?s.suffix:e.suffix,{prefix:a,...f}={...e,...m,...s},c=a?.length?`${a}${i.nbsp}`:"",b=o?.length?`${i.nbsp}${o}`:"";return`${c}${r.formatNumber(n,f)}${b}`};
2
2
  //# sourceMappingURL=formatValuta.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatValuta.cjs","sources":["../../../../../src/utilities/formatters/valuta/formatValuta.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\nimport {\n type FormatNumberOptions,\n formatNumber,\n} from \"../util/formatNumber.js\";\nimport { parseNumber } from \"../util/parseNumber.js\";\n\ninterface FormatValutaOptions extends FormatNumberOptions {\n prefix?: string;\n /**\n * For å fjerne suffix, send inn en tom streng\n * @default \"kr\"\n */\n suffix?: string;\n}\n\nconst defaultOptions: FormatValutaOptions = {\n locale: \"no-NB\",\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n suffix: \"kr\",\n};\n\n/**\n * Formaterer et gitt tall som valuta. Som standard vises suffikset \"kr\" og tallet formateres med norsk lokalisasjon\n *\n * @param input Tallet som skal formateres til valuta\n * @param options Valgene fra formatNumber, pluss valg for prefix og suffix\n * @returns Formatert beløp\n */\nexport function formatValuta(\n input: string | number,\n options?: FormatValutaOptions,\n) {\n const number = parseNumber(input);\n if (Number.isNaN(number)) {\n return input.toString();\n }\n\n // Dersom tallet ikke er et heltall, pass på å alltid vise to desimaler\n // Antall desimaler kan i alle tilfeller overstyres via options\n const fractionOptions: Intl.NumberFormatOptions = Number.isInteger(number)\n ? {}\n : { minimumFractionDigits: 2, maximumFractionDigits: 2 };\n\n const suffix =\n options?.suffix !== undefined ? options.suffix : defaultOptions.suffix;\n const { prefix, ...formatOptions } = {\n ...defaultOptions,\n ...fractionOptions,\n ...options,\n };\n\n const prefixString = prefix?.length ? `${prefix}${unicode.nbsp}` : \"\";\n const suffixString = suffix?.length ? `${unicode.nbsp}${suffix}` : \"\";\n const formattedNumber = formatNumber(number, formatOptions);\n\n return `${prefixString}${formattedNumber}${suffixString}`;\n}\n"],"names":["defaultOptions","locale","minimumFractionDigits","maximumFractionDigits","suffix","input","options","number","parseNumber","Number","isNaN","toString","fractionOptions","isInteger","prefix","formatOptions","prefixString","length","unicode.nbsp","suffixString","formatNumber"],"mappings":"6MAgBMA,EAAsC,CACxCC,OAAQ,QACRC,sBAAuB,EACvBC,sBAAuB,EACvBC,OAAQ,2BAUI,SACZC,EACAC,GAEM,MAAAC,EAASC,cAAYH,GACvB,GAAAI,OAAOC,MAAMH,GACb,OAAOF,EAAMM,WAKX,MAAAC,EAA4CH,OAAOI,UAAUN,GAC7D,GACA,CAAEL,sBAAuB,EAAGC,sBAAuB,GAEnDC,OACkB,KAApB,MAAAE,OAAAA,EAAAA,EAASF,QAAuBE,EAAQF,OAASJ,EAAeI,QAC5DU,OAAAA,KAAWC,GAAkB,IAC9Bf,KACAY,KACAN,GAGDU,EAAe,MAAAF,GAAAA,EAAQG,OAAS,GAAGH,IAASI,EAAAA,OAAiB,GAC7DC,EAAe,MAAAf,GAAAA,EAAQa,OAAS,GAAGC,EAAAA,OAAed,IAAW,GAGnE,MAAO,GAAGY,IAFcI,EAAAA,aAAab,EAAQQ,KAEFI,GAC/C"}
1
+ {"version":3,"file":"formatValuta.cjs","sources":["../../../../../src/utilities/formatters/valuta/formatValuta.ts"],"sourcesContent":["import { unicode } from \"../../constants/index.js\";\nimport {\n type FormatNumberOptions,\n formatNumber,\n} from \"../util/formatNumber.js\";\nimport { parseNumber } from \"../util/parseNumber.js\";\n\ninterface FormatValutaOptions extends FormatNumberOptions {\n prefix?: string;\n /**\n * For å fjerne suffix, send inn en tom streng\n * @default \"kr\"\n */\n suffix?: string;\n}\n\nconst defaultOptions: FormatValutaOptions = {\n locale: \"no-NB\",\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n suffix: \"kr\",\n};\n\n/**\n * Formaterer et gitt tall som valuta. Som standard vises suffikset \"kr\" og tallet formateres med norsk lokalisasjon\n *\n * @param input Tallet som skal formateres til valuta\n * @param options Valgene fra formatNumber, pluss valg for prefix og suffix\n * @returns Formatert beløp\n */\nexport function formatValuta(\n input: string | number,\n options?: FormatValutaOptions,\n) {\n const number = parseNumber(input);\n if (Number.isNaN(number)) {\n return input.toString();\n }\n\n // Dersom tallet ikke er et heltall, pass på å alltid vise to desimaler\n // Antall desimaler kan i alle tilfeller overstyres via options\n const fractionOptions: Intl.NumberFormatOptions = Number.isInteger(number)\n ? {}\n : { minimumFractionDigits: 2, maximumFractionDigits: 2 };\n\n const suffix =\n options?.suffix !== undefined ? options.suffix : defaultOptions.suffix;\n const { prefix, ...formatOptions } = {\n ...defaultOptions,\n ...fractionOptions,\n ...options,\n };\n\n const prefixString = prefix?.length ? `${prefix}${unicode.nbsp}` : \"\";\n const suffixString = suffix?.length ? `${unicode.nbsp}${suffix}` : \"\";\n const formattedNumber = formatNumber(number, formatOptions);\n\n return `${prefixString}${formattedNumber}${suffixString}`;\n}\n"],"names":["defaultOptions","locale","minimumFractionDigits","maximumFractionDigits","suffix","input","options","number","parseNumber","Number","isNaN","toString","fractionOptions","isInteger","prefix","formatOptions","prefixString","length","unicode.nbsp","suffixString","formatNumber"],"mappings":"6MAgBMA,EAAsC,CACxCC,OAAQ,QACRC,sBAAuB,EACvBC,sBAAuB,EACvBC,OAAQ,2BAUI,SACZC,EACAC,GAEM,MAAAC,EAASC,cAAYH,GACvB,GAAAI,OAAOC,MAAMH,GACb,OAAOF,EAAMM,WAKX,MAAAC,EAA4CH,OAAOI,UAAUN,GAC7D,GACA,CAAEL,sBAAuB,EAAGC,sBAAuB,GAEnDC,OACkB,IAApBE,GAASF,OAAuBE,EAAQF,OAASJ,EAAeI,QAC5DU,OAAAA,KAAWC,GAAkB,IAC9Bf,KACAY,KACAN,GAGDU,EAAeF,GAAQG,OAAS,GAAGH,IAASI,EAAAA,OAAiB,GAC7DC,EAAef,GAAQa,OAAS,GAAGC,EAAAA,OAAed,IAAW,GAGnE,MAAO,GAAGY,IAFcI,EAAAA,aAAab,EAAQQ,KAEFI,GAC/C"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let t=!1,e=!1,o=!1;const n={mousedown:function(){if(!t&&!o){t=!0,e=!1;const o=document.querySelector("html");null==o||o.setAttribute("data-mousenavigation","true"),null==o||o.removeAttribute("data-touchnavigation"),u(),i("touchstart"),i("keydown")}},keydown:function(o){if("Tab"===o.key){const o=document.querySelector("html");u(),null==o||o.removeAttribute("data-mousenavigation"),null==o||o.removeAttribute("data-touchnavigation"),t=!1,e=!1,i("touchstart"),i("mousedown")}},touchstart:function(){if(!e){t=!1,e=!0;const o=document.querySelector("html");null==o||o.setAttribute("data-touchnavigation","true"),null==o||o.removeAttribute("data-mousenavigation"),u(),i("touchstart"),i("keydown"),i("mousedown")}o=!0,setTimeout((()=>{o=!1}),150)}};function u(){for(const t of Object.keys(n))document.removeEventListener(t,n[t])}function i(t){document.addEventListener(t,n[t])}exports.initTabListener=function(){typeof document<"u"&&(i("touchstart"),i("mousedown"))};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let t=!1,e=!1,o=!1;const n={mousedown:function(){if(!t&&!o){t=!0,e=!1;const o=document.querySelector("html");o?.setAttribute("data-mousenavigation","true"),o?.removeAttribute("data-touchnavigation"),u(),i("touchstart"),i("keydown")}},keydown:function(o){if("Tab"===o.key){const o=document.querySelector("html");u(),o?.removeAttribute("data-mousenavigation"),o?.removeAttribute("data-touchnavigation"),t=!1,e=!1,i("touchstart"),i("mousedown")}},touchstart:function(){if(!e){t=!1,e=!0;const o=document.querySelector("html");o?.setAttribute("data-touchnavigation","true"),o?.removeAttribute("data-mousenavigation"),u(),i("touchstart"),i("keydown"),i("mousedown")}o=!0,setTimeout((()=>{o=!1}),150)}};function u(){for(const t of Object.keys(n))document.removeEventListener(t,n[t])}function i(t){document.addEventListener(t,n[t])}exports.initTabListener=function(){typeof document<"u"&&(i("touchstart"),i("mousedown"))};
2
2
  //# sourceMappingURL=tabListener.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabListener.cjs","sources":["../../../src/utilities/tabListener.ts"],"sourcesContent":["let mousenavigation = false;\nlet touchnavigation = false;\nlet touchEventFired = false;\n\nconst listeners = {\n mousedown: handleMouseDown as EventListener,\n keydown: handleKeydown as EventListener,\n touchstart: handleTouchStart as EventListener,\n};\n\nfunction removeAllListeners() {\n for (const listenerType of Object.keys(listeners) as Array<\n keyof typeof listeners\n >) {\n document.removeEventListener(listenerType, listeners[listenerType]);\n }\n}\n\nfunction addListener(listenerType: keyof typeof listeners) {\n document.addEventListener(listenerType, listeners[listenerType]);\n}\n\nfunction handleMouseDown() {\n if (!mousenavigation && !touchEventFired) {\n mousenavigation = true;\n touchnavigation = false;\n const htmlElement = document.querySelector(\"html\");\n htmlElement?.setAttribute(\"data-mousenavigation\", \"true\");\n htmlElement?.removeAttribute(\"data-touchnavigation\");\n\n // Reset listeners\n removeAllListeners();\n addListener(\"touchstart\");\n addListener(\"keydown\");\n }\n}\n\nfunction handleKeydown(event: KeyboardEvent) {\n if (event.key === \"Tab\") {\n const htmlElement = document.querySelector(\"html\");\n removeAllListeners();\n htmlElement?.removeAttribute(\"data-mousenavigation\");\n htmlElement?.removeAttribute(\"data-touchnavigation\");\n mousenavigation = false;\n touchnavigation = false;\n\n // Reset listeners\n addListener(\"touchstart\");\n addListener(\"mousedown\");\n }\n}\n\nfunction handleTouchStart() {\n if (!touchnavigation) {\n mousenavigation = false;\n touchnavigation = true;\n const htmlElement = document.querySelector(\"html\");\n htmlElement?.setAttribute(\"data-touchnavigation\", \"true\");\n htmlElement?.removeAttribute(\"data-mousenavigation\");\n\n // Reset listeners\n removeAllListeners();\n addListener(\"touchstart\");\n addListener(\"keydown\");\n addListener(\"mousedown\");\n }\n\n // Most touch devices fire both touch and mouse events on touch (in that order)\n // see https://w3c.github.io/touch-events/#mouse-events\n // Set a check variable to avoid resetting the data-attribute:\n touchEventFired = true;\n setTimeout(() => {\n touchEventFired = false;\n }, 150); // Yes, it can take this long between the events\n}\n\nexport function initTabListener(): void {\n if (typeof document !== \"undefined\") {\n addListener(\"touchstart\");\n addListener(\"mousedown\");\n }\n}\n"],"names":["mousenavigation","touchnavigation","touchEventFired","listeners","mousedown","htmlElement","document","querySelector","setAttribute","removeAttribute","removeAllListeners","addListener","keydown","event","key","touchstart","setTimeout","listenerType","Object","keys","removeEventListener","addEventListener"],"mappings":"gFAAA,IAAIA,GAAkB,EAClBC,GAAkB,EAClBC,GAAkB,EAEtB,MAAMC,EAAY,CACdC,UAiBJ,WACQ,IAACJ,IAAoBE,EAAiB,CACpBF,GAAA,EACAC,GAAA,EACZ,MAAAI,EAAcC,SAASC,cAAc,QAC9B,MAAAF,GAAAA,EAAAG,aAAa,uBAAwB,QAClD,MAAAH,GAAAA,EAAaI,gBAAgB,wBAGVC,IACnBC,EAAY,cACZA,EAAY,UAAS,CAE7B,EA7BIC,QA+BJ,SAAuBC,GACf,GAAc,QAAdA,EAAMC,IAAe,CACf,MAAAT,EAAcC,SAASC,cAAc,QACxBG,IACnB,MAAAL,GAAAA,EAAaI,gBAAgB,wBAC7B,MAAAJ,GAAAA,EAAaI,gBAAgB,wBACXT,GAAA,EACAC,GAAA,EAGlBU,EAAY,cACZA,EAAY,YAAW,CAE/B,EA3CII,WA6CJ,WACI,IAAKd,EAAiB,CACAD,GAAA,EACAC,GAAA,EACZ,MAAAI,EAAcC,SAASC,cAAc,QAC9B,MAAAF,GAAAA,EAAAG,aAAa,uBAAwB,QAClD,MAAAH,GAAAA,EAAaI,gBAAgB,wBAGVC,IACnBC,EAAY,cACZA,EAAY,WACZA,EAAY,YAAW,CAMTT,GAAA,EAClBc,YAAW,KACWd,GAAA,CAAA,GACnB,IACP,GAhEA,SAASQ,IACL,UAAWO,KAAgBC,OAAOC,KAAKhB,GAGnCG,SAASc,oBAAoBH,EAAcd,EAAUc,GAE7D,CAEA,SAASN,EAAYM,GACjBX,SAASe,iBAAiBJ,EAAcd,EAAUc,GACtD,yBAwDO,kBACQX,SAAa,MACpBK,EAAY,cACZA,EAAY,aAEpB"}
1
+ {"version":3,"file":"tabListener.cjs","sources":["../../../src/utilities/tabListener.ts"],"sourcesContent":["let mousenavigation = false;\nlet touchnavigation = false;\nlet touchEventFired = false;\n\nconst listeners = {\n mousedown: handleMouseDown as EventListener,\n keydown: handleKeydown as EventListener,\n touchstart: handleTouchStart as EventListener,\n};\n\nfunction removeAllListeners() {\n for (const listenerType of Object.keys(listeners) as Array<\n keyof typeof listeners\n >) {\n document.removeEventListener(listenerType, listeners[listenerType]);\n }\n}\n\nfunction addListener(listenerType: keyof typeof listeners) {\n document.addEventListener(listenerType, listeners[listenerType]);\n}\n\nfunction handleMouseDown() {\n if (!mousenavigation && !touchEventFired) {\n mousenavigation = true;\n touchnavigation = false;\n const htmlElement = document.querySelector(\"html\");\n htmlElement?.setAttribute(\"data-mousenavigation\", \"true\");\n htmlElement?.removeAttribute(\"data-touchnavigation\");\n\n // Reset listeners\n removeAllListeners();\n addListener(\"touchstart\");\n addListener(\"keydown\");\n }\n}\n\nfunction handleKeydown(event: KeyboardEvent) {\n if (event.key === \"Tab\") {\n const htmlElement = document.querySelector(\"html\");\n removeAllListeners();\n htmlElement?.removeAttribute(\"data-mousenavigation\");\n htmlElement?.removeAttribute(\"data-touchnavigation\");\n mousenavigation = false;\n touchnavigation = false;\n\n // Reset listeners\n addListener(\"touchstart\");\n addListener(\"mousedown\");\n }\n}\n\nfunction handleTouchStart() {\n if (!touchnavigation) {\n mousenavigation = false;\n touchnavigation = true;\n const htmlElement = document.querySelector(\"html\");\n htmlElement?.setAttribute(\"data-touchnavigation\", \"true\");\n htmlElement?.removeAttribute(\"data-mousenavigation\");\n\n // Reset listeners\n removeAllListeners();\n addListener(\"touchstart\");\n addListener(\"keydown\");\n addListener(\"mousedown\");\n }\n\n // Most touch devices fire both touch and mouse events on touch (in that order)\n // see https://w3c.github.io/touch-events/#mouse-events\n // Set a check variable to avoid resetting the data-attribute:\n touchEventFired = true;\n setTimeout(() => {\n touchEventFired = false;\n }, 150); // Yes, it can take this long between the events\n}\n\nexport function initTabListener(): void {\n if (typeof document !== \"undefined\") {\n addListener(\"touchstart\");\n addListener(\"mousedown\");\n }\n}\n"],"names":["mousenavigation","touchnavigation","touchEventFired","listeners","mousedown","htmlElement","document","querySelector","setAttribute","removeAttribute","removeAllListeners","addListener","keydown","event","key","touchstart","setTimeout","listenerType","Object","keys","removeEventListener","addEventListener"],"mappings":"gFAAA,IAAIA,GAAkB,EAClBC,GAAkB,EAClBC,GAAkB,EAEtB,MAAMC,EAAY,CACdC,UAiBJ,WACQ,IAACJ,IAAoBE,EAAiB,CACpBF,GAAA,EACAC,GAAA,EACZ,MAAAI,EAAcC,SAASC,cAAc,QAC9BF,GAAAG,aAAa,uBAAwB,QAClDH,GAAaI,gBAAgB,wBAGVC,IACnBC,EAAY,cACZA,EAAY,UAAS,CAE7B,EA7BIC,QA+BJ,SAAuBC,GACf,GAAc,QAAdA,EAAMC,IAAe,CACf,MAAAT,EAAcC,SAASC,cAAc,QACxBG,IACnBL,GAAaI,gBAAgB,wBAC7BJ,GAAaI,gBAAgB,wBACXT,GAAA,EACAC,GAAA,EAGlBU,EAAY,cACZA,EAAY,YAAW,CAE/B,EA3CII,WA6CJ,WACI,IAAKd,EAAiB,CACAD,GAAA,EACAC,GAAA,EACZ,MAAAI,EAAcC,SAASC,cAAc,QAC9BF,GAAAG,aAAa,uBAAwB,QAClDH,GAAaI,gBAAgB,wBAGVC,IACnBC,EAAY,cACZA,EAAY,WACZA,EAAY,YAAW,CAMTT,GAAA,EAClBc,YAAW,KACWd,GAAA,IACnB,IACP,GAhEA,SAASQ,IACL,IAAWO,MAAAA,KAAgBC,OAAOC,KAAKhB,GAGnCG,SAASc,oBAAoBH,EAAcd,EAAUc,GAE7D,CAEA,SAASN,EAAYM,GACjBX,SAASe,iBAAiBJ,EAAcd,EAAUc,GACtD,yBAwDO,kBACQX,SAAa,MACpBK,EAAY,cACZA,EAAY,aAEpB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.hasMinimumWords=(e,i)=>e.split(" ").filter((e=>![""," "].includes(e))).length>=((null==i?void 0:i.minimumWords)||2);
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.hasMinimumWords=(e,t)=>e.split(" ").filter((e=>![""," "].includes(e))).length>=(t?.minimumWords||2);
2
2
  //# sourceMappingURL=hasMinimumWords.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"hasMinimumWords.cjs","sources":["../../../../../src/utilities/validators/hasMinimumWords/hasMinimumWords.ts"],"sourcesContent":["export interface HasMinimumWordsOptions {\n minimumWords?: number;\n}\n\n/**\n * Sjekk at verdien har minimum et gitt antall ord.\n * @param value Verdien som skal valideres\n * @param options Objekt med konfigurasjon for minimum antall ord som kreves\n * @returns Om verdien har minimum antall ord\n */\nexport const hasMinimumWords = (\n value: string,\n options?: HasMinimumWordsOptions,\n): boolean =>\n value.split(\" \").filter((str) => ![\"\", \" \"].includes(str)).length >=\n (options?.minimumWords || 2);\n"],"names":["value","options","split","filter","str","includes","length","minimumWords"],"mappings":"wGAU+B,CAC3BA,EACAC,IAEAD,EAAME,MAAM,KAAKC,QAAQC,IAAS,CAAC,GAAI,KAAKC,SAASD,KAAME,UAC1D,MAAAL,OAAAA,EAAAA,EAASM,eAAgB"}
1
+ {"version":3,"file":"hasMinimumWords.cjs","sources":["../../../../../src/utilities/validators/hasMinimumWords/hasMinimumWords.ts"],"sourcesContent":["export interface HasMinimumWordsOptions {\n minimumWords?: number;\n}\n\n/**\n * Sjekk at verdien har minimum et gitt antall ord.\n * @param value Verdien som skal valideres\n * @param options Objekt med konfigurasjon for minimum antall ord som kreves\n * @returns Om verdien har minimum antall ord\n */\nexport const hasMinimumWords = (\n value: string,\n options?: HasMinimumWordsOptions,\n): boolean =>\n value.split(\" \").filter((str) => ![\"\", \" \"].includes(str)).length >=\n (options?.minimumWords || 2);\n"],"names":["value","options","split","filter","str","includes","length","minimumWords"],"mappings":"wGAU+B,CAC3BA,EACAC,IAEAD,EAAME,MAAM,KAAKC,QAAQC,IAAS,CAAC,GAAI,KAAKC,SAASD,KAAME,SAC1DL,GAASM,cAAgB"}