@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":"useSwipeGesture.js","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","useSwipeGesture","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":"gDAeA,SAASA,EACLC,GAEO,MAAA,CACHC,EAAGD,EAAME,QACTC,EAAGH,EAAMI,QAEjB,CAiBO,SAASC,EACZC,GAWM,MAAAC,EAAeC,GAA6B,GAC5CC,EAAuBD,KAGzBE,QAAAA,EACAC,SAAAA,EACAC,gBAAAA,EACAC,cAAAA,EACAC,cAAAA,EACAC,YAAAA,GACAT,EAEEU,EAAoCC,GACrCjB,IACQO,EAAaW,SACd,MAAAR,GAAAA,EAAUV,GAEdO,EAAaW,SAAU,CAAA,GAE3B,CAACR,IAGCS,EAA6CF,GAC9CjB,YACGA,EAAMoB,iBAEL,OAAAC,GAAAC,EAAAtB,EAAMuB,QAAaC,oBAAnBH,EAAAI,KAAAH,EAAuCtB,EAAM0B,WACzBjB,EAAAS,QAAUnB,EAAyBC,GACxDO,EAAaW,SAAU,EAEvB,MAAAL,GAAAA,EAAgBb,EAAAA,GAEpB,CAACa,IAGCc,EAA4CV,GAC7CjB,IAGO,GAFJA,EAAMoB,kBAEDX,EAAqBS,QACtB,OAGE,MAAEjB,EAAG2B,GAAa7B,EAAyBC,IACzCC,EAAG4B,GAAWpB,EAAqBS,QAGvCU,EAAWC,EAAS,IACpBlB,GACyB,OAAzBJ,EAAaW,SAEbP,EAASX,GAAO,GAChBO,EAAaW,QAAU,KACFT,EAAAS,QAAUnB,EAAyBC,IAExD6B,EAASD,EAAW,IACpBjB,GACyB,QAAzBJ,EAAaW,UAEbP,EAASX,GAAO,GAChBO,EAAaW,QAAU,MACFT,EAAAS,QAAUnB,EAAyBC,IAG5D,MAAAc,GAAAA,EAAgBd,EAAAA,GAEpB,CAACc,EAAeH,IAGdmB,EAA2Cb,GAC5CjB,YACGA,EAAMoB,iBAEL,OAAAC,GAAAC,EAAAtB,EAAMuB,QAAaQ,wBAAnBV,EAAAI,KAAAH,EAA2CtB,EAAM0B,WAClDjB,EAAqBS,aAAU,EAEhB,cAAflB,EAAMgC,KACA,MAAAjB,GAAAA,EAAcf,GACd,MAAAY,GAAAA,EAAkBZ,EAAAA,GAE5B,CAACe,EAAaH,IAGX,MAAA,CACHL,aAAAA,EACA0B,gBAAiB,CACbvB,QAASM,EACTH,cAAeM,EACfL,cAAea,EACfZ,YAAae,EACblB,gBAAiBkB,GAG7B"}
1
+ {"version":3,"file":"useSwipeGesture.js","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","useSwipeGesture","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":"gDAeA,SAASA,EACLC,GAEO,MAAA,CACHC,EAAGD,EAAME,QACTC,EAAGH,EAAMI,QAEjB,CAiBO,SAASC,EACZC,GAWM,MAAAC,EAAeC,GAA6B,GAC5CC,EAAuBD,KAGzBE,QAAAA,EACAC,SAAAA,EACAC,gBAAAA,EACAC,cAAAA,EACAC,cAAAA,EACAC,YAAAA,GACAT,EAEEU,EAAoCC,GACrCjB,IACQO,EAAaW,SACdR,IAAUV,GAEdO,EAAaW,SAAU,CAAA,GAE3B,CAACR,IAGCS,EAA6CF,GAC9CjB,IACGA,EAAMoB,iBAELpB,EAAMqB,OAAaC,oBAAoBtB,EAAMuB,WACzBd,EAAAS,QAAUnB,EAAyBC,GACxDO,EAAaW,SAAU,EAEvBL,IAAgBb,EAAK,GAEzB,CAACa,IAGCW,EAA4CP,GAC7CjB,IAGO,GAFJA,EAAMoB,kBAEDX,EAAqBS,QACtB,OAGE,MAAEjB,EAAGwB,GAAa1B,EAAyBC,IACzCC,EAAGyB,GAAWjB,EAAqBS,QAGvCO,EAAWC,EAAS,IACpBf,GACyB,OAAzBJ,EAAaW,SAEbP,EAASX,GAAO,GAChBO,EAAaW,QAAU,KACFT,EAAAS,QAAUnB,EAAyBC,IAExD0B,EAASD,EAAW,IACpBd,GACyB,QAAzBJ,EAAaW,UAEbP,EAASX,GAAO,GAChBO,EAAaW,QAAU,MACFT,EAAAS,QAAUnB,EAAyBC,IAG5Dc,IAAgBd,EAAK,GAEzB,CAACc,EAAeH,IAGdgB,EAA2CV,GAC5CjB,IACGA,EAAMoB,iBAELpB,EAAMqB,OAAaO,wBAAwB5B,EAAMuB,WAClDd,EAAqBS,aAAU,EAEhB,cAAflB,EAAM6B,KACAd,IAAcf,GACdY,IAAkBZ,EAAK,GAEjC,CAACe,EAAaH,IAGX,MAAA,CACHL,aAAAA,EACAuB,gBAAiB,CACbpB,QAASM,EACTH,cAAeM,EACfL,cAAeU,EACfT,YAAaY,EACbf,gBAAiBe,GAG7B"}
@@ -1,4 +1,3 @@
1
- export * from './components/index.js';
2
1
  export * from './core/index.js';
3
2
  export * from './hooks/index.js';
4
3
  export * from './utilities/index.js';
