@dnb/eufemia 10.71.0 → 10.71.1

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 (105) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/cjs/components/date-picker/DatePickerFooter.d.ts +2 -2
  3. package/cjs/components/date-picker/DatePickerFooter.js.map +1 -1
  4. package/cjs/components/date-picker/DatePickerInput.js +18 -22
  5. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  6. package/cjs/components/date-picker/hooks/useDates.d.ts +1 -10
  7. package/cjs/components/date-picker/hooks/useDates.js +2 -40
  8. package/cjs/components/date-picker/hooks/useDates.js.map +1 -1
  9. package/cjs/components/date-picker/hooks/useInputDates.d.ts +14 -0
  10. package/cjs/components/date-picker/hooks/useInputDates.js +80 -0
  11. package/cjs/components/date-picker/hooks/useInputDates.js.map +1 -0
  12. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js +2 -2
  13. package/cjs/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  14. package/cjs/components/tooltip/TooltipContainer.js +2 -1
  15. package/cjs/components/tooltip/TooltipContainer.js.map +1 -1
  16. package/cjs/extensions/forms/utils/FormError.d.ts +3 -0
  17. package/cjs/extensions/forms/utils/FormError.js.map +1 -1
  18. package/cjs/shared/Eufemia.d.ts +1 -1
  19. package/cjs/shared/Eufemia.js +2 -2
  20. package/cjs/shared/Eufemia.js.map +1 -1
  21. package/cjs/shared/locales/en-GB.js +2 -2
  22. package/cjs/shared/locales/en-GB.js.map +1 -1
  23. package/cjs/style/core/scopes.scss +1 -1
  24. package/cjs/style/dnb-ui-basis.css +1 -1
  25. package/cjs/style/dnb-ui-basis.min.css +1 -1
  26. package/cjs/style/dnb-ui-body.css +1 -1
  27. package/cjs/style/dnb-ui-body.min.css +1 -1
  28. package/cjs/style/dnb-ui-core.css +1 -1
  29. package/cjs/style/dnb-ui-core.min.css +1 -1
  30. package/components/date-picker/DatePickerFooter.d.ts +2 -2
  31. package/components/date-picker/DatePickerFooter.js.map +1 -1
  32. package/components/date-picker/DatePickerInput.js +18 -22
  33. package/components/date-picker/DatePickerInput.js.map +1 -1
  34. package/components/date-picker/hooks/useDates.d.ts +1 -10
  35. package/components/date-picker/hooks/useDates.js +2 -36
  36. package/components/date-picker/hooks/useDates.js.map +1 -1
  37. package/components/date-picker/hooks/useInputDates.d.ts +14 -0
  38. package/components/date-picker/hooks/useInputDates.js +72 -0
  39. package/components/date-picker/hooks/useInputDates.js.map +1 -0
  40. package/components/input-masked/text-mask/adjustCaretPosition.js +2 -2
  41. package/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  42. package/components/tooltip/TooltipContainer.js +2 -1
  43. package/components/tooltip/TooltipContainer.js.map +1 -1
  44. package/es/components/date-picker/DatePickerFooter.d.ts +2 -2
  45. package/es/components/date-picker/DatePickerFooter.js.map +1 -1
  46. package/es/components/date-picker/DatePickerInput.js +18 -22
  47. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  48. package/es/components/date-picker/hooks/useDates.d.ts +1 -10
  49. package/es/components/date-picker/hooks/useDates.js +2 -36
  50. package/es/components/date-picker/hooks/useDates.js.map +1 -1
  51. package/es/components/date-picker/hooks/useInputDates.d.ts +14 -0
  52. package/es/components/date-picker/hooks/useInputDates.js +70 -0
  53. package/es/components/date-picker/hooks/useInputDates.js.map +1 -0
  54. package/es/components/input-masked/text-mask/adjustCaretPosition.js +2 -2
  55. package/es/components/input-masked/text-mask/adjustCaretPosition.js.map +1 -1
  56. package/es/components/tooltip/TooltipContainer.js +2 -1
  57. package/es/components/tooltip/TooltipContainer.js.map +1 -1
  58. package/es/extensions/forms/utils/FormError.d.ts +3 -0
  59. package/es/extensions/forms/utils/FormError.js.map +1 -1
  60. package/es/shared/Eufemia.d.ts +1 -1
  61. package/es/shared/Eufemia.js +2 -2
  62. package/es/shared/Eufemia.js.map +1 -1
  63. package/es/shared/locales/en-GB.js +2 -2
  64. package/es/shared/locales/en-GB.js.map +1 -1
  65. package/es/style/core/scopes.scss +1 -1
  66. package/es/style/dnb-ui-basis.css +1 -1
  67. package/es/style/dnb-ui-basis.min.css +1 -1
  68. package/es/style/dnb-ui-body.css +1 -1
  69. package/es/style/dnb-ui-body.min.css +1 -1
  70. package/es/style/dnb-ui-core.css +1 -1
  71. package/es/style/dnb-ui-core.min.css +1 -1
  72. package/esm/dnb-ui-basis.min.mjs +1 -1
  73. package/esm/dnb-ui-components.min.mjs +1 -1
  74. package/esm/dnb-ui-elements.min.mjs +1 -1
  75. package/esm/dnb-ui-extensions.min.mjs +1 -1
  76. package/esm/dnb-ui-lib.min.mjs +1 -1
  77. package/extensions/forms/utils/FormError.d.ts +3 -0
  78. package/extensions/forms/utils/FormError.js.map +1 -1
  79. package/package.json +1 -1
  80. package/shared/Eufemia.d.ts +1 -1
  81. package/shared/Eufemia.js +2 -2
  82. package/shared/Eufemia.js.map +1 -1
  83. package/shared/locales/en-GB.js +2 -2
  84. package/shared/locales/en-GB.js.map +1 -1
  85. package/style/core/scopes.scss +1 -1
  86. package/style/dnb-ui-basis.css +1 -1
  87. package/style/dnb-ui-basis.min.css +1 -1
  88. package/style/dnb-ui-body.css +1 -1
  89. package/style/dnb-ui-body.min.css +1 -1
  90. package/style/dnb-ui-core.css +1 -1
  91. package/style/dnb-ui-core.min.css +1 -1
  92. package/umd/dnb-ui-basis.min.js +1 -1
  93. package/umd/dnb-ui-components.min.js +1 -1
  94. package/umd/dnb-ui-elements.min.js +1 -1
  95. package/umd/dnb-ui-extensions.min.js +1 -1
  96. package/umd/dnb-ui-lib.min.js +1 -1
  97. package/cjs/components/icon/lib/SvgComparison.d.ts +0 -2
  98. package/cjs/components/icon/lib/SvgComparison.js +0 -56
  99. package/cjs/components/icon/lib/SvgComparison.js.map +0 -1
  100. package/components/icon/lib/SvgComparison.d.ts +0 -2
  101. package/components/icon/lib/SvgComparison.js +0 -49
  102. package/components/icon/lib/SvgComparison.js.map +0 -1
  103. package/es/components/icon/lib/SvgComparison.d.ts +0 -2
  104. package/es/components/icon/lib/SvgComparison.js +0 -49
  105. package/es/components/icon/lib/SvgComparison.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"adjustCaretPosition.js","names":["defaultArray","emptyString","adjustCaretPosition","previousConformedValue","previousPlaceholder","currentCaretPosition","conformedValue","rawValue","placeholderChar","placeholder","indexesOfPipedChars","caretTrapIndexes","keepCharPositions","length","rawValueLength","previousConformedValueLength","placeholderLength","conformedValueLength","editLength","isAddition","isFirstRawValue","isPartialMultiCharEdit","possiblyHasRejectedChar","startingSearchIndex","trackRightCharacter","targetChar","normalizedConformedValue","toLowerCase","normalizedRawValue","leftHalfChars","substr","split","intersection","filter","char","indexOf","previousLeftMaskChars","leftMaskChars","masklengthChanged","targetIsMaskMovingLeft","undefined","pipedChars","map","index","countTargetCharInPipedChars","countTargetCharInIntersection","countTargetCharInPlaceholder","requiredNumberOfMatches","numberOfEncounteredMatches","i","conformedValueChar","lastPlaceholderChar"],"sources":["../../../../../src/components/input-masked/text-mask/adjustCaretPosition.js"],"sourcesContent":["const defaultArray = []\nconst emptyString = ''\n\nexport default function adjustCaretPosition({\n previousConformedValue = emptyString,\n previousPlaceholder = emptyString,\n currentCaretPosition = 0,\n conformedValue,\n rawValue,\n placeholderChar,\n placeholder,\n indexesOfPipedChars = defaultArray,\n caretTrapIndexes = defaultArray,\n keepCharPositions = false,\n}) {\n if (currentCaretPosition === 0 || !rawValue.length) {\n return 0\n }\n\n // Store lengths for faster performance?\n const rawValueLength = rawValue.length\n const previousConformedValueLength = previousConformedValue.length\n const placeholderLength = placeholder.length\n const conformedValueLength = conformedValue.length\n\n // This tells us how long the edit is. If user modified input from `(2__)` to `(243__)`,\n // we know the user in this instance pasted two characters\n const editLength = rawValueLength - previousConformedValueLength\n\n // If the edit length is positive, that means the user is adding characters, not deleting.\n const isAddition = editLength > 0\n\n // This is the first raw value the user entered that needs to be conformed to mask\n const isFirstRawValue = previousConformedValueLength === 0\n\n // A partial multi-character edit happens when the user makes a partial selection in their\n // input and edits that selection. That is going from `(123) 432-4348` to `() 432-4348` by\n // selecting the first 3 digits and pressing backspace.\n //\n // Such cases can also happen when the user presses the backspace while holding down the ALT\n // key.\n const isPartialMultiCharEdit =\n editLength > 1 && !isAddition && !isFirstRawValue\n\n // This algorithm doesn't support all cases of multi-character edits, so we just return\n // the current caret position.\n //\n // This works fine for most cases.\n if (isPartialMultiCharEdit) {\n return currentCaretPosition\n }\n\n // For a mask like (111), if the `previousConformedValue` is (1__) and user attempts to enter\n // `f` so the `rawValue` becomes (1f__), the new `conformedValue` would be (1__), which is the\n // same as the original `previousConformedValue`. We handle this case differently for caret\n // positioning.\n const possiblyHasRejectedChar =\n isAddition &&\n ((keepCharPositions !== false &&\n previousConformedValue === conformedValue) ||\n conformedValue === placeholder)\n\n let startingSearchIndex = 0\n let trackRightCharacter\n let targetChar\n\n if (possiblyHasRejectedChar) {\n startingSearchIndex = currentCaretPosition - editLength\n } else {\n // At this point in the algorithm, we want to know where the caret is right before the raw input\n // has been conformed, and then see if we can find that same spot in the conformed input.\n //\n // We do that by seeing what character lies immediately before the caret, and then look for that\n // same character in the conformed input and place the caret there.\n\n // First, we need to normalize the inputs so that letter capitalization between raw input and\n // conformed input wouldn't matter.\n const normalizedConformedValue = conformedValue.toLowerCase()\n const normalizedRawValue = rawValue.toLowerCase()\n\n // Then we take all characters that come before where the caret currently is.\n const leftHalfChars = normalizedRawValue\n .substr(0, currentCaretPosition)\n .split(emptyString)\n\n // Now we find all the characters in the left half that exist in the conformed input\n // This step ensures that we don't look for a character that was filtered out or rejected by `conformToMask`.\n const intersection = leftHalfChars.filter(\n (char) => normalizedConformedValue.indexOf(char) !== -1\n )\n\n // The last character in the intersection is the character we want to look for in the conformed\n // value and the one we want to adjust the caret close to\n targetChar = intersection[intersection.length - 1]\n\n // Calculate the number of mask characters in the previous placeholder\n // from the start of the string up to the place where the caret is\n const previousLeftMaskChars = previousPlaceholder\n .substr(0, intersection.length)\n .split(emptyString)\n .filter((char) => char !== placeholderChar).length\n\n // Calculate the number of mask characters in the current placeholder\n // from the start of the string up to the place where the caret is\n const leftMaskChars = placeholder\n .substr(0, intersection.length)\n .split(emptyString)\n .filter((char) => char !== placeholderChar).length\n\n // Has the number of mask characters up to the caret changed?\n const masklengthChanged = leftMaskChars !== previousLeftMaskChars\n\n // Detect if `targetChar` is a mask character and has moved to the left\n const targetIsMaskMovingLeft =\n previousPlaceholder[intersection.length - 1] !== undefined &&\n placeholder[intersection.length - 2] !== undefined &&\n previousPlaceholder[intersection.length - 1] !== placeholderChar &&\n previousPlaceholder[intersection.length - 1] !==\n placeholder[intersection.length - 1] &&\n previousPlaceholder[intersection.length - 1] ===\n placeholder[intersection.length - 2]\n\n // If deleting and the `targetChar` `is a mask character and `masklengthChanged` is true\n // or the mask is moving to the left, we can't use the selected `targetChar` any longer\n // if we are not at the end of the string.\n // In this case, change tracking strategy and track the character to the right of the caret.\n if (\n !isAddition &&\n (masklengthChanged || targetIsMaskMovingLeft) &&\n previousLeftMaskChars > 0 &&\n placeholder.indexOf(targetChar) > -1 &&\n rawValue[currentCaretPosition] !== undefined\n ) {\n trackRightCharacter = true\n targetChar = rawValue[currentCaretPosition]\n }\n\n // It is possible that `targetChar` will appear multiple times in the conformed value.\n // We need to know not to select a character that looks like our target character from the placeholder or\n // the piped characters, so we inspect the piped characters and the placeholder to see if they contain\n // characters that match our target character.\n\n // If the `conformedValue` got piped, we need to know which characters were piped in so that when we look for\n // our `targetChar`, we don't select a piped char by mistake\n const pipedChars = indexesOfPipedChars.map(\n (index) => normalizedConformedValue[index]\n )\n\n // We need to know how many times the `targetChar` occurs in the piped characters.\n const countTargetCharInPipedChars = pipedChars.filter(\n (char) => char === targetChar\n ).length\n\n // We need to know how many times it occurs in the intersection\n const countTargetCharInIntersection = intersection.filter(\n (char) => char === targetChar\n ).length\n\n // We need to know if the placeholder contains characters that look like\n // our `targetChar`, so we don't select one of those by mistake.\n const countTargetCharInPlaceholder = placeholder\n .substr(0, placeholder.indexOf(placeholderChar))\n .split(emptyString)\n .filter(\n (char, index) =>\n // Check if `char` is the same as our `targetChar`, so we account for it\n char === targetChar &&\n // but also make sure that both the `rawValue` and placeholder don't have the same character at the same\n // index because if they are equal, that means we are already counting those characters in\n // `countTargetCharInIntersection`\n rawValue[index] !== char\n ).length\n\n // The number of times we need to see occurrences of the `targetChar` before we know it is the one we're looking\n // for is:\n const requiredNumberOfMatches =\n countTargetCharInPlaceholder +\n countTargetCharInIntersection +\n countTargetCharInPipedChars +\n // The character to the right of the caret isn't included in `intersection`\n // so add one if we are tracking the character to the right\n (trackRightCharacter ? 1 : 0)\n\n // Now we start looking for the location of the `targetChar`.\n // We keep looping forward and store the index in every iteration. Once we have encountered\n // enough occurrences of the target character, we break out of the loop\n // If are searching for the second `1` in `1214`, `startingSearchIndex` will point at `4`.\n let numberOfEncounteredMatches = 0\n for (let i = 0; i < conformedValueLength; i++) {\n const conformedValueChar = normalizedConformedValue[i]\n\n startingSearchIndex = i + 1\n\n if (conformedValueChar === targetChar) {\n numberOfEncounteredMatches++\n }\n\n if (numberOfEncounteredMatches >= requiredNumberOfMatches) {\n break\n }\n }\n }\n\n // At this point, if we simply return `startingSearchIndex` as the adjusted caret position,\n // most cases would be handled. However, we want to fast forward or rewind the caret to the\n // closest placeholder character if it happens to be in a non-editable spot. That's what the next\n // logic is for.\n\n // In case of addition, we fast forward.\n if (isAddition) {\n // We want to remember the last placeholder character encountered so that if the mask\n // contains more characters after the last placeholder character, we don't forward the caret\n // that far to the right. Instead, we stop it at the last encountered placeholder character.\n let lastPlaceholderChar = startingSearchIndex\n\n for (let i = startingSearchIndex; i <= placeholderLength; i++) {\n if (placeholder[i] === placeholderChar) {\n lastPlaceholderChar = i\n }\n\n if (\n // If we're adding, we can position the caret at the next placeholder character.\n placeholder[i] === placeholderChar ||\n // If a caret trap was set by a mask function, we need to stop at the trap.\n caretTrapIndexes.indexOf(i) !== -1 ||\n // This is the end of the placeholder. We cannot move any further. Let's put the caret there.\n i === placeholderLength\n ) {\n return lastPlaceholderChar\n }\n }\n } else {\n // In case of deletion, we rewind.\n if (trackRightCharacter) {\n // Searching for the character that was to the right of the caret\n // We start at `startingSearchIndex` - 1 because it includes one character extra to the right\n for (let i = startingSearchIndex - 1; i >= 0; i--) {\n // If tracking the character to the right of the cursor, we move to the left until\n // we found the character and then place the caret right before it\n\n if (\n // `targetChar` should be in `conformedValue`, since it was in `rawValue`, just\n // to the right of the caret\n conformedValue[i] === targetChar ||\n // If a caret trap was set by a mask function, we need to stop at the trap.\n caretTrapIndexes.indexOf(i) !== -1 ||\n // This is the beginning of the placeholder. We cannot move any further.\n // Let's put the caret there.\n i === 0\n ) {\n return i\n }\n }\n } else {\n // Searching for the first placeholder or caret trap to the left\n\n for (let i = startingSearchIndex; i >= 0; i--) {\n // If we're deleting, we stop the caret right before the placeholder character.\n // For example, for mask `(111) 11`, current conformed input `(456) 86`. If user\n // modifies input to `(456 86`. That is, they deleted the `)`, we place the caret\n // right after the first `6`\n\n if (\n // If we're deleting, we can position the caret right before the placeholder character\n placeholder[i - 1] === placeholderChar ||\n // If a caret trap was set by a mask function, we need to stop at the trap.\n caretTrapIndexes.indexOf(i) !== -1 ||\n // This is the beginning of the placeholder. We cannot move any further.\n // Let's put the caret there.\n i === 0\n ) {\n return i\n }\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"adjustCaretPosition.js","names":["defaultArray","emptyString","adjustCaretPosition","previousConformedValue","previousPlaceholder","currentCaretPosition","conformedValue","rawValue","placeholderChar","placeholder","indexesOfPipedChars","caretTrapIndexes","keepCharPositions","length","rawValueLength","previousConformedValueLength","placeholderLength","conformedValueLength","editLength","isAddition","isFirstRawValue","isPartialMultiCharEdit","possiblyHasRejectedChar","startingSearchIndex","trackRightCharacter","targetChar","normalizedConformedValue","toLowerCase","normalizedRawValue","leftHalfChars","substr","split","intersection","filter","char","indexOf","previousLeftMaskChars","leftMaskChars","maskLengthChanged","targetIsMaskMovingLeft","undefined","pipedChars","map","index","countTargetCharInPipedChars","countTargetCharInIntersection","countTargetCharInPlaceholder","requiredNumberOfMatches","numberOfEncounteredMatches","i","conformedValueChar","lastPlaceholderChar"],"sources":["../../../../../src/components/input-masked/text-mask/adjustCaretPosition.js"],"sourcesContent":["const defaultArray = []\nconst emptyString = ''\n\nexport default function adjustCaretPosition({\n previousConformedValue = emptyString,\n previousPlaceholder = emptyString,\n currentCaretPosition = 0,\n conformedValue,\n rawValue,\n placeholderChar,\n placeholder,\n indexesOfPipedChars = defaultArray,\n caretTrapIndexes = defaultArray,\n keepCharPositions = false,\n}) {\n if (currentCaretPosition === 0 || !rawValue.length) {\n return 0\n }\n\n // Store lengths for faster performance?\n const rawValueLength = rawValue.length\n const previousConformedValueLength = previousConformedValue.length\n const placeholderLength = placeholder.length\n const conformedValueLength = conformedValue.length\n\n // This tells us how long the edit is. If user modified input from `(2__)` to `(243__)`,\n // we know the user in this instance pasted two characters\n const editLength = rawValueLength - previousConformedValueLength\n\n // If the edit length is positive, that means the user is adding characters, not deleting.\n const isAddition = editLength > 0\n\n // This is the first raw value the user entered that needs to be conformed to mask\n const isFirstRawValue = previousConformedValueLength === 0\n\n // A partial multi-character edit happens when the user makes a partial selection in their\n // input and edits that selection. That is going from `(123) 432-4348` to `() 432-4348` by\n // selecting the first 3 digits and pressing backspace.\n //\n // Such cases can also happen when the user presses the backspace while holding down the ALT\n // key.\n const isPartialMultiCharEdit =\n editLength > 1 && !isAddition && !isFirstRawValue\n\n // This algorithm doesn't support all cases of multi-character edits, so we just return\n // the current caret position.\n //\n // This works fine for most cases.\n if (isPartialMultiCharEdit) {\n return currentCaretPosition\n }\n\n // For a mask like (111), if the `previousConformedValue` is (1__) and user attempts to enter\n // `f` so the `rawValue` becomes (1f__), the new `conformedValue` would be (1__), which is the\n // same as the original `previousConformedValue`. We handle this case differently for caret\n // positioning.\n const possiblyHasRejectedChar =\n isAddition &&\n ((keepCharPositions !== false &&\n previousConformedValue === conformedValue) ||\n conformedValue === placeholder)\n\n let startingSearchIndex = 0\n let trackRightCharacter\n let targetChar\n\n if (possiblyHasRejectedChar) {\n startingSearchIndex = currentCaretPosition - editLength\n } else {\n // At this point in the algorithm, we want to know where the caret is right before the raw input\n // has been conformed, and then see if we can find that same spot in the conformed input.\n //\n // We do that by seeing what character lies immediately before the caret, and then look for that\n // same character in the conformed input and place the caret there.\n\n // First, we need to normalize the inputs so that letter capitalization between raw input and\n // conformed input wouldn't matter.\n const normalizedConformedValue = conformedValue.toLowerCase()\n const normalizedRawValue = rawValue.toLowerCase()\n\n // Then we take all characters that come before where the caret currently is.\n const leftHalfChars = normalizedRawValue\n .substr(0, currentCaretPosition)\n .split(emptyString)\n\n // Now we find all the characters in the left half that exist in the conformed input\n // This step ensures that we don't look for a character that was filtered out or rejected by `conformToMask`.\n const intersection = leftHalfChars.filter(\n (char) => normalizedConformedValue.indexOf(char) !== -1\n )\n\n // The last character in the intersection is the character we want to look for in the conformed\n // value and the one we want to adjust the caret close to\n targetChar = intersection[intersection.length - 1]\n\n // Calculate the number of mask characters in the previous placeholder\n // from the start of the string up to the place where the caret is\n const previousLeftMaskChars = previousPlaceholder\n .substr(0, intersection.length)\n .split(emptyString)\n .filter((char) => char !== placeholderChar).length\n\n // Calculate the number of mask characters in the current placeholder\n // from the start of the string up to the place where the caret is\n const leftMaskChars = placeholder\n .substr(0, intersection.length)\n .split(emptyString)\n .filter((char) => char !== placeholderChar).length\n\n // Has the number of mask characters up to the caret changed?\n const maskLengthChanged = leftMaskChars !== previousLeftMaskChars\n\n // Detect if `targetChar` is a mask character and has moved to the left\n const targetIsMaskMovingLeft =\n previousPlaceholder[intersection.length - 1] !== undefined &&\n placeholder[intersection.length - 2] !== undefined &&\n previousPlaceholder[intersection.length - 1] !== placeholderChar &&\n previousPlaceholder[intersection.length - 1] !==\n placeholder[intersection.length - 1] &&\n previousPlaceholder[intersection.length - 1] ===\n placeholder[intersection.length - 2]\n\n // If deleting and the `targetChar` `is a mask character and `maskLengthChanged` is true\n // or the mask is moving to the left, we can't use the selected `targetChar` any longer\n // if we are not at the end of the string.\n // In this case, change tracking strategy and track the character to the right of the caret.\n if (\n !isAddition &&\n (maskLengthChanged || targetIsMaskMovingLeft) &&\n previousLeftMaskChars > 0 &&\n placeholder.indexOf(targetChar) > -1 &&\n rawValue[currentCaretPosition] !== undefined\n ) {\n trackRightCharacter = true\n targetChar = rawValue[currentCaretPosition]\n }\n\n // It is possible that `targetChar` will appear multiple times in the conformed value.\n // We need to know not to select a character that looks like our target character from the placeholder or\n // the piped characters, so we inspect the piped characters and the placeholder to see if they contain\n // characters that match our target character.\n\n // If the `conformedValue` got piped, we need to know which characters were piped in so that when we look for\n // our `targetChar`, we don't select a piped char by mistake\n const pipedChars = indexesOfPipedChars.map(\n (index) => normalizedConformedValue[index]\n )\n\n // We need to know how many times the `targetChar` occurs in the piped characters.\n const countTargetCharInPipedChars = pipedChars.filter(\n (char) => char === targetChar\n ).length\n\n // We need to know how many times it occurs in the intersection\n const countTargetCharInIntersection = intersection.filter(\n (char) => char === targetChar\n ).length\n\n // We need to know if the placeholder contains characters that look like\n // our `targetChar`, so we don't select one of those by mistake.\n const countTargetCharInPlaceholder = placeholder\n .substr(0, placeholder.indexOf(placeholderChar))\n .split(emptyString)\n .filter(\n (char, index) =>\n // Check if `char` is the same as our `targetChar`, so we account for it\n char === targetChar &&\n // but also make sure that both the `rawValue` and placeholder don't have the same character at the same\n // index because if they are equal, that means we are already counting those characters in\n // `countTargetCharInIntersection`\n rawValue[index] !== char\n ).length\n\n // The number of times we need to see occurrences of the `targetChar` before we know it is the one we're looking\n // for is:\n const requiredNumberOfMatches =\n countTargetCharInPlaceholder +\n countTargetCharInIntersection +\n countTargetCharInPipedChars +\n // The character to the right of the caret isn't included in `intersection`\n // so add one if we are tracking the character to the right\n (trackRightCharacter ? 1 : 0)\n\n // Now we start looking for the location of the `targetChar`.\n // We keep looping forward and store the index in every iteration. Once we have encountered\n // enough occurrences of the target character, we break out of the loop\n // If are searching for the second `1` in `1214`, `startingSearchIndex` will point at `4`.\n let numberOfEncounteredMatches = 0\n for (let i = 0; i < conformedValueLength; i++) {\n const conformedValueChar = normalizedConformedValue[i]\n\n startingSearchIndex = i + 1\n\n if (conformedValueChar === targetChar) {\n numberOfEncounteredMatches++\n }\n\n if (numberOfEncounteredMatches >= requiredNumberOfMatches) {\n break\n }\n }\n }\n\n // At this point, if we simply return `startingSearchIndex` as the adjusted caret position,\n // most cases would be handled. However, we want to fast forward or rewind the caret to the\n // closest placeholder character if it happens to be in a non-editable spot. That's what the next\n // logic is for.\n\n // In case of addition, we fast forward.\n if (isAddition) {\n // We want to remember the last placeholder character encountered so that if the mask\n // contains more characters after the last placeholder character, we don't forward the caret\n // that far to the right. Instead, we stop it at the last encountered placeholder character.\n let lastPlaceholderChar = startingSearchIndex\n\n for (let i = startingSearchIndex; i <= placeholderLength; i++) {\n if (placeholder[i] === placeholderChar) {\n lastPlaceholderChar = i\n }\n\n if (\n // If we're adding, we can position the caret at the next placeholder character.\n placeholder[i] === placeholderChar ||\n // If a caret trap was set by a mask function, we need to stop at the trap.\n caretTrapIndexes.indexOf(i) !== -1 ||\n // This is the end of the placeholder. We cannot move any further. Let's put the caret there.\n i === placeholderLength\n ) {\n return lastPlaceholderChar\n }\n }\n } else {\n // In case of deletion, we rewind.\n if (trackRightCharacter) {\n // Searching for the character that was to the right of the caret\n // We start at `startingSearchIndex` - 1 because it includes one character extra to the right\n for (let i = startingSearchIndex - 1; i >= 0; i--) {\n // If tracking the character to the right of the cursor, we move to the left until\n // we found the character and then place the caret right before it\n\n if (\n // `targetChar` should be in `conformedValue`, since it was in `rawValue`, just\n // to the right of the caret\n conformedValue[i] === targetChar ||\n // If a caret trap was set by a mask function, we need to stop at the trap.\n caretTrapIndexes.indexOf(i) !== -1 ||\n // This is the beginning of the placeholder. We cannot move any further.\n // Let's put the caret there.\n i === 0\n ) {\n return i\n }\n }\n } else {\n // Searching for the first placeholder or caret trap to the left\n\n for (let i = startingSearchIndex; i >= 0; i--) {\n // If we're deleting, we stop the caret right before the placeholder character.\n // For example, for mask `(111) 11`, current conformed input `(456) 86`. If user\n // modifies input to `(456 86`. That is, they deleted the `)`, we place the caret\n // right after the first `6`\n\n if (\n // If we're deleting, we can position the caret right before the placeholder character\n placeholder[i - 1] === placeholderChar ||\n // If a caret trap was set by a mask function, we need to stop at the trap.\n caretTrapIndexes.indexOf(i) !== -1 ||\n // This is the beginning of the placeholder. We cannot move any further.\n // Let's put the caret there.\n i === 0\n ) {\n return i\n }\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -149,7 +149,8 @@ export default function TooltipContainer(props) {
149
149
  };
150
150
  if (stylesFromPosition[position]) {
151
151
  stylesFromPosition[position]();
152
- } else if (stylesFromArrow[arrow]) {
152
+ }
153
+ if (stylesFromArrow[arrow]) {
153
154
  stylesFromArrow[arrow]();
154
155
  }
155
156
  const rightOffset = parseFloat(String(style.left)) + elementWidth - window.innerWidth;
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipContainer.js","names":["React","isTrue","getOffsetLeft","getOffsetTop","classnames","TooltipContainer","props","internalId","active","attributes","arrow","position","align","hideDelay","fixedPosition","noAnimation","skipPortal","useHover","children","targetElement","target","style","setStyle","useState","hover","setHover","isActive","wasActive","makeActive","renewStyles","forceRerender","getBodySize","elementRef","useRef","offset","debounceTimeout","resizeObserver","document","width","height","body","getBoundingClientRect","clearTimers","clearTimeout","current","useLayoutEffect","addPositionObserver","ResizeObserver","setTimeout","observe","e","removePositionObserver","_resizeObserver$curre","disconnect","offsetLeft","offsetTop","element","window","alignOffset","elementWidth","offsetWidth","elementHeight","offsetHeight","rect","targetBodySize","scrollY","undefined","pageYOffset","scrollX","pageXOffset","top","useMouseWhen","mousePos","left","widthBased","_objectSpread","topHorizontal","leftVertical","stylesFromPosition","right","bottom","stylesFromArrow","rightOffset","parseFloat","String","innerWidth","handleMouseEnter","handleMouseLeave","handlePropagation","stopPropagation","createElement","_extends","role","ref","onMouseEnter","onMouseLeave","onMouseMove","onMouseDown","onTouchStart","className","id"],"sources":["../../../../src/components/tooltip/TooltipContainer.tsx"],"sourcesContent":["/**\n * Web Tooltip Component\n *\n */\n\nimport React from 'react'\nimport { isTrue } from '../../shared/component-helper'\nimport { getOffsetLeft, getOffsetTop } from '../../shared/helpers'\nimport classnames from 'classnames'\nimport { TooltipProps } from './types'\n\ntype TooltipContainerProps = {\n targetElement: HTMLElement\n style?: React.CSSProperties\n useHover?: boolean\n internalId?: string\n attributes?: Record<string, unknown> & { style: React.CSSProperties }\n}\n\nexport default function TooltipContainer(\n props: TooltipProps & TooltipContainerProps\n) {\n const {\n internalId,\n active,\n attributes,\n arrow,\n position,\n align,\n hideDelay,\n fixedPosition,\n noAnimation,\n skipPortal,\n useHover,\n children,\n targetElement: target,\n } = props\n\n const [style, setStyle] = React.useState(null)\n const [hover, setHover] = React.useState(false)\n const isActive = isTrue(active) || hover\n const [wasActive, makeActive] = React.useState(false)\n const [renewStyles, forceRerender] = React.useState(getBodySize)\n\n const elementRef = React.useRef<HTMLSpanElement>(null)\n const offset = React.useRef(16)\n const debounceTimeout = React.useRef<NodeJS.Timeout>()\n const resizeObserver = React.useRef<ResizeObserver>(null)\n\n function getBodySize() {\n if (!isActive || typeof document === 'undefined') {\n return 0 // stop here\n }\n\n const { width, height } = document.body.getBoundingClientRect()\n\n return width + height\n }\n\n const clearTimers = () => {\n clearTimeout(debounceTimeout.current)\n }\n\n React.useLayoutEffect(() => {\n const addPositionObserver = () => {\n if (resizeObserver.current || typeof document === 'undefined') {\n return // stop here\n }\n\n try {\n resizeObserver.current = new ResizeObserver(() => {\n clearTimers()\n debounceTimeout.current = setTimeout(\n () => forceRerender(getBodySize()),\n 100\n )\n })\n\n resizeObserver.current.observe(document.body)\n } catch (e) {\n //\n }\n }\n const removePositionObserver = () => {\n clearTimers()\n resizeObserver.current?.disconnect()\n }\n\n if (isActive) {\n makeActive(true)\n addPositionObserver()\n } else {\n removePositionObserver()\n }\n\n return removePositionObserver\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isActive])\n\n const offsetLeft = React.useRef(0)\n const offsetTop = React.useRef(0)\n\n React.useLayoutEffect(() => {\n if (!isActive) {\n /**\n * This \"resets\" the position between elements,\n * when not active. Else it will always first show on the older position.\n */\n if (wasActive) {\n clearTimeout(debounceTimeout.current)\n debounceTimeout.current = setTimeout(\n () => setStyle(null),\n hideDelay\n )\n }\n return // stop here\n }\n\n const element = elementRef?.current\n\n if (\n typeof window === 'undefined' ||\n !element ||\n !target?.getBoundingClientRect\n ) {\n return // stop here\n }\n\n let alignOffset = 0\n\n const elementWidth = element.offsetWidth\n const elementHeight = element.offsetHeight\n const rect = target.getBoundingClientRect()\n const targetBodySize = {\n width: target.offsetWidth,\n height: target.offsetHeight,\n }\n\n // fix for svg\n if (!target.offsetHeight) {\n targetBodySize.width = rect.width\n targetBodySize.height = rect.height\n }\n\n if (skipPortal && (!offsetLeft.current || !offsetTop.current)) {\n offsetLeft.current = getOffsetLeft(element) - offset.current\n offsetTop.current = getOffsetTop(element) - offset.current\n }\n\n const scrollY =\n window.scrollY !== undefined ? window.scrollY : window.pageYOffset\n const scrollX =\n window.scrollX !== undefined ? window.scrollX : window.pageXOffset\n const top =\n (isTrue(fixedPosition) ? 0 : scrollY) + rect.top - offsetTop.current\n\n // Use Mouse position when target is too wide\n const useMouseWhen = targetBodySize.width > 400\n const mousePos =\n getOffsetLeft(target) +\n rect.left / 2 +\n (element ? element.offsetWidth : 0)\n const widthBased = scrollX + rect.left\n const left =\n (useMouseWhen && mousePos < targetBodySize.width\n ? mousePos\n : widthBased) - offsetLeft.current\n\n const style = { ...props.style }\n\n if (align === 'left') {\n alignOffset = -targetBodySize.width / 2\n } else if (align === 'right') {\n alignOffset = targetBodySize.width / 2\n }\n\n const topHorizontal =\n top + targetBodySize.height / 2 - elementHeight / 2\n const leftVertical =\n left - elementWidth / 2 + targetBodySize.width / 2 + alignOffset\n\n const stylesFromPosition = {\n left: () => {\n style.top = topHorizontal\n style.left = left - elementWidth - offset.current\n },\n right: () => {\n style.top = topHorizontal\n style.left = left + targetBodySize.width + offset.current\n },\n top: () => {\n style.left = leftVertical\n style.top = top - elementHeight - offset.current\n },\n bottom: () => {\n style.left = leftVertical\n style.top = top + targetBodySize.height + offset.current\n },\n }\n\n const stylesFromArrow = {\n left: () => {\n style.left =\n left + targetBodySize.width / 2 - offset.current + alignOffset\n },\n right: () => {\n style.left =\n left -\n elementWidth +\n targetBodySize.width / 2 +\n offset.current +\n alignOffset\n },\n top: () => {\n style.top = top + targetBodySize.height / 2 - offset.current\n },\n bottom: () => {\n style.top =\n top + targetBodySize.height / 2 - elementHeight + offset.current\n },\n }\n\n if (stylesFromPosition[position]) {\n stylesFromPosition[position]()\n } else if (stylesFromArrow[arrow]) {\n stylesFromArrow[arrow]()\n }\n\n const rightOffset =\n parseFloat(String(style.left)) + elementWidth - window.innerWidth\n if (rightOffset > 0) {\n style.left = window.innerWidth - elementWidth\n }\n\n if (parseFloat(String(style.left)) < 0) {\n style.left = 0\n }\n if (parseFloat(String(style.top)) < 0) {\n style.top = 0\n }\n\n setStyle(style)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [active, arrow, position, children, renewStyles])\n\n const handleMouseEnter = () => {\n if (isTrue(active) && useHover !== false) {\n setHover(true)\n }\n }\n\n const handleMouseLeave = () => {\n if (useHover !== false) {\n setHover(false)\n }\n }\n\n /**\n * By stopping propagation, we allow the user to select text when Tooltip is used in the Slider component\n */\n const handlePropagation = (e: React.SyntheticEvent) =>\n e.stopPropagation()\n\n return (\n <span\n role=\"tooltip\"\n aria-hidden={target ? true : undefined} // make sure SR does not find it in the DOM, because we use \"aria-describedby\" for that\n ref={elementRef}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handlePropagation}\n onMouseDown={handlePropagation}\n onTouchStart={handlePropagation}\n {...attributes}\n className={classnames(\n attributes?.className,\n isTrue(noAnimation) && 'dnb-tooltip--no-animation',\n isTrue(fixedPosition) && 'dnb-tooltip--fixed',\n isActive && 'dnb-tooltip--active',\n !isActive && wasActive && 'dnb-tooltip--hide'\n )}\n style={{ ...style, ...attributes.style }}\n >\n {arrow && (\n <span\n className={classnames(\n 'dnb-tooltip__arrow',\n `dnb-tooltip__arrow__arrow--${arrow}`,\n `dnb-tooltip__arrow__position--${position}`\n )}\n />\n )}\n\n <span id={internalId} className=\"dnb-tooltip__content\">\n {children}\n </span>\n </span>\n )\n}\n"],"mappings":";;;;AAKA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,+BAA+B;AACtD,SAASC,aAAa,EAAEC,YAAY,QAAQ,sBAAsB;AAClE,OAAOC,UAAU,MAAM,YAAY;AAWnC,eAAe,SAASC,gBAAgBA,CACtCC,KAA2C,EAC3C;EACA,MAAM;IACJC,UAAU;IACVC,MAAM;IACNC,UAAU;IACVC,KAAK;IACLC,QAAQ;IACRC,KAAK;IACLC,SAAS;IACTC,aAAa;IACbC,WAAW;IACXC,UAAU;IACVC,QAAQ;IACRC,QAAQ;IACRC,aAAa,EAAEC;EACjB,CAAC,GAAGd,KAAK;EAET,MAAM,CAACe,KAAK,EAAEC,QAAQ,CAAC,GAAGtB,KAAK,CAACuB,QAAQ,CAAC,IAAI,CAAC;EAC9C,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGzB,KAAK,CAACuB,QAAQ,CAAC,KAAK,CAAC;EAC/C,MAAMG,QAAQ,GAAGzB,MAAM,CAACO,MAAM,CAAC,IAAIgB,KAAK;EACxC,MAAM,CAACG,SAAS,EAAEC,UAAU,CAAC,GAAG5B,KAAK,CAACuB,QAAQ,CAAC,KAAK,CAAC;EACrD,MAAM,CAACM,WAAW,EAAEC,aAAa,CAAC,GAAG9B,KAAK,CAACuB,QAAQ,CAACQ,WAAW,CAAC;EAEhE,MAAMC,UAAU,GAAGhC,KAAK,CAACiC,MAAM,CAAkB,IAAI,CAAC;EACtD,MAAMC,MAAM,GAAGlC,KAAK,CAACiC,MAAM,CAAC,EAAE,CAAC;EAC/B,MAAME,eAAe,GAAGnC,KAAK,CAACiC,MAAM,CAAiB,CAAC;EACtD,MAAMG,cAAc,GAAGpC,KAAK,CAACiC,MAAM,CAAiB,IAAI,CAAC;EAEzD,SAASF,WAAWA,CAAA,EAAG;IACrB,IAAI,CAACL,QAAQ,IAAI,OAAOW,QAAQ,KAAK,WAAW,EAAE;MAChD,OAAO,CAAC;IACV;IAEA,MAAM;MAAEC,KAAK;MAAEC;IAAO,CAAC,GAAGF,QAAQ,CAACG,IAAI,CAACC,qBAAqB,CAAC,CAAC;IAE/D,OAAOH,KAAK,GAAGC,MAAM;EACvB;EAEA,MAAMG,WAAW,GAAGA,CAAA,KAAM;IACxBC,YAAY,CAACR,eAAe,CAACS,OAAO,CAAC;EACvC,CAAC;EAED5C,KAAK,CAAC6C,eAAe,CAAC,MAAM;IAC1B,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;MAChC,IAAIV,cAAc,CAACQ,OAAO,IAAI,OAAOP,QAAQ,KAAK,WAAW,EAAE;QAC7D;MACF;MAEA,IAAI;QACFD,cAAc,CAACQ,OAAO,GAAG,IAAIG,cAAc,CAAC,MAAM;UAChDL,WAAW,CAAC,CAAC;UACbP,eAAe,CAACS,OAAO,GAAGI,UAAU,CAClC,MAAMlB,aAAa,CAACC,WAAW,CAAC,CAAC,CAAC,EAClC,GACF,CAAC;QACH,CAAC,CAAC;QAEFK,cAAc,CAACQ,OAAO,CAACK,OAAO,CAACZ,QAAQ,CAACG,IAAI,CAAC;MAC/C,CAAC,CAAC,OAAOU,CAAC,EAAE,CAEZ;IACF,CAAC;IACD,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;MAAA,IAAAC,qBAAA;MACnCV,WAAW,CAAC,CAAC;MACb,CAAAU,qBAAA,GAAAhB,cAAc,CAACQ,OAAO,cAAAQ,qBAAA,uBAAtBA,qBAAA,CAAwBC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,IAAI3B,QAAQ,EAAE;MACZE,UAAU,CAAC,IAAI,CAAC;MAChBkB,mBAAmB,CAAC,CAAC;IACvB,CAAC,MAAM;MACLK,sBAAsB,CAAC,CAAC;IAC1B;IAEA,OAAOA,sBAAsB;EAG/B,CAAC,EAAE,CAACzB,QAAQ,CAAC,CAAC;EAEd,MAAM4B,UAAU,GAAGtD,KAAK,CAACiC,MAAM,CAAC,CAAC,CAAC;EAClC,MAAMsB,SAAS,GAAGvD,KAAK,CAACiC,MAAM,CAAC,CAAC,CAAC;EAEjCjC,KAAK,CAAC6C,eAAe,CAAC,MAAM;IAC1B,IAAI,CAACnB,QAAQ,EAAE;MAKb,IAAIC,SAAS,EAAE;QACbgB,YAAY,CAACR,eAAe,CAACS,OAAO,CAAC;QACrCT,eAAe,CAACS,OAAO,GAAGI,UAAU,CAClC,MAAM1B,QAAQ,CAAC,IAAI,CAAC,EACpBT,SACF,CAAC;MACH;MACA;IACF;IAEA,MAAM2C,OAAO,GAAGxB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEY,OAAO;IAEnC,IACE,OAAOa,MAAM,KAAK,WAAW,IAC7B,CAACD,OAAO,IACR,EAACpC,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEqB,qBAAqB,GAC9B;MACA;IACF;IAEA,IAAIiB,WAAW,GAAG,CAAC;IAEnB,MAAMC,YAAY,GAAGH,OAAO,CAACI,WAAW;IACxC,MAAMC,aAAa,GAAGL,OAAO,CAACM,YAAY;IAC1C,MAAMC,IAAI,GAAG3C,MAAM,CAACqB,qBAAqB,CAAC,CAAC;IAC3C,MAAMuB,cAAc,GAAG;MACrB1B,KAAK,EAAElB,MAAM,CAACwC,WAAW;MACzBrB,MAAM,EAAEnB,MAAM,CAAC0C;IACjB,CAAC;IAGD,IAAI,CAAC1C,MAAM,CAAC0C,YAAY,EAAE;MACxBE,cAAc,CAAC1B,KAAK,GAAGyB,IAAI,CAACzB,KAAK;MACjC0B,cAAc,CAACzB,MAAM,GAAGwB,IAAI,CAACxB,MAAM;IACrC;IAEA,IAAIvB,UAAU,KAAK,CAACsC,UAAU,CAACV,OAAO,IAAI,CAACW,SAAS,CAACX,OAAO,CAAC,EAAE;MAC7DU,UAAU,CAACV,OAAO,GAAG1C,aAAa,CAACsD,OAAO,CAAC,GAAGtB,MAAM,CAACU,OAAO;MAC5DW,SAAS,CAACX,OAAO,GAAGzC,YAAY,CAACqD,OAAO,CAAC,GAAGtB,MAAM,CAACU,OAAO;IAC5D;IAEA,MAAMqB,OAAO,GACXR,MAAM,CAACQ,OAAO,KAAKC,SAAS,GAAGT,MAAM,CAACQ,OAAO,GAAGR,MAAM,CAACU,WAAW;IACpE,MAAMC,OAAO,GACXX,MAAM,CAACW,OAAO,KAAKF,SAAS,GAAGT,MAAM,CAACW,OAAO,GAAGX,MAAM,CAACY,WAAW;IACpE,MAAMC,GAAG,GACP,CAACrE,MAAM,CAACa,aAAa,CAAC,GAAG,CAAC,GAAGmD,OAAO,IAAIF,IAAI,CAACO,GAAG,GAAGf,SAAS,CAACX,OAAO;IAGtE,MAAM2B,YAAY,GAAGP,cAAc,CAAC1B,KAAK,GAAG,GAAG;IAC/C,MAAMkC,QAAQ,GACZtE,aAAa,CAACkB,MAAM,CAAC,GACrB2C,IAAI,CAACU,IAAI,GAAG,CAAC,IACZjB,OAAO,GAAGA,OAAO,CAACI,WAAW,GAAG,CAAC,CAAC;IACrC,MAAMc,UAAU,GAAGN,OAAO,GAAGL,IAAI,CAACU,IAAI;IACtC,MAAMA,IAAI,GACR,CAACF,YAAY,IAAIC,QAAQ,GAAGR,cAAc,CAAC1B,KAAK,GAC5CkC,QAAQ,GACRE,UAAU,IAAIpB,UAAU,CAACV,OAAO;IAEtC,MAAMvB,KAAK,GAAAsD,aAAA,KAAQrE,KAAK,CAACe,KAAK,CAAE;IAEhC,IAAIT,KAAK,KAAK,MAAM,EAAE;MACpB8C,WAAW,GAAG,CAACM,cAAc,CAAC1B,KAAK,GAAG,CAAC;IACzC,CAAC,MAAM,IAAI1B,KAAK,KAAK,OAAO,EAAE;MAC5B8C,WAAW,GAAGM,cAAc,CAAC1B,KAAK,GAAG,CAAC;IACxC;IAEA,MAAMsC,aAAa,GACjBN,GAAG,GAAGN,cAAc,CAACzB,MAAM,GAAG,CAAC,GAAGsB,aAAa,GAAG,CAAC;IACrD,MAAMgB,YAAY,GAChBJ,IAAI,GAAGd,YAAY,GAAG,CAAC,GAAGK,cAAc,CAAC1B,KAAK,GAAG,CAAC,GAAGoB,WAAW;IAElE,MAAMoB,kBAAkB,GAAG;MACzBL,IAAI,EAAEA,CAAA,KAAM;QACVpD,KAAK,CAACiD,GAAG,GAAGM,aAAa;QACzBvD,KAAK,CAACoD,IAAI,GAAGA,IAAI,GAAGd,YAAY,GAAGzB,MAAM,CAACU,OAAO;MACnD,CAAC;MACDmC,KAAK,EAAEA,CAAA,KAAM;QACX1D,KAAK,CAACiD,GAAG,GAAGM,aAAa;QACzBvD,KAAK,CAACoD,IAAI,GAAGA,IAAI,GAAGT,cAAc,CAAC1B,KAAK,GAAGJ,MAAM,CAACU,OAAO;MAC3D,CAAC;MACD0B,GAAG,EAAEA,CAAA,KAAM;QACTjD,KAAK,CAACoD,IAAI,GAAGI,YAAY;QACzBxD,KAAK,CAACiD,GAAG,GAAGA,GAAG,GAAGT,aAAa,GAAG3B,MAAM,CAACU,OAAO;MAClD,CAAC;MACDoC,MAAM,EAAEA,CAAA,KAAM;QACZ3D,KAAK,CAACoD,IAAI,GAAGI,YAAY;QACzBxD,KAAK,CAACiD,GAAG,GAAGA,GAAG,GAAGN,cAAc,CAACzB,MAAM,GAAGL,MAAM,CAACU,OAAO;MAC1D;IACF,CAAC;IAED,MAAMqC,eAAe,GAAG;MACtBR,IAAI,EAAEA,CAAA,KAAM;QACVpD,KAAK,CAACoD,IAAI,GACRA,IAAI,GAAGT,cAAc,CAAC1B,KAAK,GAAG,CAAC,GAAGJ,MAAM,CAACU,OAAO,GAAGc,WAAW;MAClE,CAAC;MACDqB,KAAK,EAAEA,CAAA,KAAM;QACX1D,KAAK,CAACoD,IAAI,GACRA,IAAI,GACJd,YAAY,GACZK,cAAc,CAAC1B,KAAK,GAAG,CAAC,GACxBJ,MAAM,CAACU,OAAO,GACdc,WAAW;MACf,CAAC;MACDY,GAAG,EAAEA,CAAA,KAAM;QACTjD,KAAK,CAACiD,GAAG,GAAGA,GAAG,GAAGN,cAAc,CAACzB,MAAM,GAAG,CAAC,GAAGL,MAAM,CAACU,OAAO;MAC9D,CAAC;MACDoC,MAAM,EAAEA,CAAA,KAAM;QACZ3D,KAAK,CAACiD,GAAG,GACPA,GAAG,GAAGN,cAAc,CAACzB,MAAM,GAAG,CAAC,GAAGsB,aAAa,GAAG3B,MAAM,CAACU,OAAO;MACpE;IACF,CAAC;IAED,IAAIkC,kBAAkB,CAACnE,QAAQ,CAAC,EAAE;MAChCmE,kBAAkB,CAACnE,QAAQ,CAAC,CAAC,CAAC;IAChC,CAAC,MAAM,IAAIsE,eAAe,CAACvE,KAAK,CAAC,EAAE;MACjCuE,eAAe,CAACvE,KAAK,CAAC,CAAC,CAAC;IAC1B;IAEA,MAAMwE,WAAW,GACfC,UAAU,CAACC,MAAM,CAAC/D,KAAK,CAACoD,IAAI,CAAC,CAAC,GAAGd,YAAY,GAAGF,MAAM,CAAC4B,UAAU;IACnE,IAAIH,WAAW,GAAG,CAAC,EAAE;MACnB7D,KAAK,CAACoD,IAAI,GAAGhB,MAAM,CAAC4B,UAAU,GAAG1B,YAAY;IAC/C;IAEA,IAAIwB,UAAU,CAACC,MAAM,CAAC/D,KAAK,CAACoD,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;MACtCpD,KAAK,CAACoD,IAAI,GAAG,CAAC;IAChB;IACA,IAAIU,UAAU,CAACC,MAAM,CAAC/D,KAAK,CAACiD,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE;MACrCjD,KAAK,CAACiD,GAAG,GAAG,CAAC;IACf;IAEAhD,QAAQ,CAACD,KAAK,CAAC;EAGjB,CAAC,EAAE,CAACb,MAAM,EAAEE,KAAK,EAAEC,QAAQ,EAAEO,QAAQ,EAAEW,WAAW,CAAC,CAAC;EAEpD,MAAMyD,gBAAgB,GAAGA,CAAA,KAAM;IAC7B,IAAIrF,MAAM,CAACO,MAAM,CAAC,IAAIS,QAAQ,KAAK,KAAK,EAAE;MACxCQ,QAAQ,CAAC,IAAI,CAAC;IAChB;EACF,CAAC;EAED,MAAM8D,gBAAgB,GAAGA,CAAA,KAAM;IAC7B,IAAItE,QAAQ,KAAK,KAAK,EAAE;MACtBQ,QAAQ,CAAC,KAAK,CAAC;IACjB;EACF,CAAC;EAKD,MAAM+D,iBAAiB,GAAItC,CAAuB,IAChDA,CAAC,CAACuC,eAAe,CAAC,CAAC;EAErB,OACEzF,KAAA,CAAA0F,aAAA,SAAAC,QAAA;IACEC,IAAI,EAAC,SAAS;IACd,eAAaxE,MAAM,GAAG,IAAI,GAAG8C,SAAU;IACvC2B,GAAG,EAAE7D,UAAW;IAChB8D,YAAY,EAAER,gBAAiB;IAC/BS,YAAY,EAAER,gBAAiB;IAC/BS,WAAW,EAAER,iBAAkB;IAC/BS,WAAW,EAAET,iBAAkB;IAC/BU,YAAY,EAAEV;EAAkB,GAC5B/E,UAAU;IACd0F,SAAS,EAAE/F,UAAU,CACnBK,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE0F,SAAS,EAGrBzE,QAAQ,GAAI,qBAAqB,GACpBC,SAAS,IAAI,mBAAmB,EAH7C1B,MAAM,CAACc,WAAW,CAAC,IAAI,2BAA2B,EAClDd,MAAM,CAACa,aAAa,CAAC,IAAI,oBAG3B,CAAE;IACFO,KAAK,EAAAsD,aAAA,CAAAA,aAAA,KAAOtD,KAAK,GAAKZ,UAAU,CAACY,KAAK;EAAG,IAExCX,KAAK,IACJV,KAAA,CAAA0F,aAAA;IACES,SAAS,mDAEuBzF,KAAK,kCACFC,QAAQ;EACzC,CACH,CACF,EAEDX,KAAA,CAAA0F,aAAA;IAAMU,EAAE,EAAE7F,UAAW;IAAC4F,SAAS,EAAC;EAAsB,GACnDjF,QACG,CACF,CAAC;AAEX","ignoreList":[]}
1
+ {"version":3,"file":"TooltipContainer.js","names":["React","isTrue","getOffsetLeft","getOffsetTop","classnames","TooltipContainer","props","internalId","active","attributes","arrow","position","align","hideDelay","fixedPosition","noAnimation","skipPortal","useHover","children","targetElement","target","style","setStyle","useState","hover","setHover","isActive","wasActive","makeActive","renewStyles","forceRerender","getBodySize","elementRef","useRef","offset","debounceTimeout","resizeObserver","document","width","height","body","getBoundingClientRect","clearTimers","clearTimeout","current","useLayoutEffect","addPositionObserver","ResizeObserver","setTimeout","observe","e","removePositionObserver","_resizeObserver$curre","disconnect","offsetLeft","offsetTop","element","window","alignOffset","elementWidth","offsetWidth","elementHeight","offsetHeight","rect","targetBodySize","scrollY","undefined","pageYOffset","scrollX","pageXOffset","top","useMouseWhen","mousePos","left","widthBased","_objectSpread","topHorizontal","leftVertical","stylesFromPosition","right","bottom","stylesFromArrow","rightOffset","parseFloat","String","innerWidth","handleMouseEnter","handleMouseLeave","handlePropagation","stopPropagation","createElement","_extends","role","ref","onMouseEnter","onMouseLeave","onMouseMove","onMouseDown","onTouchStart","className","id"],"sources":["../../../../src/components/tooltip/TooltipContainer.tsx"],"sourcesContent":["/**\n * Web Tooltip Component\n *\n */\n\nimport React from 'react'\nimport { isTrue } from '../../shared/component-helper'\nimport { getOffsetLeft, getOffsetTop } from '../../shared/helpers'\nimport classnames from 'classnames'\nimport { TooltipProps } from './types'\n\ntype TooltipContainerProps = {\n targetElement: HTMLElement\n style?: React.CSSProperties\n useHover?: boolean\n internalId?: string\n attributes?: Record<string, unknown> & { style: React.CSSProperties }\n}\n\nexport default function TooltipContainer(\n props: TooltipProps & TooltipContainerProps\n) {\n const {\n internalId,\n active,\n attributes,\n arrow,\n position,\n align,\n hideDelay,\n fixedPosition,\n noAnimation,\n skipPortal,\n useHover,\n children,\n targetElement: target,\n } = props\n\n const [style, setStyle] = React.useState(null)\n const [hover, setHover] = React.useState(false)\n const isActive = isTrue(active) || hover\n const [wasActive, makeActive] = React.useState(false)\n const [renewStyles, forceRerender] = React.useState(getBodySize)\n\n const elementRef = React.useRef<HTMLSpanElement>(null)\n const offset = React.useRef(16)\n const debounceTimeout = React.useRef<NodeJS.Timeout>()\n const resizeObserver = React.useRef<ResizeObserver>(null)\n\n function getBodySize() {\n if (!isActive || typeof document === 'undefined') {\n return 0 // stop here\n }\n\n const { width, height } = document.body.getBoundingClientRect()\n\n return width + height\n }\n\n const clearTimers = () => {\n clearTimeout(debounceTimeout.current)\n }\n\n React.useLayoutEffect(() => {\n const addPositionObserver = () => {\n if (resizeObserver.current || typeof document === 'undefined') {\n return // stop here\n }\n\n try {\n resizeObserver.current = new ResizeObserver(() => {\n clearTimers()\n debounceTimeout.current = setTimeout(\n () => forceRerender(getBodySize()),\n 100\n )\n })\n\n resizeObserver.current.observe(document.body)\n } catch (e) {\n //\n }\n }\n const removePositionObserver = () => {\n clearTimers()\n resizeObserver.current?.disconnect()\n }\n\n if (isActive) {\n makeActive(true)\n addPositionObserver()\n } else {\n removePositionObserver()\n }\n\n return removePositionObserver\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isActive])\n\n const offsetLeft = React.useRef(0)\n const offsetTop = React.useRef(0)\n\n React.useLayoutEffect(() => {\n if (!isActive) {\n /**\n * This \"resets\" the position between elements,\n * when not active. Else it will always first show on the older position.\n */\n if (wasActive) {\n clearTimeout(debounceTimeout.current)\n debounceTimeout.current = setTimeout(\n () => setStyle(null),\n hideDelay\n )\n }\n return // stop here\n }\n\n const element = elementRef?.current\n\n if (\n typeof window === 'undefined' ||\n !element ||\n !target?.getBoundingClientRect\n ) {\n return // stop here\n }\n\n let alignOffset = 0\n\n const elementWidth = element.offsetWidth\n const elementHeight = element.offsetHeight\n const rect = target.getBoundingClientRect()\n const targetBodySize = {\n width: target.offsetWidth,\n height: target.offsetHeight,\n }\n\n // fix for svg\n if (!target.offsetHeight) {\n targetBodySize.width = rect.width\n targetBodySize.height = rect.height\n }\n\n if (skipPortal && (!offsetLeft.current || !offsetTop.current)) {\n offsetLeft.current = getOffsetLeft(element) - offset.current\n offsetTop.current = getOffsetTop(element) - offset.current\n }\n\n const scrollY =\n window.scrollY !== undefined ? window.scrollY : window.pageYOffset\n const scrollX =\n window.scrollX !== undefined ? window.scrollX : window.pageXOffset\n const top =\n (isTrue(fixedPosition) ? 0 : scrollY) + rect.top - offsetTop.current\n\n // Use Mouse position when target is too wide\n const useMouseWhen = targetBodySize.width > 400\n const mousePos =\n getOffsetLeft(target) +\n rect.left / 2 +\n (element ? element.offsetWidth : 0)\n const widthBased = scrollX + rect.left\n const left =\n (useMouseWhen && mousePos < targetBodySize.width\n ? mousePos\n : widthBased) - offsetLeft.current\n\n const style = { ...props.style }\n\n if (align === 'left') {\n alignOffset = -targetBodySize.width / 2\n } else if (align === 'right') {\n alignOffset = targetBodySize.width / 2\n }\n\n const topHorizontal =\n top + targetBodySize.height / 2 - elementHeight / 2\n const leftVertical =\n left - elementWidth / 2 + targetBodySize.width / 2 + alignOffset\n\n const stylesFromPosition = {\n left: () => {\n style.top = topHorizontal\n style.left = left - elementWidth - offset.current\n },\n right: () => {\n style.top = topHorizontal\n style.left = left + targetBodySize.width + offset.current\n },\n top: () => {\n style.left = leftVertical\n style.top = top - elementHeight - offset.current\n },\n bottom: () => {\n style.left = leftVertical\n style.top = top + targetBodySize.height + offset.current\n },\n }\n\n const stylesFromArrow = {\n left: () => {\n style.left =\n left + targetBodySize.width / 2 - offset.current + alignOffset\n },\n right: () => {\n style.left =\n left -\n elementWidth +\n targetBodySize.width / 2 +\n offset.current +\n alignOffset\n },\n top: () => {\n style.top = top + targetBodySize.height / 2 - offset.current\n },\n bottom: () => {\n style.top =\n top + targetBodySize.height / 2 - elementHeight + offset.current\n },\n }\n\n if (stylesFromPosition[position]) {\n stylesFromPosition[position]()\n }\n if (stylesFromArrow[arrow]) {\n stylesFromArrow[arrow]()\n }\n\n const rightOffset =\n parseFloat(String(style.left)) + elementWidth - window.innerWidth\n if (rightOffset > 0) {\n style.left = window.innerWidth - elementWidth\n }\n\n if (parseFloat(String(style.left)) < 0) {\n style.left = 0\n }\n if (parseFloat(String(style.top)) < 0) {\n style.top = 0\n }\n\n setStyle(style)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [active, arrow, position, children, renewStyles])\n\n const handleMouseEnter = () => {\n if (isTrue(active) && useHover !== false) {\n setHover(true)\n }\n }\n\n const handleMouseLeave = () => {\n if (useHover !== false) {\n setHover(false)\n }\n }\n\n /**\n * By stopping propagation, we allow the user to select text when Tooltip is used in the Slider component\n */\n const handlePropagation = (e: React.SyntheticEvent) =>\n e.stopPropagation()\n\n return (\n <span\n role=\"tooltip\"\n aria-hidden={target ? true : undefined} // make sure SR does not find it in the DOM, because we use \"aria-describedby\" for that\n ref={elementRef}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handlePropagation}\n onMouseDown={handlePropagation}\n onTouchStart={handlePropagation}\n {...attributes}\n className={classnames(\n attributes?.className,\n isTrue(noAnimation) && 'dnb-tooltip--no-animation',\n isTrue(fixedPosition) && 'dnb-tooltip--fixed',\n isActive && 'dnb-tooltip--active',\n !isActive && wasActive && 'dnb-tooltip--hide'\n )}\n style={{ ...style, ...attributes.style }}\n >\n {arrow && (\n <span\n className={classnames(\n 'dnb-tooltip__arrow',\n `dnb-tooltip__arrow__arrow--${arrow}`,\n `dnb-tooltip__arrow__position--${position}`\n )}\n />\n )}\n\n <span id={internalId} className=\"dnb-tooltip__content\">\n {children}\n </span>\n </span>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -39,6 +39,9 @@ type FormErrorOptions = {
39
39
  * Standard error object for Eufemia Forms, extending the built-in error with additional information for data handling
40
40
  */
41
41
  export declare class FormError extends Error {
42
+ /**
43
+ * @deprecated – can be removed in v11
44
+ */
42
45
  validationRule?: FormErrorOptions['validationRule'];
43
46
  messageValues?: FormErrorOptions['messageValues'];
44
47
  ajvKeyword?: FormErrorOptions['ajvKeyword'];
@@ -1 +1 @@
1
- {"version":3,"file":"FormError.js","names":["FormError","Error","constructor","message","options","_defineProperty","key"],"sources":["../../../../../src/extensions/forms/utils/FormError.ts"],"sourcesContent":["import { ErrorObject } from 'ajv/dist/2020'\nimport { FormsTranslationFlat } from '../hooks/useTranslation'\n\ntype ValidationRule =\n | string\n | 'type'\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n | 'pattern'\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n | 'required'\n\ntype FormErrorOptions = {\n /**\n * What validation rule did the error occur based on? (i.e: minLength, required or maximum).\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n validationRule?: ValidationRule\n\n /**\n * Replacement values relevant for this error.\n * @example { minLength: 3 } to be able to replace values in a message like \"Minimum {minLength} characters\"\n */\n messageValues?: Record<string, string>\n\n /**\n * The AJV keyword that caused the error.\n */\n ajvKeyword?: ErrorObject['keyword']\n\n /**\n * An array of errors that should be rendered in the same error message.\n */\n errors?: Array<Error | FormError>\n\n /**\n * For internal use only.\n * A formatted (JSX) message to be used internally later on.\n */\n formattedMessage?: string | React.ReactElement\n}\n\n/**\n * Standard error object for Eufemia Forms, extending the built-in error with additional information for data handling\n */\nexport class FormError extends Error {\n /* @deprecated – can be removed in v11*/\n validationRule?: FormErrorOptions['validationRule']\n messageValues?: FormErrorOptions['messageValues']\n ajvKeyword?: FormErrorOptions['ajvKeyword']\n errors?: FormErrorOptions['errors']\n formattedMessage?: FormErrorOptions['formattedMessage']\n\n constructor(\n message: FormsTranslationFlat | string | React.ReactElement,\n options?: FormErrorOptions\n ) {\n super(message as string)\n\n if (options) {\n for (const key in options) {\n this[key] = options[key]\n }\n }\n }\n}\n"],"mappings":";AAgDA,OAAO,MAAMA,SAAS,SAASC,KAAK,CAAC;EAQnCC,WAAWA,CACTC,OAA2D,EAC3DC,OAA0B,EAC1B;IACA,KAAK,CAACD,OAAiB,CAAC;IAAAE,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAExB,IAAID,OAAO,EAAE;MACX,KAAK,MAAME,GAAG,IAAIF,OAAO,EAAE;QACzB,IAAI,CAACE,GAAG,CAAC,GAAGF,OAAO,CAACE,GAAG,CAAC;MAC1B;IACF;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"FormError.js","names":["FormError","Error","constructor","message","options","_defineProperty","key"],"sources":["../../../../../src/extensions/forms/utils/FormError.ts"],"sourcesContent":["import { ErrorObject } from 'ajv/dist/2020'\nimport { FormsTranslationFlat } from '../hooks/useTranslation'\n\ntype ValidationRule =\n | string\n | 'type'\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n | 'pattern'\n /**\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n | 'required'\n\ntype FormErrorOptions = {\n /**\n * What validation rule did the error occur based on? (i.e: minLength, required or maximum).\n * @deprecated Use translation keys as the message instead of this parameter (e.g. Field.errorRequired)\n */\n validationRule?: ValidationRule\n\n /**\n * Replacement values relevant for this error.\n * @example { minLength: 3 } to be able to replace values in a message like \"Minimum {minLength} characters\"\n */\n messageValues?: Record<string, string>\n\n /**\n * The AJV keyword that caused the error.\n */\n ajvKeyword?: ErrorObject['keyword']\n\n /**\n * An array of errors that should be rendered in the same error message.\n */\n errors?: Array<Error | FormError>\n\n /**\n * For internal use only.\n * A formatted (JSX) message to be used internally later on.\n */\n formattedMessage?: string | React.ReactElement\n}\n\n/**\n * Standard error object for Eufemia Forms, extending the built-in error with additional information for data handling\n */\nexport class FormError extends Error {\n /**\n * @deprecated – can be removed in v11\n */\n validationRule?: FormErrorOptions['validationRule']\n\n messageValues?: FormErrorOptions['messageValues']\n ajvKeyword?: FormErrorOptions['ajvKeyword']\n errors?: FormErrorOptions['errors']\n formattedMessage?: FormErrorOptions['formattedMessage']\n\n constructor(\n message: FormsTranslationFlat | string | React.ReactElement,\n options?: FormErrorOptions\n ) {\n super(message as string)\n\n if (options) {\n for (const key in options) {\n this[key] = options[key]\n }\n }\n }\n}\n"],"mappings":";AAgDA,OAAO,MAAMA,SAAS,SAASC,KAAK,CAAC;EAWnCC,WAAWA,CACTC,OAA2D,EAC3DC,OAA0B,EAC1B;IACA,KAAK,CAACD,OAAiB,CAAC;IAAAE,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAExB,IAAID,OAAO,EAAE;MACX,KAAK,MAAME,GAAG,IAAIF,OAAO,EAAE;QACzB,IAAI,CAACE,GAAG,CAAC,GAAGF,OAAO,CAACE,GAAG,CAAC;MAC1B;IACF;EACF;AACF","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- export declare const version = "10.71.0";
1
+ export declare const version = "10.71.1";
2
2
  export declare function init(): void;
@@ -1,9 +1,9 @@
1
- export const version = '10.71.0';
1
+ export const version = '10.71.1';
2
2
  export function init() {
3
3
  if (typeof window !== 'undefined') {
4
4
  class Eufemia {
5
5
  get version() {
6
- return '10.71.0';
6
+ return '10.71.1';
7
7
  }
8
8
  }
9
9
  window.Eufemia = new Eufemia();
@@ -1 +1 @@
1
- {"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.71.0'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.71.0'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF","ignoreList":[]}
1
+ {"version":3,"file":"Eufemia.js","names":["version","init","window","Eufemia"],"sources":["../../../src/shared/Eufemia.ts"],"sourcesContent":["export const version = '10.71.1'\n\nexport function init() {\n if (typeof window !== 'undefined') {\n class Eufemia {\n get version() {\n return '10.71.1'\n }\n }\n\n window.Eufemia = new Eufemia()\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAS;AAEhC,OAAO,SAASC,IAAIA,CAAA,EAAG;EACrB,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,MAAMC,OAAO,CAAC;MACZ,IAAIH,OAAOA,CAAA,EAAG;QACZ,OAAO,SAAS;MAClB;IACF;IAEAE,MAAM,CAACC,OAAO,GAAG,IAAIA,OAAO,CAAC,CAAC;EAChC;AACF","ignoreList":[]}
@@ -147,9 +147,9 @@ export default {
147
147
  title: 'Upload documents',
148
148
  text: 'Drag & drop your files or choose files to upload.',
149
149
  textSingular: 'Drag & drop your file or choose which file to upload.',
150
- fileTypeTableCaption: 'Allowed formats and max. filesize',
150
+ fileTypeTableCaption: 'Allowed formats and max. file size',
151
151
  fileTypeDescription: 'Allowed formats:',
152
- fileSizeDescription: 'Max. filesize:',
152
+ fileSizeDescription: 'Max. file size:',
153
153
  fileAmountDescription: 'Max. number of files:',
154
154
  fileSizeContent: '%size MB',
155
155
  buttonText: 'Choose files',
@@ -1 +1 @@
1
- {"version":3,"file":"en-GB.js","names":["TextCounter","characterDown","characterUp","characterExceeded","TimelineItem","alt_label_completed","alt_label_current","alt_label_upcoming","Breadcrumb","navText","goBackText","homeText","backToText","DatePicker","day","month","year","start","end","selectedDate","selectedMonth","selectedYear","nextMonth","prevMonth","nextYear","prevYear","openPickerText","maskOrder","maskPlaceholder","dateFormat","returnFormat","submitButtonText","cancelButtonText","resetButtonText","placeholderCharacters","Anchor","targetBlankTitle","GlobalStatus","default_title","close_text","status_anchor_text","GlobalError","title","text","code","errorMessageCode","help","ProgressIndicator","indicator_label","Dropdown","Autocomplete","submit_button_title","no_options","show_all","show_options_sr","aria_live_options","selected_sr","Modal","dialog_title","close_title","Dialog","declineText","confirmText","CopyOnClick","clipboard_copy","NumberFormat","not_available","HelpButton","aria_role","Skeleton","aria_busy","aria_ready","Input","clear_button_title","Pagination","button_title","next_title","prev_title","more_pages","is_loading_text","load_button_text","StepIndicator","overview_title","step_title_extended","step_title","Slider","addTitle","subtractTitle","PaymentCard","text_card_number","text_expired","text_blocked","text_not_active","text_order_in_process","text_renewed","text_replaced","text_unknown","Tag","removeIconTitle","addIconTitle","Table","accordionToggleButtonSR","accordionMoreContentSR","navigationButtonSR","Upload","textSingular","fileTypeTableCaption","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","buttonText","buttonTextSingular","loadingText","errorLargeFile","errorAmountLimit","errorUnsupportedFile","deleteButton","fileListAriaLabel"],"sources":["../../../../src/shared/locales/en-GB.ts"],"sourcesContent":["import nb from './nb-NO'\nexport default {\n 'en-GB': {\n TextCounter: {\n characterDown: '%count of %max characters remaining.',\n characterUp: 'You have used %count of %max characters.',\n characterExceeded: '%count characters over the limit of %max.',\n },\n TimelineItem: {\n alt_label_completed: 'Completed',\n alt_label_current: 'Current',\n alt_label_upcoming: 'Upcoming',\n },\n Breadcrumb: {\n navText: 'Page hierarchy',\n goBackText: 'Back',\n homeText: 'Home',\n backToText: 'Back to...',\n },\n DatePicker: {\n day: 'Day',\n month: 'Month',\n year: 'Year',\n start: 'from',\n end: 'to',\n selectedDate: 'Selected date: %s',\n selectedMonth: 'Selected month %s',\n selectedYear: 'Selected year %s',\n nextMonth: 'Next month %s',\n prevMonth: 'Previous month %s',\n nextYear: 'Next year %s',\n prevYear: 'Previous year %s',\n openPickerText: 'Open date picker',\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/yyyy', // have to be same setup as \"mask\" - but can be like: dd/mm/åååå\n dateFormat: 'yyyy-MM-dd', // in v1 of date-fns we were more flexible in terms of the format\n returnFormat: 'yyyy-MM-dd', // used in date-fns v1: YYYY-MM-DD\n submitButtonText: 'OK',\n cancelButtonText: 'Cancel',\n resetButtonText: 'Reset',\n placeholderCharacters: {\n day: 'd',\n month: 'm',\n year: 'y',\n },\n // TODO: add firstDay\n },\n Anchor: {\n targetBlankTitle: 'Opens a new Window',\n },\n GlobalStatus: {\n default_title: 'An error has occurred',\n close_text: 'Close',\n status_anchor_text: 'Go to %s',\n },\n GlobalError: {\n 404: {\n title: \"We can't find the page you're looking for …\",\n text: 'Are you sure you have entered the correct address? Or have we messed with the links?',\n },\n 500: {\n title: 'Sorry, a technical error happened!',\n text: 'The service is not working properly at the moment. Try again later.',\n },\n code: 'Error code:', // Deprecated: Replaced with errorMessageCode, code can be removed in v11.\n errorMessageCode: 'Error code: %statusCode',\n help: 'Here are some links that might help:',\n },\n ProgressIndicator: {\n indicator_label: 'Please wait ...',\n },\n Dropdown: {\n title: 'Option Menu',\n },\n Autocomplete: {\n title: 'Type and select',\n submit_button_title: 'Show options',\n no_options: 'No option',\n show_all: 'Show everything',\n show_options_sr: 'Browse options, close with esc button',\n aria_live_options: '%s options',\n selected_sr: 'Selected:',\n indicator_label: 'Getting data ...',\n },\n Modal: {\n dialog_title: 'Dialog Window',\n close_title: 'Close',\n },\n Dialog: {\n declineText: 'Cancel',\n confirmText: 'Approve',\n },\n CopyOnClick: {\n clipboard_copy: 'Copied',\n },\n NumberFormat: {\n clipboard_copy: 'Copied',\n not_available: 'Not available',\n },\n HelpButton: {\n title: 'Help text',\n aria_role: 'Help button',\n },\n Skeleton: {\n aria_busy: 'In progress ...',\n aria_ready: 'Ready to interact',\n },\n Input: {\n submit_button_title: 'Submit button',\n clear_button_title: 'Clear value',\n },\n Pagination: {\n button_title: 'Page %s',\n next_title: 'Next page',\n prev_title: 'Previous page',\n more_pages: '%s more pages',\n is_loading_text: 'Loading new content',\n load_button_text: 'Show more content',\n },\n StepIndicator: {\n overview_title: 'Steps Overview',\n step_title_extended: 'You are on step %step of %count',\n step_title: 'Step %step of %count',\n },\n Slider: {\n addTitle: 'Increase (%s)',\n subtractTitle: 'Decrease (%s)',\n },\n PaymentCard: {\n text_card_number: 'Card number',\n text_expired: 'Expired',\n text_blocked: 'Blocked',\n text_not_active: 'Not activated',\n text_order_in_process: 'Order in process',\n text_renewed: 'Renewed',\n text_replaced: 'Replaced',\n text_unknown: 'Unknown',\n },\n Tag: {\n removeIconTitle: 'Remove',\n addIconTitle: 'Add',\n },\n Table: {\n accordionToggleButtonSR: 'Show more content',\n accordionMoreContentSR: 'More content in the next row',\n navigationButtonSR: 'Navigate to more content',\n },\n Upload: {\n title: 'Upload documents',\n text: 'Drag & drop your files or choose files to upload.',\n textSingular:\n 'Drag & drop your file or choose which file to upload.',\n fileTypeTableCaption: 'Allowed formats and max. filesize',\n fileTypeDescription: 'Allowed formats:',\n fileSizeDescription: 'Max. filesize:',\n fileAmountDescription: 'Max. number of files:',\n fileSizeContent: '%size MB',\n buttonText: 'Choose files',\n buttonTextSingular: 'Choose file',\n loadingText: 'Loading',\n errorLargeFile:\n 'The file you are trying to upload is too big, the maximum size supported is %size MB.',\n errorAmountLimit:\n 'There is a limit to how many files you can upload (%amount).',\n errorUnsupportedFile:\n 'The file you are trying to upload is not supported.',\n deleteButton: 'Delete',\n fileListAriaLabel: 'uploaded files',\n },\n } satisfies (typeof nb)['nb-NO'],\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"en-GB.js","names":["TextCounter","characterDown","characterUp","characterExceeded","TimelineItem","alt_label_completed","alt_label_current","alt_label_upcoming","Breadcrumb","navText","goBackText","homeText","backToText","DatePicker","day","month","year","start","end","selectedDate","selectedMonth","selectedYear","nextMonth","prevMonth","nextYear","prevYear","openPickerText","maskOrder","maskPlaceholder","dateFormat","returnFormat","submitButtonText","cancelButtonText","resetButtonText","placeholderCharacters","Anchor","targetBlankTitle","GlobalStatus","default_title","close_text","status_anchor_text","GlobalError","title","text","code","errorMessageCode","help","ProgressIndicator","indicator_label","Dropdown","Autocomplete","submit_button_title","no_options","show_all","show_options_sr","aria_live_options","selected_sr","Modal","dialog_title","close_title","Dialog","declineText","confirmText","CopyOnClick","clipboard_copy","NumberFormat","not_available","HelpButton","aria_role","Skeleton","aria_busy","aria_ready","Input","clear_button_title","Pagination","button_title","next_title","prev_title","more_pages","is_loading_text","load_button_text","StepIndicator","overview_title","step_title_extended","step_title","Slider","addTitle","subtractTitle","PaymentCard","text_card_number","text_expired","text_blocked","text_not_active","text_order_in_process","text_renewed","text_replaced","text_unknown","Tag","removeIconTitle","addIconTitle","Table","accordionToggleButtonSR","accordionMoreContentSR","navigationButtonSR","Upload","textSingular","fileTypeTableCaption","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","buttonText","buttonTextSingular","loadingText","errorLargeFile","errorAmountLimit","errorUnsupportedFile","deleteButton","fileListAriaLabel"],"sources":["../../../../src/shared/locales/en-GB.ts"],"sourcesContent":["import nb from './nb-NO'\nexport default {\n 'en-GB': {\n TextCounter: {\n characterDown: '%count of %max characters remaining.',\n characterUp: 'You have used %count of %max characters.',\n characterExceeded: '%count characters over the limit of %max.',\n },\n TimelineItem: {\n alt_label_completed: 'Completed',\n alt_label_current: 'Current',\n alt_label_upcoming: 'Upcoming',\n },\n Breadcrumb: {\n navText: 'Page hierarchy',\n goBackText: 'Back',\n homeText: 'Home',\n backToText: 'Back to...',\n },\n DatePicker: {\n day: 'Day',\n month: 'Month',\n year: 'Year',\n start: 'from',\n end: 'to',\n selectedDate: 'Selected date: %s',\n selectedMonth: 'Selected month %s',\n selectedYear: 'Selected year %s',\n nextMonth: 'Next month %s',\n prevMonth: 'Previous month %s',\n nextYear: 'Next year %s',\n prevYear: 'Previous year %s',\n openPickerText: 'Open date picker',\n maskOrder: 'dd/mm/yyyy',\n maskPlaceholder: 'dd/mm/yyyy', // have to be same setup as \"mask\" - but can be like: dd/mm/åååå\n dateFormat: 'yyyy-MM-dd', // in v1 of date-fns we were more flexible in terms of the format\n returnFormat: 'yyyy-MM-dd', // used in date-fns v1: YYYY-MM-DD\n submitButtonText: 'OK',\n cancelButtonText: 'Cancel',\n resetButtonText: 'Reset',\n placeholderCharacters: {\n day: 'd',\n month: 'm',\n year: 'y',\n },\n // TODO: add firstDay\n },\n Anchor: {\n targetBlankTitle: 'Opens a new Window',\n },\n GlobalStatus: {\n default_title: 'An error has occurred',\n close_text: 'Close',\n status_anchor_text: 'Go to %s',\n },\n GlobalError: {\n 404: {\n title: \"We can't find the page you're looking for …\",\n text: 'Are you sure you have entered the correct address? Or have we messed with the links?',\n },\n 500: {\n title: 'Sorry, a technical error happened!',\n text: 'The service is not working properly at the moment. Try again later.',\n },\n code: 'Error code:', // Deprecated: Replaced with errorMessageCode, code can be removed in v11.\n errorMessageCode: 'Error code: %statusCode',\n help: 'Here are some links that might help:',\n },\n ProgressIndicator: {\n indicator_label: 'Please wait ...',\n },\n Dropdown: {\n title: 'Option Menu',\n },\n Autocomplete: {\n title: 'Type and select',\n submit_button_title: 'Show options',\n no_options: 'No option',\n show_all: 'Show everything',\n show_options_sr: 'Browse options, close with esc button',\n aria_live_options: '%s options',\n selected_sr: 'Selected:',\n indicator_label: 'Getting data ...',\n },\n Modal: {\n dialog_title: 'Dialog Window',\n close_title: 'Close',\n },\n Dialog: {\n declineText: 'Cancel',\n confirmText: 'Approve',\n },\n CopyOnClick: {\n clipboard_copy: 'Copied',\n },\n NumberFormat: {\n clipboard_copy: 'Copied',\n not_available: 'Not available',\n },\n HelpButton: {\n title: 'Help text',\n aria_role: 'Help button',\n },\n Skeleton: {\n aria_busy: 'In progress ...',\n aria_ready: 'Ready to interact',\n },\n Input: {\n submit_button_title: 'Submit button',\n clear_button_title: 'Clear value',\n },\n Pagination: {\n button_title: 'Page %s',\n next_title: 'Next page',\n prev_title: 'Previous page',\n more_pages: '%s more pages',\n is_loading_text: 'Loading new content',\n load_button_text: 'Show more content',\n },\n StepIndicator: {\n overview_title: 'Steps Overview',\n step_title_extended: 'You are on step %step of %count',\n step_title: 'Step %step of %count',\n },\n Slider: {\n addTitle: 'Increase (%s)',\n subtractTitle: 'Decrease (%s)',\n },\n PaymentCard: {\n text_card_number: 'Card number',\n text_expired: 'Expired',\n text_blocked: 'Blocked',\n text_not_active: 'Not activated',\n text_order_in_process: 'Order in process',\n text_renewed: 'Renewed',\n text_replaced: 'Replaced',\n text_unknown: 'Unknown',\n },\n Tag: {\n removeIconTitle: 'Remove',\n addIconTitle: 'Add',\n },\n Table: {\n accordionToggleButtonSR: 'Show more content',\n accordionMoreContentSR: 'More content in the next row',\n navigationButtonSR: 'Navigate to more content',\n },\n Upload: {\n title: 'Upload documents',\n text: 'Drag & drop your files or choose files to upload.',\n textSingular:\n 'Drag & drop your file or choose which file to upload.',\n fileTypeTableCaption: 'Allowed formats and max. file size',\n fileTypeDescription: 'Allowed formats:',\n fileSizeDescription: 'Max. file size:',\n fileAmountDescription: 'Max. number of files:',\n fileSizeContent: '%size MB',\n buttonText: 'Choose files',\n buttonTextSingular: 'Choose file',\n loadingText: 'Loading',\n errorLargeFile:\n 'The file you are trying to upload is too big, the maximum size supported is %size MB.',\n errorAmountLimit:\n 'There is a limit to how many files you can upload (%amount).',\n errorUnsupportedFile:\n 'The file you are trying to upload is not supported.',\n deleteButton: 'Delete',\n fileListAriaLabel: 'uploaded files',\n },\n } satisfies (typeof nb)['nb-NO'],\n}\n"],"mappings":"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","ignoreList":[]}
@@ -45,7 +45,7 @@
45
45
  word-break: break-word;
46
46
 
47
47
  // Will add this to the body tag – later we can test for a version mismatch
48
- --eufemia-version: '10.71.0';
48
+ --eufemia-version: '10.71.1';
49
49
 
50
50
  @content;
51
51
  }
@@ -244,7 +244,7 @@ body {
244
244
  /* stylelint-disable-next-line */
245
245
  -webkit-text-size-adjust: 100%;
246
246
  word-break: break-word;
247
- --eufemia-version: "10.71.0";
247
+ --eufemia-version: "10.71.1";
248
248
  }
249
249
  .dnb-core-style *,
250
250
  .dnb-core-style ::before,
@@ -1 +1 @@
1
- @charset "UTF-8";html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{padding:0;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{margin:0}.dnb-core-style{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.71.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr{height:0;overflow:visible}.dnb-core-style main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul{list-style:none}.dnb-core-style abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp{font-family:var(--font-family-monospace)}.dnb-core-style ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video{display:inline-block}.dnb-core-style audio:not([controls]){display:none;height:0}.dnb-core-style img{border-style:none}.dnb-core-style svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root){overflow:hidden}.dnb-core-style table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select{margin:0}.dnb-core-style button{overflow:visible;text-transform:none}.dnb-core-style input{overflow:visible;word-break:normal}.dnb-core-style legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress{display:inline-block;vertical-align:baseline}.dnb-core-style select{text-transform:none}.dnb-core-style textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio]{padding:0}.dnb-core-style input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details{display:block}.dnb-core-style summary{display:list-item}.dnb-core-style canvas{display:inline-block}.dnb-core-style template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea{touch-action:manipulation}.dnb-core-style [hidden]{display:none}.dnb-core-style [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
1
+ @charset "UTF-8";html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{padding:0;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{margin:0}.dnb-core-style{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.71.1";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr{height:0;overflow:visible}.dnb-core-style main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul{list-style:none}.dnb-core-style abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp{font-family:var(--font-family-monospace)}.dnb-core-style ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video{display:inline-block}.dnb-core-style audio:not([controls]){display:none;height:0}.dnb-core-style img{border-style:none}.dnb-core-style svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root){overflow:hidden}.dnb-core-style table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select{margin:0}.dnb-core-style button{overflow:visible;text-transform:none}.dnb-core-style input{overflow:visible;word-break:normal}.dnb-core-style legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress{display:inline-block;vertical-align:baseline}.dnb-core-style select{text-transform:none}.dnb-core-style textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio]{padding:0}.dnb-core-style input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details{display:block}.dnb-core-style summary{display:list-item}.dnb-core-style canvas{display:inline-block}.dnb-core-style template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea{touch-action:manipulation}.dnb-core-style [hidden]{display:none}.dnb-core-style [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
@@ -269,7 +269,7 @@ body {
269
269
  /* stylelint-disable-next-line */
270
270
  -webkit-text-size-adjust: 100%;
271
271
  word-break: break-word;
272
- --eufemia-version: "10.71.0";
272
+ --eufemia-version: "10.71.1";
273
273
  }
274
274
  body *,
275
275
  body ::before,
@@ -1 +1 @@
1
- html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{padding:0;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.71.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}body :after,body :before{text-decoration:inherit;vertical-align:inherit}body hr{height:0;overflow:visible}body main{display:block}body nav ol,body nav ul{list-style:none}body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body b,body strong{font-weight:bolder}body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace)}body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}body audio,body video{display:inline-block}body audio:not([controls]){display:none;height:0}body img{border-style:none}body svg:not([fill]){fill:currentcolor}body svg:not(:root){overflow:hidden}body table{border-collapse:collapse}body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}body button,body figure,body input,body select{margin:0}body button{overflow:visible;text-transform:none}body input{overflow:visible;word-break:normal}body legend{color:inherit;display:table;max-width:100%;white-space:normal}body progress{display:inline-block;vertical-align:baseline}body select{text-transform:none}body textarea{overflow:auto;resize:vertical}body [type=checkbox],body [type=radio]{padding:0}body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}body ::input-placeholder{color:inherit;opacity:.54}body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}body ::-moz-focus-inner{border-style:none;padding:0}body details{display:block}body summary{display:list-item}body canvas{display:inline-block}body template{display:none}body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}body [hidden]{display:none}body [aria-busy=true]{cursor:progress}body [aria-controls]:not(input){cursor:pointer}body [aria-disabled=true],body [disabled]{cursor:not-allowed}body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{body{background-color:#fff;color:#000}}body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}
1
+ html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{padding:0;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.71.1";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}body :after,body :before{text-decoration:inherit;vertical-align:inherit}body hr{height:0;overflow:visible}body main{display:block}body nav ol,body nav ul{list-style:none}body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body b,body strong{font-weight:bolder}body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace)}body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}body audio,body video{display:inline-block}body audio:not([controls]){display:none;height:0}body img{border-style:none}body svg:not([fill]){fill:currentcolor}body svg:not(:root){overflow:hidden}body table{border-collapse:collapse}body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}body button,body figure,body input,body select{margin:0}body button{overflow:visible;text-transform:none}body input{overflow:visible;word-break:normal}body legend{color:inherit;display:table;max-width:100%;white-space:normal}body progress{display:inline-block;vertical-align:baseline}body select{text-transform:none}body textarea{overflow:auto;resize:vertical}body [type=checkbox],body [type=radio]{padding:0}body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}body ::input-placeholder{color:inherit;opacity:.54}body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}body ::-moz-focus-inner{border-style:none;padding:0}body details{display:block}body summary{display:list-item}body canvas{display:inline-block}body template{display:none}body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}body [hidden]{display:none}body [aria-busy=true]{cursor:progress}body [aria-controls]:not(input){cursor:pointer}body [aria-disabled=true],body [disabled]{cursor:not-allowed}body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{body{background-color:#fff;color:#000}}body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}
@@ -268,7 +268,7 @@ body,
268
268
  /* stylelint-disable-next-line */
269
269
  -webkit-text-size-adjust: 100%;
270
270
  word-break: break-word;
271
- --eufemia-version: "10.71.0";
271
+ --eufemia-version: "10.71.1";
272
272
  }
273
273
  body *,
274
274
  body ::before,
@@ -1 +1 @@
1
- @charset "UTF-8";html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{padding:0;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}.dnb-core-style,body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.71.0";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before,body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before,body :after,body :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr,body hr{height:0;overflow:visible}.dnb-core-style main,body main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul,body nav ol,body nav ul{list-style:none}.dnb-core-style abbr[title],body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong,body b,body strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp,body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace)}.dnb-core-style ::selection,body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video,body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video,body audio,body video{display:inline-block}.dnb-core-style audio:not([controls]),body audio:not([controls]){display:none;height:0}.dnb-core-style img,body img{border-style:none}.dnb-core-style svg:not([fill]),body svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root),body svg:not(:root){overflow:hidden}.dnb-core-style table,body table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea,body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select,body button,body figure,body input,body select{margin:0}.dnb-core-style button,body button{overflow:visible;text-transform:none}.dnb-core-style input,body input{overflow:visible;word-break:normal}.dnb-core-style legend,body legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress,body progress{display:inline-block;vertical-align:baseline}.dnb-core-style select,body select{text-transform:none}.dnb-core-style textarea,body textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio],body [type=checkbox],body [type=radio]{padding:0}.dnb-core-style input[type=search],body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button,body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder,body ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration,body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button,body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner,body ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details,body details{display:block}.dnb-core-style summary,body summary{display:list-item}.dnb-core-style canvas,body canvas{display:inline-block}.dnb-core-style template,body template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea,body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}.dnb-core-style [hidden],body [hidden]{display:none}.dnb-core-style [aria-busy=true],body [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input),body [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled],body [aria-disabled=true],body [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus),body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style,body{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme,body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}
1
+ @charset "UTF-8";html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;cursor:default;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:var(--line-height-basis);tab-size:4;word-break:break-word}body{margin:0}html{font-size:100%}html:not([data-visual-test]){scroll-behavior:smooth}@supports (-webkit-touch-callout:none){@supports (font:-apple-system-body){html{font:-apple-system-body}}}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--active{color:var(--color-mint-green)!important}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-anchor--contrast:not(:hover){color:var(--color-white)!important}html[xmlns="http://www.w3.org/1999/xhtml"] a.dnb-button--primary{color:var(--color-white)}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-ul{list-style:initial}html[xmlns="http://www.w3.org/1999/xhtml"] .dnb-p{background-color:initial;overflow:initial;text-align:inherit}html[xmlns="http://www.w3.org/1999/xhtml"] i{font-style:italic}html[xmlns="http://www.w3.org/1999/xhtml"] #column_left,html[xmlns="http://www.w3.org/1999/xhtml"] #root{width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefault #wrapper,html[xmlns="http://www.w3.org/1999/xhtml"] body#dnbLayoutDefaultStartPage #wrapper{padding:0;width:100%}html[xmlns="http://www.w3.org/1999/xhtml"] #column_content{box-shadow:none}.dnb-core-style,body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;--eufemia-version:"10.71.1";color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis);tab-size:4;-moz-tab-size:4;word-break:break-word}.dnb-core-style *,.dnb-core-style :after,.dnb-core-style :before,body *,body :after,body :before{background-repeat:no-repeat;box-sizing:border-box}.dnb-core-style :after,.dnb-core-style :before,body :after,body :before{text-decoration:inherit;vertical-align:inherit}.dnb-core-style hr,body hr{height:0;overflow:visible}.dnb-core-style main,body main{display:block}.dnb-core-style nav ol,.dnb-core-style nav ul,body nav ol,body nav ul{list-style:none}.dnb-core-style abbr[title],body abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dnb-core-style b,.dnb-core-style strong,body b,body strong{font-weight:bolder}.dnb-core-style code,.dnb-core-style kbd,.dnb-core-style pre,.dnb-core-style samp,body code,body kbd,body pre,body samp{font-family:var(--font-family-monospace)}.dnb-core-style ::selection,body ::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.dnb-core-style audio,.dnb-core-style canvas,.dnb-core-style iframe,.dnb-core-style img,.dnb-core-style svg,.dnb-core-style video,body audio,body canvas,body iframe,body img,body svg,body video{vertical-align:middle}.dnb-core-style audio,.dnb-core-style video,body audio,body video{display:inline-block}.dnb-core-style audio:not([controls]),body audio:not([controls]){display:none;height:0}.dnb-core-style img,body img{border-style:none}.dnb-core-style svg:not([fill]),body svg:not([fill]){fill:currentcolor}.dnb-core-style svg:not(:root),body svg:not(:root){overflow:hidden}.dnb-core-style table,body table{border-collapse:collapse}.dnb-core-style button,.dnb-core-style input,.dnb-core-style select,.dnb-core-style textarea,body button,body input,body select,body textarea{font-family:inherit;font-size:inherit;line-height:inherit}.dnb-core-style button,.dnb-core-style figure,.dnb-core-style input,.dnb-core-style select,body button,body figure,body input,body select{margin:0}.dnb-core-style button,body button{overflow:visible;text-transform:none}.dnb-core-style input,body input{overflow:visible;word-break:normal}.dnb-core-style legend,body legend{color:inherit;display:table;max-width:100%;white-space:normal}.dnb-core-style progress,body progress{display:inline-block;vertical-align:baseline}.dnb-core-style select,body select{text-transform:none}.dnb-core-style textarea,body textarea{overflow:auto;resize:vertical}.dnb-core-style [type=checkbox],.dnb-core-style [type=radio],body [type=checkbox],body [type=radio]{padding:0}.dnb-core-style input[type=search],body input[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}.dnb-core-style ::-webkit-inner-spin-button,.dnb-core-style ::-webkit-outer-spin-button,body ::-webkit-inner-spin-button,body ::-webkit-outer-spin-button{height:auto}.dnb-core-style ::input-placeholder,body ::input-placeholder{color:inherit;opacity:.54}.dnb-core-style ::-webkit-search-decoration,body ::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dnb-core-style ::-webkit-file-upload-button,body ::-webkit-file-upload-button{background-color:transparent;border:none;font:inherit}.dnb-core-style ::-moz-focus-inner,body ::-moz-focus-inner{border-style:none;padding:0}.dnb-core-style details,body details{display:block}.dnb-core-style summary,body summary{display:list-item}.dnb-core-style canvas,body canvas{display:inline-block}.dnb-core-style template,body template{display:none}.dnb-core-style [tabindex],.dnb-core-style a,.dnb-core-style area,.dnb-core-style button,.dnb-core-style input,.dnb-core-style label,.dnb-core-style select,.dnb-core-style summary,.dnb-core-style textarea,body [tabindex],body a,body area,body button,body input,body label,body select,body summary,body textarea{touch-action:manipulation}.dnb-core-style [hidden],body [hidden]{display:none}.dnb-core-style [aria-busy=true],body [aria-busy=true]{cursor:progress}.dnb-core-style [aria-controls]:not(input),body [aria-controls]:not(input){cursor:pointer}.dnb-core-style [aria-disabled=true],.dnb-core-style [disabled],body [aria-disabled=true],body [disabled]{cursor:not-allowed}.dnb-core-style [aria-hidden=false][hidden]:not(:focus),body [aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);display:inherit;position:absolute}@media print{.dnb-core-style,body{background-color:#fff;color:#000}}.dnb-core-style .eufemia-theme,body .eufemia-theme{color:var(--theme-color-body,var(--color-black-80,#333));font-family:var(--font-family-default);font-size:var(--font-size-small);font-style:normal;font-weight:var(--font-weight-basis);line-height:var(--line-height-basis)}.dnb-no-focus,.dnb-tab-focus,.dnb-tab-focus:focus{outline:none}html[data-whatinput=keyboard] .dnb-tab-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-mouse-focus,.dnb-mouse-focus:focus{outline:none}html[data-whatinput=mouse] .dnb-mouse-focus:focus{box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-focus-ring,html[data-whatinput=mouse] .dnb-mouse-focus:focus{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent}.dnb-focus-ring{box-shadow:0 0 0 var(--border-width) var(--border-color)!important}.dnb-scrollbar-appearance{-webkit-overflow-scrolling:touch;-ms-overflow-style:auto;scrollbar-color:var(--scrollbar-thumb-color,#888) transparent}@supports not (scrollbar-color:auto){.dnb-scrollbar-appearance::-webkit-scrollbar{background-color:var(--scrollbar-track-color,#eee);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:vertical{width:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar:horizontal{height:var(--scrollbar-track-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-color,#888);border-radius:var(--scrollbar-thumb-width,.5rem)}.dnb-scrollbar-appearance::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-color,#666)}}.dnb-skip-link{opacity:.3;position:absolute;top:-100vh;transition:opacity .3s ease-out;z-index:0}.dnb-skip-link--active,.dnb-skip-link:focus{background-color:transparent;border:none;border-radius:0;box-shadow:none;color:var(--skip-link-color);font-size:var(--font-size-basis);left:40%;margin:0;outline:none;padding:.5rem 1rem;position:fixed;text-align:center;-webkit-text-decoration:none;text-decoration:none;top:5%;user-select:none;-webkit-user-select:none;white-space:nowrap;z-index:9999}.dnb-skip-link--active:after,.dnb-skip-link:focus:after{background-color:hsla(0,0%,100%,.85);box-shadow:150vw 150vh 0 0 hsla(0,0%,100%,.85);content:"";height:150vh;left:-200vw;position:absolute;top:-200vh;width:150vw;z-index:-2}.dnb-skip-link--active:before,.dnb-skip-link:focus:before{background-color:var(--skip-link-background);border-radius:1.5rem;content:"";height:100%;left:0;outline:none;position:absolute;top:0;width:100%;z-index:-1}html[data-whatinput=mouse] .dnb-skip-link--active:before,html[data-whatinput=mouse] .dnb-skip-link:focus:before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:hover:before,.dnb-skip-link:focus:hover:before{background-color:var(--skip-link-background--hover)}.dnb-skip-link--active:active:before,.dnb-skip-link:focus:active:before{background-color:var(--skip-link-background--active)}.dnb-skip-link--active:focus:not(:active):before,.dnb-skip-link:focus:focus:not(:active):before{outline:none}html[data-whatinput=keyboard] .dnb-skip-link--active:focus:not(:active):before,html[data-whatinput=keyboard] .dnb-skip-link:focus:focus:not(:active):before{--border-color:var(--focus-ring-color);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-skip-link--active:focus,.dnb-skip-link:focus:focus{opacity:1}.dnb-skip-link--active:hover,.dnb-skip-link:focus:hover{background-color:transparent;box-shadow:none;color:var(--skip-link-color--hover)}.dnb-skip-link--active:focus:not(:hover):not(:active),.dnb-skip-link:focus:focus:not(:hover):not(:active){background-color:transparent;box-shadow:none;color:var(--skip-link-color)}.dnb-skip-link--active:active,.dnb-skip-link:focus:active{background-color:transparent;color:var(--skip-link-color--active)}html[data-whatintent=touch] .dnb-skip-link{display:none}.dnb-alignment-helper,.dnb-alignment-helper:before{speak:none;display:inline-block;font-size:var(--font-size-small);height:0;width:0}.dnb-alignment-helper:before{content:"‌"}.dnb-drop-shadow{box-shadow:var(--shadow-default)}.dnb-sr-only{-webkit-touch-callout:none!important;border:0!important;clip-path:inset(50%)!important;margin:0!important;max-height:1px!important;max-width:1px!important;overflow:hidden!important;padding:0!important;pointer-events:none!important;position:absolute!important;-webkit-user-select:none!important;user-select:none!important;white-space:nowrap!important}.dnb-suffix{font-size:var(--font-size-basis);line-height:var(--line-height-basis);padding-left:.5rem;word-break:normal}