@helsenorge/designsystem-react 5.9.0 → 5.9.2

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ ## [5.9.1](https://github.com/helsenorge/designsystem/branchCompare?baseVersion=GTv5.9.0&targetVersion=GTv5.9.1) (2023-12-11)
2
+
3
+ ### Bug Fixes
4
+
5
+ - promopanel har position=relative ([360a762](https://github.com/helsenorge/designsystem/commit/360a762ec3ce63cfe870f6cd7300af9fb9b83a5e)),
6
+ closes [#315387](https://github.com/helsenorge/designsystem/issues/315387)
7
+
8
+ ## [5.9.0](https://github.com/helsenorge/designsystem/branchCompare?baseVersion=GTv5.8.0&targetVersion=GTv5.9.0) (2023-12-11)
9
+
10
+ ### Features
11
+
12
+ - promopanel ([a190968](https://github.com/helsenorge/designsystem/commit/a190968285e95e09c20590cbdf14799165affb30)), closes
13
+ [#315387](https://github.com/helsenorge/designsystem/issues/315387)
14
+
15
+ ### Bug Fixes
16
+
17
+ - label kan og sendes inn til emoji ([6d5d680](https://github.com/helsenorge/designsystem/commit/6d5d680d31b0c797230f3539305659bc073ddb3a)),
18
+ closes [#310765](https://github.com/helsenorge/designsystem/issues/310765)
19
+ - tabellheader med sortering har ikke underline
20
+ ([f191991](https://github.com/helsenorge/designsystem/commit/f191991cb9e3f32bda2df281b703833d12dfb5db)), closes
21
+ [#315407](https://github.com/helsenorge/designsystem/issues/315407)
22
+
1
23
  ## [5.8.0](https://github.com/helsenorge/designsystem/branchCompare?baseVersion=GTv5.7.0&targetVersion=GTv5.8.0) (2023-12-08)
2
24
 
3
25
  ### Features
@@ -6,6 +6,7 @@
6
6
  $colors: 'neutral', 'blueberry', 'cherry';
7
7
 
8
8
  .promopanel {
9
+ position: relative;
9
10
  width: 100%;
10
11
  display: flex;
11
12
  align-items: center;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  export type SliderStep = {
3
3
  label?: number | string;
4
- /** Start emojicode with &# - otherwise it will render as a regular string */
5
4
  emojiUniCode?: string;
6
5
  };
7
6
  interface SliderProps {
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../src/components/Slider/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAgC3D,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,UAAU,WAAW;IACnB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iHAAiH;IACjH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iHAAiH;IACjH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,wCAAwC;IACxC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA2RxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../src/components/Slider/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAgC3D,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,UAAU,WAAW;IACnB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iHAAiH;IACjH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iHAAiH;IACjH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,wCAAwC;IACxC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA4QxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,2 +1,2 @@
1
- import a,{useState as T,useRef as U,useEffect as E}from"react";import b from"classnames";import{AnalyticsId as G}from"../../constants.js";import{useSize as J}from"../../hooks/useSize.js";import{useUuid as S}from"../../hooks/useUuid.js";import{getAriaLabelAttributes as Q}from"../../utils/accessibility.js";import{T as Y}from"../../Title.js";import o from"./styles.module.scss";import"../../utils/debounce.js";import"../../uuid.js";import"../../utils/environment.js";import"../Title/styles.module.scss";const Z=(m,v,l)=>{const[_,n]=T(m),h=r=>{r>l?n(l):r<v?n(v):n(r)};return E(()=>{n((l-v)/2+v)},[v,l]),[_,h]},x=({title:m,ariaLabel:v,labelLeft:l,labelRight:_,disabled:n=!1,onChange:h,steps:r,step:p=1,minValue:i=0,maxValue:s=r?r.length-1:100,testId:$})=>{const[A,I]=T(!1),[d,f]=Z((s-i)/2+i,i,s),g=S(),y=S(),w=S(),j=U(null),N=U(null),{width:C}=J(j)||{width:0},M=s/10;E(()=>{const e=()=>{I(!1)};return document.addEventListener("pointerup",e),()=>{document.removeEventListener("pointerup",e)}},[]);const D=e=>{var R;const t=((R=j.current)==null?void 0:R.getBoundingClientRect().x)??0,c=(e-t)/C,k=s-i;let u=c*k+i;return u=Math.round(u/p)*p,u=Math.max(i,Math.min(s,u)),u};E(()=>{const e=t=>{if(!n&&A){const c=D(t.clientX);f(c)}};return document.addEventListener("pointermove",e),()=>{document.removeEventListener("pointermove",e)}},[A]),E(()=>{!n&&h&&h(d)},[d]);const B=e=>{if(n)return;let t=!1;switch(e.key){case"ArrowLeft":case"ArrowDown":f(d-p),t=!0;break;case"PageDown":f(d-M),t=!0;break;case"ArrowRight":case"ArrowUp":f(d+p),t=!0;break;case"PageUp":f(d+M),t=!0;break;case"Home":f(i),t=!0;break;case"End":f(s),t=!0;break}t&&(e.preventDefault(),e.stopPropagation())},X=e=>{var c;if(n)return;const t=D(e.clientX);f(t),(c=N.current)==null||c.focus()},z=e=>{var t;n||(I(!0),e.preventDefault(),e.stopPropagation(),(t=N.current)==null||t.focus())},K=s!==i?C/(s-i)*(d-i):0,W=()=>{const e=r?Math.round((d-i)/p):null;if(r&&e!==null&&e>=0&&e<r.length){const t=r[e],c=t.emojiUniCode,k=c?L(c):void 0,u=typeof t.label<"u"?t.label.toString():void 0;return k&&u?`${k} ${u}`:k||u}},H=Q({label:v,id:(()=>{if(m&&l&&_)return[g,y,w].join(" ");if(m&&l)return[g,y].join(" ");if(m&&_)return[g,w].join(" ");if(m)return g})(),prefer:"label"}),P=(e,t)=>({left:`${e/(t-1)*100}%`}),L=e=>{try{if(/^&#\d+/.test(e)){const c=e.replace(/^&#/,"");return String.fromCodePoint(parseInt(c,16))}else return e}catch{return e}},O=()=>a.createElement("div",{className:o["slider__emoji-container"]},r==null?void 0:r.map((e,t)=>e.emojiUniCode&&a.createElement("div",{"aria-hidden":!0,key:"emoji"+t,className:o.slider__emoji,style:P(t,r.length)},L(e.emojiUniCode)))),q=()=>r==null?void 0:r.map((e,t)=>a.createElement("div",{key:"step"+t,className:o.slider__track__step,style:P(t,r.length)})),F=()=>a.createElement("div",{className:o["slider__value-container"]},r==null?void 0:r.map((e,t)=>typeof e.label<"u"&&a.createElement("div",{"aria-hidden":!0,key:"label"+t,className:o.slider__value,style:P(t,r.length)},e.label)));return a.createElement("div",{className:o.slider,"data-testid":$,"data-analyticsid":G.Slider},m&&a.createElement(Y,{className:o.slider__title,htmlMarkup:"h3",margin:0,appearance:"title3",id:g},m),a.createElement("div",{className:o["slider__content-container"]},O(),a.createElement("div",{ref:j,className:b(o["slider__track-wrapper"],n&&o["slider__track-wrapper--disabled"]),onClick:X,onPointerDown:z},a.createElement("div",{className:b(o.slider__track,n&&o["slider__track--disabled"])},q()),a.createElement("div",{role:n?void 0:"slider",ref:N,className:b(o.slider__marker,n&&o["slider__marker--disabled"]),style:{left:`${K}px`},onKeyDown:B,"aria-valuenow":d,"aria-valuetext":W(),"aria-valuemin":i,"aria-valuemax":s,tabIndex:n?void 0:0,"aria-disabled":n,...H})),F()),(l||_)&&a.createElement("span",{className:o.slider__options},a.createElement("span",{id:y},l),a.createElement("span",{id:w},_)))},fe=x;export{x as Slider,fe as default};
1
+ import a,{useState as R,useRef as U,useEffect as h}from"react";import S from"classnames";import{AnalyticsId as F}from"../../constants.js";import{useSize as G}from"../../hooks/useSize.js";import{useUuid as j}from"../../hooks/useUuid.js";import{getAriaLabelAttributes as J}from"../../utils/accessibility.js";import{T as Q}from"../../Title.js";import o from"./styles.module.scss";import"../../utils/debounce.js";import"../../uuid.js";import"../../utils/environment.js";import"../Title/styles.module.scss";const Y=(u,f,l)=>{const[v,n]=R(u),E=t=>{t>l?n(l):t<f?n(f):n(t)};return h(()=>{n((l-f)/2+f)},[f,l]),[v,E]},Z=({title:u,ariaLabel:f,labelLeft:l,labelRight:v,disabled:n=!1,onChange:E,steps:t,step:_=1,minValue:i=0,maxValue:s=t?t.length-1:100,testId:$})=>{const[A,I]=R(!1),[d,m]=Y((s-i)/2+i,i,s),k=j(),y=j(),w=j(),N=U(null),b=U(null),{width:M}=G(N)||{width:0},C=s/10;h(()=>{const r=()=>{I(!1)};return document.addEventListener("pointerup",r),()=>{document.removeEventListener("pointerup",r)}},[]);const D=r=>{var L;const e=((L=N.current)==null?void 0:L.getBoundingClientRect().x)??0,c=(r-e)/M,p=s-i;let g=c*p+i;return g=Math.round(g/_)*_,g=Math.max(i,Math.min(s,g)),g};h(()=>{const r=e=>{if(!n&&A){const c=D(e.clientX);m(c)}};return document.addEventListener("pointermove",r),()=>{document.removeEventListener("pointermove",r)}},[A]),h(()=>{!n&&E&&E(d)},[d]);const B=r=>{if(n)return;let e=!1;switch(r.key){case"ArrowLeft":case"ArrowDown":m(d-_),e=!0;break;case"PageDown":m(d-C),e=!0;break;case"ArrowRight":case"ArrowUp":m(d+_),e=!0;break;case"PageUp":m(d+C),e=!0;break;case"Home":m(i),e=!0;break;case"End":m(s),e=!0;break}e&&(r.preventDefault(),r.stopPropagation())},T=r=>{var c;if(n)return;const e=D(r.clientX);m(e),(c=b.current)==null||c.focus()},X=r=>{var e;n||(I(!0),r.preventDefault(),r.stopPropagation(),(e=b.current)==null||e.focus())},z=s!==i?M/(s-i)*(d-i):0,K=()=>{const r=t?Math.round((d-i)/_):null;if(t&&r!==null&&r>=0&&r<t.length){const e=t[r],c=e.emojiUniCode,p=typeof e.label<"u"?e.label.toString():void 0;return c&&p?`${c} ${p}`:c||p}},H=J({label:f,id:(()=>{if(u&&l&&v)return[k,y,w].join(" ");if(u&&l)return[k,y].join(" ");if(u&&v)return[k,w].join(" ");if(u)return k})(),prefer:"label"}),P=(r,e)=>({left:`${r/(e-1)*100}%`}),O=()=>a.createElement("div",{className:o["slider__emoji-container"]},t==null?void 0:t.map((r,e)=>r.emojiUniCode&&a.createElement("div",{"aria-hidden":!0,key:"emoji"+e,className:o.slider__emoji,style:P(e,t.length)},r.emojiUniCode))),W=()=>t==null?void 0:t.map((r,e)=>a.createElement("div",{key:"step"+e,className:o.slider__track__step,style:P(e,t.length)})),q=()=>a.createElement("div",{className:o["slider__value-container"]},t==null?void 0:t.map((r,e)=>typeof r.label<"u"&&a.createElement("div",{"aria-hidden":!0,key:"label"+e,className:o.slider__value,style:P(e,t.length)},r.label)));return a.createElement("div",{className:o.slider,"data-testid":$,"data-analyticsid":F.Slider},u&&a.createElement(Q,{className:o.slider__title,htmlMarkup:"h3",margin:0,appearance:"title3",id:k},u),a.createElement("div",{className:o["slider__content-container"]},O(),a.createElement("div",{ref:N,className:S(o["slider__track-wrapper"],n&&o["slider__track-wrapper--disabled"]),onClick:T,onPointerDown:X},a.createElement("div",{className:S(o.slider__track,n&&o["slider__track--disabled"])},W()),a.createElement("div",{role:n?void 0:"slider",ref:b,className:S(o.slider__marker,n&&o["slider__marker--disabled"]),style:{left:`${z}px`},onKeyDown:B,"aria-valuenow":d,"aria-valuetext":K(),"aria-valuemin":i,"aria-valuemax":s,tabIndex:n?void 0:0,"aria-disabled":n,...H})),q()),(l||v)&&a.createElement("span",{className:o.slider__options},a.createElement("span",{id:y},l),a.createElement("span",{id:w},v)))},me=Z;export{Z as Slider,me as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { AnalyticsId } from '../../constants';\nimport { useSize } from '../../hooks/useSize';\nimport { useUuid } from '../../hooks/useUuid';\nimport { getAriaLabelAttributes } from '../../utils/accessibility';\nimport Title from '../Title';\n\nimport styles from './styles.module.scss';\n\nconst useSafeNumberValue = (initial: number, min: number, max: number): [number, (value: number) => void] => {\n const [value, setValue] = useState(initial);\n\n const setSafeValue = (newValue: number): void => {\n if (newValue > max) {\n setValue(max);\n } else if (newValue < min) {\n setValue(min);\n } else {\n setValue(newValue);\n }\n };\n\n useEffect(() => {\n setValue((max - min) / 2 + min);\n }, [min, max]);\n\n return [value, setSafeValue];\n};\n\nexport type SliderStep = {\n label?: number | string;\n /** Start emojicode with &# - otherwise it will render as a regular string */\n emojiUniCode?: string;\n};\n\ninterface SliderProps {\n /**\tSets the title of the slider. */\n title?: string;\n /** Adds the left hand label to the element. */\n labelLeft?: string;\n /** Adds the right hand label to the element. */\n labelRight?: string;\n /**\tSets aria-label of the slider. */\n ariaLabel?: string;\n /** Disables the slider element. */\n disabled?: boolean;\n /** Sets the minimum allowed value on the slider - this overrides the use of steps prop for minValue/maxValue. */\n minValue?: number;\n /** Sets the maximum allowed value on the slider - this overrides the use of steps prop for minValue/maxValue. */\n maxValue?: number;\n /** Function to be called when the value state has changed. */\n onChange?: (value: number) => void;\n /** Sets the steps data for the slider*/\n steps?: SliderStep[];\n /** Sets the step to move per point in the slider */\n step?: number;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\nexport const Slider: React.FC<SliderProps> = ({\n title,\n ariaLabel,\n labelLeft,\n labelRight,\n disabled = false,\n onChange,\n steps,\n step = 1,\n minValue = 0,\n maxValue = steps ? steps.length - 1 : 100,\n testId,\n}) => {\n const [isMoving, setIsMoving] = useState(false);\n const [value, setValue] = useSafeNumberValue((maxValue - minValue) / 2 + minValue, minValue, maxValue);\n\n const titleId = useUuid();\n const labelLeftId = useUuid();\n const labelRightId = useUuid();\n const trackRef = useRef<HTMLDivElement>(null);\n const markerRef = useRef<HTMLDivElement>(null);\n const { width: trackWidth } = useSize(trackRef) || { width: 0 };\n const largeStep = maxValue / 10;\n\n useEffect(() => {\n const handlePointerUp = (): void => {\n setIsMoving(false);\n };\n\n document.addEventListener('pointerup', handlePointerUp);\n\n return () => {\n document.removeEventListener('pointerup', handlePointerUp);\n };\n }, []);\n\n const getValueBasedOnMarkerPosition = (markerPosition: number): number => {\n const trackPosition = trackRef.current?.getBoundingClientRect().x ?? 0;\n\n // Calculate the normalized position (0 to 1) of the marker along the track\n const normalizedPosition = (markerPosition - trackPosition) / trackWidth;\n const valueRange = maxValue - minValue;\n // Calculate the value without considering the step\n let value = normalizedPosition * valueRange + minValue;\n // Adjust the value to account for the step increment\n const stepCount = Math.round(value / step);\n value = stepCount * step;\n value = Math.max(minValue, Math.min(maxValue, value));\n\n return value;\n };\n\n useEffect(() => {\n const handlePointerMove = (e: PointerEvent): void => {\n if (!disabled && isMoving) {\n const newValue = getValueBasedOnMarkerPosition(e.clientX);\n setValue(newValue);\n }\n };\n\n document.addEventListener('pointermove', handlePointerMove);\n\n return () => {\n document.removeEventListener('pointermove', handlePointerMove);\n };\n }, [isMoving]);\n\n useEffect(() => {\n if (!disabled && onChange) {\n onChange(value);\n }\n }, [value]);\n\n const handleKeyDown: React.KeyboardEventHandler<HTMLDivElement> = e => {\n if (disabled) return;\n\n let flag = false;\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowDown':\n setValue(value - step);\n flag = true;\n break;\n case 'PageDown':\n setValue(value - largeStep);\n flag = true;\n break;\n case 'ArrowRight':\n case 'ArrowUp':\n setValue(value + step);\n flag = true;\n break;\n case 'PageUp':\n setValue(value + largeStep);\n flag = true;\n break;\n case 'Home':\n setValue(minValue);\n flag = true;\n break;\n case 'End':\n setValue(maxValue);\n flag = true;\n break;\n default:\n break;\n }\n\n if (flag) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n const handleTrackClick: React.MouseEventHandler<HTMLDivElement> = e => {\n if (disabled) return;\n\n const newValue = getValueBasedOnMarkerPosition(e.clientX);\n setValue(newValue);\n markerRef.current?.focus();\n };\n\n const handlePointerDown: React.PointerEventHandler<HTMLDivElement> = e => {\n if (disabled) return;\n\n setIsMoving(true);\n\n e.preventDefault();\n e.stopPropagation();\n\n markerRef.current?.focus();\n };\n\n const markerXPos = maxValue !== minValue ? (trackWidth / (maxValue - minValue)) * (value - minValue) : 0;\n\n const getAriaValueText = (): string | undefined => {\n const stepIndex = steps ? Math.round((value - minValue) / step) : null;\n\n if (steps && stepIndex !== null && stepIndex >= 0 && stepIndex < steps.length) {\n const step = steps[stepIndex];\n const emojiCode = step.emojiUniCode;\n const emojiAsText = emojiCode ? safelyReturnEmoji(emojiCode) : undefined;\n const label = typeof step.label !== 'undefined' ? step.label.toString() : undefined;\n\n return emojiAsText && label ? `${emojiAsText} ${label}` : emojiAsText || label;\n }\n\n return undefined;\n };\n\n const getAriaLabeledById = (): string | undefined => {\n if (title && labelLeft && labelRight) {\n return [titleId, labelLeftId, labelRightId].join(' ');\n }\n if (title && labelLeft) {\n return [titleId, labelLeftId].join(' ');\n }\n if (title && labelRight) {\n return [titleId, labelRightId].join(' ');\n }\n if (title) {\n return titleId;\n }\n };\n\n const ariaLabelAttributes = getAriaLabelAttributes({\n label: ariaLabel,\n id: getAriaLabeledById(),\n prefer: 'label',\n });\n\n const getXPostionStyling = (index: number, stepsLength: number): { left: string } => {\n return { left: `${(index / (stepsLength - 1)) * 100}%` };\n };\n\n const safelyReturnEmoji = (code: string): string => {\n try {\n const regex = /^&#\\d+/;\n if (regex.test(code)) {\n const emojiWithoutRegex = code.replace(/^&#/, '');\n return String.fromCodePoint(parseInt(emojiWithoutRegex, 16));\n } else {\n return code;\n }\n } catch (e) {\n return code;\n }\n };\n\n const renderEmojies = (): React.ReactNode => {\n return (\n <div className={styles['slider__emoji-container']}>\n {steps?.map((step, index) => {\n return (\n step.emojiUniCode && (\n <div\n aria-hidden={true}\n key={'emoji' + index}\n className={styles['slider__emoji']}\n style={getXPostionStyling(index, steps.length)}\n >\n {safelyReturnEmoji(step.emojiUniCode)}\n </div>\n )\n );\n })}\n </div>\n );\n };\n\n const renderSteps = (): React.ReactNode => {\n return steps?.map((_step, index) => {\n return <div key={'step' + index} className={styles['slider__track__step']} style={getXPostionStyling(index, steps.length)} />;\n });\n };\n\n const renderStepLabels = (): React.ReactNode => {\n return (\n <div className={styles['slider__value-container']}>\n {steps?.map((step, index) => {\n return (\n typeof step.label !== 'undefined' && (\n <div\n aria-hidden={true}\n key={'label' + index}\n className={styles['slider__value']}\n style={getXPostionStyling(index, steps.length)}\n >\n {step.label}\n </div>\n )\n );\n })}\n </div>\n );\n };\n\n return (\n <div className={styles.slider} data-testid={testId} data-analyticsid={AnalyticsId.Slider}>\n {title && (\n <Title className={styles['slider__title']} htmlMarkup={'h3'} margin={0} appearance={'title3'} id={titleId}>\n {title}\n </Title>\n )}\n <div className={styles['slider__content-container']}>\n {renderEmojies()}\n {/* Komponenten er tilgjengelig for mus/keyboard gjennom bruk av slideren */}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */}\n <div\n ref={trackRef}\n className={classNames(styles['slider__track-wrapper'], disabled && styles['slider__track-wrapper--disabled'])}\n onClick={handleTrackClick}\n onPointerDown={handlePointerDown}\n >\n <div className={classNames(styles.slider__track, disabled && styles['slider__track--disabled'])}>{renderSteps()}</div>\n <div\n role={disabled ? undefined : 'slider'}\n ref={markerRef}\n className={classNames(styles.slider__marker, disabled && styles['slider__marker--disabled'])}\n style={{\n left: `${markerXPos}px`,\n }}\n onKeyDown={handleKeyDown}\n aria-valuenow={value}\n aria-valuetext={getAriaValueText()}\n aria-valuemin={minValue}\n aria-valuemax={maxValue}\n tabIndex={disabled ? undefined : 0}\n aria-disabled={disabled}\n {...ariaLabelAttributes}\n />\n </div>\n {renderStepLabels()}\n </div>\n {(labelLeft || labelRight) && (\n <span className={styles.slider__options}>\n <span id={labelLeftId}>{labelLeft}</span>\n <span id={labelRightId}>{labelRight}</span>\n </span>\n )}\n </div>\n );\n};\n\nexport default Slider;\n"],"names":["useSafeNumberValue","initial","min","max","value","setValue","useState","setSafeValue","newValue","useEffect","Slider","title","ariaLabel","labelLeft","labelRight","disabled","onChange","steps","step","minValue","maxValue","testId","isMoving","setIsMoving","titleId","useUuid","labelLeftId","labelRightId","trackRef","useRef","markerRef","trackWidth","useSize","largeStep","handlePointerUp","getValueBasedOnMarkerPosition","markerPosition","trackPosition","_a","normalizedPosition","valueRange","handlePointerMove","e","handleKeyDown","flag","handleTrackClick","handlePointerDown","markerXPos","getAriaValueText","stepIndex","emojiCode","emojiAsText","safelyReturnEmoji","label","ariaLabelAttributes","getAriaLabelAttributes","getXPostionStyling","index","stepsLength","code","emojiWithoutRegex","renderEmojies","React","styles","renderSteps","_step","renderStepLabels","AnalyticsId","Title","classNames","Slider$1"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { AnalyticsId } from '../../constants';\nimport { useSize } from '../../hooks/useSize';\nimport { useUuid } from '../../hooks/useUuid';\nimport { getAriaLabelAttributes } from '../../utils/accessibility';\nimport Title from '../Title';\n\nimport styles from './styles.module.scss';\n\nconst useSafeNumberValue = (initial: number, min: number, max: number): [number, (value: number) => void] => {\n const [value, setValue] = useState(initial);\n\n const setSafeValue = (newValue: number): void => {\n if (newValue > max) {\n setValue(max);\n } else if (newValue < min) {\n setValue(min);\n } else {\n setValue(newValue);\n }\n };\n\n useEffect(() => {\n setValue((max - min) / 2 + min);\n }, [min, max]);\n\n return [value, setSafeValue];\n};\n\nexport type SliderStep = {\n label?: number | string;\n emojiUniCode?: string;\n};\n\ninterface SliderProps {\n /**\tSets the title of the slider. */\n title?: string;\n /** Adds the left hand label to the element. */\n labelLeft?: string;\n /** Adds the right hand label to the element. */\n labelRight?: string;\n /**\tSets aria-label of the slider. */\n ariaLabel?: string;\n /** Disables the slider element. */\n disabled?: boolean;\n /** Sets the minimum allowed value on the slider - this overrides the use of steps prop for minValue/maxValue. */\n minValue?: number;\n /** Sets the maximum allowed value on the slider - this overrides the use of steps prop for minValue/maxValue. */\n maxValue?: number;\n /** Function to be called when the value state has changed. */\n onChange?: (value: number) => void;\n /** Sets the steps data for the slider*/\n steps?: SliderStep[];\n /** Sets the step to move per point in the slider */\n step?: number;\n /** Sets the data-testid attribute. */\n testId?: string;\n}\n\nexport const Slider: React.FC<SliderProps> = ({\n title,\n ariaLabel,\n labelLeft,\n labelRight,\n disabled = false,\n onChange,\n steps,\n step = 1,\n minValue = 0,\n maxValue = steps ? steps.length - 1 : 100,\n testId,\n}) => {\n const [isMoving, setIsMoving] = useState(false);\n const [value, setValue] = useSafeNumberValue((maxValue - minValue) / 2 + minValue, minValue, maxValue);\n\n const titleId = useUuid();\n const labelLeftId = useUuid();\n const labelRightId = useUuid();\n const trackRef = useRef<HTMLDivElement>(null);\n const markerRef = useRef<HTMLDivElement>(null);\n const { width: trackWidth } = useSize(trackRef) || { width: 0 };\n const largeStep = maxValue / 10;\n\n useEffect(() => {\n const handlePointerUp = (): void => {\n setIsMoving(false);\n };\n\n document.addEventListener('pointerup', handlePointerUp);\n\n return () => {\n document.removeEventListener('pointerup', handlePointerUp);\n };\n }, []);\n\n const getValueBasedOnMarkerPosition = (markerPosition: number): number => {\n const trackPosition = trackRef.current?.getBoundingClientRect().x ?? 0;\n\n // Calculate the normalized position (0 to 1) of the marker along the track\n const normalizedPosition = (markerPosition - trackPosition) / trackWidth;\n const valueRange = maxValue - minValue;\n // Calculate the value without considering the step\n let value = normalizedPosition * valueRange + minValue;\n // Adjust the value to account for the step increment\n const stepCount = Math.round(value / step);\n value = stepCount * step;\n value = Math.max(minValue, Math.min(maxValue, value));\n\n return value;\n };\n\n useEffect(() => {\n const handlePointerMove = (e: PointerEvent): void => {\n if (!disabled && isMoving) {\n const newValue = getValueBasedOnMarkerPosition(e.clientX);\n setValue(newValue);\n }\n };\n\n document.addEventListener('pointermove', handlePointerMove);\n\n return () => {\n document.removeEventListener('pointermove', handlePointerMove);\n };\n }, [isMoving]);\n\n useEffect(() => {\n if (!disabled && onChange) {\n onChange(value);\n }\n }, [value]);\n\n const handleKeyDown: React.KeyboardEventHandler<HTMLDivElement> = e => {\n if (disabled) return;\n\n let flag = false;\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowDown':\n setValue(value - step);\n flag = true;\n break;\n case 'PageDown':\n setValue(value - largeStep);\n flag = true;\n break;\n case 'ArrowRight':\n case 'ArrowUp':\n setValue(value + step);\n flag = true;\n break;\n case 'PageUp':\n setValue(value + largeStep);\n flag = true;\n break;\n case 'Home':\n setValue(minValue);\n flag = true;\n break;\n case 'End':\n setValue(maxValue);\n flag = true;\n break;\n default:\n break;\n }\n\n if (flag) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n const handleTrackClick: React.MouseEventHandler<HTMLDivElement> = e => {\n if (disabled) return;\n\n const newValue = getValueBasedOnMarkerPosition(e.clientX);\n setValue(newValue);\n markerRef.current?.focus();\n };\n\n const handlePointerDown: React.PointerEventHandler<HTMLDivElement> = e => {\n if (disabled) return;\n\n setIsMoving(true);\n\n e.preventDefault();\n e.stopPropagation();\n\n markerRef.current?.focus();\n };\n\n const markerXPos = maxValue !== minValue ? (trackWidth / (maxValue - minValue)) * (value - minValue) : 0;\n\n const getAriaValueText = (): string | undefined => {\n const stepIndex = steps ? Math.round((value - minValue) / step) : null;\n\n if (steps && stepIndex !== null && stepIndex >= 0 && stepIndex < steps.length) {\n const step = steps[stepIndex];\n const emojiCode = step.emojiUniCode;\n const label = typeof step.label !== 'undefined' ? step.label.toString() : undefined;\n\n return emojiCode && label ? `${emojiCode} ${label}` : emojiCode || label;\n }\n\n return undefined;\n };\n\n const getAriaLabeledById = (): string | undefined => {\n if (title && labelLeft && labelRight) {\n return [titleId, labelLeftId, labelRightId].join(' ');\n }\n if (title && labelLeft) {\n return [titleId, labelLeftId].join(' ');\n }\n if (title && labelRight) {\n return [titleId, labelRightId].join(' ');\n }\n if (title) {\n return titleId;\n }\n };\n\n const ariaLabelAttributes = getAriaLabelAttributes({\n label: ariaLabel,\n id: getAriaLabeledById(),\n prefer: 'label',\n });\n\n const getXPostionStyling = (index: number, stepsLength: number): { left: string } => {\n return { left: `${(index / (stepsLength - 1)) * 100}%` };\n };\n\n const renderEmojies = (): React.ReactNode => {\n return (\n <div className={styles['slider__emoji-container']}>\n {steps?.map((step, index) => {\n return (\n step.emojiUniCode && (\n <div\n aria-hidden={true}\n key={'emoji' + index}\n className={styles['slider__emoji']}\n style={getXPostionStyling(index, steps.length)}\n >\n {step.emojiUniCode}\n </div>\n )\n );\n })}\n </div>\n );\n };\n\n const renderSteps = (): React.ReactNode => {\n return steps?.map((_step, index) => {\n return <div key={'step' + index} className={styles['slider__track__step']} style={getXPostionStyling(index, steps.length)} />;\n });\n };\n\n const renderStepLabels = (): React.ReactNode => {\n return (\n <div className={styles['slider__value-container']}>\n {steps?.map((step, index) => {\n return (\n typeof step.label !== 'undefined' && (\n <div\n aria-hidden={true}\n key={'label' + index}\n className={styles['slider__value']}\n style={getXPostionStyling(index, steps.length)}\n >\n {step.label}\n </div>\n )\n );\n })}\n </div>\n );\n };\n\n return (\n <div className={styles.slider} data-testid={testId} data-analyticsid={AnalyticsId.Slider}>\n {title && (\n <Title className={styles['slider__title']} htmlMarkup={'h3'} margin={0} appearance={'title3'} id={titleId}>\n {title}\n </Title>\n )}\n <div className={styles['slider__content-container']}>\n {renderEmojies()}\n {/* Komponenten er tilgjengelig for mus/keyboard gjennom bruk av slideren */}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */}\n <div\n ref={trackRef}\n className={classNames(styles['slider__track-wrapper'], disabled && styles['slider__track-wrapper--disabled'])}\n onClick={handleTrackClick}\n onPointerDown={handlePointerDown}\n >\n <div className={classNames(styles.slider__track, disabled && styles['slider__track--disabled'])}>{renderSteps()}</div>\n <div\n role={disabled ? undefined : 'slider'}\n ref={markerRef}\n className={classNames(styles.slider__marker, disabled && styles['slider__marker--disabled'])}\n style={{\n left: `${markerXPos}px`,\n }}\n onKeyDown={handleKeyDown}\n aria-valuenow={value}\n aria-valuetext={getAriaValueText()}\n aria-valuemin={minValue}\n aria-valuemax={maxValue}\n tabIndex={disabled ? undefined : 0}\n aria-disabled={disabled}\n {...ariaLabelAttributes}\n />\n </div>\n {renderStepLabels()}\n </div>\n {(labelLeft || labelRight) && (\n <span className={styles.slider__options}>\n <span id={labelLeftId}>{labelLeft}</span>\n <span id={labelRightId}>{labelRight}</span>\n </span>\n )}\n </div>\n );\n};\n\nexport default Slider;\n"],"names":["useSafeNumberValue","initial","min","max","value","setValue","useState","setSafeValue","newValue","useEffect","Slider","title","ariaLabel","labelLeft","labelRight","disabled","onChange","steps","step","minValue","maxValue","testId","isMoving","setIsMoving","titleId","useUuid","labelLeftId","labelRightId","trackRef","useRef","markerRef","trackWidth","useSize","largeStep","handlePointerUp","getValueBasedOnMarkerPosition","markerPosition","trackPosition","_a","normalizedPosition","valueRange","handlePointerMove","handleKeyDown","e","flag","handleTrackClick","handlePointerDown","markerXPos","getAriaValueText","stepIndex","emojiCode","label","ariaLabelAttributes","getAriaLabelAttributes","getXPostionStyling","index","stepsLength","renderEmojies","React","styles","renderSteps","_step","renderStepLabels","AnalyticsId","Title","classNames","Slider$1"],"mappings":"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"}
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "url": "https://github.com/helsenorge/designsystem"
8
8
  },
9
9
  "homepage": "https://helsenorge.design",
10
- "version": "5.9.0",
10
+ "version": "5.9.2",
11
11
  "author": "Helsenorge",
12
12
  "license": "MIT",
13
13
  "dependencies": {