package/build/es/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{Accordion as o}from"./components/accordion/Accordion.js";import{AccordionItem as s}from"./components/accordion/AccordionItem.js";import{Autosuggest as e}from"./components/autosuggest/Autosuggest.js";import{Breadcrumb as a}from"./components/breadcrumb/Breadcrumb.js";import{BreadcrumbItem as t}from"./components/breadcrumb/BreadcrumbItem.js";import{Button as r,PrimaryButton as n,SecondaryButton as i,TertiaryButton as m}from"./components/button/Button.js";import{Card as p}from"./components/card/Card.js";import{CardImage as c}from"./components/card/CardImage.js";import{InfoBlock as l,NavCard as u}from"./components/card/NavCard.js";import{TaskCard as d}from"./components/card/TaskCard.js";import{InfoCard as f}from"./components/card/InfoCard.js";import{CheckboxPanel as g}from"./components/checkbox-panel/CheckboxPanel.js";import{Checkbox as j}from"./components/checkbox/Checkbox.js";import{Chip as b}from"./components/chip/Chip.js";import{Combobox as I,getComboboxValuePair as T}from"./components/combobox/Combobox.js";import{CookieConsent as k}from"./components/cookie-consent/CookieConsent.js";import{CookieConsentProvider as h,useCookieConsent as C}from"./components/cookie-consent/CookieConsentContext.js";import{Countdown as S}from"./components/countdown/Countdown.js";import{DatePicker as v}from"./components/datepicker/DatePicker.js";import{isCorrectFormat as M,isWithinLowerBound as A,isWithinUpperBound as E}from"./components/datepicker/validation.js";import{formatInput as L,isBlurTargetOutside as x,parseDateString as R}from"./components/datepicker/utils.js";import{DescriptionDetail as B,DescriptionList as P,DescriptionTerm as w}from"./components/description-list/DescriptionList.js";import{ExpandablePanel as F}from"./components/expander/ExpandablePanel.js";import{Expander as N}from"./components/expander/Expander.js";import{ExpandSection as D}from"./components/expander/deprecated/ExpandSection.js";import{Feedback as V}from"./components/feedback/Feedback.js";import{PRESETS as y}from"./components/feedback/presets.js";import{FileInput as O}from"./components/file-input/FileInput.js";import{upload as G}from"./components/file-input/utils.js";import{Flex as H}from"./components/flex/Flex.js";import{IconButton as W}from"./components/icon-button/IconButton.js";import{Icon as U}from"./components/icon/Icon.js";import{ArrowVerticalAnimated as K}from"./components/icon/icons/animated/ArrowVerticalAnimated.js";import{ArrowHorizontalAnimated as X}from"./components/icon/icons/animated/ArrowHorizontalAnimated.js";import{PlusRemoveAnimated as _}from"./components/icon/icons/animated/PlusRemoveAnimated.js";import{ArrowDownIcon as z}from"./components/icon/icons/ArrowDownIcon.js";import{ArrowLeftIcon as Q}from"./components/icon/icons/ArrowLeftIcon.js";import{ArrowNorthEastIcon as J}from"./components/icon/icons/ArrowNorthEastIcon.js";import{ArrowRightIcon as q}from"./components/icon/icons/ArrowRightIcon.js";import{ArrowUpIcon as Y}from"./components/icon/icons/ArrowUpIcon.js";import{CalendarIcon as Z}from"./components/icon/icons/CalendarIcon.js";import{CheckIcon as $}from"./components/icon/icons/CheckIcon.js";import{ChevronDownIcon as oo}from"./components/icon/icons/ChevronDownIcon.js";import{ChevronLeftIcon as so}from"./components/icon/icons/ChevronLeftIcon.js";import{ChevronRightIcon as eo}from"./components/icon/icons/ChevronRightIcon.js";import{ChevronUpIcon as ao}from"./components/icon/icons/ChevronUpIcon.js";import{CloseIcon as to}from"./components/icon/icons/CloseIcon.js";import{CopyIcon as ro}from"./components/icon/icons/CopyIcon.js";import{DotsIcon as no}from"./components/icon/icons/DotsIcon.js";import{DragIcon as io}from"./components/icon/icons/DragIcon.js";import{ErrorIcon as mo}from"./components/icon/icons/ErrorIcon.js";import{GreenCheckIcon as po}from"./components/icon/icons/GreenCheckIcon.js";import{HamburgerIcon as co}from"./components/icon/icons/HamburgerIcon.js";import{InfoIcon as lo}from"./components/icon/icons/InfoIcon.js";import{LinkIcon as uo}from"./components/icon/icons/LinkIcon.js";import{MinusIcon as fo}from"./components/icon/icons/MinusIcon.js";import{OpenInNewIcon as go}from"./components/icon/icons/OpenInNewIcon.js";import{PenIcon as jo}from"./components/icon/icons/PenIcon.js";import{PlusIcon as bo}from"./components/icon/icons/PlusIcon.js";import{QuestionIcon as Io}from"./components/icon/icons/QuestionIcon.js";import{RedCrossIcon as To}from"./components/icon/icons/RedCrossIcon.js";import{SearchIcon as ko}from"./components/icon/icons/SearchIcon.js";import{SuccessIcon as ho}from"./components/icon/icons/SuccessIcon.js";import{ThumbDownIcon as Co}from"./components/icon/icons/ThumbDownIcon.js";import{ThumbUpIcon as So}from"./components/icon/icons/ThumbUpIcon.js";import{TrashCanIcon as vo}from"./components/icon/icons/TrashCanIcon.js";import{WarningIcon as Mo}from"./components/icon/icons/WarningIcon.js";import{Image as Ao}from"./components/image/Image.js";import{FieldGroup as Eo}from"./components/input-group/FieldGroup.js";import{InputGroup as Lo}from"./components/input-group/InputGroup.js";import{Label as xo}from"./components/input-group/Label.js";import{SupportLabel as Ro}from"./components/input-group/SupportLabel.js";import{LinkList as Bo}from"./components/link-list/LinkList.js";import{Link as Po}from"./components/link/Link.js";import{List as wo,OrderedList as Fo,UnorderedList as No}from"./components/list/List.js";import{CheckListItem as Do,CrossListItem as Vo,ListItem as yo}from"./components/list/ListItem.js";import{Loader as Oo}from"./components/loader/Loader.js";import{SkeletonAnimation as Go}from"./components/loader/skeletons/SkeletonAnimation.js";import{SkeletonButton as Ho}from"./components/loader/skeletons/SkeletonButton.js";import{SkeletonCheckboxGroup as Wo}from"./components/loader/skeletons/SkeletonCheckboxGroup.js";import{SkeletonElement as Uo}from"./components/loader/skeletons/SkeletonElement.js";import{SkeletonInput as Ko}from"./components/loader/skeletons/SkeletonInput.js";import{SkeletonRadioButtonGroup as Xo}from"./components/loader/skeletons/SkeletonRadioButtonGroup.js";import{SkeletonTable as _o,SkeletonTableHeader as zo,SkeletonTableRow as Qo}from"./components/loader/skeletons/SkeletonTable.js";import{SkeletonTextArea as Jo}from"./components/loader/skeletons/SkeletonTextArea.js";import{Logo as qo}from"./components/logo/Logo.js";import{LogoStamp as Yo}from"./components/logo/LogoStamp.js";import{ForsikringLevertAvFremtind as Zo}from"./components/logo/text-paths/ForsikringLevertAvFremtind.js";import{FraSB1ogDNB as $o}from"./components/logo/text-paths/FraSB1ogDNB.js";import{InnovasjonFraFremtind as os}from"./components/logo/text-paths/InnovasjonFraFremtind.js";import{TeknologiFraFremtind as ss}from"./components/logo/text-paths/TeknologiFraFremtind.js";import{VartEgetForsikringsselskap as es}from"./components/logo/text-paths/VartEgetForsikringsselskap.js";import{VartForsikringsselskap as as}from"./components/logo/text-paths/VartForsikringsselskap.js";import{Menu as ts}from"./components/menu/Menu.js";import{MenuItem as rs}from"./components/menu/MenuItem.js";import{MenuItemCheckbox as ns}from"./components/menu/MenuItemCheckbox.js";import{MenuDivider as is}from"./components/menu/MenuDivider.js";import{ErrorMessage as ms,InfoMessage as ps,SuccessMessage as cs,WarningMessage as ls}from"./components/message/Message.js";import{FormErrorMessage as us}from"./components/message/FormErrorMessage.js";import{Modal as ds,ModalActions as fs,ModalBody as gs,ModalCloseButton as js,ModalContainer as bs,ModalHeader as Is,ModalOverlay as Ts,ModalTitle as ks}from"./components/modal/Modal.js";import{useModal as hs}from"./components/modal/useModal.js";import{NavLink as Cs}from"./components/nav-link/NavLink.js";import{Pagination as Ss}from"./components/pagination/Pagination.js";import{Popover as vs}from"./components/popover/Popover.js";import{ProgressBar as Ms}from"./components/progress-bar/ProgressBar.js";import{RadioButton as As}from"./components/radio-button/RadioButton.js";import{RadioButtonGroup as Es}from"./components/radio-button/RadioButtonGroup.js";import{BaseRadioButton as Ls}from"./components/radio-button/BaseRadioButton.js";import{RadioPanel as xs}from"./components/radio-panel/RadioPanel.js";import{RadioPanelGroup as Rs}from"./components/radio-panel/RadioPanelGroup.js";import{Select as Bs}from"./components/select/Select.js";import{NativeSelect as Ps}from"./components/select/NativeSelect.js";import{SummaryTable as ws}from"./components/summary-table/SummaryTable.js";import{SummaryTableRow as Fs}from"./components/summary-table/SummaryTableRow.js";import{ErrorSystemMessage as Ns,InfoSystemMessage as Ds,SuccessSystemMessage as Vs,WarningSystemMessage as ys}from"./components/system-message/SystemMessage.js";import{DataTable as Os}from"./components/table/DataTable.js";import{Table as Gs}from"./components/table/Table.js";import{TableBody as Hs}from"./components/table/TableBody.js";import{TableCaption as Ws}from"./components/table/TableCaption.js";import{TableCell as Us}from"./components/table/TableCell.js";import{TableColumn as Ks}from"./components/table/TableColumn.js";import{TableColumnGroup as Xs}from"./components/table/TableColumnGroup.js";import{TableContextProvider as _s,useTableContext as zs}from"./components/table/tableContext.js";import{TableSectionContextProvider as Qs,useTableSectionContext as Js}from"./components/table/tableSectionContext.js";import{TableFooter as qs}from"./components/table/TableFooter.js";import{TableHead as Ys}from"./components/table/TableHead.js";import{TableHeader as Zs}from"./components/table/TableHeader.js";import{TablePagination as $s}from"./components/table/TablePagination.js";import{TableRow as oe}from"./components/table/TableRow.js";import{ExpandableTableRow as se}from"./components/table/ExpandableTableRow.js";import{ExpandableTableRowController as ee}from"./components/table/ExpandableTableRowController.js";import{useSortableTableHeader as ae}from"./components/table/utils.js";import{NavTab as te}from"./components/tabs/NavTab.js";import{NavTabs as re}from"./components/tabs/NavTabs.js";import{Tabs as ne}from"./components/tabs/Tabs.js";import{TabList as ie}from"./components/tabs/TabList.js";import{Tab as me}from"./components/tabs/Tab.js";import{TabPanel as pe}from"./components/tabs/TabPanel.js";import{ErrorTag as ce,InfoTag as le,SuccessTag as ue,Tag as de,WarningTag as fe}from"./components/tag/Tag.js";import{BaseTextArea as ge}from"./components/text-area/BaseTextArea.js";import{TextArea as je}from"./components/text-area/TextArea.js";import{BaseTextInput as be}from"./components/text-input/BaseTextInput.js";import{TextInput as Ie}from"./components/text-input/TextInput.js";import{ToastProvider as Te,useToast as ke}from"./components/toast/toastContext.js";import{ToggleSwitch as he}from"./components/toggle-switch/ToggleSwitch.js";import{ToggleSlider as Ce}from"./components/toggle-switch/ToggleSlider.js";import{Tooltip as Se}from"./components/tooltip/Tooltip.js";import{TooltipContent as ve}from"./components/tooltip/TooltipContent.js";import{TooltipTrigger as Me}from"./components/tooltip/TooltipTrigger.js";import{PopupTip as Ae}from"./components/tooltip/PopupTip.js";import{ScreenReaderOnly as Ee}from"./components/ScreenReaderOnly.js";import{default as Le}from"./core/tokens.js";import{useAnimatedDetails as xe}from"./hooks/useAnimatedDetails/useAnimatedDetails.js";import{useAnimatedHeight as Re}from"./hooks/useAnimatedHeight/useAnimatedHeight.js";import{useAnimatedHeightBetween as Be}from"./hooks/useAnimatedHeight/useAnimatedHeightBetween.js";import{useAutoAnimatedHeight as Pe}from"./hooks/useAnimatedHeight/useAutoAnimateHeight.js";import{useBrowserPreferences as we}from"./hooks/useBrowserPreferences/useBrowserPreferences.js";import{useIntersectionObserver as Fe}from"./hooks/useIntersectionObserver/useIntersectionObserver.js";import{useLocalStorage as Ne}from"./hooks/useLocalStorage/useLocalStorage.js";import{useMutationObserver as De}from"./hooks/useMutationObserver/useMutationObserver.js";import{usePreviousValue as Ve}from"./hooks/usePreviousValue/usePreviousValue.js";import{useProgressiveImg as ye}from"./hooks/useProgressiveImg/useProgressiveImg.js";import{useScreen as Oe}from"./hooks/useScreen/useScreen.js";import{useScrollIntoView as Ge}from"./hooks/useScrollIntoView/useScrollIntoView.js";import{useAriaLiveRegion as He}from"./hooks/useAriaLiveRegion/useAriaLiveRegion.js";import{useClickOutside as We}from"./hooks/useClickOutside/useClickOutside.js";import{useFocusOutside as Ue}from"./hooks/useFocusOutside/useFocusOutside.js";import{useElementDimensions as Ke}from"./hooks/useElementDimensions/useElementDimensions.js";import{useId as Xe}from"./hooks/useId/useId.js";import{useKeyListener as _e}from"./hooks/useKeyListener/useKeyListener.js";import{useListNavigation as ze}from"./hooks/useListNavigation/useListNavigation.js";import{useSwipeGesture as Qe}from"./hooks/useSwipeGesture/useSwipeGesture.js";import{u as Je}from"../index-CWRMnfcx.js";import{formatNumber as qe}from"./utilities/formatters/util/formatNumber.js";import{parseNumber as Ye}from"./utilities/formatters/util/parseNumber.js";import{registerWithFodselsnummerMask as Ze,registerWithKontonummerMask as $e,registerWithKortnummerMask as oa,registerWithMasks as sa,registerWithTelefonnummerMask as ea}from"./utilities/formatters/util/registerWithMask.js";import{formatAvstand as aa}from"./utilities/formatters/avstand/formatAvstand.js";import{formatBytes as ta}from"./utilities/formatters/bytes/formatBytes.js";import{formatDate as ra}from"./utilities/formatters/date/formatDate.js";import{FODSELSNUMMER_REGEX as na,formatFodselsnummer as ia}from"./utilities/formatters/fodselsnummer/formatFodselsnummer.js";import{ORGANISASJONSNUMMER_REGEX as ma,formatOrganisasjonsnummer as pa}from"./utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.js";import{KONTONUMMER_REGEX as ca,formatKontonummer as la}from"./utilities/formatters/kontonummer/formatKontonummer.js";import{KORTNUMMER_REGEX as ua,formatKortnummer as da}from"./utilities/formatters/kortnummer/formatKortnummer.js";import{TELEFONNUMMER_REGEX as fa,formatTelefonnummer as ga}from"./utilities/formatters/telefonnummer/formatTelefonnummer.js";import{formatValuta as ja}from"./utilities/formatters/valuta/formatValuta.js";import{getThemeAndDensity as ba}from"./utilities/getThemeAndDensity.js";import{mergeProps as Ia}from"./utilities/polymorphism/mergeProps.js";import{mergeRefs as Ta}from"./utilities/polymorphism/mergeRefs.js";import{SlotComponent as ka}from"./utilities/polymorphism/SlotComponent.js";import{isValidEpost as ha}from"./utilities/validators/isValidEpost/isValidEpost.js";import{isValidTelefonnummer as Ca}from"./utilities/validators/isValidTelefonnummer/isValidTelefonnummer.js";import{isValidRegistreringsnummer as Sa}from"./utilities/validators/isValidRegistreringsnummer/isValidRegistreringsnummer.js";import{isValidChassisnummer as va}from"./utilities/validators/isValidChassisnummer/isValidChassisnummer.js";import{isValidDogId as Ma}from"./utilities/validators/isValidDogId/isValidDogId.js";import{isExactLength as Aa}from"./utilities/validators/isExactLength/isExactLength.js";import{isInteger as Ea}from"./utilities/validators/isInteger/isInteger.js";import{isValidFodselsnummer as La}from"./utilities/validators/isValidFodselsnummer/isValidFodselsnummer.js";import{isValidOrganisasjonsnummer as xa}from"./utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.js";import{isValidName as Ra}from"./utilities/validators/isValidName/isValidName.js";import{hasMinimumWords as Ba}from"./utilities/validators/hasMinimumWords/hasMinimumWords.js";import{hasNoIllegalCharacters as Pa}from"./utilities/validators/hasNoIllegalCharacters/hasNoIllegalCharacters.js";import{initTabListener as wa}from"./utilities/tabListener.js";import{getValuePair as Fa}from"./utilities/valuePair.js";export{o as Accordion,s as AccordionItem,z as ArrowDownIcon,X as ArrowHorizontalAnimated,Q as ArrowLeftIcon,J as ArrowNorthEastIcon,q as ArrowRightIcon,Y as ArrowUpIcon,K as ArrowVerticalAnimated,e as Autosuggest,Ls as BaseRadioButton,ge as BaseTextArea,be as BaseTextInput,a as Breadcrumb,t as BreadcrumbItem,r as Button,Z as CalendarIcon,p as Card,c as CardImage,$ as CheckIcon,Do as CheckListItem,j as Checkbox,g as CheckboxPanel,oo as ChevronDownIcon,so as ChevronLeftIcon,eo as ChevronRightIcon,ao as ChevronUpIcon,b as Chip,to as CloseIcon,I as Combobox,k as CookieConsent,h as CookieConsentProvider,ro as CopyIcon,S as Countdown,Vo as CrossListItem,Os as DataTable,v as DatePicker,B as DescriptionDetail,P as DescriptionList,w as DescriptionTerm,no as DotsIcon,io as DragIcon,mo as ErrorIcon,ms as ErrorMessage,Ns as ErrorSystemMessage,ce as ErrorTag,D as ExpandSection,F as ExpandablePanel,se as ExpandableTableRow,ee as ExpandableTableRowController,N as Expander,na as FODSELSNUMMER_REGEX,V as Feedback,Eo as FieldGroup,O as FileInput,H as Flex,us as FormErrorMessage,Zo as ForsikringLevertAvFremtind,$o as FraSB1ogDNB,po as GreenCheckIcon,co as HamburgerIcon,U as Icon,W as IconButton,Ao as Image,l as InfoBlock,f as InfoCard,lo as InfoIcon,ps as InfoMessage,Ds as InfoSystemMessage,le as InfoTag,os as InnovasjonFraFremtind,Lo as InputGroup,ca as KONTONUMMER_REGEX,ua as KORTNUMMER_REGEX,xo as Label,Po as Link,uo as LinkIcon,Bo as LinkList,wo as List,yo as ListItem,Oo as Loader,qo as Logo,Yo as LogoStamp,ts as Menu,is as MenuDivider,rs as MenuItem,ns as MenuItemCheckbox,fo as MinusIcon,ds as Modal,fs as ModalActions,gs as ModalBody,js as ModalCloseButton,bs as ModalContainer,Is as ModalHeader,Ts as ModalOverlay,ks as ModalTitle,Ps as NativeSelect,u as NavCard,Cs as NavLink,te as NavTab,re as NavTabs,ma as ORGANISASJONSNUMMER_REGEX,go as OpenInNewIcon,Fo as OrderedList,y as PRESETS,Ss as Pagination,jo as PenIcon,bo as PlusIcon,_ as PlusRemoveAnimated,vs as Popover,Ae as PopupTip,n as PrimaryButton,Ms as ProgressBar,Io as QuestionIcon,As as RadioButton,Es as RadioButtonGroup,xs as RadioPanel,Rs as RadioPanelGroup,To as RedCrossIcon,Ee as ScreenReaderOnly,ko as SearchIcon,i as SecondaryButton,Bs as Select,Go as SkeletonAnimation,Ho as SkeletonButton,Wo as SkeletonCheckboxGroup,Uo as SkeletonElement,Ko as SkeletonInput,Xo as SkeletonRadioButtonGroup,_o as SkeletonTable,zo as SkeletonTableHeader,Qo as SkeletonTableRow,Jo as SkeletonTextArea,ka as SlotComponent,ho as SuccessIcon,cs as SuccessMessage,Vs as SuccessSystemMessage,ue as SuccessTag,ws as SummaryTable,Fs as SummaryTableRow,Ro as SupportLabel,fa as TELEFONNUMMER_REGEX,me as Tab,ie as TabList,pe as TabPanel,Gs as Table,Hs as TableBody,Ws as TableCaption,Us as TableCell,Ks as TableColumn,Xs as TableColumnGroup,_s as TableContextProvider,qs as TableFooter,Ys as TableHead,Zs as TableHeader,$s as TablePagination,oe as TableRow,Qs as TableSectionContextProvider,ne as Tabs,de as Tag,d as TaskCard,ss as TeknologiFraFremtind,m as TertiaryButton,je as TextArea,Ie as TextInput,Co as ThumbDownIcon,So as ThumbUpIcon,Te as ToastProvider,Ce as ToggleSlider,he as ToggleSwitch,Se as Tooltip,ve as TooltipContent,Me as TooltipTrigger,vo as TrashCanIcon,No as UnorderedList,es as VartEgetForsikringsselskap,as as VartForsikringsselskap,Mo as WarningIcon,ls as WarningMessage,ys as WarningSystemMessage,fe as WarningTag,aa as formatAvstand,ta as formatBytes,ra as formatDate,ia as formatFodselsnummer,L as formatInput,la as formatKontonummer,da as formatKortnummer,qe as formatNumber,pa as formatOrganisasjonsnummer,ga as formatTelefonnummer,ja as formatValuta,T as getComboboxValuePair,ba as getThemeAndDensity,Fa as getValuePair,Ba as hasMinimumWords,Pa as hasNoIllegalCharacters,wa as initTabListener,x as isBlurTargetOutside,M as isCorrectFormat,Aa as isExactLength,Ea as isInteger,va as isValidChassisnummer,Ma as isValidDogId,ha as isValidEpost,La as isValidFodselsnummer,Ra as isValidName,xa as isValidOrganisasjonsnummer,Sa as isValidRegistreringsnummer,Ca as isValidTelefonnummer,A as isWithinLowerBound,E as isWithinUpperBound,Ia as mergeProps,Ta as mergeRefs,R as parseDateString,Ye as parseNumber,Ze as registerWithFodselsnummerMask,$e as registerWithKontonummerMask,oa as registerWithKortnummerMask,sa as registerWithMasks,ea as registerWithTelefonnummerMask,Le as tokens,Je as unicode,G as upload,xe as useAnimatedDetails,Re as useAnimatedHeight,Be as useAnimatedHeightBetween,He as useAriaLiveRegion,Pe as useAutoAnimatedHeight,we as useBrowserPreferences,We as useClickOutside,C as useCookieConsent,Ke as useElementDimensions,Ue as useFocusOutside,Xe as useId,Fe as useIntersectionObserver,_e as useKeyListener,ze as useListNavigation,Ne as useLocalStorage,hs as useModal,De as useMutationObserver,Ve as usePreviousValue,ye as useProgressiveImg,Oe as useScreen,Ge as useScrollIntoView,ae as useSortableTableHeader,Qe as useSwipeGesture,zs as useTableContext,Js as useTableSectionContext,ke as useToast};
1
+ import{default as s}from"./core/tokens.js";import{useAnimatedDetails as e}from"./hooks/useAnimatedDetails/useAnimatedDetails.js";import{useAnimatedHeight as i}from"./hooks/useAnimatedHeight/useAnimatedHeight.js";import{useAnimatedHeightBetween as r}from"./hooks/useAnimatedHeight/useAnimatedHeightBetween.js";import{useAutoAnimatedHeight as t}from"./hooks/useAnimatedHeight/useAutoAnimateHeight.js";import{useBrowserPreferences as a}from"./hooks/useBrowserPreferences/useBrowserPreferences.js";import{useIntersectionObserver as o}from"./hooks/useIntersectionObserver/useIntersectionObserver.js";import{useLocalStorage as m}from"./hooks/useLocalStorage/useLocalStorage.js";import{useMutationObserver as u}from"./hooks/useMutationObserver/useMutationObserver.js";import{usePreviousValue as n}from"./hooks/usePreviousValue/usePreviousValue.js";import{useProgressiveImg as l}from"./hooks/useProgressiveImg/useProgressiveImg.js";import{useScreen as f}from"./hooks/useScreen/useScreen.js";import{useScrollIntoView as d}from"./hooks/useScrollIntoView/useScrollIntoView.js";import{useAriaLiveRegion as g}from"./hooks/useAriaLiveRegion/useAriaLiveRegion.js";import{useClickOutside as p}from"./hooks/useClickOutside/useClickOutside.js";import{useFocusOutside as h}from"./hooks/useFocusOutside/useFocusOutside.js";import{useElementDimensions as j}from"./hooks/useElementDimensions/useElementDimensions.js";import{useId as E}from"./hooks/useId/useId.js";import{useKeyListener as V}from"./hooks/useKeyListener/useKeyListener.js";import{useListNavigation as v}from"./hooks/useListNavigation/useListNavigation.js";import{useSwipeGesture as k}from"./hooks/useSwipeGesture/useSwipeGesture.js";import{u as M}from"../index-CWRMnfcx.js";import{formatNumber as c}from"./utilities/formatters/util/formatNumber.js";import{parseNumber as O}from"./utilities/formatters/util/parseNumber.js";import{registerWithFodselsnummerMask as N,registerWithKontonummerMask as R,registerWithKortnummerMask as A,registerWithMasks as I,registerWithTelefonnummerMask as S}from"./utilities/formatters/util/registerWithMask.js";import{formatAvstand as L}from"./utilities/formatters/avstand/formatAvstand.js";import{formatBytes as D}from"./utilities/formatters/bytes/formatBytes.js";import{formatDate as T}from"./utilities/formatters/date/formatDate.js";import{FODSELSNUMMER_REGEX as b,formatFodselsnummer as K}from"./utilities/formatters/fodselsnummer/formatFodselsnummer.js";import{ORGANISASJONSNUMMER_REGEX as P,formatOrganisasjonsnummer as F}from"./utilities/formatters/organisasjonsnummer/formatOrganisasjonsnummer.js";import{KONTONUMMER_REGEX as G,formatKontonummer as w}from"./utilities/formatters/kontonummer/formatKontonummer.js";import{KORTNUMMER_REGEX as C,formatKortnummer as W}from"./utilities/formatters/kortnummer/formatKortnummer.js";import{TELEFONNUMMER_REGEX as y,formatTelefonnummer as H}from"./utilities/formatters/telefonnummer/formatTelefonnummer.js";import{formatValuta as B}from"./utilities/formatters/valuta/formatValuta.js";import{getThemeAndDensity as U}from"./utilities/getThemeAndDensity.js";import{mergeProps as X}from"./utilities/polymorphism/mergeProps.js";import{mergeRefs as _}from"./utilities/polymorphism/mergeRefs.js";import{SlotComponent as x}from"./utilities/polymorphism/SlotComponent.js";import{isValidEpost as J}from"./utilities/validators/isValidEpost/isValidEpost.js";import{isValidTelefonnummer as q}from"./utilities/validators/isValidTelefonnummer/isValidTelefonnummer.js";import{isValidRegistreringsnummer as z}from"./utilities/validators/isValidRegistreringsnummer/isValidRegistreringsnummer.js";import{isValidChassisnummer as Q}from"./utilities/validators/isValidChassisnummer/isValidChassisnummer.js";import{isValidDogId as Y}from"./utilities/validators/isValidDogId/isValidDogId.js";import{isExactLength as Z}from"./utilities/validators/isExactLength/isExactLength.js";import{isInteger as $}from"./utilities/validators/isInteger/isInteger.js";import{isValidFodselsnummer as ss}from"./utilities/validators/isValidFodselsnummer/isValidFodselsnummer.js";import{isValidOrganisasjonsnummer as es}from"./utilities/validators/isValidOrganisasjonsnummer/isValidOrganisasjonsnummer.js";import{isValidName as is}from"./utilities/validators/isValidName/isValidName.js";import{hasMinimumWords as rs}from"./utilities/validators/hasMinimumWords/hasMinimumWords.js";import{hasNoIllegalCharacters as ts}from"./utilities/validators/hasNoIllegalCharacters/hasNoIllegalCharacters.js";import{initTabListener as as}from"./utilities/tabListener.js";import{getValuePair as os}from"./utilities/valuePair.js";export{b as FODSELSNUMMER_REGEX,G as KONTONUMMER_REGEX,C as KORTNUMMER_REGEX,P as ORGANISASJONSNUMMER_REGEX,x as SlotComponent,y as TELEFONNUMMER_REGEX,L as formatAvstand,D as formatBytes,T as formatDate,K as formatFodselsnummer,w as formatKontonummer,W as formatKortnummer,c as formatNumber,F as formatOrganisasjonsnummer,H as formatTelefonnummer,B as formatValuta,U as getThemeAndDensity,os as getValuePair,rs as hasMinimumWords,ts as hasNoIllegalCharacters,as as initTabListener,Z as isExactLength,$ as isInteger,Q as isValidChassisnummer,Y as isValidDogId,J as isValidEpost,ss as isValidFodselsnummer,is as isValidName,es as isValidOrganisasjonsnummer,z as isValidRegistreringsnummer,q as isValidTelefonnummer,X as mergeProps,_ as mergeRefs,O as parseNumber,N as registerWithFodselsnummerMask,R as registerWithKontonummerMask,A as registerWithKortnummerMask,I as registerWithMasks,S as registerWithTelefonnummerMask,s as tokens,M as unicode,e as useAnimatedDetails,i as useAnimatedHeight,r as useAnimatedHeightBetween,g as useAriaLiveRegion,t as useAutoAnimatedHeight,a as useBrowserPreferences,p as useClickOutside,j as useElementDimensions,h as useFocusOutside,E as useId,o as useIntersectionObserver,V as useKeyListener,v as useListNavigation,m as useLocalStorage,u as useMutationObserver,n as usePreviousValue,l as useProgressiveImg,f as useScreen,d as useScrollIntoView,k as useSwipeGesture};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- function t(t){return`${`${t.getDate()}`.padStart(2,"0")}.${`${t.getMonth()+1}`.padStart(2,"0")}.${t.getFullYear()}`}const a={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})?$/};function r(t,r){const e=t.replace(/\D/g,""),l=null!=r&&r.partial?a.partial:a.full,n=e.match(l);return n?n.slice(1).filter(Boolean).join("."):t}export{a as DATE_REGEX,t as formatDate,r as formatDateString};
1
+ function t(t){return`${`${t.getDate()}`.padStart(2,"0")}.${`${t.getMonth()+1}`.padStart(2,"0")}.${t.getFullYear()}`}const a={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})?$/};function r(t,r){const e=t.replace(/\D/g,""),l=r?.partial?a.partial:a.full,n=e.match(l);return n?n.slice(1).filter(Boolean).join("."):t}export{a as DATE_REGEX,t as formatDate,r as formatDateString};
2
2
  //# sourceMappingURL=formatDate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatDate.js","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":["formatDate","date","getDate","padStart","getMonth","getFullYear","DATE_REGEX","full","partial","formatDateString","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join"],"mappings":"AAKO,SAASA,EAAWC,GAGvB,MAAO,GAFK,GAAGA,EAAKC,YAAYC,SAAS,EAAG,QAC9B,GAAGF,EAAKG,WAAa,IAAID,SAAS,EAAG,QACzBF,EAAKI,eACnC,CAEO,MAAMC,EAAa,CAEtBC,KAAM,yDACNC,QAAS,wDAOG,SAAAC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQ,MAAAH,GAAAA,EAASH,QAAUF,EAAWE,QAAUF,EAAWC,KAE3DQ,EAAQH,EAAcG,MAAMD,GAE7BC,OAAAA,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAK,KAHhCT,CAIf"}
1
+ {"version":3,"file":"formatDate.js","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":["formatDate","date","getDate","padStart","getMonth","getFullYear","DATE_REGEX","full","partial","formatDateString","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join"],"mappings":"AAKO,SAASA,EAAWC,GAGvB,MAAO,GAFK,GAAGA,EAAKC,YAAYC,SAAS,EAAG,QAC9B,GAAGF,EAAKG,WAAa,IAAID,SAAS,EAAG,QACzBF,EAAKI,eACnC,CAEO,MAAMC,EAAa,CAEtBC,KAAM,yDACNC,QAAS,wDAOG,SAAAC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQH,GAASH,QAAUF,EAAWE,QAAUF,EAAWC,KAE3DQ,EAAQH,EAAcG,MAAMD,GAE7BC,OAAAA,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAK,KAHhCT,CAIf"}
@@ -1,2 +1,2 @@
1
- import{N as l}from"../../../../index-CWRMnfcx.js";const a={full:/^(\d{6})(\d{5})$/,partial:/^(\d{6})(\d{1,5})?$/};function r(r,t){const o=r.replace(/\W/g,""),e=null!=t&&t.partial?a.partial:a.full,n=o.match(e);return n?n.slice(1).filter(Boolean).join(l):r}export{a as FODSELSNUMMER_REGEX,r as formatFodselsnummer};
1
+ import{N as a}from"../../../../index-CWRMnfcx.js";const l={full:/^(\d{6})(\d{5})$/,partial:/^(\d{6})(\d{1,5})?$/};function r(r,t){const o=r.replace(/\W/g,""),e=t?.partial?l.partial:l.full,i=o.match(e);return i?i.slice(1).filter(Boolean).join(a):r}export{l as FODSELSNUMMER_REGEX,r as formatFodselsnummer};
2
2
  //# sourceMappingURL=formatFodselsnummer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatFodselsnummer.js","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","formatFodselsnummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAsB,CAC/BC,KAAM,mBACNC,QAAS,uBAaG,SAAAC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQ,MAAAH,GAAAA,EAASH,QACjBF,EAAoBE,QACpBF,EAAoBC,KAEpBQ,EAAQH,EAAcG,MAAMD,GAE7BC,OAAAA,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,GAHhCV,CAIf"}
1
+ {"version":3,"file":"formatFodselsnummer.js","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","formatFodselsnummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAsB,CAC/BC,KAAM,mBACNC,QAAS,uBAaG,SAAAC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQH,GAASH,QACjBF,EAAoBE,QACpBF,EAAoBC,KAEpBQ,EAAQH,EAAcG,MAAMD,GAE7BC,OAAAA,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,GAHhCV,CAIf"}
@@ -1,2 +1,2 @@
1
- import{N as a}from"../../../../index-CWRMnfcx.js";const l={full:/^(\d{4})(\d{2})(\d{5})$/,partial:/^(\d{4})(\d{1,2})?(\d{1,5})?$/};function o(o,r){const t=o.replace(/\W/g,""),n=null!=r&&r.partial?l.partial:l.full,e=t.match(n);return e?e.slice(1).filter(Boolean).join((null==r?void 0:r.separator)||a):o}export{l as KONTONUMMER_REGEX,o as formatKontonummer};
1
+ import{N as a}from"../../../../index-CWRMnfcx.js";const r={full:/^(\d{4})(\d{2})(\d{5})$/,partial:/^(\d{4})(\d{1,2})?(\d{1,5})?$/};function t(t,o){const l=t.replace(/\W/g,""),e=o?.partial?r.partial:r.full,n=l.match(e);return n?n.slice(1).filter(Boolean).join(o?.separator||a):t}export{r as KONTONUMMER_REGEX,t as formatKontonummer};
2
2
  //# sourceMappingURL=formatKontonummer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatKontonummer.js","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","formatKontonummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","separator","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAoB,CAC7BC,KAAM,0BACNC,QAAS,iCAcG,SAAAC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQ,MAAAH,GAAAA,EAASH,QACjBF,EAAkBE,QAClBF,EAAkBC,KAElBQ,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EACFC,MAAM,GACNC,OAAOC,SACPC,MAAK,MAAAR,OAAA,EAAAA,EAASS,YAAaC,GANrBX,CAOf"}
1
+ {"version":3,"file":"formatKontonummer.js","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","formatKontonummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","separator","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAoB,CAC7BC,KAAM,0BACNC,QAAS,iCAcG,SAAAC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAQH,GAASH,QACjBF,EAAkBE,QAClBF,EAAkBC,KAElBQ,EAAQH,EAAcG,MAAMD,GAElC,OAAKC,EAIEA,EACFC,MAAM,GACNC,OAAOC,SACPC,KAAKR,GAASS,WAAaC,GANrBX,CAOf"}
@@ -1,2 +1,2 @@
1
- import{N as a}from"../../../../index-CWRMnfcx.js";const l={full:/^(\d{4})(\d{4})(\d{4})(\d{4})$/,partial:/^(\d{4})(\d{1,4})?(\d{1,4})?(\d{1,4})?$/};function r(r,t){const o=r.replace(/[\s-.]/g,""),n=null!=t&&t.partial?l.partial:l.full,d=o.match(n);return d?d.slice(1).filter(Boolean).join(a):r}export{l as KORTNUMMER_REGEX,r as formatKortnummer};
1
+ import{N as a}from"../../../../index-CWRMnfcx.js";const r={full:/^(\d{4})(\d{4})(\d{4})(\d{4})$/,partial:/^(\d{4})(\d{1,4})?(\d{1,4})?(\d{1,4})?$/};function t(t,l){const o=t.replace(/[\s-.]/g,""),d=l?.partial?r.partial:r.full,e=o.match(d);return e?e.slice(1).filter(Boolean).join(a):t}export{r as KORTNUMMER_REGEX,t as formatKortnummer};
2
2
  //# sourceMappingURL=formatKortnummer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatKortnummer.js","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","formatKortnummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAmB,CAC5BC,KAAM,iCACNC,QAAS,2CAaG,SAAAC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,UAAW,IACzCC,EAAQ,MAAAH,GAAAA,EAASH,QACjBF,EAAiBE,QACjBF,EAAiBC,KAEjBQ,EAAQH,EAAcG,MAAMD,GAE7BC,OAAAA,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,GAHhCV,CAIf"}
1
+ {"version":3,"file":"formatKortnummer.js","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","formatKortnummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAmB,CAC5BC,KAAM,iCACNC,QAAS,2CAaG,SAAAC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,UAAW,IACzCC,EAAQH,GAASH,QACjBF,EAAiBE,QACjBF,EAAiBC,KAEjBQ,EAAQH,EAAcG,MAAMD,GAE7BC,OAAAA,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,GAHhCV,CAIf"}
@@ -1,2 +1,2 @@
1
- import{N as a}from"../../../../index-CWRMnfcx.js";const l={full:/^(\d{3})(\d{3})(\d{3})$/,partial:/^(\d{3})(\d{1,3})?(\d{1,5})?$/};function r(r,n){const t=r.replace(/[\s-.]/g,""),o=null!=n&&n.partial?l.partial:l.full,s=t.match(o);return s?s.slice(1).filter(Boolean).join(a):r}export{l as ORGANISASJONSNUMMER_REGEX,r as formatOrganisasjonsnummer};
1
+ import{N as a}from"../../../../index-CWRMnfcx.js";const r={full:/^(\d{3})(\d{3})(\d{3})$/,partial:/^(\d{3})(\d{1,3})?(\d{1,5})?$/};function t(t,l){const n=t.replace(/[\s-.]/g,""),o=l?.partial?r.partial:r.full,s=n.match(o);return s?s.slice(1).filter(Boolean).join(a):t}export{r as ORGANISASJONSNUMMER_REGEX,t as formatOrganisasjonsnummer};
2
2
  //# sourceMappingURL=formatOrganisasjonsnummer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatOrganisasjonsnummer.js","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","formatOrganisasjonsnummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAA4B,CACrCC,KAAM,0BACNC,QAAS,iCAaG,SAAAC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,UAAW,IACzCC,EAAQ,MAAAH,GAAAA,EAASH,QACjBF,EAA0BE,QAC1BF,EAA0BC,KAE1BQ,EAAQH,EAAcG,MAAMD,GAE7BC,OAAAA,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,GAHhCV,CAIf"}
1
+ {"version":3,"file":"formatOrganisasjonsnummer.js","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","formatOrganisasjonsnummer","input","options","strippedInput","replace","regex","match","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAA4B,CACrCC,KAAM,0BACNC,QAAS,iCAaG,SAAAC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,UAAW,IACzCC,EAAQH,GAASH,QACjBF,EAA0BE,QAC1BF,EAA0BC,KAE1BQ,EAAQH,EAAcG,MAAMD,GAE7BC,OAAAA,EAIEA,EAAMC,MAAM,GAAGC,OAAOC,SAASC,KAAKC,GAHhCV,CAIf"}
@@ -1,2 +1,2 @@
1
- import{N as a}from"../../../../index-CWRMnfcx.js";const t={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})?$/};function l(l,o){const d=l.replace(/\W/g,""),i=null!=o&&o.partial?t.mobilPartial:t.mobil,r=null!=o&&o.partial?t.fastPartial:t.fast,n=d.match(i)||d.match(r);return n?[null!=o&&o.countryCode?`+${o.countryCode}`:void 0,...n.slice(1)].filter(Boolean).join(a):l}export{t as TELEFONNUMMER_REGEX,l as formatTelefonnummer};
1
+ import{N as a}from"../../../../index-CWRMnfcx.js";const t={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})?$/};function o(o,d){const i=o.replace(/\W/g,""),r=d?.partial?t.mobilPartial:t.mobil,l=d?.partial?t.fastPartial:t.fast,e=i.match(r)||i.match(l);return e?[d?.countryCode?`+${d.countryCode}`:void 0,...e.slice(1)].filter(Boolean).join(a):o}export{t as TELEFONNUMMER_REGEX,o as formatTelefonnummer};
2
2
  //# sourceMappingURL=formatTelefonnummer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatTelefonnummer.js","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","formatTelefonnummer","input","options","strippedInput","replace","mobilRegex","partial","fastRegex","match","countryCode","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAsB,CAC/BC,MAAO,6BACPC,KAAM,mCACNC,aAAc,mCACdC,YAAa,6CAcD,SAAAC,EACZC,EACAC,GAEA,MAAMC,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAa,MAAAH,GAAAA,EAASI,QACtBX,EAAoBG,aACpBH,EAAoBC,MACpBW,EAAY,MAAAL,GAAAA,EAASI,QACrBX,EAAoBI,YACpBJ,EAAoBE,KAEpBW,EACFL,EAAcK,MAAMH,IAAeF,EAAcK,MAAMD,GAE3D,OAAKC,EAIE,CACH,MAAAN,GAAAA,EAASO,YAAc,IAAIP,EAAQO,mBAAgB,KAChDD,EAAME,MAAM,IAEdC,OAAOC,SACPC,KAAKC,GARCb,CASf"}
1
+ {"version":3,"file":"formatTelefonnummer.js","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","formatTelefonnummer","input","options","strippedInput","replace","mobilRegex","partial","fastRegex","match","countryCode","slice","filter","Boolean","join","unicode.NON_BREAKING_SPACE"],"mappings":"kDAEO,MAAMA,EAAsB,CAC/BC,MAAO,6BACPC,KAAM,mCACNC,aAAc,mCACdC,YAAa,6CAcD,SAAAC,EACZC,EACAC,GAEMC,MAAAA,EAAgBF,EAAMG,QAAQ,MAAO,IACrCC,EAAaH,GAASI,QACtBX,EAAoBG,aACpBH,EAAoBC,MACpBW,EAAYL,GAASI,QACrBX,EAAoBI,YACpBJ,EAAoBE,KAEpBW,EACFL,EAAcK,MAAMH,IAAeF,EAAcK,MAAMD,GAE3D,OAAKC,EAIE,CACHN,GAASO,YAAc,IAAIP,EAAQO,mBAAgB,KAChDD,EAAME,MAAM,IAEdC,OAAOC,SACPC,KAAKC,GARCb,CASf"}
@@ -1,2 +1,2 @@
1
- import{formatDateString as e}from"../date/formatDate.js";import{formatFodselsnummer as r}from"../fodselsnummer/formatFodselsnummer.js";import{formatKontonummer as t}from"../kontonummer/formatKontonummer.js";import{formatKortnummer as m}from"../kortnummer/formatKortnummer.js";import{formatOrganisasjonsnummer as n}from"../organisasjonsnummer/formatOrganisasjonsnummer.js";import{formatTelefonnummer as s}from"../telefonnummer/formatTelefonnummer.js";import{formatNumber as o}from"./formatNumber.js";const a={date:e,fodselsnummer:r,kortnummer:m,kontonummer:t,telefonnummer:s,number:o,organisasjonsnummer:n},u=e=>(r,t,m)=>{let n=0,s="";const o={setValueAs:e=>e.replace(/\s/g,""),onChange:o=>{var u;null==(u=null==m?void 0:m.onChange)||u.call(m,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=n-(n-i)}else if(i<o.target.value.length){g=i+(o.target.value.length-l)}null!==g&&o.target.setSelectionRange(g,g,void 0)}};m&&Object.assign(o,m);const u=r.register(t,o),i={onKeyDown:e=>{null!==e.target.selectionStart&&(n=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"),k=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)});export{i as registerWithFodselsnummerMask,g as registerWithKontonummerMask,l as registerWithKortnummerMask,k as registerWithMasks,f as registerWithTelefonnummerMask};
1
+ import{formatDateString as e}from"../date/formatDate.js";import{formatFodselsnummer as r}from"../fodselsnummer/formatFodselsnummer.js";import{formatKontonummer as t}from"../kontonummer/formatKontonummer.js";import{formatKortnummer as m}from"../kortnummer/formatKortnummer.js";import{formatOrganisasjonsnummer as n}from"../organisasjonsnummer/formatOrganisasjonsnummer.js";import{formatTelefonnummer as s}from"../telefonnummer/formatTelefonnummer.js";import{formatNumber as o}from"./formatNumber.js";const a={date:e,fodselsnummer:r,kortnummer:m,kontonummer:t,telefonnummer:s,number:o,organisasjonsnummer:n},u=e=>(r,t,m)=>{let n=0,s="";const o={setValueAs:e=>e.replace(/\s/g,""),onChange:o=>{m?.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=n-(n-u)}else if(u<o.target.value.length){l=u+(o.target.value.length-i)}null!==l&&o.target.setSelectionRange(l,l,void 0)}};m&&Object.assign(o,m);const u=r.register(t,o),i={onKeyDown:e=>{null!==e.target.selectionStart&&(n=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"),k=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)});export{i as registerWithFodselsnummerMask,g as registerWithKontonummerMask,l as registerWithKortnummerMask,k as registerWithMasks,f as registerWithTelefonnummerMask};
2
2
  //# sourceMappingURL=registerWithMask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerWithMask.js","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","registerWithMasks","registerWithOrganisasjonsnummerMask","registerWithDateMask","registerWithNumber"],"mappings":"mfAiBA,MAAMA,EAAa,CACfC,KAAMC,EACNC,cAAeC,EACfC,WAAYC,EACZC,YAAaC,EACbC,cAAeC,EACfC,OAAQC,EACRC,oBAAqBC,GASnBC,EACDC,GACD,CACIC,EACAC,EACAC,KAEIC,IAAAA,EAAyB,EACzBC,EAAsB,GAiD1B,MAAMC,EAA+C,CACjDC,WAhDgBC,GAAkBA,EAAMC,QAAQ,MAAO,IAiDvDC,SAhDcC,UACd,OAAAC,EAAA,MAAAT,OAAAA,EAAAA,EAASO,WAATE,EAAAC,KAAAV,EAAoBQ,GAGpB,IAAIG,EAAwB,EACtBC,MAAAA,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,GAAA,GAQ5B7B,MAAc,WAAdA,IACA2B,EAAMG,MAAQ,SAGXN,OAAOC,OAAOC,EAAUC,EAAK,EAI/BI,EAAgChC,EAAiB,iBAEjDiC,EAA6BjC,EAAiB,cAE9CkC,EAA8BlC,EAAiB,eAE/CmC,EAAgCnC,EAAiB,iBAKjDoC,EACTlC,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,GACrDiC,oCAAqC,CACjClC,EACAC,IAEAJ,EAAiB,sBAAjBA,CAA2CE,EAAMC,EAAMC,GAC3DkC,qBAAsB,CAClBnC,EACAC,IAEAJ,EAAiB,OAAjBA,CAA4BE,EAAMC,EAAMC,GAC5CmC,mBAAoB,CAChBpC,EACAC,IAEAJ,EAAiB,SAAjBA,CACIE,EACAC,EACAC"}
1
+ {"version":3,"file":"registerWithMask.js","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","registerWithMasks","registerWithOrganisasjonsnummerMask","registerWithDateMask","registerWithNumber"],"mappings":"mfAiBA,MAAMA,EAAa,CACfC,KAAMC,EACNC,cAAeC,EACfC,WAAYC,EACZC,YAAaC,EACbC,cAAeC,EACfC,OAAQC,EACRC,oBAAqBC,GASnBC,EACDC,GACD,CACIC,EACAC,EACAC,KAEIC,IAAAA,EAAyB,EACzBC,EAAsB,GAiD1B,MAAMC,EAA+C,CACjDC,WAhDgBC,GAAkBA,EAAMC,QAAQ,MAAO,IAiDvDC,SAhDcC,IACdR,GAASO,WAAWC,GAGpB,IAAIC,EAAwB,EACtBC,MAAAA,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,MAAAA,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,GAAA,GAQ5B3B,MAAc,WAAdA,IACAyB,EAAMG,MAAQ,SAGXN,OAAOC,OAAOC,EAAUC,EAAK,EAI/BI,EAAgC9B,EAAiB,iBAEjD+B,EAA6B/B,EAAiB,cAE9CgC,EAA8BhC,EAAiB,eAE/CiC,EAAgCjC,EAAiB,iBAKjDkC,EACThC,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,GACrD+B,oCAAqC,CACjChC,EACAC,IAEAJ,EAAiB,sBAAjBA,CAA2CE,EAAMC,EAAMC,GAC3DgC,qBAAsB,CAClBjC,EACAC,IAEAJ,EAAiB,OAAjBA,CAA4BE,EAAMC,EAAMC,GAC5CiC,mBAAoB,CAChBlC,EACAC,IAEAJ,EAAiB,SAAjBA,CACIE,EACAC,EACAC"}
@@ -1,2 +1,2 @@
1
- import{n as i}from"../../../../index-CWRMnfcx.js";import{formatNumber as r}from"../util/formatNumber.js";import{parseNumber as t}from"../util/parseNumber.js";const m={locale:"no-NB",minimumFractionDigits:0,maximumFractionDigits:2,suffix:"kr"};function n(n,o){const u=t(n);if(Number.isNaN(u))return n.toString();const s=Number.isInteger(u)?{}:{minimumFractionDigits:2,maximumFractionDigits:2},a=void 0!==(null==o?void 0:o.suffix)?o.suffix:m.suffix,{prefix:e,...f}={...m,...s,...o},l=null!=e&&e.length?`${e}${i}`:"",c=null!=a&&a.length?`${i}${a}`:"";return`${l}${r(u,f)}${c}`}export{n as formatValuta};
1
+ import{n as i}from"../../../../index-CWRMnfcx.js";import{formatNumber as r}from"../util/formatNumber.js";import{parseNumber as t}from"../util/parseNumber.js";const m={locale:"no-NB",minimumFractionDigits:0,maximumFractionDigits:2,suffix:"kr"};function o(o,s){const n=t(o);if(Number.isNaN(n))return o.toString();const u=Number.isInteger(n)?{}:{minimumFractionDigits:2,maximumFractionDigits:2},a=void 0!==s?.suffix?s.suffix:m.suffix,{prefix:e,...f}={...m,...u,...s},c=e?.length?`${e}${i}`:"",x=a?.length?`${i}${a}`:"";return`${c}${r(n,f)}${x}`}export{o as formatValuta};
2
2
  //# sourceMappingURL=formatValuta.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatValuta.js","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","formatValuta","input","options","number","parseNumber","Number","isNaN","toString","fractionOptions","isInteger","prefix","formatOptions","prefixString","length","unicode.nbsp","suffixString","formatNumber"],"mappings":"8JAgBA,MAAMA,EAAsC,CACxCC,OAAQ,QACRC,sBAAuB,EACvBC,sBAAuB,EACvBC,OAAQ,MAUI,SAAAC,EACZC,EACAC,GAEMC,MAAAA,EAASC,EAAYH,GACvB,GAAAI,OAAOC,MAAMH,GACb,OAAOF,EAAMM,WAKX,MAAAC,EAA4CH,OAAOI,UAAUN,GAC7D,GACA,CAAEN,sBAAuB,EAAGC,sBAAuB,GAEnDC,OACkB,KAApB,MAAAG,OAAA,EAAAA,EAASH,QAAuBG,EAAQH,OAASJ,EAAeI,QAC5DW,OAAAA,KAAWC,GAAkB,IAC9BhB,KACAa,KACAN,GAGDU,EAAe,MAAAF,GAAAA,EAAQG,OAAS,GAAGH,IAASI,IAAiB,GAC7DC,EAAe,MAAAhB,GAAAA,EAAQc,OAAS,GAAGC,IAAef,IAAW,GAGnE,MAAO,GAAGa,IAFcI,EAAab,EAAQQ,KAEFI,GAC/C"}
1
+ {"version":3,"file":"formatValuta.js","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","formatValuta","input","options","number","parseNumber","Number","isNaN","toString","fractionOptions","isInteger","prefix","formatOptions","prefixString","length","unicode.nbsp","suffixString","formatNumber"],"mappings":"8JAgBA,MAAMA,EAAsC,CACxCC,OAAQ,QACRC,sBAAuB,EACvBC,sBAAuB,EACvBC,OAAQ,MAUI,SAAAC,EACZC,EACAC,GAEMC,MAAAA,EAASC,EAAYH,GACvB,GAAAI,OAAOC,MAAMH,GACb,OAAOF,EAAMM,WAKXC,MAAAA,EAA4CH,OAAOI,UAAUN,GAC7D,GACA,CAAEN,sBAAuB,EAAGC,sBAAuB,GAEnDC,OACkB,IAApBG,GAASH,OAAuBG,EAAQH,OAASJ,EAAeI,QAC5DW,OAAAA,KAAWC,GAAkB,IAC9BhB,KACAa,KACAN,GAGDU,EAAeF,GAAQG,OAAS,GAAGH,IAASI,IAAiB,GAC7DC,EAAehB,GAAQc,OAAS,GAAGC,IAAef,IAAW,GAGnE,MAAO,GAAGa,IAFcI,EAAab,EAAQQ,KAEFI,GAC/C"}
@@ -1,2 +1,2 @@
1
- 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(),a("touchstart"),a("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,a("touchstart"),a("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(),a("touchstart"),a("keydown"),a("mousedown")}o=!0,setTimeout((()=>{o=!1}),150)}};function u(){for(const t of Object.keys(n))document.removeEventListener(t,n[t])}function a(t){document.addEventListener(t,n[t])}function i(){typeof document<"u"&&(a("touchstart"),a("mousedown"))}export{i as initTabListener};
1
+ 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(),a("touchstart"),a("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,a("touchstart"),a("mousedown")}},touchstart:function(){if(!e){t=!1,e=!0;const o=document.querySelector("html");o?.setAttribute("data-touchnavigation","true"),o?.removeAttribute("data-mousenavigation"),u(),a("touchstart"),a("keydown"),a("mousedown")}o=!0,setTimeout((()=>{o=!1}),150)}};function u(){for(const t of Object.keys(n))document.removeEventListener(t,n[t])}function a(t){document.addEventListener(t,n[t])}function i(){typeof document<"u"&&(a("touchstart"),a("mousedown"))}export{i as initTabListener};
2
2
  //# sourceMappingURL=tabListener.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabListener.js","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","initTabListener"],"mappings":"AAAA,IAAIA,GAAkB,EAClBC,GAAkB,EAClBC,GAAkB,EAEtB,MAAMC,EAAY,CACdC,UAiBJ,WACQ,IAACJ,IAAoBE,EAAiB,CACpBF,GAAA,EACAC,GAAA,EACZI,MAAAA,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,GACfA,GAAc,QAAdA,EAAMC,IAAe,CACfT,MAAAA,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,EACZI,MAAAA,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,IACMO,IAAAA,MAAAA,KAAgBC,OAAOC,KAAKhB,GAGnCG,SAASc,oBAAoBH,EAAcd,EAAUc,GAE7D,CAEA,SAASN,EAAYM,GACjBX,SAASe,iBAAiBJ,EAAcd,EAAUc,GACtD,CAwDO,SAASK,WACDhB,SAAa,MACpBK,EAAY,cACZA,EAAY,aAEpB"}
1
+ {"version":3,"file":"tabListener.js","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","initTabListener"],"mappings":"AAAA,IAAIA,GAAkB,EAClBC,GAAkB,EAClBC,GAAkB,EAEtB,MAAMC,EAAY,CACdC,UAiBJ,WACQ,IAACJ,IAAoBE,EAAiB,CACpBF,GAAA,EACAC,GAAA,EACZI,MAAAA,EAAcC,SAASC,cAAc,QAC9BF,GAAAG,aAAa,uBAAwB,QAClDH,GAAaI,gBAAgB,wBAGVC,IACnBC,EAAY,cACZA,EAAY,UAAS,CAE7B,EA7BIC,QA+BJ,SAAuBC,GACfA,GAAc,QAAdA,EAAMC,IAAe,CACfT,MAAAA,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,EACZI,MAAAA,EAAcC,SAASC,cAAc,QAC9BF,GAAAG,aAAa,uBAAwB,QAClDH,GAAaI,gBAAgB,wBAGVC,IACnBC,EAAY,cACZA,EAAY,WACZA,EAAY,YAAW,CAMTT,GAAA,EAClBc,YAAW,KACWd,GAAA,CAAA,GACnB,IACP,GAhEA,SAASQ,IACMO,IAAAA,MAAAA,KAAgBC,OAAOC,KAAKhB,GAGnCG,SAASc,oBAAoBH,EAAcd,EAAUc,GAE7D,CAEA,SAASN,EAAYM,GACjBX,SAASe,iBAAiBJ,EAAcd,EAAUc,GACtD,CAwDO,SAASK,WACDhB,SAAa,MACpBK,EAAY,cACZA,EAAY,aAEpB"}
@@ -1,2 +1,2 @@
1
- const i=(i,s)=>i.split(" ").filter((i=>![""," "].includes(i))).length>=((null==s?void 0:s.minimumWords)||2);export{i as hasMinimumWords};
1
+ const i=(i,s)=>i.split(" ").filter((i=>![""," "].includes(i))).length>=(s?.minimumWords||2);export{i as hasMinimumWords};
2
2
  //# sourceMappingURL=hasMinimumWords.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hasMinimumWords.js","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":["hasMinimumWords","value","options","split","filter","str","includes","length","minimumWords"],"mappings":"AAUa,MAAAA,EAAkB,CAC3BC,EACAC,IAEAD,EAAME,MAAM,KAAKC,QAAQC,IAAS,CAAC,GAAI,KAAKC,SAASD,KAAME,UAC1D,MAAAL,OAAAA,EAAAA,EAASM,eAAgB"}
1
+ {"version":3,"file":"hasMinimumWords.js","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":["hasMinimumWords","value","options","split","filter","str","includes","length","minimumWords"],"mappings":"AAUa,MAAAA,EAAkB,CAC3BC,EACAC,IAEAD,EAAME,MAAM,KAAKC,QAAQC,IAAS,CAAC,GAAI,KAAKC,SAASD,KAAME,SAC1DL,GAASM,cAAgB"}