@aarhus-university/au-designsystem-delphinus 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,21 +1,22 @@
1
1
  {
2
2
  "name": "@aarhus-university/au-designsystem-delphinus",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "start": "concurrently \"npm run nodemon\" \"npm run sass\" \"npm run build\"",
7
7
  "nodemon": "nodemon ./bin/www",
8
- "sass": "sass --style compressed --watch source/style.scss:public/style.css source/projects/bachelor-applications/style.scss:public/projects/bachelor-applications/style.css source/projects/brightspace/style.scss:public/projects/brightspace/style.css source/projects/course-catalogue/style.scss:public/projects/course-catalogue/style.css source/projects/medarbejdere/style.scss:public/projects/medarbejdere/style.css source/projects/mitstudie/style.scss:public/projects/mitstudie/style.css source/projects/queue-it/style.scss:public/projects/queue-it/style.css source/projects/typo3/style.scss:public/projects/typo3/style.css source/demo-style.scss:public/demo-style.css source/atoms/misc/atoms-style.scss:public/atoms/atoms-style.css source/atoms/misc/atom-iframe.scss:source/atoms/misc/atom-iframe.css source/atoms/fonts/atom-fonts.scss:public/atoms/fonts/atom-fonts.css source/atoms/colors/atom-colors.scss:public/atoms/colors/atom-colors.css source/atoms/spacing/atom-spacing.scss:public/atoms/spacing/atom-spacing.css source/style/module-demo/demo-component.scss:public/demo/demo-component.css source/figma-tokens/cssvars/figma-tokens.scss:public/figma-tokens/style.css",
8
+ "sass": "sass --style compressed --watch source/style.scss:public/style.css source/projects/bachelor-applications/style.scss:public/projects/bachelor-applications/style.css source/projects/omnibus/style.scss:public/projects/omnibus/style.css source/projects/brightspace/style.scss:public/projects/brightspace/style.css source/projects/course-catalogue/style.scss:public/projects/course-catalogue/style.css source/projects/medarbejdere/style.scss:public/projects/medarbejdere/style.css source/projects/mitstudie/style.scss:public/projects/mitstudie/style.css source/projects/queue-it/style.scss:public/projects/queue-it/style.css source/projects/typo3/style.scss:public/projects/typo3/style.css source/demo-style.scss:public/demo-style.css source/atoms/misc/atoms-style.scss:public/atoms/atoms-style.css source/atoms/misc/atom-iframe.scss:source/atoms/misc/atom-iframe.css source/atoms/fonts/atom-fonts.scss:public/atoms/fonts/atom-fonts.css source/atoms/colors/atom-colors.scss:public/atoms/colors/atom-colors.css source/atoms/spacing/atom-spacing.scss:public/atoms/spacing/atom-spacing.css source/style/module-demo/demo-component.scss:public/demo/demo-component.css source/figma-tokens/cssvars/figma-tokens.scss:public/figma-tokens/style.css",
9
9
  "build": "node ./esbuild.mjs"
10
10
  },
11
11
  "dependencies": {
12
12
  "cookie-parser": "~1.4.4",
13
13
  "debug": "~2.6.9",
14
+ "ejs": "^3.1.9",
14
15
  "express": "~4.16.1",
15
16
  "http-errors": "~1.6.3",
16
17
  "jstransformer-markdown-it": "^3.0.0",
17
18
  "morgan": "~1.9.1",
18
- "pug": "2.0.0-beta11",
19
+ "pug": "^2.0.0-beta11",
19
20
  "sass": "^1.63.6"
20
21
  },
21
22
  "devDependencies": {
@@ -1 +1 @@
1
- .content-container>*:first-child:not(.row){margin-top:0}.content-container>*:last-child:not(.row){margin-bottom:0}.component{padding:var(--spacing-m1);background-color:var(--color-background-secondary);color:var(--color-foreground)}.component>*:first-child:not(.row){margin-top:0}.component>*:last-child:not(.row){margin-bottom:0}.component--warning{background-color:var(--color-utility-warning-background);color:var(--color-utility-foreground)}.component__header{margin-bottom:var(--spacing-m5);font-size:var(--font-size-p1);line-height:calc(1.1em + 0.3rem);font-weight:700}.component__header--shout{text-transform:uppercase}.component__content{font-size:var(--font-size-0);line-height:calc(1.1em + 0.7rem);font-weight:400}/*# sourceMappingURL=demo-component.css.map */
1
+ .content-container>*:first-child:not(.row){margin-top:0}.content-container>*:last-child:not(.row){margin-bottom:0}.component{padding:var(--spacing-m1);background-color:var(--color-background-secondary);color:var(--color-foreground)}.component>*:first-child:not(.row){margin-top:0}.component>*:last-child:not(.row){margin-bottom:0}.component--warning{background-color:var(--color-utility-warning-background);color:var(--color-utility-foreground)}.component__header{margin-bottom:var(--spacing-m5);font-size:var(--font-size-p1);line-height:calc(1.1em + 0.3rem);font-weight:700}.component__header--shout{text-transform:uppercase}.component__content{font-size:var(--font-size-0);line-height:calc(1.1em + 0.7rem);font-weight:400}/*# sourceMappingURL=demo-component.css.map */
package/public/js/app.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{var $=e=>{document.readyState!=="loading"?e():document.addEventListener("DOMContentLoaded",e)},C=$;var b=(e,t)=>{let n=!1;return e.composedPath().forEach(r=>{r.classList&&r.classList.contains(t)&&(n=!0)}),n},q=()=>{let e=document.querySelector("body");if(e){let t=window.getComputedStyle(e).getPropertyValue("--color-background"),n=document.querySelector('meta[name="theme-color"]');if(n)n.content=t;else{let i=document.createElement("meta");i.name="theme-color",i.content=t,document.getElementsByTagName("head")[0].appendChild(i)}}},k=()=>parseInt(window.getComputedStyle(document.documentElement).fontSize.replace("px",""),10),y=e=>e*16,v=e=>{let t=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),n=y(parseInt(getComputedStyle(document.documentElement).getPropertyValue(e).replace("rem",""),10));return t<n};var D=e=>e.offsetWidth!==e.scrollWidth;var L=e=>{e.classList.contains("horizontal-scroll--no-overflow")&&e.classList.remove("horizontal-scroll--no-overflow");let t=e.querySelector(".horizontal-scroll--check-overflow .tabbed-content__section:not([hidden]) .horizontal-scroll__scrollable-content");t===null&&!t&&(t=e.querySelector(".horizontal-scroll--check-overflow .horizontal-scroll__scrollable-content")),t&&(D(t)?t?.setAttribute("tabindex","0"):(e.classList.add("horizontal-scroll--no-overflow"),t?.removeAttribute("tabindex")))};var N=e=>{let t=e.parentElement;return t?t.classList.contains("nav")?t:N(t):e},P=(e,t=null)=>{let n="nav--toggled";e.forEach(i=>{let r=i.querySelector(".nav__toggle");i!==t&&(i.classList.contains(n)&&(r.focus(),r.setAttribute("aria-expanded","false")),i.classList.remove(n))})},W=e=>{let t=r=>{let s=N(r),o=s.querySelector(".nav__items"),c=o?.querySelector(".nav__item:last-of-type");o?.classList.add("nav__items--fadeout");let f=o?.querySelector(".nav__item--is-overflown");f&&f.focus();let u=()=>{s.classList.toggle("nav--toggled"),o?.classList.remove("nav__items--fadeout"),c?.removeEventListener("transitionend",u)};return c?.addEventListener("transitionend",u),s},n=[];return document.querySelectorAll(".nav__toggle").forEach(r=>{let s=()=>{let o=t(r),c=r.getAttribute("aria-expanded");r.setAttribute("aria-expanded",c==="false"?"true":"false"),P(e,o)};n.push({element:r,clickEvent:s}),r.addEventListener("click",s)}),n},w=(e,t)=>{let n="nav--toggled",i="nav__items";t.classList.remove(n);let r=t.querySelector(`.${i}`);if(r){let o=r.querySelectorAll(".nav__item"),c="nav__item--is-overflown",f="nav--has-overflow",u="nav__item--active",l=!1;for(let a=o.length-1;a>=0;a-=1){let d=o[a];d.offsetTop>0?(d.classList.add(c),t.classList.add(f),l=!0):d.classList.contains(u)||d.classList.remove(c)}if(!l){t.classList.remove(f);let a=t.querySelector(`.${u}`);a&&a.classList.remove(c)}}let s=o=>{!o.target.classList.contains("nav__toggle")&&!b(o,i)&&P(e)};return document.querySelector("body")?.addEventListener("click",s),{element:document.querySelector("body"),clickEvent:s}};var I=e=>{let t=e.querySelector("thead"),n=e.querySelector("tbody"),i=e.querySelector("tfoot");if(t){let r=[];t.querySelectorAll("th").forEach(c=>{c.classList.contains("table__cell--self-explanatory")?r.push(""):r.push(c.innerHTML)});let o=[];n&&o.push(n),i&&o.push(i),o.forEach(c=>{c.querySelectorAll("tr").forEach(u=>{u.querySelectorAll("td, th").forEach((a,d)=>{r[d]&&a.setAttribute("data-label",r[d])})})})}};var K=e=>e.contains("tabbed-content--hide-tabs-on-medium-width")?parseInt(getComputedStyle(document.documentElement).getPropertyValue("--bp-medium").replace("rem",""),10):e.contains("tabbed-content--hide-tabs-on-wide-width")?parseInt(getComputedStyle(document.documentElement).getPropertyValue("--bp-wide").replace("rem",""),10):-1,j=e=>{let n=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)/k(),i=K(e);return i>-1?n<i:!0},F=e=>{let n=e.querySelector(".nav__items")?.querySelectorAll("a"),i=[];e.querySelectorAll("section").forEach(s=>{s.parentNode===e&&i.push(s)}),n?.forEach(s=>{s.removeAttribute("aria-selected"),s.classList.remove("nav__item--active")}),i.forEach(s=>{s.hidden=!1,s.removeAttribute("role")})};var T=(e,t,n,i,r,s=!0,o=c=>console.log(c))=>{s&&i.focus(),i.removeAttribute("tabindex"),i.setAttribute("aria-selected","true"),i.classList.contains("switch__segment")?i.classList.add("switch__segment--active"):i.classList.add("nav__item--active"),n&&(n.removeAttribute("aria-selected"),n.setAttribute("tabindex","-1"),n.classList.contains("switch__segment")?n.classList.remove("switch__segment--active"):n.classList.remove("nav__item--active"));let c=Array.prototype.indexOf.call(e,i);if(Array.from(document.querySelectorAll(`[data-for="${t[c].id}"]`)).forEach(u=>{u.classList.add("tabbed-content-peripheral--active"),u.hidden=!1}),t[c].hidden=!1,n){let u=Array.prototype.indexOf.call(e,n);Array.from(document.querySelectorAll(`[data-for="${t[u].id}"]`)).forEach(a=>{a.classList.remove("tabbed-content-peripheral--active"),a.hidden=!0}),t[u].hidden=!0}i.dispatchEvent(new CustomEvent("switch-tab",{bubbles:!0,detail:{tab:c}})),o(c)},X=(e,t,n=0,i=!0,r=s=>console.log(s))=>{let s=t.querySelector(".switch,.nav__items"),o=s.querySelectorAll("a"),c=[];t.querySelectorAll("section").forEach(l=>{l.parentNode===t&&c.push(l)});let u=t.querySelector("button.tabbed-content__expand-all");if(u){let l=()=>{s.hidden=!0,c.forEach(a=>{a.hidden=!1})};u.removeEventListener("click",l),u.addEventListener("click",l)}s.setAttribute("role","tablist"),o.forEach((l,a)=>{l.setAttribute("role","tab"),l.setAttribute("id",`tab${e}_${a+1}`),l.setAttribute("tabindex","-1"),l.parentElement?.setAttribute("role","presentation");let d=m=>{m.preventDefault();let E=s.querySelector("[aria-selected]");m.currentTarget!==E&&T(o,c,E,m.currentTarget,t.classList,!0,p=>{r(p)})};l.removeEventListener("click",d),l.addEventListener("click",d);let h=m=>{let E=Array.prototype.indexOf.call(o,m.currentTarget),p=null;m.key==="ArrowLeft"&&(p=E-1),m.key==="ArrowRight"&&(p=E+1),m.key==="ArrowDown"&&(p="down"),p!==null&&(m.preventDefault(),p==="down"?c[a].focus():o[p]&&T(o,c,m.currentTarget,o[p],t.classList,!0,V=>{r(V)}))};l.removeEventListener("keydown",h),l.addEventListener("keydown",h)}),c.forEach((l,a)=>{l.setAttribute("tabindex","-1"),l.setAttribute("aria-labelledby",o[a].id),l.hidden=!0,l.setAttribute("role","tabpanel")}),n>-1&&T(o,c,null,o[n],t.classList,i)},A=e=>{e.forEach((t,n)=>{let{rendered:i,domElement:r}=t;if(j(r.classList)){if(!i){let s=r.getAttribute("data-focus-onload"),o=r.getAttribute("data-initial-tab"),c=o?parseInt(o,10):0;X(n,r,c,s!=="false"),t.rendered=!0}}else i&&(F(r),t.rendered=!1)})};var M=(e,t,n,i)=>{let r=[],s=(l,a,d)=>{d&&a.focus();let h=()=>{e.setAttribute("hidden","hidden"),l.removeAttribute("hidden"),l.setAttribute("aria-expanded","false"),l.focus()};return a.addEventListener("click",h),h},o=e?.parentElement?.querySelector(".content-toggle__toggle"),c=e.querySelectorAll(".content-toggle__close"),f=()=>{v("--bp-medium")&&e.classList.contains("content-toggle__content--always-show-on-medium")||v("--bp-wide")&&e.classList.contains("content-toggle__content--always-show-on-wide")||v("--bp-max-width")&&e.classList.contains("content-toggle__content--always-show-on-max-width")?(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden")):(e.classList.contains("content-toggle__content--always-show-on-medium")||e.classList.contains("content-toggle__content--always-show-on-wide")||e.classList.contains("content-toggle__content--always-show-on-max-width"))&&(e.removeAttribute("hidden"),o.setAttribute("hidden","hidden"))};if(window.addEventListener("resize",()=>{f()}),(()=>{document.addEventListener("click",l=>{let a=l.target,d=!a.classList.contains("content-toggle__content"),h=!a.classList.contains("content-toggle__toggle"),m=!a.classList.contains("profile-header__info__contact__toggle__button");d&&h&&m&&(!v("--bp-medium")&&e.classList.contains("content-toggle__content--is-popover--on-medium")?(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),o.setAttribute("aria-expanded","false"),o.focus(),console.log(1)):!v("--bp-wide")&&e.classList.contains("content-toggle__content--is-popover--on-wide")?(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),o.setAttribute("aria-expanded","false"),o.focus(),console.log(2)):!v("--bp-max-width")&&e.classList.contains("content-toggle__content--is-popover--on-max-width")?(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),o.setAttribute("aria-expanded","false"),o.focus(),console.log(3)):e.classList.contains("content-toggle__content--is-popover")&&(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),o.setAttribute("aria-expanded","false"),o.focus(),console.log(4)))})})(),f(),o){let l=()=>{let a=o.getAttribute("aria-expanded");typeof n=="function"&&a==="false"&&n(e,o),o.setAttribute("aria-expanded",a==="false"?"true":"false"),a==="true"?e.setAttribute("hidden","hidden"):e.removeAttribute("hidden"),typeof t=="function"&&t(e,o),o.hasAttribute("aria-haspopup")&&(o.setAttribute("hidden","hidden"),c.forEach(d=>{s(o,d,!0)})),typeof i=="function"&&i(e,o)};o.addEventListener("click",l),r.push({element:o,clickEvent:l}),c.forEach(a=>{let d=s(o,a,!1);r.push({element:a,clickEvent:d})})}return r};var O=()=>{let e=document.querySelector("body");(v("--bp-medium")||v("--bp-low-height"))&&e?.classList.add("body--no-scroll")},z=()=>{document.querySelector("body")?.classList.remove("body--no-scroll")},S=e=>{e.querySelectorAll(".content-toggle__toggle").forEach(n=>{let i=n.parentElement?.querySelector(".content-toggle__content");n.setAttribute("aria-expanded","false"),i?.setAttribute("hidden","hidden")})};var g=e=>{let t=e.parentElement;return t?t.classList.contains("toolbar")?t:g(t):e},B=e=>{if(!v("--bp-medium")&&!v("--bp-low-height")){let t=y(parseInt(getComputedStyle(document.documentElement).getPropertyValue("--toolbar-popout-allowed-edge-distance").replace("rem,",""),10)),n=parseInt(getComputedStyle(e).width.replace("px",""),10),i=e.getBoundingClientRect().x,r=document.body.offsetWidth-t-n-i;r<0&&e.style.setProperty("--toolbar-popout-edge-overflow",`${r}px`)}};var U=e=>{e&&e.forEach(t=>{let n=t?.parentElement?.parentElement?.parentElement?.parentElement;if(n){let i=n.querySelectorAll(".horizontal-scroll__scrollable-content"),r=n.querySelectorAll(".switch__segment");i.forEach(s=>{s&&(t.addEventListener("click",()=>{let o=.8*s.clientWidth;s.scrollLeft+=o}),s.addEventListener("scroll",()=>{s.scrollLeft+s.clientWidth>=s.scrollWidth*.98?x(t):s.scrollLeft+s.clientWidth<s.scrollWidth&&H(t)}),r&&r.forEach(o=>{o.addEventListener("click",()=>{H(t),s.scrollLeft=0})}))})}})},R=e=>{e&&e.forEach(t=>{let n=t?.parentElement?.parentElement?.parentElement?.parentElement;if(n){let i=n.querySelectorAll(".horizontal-scroll__scrollable-content"),r=n.querySelectorAll(".switch__segment");i.forEach(s=>{s&&(t.addEventListener("click",()=>{let o=.8*s.clientWidth;s.scrollLeft-=o}),s.addEventListener("scroll",()=>{s.scrollLeft<=0?x(t):s.scrollLeft>0&&H(t)})),r&&r.forEach(o=>{o.addEventListener("click",()=>{x(t)})})})}})};function H(e){e.classList.remove("visually-disabled"),e.setAttribute("aria-disabled","false")}function x(e){e.classList.add("visually-disabled"),e.setAttribute("aria-disabled","true")}var _=0;C(()=>{let e=document.querySelectorAll(".tabbed-content"),t=[];e.forEach(l=>t.push({domElement:l,rendered:!1})),A(t),q();let n=document.querySelectorAll(".nav:not(.nav--vertical)");n.forEach(l=>w(n,l)),W(n),document.querySelectorAll(".table--wrap-medium-width, .table--wrap-default-width").forEach(l=>I(l)),document.querySelectorAll(".box .content-toggle__content, .profile-header .content-toggle__content, .design-documentation .content-toggle__content").forEach(l=>{M(l)});let s=document.querySelectorAll(".button.button--small.button--icon.button--icon--hide-label.icon-next"),o=document.querySelectorAll(".button.button--small.button--icon.button--icon--hide-label.icon-previous");U(s),R(o),document.querySelectorAll(".horizontal-scroll").forEach(l=>{L(l),window.addEventListener("resize",()=>{L(l)})}),document.querySelectorAll(".switch__segment").forEach(l=>{l.addEventListener("click",()=>{document.querySelectorAll(".horizontal-scroll").forEach(d=>{L(d)})})}),document.querySelectorAll(".toolbar .content-toggle__content").forEach(l=>{M(l,a=>{B(a),O()},a=>S(g(a)),(a,d)=>{let h=d.getAttribute("aria-expanded"),m=g(a);h==="true"?m?.classList.add("toolbar--has-popout"):m?.classList.remove("toolbar--has-popout"),a.addEventListener("click",E=>{E.target.classList.contains("toolbar__popout")&&!b(E,"toolbar__filter__content")&&(S(m),z())})})}),window.addEventListener("load",()=>{_=window.innerWidth}),window.addEventListener("resize",()=>{_>0&&window.innerWidth!==_&&(_=window.innerWidth,n.forEach(l=>w(n,l)),A(t))})});})();
2
- //# sourceMappingURL=app.js.map
1
+ (()=>{var $=e=>{document.readyState!=="loading"?e():document.addEventListener("DOMContentLoaded",e)},C=$;var b=(e,t)=>{let n=!1;return e.composedPath().forEach(r=>{r.classList&&r.classList.contains(t)&&(n=!0)}),n},q=()=>{let e=document.querySelector("body");if(e){let t=window.getComputedStyle(e).getPropertyValue("--color-background"),n=document.querySelector('meta[name="theme-color"]');if(n)n.content=t;else{let i=document.createElement("meta");i.name="theme-color",i.content=t,document.getElementsByTagName("head")[0].appendChild(i)}}},k=()=>parseInt(window.getComputedStyle(document.documentElement).fontSize.replace("px",""),10),y=e=>e*16,v=e=>{let t=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),n=y(parseInt(getComputedStyle(document.documentElement).getPropertyValue(e).replace("rem",""),10));return t<n};var D=e=>e.offsetWidth!==e.scrollWidth;var L=e=>{e.classList.contains("horizontal-scroll--no-overflow")&&e.classList.remove("horizontal-scroll--no-overflow");let t=e.querySelector(".horizontal-scroll--check-overflow .tabbed-content__section:not([hidden]) .horizontal-scroll__scrollable-content");t===null&&!t&&(t=e.querySelector(".horizontal-scroll--check-overflow .horizontal-scroll__scrollable-content")),t&&(D(t)?t?.setAttribute("tabindex","0"):(e.classList.add("horizontal-scroll--no-overflow"),t?.removeAttribute("tabindex")))};var N=e=>{let t=e.parentElement;return t?t.classList.contains("nav")?t:N(t):e},P=(e,t=null)=>{let n="nav--toggled";e.forEach(i=>{let r=i.querySelector(".nav__toggle");i!==t&&(i.classList.contains(n)&&(r.focus(),r.setAttribute("aria-expanded","false")),i.classList.remove(n))})},W=e=>{let t=r=>{let s=N(r),o=s.querySelector(".nav__items"),c=o?.querySelector(".nav__item:last-of-type");o?.classList.add("nav__items--fadeout");let f=o?.querySelector(".nav__item--is-overflown");f&&f.focus();let u=()=>{s.classList.toggle("nav--toggled"),o?.classList.remove("nav__items--fadeout"),c?.removeEventListener("transitionend",u)};return c?.addEventListener("transitionend",u),s},n=[];return document.querySelectorAll(".nav__toggle").forEach(r=>{let s=()=>{let o=t(r),c=r.getAttribute("aria-expanded");r.setAttribute("aria-expanded",c==="false"?"true":"false"),P(e,o)};n.push({element:r,clickEvent:s}),r.addEventListener("click",s)}),n},w=(e,t)=>{let n="nav--toggled",i="nav__items";t.classList.remove(n);let r=t.querySelector(`.${i}`);if(r){let o=r.querySelectorAll(".nav__item"),c="nav__item--is-overflown",f="nav--has-overflow",u="nav__item--active",l=!1;for(let a=o.length-1;a>=0;a-=1){let d=o[a];d.offsetTop>0?(d.classList.add(c),t.classList.add(f),l=!0):d.classList.contains(u)||d.classList.remove(c)}if(!l){t.classList.remove(f);let a=t.querySelector(`.${u}`);a&&a.classList.remove(c)}}let s=o=>{!o.target.classList.contains("nav__toggle")&&!b(o,i)&&P(e)};return document.querySelector("body")?.addEventListener("click",s),{element:document.querySelector("body"),clickEvent:s}};var I=e=>{let t=e.querySelector("thead"),n=e.querySelector("tbody"),i=e.querySelector("tfoot");if(t){let r=[];t.querySelectorAll("th").forEach(c=>{c.classList.contains("table__cell--self-explanatory")?r.push(""):r.push(c.innerHTML)});let o=[];n&&o.push(n),i&&o.push(i),o.forEach(c=>{c.querySelectorAll("tr").forEach(u=>{u.querySelectorAll("td, th").forEach((a,d)=>{r[d]&&a.setAttribute("data-label",r[d])})})})}};var K=e=>e.contains("tabbed-content--hide-tabs-on-medium-width")?parseInt(getComputedStyle(document.documentElement).getPropertyValue("--bp-medium").replace("rem",""),10):e.contains("tabbed-content--hide-tabs-on-wide-width")?parseInt(getComputedStyle(document.documentElement).getPropertyValue("--bp-wide").replace("rem",""),10):-1,j=e=>{let n=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)/k(),i=K(e);return i>-1?n<i:!0},F=e=>{let n=e.querySelector(".nav__items")?.querySelectorAll("a"),i=[];e.querySelectorAll("section").forEach(s=>{s.parentNode===e&&i.push(s)}),n?.forEach(s=>{s.removeAttribute("aria-selected"),s.classList.remove("nav__item--active")}),i.forEach(s=>{s.hidden=!1,s.removeAttribute("role")})};var T=(e,t,n,i,r,s=!0,o=c=>console.log(c))=>{s&&i.focus(),i.removeAttribute("tabindex"),i.setAttribute("aria-selected","true"),i.classList.contains("switch__segment")?i.classList.add("switch__segment--active"):i.classList.add("nav__item--active"),n&&(n.removeAttribute("aria-selected"),n.setAttribute("tabindex","-1"),n.classList.contains("switch__segment")?n.classList.remove("switch__segment--active"):n.classList.remove("nav__item--active"));let c=Array.prototype.indexOf.call(e,i);if(Array.from(document.querySelectorAll(`[data-for="${t[c].id}"]`)).forEach(u=>{u.classList.add("tabbed-content-peripheral--active"),u.hidden=!1}),t[c].hidden=!1,n){let u=Array.prototype.indexOf.call(e,n);Array.from(document.querySelectorAll(`[data-for="${t[u].id}"]`)).forEach(a=>{a.classList.remove("tabbed-content-peripheral--active"),a.hidden=!0}),t[u].hidden=!0}i.dispatchEvent(new CustomEvent("switch-tab",{bubbles:!0,detail:{tab:c}})),o(c)},X=(e,t,n=0,i=!0,r=s=>console.log(s))=>{let s=t.querySelector(".switch,.nav__items"),o=s.querySelectorAll("a"),c=[];t.querySelectorAll("section").forEach(l=>{l.parentNode===t&&c.push(l)});let u=t.querySelector("button.tabbed-content__expand-all");if(u){let l=()=>{s.hidden=!0,c.forEach(a=>{a.hidden=!1})};u.removeEventListener("click",l),u.addEventListener("click",l)}s.setAttribute("role","tablist"),o.forEach((l,a)=>{l.setAttribute("role","tab"),l.setAttribute("id",`tab${e}_${a+1}`),l.setAttribute("tabindex","-1"),l.parentElement?.setAttribute("role","presentation");let d=m=>{m.preventDefault();let E=s.querySelector("[aria-selected]");m.currentTarget!==E&&T(o,c,E,m.currentTarget,t.classList,!0,p=>{r(p)})};l.removeEventListener("click",d),l.addEventListener("click",d);let h=m=>{let E=Array.prototype.indexOf.call(o,m.currentTarget),p=null;m.key==="ArrowLeft"&&(p=E-1),m.key==="ArrowRight"&&(p=E+1),m.key==="ArrowDown"&&(p="down"),p!==null&&(m.preventDefault(),p==="down"?c[a].focus():o[p]&&T(o,c,m.currentTarget,o[p],t.classList,!0,V=>{r(V)}))};l.removeEventListener("keydown",h),l.addEventListener("keydown",h)}),c.forEach((l,a)=>{l.setAttribute("tabindex","-1"),l.setAttribute("aria-labelledby",o[a].id),l.hidden=!0,l.setAttribute("role","tabpanel")}),n>-1&&T(o,c,null,o[n],t.classList,i)},A=e=>{e.forEach((t,n)=>{let{rendered:i,domElement:r}=t;if(j(r.classList)){if(!i){let s=r.getAttribute("data-focus-onload"),o=r.getAttribute("data-initial-tab"),c=o?parseInt(o,10):0;X(n,r,c,s!=="false"),t.rendered=!0}}else i&&(F(r),t.rendered=!1)})};var M=(e,t,n,i)=>{let r=[],s=(l,a,d)=>{d&&a.focus();let h=()=>{e.setAttribute("hidden","hidden"),l.removeAttribute("hidden"),l.setAttribute("aria-expanded","false"),l.focus()};return a.addEventListener("click",h),h},o=e?.parentElement?.querySelector(".content-toggle__toggle"),c=e.querySelectorAll(".content-toggle__close"),f=()=>{v("--bp-medium")&&e.classList.contains("content-toggle__content--always-show-on-medium")||v("--bp-wide")&&e.classList.contains("content-toggle__content--always-show-on-wide")||v("--bp-max-width")&&e.classList.contains("content-toggle__content--always-show-on-max-width")?(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden")):(e.classList.contains("content-toggle__content--always-show-on-medium")||e.classList.contains("content-toggle__content--always-show-on-wide")||e.classList.contains("content-toggle__content--always-show-on-max-width"))&&(e.removeAttribute("hidden"),o.setAttribute("hidden","hidden"))};if(window.addEventListener("resize",()=>{f()}),(()=>{document.addEventListener("click",l=>{let a=l.target,d=!a.classList.contains("content-toggle__content"),h=!a.classList.contains("content-toggle__toggle"),m=!a.classList.contains("profile-header__info__contact__toggle__button");d&&h&&m&&(!v("--bp-medium")&&e.classList.contains("content-toggle__content--is-popover--on-medium")?(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),o.setAttribute("aria-expanded","false"),o.focus(),console.log(1)):!v("--bp-wide")&&e.classList.contains("content-toggle__content--is-popover--on-wide")?(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),o.setAttribute("aria-expanded","false"),o.focus(),console.log(2)):!v("--bp-max-width")&&e.classList.contains("content-toggle__content--is-popover--on-max-width")?(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),o.setAttribute("aria-expanded","false"),o.focus(),console.log(3)):e.classList.contains("content-toggle__content--is-popover")&&(o.removeAttribute("hidden"),e.setAttribute("hidden","hidden"),o.setAttribute("aria-expanded","false"),o.focus(),console.log(4)))})})(),f(),o){let l=()=>{let a=o.getAttribute("aria-expanded");typeof n=="function"&&a==="false"&&n(e,o),o.setAttribute("aria-expanded",a==="false"?"true":"false"),a==="true"?e.setAttribute("hidden","hidden"):e.removeAttribute("hidden"),typeof t=="function"&&t(e,o),o.hasAttribute("aria-haspopup")&&(o.setAttribute("hidden","hidden"),c.forEach(d=>{s(o,d,!0)})),typeof i=="function"&&i(e,o)};o.addEventListener("click",l),r.push({element:o,clickEvent:l}),c.forEach(a=>{let d=s(o,a,!1);r.push({element:a,clickEvent:d})})}return r};var O=()=>{let e=document.querySelector("body");(v("--bp-medium")||v("--bp-low-height"))&&e?.classList.add("body--no-scroll")},z=()=>{document.querySelector("body")?.classList.remove("body--no-scroll")},S=e=>{e.querySelectorAll(".content-toggle__toggle").forEach(n=>{let i=n.parentElement?.querySelector(".content-toggle__content");n.setAttribute("aria-expanded","false"),i?.setAttribute("hidden","hidden")})};var g=e=>{let t=e.parentElement;return t?t.classList.contains("toolbar")?t:g(t):e},B=e=>{if(!v("--bp-medium")&&!v("--bp-low-height")){let t=y(parseInt(getComputedStyle(document.documentElement).getPropertyValue("--toolbar-popout-allowed-edge-distance").replace("rem,",""),10)),n=parseInt(getComputedStyle(e).width.replace("px",""),10),i=e.getBoundingClientRect().x,r=document.body.offsetWidth-t-n-i;r<0&&e.style.setProperty("--toolbar-popout-edge-overflow",`${r}px`)}};var U=e=>{e&&e.forEach(t=>{let n=t?.parentElement?.parentElement?.parentElement?.parentElement;if(n){let i=n.querySelectorAll(".horizontal-scroll__scrollable-content"),r=n.querySelectorAll(".switch__segment");i.forEach(s=>{s&&(t.addEventListener("click",()=>{let o=.8*s.clientWidth;s.scrollLeft+=o}),s.addEventListener("scroll",()=>{s.scrollLeft+s.clientWidth>=s.scrollWidth*.98?x(t):s.scrollLeft+s.clientWidth<s.scrollWidth&&H(t)}),r&&r.forEach(o=>{o.addEventListener("click",()=>{H(t),s.scrollLeft=0})}))})}})},R=e=>{e&&e.forEach(t=>{let n=t?.parentElement?.parentElement?.parentElement?.parentElement;if(n){let i=n.querySelectorAll(".horizontal-scroll__scrollable-content"),r=n.querySelectorAll(".switch__segment");i.forEach(s=>{s&&(t.addEventListener("click",()=>{let o=.8*s.clientWidth;s.scrollLeft-=o}),s.addEventListener("scroll",()=>{s.scrollLeft<=0?x(t):s.scrollLeft>0&&H(t)})),r&&r.forEach(o=>{o.addEventListener("click",()=>{x(t)})})})}})};function H(e){e.classList.remove("visually-disabled"),e.setAttribute("aria-disabled","false")}function x(e){e.classList.add("visually-disabled"),e.setAttribute("aria-disabled","true")}var _=0;C(()=>{let e=document.querySelectorAll(".tabbed-content"),t=[];e.forEach(l=>t.push({domElement:l,rendered:!1})),A(t),q();let n=document.querySelectorAll(".nav:not(.nav--vertical)");n.forEach(l=>w(n,l)),W(n),document.querySelectorAll(".table--wrap-medium-width, .table--wrap-default-width").forEach(l=>I(l)),document.querySelectorAll(".box .content-toggle__content, .profile-header .content-toggle__content, .design-documentation .content-toggle__content").forEach(l=>{M(l)});let s=document.querySelectorAll(".button.button--small.button--icon.button--icon--hide-label.icon-next"),o=document.querySelectorAll(".button.button--small.button--icon.button--icon--hide-label.icon-previous");U(s),R(o),document.querySelectorAll(".horizontal-scroll").forEach(l=>{L(l),window.addEventListener("resize",()=>{L(l)})}),document.querySelectorAll(".switch__segment").forEach(l=>{l.addEventListener("click",()=>{document.querySelectorAll(".horizontal-scroll").forEach(d=>{L(d)})})}),document.querySelectorAll(".toolbar .content-toggle__content").forEach(l=>{M(l,a=>{B(a),O()},a=>S(g(a)),(a,d)=>{let h=d.getAttribute("aria-expanded"),m=g(a);h==="true"?m?.classList.add("toolbar--has-popout"):m?.classList.remove("toolbar--has-popout"),a.addEventListener("click",E=>{E.target.classList.contains("toolbar__popout")&&!b(E,"toolbar__filter__content")&&(S(m),z())})})}),window.addEventListener("load",()=>{_=window.innerWidth}),window.addEventListener("resize",()=>{_>0&&window.innerWidth!==_&&(_=window.innerWidth,n.forEach(l=>w(n,l)),A(t))})});})();
2
+ //# sourceMappingURL=app.js.map
@@ -1,7 +1,7 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../source/js/components/ready.ts", "../../source/js/components/helpers.ts", "../../source/js/components/nav.ts", "../../source/js/components/table.ts", "../../source/js/components/tabs.ts", "../../source/js/components/content-toggle.ts", "../../source/js/components/toolbar.ts", "../../source/js/components/horizontal-scroll-btn.ts", "../../source/js/production/app.ts"],
4
- "sourcesContent": ["/* eslint-env browser */\r\nconst ready = (fn: () => void): void => {\r\n if (document.readyState !== 'loading') {\r\n fn();\r\n } else {\r\n document.addEventListener('DOMContentLoaded', fn);\r\n }\r\n};\r\n\r\nexport default ready;\r\n", "/* eslint-disable wrap-iife */\r\n/* eslint-disable import/prefer-default-export */\r\n/* eslint-env browser */\r\nconst copyToClipboard = (str: string): void => {\r\n // eslint-disable-next-line no-console\r\n navigator.clipboard.writeText(str).then(() => console.log(`${str} written to clipboard`));\r\n};\r\n\r\nconst isElementWithClassNameInEventPath = (event: MouseEvent, className: string): boolean => {\r\n let found = false;\r\n const path = event.composedPath();\r\n path.forEach((p: EventTarget): void => {\r\n if ((p as HTMLElement).classList) {\r\n if ((p as HTMLElement).classList.contains(className)) {\r\n found = true;\r\n }\r\n }\r\n });\r\n return found;\r\n};\r\n\r\nconst setMetaThemeColor = (): void => {\r\n const body = document.querySelector('body');\r\n if (body) {\r\n const bgColor = window.getComputedStyle(body).getPropertyValue('--color-background');\r\n const existingMeta = document.querySelector('meta[name=\"theme-color\"]') as HTMLMetaElement;\r\n if (existingMeta) {\r\n existingMeta.content = bgColor;\r\n } else {\r\n const meta = document.createElement('meta');\r\n meta.name = 'theme-color';\r\n meta.content = bgColor;\r\n document.getElementsByTagName('head')[0].appendChild(meta);\r\n }\r\n }\r\n};\r\n\r\nconst getBaseFontSize = (): number => parseInt(window.getComputedStyle(document.documentElement).fontSize.replace('px', ''), 10);\r\n\r\n// eslint-disable-next-line max-len\r\nconst convertRemToPixels = (rem: number): number => rem * 16;\r\n\r\nconst isViewportBelow = (mediaQuery: string): boolean => {\r\n const viewportWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n const mediaQueryValue = convertRemToPixels(parseInt(getComputedStyle(document.documentElement).getPropertyValue(mediaQuery).replace('rem', ''), 10));\r\n return viewportWidth < mediaQueryValue;\r\n};\r\n\r\nconst setScrollbarWidthVariable = (): void => {\r\n const scrollbarWidth = window.innerWidth - document.body.clientWidth;\r\n document.documentElement.style.setProperty('--vertical-scrollbar-width', `${scrollbarWidth}px`);\r\n};\r\n\r\nconst overflowsY = (element: HTMLElement): boolean => element.offsetHeight !== element.scrollHeight;\r\nconst overflowsX = (element: HTMLElement): boolean => element.offsetWidth !== element.scrollWidth;\r\n// eslint-disable-next-line max-len\r\nconst elementOverflows = (element: HTMLElement): boolean => overflowsY(element) || overflowsX(element);\r\n\r\nconst setHorizontalScroll = (element: HTMLElement): void => {\r\n // Checks if the element already contains no-overflow\r\n if (element.classList.contains('horizontal-scroll--no-overflow')) {\r\n element.classList.remove('horizontal-scroll--no-overflow');\r\n }\r\n\r\n // Defines of content of horizontal scroll \r\n let content = element.querySelector('.horizontal-scroll--check-overflow .tabbed-content__section:not([hidden]) .horizontal-scroll__scrollable-content');\r\n if (content === null && !content) {\r\n content = element.querySelector('.horizontal-scroll--check-overflow .horizontal-scroll__scrollable-content');\r\n }\r\n\r\n // Checks if no-overflow should be added or not depending on content width\r\n if (content) {\r\n if (!overflowsX(content as HTMLElement)) {\r\n element.classList.add('horizontal-scroll--no-overflow');\r\n content?.removeAttribute('tabindex');\r\n } else {\r\n content?.setAttribute('tabindex', '0');\r\n }\r\n }\r\n};\r\n\r\nconst focusableSelector = 'a[href]:not([tabindex=\"-1\"]), area[href]:not([tabindex=\"-1\"]), input:not([disabled]):not([tabindex=\"-1\"]), select:not([disabled]):not([tabindex=\"-1\"]), textarea:not([disabled]):not([tabindex=\"-1\"]), button:not([disabled]):not([tabindex=\"-1\"]), iframe:not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"]), [contentEditable=true]:not([tabindex=\"-1\"])';\r\n\r\nexport {\r\n copyToClipboard,\r\n isElementWithClassNameInEventPath,\r\n getBaseFontSize,\r\n setMetaThemeColor,\r\n isViewportBelow,\r\n convertRemToPixels,\r\n setScrollbarWidthVariable,\r\n overflowsX,\r\n overflowsY,\r\n elementOverflows,\r\n setHorizontalScroll,\r\n focusableSelector,\r\n};\r\n", "/* eslint-env browser */\r\nimport { copyToClipboard, isElementWithClassNameInEventPath } from './helpers';\r\n\r\nconst findNav = (element: HTMLElement): HTMLElement => {\r\n const parent = element.parentElement;\r\n if (parent) {\r\n if (parent.classList.contains('nav')) {\r\n return parent;\r\n }\r\n return findNav(parent);\r\n }\r\n return element;\r\n};\r\n\r\n// eslint-disable-next-line max-len\r\nconst closeResponsiveNav = (navElements: NodeListOf<Element>, keepOpen: HTMLElement | null = null): void => {\r\n const navToggledClass = 'nav--toggled';\r\n navElements.forEach((n) => {\r\n const button = n.querySelector('.nav__toggle') as HTMLElement;\r\n if (n !== keepOpen) {\r\n if (n.classList.contains(navToggledClass)) {\r\n button.focus();\r\n button.setAttribute('aria-expanded', 'false');\r\n }\r\n n.classList.remove(navToggledClass);\r\n }\r\n });\r\n};\r\n\r\nconst setResponsiveToggle = (navElements: NodeListOf<Element>): CleanUpPair[] => {\r\n const toggleMenu = (button: HTMLElement) => {\r\n const parent = findNav(button);\r\n\r\n const navItems = parent.querySelector('.nav__items');\r\n const lastNavItem = navItems?.querySelector('.nav__item:last-of-type');\r\n navItems?.classList.add('nav__items--fadeout');\r\n const firstElement = navItems?.querySelector('.nav__item--is-overflown') as HTMLElement;\r\n if (firstElement) {\r\n firstElement.focus();\r\n }\r\n\r\n const transitionListener = () => {\r\n parent.classList.toggle('nav--toggled');\r\n navItems?.classList.remove('nav__items--fadeout');\r\n lastNavItem?.removeEventListener('transitionend', transitionListener);\r\n };\r\n\r\n lastNavItem?.addEventListener('transitionend', transitionListener);\r\n return parent;\r\n };\r\n\r\n const cleanUp: CleanUpPair[] = [];\r\n\r\n const toggle = document.querySelectorAll('.nav__toggle');\r\n toggle.forEach((button) => {\r\n const clickEvent = () => {\r\n const nav = toggleMenu(button as HTMLElement);\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n button.setAttribute('aria-expanded', ariaExpanded === 'false' ? 'true' : 'false');\r\n closeResponsiveNav(navElements, nav);\r\n };\r\n\r\n cleanUp.push({\r\n element: button,\r\n clickEvent,\r\n });\r\n\r\n button.addEventListener('click', clickEvent);\r\n });\r\n\r\n return cleanUp;\r\n};\r\n\r\nconst setResponsiveNav = (\r\n navElements: NodeListOf<Element>,\r\n navElement: Element,\r\n): SetResponsiveNavCleanUp => {\r\n const navToggledClass = 'nav--toggled';\r\n const navItemsClass = 'nav__items';\r\n // gitlab #117\r\n navElement.classList.remove(navToggledClass);\r\n const navItemsParent = navElement.querySelector(`.${navItemsClass}`);\r\n\r\n if (navItemsParent) {\r\n const navItems = navItemsParent.querySelectorAll('.nav__item');\r\n const isOverflownClass = 'nav__item--is-overflown';\r\n const hasOverflowClass = 'nav--has-overflow';\r\n const isActiveClass = 'nav__item--active';\r\n let hasOverflown = false;\r\n\r\n for (let i = navItems.length - 1; i >= 0; i -= 1) {\r\n const nav = navItems[i] as HTMLElement;\r\n const top = nav.offsetTop;\r\n\r\n if (top > 0) {\r\n nav.classList.add(isOverflownClass);\r\n navElement.classList.add(hasOverflowClass);\r\n hasOverflown = true;\r\n } else if (!nav.classList.contains(isActiveClass)) {\r\n nav.classList.remove(isOverflownClass);\r\n }\r\n }\r\n\r\n if (!hasOverflown) {\r\n navElement.classList.remove(hasOverflowClass);\r\n const isActive = navElement.querySelector(`.${isActiveClass}`);\r\n if (isActive) {\r\n isActive.classList.remove(isOverflownClass);\r\n }\r\n }\r\n }\r\n\r\n // gitlab #115\r\n const bodyClickEvent = (e: Event) => {\r\n if (!(e.target as HTMLElement).classList.contains('nav__toggle')\r\n && !isElementWithClassNameInEventPath(e as MouseEvent, navItemsClass)) {\r\n closeResponsiveNav(navElements);\r\n }\r\n };\r\n\r\n document.querySelector('body')?.addEventListener('click', bodyClickEvent);\r\n\r\n return {\r\n element: document.querySelector('body'),\r\n clickEvent: bodyClickEvent,\r\n };\r\n};\r\n\r\nconst closeSubNav = (buttons: NodeListOf<Element>, keepOpen: Element | null = null) => {\r\n const subNavClass = 'sub-nav--toggled';\r\n buttons.forEach((button) => {\r\n if (button !== keepOpen) {\r\n if (button?.parentElement?.classList.contains(subNavClass)) {\r\n (button as HTMLElement).focus();\r\n button.setAttribute('aria-expanded', 'false');\r\n }\r\n button?.parentElement?.classList.remove(subNavClass);\r\n }\r\n });\r\n};\r\n\r\nconst setSubNavToggle = (buttons: NodeListOf<Element>, button: Element): SetSubNavToggleCleanUp => {\r\n const subNavClass = 'sub-nav--toggled';\r\n const buttonClickEvent = () => {\r\n button?.parentElement?.classList.toggle(subNavClass);\r\n if (button?.parentElement?.classList.contains(subNavClass)) {\r\n button.setAttribute('aria-expanded', 'true');\r\n } else {\r\n button.setAttribute('aria-expanded', 'false');\r\n }\r\n closeSubNav(buttons, button);\r\n };\r\n\r\n button.addEventListener('click', buttonClickEvent);\r\n\r\n // gitlab #115\r\n const bodyClickEvent = (e: Event) => {\r\n if (!isElementWithClassNameInEventPath(e as MouseEvent, 'sub-nav')) {\r\n closeSubNav(buttons);\r\n }\r\n };\r\n\r\n document.querySelector('body')?.addEventListener('click', bodyClickEvent);\r\n return {\r\n buttonClickEvent,\r\n element: document.querySelector('body'),\r\n bodyClickEvent,\r\n };\r\n};\r\n\r\nconst setClickMessage = ((\r\n text: string,\r\n copyElement: Element,\r\n clickElement: Element | null,\r\n ctcThis: HTMLElement | null,\r\n listener: () => void,\r\n): void => {\r\n if (ctcThis && clickElement) {\r\n // Vi kopierer teksten til clipboard\r\n copyToClipboard(ctcThis.innerText);\r\n copyElement.classList.add('copy-to-clipboard--confirm');\r\n if (copyElement === clickElement) {\r\n copyElement.classList.add('copy-to-clipboard--done');\r\n }\r\n // Laver en span, der viser, at teksten er kopieret\r\n const ctcThisMessage = document.createElement('span');\r\n ctcThisMessage.classList.add('copy-to-clipboard__this__confirm-message');\r\n ctcThisMessage.innerText = text;\r\n ctcThis.appendChild(ctcThisMessage);\r\n\r\n // Efter 1,2 sekunder fjerner vi beskeden igen\r\n clickElement.removeEventListener('click', listener);\r\n setTimeout(() => {\r\n copyElement.classList.remove('copy-to-clipboard--confirm');\r\n ctcThisMessage.remove();\r\n clickElement.addEventListener('click', listener);\r\n }, 1200);\r\n }\r\n});\r\n\r\nconst setCopyToClipboard = (element: HTMLElement, text = 'Kopieret!'): void => {\r\n const ctcThis = <HTMLElement>element.querySelector('.copy-to-clipboard__this');\r\n // Hvis det er en knap, s\u00E5 s\u00E6tter vi click event p\u00E5 knappen\r\n if ((element as HTMLButtonElement).type === 'button') {\r\n const listener = (): void => {\r\n setClickMessage(text, element, element, ctcThis, listener);\r\n };\r\n element.addEventListener('click', listener);\r\n // Hvis det ikke er en knap, finder vi knappen \"inde i\" elementet\r\n } else {\r\n const btn = element.querySelector('.copy-to-clipboard__execute');\r\n const listener = (): void => {\r\n setClickMessage(text, element, btn, ctcThis, listener);\r\n };\r\n btn?.addEventListener('click', listener);\r\n }\r\n};\r\n\r\nconst setSearchToggle = (navSearch: Element, button: Element): void => {\r\n const toggleClass = 'nav__search--toggled';\r\n button.addEventListener('click', () => {\r\n if (navSearch.classList.contains(toggleClass)) {\r\n button.setAttribute('aria-expanded', 'false');\r\n navSearch.classList.remove(toggleClass);\r\n } else {\r\n button.setAttribute('aria-expanded', 'true');\r\n navSearch.classList.add(toggleClass);\r\n }\r\n });\r\n};\r\n\r\nexport {\r\n findNav,\r\n setResponsiveToggle,\r\n setResponsiveNav,\r\n setSubNavToggle,\r\n setCopyToClipboard,\r\n setSearchToggle,\r\n};\r\n", "/* eslint-disable import/prefer-default-export */\r\nconst setResponsiveTable = (table: Element): void => {\r\n const head = table.querySelector('thead');\r\n const body = table.querySelector('tbody');\r\n const foot = table.querySelector('tfoot');\r\n\r\n if (head) {\r\n const headers: string[] = [];\r\n const ths = head.querySelectorAll('th');\r\n ths.forEach((h) => {\r\n if (!h.classList.contains('table__cell--self-explanatory')) {\r\n headers.push(h.innerHTML); // Because innerText inherits stuff like text-transform\r\n } else {\r\n headers.push(''); // If header is self explanatory we do not add it\r\n }\r\n });\r\n\r\n const rowContainers: HTMLTableSectionElement[] = [];\r\n // Table elements that possibly contains <tr>'s\r\n if (body) {\r\n rowContainers.push(body);\r\n }\r\n if (foot) {\r\n rowContainers.push(foot);\r\n }\r\n\r\n rowContainers.forEach((rc) => {\r\n const rows = rc.querySelectorAll('tr');\r\n rows.forEach((tr) => {\r\n const cells = tr.querySelectorAll('td, th');\r\n cells.forEach((cell, i) => {\r\n if (headers[i]) {\r\n // if header is self explanatory we skip (value of array index is '' which is falsy)\r\n cell.setAttribute('data-label', headers[i]);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport {\r\n setResponsiveTable,\r\n};\r\n", "/* eslint-disable @typescript-eslint/no-empty-function */\r\n/* eslint-env browser */\r\n/* eslint-disable import/prefer-default-export */\r\n/* eslint-disable no-param-reassign */\r\nimport { getBaseFontSize } from './helpers';\r\n\r\nconst getMediaWidthBasedOnModifier = (classList: DOMTokenList): number => {\r\n if (classList.contains('tabbed-content--hide-tabs-on-medium-width')) {\r\n return parseInt(getComputedStyle(document.documentElement).getPropertyValue('--bp-medium').replace('rem', ''), 10);\r\n }\r\n if (classList.contains('tabbed-content--hide-tabs-on-wide-width')) {\r\n return parseInt(getComputedStyle(document.documentElement).getPropertyValue('--bp-wide').replace('rem', ''), 10);\r\n }\r\n\r\n return -1;\r\n};\r\n\r\nconst isBelowViewportLimit = (classList: DOMTokenList): boolean => {\r\n const viewportWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n const widthInRem = viewportWidth / getBaseFontSize();\r\n const mediaWidth = getMediaWidthBasedOnModifier(classList);\r\n if (mediaWidth > -1) {\r\n return widthInRem < mediaWidth;\r\n }\r\n return true;\r\n};\r\n\r\nconst destroyTabs = (tabbed: Element): void => {\r\n const tablist = tabbed.querySelector('.nav__items');\r\n const tabs = tablist?.querySelectorAll('a');\r\n const panels: HTMLElement[] = [];\r\n const sections = tabbed.querySelectorAll('section');\r\n sections.forEach((section) => {\r\n if (section.parentNode === tabbed) {\r\n panels.push(section);\r\n }\r\n });\r\n tabs?.forEach((tab) => {\r\n tab.removeAttribute('aria-selected');\r\n tab.classList.remove('nav__item--active');\r\n });\r\n\r\n panels.forEach((panel) => {\r\n panel.hidden = false;\r\n panel.removeAttribute('role');\r\n });\r\n};\r\n\r\nconst destroySwitches = (tabbed: Element): void => {\r\n const switchlist = tabbed.querySelector('.switch');\r\n const switches = switchlist?.querySelectorAll('a');\r\n const panels: HTMLElement[] = [];\r\n const sections = tabbed.querySelectorAll('section');\r\n sections.forEach((section) => {\r\n if (section.parentNode === tabbed) {\r\n panels.push(section);\r\n }\r\n });\r\n switches?.forEach((tab) => {\r\n tab.removeAttribute('aria-selected');\r\n tab.classList.remove('switch__segment--active');\r\n });\r\n\r\n panels.forEach((panel) => {\r\n panel.hidden = false;\r\n panel.removeAttribute('role');\r\n });\r\n};\r\n\r\nconst switchTab = (\r\n tabs: NodeListOf<HTMLAnchorElement>,\r\n panels: HTMLElement[],\r\n oldTab: Element | null,\r\n newTab: HTMLElement,\r\n _: DOMTokenList,\r\n focus = true,\r\n // eslint-disable-next-line no-console\r\n callback = (index: number): void => console.log(index),\r\n): void => {\r\n if (focus) {\r\n newTab.focus();\r\n }\r\n // Make the active tab focusable by the user (Tab key)\r\n newTab.removeAttribute('tabindex');\r\n // Set the selected state\r\n newTab.setAttribute('aria-selected', 'true');\r\n\r\n // Check if switch // should this be more pretty?\r\n if (newTab.classList.contains('switch__segment')) {\r\n newTab.classList.add('switch__segment--active');\r\n } else {\r\n newTab.classList.add('nav__item--active');\r\n }\r\n\r\n if (oldTab) {\r\n oldTab.removeAttribute('aria-selected');\r\n oldTab.setAttribute('tabindex', '-1');\r\n\r\n if (oldTab.classList.contains('switch__segment')) {\r\n oldTab.classList.remove('switch__segment--active');\r\n } else {\r\n oldTab.classList.remove('nav__item--active');\r\n }\r\n }\r\n\r\n const index = Array.prototype.indexOf.call(tabs, newTab);\r\n\r\n // More links\r\n /* let moreLinks;\r\n var moreLink: HTMLElement;\r\n moreLinks = document.querySelectorAll(`[data-for=\"${panels[index].id}\"]`);\r\n moreLinks.forEach((moreLink) => {\r\n moreLink.classList.add('tabbed-content-peripheral--active');\r\n moreLink.hidden = false;\r\n }); */\r\n const moreLinks: HTMLElement[] = Array.from(document.querySelectorAll(`[data-for=\"${panels[index].id}\"]`));\r\n moreLinks.forEach((link) => {\r\n link.classList.add('tabbed-content-peripheral--active');\r\n link.hidden = false;\r\n });\r\n\r\n // Get the indices of the new and old tabs to find the correct\r\n // tab panels to show and hide\r\n panels[index].hidden = false;\r\n if (oldTab) {\r\n const oldIndex = Array.prototype.indexOf.call(tabs, oldTab);\r\n\r\n const oldMoreLinks: HTMLElement[] = Array.from(document.querySelectorAll(`[data-for=\"${panels[oldIndex].id}\"]`));\r\n oldMoreLinks.forEach((link) => {\r\n link.classList.remove('tabbed-content-peripheral--active');\r\n link.hidden = true;\r\n });\r\n\r\n /* moreLinks.forEach((moreLink) => {\r\n moreLink.classList.remove('tabbed-content-peripheral--active');\r\n moreLink.hidden = true;\r\n }); */\r\n\r\n panels[oldIndex].hidden = true;\r\n }\r\n\r\n // Dispatches custom event on every tab change\r\n newTab.dispatchEvent(new CustomEvent('switch-tab', {\r\n bubbles: true,\r\n detail: { tab: index },\r\n }));\r\n callback(index);\r\n};\r\n\r\nconst setTabbedContent = (\r\n key: number,\r\n tabbed: Element,\r\n initial = 0,\r\n focus = true,\r\n // eslint-disable-next-line no-console\r\n callback = (index: number) => console.log(index),\r\n): void => {\r\n const tablist = tabbed.querySelector('.switch,.nav__items') as HTMLElement;\r\n const tabs = tablist.querySelectorAll('a');\r\n const panels: HTMLElement[] = [];\r\n const sections = tabbed.querySelectorAll('section');\r\n sections.forEach((section) => {\r\n if (section.parentNode === tabbed) {\r\n panels.push(section);\r\n }\r\n });\r\n\r\n const expandAll = tabbed.querySelector('button.tabbed-content__expand-all');\r\n if (expandAll) {\r\n const expandAllEvent = () => {\r\n tablist.hidden = true;\r\n panels.forEach((panel: HTMLElement) => {\r\n panel.hidden = false;\r\n });\r\n };\r\n\r\n expandAll.removeEventListener('click', expandAllEvent);\r\n expandAll.addEventListener('click', expandAllEvent);\r\n }\r\n\r\n // Add the tablist role to the first <ul> in the .tabbed container\r\n tablist.setAttribute('role', 'tablist');\r\n\r\n // Add semantics are remove user focusability for each tab\r\n tabs.forEach((tab, i) => {\r\n tab.setAttribute('role', 'tab');\r\n tab.setAttribute('id', `tab${key}_${(i + 1)}`);\r\n tab.setAttribute('tabindex', '-1');\r\n tab.parentElement?.setAttribute('role', 'presentation');\r\n\r\n // Handle clicking of tabs for mouse users\r\n const tabClickEvent = (e: MouseEvent) => {\r\n e.preventDefault();\r\n const currentTab = tablist.querySelector('[aria-selected]');\r\n if (e.currentTarget !== currentTab) {\r\n // eslint-disable-next-line max-len\r\n switchTab(tabs, panels, currentTab, e.currentTarget as HTMLElement, tabbed.classList, true, (tabIndex) => {\r\n callback(tabIndex);\r\n });\r\n }\r\n };\r\n\r\n tab.removeEventListener('click', tabClickEvent);\r\n tab.addEventListener('click', tabClickEvent);\r\n\r\n // Handle keydown events for keyboard users\r\n const tabKeyEvent = (e: KeyboardEvent) => {\r\n // Get the index of the current tab in the tabs node list\r\n const index = Array.prototype.indexOf.call(tabs, e.currentTarget);\r\n // Work out which key the user is pressing and\r\n // Calculate the new tab's index where appropriate\r\n let dir: number | string | null = null;\r\n if (e.key === 'ArrowLeft') {\r\n dir = index - 1;\r\n }\r\n if (e.key === 'ArrowRight') {\r\n dir = index + 1;\r\n }\r\n if (e.key === 'ArrowDown') {\r\n dir = 'down';\r\n }\r\n if (dir !== null) {\r\n e.preventDefault();\r\n // If the down key is pressed, move focus to the open panel,\r\n // otherwise switch to the adjacent tab\r\n if (dir === 'down') {\r\n panels[i].focus();\r\n } else if (tabs[dir]) {\r\n // eslint-disable-next-line max-len\r\n switchTab(tabs, panels, e.currentTarget as Element, tabs[dir], tabbed.classList, true, (tabIndex) => {\r\n callback(tabIndex);\r\n });\r\n }\r\n }\r\n };\r\n tab.removeEventListener('keydown', tabKeyEvent);\r\n tab.addEventListener('keydown', tabKeyEvent);\r\n });\r\n\r\n // Add tab panel semantics and hide them all\r\n panels.forEach((panel: HTMLElement, i: number) => {\r\n panel.setAttribute('tabindex', '-1');\r\n panel.setAttribute('aria-labelledby', tabs[i].id);\r\n // eslint-disable-next-line no-param-reassign\r\n panel.hidden = true;\r\n panel.setAttribute('role', 'tabpanel');\r\n });\r\n\r\n // Initially activate the first tab and reveal the first tab panel\r\n if (initial > -1) {\r\n switchTab(tabs, panels, null, tabs[initial], tabbed.classList, focus);\r\n }\r\n};\r\n\r\nconst setTabs = (tabbedObjects: ITabbedObject[]): void => {\r\n tabbedObjects.forEach((tabObject: ITabbedObject, key: number): void => {\r\n const { rendered, domElement } = tabObject;\r\n if (isBelowViewportLimit(domElement.classList)) {\r\n if (!rendered) {\r\n const focus = domElement.getAttribute('data-focus-onload');\r\n const dataInitial = domElement.getAttribute('data-initial-tab');\r\n const initial = dataInitial ? parseInt(dataInitial, 10) : 0;\r\n setTabbedContent(key, domElement, initial, focus !== 'false');\r\n tabObject.rendered = true;\r\n }\r\n } else if (rendered) {\r\n destroyTabs(domElement);\r\n tabObject.rendered = false;\r\n }\r\n });\r\n};\r\n\r\nexport {\r\n setTabbedContent,\r\n isBelowViewportLimit,\r\n destroyTabs,\r\n destroySwitches,\r\n setTabs,\r\n};\r\n", "/* eslint-disable max-len */\r\n/* eslint-env browser */\r\n/* eslint-disable import/prefer-default-export */\r\n\r\nimport { isViewportBelow} from './helpers';\r\n\r\nconst setContentToggle = (\r\n content: Element,\r\n onClick?: ((content: HTMLElement, button: HTMLButtonElement) => void) | undefined,\r\n beforeCallback?: ((content: HTMLElement, button: HTMLButtonElement) => void) | undefined,\r\n afterCallback?: ((content: HTMLElement, button: HTMLButtonElement) => void) | undefined,\r\n): CleanUpPair[] => {\r\n const cleanUp: CleanUpPair[] = [];\r\n const setContentClose = (button: HTMLElement, contentClose: HTMLElement, focus: boolean): () => void => {\r\n if (focus) {\r\n contentClose.focus();\r\n }\r\n const click = () => {\r\n content.setAttribute('hidden', 'hidden');\r\n button.removeAttribute('hidden');\r\n button.setAttribute('aria-expanded', 'false');\r\n button.focus();\r\n };\r\n contentClose.addEventListener('click', click);\r\n return click;\r\n };\r\n\r\n const button = content?.parentElement?.querySelector('.content-toggle__toggle') as HTMLElement;\r\n const contentClose = content.querySelectorAll('.content-toggle__close');\r\n \r\n const setBPModiferClass = () => {\r\n if (isViewportBelow('--bp-medium') && content.classList.contains('content-toggle__content--always-show-on-medium')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n } \r\n else if (isViewportBelow('--bp-wide') && content.classList.contains('content-toggle__content--always-show-on-wide')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n } \r\n else if (isViewportBelow('--bp-max-width') && content.classList.contains('content-toggle__content--always-show-on-max-width')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n } \r\n else if (\r\n content.classList.contains('content-toggle__content--always-show-on-medium') ||\r\n content.classList.contains('content-toggle__content--always-show-on-wide') ||\r\n content.classList.contains('content-toggle__content--always-show-on-max-width')\r\n ){\r\n content.removeAttribute(\"hidden\");\r\n button.setAttribute(\"hidden\", \"hidden\");\r\n }\r\n }\r\n window.addEventListener('resize', () => {\r\n setBPModiferClass();\r\n });\r\n\r\n const setBPModifierPopupClass = () => {\r\n document.addEventListener('click', (event) => {\r\n const eventTarget = event.target as HTMLElement;\r\n const doesNotContainContent = !eventTarget.classList.contains('content-toggle__content')\r\n const doesNotContainButton = !eventTarget.classList.contains('content-toggle__toggle')\r\n const doesNotContainSpan = !eventTarget.classList.contains('profile-header__info__contact__toggle__button')\r\n if (doesNotContainContent && doesNotContainButton && doesNotContainSpan) {\r\n if (!isViewportBelow('--bp-medium') && content.classList.contains('content-toggle__content--is-popover--on-medium')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n console.log(1)\r\n } else if (!isViewportBelow('--bp-wide') && content.classList.contains('content-toggle__content--is-popover--on-wide')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n console.log(2)\r\n } else if (!isViewportBelow('--bp-max-width') && content.classList.contains('content-toggle__content--is-popover--on-max-width')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n console.log(3)\r\n }\r\n else if (content.classList.contains('content-toggle__content--is-popover')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n console.log(4)\r\n }\r\n }\r\n });\r\n }\r\n\r\n setBPModifierPopupClass(); \r\n setBPModiferClass();\r\n\r\n if (button) {\r\n const clickEvent = () => {\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n // Til toolbar: hvis man klikker p\u00E5 en knap, der ikke er foldet ud\r\n // S\u00E5 lukker vi alle \u00E5bne content-toggles\r\n if (typeof beforeCallback === 'function' && ariaExpanded === 'false') {\r\n beforeCallback(content as HTMLElement, button as HTMLButtonElement);\r\n }\r\n // Og s\u00E5 g\u00E5r vi i gang med folde-ud-logikken\r\n button.setAttribute('aria-expanded', ariaExpanded === 'false' ? 'true' : 'false');\r\n if (ariaExpanded === 'true') {\r\n content.setAttribute('hidden', 'hidden');\r\n } else {\r\n content.removeAttribute('hidden');\r\n }\r\n\r\n if (typeof onClick === 'function') {\r\n onClick(content as HTMLElement, button as HTMLButtonElement);\r\n }\r\n\r\n if (button.hasAttribute('aria-haspopup')) {\r\n button.setAttribute('hidden', 'hidden');\r\n contentClose.forEach((cc) => {\r\n setContentClose(button, cc as HTMLElement, true);\r\n });\r\n }\r\n\r\n // Det der sker efter folde-logikken\r\n if (typeof afterCallback === 'function') {\r\n afterCallback(content as HTMLElement, button as HTMLButtonElement);\r\n }\r\n };\r\n\r\n button.addEventListener('click', clickEvent);\r\n // Altid tilf\u00F8j denne f\u00F8rst!\r\n cleanUp.push({\r\n element: button,\r\n clickEvent,\r\n });\r\n\r\n contentClose.forEach((cc) => {\r\n const btnClick = setContentClose(button, cc as HTMLElement, false);\r\n cleanUp.push({\r\n element: cc,\r\n clickEvent: btnClick,\r\n });\r\n });\r\n }\r\n return cleanUp;\r\n};\r\n\r\nexport {\r\n setContentToggle, \r\n};\r\n", "/* eslint-disable max-len */\r\nimport { convertRemToPixels, isElementWithClassNameInEventPath, isViewportBelow } from './helpers';\r\n\r\nconst lockBodyScroll = (): void => {\r\n const body = document.querySelector('body');\r\n if (isViewportBelow('--bp-medium') || isViewportBelow('--bp-low-height')) {\r\n body?.classList.add('body--no-scroll');\r\n }\r\n};\r\n\r\nconst unlockBodyScroll = (): void => {\r\n const body = document.querySelector('body');\r\n body?.classList.remove('body--no-scroll');\r\n};\r\n\r\n/* eslint-env browser */\r\nconst closeAllContentTogglesInToolbar = (toolbar: HTMLElement): void => {\r\n const contentToggles = toolbar.querySelectorAll('.content-toggle__toggle');\r\n contentToggles.forEach((toggle) => {\r\n const content = toggle.parentElement?.querySelector('.content-toggle__content');\r\n toggle.setAttribute('aria-expanded', 'false');\r\n content?.setAttribute('hidden', 'hidden');\r\n });\r\n};\r\n\r\nconst setOverflow = (toolbarElement: Element): void => {\r\n if (!toolbarElement.classList.contains('toolbar--no-collapse')) {\r\n toolbarElement.classList.remove('toolbar--toggled');\r\n }\r\n toolbarElement.classList.remove('toolbar--fully-overflown');\r\n toolbarElement.classList.remove('toolbar--has-popout');\r\n const toolbarItemsParent = toolbarElement.querySelector('.toolbar__items');\r\n const toolbarItems = toolbarItemsParent?.children as HTMLCollection;\r\n const isOverflownClass = 'toolbar__item--is-overflown';\r\n const hasOverflowClass = 'toolbar--has-overflow';\r\n let hasOverflown = false;\r\n\r\n let overflownCount = 0;\r\n const addOverflowClass = (item: HTMLElement, index: number) => {\r\n if (item) {\r\n const top = item.offsetTop;\r\n if (top > 25) {\r\n item.classList.add(isOverflownClass);\r\n toolbarElement.classList.add(hasOverflowClass);\r\n hasOverflown = true;\r\n overflownCount += 1;\r\n } else {\r\n item.classList.remove(isOverflownClass);\r\n }\r\n\r\n if (!hasOverflown) {\r\n toolbarElement.classList.remove(hasOverflowClass);\r\n } else if (index - 1 >= 0) {\r\n addOverflowClass(toolbarItems[index - 1] as HTMLElement, index - 1);\r\n }\r\n }\r\n };\r\n\r\n addOverflowClass(toolbarItems[toolbarItems.length - 1] as HTMLElement, toolbarItems.length - 1);\r\n\r\n if (overflownCount > 0 && overflownCount === toolbarItems.length) {\r\n toolbarElement.classList.add('toolbar--fully-overflown');\r\n }\r\n};\r\n\r\nconst setToolbarToggle = (toolbar: HTMLElement): ExtendedCleanUpPair[] => {\r\n const cleanUp: ExtendedCleanUpPair[] = [];\r\n const buttons = toolbar.querySelectorAll('.toolbar__toggle');\r\n buttons.forEach((button) => {\r\n const clickEvent = () => {\r\n button?.parentElement?.classList.toggle('toolbar--toggled');\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n if (ariaExpanded !== 'true') {\r\n const focusable = 'a.toolbar__item--is-overflown, button.toolbar__item--is-overflown, input.toolbar__item--is-overflown, select.toolbar__item--is-overflown, .toolbar__item--is-overflown a, .toolbar__item--is-overflown button, .toolbar__item--is-overflown input, .toolbar__item--is-overflown select';\r\n const firstWithOverflow = button?.parentElement?.querySelector(focusable) as HTMLElement;\r\n if (firstWithOverflow) {\r\n setTimeout(() => {\r\n firstWithOverflow.focus();\r\n }, 0);\r\n }\r\n }\r\n button.setAttribute('aria-expanded', ariaExpanded === 'false' ? 'true' : 'false');\r\n };\r\n\r\n cleanUp.push({\r\n element: button,\r\n clickEvent,\r\n });\r\n button.addEventListener('click', clickEvent);\r\n });\r\n return cleanUp;\r\n};\r\n\r\nconst setToolbar = (\r\n toolbar: HTMLElement,\r\n onCloseContentToggle: (toolbarElement: HTMLElement) => void,\r\n setOverflowOnly = true,\r\n): ExtendedCleanUpPair[] => {\r\n let cleanUp: ExtendedCleanUpPair[] = [];\r\n\r\n setOverflow(toolbar);\r\n onCloseContentToggle(toolbar);\r\n cleanUp = cleanUp.concat(setToolbarToggle(toolbar));\r\n\r\n if (!setOverflowOnly) {\r\n const bodyClickEvent = (event: Event) => {\r\n if (!(event.target as HTMLElement).classList.contains('content-toggle__toggle')\r\n && !isElementWithClassNameInEventPath(event as MouseEvent, 'content-toggle__content')) {\r\n onCloseContentToggle(toolbar);\r\n }\r\n };\r\n\r\n const escKeyEvent = (event: Event) => {\r\n if ((event as KeyboardEvent).key === 'Escape') {\r\n if (event.target && (event.target as HTMLElement).getAttribute('type') !== 'search') {\r\n onCloseContentToggle(toolbar);\r\n }\r\n }\r\n };\r\n\r\n const body = document.querySelector('body');\r\n\r\n cleanUp.push({\r\n element: body as Element,\r\n clickEvent: bodyClickEvent,\r\n });\r\n\r\n cleanUp.push({\r\n element: window,\r\n keyUpEvent: escKeyEvent,\r\n });\r\n\r\n body?.addEventListener('click', bodyClickEvent);\r\n window.addEventListener('keyup', escKeyEvent);\r\n }\r\n\r\n return cleanUp;\r\n};\r\n\r\nconst findToolbar = (element: HTMLElement): HTMLElement => {\r\n const parent = element.parentElement;\r\n if (parent) {\r\n if (parent.classList.contains('toolbar')) {\r\n return parent;\r\n }\r\n return findToolbar(parent);\r\n }\r\n return element;\r\n};\r\n\r\nconst contentToggleEdgeHandling = (element: HTMLElement): void => {\r\n if (!isViewportBelow('--bp-medium') && !isViewportBelow('--bp-low-height')) {\r\n const allowedDistance = convertRemToPixels(parseInt(getComputedStyle(document.documentElement).getPropertyValue('--toolbar-popout-allowed-edge-distance').replace('rem,', ''), 10));\r\n const popoutX = parseInt(getComputedStyle(element).width.replace('px', ''), 10);\r\n const popoutWidth = element.getBoundingClientRect().x;\r\n\r\n const distance = document.body.offsetWidth - allowedDistance - popoutX - popoutWidth;\r\n\r\n if (distance < 0) {\r\n element.style.setProperty('--toolbar-popout-edge-overflow', `${distance}px`);\r\n }\r\n }\r\n};\r\n\r\nexport {\r\n setToolbar,\r\n setOverflow,\r\n findToolbar,\r\n closeAllContentTogglesInToolbar,\r\n contentToggleEdgeHandling,\r\n lockBodyScroll,\r\n unlockBodyScroll,\r\n};\r\n", "// Scroller 80% p\u00E5 horisontal scroll til h\u00F8jre og s\u00E6tter knappen disabled n\u00E5r man rammer bunden\r\nconst horizontalScrollButtonNext = (nextButtons: NodeListOf<Element>): void => {\r\n if (nextButtons) {\r\n nextButtons.forEach((nextButton) => {\r\n const topElem = nextButton?.parentElement?.parentElement?.parentElement?.parentElement;\r\n if (topElem) {\r\n const scrollElements = topElem.querySelectorAll('.horizontal-scroll__scrollable-content');\r\n const switch__segments = topElem.querySelectorAll('.switch__segment');\r\n scrollElements.forEach((scrollElement) => { \r\n if (scrollElement) {\r\n nextButton.addEventListener('click', () => {\r\n // Scroller 80% af den synlige bredde p\u00E5 horizontal scroll til h\u00F8jre\r\n const scrollAmount = 0.8 * scrollElement.clientWidth;\r\n scrollElement.scrollLeft += scrollAmount;\r\n });\r\n // G\u00F8r knappen aktiv hvis scroll har ramt bunden\r\n scrollElement.addEventListener('scroll', () => {\r\n if ((scrollElement.scrollLeft + scrollElement.clientWidth) >= (scrollElement.scrollWidth * 0.98)) {\r\n disableButton(nextButton);\r\n } else if (scrollElement.scrollLeft + scrollElement.clientWidth < scrollElement.scrollWidth) {\r\n activateButton(nextButton);\r\n }\r\n });\r\n // Reset af knap ved flere tabs af horizontal scroll\r\n if (switch__segments) {\r\n switch__segments.forEach(switch__segment => {\r\n switch__segment.addEventListener('click', () => {\r\n activateButton(nextButton);\r\n scrollElement.scrollLeft = 0;\r\n })\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n \r\n // Scroller 80% p\u00E5 horisontal scroll til venstre og s\u00E6tter knappen disabled n\u00E5r man rammer toppen\r\n const horizontalScrollButtonPrevious = (previousButtons: NodeListOf<Element>): void => {\r\n if (previousButtons) {\r\n previousButtons.forEach((previousButton) => {\r\n const topElem = previousButton?.parentElement?.parentElement?.parentElement?.parentElement;\r\n if (topElem) {\r\n const scrollElements = topElem.querySelectorAll('.horizontal-scroll__scrollable-content');\r\n const switch__segments = topElem.querySelectorAll('.switch__segment');\r\n scrollElements.forEach((scrollElement) => { \r\n if (scrollElement) {\r\n previousButton.addEventListener('click', () => {\r\n // Scroller 80% af den synlige bredde p\u00E5 horizontal scroll til venstre\r\n const scrollAmount = 0.8 * scrollElement.clientWidth;\r\n scrollElement.scrollLeft -= scrollAmount;\r\n });\r\n // G\u00F8r knappen aktiv hvis scroll har ramt toppen\r\n scrollElement.addEventListener('scroll', () => {\r\n if (scrollElement.scrollLeft <= 0) {\r\n disableButton(previousButton);\r\n } else if (scrollElement.scrollLeft > 0) {\r\n activateButton(previousButton);\r\n }\r\n });\r\n }\r\n // Reset af knap ved flere tabs af horizontal scroll\r\n if (switch__segments) {\r\n switch__segments.forEach(switch__segment => {\r\n switch__segment.addEventListener('click', () => {\r\n disableButton(previousButton);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n function activateButton(button) {\r\n button.classList.remove('visually-disabled');\r\n button.setAttribute('aria-disabled', 'false');\r\n }\r\n \r\n function disableButton(button) {\r\n button.classList.add('visually-disabled');\r\n button.setAttribute('aria-disabled', 'true');\r\n }\r\n\r\n export {\r\n horizontalScrollButtonNext,\r\n horizontalScrollButtonPrevious,\r\n };", "/* eslint-disable no-param-reassign */\r\n/* eslint-env browser */\r\nimport ready from '../components/ready';\r\nimport {\r\n setResponsiveNav,\r\n setResponsiveToggle,\r\n} from '../components/nav';\r\nimport { isElementWithClassNameInEventPath, setMetaThemeColor, setHorizontalScroll } from '../components/helpers';\r\nimport { setResponsiveTable } from '../components/table';\r\nimport { setTabs } from '../components/tabs';\r\nimport { setContentToggle } from '../components/content-toggle';\r\nimport {\r\n closeAllContentTogglesInToolbar,\r\n contentToggleEdgeHandling,\r\n findToolbar,\r\n lockBodyScroll,\r\n unlockBodyScroll,\r\n} from '../components/toolbar';\r\nimport { horizontalScrollButtonNext, horizontalScrollButtonPrevious } from '../components/horizontal-scroll-btn';\r\n\r\nlet windowInnerWidth = 0;\r\n\r\nready(() => {\r\n const tabbedContent = document.querySelectorAll('.tabbed-content');\r\n const tabbedObjects: ITabbedObject[] = [];\r\n tabbedContent.forEach((tab) => tabbedObjects.push({\r\n domElement: tab,\r\n rendered: false,\r\n }));\r\n setTabs(tabbedObjects);\r\n setMetaThemeColor();\r\n\r\n const navElements = document.querySelectorAll('.nav:not(.nav--vertical)');\r\n navElements.forEach((n) => setResponsiveNav(navElements, n));\r\n setResponsiveToggle(navElements);\r\n\r\n const tables = document.querySelectorAll('.table--wrap-medium-width, .table--wrap-default-width');\r\n tables.forEach((table) => setResponsiveTable(table));\r\n\r\n const toggles = document.querySelectorAll('.box .content-toggle__content, .profile-header .content-toggle__content, .design-documentation .content-toggle__content');\r\n toggles.forEach((toggle) => {\r\n setContentToggle(toggle);\r\n });\r\n\r\n // Hortizontal scroll buttons\r\n const scrollButtonsNext = document.querySelectorAll('.button.button--small.button--icon.button--icon--hide-label.icon-next');\r\n const scrollButtonsPrevious = document.querySelectorAll('.button.button--small.button--icon.button--icon--hide-label.icon-previous');\r\n horizontalScrollButtonNext(scrollButtonsNext);\r\n horizontalScrollButtonPrevious(scrollButtonsPrevious);\r\n\r\n const horizontalScroll = document.querySelectorAll('.horizontal-scroll');\r\n horizontalScroll.forEach((hs) => {\r\n setHorizontalScroll(hs as HTMLElement);\r\n window.addEventListener('resize', () => {\r\n setHorizontalScroll(hs as HTMLElement);\r\n });\r\n });\r\n\r\n const switchSegments = document.querySelectorAll('.switch__segment');\r\n switchSegments.forEach((switchSegment) => {\r\n switchSegment.addEventListener('click', () => {\r\n const horizontalScrollTabbed = document.querySelectorAll('.horizontal-scroll');\r\n horizontalScrollTabbed.forEach((hsTabbed) => {\r\n setHorizontalScroll(hsTabbed as HTMLElement);\r\n });\r\n });\r\n });\r\n \r\n // Kursuskatalog\r\n const togglesInToolbars = document.querySelectorAll('.toolbar .content-toggle__content');\r\n togglesInToolbars.forEach((toggle) => {\r\n setContentToggle(\r\n toggle,\r\n (popout: HTMLElement) => {\r\n contentToggleEdgeHandling(popout);\r\n lockBodyScroll();\r\n },\r\n (content: HTMLElement) => closeAllContentTogglesInToolbar(findToolbar(content)),\r\n (content: HTMLElement, button: HTMLButtonElement) => {\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n const toolbar = findToolbar(content);\r\n if (ariaExpanded === 'true') {\r\n toolbar?.classList.add('toolbar--has-popout');\r\n } else {\r\n toolbar?.classList.remove('toolbar--has-popout');\r\n }\r\n\r\n content.addEventListener('click', (event: MouseEvent) => {\r\n if ((event.target as HTMLElement).classList.contains('toolbar__popout')\r\n && !isElementWithClassNameInEventPath(event as MouseEvent, 'toolbar__filter__content')) {\r\n closeAllContentTogglesInToolbar(toolbar);\r\n unlockBodyScroll();\r\n }\r\n });\r\n },\r\n );\r\n });\r\n\r\n window.addEventListener('load', () => {\r\n windowInnerWidth = window.innerWidth;\r\n });\r\n\r\n window.addEventListener('resize', () => {\r\n if (windowInnerWidth > 0 && window.innerWidth !== windowInnerWidth) {\r\n windowInnerWidth = window.innerWidth;\r\n navElements.forEach((n) => setResponsiveNav(navElements, n));\r\n setTabs(tabbedObjects);\r\n }\r\n });\r\n});\r\n"],
5
- "mappings": "MACA,IAAMA,EAASC,GAAyB,CAClC,SAAS,aAAe,UAC1BA,EAAG,EAEH,SAAS,iBAAiB,mBAAoBA,CAAE,CAEpD,EAEOC,EAAQF,ECDf,IAAMG,EAAoC,CAACC,EAAmBC,IAA+B,CAC3F,IAAIC,EAAQ,GAEZ,OADaF,EAAM,aAAa,EAC3B,QAASG,GAAyB,CAChCA,EAAkB,WAChBA,EAAkB,UAAU,SAASF,CAAS,IACjDC,EAAQ,GAGd,CAAC,EACMA,CACT,EAEME,EAAoB,IAAY,CACpC,IAAMC,EAAO,SAAS,cAAc,MAAM,EAC1C,GAAIA,EAAM,CACR,IAAMC,EAAU,OAAO,iBAAiBD,CAAI,EAAE,iBAAiB,oBAAoB,EAC7EE,EAAe,SAAS,cAAc,0BAA0B,EACtE,GAAIA,EACFA,EAAa,QAAUD,MAClB,CACL,IAAME,EAAO,SAAS,cAAc,MAAM,EAC1CA,EAAK,KAAO,cACZA,EAAK,QAAUF,EACf,SAAS,qBAAqB,MAAM,EAAE,CAAC,EAAE,YAAYE,CAAI,CAC3D,CACF,CACF,EAEMC,EAAkB,IAAc,SAAS,OAAO,iBAAiB,SAAS,eAAe,EAAE,SAAS,QAAQ,KAAM,EAAE,EAAG,EAAE,EAGzHC,EAAsBC,GAAwBA,EAAM,GAEpDC,EAAmBC,GAAgC,CACvD,IAAMC,EAAgB,KAAK,IAAI,SAAS,gBAAgB,aAAe,EAAG,OAAO,YAAc,CAAC,EAC1FC,EAAkBL,EAAmB,SAAS,iBAAiB,SAAS,eAAe,EAAE,iBAAiBG,CAAU,EAAE,QAAQ,MAAO,EAAE,EAAG,EAAE,CAAC,EACnJ,OAAOC,EAAgBC,CACzB,EAQA,IAAMC,EAAcC,GAAkCA,EAAQ,cAAgBA,EAAQ,YAItF,IAAMC,EAAuBC,GAA+B,CAEtDA,EAAQ,UAAU,SAAS,gCAAgC,GAC7DA,EAAQ,UAAU,OAAO,gCAAgC,EAI3D,IAAIC,EAAUD,EAAQ,cAAc,kHAAkH,EAClJC,IAAY,MAAQ,CAACA,IACvBA,EAAUD,EAAQ,cAAc,2EAA2E,GAIzGC,IACGC,EAAWD,CAAsB,EAIpCA,GAAS,aAAa,WAAY,GAAG,GAHrCD,EAAQ,UAAU,IAAI,gCAAgC,EACtDC,GAAS,gBAAgB,UAAU,GAKzC,EC5EA,IAAME,EAAWC,GAAsC,CACrD,IAAMC,EAASD,EAAQ,cACvB,OAAIC,EACEA,EAAO,UAAU,SAAS,KAAK,EAC1BA,EAEFF,EAAQE,CAAM,EAEhBD,CACT,EAGME,EAAqB,CAACC,EAAkCC,EAA+B,OAAe,CAC1G,IAAMC,EAAkB,eACxBF,EAAY,QAASG,GAAM,CACzB,IAAMC,EAASD,EAAE,cAAc,cAAc,EACzCA,IAAMF,IACJE,EAAE,UAAU,SAASD,CAAe,IACtCE,EAAO,MAAM,EACbA,EAAO,aAAa,gBAAiB,OAAO,GAE9CD,EAAE,UAAU,OAAOD,CAAe,EAEtC,CAAC,CACH,EAEMG,EAAuBL,GAAoD,CAC/E,IAAMM,EAAcF,GAAwB,CAC1C,IAAMN,EAASF,EAAQQ,CAAM,EAEvBG,EAAWT,EAAO,cAAc,aAAa,EAC7CU,EAAcD,GAAU,cAAc,yBAAyB,EACrEA,GAAU,UAAU,IAAI,qBAAqB,EAC7C,IAAME,EAAeF,GAAU,cAAc,0BAA0B,EACnEE,GACFA,EAAa,MAAM,EAGrB,IAAMC,EAAqB,IAAM,CAC/BZ,EAAO,UAAU,OAAO,cAAc,EACtCS,GAAU,UAAU,OAAO,qBAAqB,EAChDC,GAAa,oBAAoB,gBAAiBE,CAAkB,CACtE,EAEA,OAAAF,GAAa,iBAAiB,gBAAiBE,CAAkB,EAC1DZ,CACT,EAEMa,EAAyB,CAAC,EAGhC,OADe,SAAS,iBAAiB,cAAc,EAChD,QAASP,GAAW,CACzB,IAAMQ,EAAa,IAAM,CACvB,IAAMC,EAAMP,EAAWF,CAAqB,EACtCU,EAAeV,EAAO,aAAa,eAAe,EACxDA,EAAO,aAAa,gBAAiBU,IAAiB,QAAU,OAAS,OAAO,EAChFf,EAAmBC,EAAaa,CAAG,CACrC,EAEAF,EAAQ,KAAK,CACX,QAASP,EACT,WAAAQ,CACF,CAAC,EAEDR,EAAO,iBAAiB,QAASQ,CAAU,CAC7C,CAAC,EAEMD,CACT,EAEMI,EAAmB,CACvBf,EACAgB,IAC4B,CAC5B,IAAMd,EAAkB,eAClBe,EAAgB,aAEtBD,EAAW,UAAU,OAAOd,CAAe,EAC3C,IAAMgB,EAAiBF,EAAW,cAAc,IAAIC,CAAa,EAAE,EAEnE,GAAIC,EAAgB,CAClB,IAAMX,EAAWW,EAAe,iBAAiB,YAAY,EACvDC,EAAmB,0BACnBC,EAAmB,oBACnBC,EAAgB,oBAClBC,EAAe,GAEnB,QAASC,EAAIhB,EAAS,OAAS,EAAGgB,GAAK,EAAGA,GAAK,EAAG,CAChD,IAAMV,EAAMN,EAASgB,CAAC,EACVV,EAAI,UAEN,GACRA,EAAI,UAAU,IAAIM,CAAgB,EAClCH,EAAW,UAAU,IAAII,CAAgB,EACzCE,EAAe,IACLT,EAAI,UAAU,SAASQ,CAAa,GAC9CR,EAAI,UAAU,OAAOM,CAAgB,CAEzC,CAEA,GAAI,CAACG,EAAc,CACjBN,EAAW,UAAU,OAAOI,CAAgB,EAC5C,IAAMI,EAAWR,EAAW,cAAc,IAAIK,CAAa,EAAE,EACzDG,GACFA,EAAS,UAAU,OAAOL,CAAgB,CAE9C,CACF,CAGA,IAAMM,EAAkBC,GAAa,CAC/B,CAAEA,EAAE,OAAuB,UAAU,SAAS,aAAa,GAC1D,CAACC,EAAkCD,EAAiBT,CAAa,GACpElB,EAAmBC,CAAW,CAElC,EAEA,gBAAS,cAAc,MAAM,GAAG,iBAAiB,QAASyB,CAAc,EAEjE,CACL,QAAS,SAAS,cAAc,MAAM,EACtC,WAAYA,CACd,CACF,EC7HA,IAAMG,EAAsBC,GAAyB,CACnD,IAAMC,EAAOD,EAAM,cAAc,OAAO,EAClCE,EAAOF,EAAM,cAAc,OAAO,EAClCG,EAAOH,EAAM,cAAc,OAAO,EAExC,GAAIC,EAAM,CACR,IAAMG,EAAoB,CAAC,EACfH,EAAK,iBAAiB,IAAI,EAClC,QAASI,GAAM,CACZA,EAAE,UAAU,SAAS,+BAA+B,EAGvDD,EAAQ,KAAK,EAAE,EAFfA,EAAQ,KAAKC,EAAE,SAAS,CAI5B,CAAC,EAED,IAAMC,EAA2C,CAAC,EAE9CJ,GACFI,EAAc,KAAKJ,CAAI,EAErBC,GACFG,EAAc,KAAKH,CAAI,EAGzBG,EAAc,QAASC,GAAO,CACfA,EAAG,iBAAiB,IAAI,EAChC,QAASC,GAAO,CACLA,EAAG,iBAAiB,QAAQ,EACpC,QAAQ,CAACC,EAAMC,IAAM,CACrBN,EAAQM,CAAC,GAEXD,EAAK,aAAa,aAAcL,EAAQM,CAAC,CAAC,CAE9C,CAAC,CACH,CAAC,CACH,CAAC,CACH,CACF,ECjCA,IAAMC,EAAgCC,GAChCA,EAAU,SAAS,2CAA2C,EACzD,SAAS,iBAAiB,SAAS,eAAe,EAAE,iBAAiB,aAAa,EAAE,QAAQ,MAAO,EAAE,EAAG,EAAE,EAE/GA,EAAU,SAAS,yCAAyC,EACvD,SAAS,iBAAiB,SAAS,eAAe,EAAE,iBAAiB,WAAW,EAAE,QAAQ,MAAO,EAAE,EAAG,EAAE,EAG1G,GAGHC,EAAwBD,GAAqC,CAEjE,IAAME,EADgB,KAAK,IAAI,SAAS,gBAAgB,aAAe,EAAG,OAAO,YAAc,CAAC,EAC7DC,EAAgB,EAC7CC,EAAaL,EAA6BC,CAAS,EACzD,OAAII,EAAa,GACRF,EAAaE,EAEf,EACT,EAEMC,EAAeC,GAA0B,CAE7C,IAAMC,EADUD,EAAO,cAAc,aAAa,GAC5B,iBAAiB,GAAG,EACpCE,EAAwB,CAAC,EACdF,EAAO,iBAAiB,SAAS,EACzC,QAASG,GAAY,CACxBA,EAAQ,aAAeH,GACzBE,EAAO,KAAKC,CAAO,CAEvB,CAAC,EACDF,GAAM,QAASG,GAAQ,CACrBA,EAAI,gBAAgB,eAAe,EACnCA,EAAI,UAAU,OAAO,mBAAmB,CAC1C,CAAC,EAEDF,EAAO,QAASG,GAAU,CACxBA,EAAM,OAAS,GACfA,EAAM,gBAAgB,MAAM,CAC9B,CAAC,CACH,EAuBA,IAAMC,EAAY,CAChBC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAQ,GAERC,EAAYC,GAAwB,QAAQ,IAAIA,CAAK,IAC5C,CACLF,GACFF,EAAO,MAAM,EAGfA,EAAO,gBAAgB,UAAU,EAEjCA,EAAO,aAAa,gBAAiB,MAAM,EAGvCA,EAAO,UAAU,SAAS,iBAAiB,EAC7CA,EAAO,UAAU,IAAI,yBAAyB,EAE9CA,EAAO,UAAU,IAAI,mBAAmB,EAGtCD,IACFA,EAAO,gBAAgB,eAAe,EACtCA,EAAO,aAAa,WAAY,IAAI,EAEhCA,EAAO,UAAU,SAAS,iBAAiB,EAC7CA,EAAO,UAAU,OAAO,yBAAyB,EAEjDA,EAAO,UAAU,OAAO,mBAAmB,GAI/C,IAAMK,EAAQ,MAAM,UAAU,QAAQ,KAAKP,EAAMG,CAAM,EAmBvD,GATiC,MAAM,KAAK,SAAS,iBAAiB,cAAcF,EAAOM,CAAK,EAAE,EAAE,IAAI,CAAC,EAC/F,QAASC,GAAS,CAC1BA,EAAK,UAAU,IAAI,mCAAmC,EACtDA,EAAK,OAAS,EAChB,CAAC,EAIDP,EAAOM,CAAK,EAAE,OAAS,GACnBL,EAAQ,CACV,IAAMO,EAAW,MAAM,UAAU,QAAQ,KAAKT,EAAME,CAAM,EAEtB,MAAM,KAAK,SAAS,iBAAiB,cAAcD,EAAOQ,CAAQ,EAAE,EAAE,IAAI,CAAC,EAClG,QAASD,GAAS,CAC7BA,EAAK,UAAU,OAAO,mCAAmC,EACzDA,EAAK,OAAS,EAChB,CAAC,EAODP,EAAOQ,CAAQ,EAAE,OAAS,EAC5B,CAGAN,EAAO,cAAc,IAAI,YAAY,aAAc,CACjD,QAAS,GACT,OAAQ,CAAE,IAAKI,CAAM,CACvB,CAAC,CAAC,EACFD,EAASC,CAAK,CAChB,EAEMG,EAAmB,CACvBC,EACAC,EACAC,EAAU,EACVR,EAAQ,GAERC,EAAYC,GAAkB,QAAQ,IAAIA,CAAK,IACtC,CACT,IAAMO,EAAUF,EAAO,cAAc,qBAAqB,EACpDZ,EAAOc,EAAQ,iBAAiB,GAAG,EACnCb,EAAwB,CAAC,EACdW,EAAO,iBAAiB,SAAS,EACzC,QAASG,GAAY,CACxBA,EAAQ,aAAeH,GACzBX,EAAO,KAAKc,CAAO,CAEvB,CAAC,EAED,IAAMC,EAAYJ,EAAO,cAAc,mCAAmC,EAC1E,GAAII,EAAW,CACb,IAAMC,EAAiB,IAAM,CAC3BH,EAAQ,OAAS,GACjBb,EAAO,QAASiB,GAAuB,CACrCA,EAAM,OAAS,EACjB,CAAC,CACH,EAEAF,EAAU,oBAAoB,QAASC,CAAc,EACrDD,EAAU,iBAAiB,QAASC,CAAc,CACpD,CAGAH,EAAQ,aAAa,OAAQ,SAAS,EAGtCd,EAAK,QAAQ,CAACmB,EAAKC,IAAM,CACvBD,EAAI,aAAa,OAAQ,KAAK,EAC9BA,EAAI,aAAa,KAAM,MAAMR,CAAG,IAAKS,EAAI,CAAE,EAAE,EAC7CD,EAAI,aAAa,WAAY,IAAI,EACjCA,EAAI,eAAe,aAAa,OAAQ,cAAc,EAGtD,IAAME,EAAiBC,GAAkB,CACvCA,EAAE,eAAe,EACjB,IAAMC,EAAaT,EAAQ,cAAc,iBAAiB,EACtDQ,EAAE,gBAAkBC,GAEtBxB,EAAUC,EAAMC,EAAQsB,EAAYD,EAAE,cAA8BV,EAAO,UAAW,GAAOY,GAAa,CACxGlB,EAASkB,CAAQ,CACnB,CAAC,CAEL,EAEAL,EAAI,oBAAoB,QAASE,CAAa,EAC9CF,EAAI,iBAAiB,QAASE,CAAa,EAG3C,IAAMI,EAAeH,GAAqB,CAExC,IAAMf,EAAQ,MAAM,UAAU,QAAQ,KAAKP,EAAMsB,EAAE,aAAa,EAG5DI,EAA8B,KAC9BJ,EAAE,MAAQ,cACZI,EAAMnB,EAAQ,GAEZe,EAAE,MAAQ,eACZI,EAAMnB,EAAQ,GAEZe,EAAE,MAAQ,cACZI,EAAM,QAEJA,IAAQ,OACVJ,EAAE,eAAe,EAGbI,IAAQ,OACVzB,EAAOmB,CAAC,EAAE,MAAM,EACPpB,EAAK0B,CAAG,GAEjB3B,EAAUC,EAAMC,EAAQqB,EAAE,cAA0BtB,EAAK0B,CAAG,EAAGd,EAAO,UAAW,GAAOY,GAAa,CACnGlB,EAASkB,CAAQ,CACnB,CAAC,EAGP,EACAL,EAAI,oBAAoB,UAAWM,CAAW,EAC9CN,EAAI,iBAAiB,UAAWM,CAAW,CAC7C,CAAC,EAGDxB,EAAO,QAAQ,CAACiB,EAAoBE,IAAc,CAChDF,EAAM,aAAa,WAAY,IAAI,EACnCA,EAAM,aAAa,kBAAmBlB,EAAKoB,CAAC,EAAE,EAAE,EAEhDF,EAAM,OAAS,GACfA,EAAM,aAAa,OAAQ,UAAU,CACvC,CAAC,EAGGL,EAAU,IACZd,EAAUC,EAAMC,EAAQ,KAAMD,EAAKa,CAAO,EAAGD,EAAO,UAAWP,CAAK,CAExE,EAEMsB,EAAWC,GAAyC,CACxDA,EAAc,QAAQ,CAACC,EAA0BlB,IAAsB,CACrE,GAAM,CAAE,SAAAmB,EAAU,WAAAC,CAAW,EAAIF,EACjC,GAAIG,EAAqBD,EAAW,SAAS,GAC3C,GAAI,CAACD,EAAU,CACb,IAAMzB,EAAQ0B,EAAW,aAAa,mBAAmB,EACnDE,EAAcF,EAAW,aAAa,kBAAkB,EACxDlB,EAAUoB,EAAc,SAASA,EAAa,EAAE,EAAI,EAC1DvB,EAAiBC,EAAKoB,EAAYlB,EAASR,IAAU,OAAO,EAC5DwB,EAAU,SAAW,EACvB,OACSC,IACTI,EAAYH,CAAU,EACtBF,EAAU,SAAW,GAEzB,CAAC,CACH,ECxQA,IAAMM,EAAmB,CACvBC,EACAC,EACAC,EACAC,IACkB,CAClB,IAAMC,EAAyB,CAAC,EAC1BC,EAAkB,CAACC,EAAqBC,EAA2BC,IAA+B,CAClGA,GACFD,EAAa,MAAM,EAErB,IAAME,EAAQ,IAAM,CAClBT,EAAQ,aAAa,SAAU,QAAQ,EACvCM,EAAO,gBAAgB,QAAQ,EAC/BA,EAAO,aAAa,gBAAiB,OAAO,EAC5CA,EAAO,MAAM,CACf,EACA,OAAAC,EAAa,iBAAiB,QAASE,CAAK,EACrCA,CACT,EAEMH,EAASN,GAAS,eAAe,cAAc,yBAAyB,EACxEO,EAAeP,EAAQ,iBAAiB,wBAAwB,EAEhEU,EAAoB,IAAM,CAC1BC,EAAgB,aAAa,GAAKX,EAAQ,UAAU,SAAS,gDAAgD,GAIxGW,EAAgB,WAAW,GAAKX,EAAQ,UAAU,SAAS,8CAA8C,GAIzGW,EAAgB,gBAAgB,GAAKX,EAAQ,UAAU,SAAS,mDAAmD,GAP1HM,EAAO,gBAAgB,QAAQ,EAC/BN,EAAQ,aAAa,SAAU,QAAQ,IAWzCA,EAAQ,UAAU,SAAS,gDAAgD,GAC3EA,EAAQ,UAAU,SAAS,8CAA8C,GACzEA,EAAQ,UAAU,SAAS,mDAAmD,KAE5EA,EAAQ,gBAAgB,QAAQ,EAChCM,EAAO,aAAa,SAAU,QAAQ,EAE1C,EA6CA,GA5CE,OAAO,iBAAiB,SAAU,IAAM,CACtCI,EAAkB,CACpB,CAAC,GAE+B,IAAM,CACpC,SAAS,iBAAiB,QAAUE,GAAU,CAC5C,IAAMC,EAAcD,EAAM,OACpBE,EAAwB,CAACD,EAAY,UAAU,SAAS,yBAAyB,EACjFE,EAAuB,CAACF,EAAY,UAAU,SAAS,wBAAwB,EAC/EG,EAAqB,CAACH,EAAY,UAAU,SAAS,+CAA+C,EACtGC,GAAyBC,GAAwBC,IAC/C,CAACL,EAAgB,aAAa,GAAKX,EAAQ,UAAU,SAAS,gDAAgD,GAChHM,EAAO,gBAAgB,QAAQ,EAC/BN,EAAQ,aAAa,SAAU,QAAQ,EACvCM,EAAO,aAAa,gBAAiB,OAAO,EAC5CA,EAAO,MAAM,EACb,QAAQ,IAAI,CAAC,GACJ,CAACK,EAAgB,WAAW,GAAKX,EAAQ,UAAU,SAAS,8CAA8C,GACnHM,EAAO,gBAAgB,QAAQ,EAC/BN,EAAQ,aAAa,SAAU,QAAQ,EACvCM,EAAO,aAAa,gBAAiB,OAAO,EAC5CA,EAAO,MAAM,EACb,QAAQ,IAAI,CAAC,GACJ,CAACK,EAAgB,gBAAgB,GAAKX,EAAQ,UAAU,SAAS,mDAAmD,GAC7HM,EAAO,gBAAgB,QAAQ,EAC/BN,EAAQ,aAAa,SAAU,QAAQ,EACvCM,EAAO,aAAa,gBAAiB,OAAO,EAC5CA,EAAO,MAAM,EACb,QAAQ,IAAI,CAAC,GAENN,EAAQ,UAAU,SAAS,qCAAqC,IACvEM,EAAO,gBAAgB,QAAQ,EAC/BN,EAAQ,aAAa,SAAU,QAAQ,EACvCM,EAAO,aAAa,gBAAiB,OAAO,EAC5CA,EAAO,MAAM,EACb,QAAQ,IAAI,CAAC,GAGnB,CAAC,CACH,GAEsB,EACxBI,EAAkB,EAEdJ,EAAQ,CACV,IAAMW,EAAa,IAAM,CACvB,IAAMC,EAAeZ,EAAO,aAAa,eAAe,EAGpD,OAAOJ,GAAmB,YAAcgB,IAAiB,SAC3DhB,EAAeF,EAAwBM,CAA2B,EAGpEA,EAAO,aAAa,gBAAiBY,IAAiB,QAAU,OAAS,OAAO,EAC5EA,IAAiB,OACnBlB,EAAQ,aAAa,SAAU,QAAQ,EAEvCA,EAAQ,gBAAgB,QAAQ,EAG9B,OAAOC,GAAY,YACrBA,EAAQD,EAAwBM,CAA2B,EAGzDA,EAAO,aAAa,eAAe,IACrCA,EAAO,aAAa,SAAU,QAAQ,EACtCC,EAAa,QAASY,GAAO,CAC3Bd,EAAgBC,EAAQa,EAAmB,EAAI,CACjD,CAAC,GAIC,OAAOhB,GAAkB,YAC3BA,EAAcH,EAAwBM,CAA2B,CAErE,EAEAA,EAAO,iBAAiB,QAASW,CAAU,EAE3Cb,EAAQ,KAAK,CACX,QAASE,EACT,WAAAW,CACF,CAAC,EAEDV,EAAa,QAASY,GAAO,CAC3B,IAAMC,EAAWf,EAAgBC,EAAQa,EAAmB,EAAK,EACjEf,EAAQ,KAAK,CACX,QAASe,EACT,WAAYC,CACd,CAAC,CACH,CAAC,CACH,CACA,OAAOhB,CACT,EC9IA,IAAMiB,EAAiB,IAAY,CACjC,IAAMC,EAAO,SAAS,cAAc,MAAM,GACtCC,EAAgB,aAAa,GAAKA,EAAgB,iBAAiB,IACrED,GAAM,UAAU,IAAI,iBAAiB,CAEzC,EAEME,EAAmB,IAAY,CACtB,SAAS,cAAc,MAAM,GACpC,UAAU,OAAO,iBAAiB,CAC1C,EAGMC,EAAmCC,GAA+B,CAC/CA,EAAQ,iBAAiB,yBAAyB,EAC1D,QAASC,GAAW,CACjC,IAAMC,EAAUD,EAAO,eAAe,cAAc,0BAA0B,EAC9EA,EAAO,aAAa,gBAAiB,OAAO,EAC5CC,GAAS,aAAa,SAAU,QAAQ,CAC1C,CAAC,CACH,EAoHA,IAAMC,EAAeC,GAAsC,CACzD,IAAMC,EAASD,EAAQ,cACvB,OAAIC,EACEA,EAAO,UAAU,SAAS,SAAS,EAC9BA,EAEFF,EAAYE,CAAM,EAEpBD,CACT,EAEME,EAA6BF,GAA+B,CAChE,GAAI,CAACG,EAAgB,aAAa,GAAK,CAACA,EAAgB,iBAAiB,EAAG,CAC1E,IAAMC,EAAkBC,EAAmB,SAAS,iBAAiB,SAAS,eAAe,EAAE,iBAAiB,wCAAwC,EAAE,QAAQ,OAAQ,EAAE,EAAG,EAAE,CAAC,EAC5KC,EAAU,SAAS,iBAAiBN,CAAO,EAAE,MAAM,QAAQ,KAAM,EAAE,EAAG,EAAE,EACxEO,EAAcP,EAAQ,sBAAsB,EAAE,EAE9CQ,EAAW,SAAS,KAAK,YAAcJ,EAAkBE,EAAUC,EAErEC,EAAW,GACbR,EAAQ,MAAM,YAAY,iCAAkC,GAAGQ,CAAQ,IAAI,CAE/E,CACF,ECjKA,IAAMC,EAA8BC,GAA2C,CACvEA,GACFA,EAAY,QAASC,GAAe,CAClC,IAAMC,EAAUD,GAAY,eAAe,eAAe,eAAe,cACzE,GAAIC,EAAS,CACX,IAAMC,EAAiBD,EAAQ,iBAAiB,wCAAwC,EAClFE,EAAmBF,EAAQ,iBAAiB,kBAAkB,EACpEC,EAAe,QAASE,GAAkB,CACpCA,IACFJ,EAAW,iBAAiB,QAAS,IAAM,CAEzC,IAAMK,EAAe,GAAMD,EAAc,YACzCA,EAAc,YAAcC,CAC9B,CAAC,EAEDD,EAAc,iBAAiB,SAAU,IAAM,CACxCA,EAAc,WAAaA,EAAc,aAAiBA,EAAc,YAAc,IACzFE,EAAcN,CAAU,EACfI,EAAc,WAAaA,EAAc,YAAcA,EAAc,aAC9EG,EAAeP,CAAU,CAE7B,CAAC,EAEGG,GACFA,EAAiB,QAAQK,GAAmB,CAC1CA,EAAgB,iBAAiB,QAAS,IAAM,CAC9CD,EAAeP,CAAU,EACzBI,EAAc,WAAa,CAC7B,CAAC,CACH,CAAC,EAGP,CAAC,CACH,CACF,CAAC,CAEL,EAGMK,EAAkCC,GAA+C,CACjFA,GACFA,EAAgB,QAASC,GAAmB,CAC1C,IAAMV,EAAUU,GAAgB,eAAe,eAAe,eAAe,cAC7E,GAAIV,EAAS,CACX,IAAMC,EAAiBD,EAAQ,iBAAiB,wCAAwC,EAClFE,EAAmBF,EAAQ,iBAAiB,kBAAkB,EACpEC,EAAe,QAASE,GAAkB,CACpCA,IACFO,EAAe,iBAAiB,QAAS,IAAM,CAE7C,IAAMN,EAAe,GAAMD,EAAc,YACzCA,EAAc,YAAcC,CAC9B,CAAC,EAEDD,EAAc,iBAAiB,SAAU,IAAM,CACzCA,EAAc,YAAc,EAC9BE,EAAcK,CAAc,EACnBP,EAAc,WAAa,GACpCG,EAAeI,CAAc,CAEjC,CAAC,GAGGR,GACFA,EAAiB,QAAQK,GAAmB,CAC1CA,EAAgB,iBAAiB,QAAS,IAAM,CAC9CF,EAAcK,CAAc,CAC9B,CAAC,CACH,CAAC,CAEP,CAAC,CACH,CACF,CAAC,CAEL,EAEA,SAASJ,EAAeK,EAAQ,CAC9BA,EAAO,UAAU,OAAO,mBAAmB,EAC3CA,EAAO,aAAa,gBAAiB,OAAO,CAC9C,CAEA,SAASN,EAAcM,EAAQ,CAC7BA,EAAO,UAAU,IAAI,mBAAmB,EACxCA,EAAO,aAAa,gBAAiB,MAAM,CAC7C,CCjEF,IAAIC,EAAmB,EAEvBC,EAAM,IAAM,CACV,IAAMC,EAAgB,SAAS,iBAAiB,iBAAiB,EAC3DC,EAAiC,CAAC,EACxCD,EAAc,QAASE,GAAQD,EAAc,KAAK,CAChD,WAAYC,EACZ,SAAU,EACZ,CAAC,CAAC,EACFC,EAAQF,CAAa,EACrBG,EAAkB,EAElB,IAAMC,EAAc,SAAS,iBAAiB,0BAA0B,EACxEA,EAAY,QAASC,GAAMC,EAAiBF,EAAaC,CAAC,CAAC,EAC3DE,EAAoBH,CAAW,EAEhB,SAAS,iBAAiB,uDAAuD,EACzF,QAASI,GAAUC,EAAmBD,CAAK,CAAC,EAEnC,SAAS,iBAAiB,yHAAyH,EAC3J,QAASE,GAAW,CAC1BC,EAAiBD,CAAM,CACzB,CAAC,EAGD,IAAME,EAAoB,SAAS,iBAAiB,uEAAuE,EACrHC,EAAwB,SAAS,iBAAiB,2EAA2E,EACnIC,EAA2BF,CAAiB,EAC5CG,EAA+BF,CAAqB,EAE3B,SAAS,iBAAiB,oBAAoB,EACtD,QAASG,GAAO,CAC/BC,EAAoBD,CAAiB,EACrC,OAAO,iBAAiB,SAAU,IAAM,CACtCC,EAAoBD,CAAiB,CACvC,CAAC,CACH,CAAC,EAEsB,SAAS,iBAAiB,kBAAkB,EACpD,QAASE,GAAkB,CACxCA,EAAc,iBAAiB,QAAS,IAAM,CACb,SAAS,iBAAiB,oBAAoB,EACtD,QAASC,GAAa,CAC3CF,EAAoBE,CAAuB,CAC7C,CAAC,CACH,CAAC,CACH,CAAC,EAGyB,SAAS,iBAAiB,mCAAmC,EACrE,QAAST,GAAW,CACpCC,EACED,EACCU,GAAwB,CACvBC,EAA0BD,CAAM,EAChCE,EAAe,CACjB,EACCC,GAAyBC,EAAgCC,EAAYF,CAAO,CAAC,EAC9E,CAACA,EAAsBG,IAA8B,CACnD,IAAMC,EAAeD,EAAO,aAAa,eAAe,EAClDE,EAAUH,EAAYF,CAAO,EAC/BI,IAAiB,OACnBC,GAAS,UAAU,IAAI,qBAAqB,EAE5CA,GAAS,UAAU,OAAO,qBAAqB,EAGjDL,EAAQ,iBAAiB,QAAUM,GAAsB,CAClDA,EAAM,OAAuB,UAAU,SAAS,iBAAiB,GACjE,CAACC,EAAkCD,EAAqB,0BAA0B,IACrFL,EAAgCI,CAAO,EACvCG,EAAiB,EAErB,CAAC,CACH,CACF,CACF,CAAC,EAED,OAAO,iBAAiB,OAAQ,IAAM,CACpClC,EAAmB,OAAO,UAC5B,CAAC,EAED,OAAO,iBAAiB,SAAU,IAAM,CAClCA,EAAmB,GAAK,OAAO,aAAeA,IAChDA,EAAmB,OAAO,WAC1BO,EAAY,QAASC,GAAMC,EAAiBF,EAAaC,CAAC,CAAC,EAC3DH,EAAQF,CAAa,EAEzB,CAAC,CACH,CAAC",
6
- "names": ["ready", "fn", "ready_default", "isElementWithClassNameInEventPath", "event", "className", "found", "p", "setMetaThemeColor", "body", "bgColor", "existingMeta", "meta", "getBaseFontSize", "convertRemToPixels", "rem", "isViewportBelow", "mediaQuery", "viewportWidth", "mediaQueryValue", "overflowsX", "element", "setHorizontalScroll", "element", "content", "overflowsX", "findNav", "element", "parent", "closeResponsiveNav", "navElements", "keepOpen", "navToggledClass", "n", "button", "setResponsiveToggle", "toggleMenu", "navItems", "lastNavItem", "firstElement", "transitionListener", "cleanUp", "clickEvent", "nav", "ariaExpanded", "setResponsiveNav", "navElement", "navItemsClass", "navItemsParent", "isOverflownClass", "hasOverflowClass", "isActiveClass", "hasOverflown", "i", "isActive", "bodyClickEvent", "e", "isElementWithClassNameInEventPath", "setResponsiveTable", "table", "head", "body", "foot", "headers", "h", "rowContainers", "rc", "tr", "cell", "i", "getMediaWidthBasedOnModifier", "classList", "isBelowViewportLimit", "widthInRem", "getBaseFontSize", "mediaWidth", "destroyTabs", "tabbed", "tabs", "panels", "section", "tab", "panel", "switchTab", "tabs", "panels", "oldTab", "newTab", "_", "focus", "callback", "index", "link", "oldIndex", "setTabbedContent", "key", "tabbed", "initial", "tablist", "section", "expandAll", "expandAllEvent", "panel", "tab", "i", "tabClickEvent", "e", "currentTab", "tabIndex", "tabKeyEvent", "dir", "setTabs", "tabbedObjects", "tabObject", "rendered", "domElement", "isBelowViewportLimit", "dataInitial", "destroyTabs", "setContentToggle", "content", "onClick", "beforeCallback", "afterCallback", "cleanUp", "setContentClose", "button", "contentClose", "focus", "click", "setBPModiferClass", "isViewportBelow", "event", "eventTarget", "doesNotContainContent", "doesNotContainButton", "doesNotContainSpan", "clickEvent", "ariaExpanded", "cc", "btnClick", "lockBodyScroll", "body", "isViewportBelow", "unlockBodyScroll", "closeAllContentTogglesInToolbar", "toolbar", "toggle", "content", "findToolbar", "element", "parent", "contentToggleEdgeHandling", "isViewportBelow", "allowedDistance", "convertRemToPixels", "popoutX", "popoutWidth", "distance", "horizontalScrollButtonNext", "nextButtons", "nextButton", "topElem", "scrollElements", "switch__segments", "scrollElement", "scrollAmount", "disableButton", "activateButton", "switch__segment", "horizontalScrollButtonPrevious", "previousButtons", "previousButton", "button", "windowInnerWidth", "ready_default", "tabbedContent", "tabbedObjects", "tab", "setTabs", "setMetaThemeColor", "navElements", "n", "setResponsiveNav", "setResponsiveToggle", "table", "setResponsiveTable", "toggle", "setContentToggle", "scrollButtonsNext", "scrollButtonsPrevious", "horizontalScrollButtonNext", "horizontalScrollButtonPrevious", "hs", "setHorizontalScroll", "switchSegment", "hsTabbed", "popout", "contentToggleEdgeHandling", "lockBodyScroll", "content", "closeAllContentTogglesInToolbar", "findToolbar", "button", "ariaExpanded", "toolbar", "event", "isElementWithClassNameInEventPath", "unlockBodyScroll"]
7
- }
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../source/js/components/ready.ts", "../../source/js/components/helpers.ts", "../../source/js/components/nav.ts", "../../source/js/components/table.ts", "../../source/js/components/tabs.ts", "../../source/js/components/content-toggle.ts", "../../source/js/components/toolbar.ts", "../../source/js/components/horizontal-scroll-btn.ts", "../../source/js/production/app.ts"],
4
+ "sourcesContent": ["/* eslint-env browser */\r\nconst ready = (fn: () => void): void => {\r\n if (document.readyState !== 'loading') {\r\n fn();\r\n } else {\r\n document.addEventListener('DOMContentLoaded', fn);\r\n }\r\n};\r\n\r\nexport default ready;\r\n", "/* eslint-disable wrap-iife */\r\n/* eslint-disable import/prefer-default-export */\r\n/* eslint-env browser */\r\nconst copyToClipboard = (str: string): void => {\r\n // eslint-disable-next-line no-console\r\n navigator.clipboard.writeText(str).then(() => console.log(`${str} written to clipboard`));\r\n};\r\n\r\nconst isElementWithClassNameInEventPath = (event: MouseEvent, className: string): boolean => {\r\n let found = false;\r\n const path = event.composedPath();\r\n path.forEach((p: EventTarget): void => {\r\n if ((p as HTMLElement).classList) {\r\n if ((p as HTMLElement).classList.contains(className)) {\r\n found = true;\r\n }\r\n }\r\n });\r\n return found;\r\n};\r\n\r\nconst setMetaThemeColor = (): void => {\r\n const body = document.querySelector('body');\r\n if (body) {\r\n const bgColor = window.getComputedStyle(body).getPropertyValue('--color-background');\r\n const existingMeta = document.querySelector('meta[name=\"theme-color\"]') as HTMLMetaElement;\r\n if (existingMeta) {\r\n existingMeta.content = bgColor;\r\n } else {\r\n const meta = document.createElement('meta');\r\n meta.name = 'theme-color';\r\n meta.content = bgColor;\r\n document.getElementsByTagName('head')[0].appendChild(meta);\r\n }\r\n }\r\n};\r\n\r\nconst getBaseFontSize = (): number => parseInt(window.getComputedStyle(document.documentElement).fontSize.replace('px', ''), 10);\r\n\r\n// eslint-disable-next-line max-len\r\nconst convertRemToPixels = (rem: number): number => rem * 16;\r\n\r\nconst isViewportBelow = (mediaQuery: string): boolean => {\r\n const viewportWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n const mediaQueryValue = convertRemToPixels(parseInt(getComputedStyle(document.documentElement).getPropertyValue(mediaQuery).replace('rem', ''), 10));\r\n return viewportWidth < mediaQueryValue;\r\n};\r\n\r\nconst setScrollbarWidthVariable = (): void => {\r\n const scrollbarWidth = window.innerWidth - document.body.clientWidth;\r\n document.documentElement.style.setProperty('--vertical-scrollbar-width', `${scrollbarWidth}px`);\r\n};\r\n\r\nconst overflowsY = (element: HTMLElement): boolean => element.offsetHeight !== element.scrollHeight;\r\nconst overflowsX = (element: HTMLElement): boolean => element.offsetWidth !== element.scrollWidth;\r\n// eslint-disable-next-line max-len\r\nconst elementOverflows = (element: HTMLElement): boolean => overflowsY(element) || overflowsX(element);\r\n\r\nconst setHorizontalScroll = (element: HTMLElement): void => {\r\n // Checks if the element already contains no-overflow\r\n if (element.classList.contains('horizontal-scroll--no-overflow')) {\r\n element.classList.remove('horizontal-scroll--no-overflow');\r\n }\r\n\r\n // Defines of content of horizontal scroll \r\n let content = element.querySelector('.horizontal-scroll--check-overflow .tabbed-content__section:not([hidden]) .horizontal-scroll__scrollable-content');\r\n if (content === null && !content) {\r\n content = element.querySelector('.horizontal-scroll--check-overflow .horizontal-scroll__scrollable-content');\r\n }\r\n\r\n // Checks if no-overflow should be added or not depending on content width\r\n if (content) {\r\n if (!overflowsX(content as HTMLElement)) {\r\n element.classList.add('horizontal-scroll--no-overflow');\r\n content?.removeAttribute('tabindex');\r\n } else {\r\n content?.setAttribute('tabindex', '0');\r\n }\r\n }\r\n};\r\n\r\nconst focusableSelector = 'a[href]:not([tabindex=\"-1\"]), area[href]:not([tabindex=\"-1\"]), input:not([disabled]):not([tabindex=\"-1\"]), select:not([disabled]):not([tabindex=\"-1\"]), textarea:not([disabled]):not([tabindex=\"-1\"]), button:not([disabled]):not([tabindex=\"-1\"]), iframe:not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"]), [contentEditable=true]:not([tabindex=\"-1\"])';\r\n\r\nexport {\r\n copyToClipboard,\r\n isElementWithClassNameInEventPath,\r\n getBaseFontSize,\r\n setMetaThemeColor,\r\n isViewportBelow,\r\n convertRemToPixels,\r\n setScrollbarWidthVariable,\r\n overflowsX,\r\n overflowsY,\r\n elementOverflows,\r\n setHorizontalScroll,\r\n focusableSelector,\r\n};\r\n", "/* eslint-env browser */\r\nimport { copyToClipboard, isElementWithClassNameInEventPath } from './helpers';\r\n\r\nconst findNav = (element: HTMLElement): HTMLElement => {\r\n const parent = element.parentElement;\r\n if (parent) {\r\n if (parent.classList.contains('nav')) {\r\n return parent;\r\n }\r\n return findNav(parent);\r\n }\r\n return element;\r\n};\r\n\r\n// eslint-disable-next-line max-len\r\nconst closeResponsiveNav = (navElements: NodeListOf<Element>, keepOpen: HTMLElement | null = null): void => {\r\n const navToggledClass = 'nav--toggled';\r\n navElements.forEach((n) => {\r\n const button = n.querySelector('.nav__toggle') as HTMLElement;\r\n if (n !== keepOpen) {\r\n if (n.classList.contains(navToggledClass)) {\r\n button.focus();\r\n button.setAttribute('aria-expanded', 'false');\r\n }\r\n n.classList.remove(navToggledClass);\r\n }\r\n });\r\n};\r\n\r\nconst setResponsiveToggle = (navElements: NodeListOf<Element>): CleanUpPair[] => {\r\n const toggleMenu = (button: HTMLElement) => {\r\n const parent = findNav(button);\r\n\r\n const navItems = parent.querySelector('.nav__items');\r\n const lastNavItem = navItems?.querySelector('.nav__item:last-of-type');\r\n navItems?.classList.add('nav__items--fadeout');\r\n const firstElement = navItems?.querySelector('.nav__item--is-overflown') as HTMLElement;\r\n if (firstElement) {\r\n firstElement.focus();\r\n }\r\n\r\n const transitionListener = () => {\r\n parent.classList.toggle('nav--toggled');\r\n navItems?.classList.remove('nav__items--fadeout');\r\n lastNavItem?.removeEventListener('transitionend', transitionListener);\r\n };\r\n\r\n lastNavItem?.addEventListener('transitionend', transitionListener);\r\n return parent;\r\n };\r\n\r\n const cleanUp: CleanUpPair[] = [];\r\n\r\n const toggle = document.querySelectorAll('.nav__toggle');\r\n toggle.forEach((button) => {\r\n const clickEvent = () => {\r\n const nav = toggleMenu(button as HTMLElement);\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n button.setAttribute('aria-expanded', ariaExpanded === 'false' ? 'true' : 'false');\r\n closeResponsiveNav(navElements, nav);\r\n };\r\n\r\n cleanUp.push({\r\n element: button,\r\n clickEvent,\r\n });\r\n\r\n button.addEventListener('click', clickEvent);\r\n });\r\n\r\n return cleanUp;\r\n};\r\n\r\nconst setResponsiveNav = (\r\n navElements: NodeListOf<Element>,\r\n navElement: Element,\r\n): SetResponsiveNavCleanUp => {\r\n const navToggledClass = 'nav--toggled';\r\n const navItemsClass = 'nav__items';\r\n // gitlab #117\r\n navElement.classList.remove(navToggledClass);\r\n const navItemsParent = navElement.querySelector(`.${navItemsClass}`);\r\n\r\n if (navItemsParent) {\r\n const navItems = navItemsParent.querySelectorAll('.nav__item');\r\n const isOverflownClass = 'nav__item--is-overflown';\r\n const hasOverflowClass = 'nav--has-overflow';\r\n const isActiveClass = 'nav__item--active';\r\n let hasOverflown = false;\r\n\r\n for (let i = navItems.length - 1; i >= 0; i -= 1) {\r\n const nav = navItems[i] as HTMLElement;\r\n const top = nav.offsetTop;\r\n\r\n if (top > 0) {\r\n nav.classList.add(isOverflownClass);\r\n navElement.classList.add(hasOverflowClass);\r\n hasOverflown = true;\r\n } else if (!nav.classList.contains(isActiveClass)) {\r\n nav.classList.remove(isOverflownClass);\r\n }\r\n }\r\n\r\n if (!hasOverflown) {\r\n navElement.classList.remove(hasOverflowClass);\r\n const isActive = navElement.querySelector(`.${isActiveClass}`);\r\n if (isActive) {\r\n isActive.classList.remove(isOverflownClass);\r\n }\r\n }\r\n }\r\n\r\n // gitlab #115\r\n const bodyClickEvent = (e: Event) => {\r\n if (!(e.target as HTMLElement).classList.contains('nav__toggle')\r\n && !isElementWithClassNameInEventPath(e as MouseEvent, navItemsClass)) {\r\n closeResponsiveNav(navElements);\r\n }\r\n };\r\n\r\n document.querySelector('body')?.addEventListener('click', bodyClickEvent);\r\n\r\n return {\r\n element: document.querySelector('body'),\r\n clickEvent: bodyClickEvent,\r\n };\r\n};\r\n\r\nconst closeSubNav = (buttons: NodeListOf<Element>, keepOpen: Element | null = null) => {\r\n const subNavClass = 'sub-nav--toggled';\r\n buttons.forEach((button) => {\r\n if (button !== keepOpen) {\r\n if (button?.parentElement?.classList.contains(subNavClass)) {\r\n (button as HTMLElement).focus();\r\n button.setAttribute('aria-expanded', 'false');\r\n }\r\n button?.parentElement?.classList.remove(subNavClass);\r\n }\r\n });\r\n};\r\n\r\nconst setSubNavToggle = (buttons: NodeListOf<Element>, button: Element): SetSubNavToggleCleanUp => {\r\n const subNavClass = 'sub-nav--toggled';\r\n const buttonClickEvent = () => {\r\n button?.parentElement?.classList.toggle(subNavClass);\r\n if (button?.parentElement?.classList.contains(subNavClass)) {\r\n button.setAttribute('aria-expanded', 'true');\r\n } else {\r\n button.setAttribute('aria-expanded', 'false');\r\n }\r\n closeSubNav(buttons, button);\r\n };\r\n\r\n button.addEventListener('click', buttonClickEvent);\r\n\r\n // gitlab #115\r\n const bodyClickEvent = (e: Event) => {\r\n if (!isElementWithClassNameInEventPath(e as MouseEvent, 'sub-nav')) {\r\n closeSubNav(buttons);\r\n }\r\n };\r\n\r\n document.querySelector('body')?.addEventListener('click', bodyClickEvent);\r\n return {\r\n buttonClickEvent,\r\n element: document.querySelector('body'),\r\n bodyClickEvent,\r\n };\r\n};\r\n\r\nconst setClickMessage = ((\r\n text: string,\r\n copyElement: Element,\r\n clickElement: Element | null,\r\n ctcThis: HTMLElement | null,\r\n listener: () => void,\r\n): void => {\r\n if (ctcThis && clickElement) {\r\n // Vi kopierer teksten til clipboard\r\n copyToClipboard(ctcThis.innerText);\r\n copyElement.classList.add('copy-to-clipboard--confirm');\r\n if (copyElement === clickElement) {\r\n copyElement.classList.add('copy-to-clipboard--done');\r\n }\r\n // Laver en span, der viser, at teksten er kopieret\r\n const ctcThisMessage = document.createElement('span');\r\n ctcThisMessage.classList.add('copy-to-clipboard__this__confirm-message');\r\n ctcThisMessage.innerText = text;\r\n ctcThis.appendChild(ctcThisMessage);\r\n\r\n // Efter 1,2 sekunder fjerner vi beskeden igen\r\n clickElement.removeEventListener('click', listener);\r\n setTimeout(() => {\r\n copyElement.classList.remove('copy-to-clipboard--confirm');\r\n ctcThisMessage.remove();\r\n clickElement.addEventListener('click', listener);\r\n }, 1200);\r\n }\r\n});\r\n\r\nconst setCopyToClipboard = (element: HTMLElement, text = 'Kopieret!'): void => {\r\n const ctcThis = <HTMLElement>element.querySelector('.copy-to-clipboard__this');\r\n // Hvis det er en knap, s\u00E5 s\u00E6tter vi click event p\u00E5 knappen\r\n if ((element as HTMLButtonElement).type === 'button') {\r\n const listener = (): void => {\r\n setClickMessage(text, element, element, ctcThis, listener);\r\n };\r\n element.addEventListener('click', listener);\r\n // Hvis det ikke er en knap, finder vi knappen \"inde i\" elementet\r\n } else {\r\n const btn = element.querySelector('.copy-to-clipboard__execute');\r\n const listener = (): void => {\r\n setClickMessage(text, element, btn, ctcThis, listener);\r\n };\r\n btn?.addEventListener('click', listener);\r\n }\r\n};\r\n\r\nconst setSearchToggle = (navSearch: Element, button: Element): void => {\r\n const toggleClass = 'nav__search--toggled';\r\n button.addEventListener('click', () => {\r\n if (navSearch.classList.contains(toggleClass)) {\r\n button.setAttribute('aria-expanded', 'false');\r\n navSearch.classList.remove(toggleClass);\r\n } else {\r\n button.setAttribute('aria-expanded', 'true');\r\n navSearch.classList.add(toggleClass);\r\n }\r\n });\r\n};\r\n\r\nexport {\r\n findNav,\r\n setResponsiveToggle,\r\n setResponsiveNav,\r\n setSubNavToggle,\r\n setCopyToClipboard,\r\n setSearchToggle,\r\n};\r\n", "/* eslint-disable import/prefer-default-export */\r\nconst setResponsiveTable = (table: Element): void => {\r\n const head = table.querySelector('thead');\r\n const body = table.querySelector('tbody');\r\n const foot = table.querySelector('tfoot');\r\n\r\n if (head) {\r\n const headers: string[] = [];\r\n const ths = head.querySelectorAll('th');\r\n ths.forEach((h) => {\r\n if (!h.classList.contains('table__cell--self-explanatory')) {\r\n headers.push(h.innerHTML); // Because innerText inherits stuff like text-transform\r\n } else {\r\n headers.push(''); // If header is self explanatory we do not add it\r\n }\r\n });\r\n\r\n const rowContainers: HTMLTableSectionElement[] = [];\r\n // Table elements that possibly contains <tr>'s\r\n if (body) {\r\n rowContainers.push(body);\r\n }\r\n if (foot) {\r\n rowContainers.push(foot);\r\n }\r\n\r\n rowContainers.forEach((rc) => {\r\n const rows = rc.querySelectorAll('tr');\r\n rows.forEach((tr) => {\r\n const cells = tr.querySelectorAll('td, th');\r\n cells.forEach((cell, i) => {\r\n if (headers[i]) {\r\n // if header is self explanatory we skip (value of array index is '' which is falsy)\r\n cell.setAttribute('data-label', headers[i]);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n};\r\n\r\nexport {\r\n setResponsiveTable,\r\n};\r\n", "/* eslint-disable @typescript-eslint/no-empty-function */\r\n/* eslint-env browser */\r\n/* eslint-disable import/prefer-default-export */\r\n/* eslint-disable no-param-reassign */\r\nimport { getBaseFontSize } from './helpers';\r\n\r\nconst getMediaWidthBasedOnModifier = (classList: DOMTokenList): number => {\r\n if (classList.contains('tabbed-content--hide-tabs-on-medium-width')) {\r\n return parseInt(getComputedStyle(document.documentElement).getPropertyValue('--bp-medium').replace('rem', ''), 10);\r\n }\r\n if (classList.contains('tabbed-content--hide-tabs-on-wide-width')) {\r\n return parseInt(getComputedStyle(document.documentElement).getPropertyValue('--bp-wide').replace('rem', ''), 10);\r\n }\r\n\r\n return -1;\r\n};\r\n\r\nconst isBelowViewportLimit = (classList: DOMTokenList): boolean => {\r\n const viewportWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n const widthInRem = viewportWidth / getBaseFontSize();\r\n const mediaWidth = getMediaWidthBasedOnModifier(classList);\r\n if (mediaWidth > -1) {\r\n return widthInRem < mediaWidth;\r\n }\r\n return true;\r\n};\r\n\r\nconst destroyTabs = (tabbed: Element): void => {\r\n const tablist = tabbed.querySelector('.nav__items');\r\n const tabs = tablist?.querySelectorAll('a');\r\n const panels: HTMLElement[] = [];\r\n const sections = tabbed.querySelectorAll('section');\r\n sections.forEach((section) => {\r\n if (section.parentNode === tabbed) {\r\n panels.push(section);\r\n }\r\n });\r\n tabs?.forEach((tab) => {\r\n tab.removeAttribute('aria-selected');\r\n tab.classList.remove('nav__item--active');\r\n });\r\n\r\n panels.forEach((panel) => {\r\n panel.hidden = false;\r\n panel.removeAttribute('role');\r\n });\r\n};\r\n\r\nconst destroySwitches = (tabbed: Element): void => {\r\n const switchlist = tabbed.querySelector('.switch');\r\n const switches = switchlist?.querySelectorAll('a');\r\n const panels: HTMLElement[] = [];\r\n const sections = tabbed.querySelectorAll('section');\r\n sections.forEach((section) => {\r\n if (section.parentNode === tabbed) {\r\n panels.push(section);\r\n }\r\n });\r\n switches?.forEach((tab) => {\r\n tab.removeAttribute('aria-selected');\r\n tab.classList.remove('switch__segment--active');\r\n });\r\n\r\n panels.forEach((panel) => {\r\n panel.hidden = false;\r\n panel.removeAttribute('role');\r\n });\r\n};\r\n\r\nconst switchTab = (\r\n tabs: NodeListOf<HTMLAnchorElement>,\r\n panels: HTMLElement[],\r\n oldTab: Element | null,\r\n newTab: HTMLElement,\r\n _: DOMTokenList,\r\n focus = true,\r\n // eslint-disable-next-line no-console\r\n callback = (index: number): void => console.log(index),\r\n): void => {\r\n if (focus) {\r\n newTab.focus();\r\n }\r\n // Make the active tab focusable by the user (Tab key)\r\n newTab.removeAttribute('tabindex');\r\n // Set the selected state\r\n newTab.setAttribute('aria-selected', 'true');\r\n\r\n // Check if switch // should this be more pretty?\r\n if (newTab.classList.contains('switch__segment')) {\r\n newTab.classList.add('switch__segment--active');\r\n } else {\r\n newTab.classList.add('nav__item--active');\r\n }\r\n\r\n if (oldTab) {\r\n oldTab.removeAttribute('aria-selected');\r\n oldTab.setAttribute('tabindex', '-1');\r\n\r\n if (oldTab.classList.contains('switch__segment')) {\r\n oldTab.classList.remove('switch__segment--active');\r\n } else {\r\n oldTab.classList.remove('nav__item--active');\r\n }\r\n }\r\n\r\n const index = Array.prototype.indexOf.call(tabs, newTab);\r\n\r\n // More links\r\n /* let moreLinks;\r\n var moreLink: HTMLElement;\r\n moreLinks = document.querySelectorAll(`[data-for=\"${panels[index].id}\"]`);\r\n moreLinks.forEach((moreLink) => {\r\n moreLink.classList.add('tabbed-content-peripheral--active');\r\n moreLink.hidden = false;\r\n }); */\r\n const moreLinks: HTMLElement[] = Array.from(document.querySelectorAll(`[data-for=\"${panels[index].id}\"]`));\r\n moreLinks.forEach((link) => {\r\n link.classList.add('tabbed-content-peripheral--active');\r\n link.hidden = false;\r\n });\r\n\r\n // Get the indices of the new and old tabs to find the correct\r\n // tab panels to show and hide\r\n panels[index].hidden = false;\r\n if (oldTab) {\r\n const oldIndex = Array.prototype.indexOf.call(tabs, oldTab);\r\n\r\n const oldMoreLinks: HTMLElement[] = Array.from(document.querySelectorAll(`[data-for=\"${panels[oldIndex].id}\"]`));\r\n oldMoreLinks.forEach((link) => {\r\n link.classList.remove('tabbed-content-peripheral--active');\r\n link.hidden = true;\r\n });\r\n\r\n /* moreLinks.forEach((moreLink) => {\r\n moreLink.classList.remove('tabbed-content-peripheral--active');\r\n moreLink.hidden = true;\r\n }); */\r\n\r\n panels[oldIndex].hidden = true;\r\n }\r\n\r\n // Dispatches custom event on every tab change\r\n newTab.dispatchEvent(new CustomEvent('switch-tab', {\r\n bubbles: true,\r\n detail: { tab: index },\r\n }));\r\n callback(index);\r\n};\r\n\r\nconst setTabbedContent = (\r\n key: number,\r\n tabbed: Element,\r\n initial = 0,\r\n focus = true,\r\n // eslint-disable-next-line no-console\r\n callback = (index: number) => console.log(index),\r\n): void => {\r\n const tablist = tabbed.querySelector('.switch,.nav__items') as HTMLElement;\r\n const tabs = tablist.querySelectorAll('a');\r\n const panels: HTMLElement[] = [];\r\n const sections = tabbed.querySelectorAll('section');\r\n sections.forEach((section) => {\r\n if (section.parentNode === tabbed) {\r\n panels.push(section);\r\n }\r\n });\r\n\r\n const expandAll = tabbed.querySelector('button.tabbed-content__expand-all');\r\n if (expandAll) {\r\n const expandAllEvent = () => {\r\n tablist.hidden = true;\r\n panels.forEach((panel: HTMLElement) => {\r\n panel.hidden = false;\r\n });\r\n };\r\n\r\n expandAll.removeEventListener('click', expandAllEvent);\r\n expandAll.addEventListener('click', expandAllEvent);\r\n }\r\n\r\n // Add the tablist role to the first <ul> in the .tabbed container\r\n tablist.setAttribute('role', 'tablist');\r\n\r\n // Add semantics are remove user focusability for each tab\r\n tabs.forEach((tab, i) => {\r\n tab.setAttribute('role', 'tab');\r\n tab.setAttribute('id', `tab${key}_${(i + 1)}`);\r\n tab.setAttribute('tabindex', '-1');\r\n tab.parentElement?.setAttribute('role', 'presentation');\r\n\r\n // Handle clicking of tabs for mouse users\r\n const tabClickEvent = (e: MouseEvent) => {\r\n e.preventDefault();\r\n const currentTab = tablist.querySelector('[aria-selected]');\r\n if (e.currentTarget !== currentTab) {\r\n // eslint-disable-next-line max-len\r\n switchTab(tabs, panels, currentTab, e.currentTarget as HTMLElement, tabbed.classList, true, (tabIndex) => {\r\n callback(tabIndex);\r\n });\r\n }\r\n };\r\n\r\n tab.removeEventListener('click', tabClickEvent);\r\n tab.addEventListener('click', tabClickEvent);\r\n\r\n // Handle keydown events for keyboard users\r\n const tabKeyEvent = (e: KeyboardEvent) => {\r\n // Get the index of the current tab in the tabs node list\r\n const index = Array.prototype.indexOf.call(tabs, e.currentTarget);\r\n // Work out which key the user is pressing and\r\n // Calculate the new tab's index where appropriate\r\n let dir: number | string | null = null;\r\n if (e.key === 'ArrowLeft') {\r\n dir = index - 1;\r\n }\r\n if (e.key === 'ArrowRight') {\r\n dir = index + 1;\r\n }\r\n if (e.key === 'ArrowDown') {\r\n dir = 'down';\r\n }\r\n if (dir !== null) {\r\n e.preventDefault();\r\n // If the down key is pressed, move focus to the open panel,\r\n // otherwise switch to the adjacent tab\r\n if (dir === 'down') {\r\n panels[i].focus();\r\n } else if (tabs[dir]) {\r\n // eslint-disable-next-line max-len\r\n switchTab(tabs, panels, e.currentTarget as Element, tabs[dir], tabbed.classList, true, (tabIndex) => {\r\n callback(tabIndex);\r\n });\r\n }\r\n }\r\n };\r\n tab.removeEventListener('keydown', tabKeyEvent);\r\n tab.addEventListener('keydown', tabKeyEvent);\r\n });\r\n\r\n // Add tab panel semantics and hide them all\r\n panels.forEach((panel: HTMLElement, i: number) => {\r\n panel.setAttribute('tabindex', '-1');\r\n panel.setAttribute('aria-labelledby', tabs[i].id);\r\n // eslint-disable-next-line no-param-reassign\r\n panel.hidden = true;\r\n panel.setAttribute('role', 'tabpanel');\r\n });\r\n\r\n // Initially activate the first tab and reveal the first tab panel\r\n if (initial > -1) {\r\n switchTab(tabs, panels, null, tabs[initial], tabbed.classList, focus);\r\n }\r\n};\r\n\r\nconst setTabs = (tabbedObjects: ITabbedObject[]): void => {\r\n tabbedObjects.forEach((tabObject: ITabbedObject, key: number): void => {\r\n const { rendered, domElement } = tabObject;\r\n if (isBelowViewportLimit(domElement.classList)) {\r\n if (!rendered) {\r\n const focus = domElement.getAttribute('data-focus-onload');\r\n const dataInitial = domElement.getAttribute('data-initial-tab');\r\n const initial = dataInitial ? parseInt(dataInitial, 10) : 0;\r\n setTabbedContent(key, domElement, initial, focus !== 'false');\r\n tabObject.rendered = true;\r\n }\r\n } else if (rendered) {\r\n destroyTabs(domElement);\r\n tabObject.rendered = false;\r\n }\r\n });\r\n};\r\n\r\nexport {\r\n setTabbedContent,\r\n isBelowViewportLimit,\r\n destroyTabs,\r\n destroySwitches,\r\n setTabs,\r\n};\r\n", "/* eslint-disable max-len */\r\n/* eslint-env browser */\r\n/* eslint-disable import/prefer-default-export */\r\n\r\nimport { isViewportBelow} from './helpers';\r\n\r\nconst setContentToggle = (\r\n content: Element,\r\n onClick?: ((content: HTMLElement, button: HTMLButtonElement) => void) | undefined,\r\n beforeCallback?: ((content: HTMLElement, button: HTMLButtonElement) => void) | undefined,\r\n afterCallback?: ((content: HTMLElement, button: HTMLButtonElement) => void) | undefined,\r\n): CleanUpPair[] => {\r\n const cleanUp: CleanUpPair[] = [];\r\n const setContentClose = (button: HTMLElement, contentClose: HTMLElement, focus: boolean): () => void => {\r\n if (focus) {\r\n contentClose.focus();\r\n }\r\n const click = () => {\r\n content.setAttribute('hidden', 'hidden');\r\n button.removeAttribute('hidden');\r\n button.setAttribute('aria-expanded', 'false');\r\n button.focus();\r\n };\r\n contentClose.addEventListener('click', click);\r\n return click;\r\n };\r\n\r\n const button = content?.parentElement?.querySelector('.content-toggle__toggle') as HTMLElement;\r\n const contentClose = content.querySelectorAll('.content-toggle__close');\r\n \r\n const setBPModiferClass = () => {\r\n if (isViewportBelow('--bp-medium') && content.classList.contains('content-toggle__content--always-show-on-medium')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n } \r\n else if (isViewportBelow('--bp-wide') && content.classList.contains('content-toggle__content--always-show-on-wide')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n } \r\n else if (isViewportBelow('--bp-max-width') && content.classList.contains('content-toggle__content--always-show-on-max-width')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n } \r\n else if (\r\n content.classList.contains('content-toggle__content--always-show-on-medium') ||\r\n content.classList.contains('content-toggle__content--always-show-on-wide') ||\r\n content.classList.contains('content-toggle__content--always-show-on-max-width')\r\n ){\r\n content.removeAttribute(\"hidden\");\r\n button.setAttribute(\"hidden\", \"hidden\");\r\n }\r\n }\r\n window.addEventListener('resize', () => {\r\n setBPModiferClass();\r\n });\r\n\r\n const setBPModifierPopupClass = () => {\r\n document.addEventListener('click', (event) => {\r\n const eventTarget = event.target as HTMLElement;\r\n const doesNotContainContent = !eventTarget.classList.contains('content-toggle__content')\r\n const doesNotContainButton = !eventTarget.classList.contains('content-toggle__toggle')\r\n const doesNotContainSpan = !eventTarget.classList.contains('profile-header__info__contact__toggle__button')\r\n if (doesNotContainContent && doesNotContainButton && doesNotContainSpan) {\r\n if (!isViewportBelow('--bp-medium') && content.classList.contains('content-toggle__content--is-popover--on-medium')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n console.log(1)\r\n } else if (!isViewportBelow('--bp-wide') && content.classList.contains('content-toggle__content--is-popover--on-wide')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n console.log(2)\r\n } else if (!isViewportBelow('--bp-max-width') && content.classList.contains('content-toggle__content--is-popover--on-max-width')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n console.log(3)\r\n }\r\n else if (content.classList.contains('content-toggle__content--is-popover')) {\r\n button.removeAttribute(\"hidden\");\r\n content.setAttribute(\"hidden\", \"hidden\");\r\n button.setAttribute(\"aria-expanded\", \"false\");\r\n button.focus();\r\n console.log(4)\r\n }\r\n }\r\n });\r\n }\r\n\r\n setBPModifierPopupClass(); \r\n setBPModiferClass();\r\n\r\n if (button) {\r\n const clickEvent = () => {\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n // Til toolbar: hvis man klikker p\u00E5 en knap, der ikke er foldet ud\r\n // S\u00E5 lukker vi alle \u00E5bne content-toggles\r\n if (typeof beforeCallback === 'function' && ariaExpanded === 'false') {\r\n beforeCallback(content as HTMLElement, button as HTMLButtonElement);\r\n }\r\n // Og s\u00E5 g\u00E5r vi i gang med folde-ud-logikken\r\n button.setAttribute('aria-expanded', ariaExpanded === 'false' ? 'true' : 'false');\r\n if (ariaExpanded === 'true') {\r\n content.setAttribute('hidden', 'hidden');\r\n } else {\r\n content.removeAttribute('hidden');\r\n }\r\n\r\n if (typeof onClick === 'function') {\r\n onClick(content as HTMLElement, button as HTMLButtonElement);\r\n }\r\n\r\n if (button.hasAttribute('aria-haspopup')) {\r\n button.setAttribute('hidden', 'hidden');\r\n contentClose.forEach((cc) => {\r\n setContentClose(button, cc as HTMLElement, true);\r\n });\r\n }\r\n\r\n // Det der sker efter folde-logikken\r\n if (typeof afterCallback === 'function') {\r\n afterCallback(content as HTMLElement, button as HTMLButtonElement);\r\n }\r\n };\r\n\r\n button.addEventListener('click', clickEvent);\r\n // Altid tilf\u00F8j denne f\u00F8rst!\r\n cleanUp.push({\r\n element: button,\r\n clickEvent,\r\n });\r\n\r\n contentClose.forEach((cc) => {\r\n const btnClick = setContentClose(button, cc as HTMLElement, false);\r\n cleanUp.push({\r\n element: cc,\r\n clickEvent: btnClick,\r\n });\r\n });\r\n }\r\n return cleanUp;\r\n};\r\n\r\nexport {\r\n setContentToggle, \r\n};\r\n", "/* eslint-disable max-len */\r\nimport { convertRemToPixels, isElementWithClassNameInEventPath, isViewportBelow } from './helpers';\r\n\r\nconst lockBodyScroll = (): void => {\r\n const body = document.querySelector('body');\r\n if (isViewportBelow('--bp-medium') || isViewportBelow('--bp-low-height')) {\r\n body?.classList.add('body--no-scroll');\r\n }\r\n};\r\n\r\nconst unlockBodyScroll = (): void => {\r\n const body = document.querySelector('body');\r\n body?.classList.remove('body--no-scroll');\r\n};\r\n\r\n/* eslint-env browser */\r\nconst closeAllContentTogglesInToolbar = (toolbar: HTMLElement): void => {\r\n const contentToggles = toolbar.querySelectorAll('.content-toggle__toggle');\r\n contentToggles.forEach((toggle) => {\r\n const content = toggle.parentElement?.querySelector('.content-toggle__content');\r\n toggle.setAttribute('aria-expanded', 'false');\r\n content?.setAttribute('hidden', 'hidden');\r\n });\r\n};\r\n\r\nconst setOverflow = (toolbarElement: Element): void => {\r\n if (!toolbarElement.classList.contains('toolbar--no-collapse')) {\r\n toolbarElement.classList.remove('toolbar--toggled');\r\n }\r\n toolbarElement.classList.remove('toolbar--fully-overflown');\r\n toolbarElement.classList.remove('toolbar--has-popout');\r\n const toolbarItemsParent = toolbarElement.querySelector('.toolbar__items');\r\n const toolbarItems = toolbarItemsParent?.children as HTMLCollection;\r\n const isOverflownClass = 'toolbar__item--is-overflown';\r\n const hasOverflowClass = 'toolbar--has-overflow';\r\n let hasOverflown = false;\r\n\r\n let overflownCount = 0;\r\n const addOverflowClass = (item: HTMLElement, index: number) => {\r\n if (item) {\r\n const top = item.offsetTop;\r\n if (top > 25) {\r\n item.classList.add(isOverflownClass);\r\n toolbarElement.classList.add(hasOverflowClass);\r\n hasOverflown = true;\r\n overflownCount += 1;\r\n } else {\r\n item.classList.remove(isOverflownClass);\r\n }\r\n\r\n if (!hasOverflown) {\r\n toolbarElement.classList.remove(hasOverflowClass);\r\n } else if (index - 1 >= 0) {\r\n addOverflowClass(toolbarItems[index - 1] as HTMLElement, index - 1);\r\n }\r\n }\r\n };\r\n\r\n addOverflowClass(toolbarItems[toolbarItems.length - 1] as HTMLElement, toolbarItems.length - 1);\r\n\r\n if (overflownCount > 0 && overflownCount === toolbarItems.length) {\r\n toolbarElement.classList.add('toolbar--fully-overflown');\r\n }\r\n};\r\n\r\nconst setToolbarToggle = (toolbar: HTMLElement): ExtendedCleanUpPair[] => {\r\n const cleanUp: ExtendedCleanUpPair[] = [];\r\n const buttons = toolbar.querySelectorAll('.toolbar__toggle');\r\n buttons.forEach((button) => {\r\n const clickEvent = () => {\r\n button?.parentElement?.classList.toggle('toolbar--toggled');\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n if (ariaExpanded !== 'true') {\r\n const focusable = 'a.toolbar__item--is-overflown, button.toolbar__item--is-overflown, input.toolbar__item--is-overflown, select.toolbar__item--is-overflown, .toolbar__item--is-overflown a, .toolbar__item--is-overflown button, .toolbar__item--is-overflown input, .toolbar__item--is-overflown select';\r\n const firstWithOverflow = button?.parentElement?.querySelector(focusable) as HTMLElement;\r\n if (firstWithOverflow) {\r\n setTimeout(() => {\r\n firstWithOverflow.focus();\r\n }, 0);\r\n }\r\n }\r\n button.setAttribute('aria-expanded', ariaExpanded === 'false' ? 'true' : 'false');\r\n };\r\n\r\n cleanUp.push({\r\n element: button,\r\n clickEvent,\r\n });\r\n button.addEventListener('click', clickEvent);\r\n });\r\n return cleanUp;\r\n};\r\n\r\nconst setToolbar = (\r\n toolbar: HTMLElement,\r\n onCloseContentToggle: (toolbarElement: HTMLElement) => void,\r\n setOverflowOnly = true,\r\n): ExtendedCleanUpPair[] => {\r\n let cleanUp: ExtendedCleanUpPair[] = [];\r\n\r\n setOverflow(toolbar);\r\n onCloseContentToggle(toolbar);\r\n cleanUp = cleanUp.concat(setToolbarToggle(toolbar));\r\n\r\n if (!setOverflowOnly) {\r\n const bodyClickEvent = (event: Event) => {\r\n if (!(event.target as HTMLElement).classList.contains('content-toggle__toggle')\r\n && !isElementWithClassNameInEventPath(event as MouseEvent, 'content-toggle__content')) {\r\n onCloseContentToggle(toolbar);\r\n }\r\n };\r\n\r\n const escKeyEvent = (event: Event) => {\r\n if ((event as KeyboardEvent).key === 'Escape') {\r\n if (event.target && (event.target as HTMLElement).getAttribute('type') !== 'search') {\r\n onCloseContentToggle(toolbar);\r\n }\r\n }\r\n };\r\n\r\n const body = document.querySelector('body');\r\n\r\n cleanUp.push({\r\n element: body as Element,\r\n clickEvent: bodyClickEvent,\r\n });\r\n\r\n cleanUp.push({\r\n element: window,\r\n keyUpEvent: escKeyEvent,\r\n });\r\n\r\n body?.addEventListener('click', bodyClickEvent);\r\n window.addEventListener('keyup', escKeyEvent);\r\n }\r\n\r\n return cleanUp;\r\n};\r\n\r\nconst findToolbar = (element: HTMLElement): HTMLElement => {\r\n const parent = element.parentElement;\r\n if (parent) {\r\n if (parent.classList.contains('toolbar')) {\r\n return parent;\r\n }\r\n return findToolbar(parent);\r\n }\r\n return element;\r\n};\r\n\r\nconst contentToggleEdgeHandling = (element: HTMLElement): void => {\r\n if (!isViewportBelow('--bp-medium') && !isViewportBelow('--bp-low-height')) {\r\n const allowedDistance = convertRemToPixels(parseInt(getComputedStyle(document.documentElement).getPropertyValue('--toolbar-popout-allowed-edge-distance').replace('rem,', ''), 10));\r\n const popoutX = parseInt(getComputedStyle(element).width.replace('px', ''), 10);\r\n const popoutWidth = element.getBoundingClientRect().x;\r\n\r\n const distance = document.body.offsetWidth - allowedDistance - popoutX - popoutWidth;\r\n\r\n if (distance < 0) {\r\n element.style.setProperty('--toolbar-popout-edge-overflow', `${distance}px`);\r\n }\r\n }\r\n};\r\n\r\nexport {\r\n setToolbar,\r\n setOverflow,\r\n findToolbar,\r\n closeAllContentTogglesInToolbar,\r\n contentToggleEdgeHandling,\r\n lockBodyScroll,\r\n unlockBodyScroll,\r\n};\r\n", "// Scroller 80% p\u00E5 horisontal scroll til h\u00F8jre og s\u00E6tter knappen disabled n\u00E5r man rammer bunden\r\nconst horizontalScrollButtonNext = (nextButtons: NodeListOf<Element>): void => {\r\n if (nextButtons) {\r\n nextButtons.forEach((nextButton) => {\r\n const topElem = nextButton?.parentElement?.parentElement?.parentElement?.parentElement;\r\n if (topElem) {\r\n const scrollElements = topElem.querySelectorAll('.horizontal-scroll__scrollable-content');\r\n const switch__segments = topElem.querySelectorAll('.switch__segment');\r\n scrollElements.forEach((scrollElement) => { \r\n if (scrollElement) {\r\n nextButton.addEventListener('click', () => {\r\n // Scroller 80% af den synlige bredde p\u00E5 horizontal scroll til h\u00F8jre\r\n const scrollAmount = 0.8 * scrollElement.clientWidth;\r\n scrollElement.scrollLeft += scrollAmount;\r\n });\r\n // G\u00F8r knappen aktiv hvis scroll har ramt bunden\r\n scrollElement.addEventListener('scroll', () => {\r\n if ((scrollElement.scrollLeft + scrollElement.clientWidth) >= (scrollElement.scrollWidth * 0.98)) {\r\n disableButton(nextButton);\r\n } else if (scrollElement.scrollLeft + scrollElement.clientWidth < scrollElement.scrollWidth) {\r\n activateButton(nextButton);\r\n }\r\n });\r\n // Reset af knap ved flere tabs af horizontal scroll\r\n if (switch__segments) {\r\n switch__segments.forEach(switch__segment => {\r\n switch__segment.addEventListener('click', () => {\r\n activateButton(nextButton);\r\n scrollElement.scrollLeft = 0;\r\n })\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n \r\n // Scroller 80% p\u00E5 horisontal scroll til venstre og s\u00E6tter knappen disabled n\u00E5r man rammer toppen\r\n const horizontalScrollButtonPrevious = (previousButtons: NodeListOf<Element>): void => {\r\n if (previousButtons) {\r\n previousButtons.forEach((previousButton) => {\r\n const topElem = previousButton?.parentElement?.parentElement?.parentElement?.parentElement;\r\n if (topElem) {\r\n const scrollElements = topElem.querySelectorAll('.horizontal-scroll__scrollable-content');\r\n const switch__segments = topElem.querySelectorAll('.switch__segment');\r\n scrollElements.forEach((scrollElement) => { \r\n if (scrollElement) {\r\n previousButton.addEventListener('click', () => {\r\n // Scroller 80% af den synlige bredde p\u00E5 horizontal scroll til venstre\r\n const scrollAmount = 0.8 * scrollElement.clientWidth;\r\n scrollElement.scrollLeft -= scrollAmount;\r\n });\r\n // G\u00F8r knappen aktiv hvis scroll har ramt toppen\r\n scrollElement.addEventListener('scroll', () => {\r\n if (scrollElement.scrollLeft <= 0) {\r\n disableButton(previousButton);\r\n } else if (scrollElement.scrollLeft > 0) {\r\n activateButton(previousButton);\r\n }\r\n });\r\n }\r\n // Reset af knap ved flere tabs af horizontal scroll\r\n if (switch__segments) {\r\n switch__segments.forEach(switch__segment => {\r\n switch__segment.addEventListener('click', () => {\r\n disableButton(previousButton);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n function activateButton(button) {\r\n button.classList.remove('visually-disabled');\r\n button.setAttribute('aria-disabled', 'false');\r\n }\r\n \r\n function disableButton(button) {\r\n button.classList.add('visually-disabled');\r\n button.setAttribute('aria-disabled', 'true');\r\n }\r\n\r\n export {\r\n horizontalScrollButtonNext,\r\n horizontalScrollButtonPrevious,\r\n };", "/* eslint-disable no-param-reassign */\r\n/* eslint-env browser */\r\nimport ready from '../components/ready';\r\nimport {\r\n setResponsiveNav,\r\n setResponsiveToggle,\r\n} from '../components/nav';\r\nimport { isElementWithClassNameInEventPath, setMetaThemeColor, setHorizontalScroll } from '../components/helpers';\r\nimport { setResponsiveTable } from '../components/table';\r\nimport { setTabs } from '../components/tabs';\r\nimport { setContentToggle } from '../components/content-toggle';\r\nimport {\r\n closeAllContentTogglesInToolbar,\r\n contentToggleEdgeHandling,\r\n findToolbar,\r\n lockBodyScroll,\r\n unlockBodyScroll,\r\n} from '../components/toolbar';\r\nimport { horizontalScrollButtonNext, horizontalScrollButtonPrevious } from '../components/horizontal-scroll-btn';\r\n\r\nlet windowInnerWidth = 0;\r\n\r\nready(() => {\r\n const tabbedContent = document.querySelectorAll('.tabbed-content');\r\n const tabbedObjects: ITabbedObject[] = [];\r\n tabbedContent.forEach((tab) => tabbedObjects.push({\r\n domElement: tab,\r\n rendered: false,\r\n }));\r\n setTabs(tabbedObjects);\r\n setMetaThemeColor();\r\n\r\n const navElements = document.querySelectorAll('.nav:not(.nav--vertical)');\r\n navElements.forEach((n) => setResponsiveNav(navElements, n));\r\n setResponsiveToggle(navElements);\r\n\r\n const tables = document.querySelectorAll('.table--wrap-medium-width, .table--wrap-default-width');\r\n tables.forEach((table) => setResponsiveTable(table));\r\n\r\n const toggles = document.querySelectorAll('.box .content-toggle__content, .profile-header .content-toggle__content, .design-documentation .content-toggle__content');\r\n toggles.forEach((toggle) => {\r\n setContentToggle(toggle);\r\n });\r\n\r\n // Hortizontal scroll buttons\r\n const scrollButtonsNext = document.querySelectorAll('.button.button--small.button--icon.button--icon--hide-label.icon-next');\r\n const scrollButtonsPrevious = document.querySelectorAll('.button.button--small.button--icon.button--icon--hide-label.icon-previous');\r\n horizontalScrollButtonNext(scrollButtonsNext);\r\n horizontalScrollButtonPrevious(scrollButtonsPrevious);\r\n\r\n const horizontalScroll = document.querySelectorAll('.horizontal-scroll');\r\n horizontalScroll.forEach((hs) => {\r\n setHorizontalScroll(hs as HTMLElement);\r\n window.addEventListener('resize', () => {\r\n setHorizontalScroll(hs as HTMLElement);\r\n });\r\n });\r\n\r\n const switchSegments = document.querySelectorAll('.switch__segment');\r\n switchSegments.forEach((switchSegment) => {\r\n switchSegment.addEventListener('click', () => {\r\n const horizontalScrollTabbed = document.querySelectorAll('.horizontal-scroll');\r\n horizontalScrollTabbed.forEach((hsTabbed) => {\r\n setHorizontalScroll(hsTabbed as HTMLElement);\r\n });\r\n });\r\n });\r\n \r\n // Kursuskatalog\r\n const togglesInToolbars = document.querySelectorAll('.toolbar .content-toggle__content');\r\n togglesInToolbars.forEach((toggle) => {\r\n setContentToggle(\r\n toggle,\r\n (popout: HTMLElement) => {\r\n contentToggleEdgeHandling(popout);\r\n lockBodyScroll();\r\n },\r\n (content: HTMLElement) => closeAllContentTogglesInToolbar(findToolbar(content)),\r\n (content: HTMLElement, button: HTMLButtonElement) => {\r\n const ariaExpanded = button.getAttribute('aria-expanded');\r\n const toolbar = findToolbar(content);\r\n if (ariaExpanded === 'true') {\r\n toolbar?.classList.add('toolbar--has-popout');\r\n } else {\r\n toolbar?.classList.remove('toolbar--has-popout');\r\n }\r\n\r\n content.addEventListener('click', (event: MouseEvent) => {\r\n if ((event.target as HTMLElement).classList.contains('toolbar__popout')\r\n && !isElementWithClassNameInEventPath(event as MouseEvent, 'toolbar__filter__content')) {\r\n closeAllContentTogglesInToolbar(toolbar);\r\n unlockBodyScroll();\r\n }\r\n });\r\n },\r\n );\r\n });\r\n\r\n window.addEventListener('load', () => {\r\n windowInnerWidth = window.innerWidth;\r\n });\r\n\r\n window.addEventListener('resize', () => {\r\n if (windowInnerWidth > 0 && window.innerWidth !== windowInnerWidth) {\r\n windowInnerWidth = window.innerWidth;\r\n navElements.forEach((n) => setResponsiveNav(navElements, n));\r\n setTabs(tabbedObjects);\r\n }\r\n });\r\n});\r\n"],
5
+ "mappings": "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",
6
+ "names": ["ready", "fn", "ready_default", "isElementWithClassNameInEventPath", "event", "className", "found", "p", "setMetaThemeColor", "body", "bgColor", "existingMeta", "meta", "getBaseFontSize", "convertRemToPixels", "rem", "isViewportBelow", "mediaQuery", "viewportWidth", "mediaQueryValue", "overflowsX", "element", "setHorizontalScroll", "element", "content", "overflowsX", "findNav", "element", "parent", "closeResponsiveNav", "navElements", "keepOpen", "navToggledClass", "n", "button", "setResponsiveToggle", "toggleMenu", "navItems", "lastNavItem", "firstElement", "transitionListener", "cleanUp", "clickEvent", "nav", "ariaExpanded", "setResponsiveNav", "navElement", "navItemsClass", "navItemsParent", "isOverflownClass", "hasOverflowClass", "isActiveClass", "hasOverflown", "i", "isActive", "bodyClickEvent", "e", "isElementWithClassNameInEventPath", "setResponsiveTable", "table", "head", "body", "foot", "headers", "h", "rowContainers", "rc", "tr", "cell", "i", "getMediaWidthBasedOnModifier", "classList", "isBelowViewportLimit", "widthInRem", "getBaseFontSize", "mediaWidth", "destroyTabs", "tabbed", "tabs", "panels", "section", "tab", "panel", "switchTab", "tabs", "panels", "oldTab", "newTab", "_", "focus", "callback", "index", "link", "oldIndex", "setTabbedContent", "key", "tabbed", "initial", "tablist", "section", "expandAll", "expandAllEvent", "panel", "tab", "i", "tabClickEvent", "e", "currentTab", "tabIndex", "tabKeyEvent", "dir", "setTabs", "tabbedObjects", "tabObject", "rendered", "domElement", "isBelowViewportLimit", "dataInitial", "destroyTabs", "setContentToggle", "content", "onClick", "beforeCallback", "afterCallback", "cleanUp", "setContentClose", "button", "contentClose", "focus", "click", "setBPModiferClass", "isViewportBelow", "event", "eventTarget", "doesNotContainContent", "doesNotContainButton", "doesNotContainSpan", "clickEvent", "ariaExpanded", "cc", "btnClick", "lockBodyScroll", "body", "isViewportBelow", "unlockBodyScroll", "closeAllContentTogglesInToolbar", "toolbar", "toggle", "content", "findToolbar", "element", "parent", "contentToggleEdgeHandling", "isViewportBelow", "allowedDistance", "convertRemToPixels", "popoutX", "popoutWidth", "distance", "horizontalScrollButtonNext", "nextButtons", "nextButton", "topElem", "scrollElements", "switch__segments", "scrollElement", "scrollAmount", "disableButton", "activateButton", "switch__segment", "horizontalScrollButtonPrevious", "previousButtons", "previousButton", "button", "windowInnerWidth", "ready_default", "tabbedContent", "tabbedObjects", "tab", "setTabs", "setMetaThemeColor", "navElements", "n", "setResponsiveNav", "setResponsiveToggle", "table", "setResponsiveTable", "toggle", "setContentToggle", "scrollButtonsNext", "scrollButtonsPrevious", "horizontalScrollButtonNext", "horizontalScrollButtonPrevious", "hs", "setHorizontalScroll", "switchSegment", "hsTabbed", "popout", "contentToggleEdgeHandling", "lockBodyScroll", "content", "closeAllContentTogglesInToolbar", "findToolbar", "button", "ariaExpanded", "toolbar", "event", "isElementWithClassNameInEventPath", "unlockBodyScroll"]
7
+ }
package/public/js/demo.js CHANGED
@@ -1,14 +1,14 @@
1
- (()=>{var oe=e=>{document.readyState!=="loading"?e():document.addEventListener("DOMContentLoaded",e)},P=oe;var w=e=>{navigator.clipboard.writeText(e).then(()=>console.log(`${e} written to clipboard`))},y=(e,t)=>{let s=!1;return e.composedPath().forEach(r=>{r.classList&&r.classList.contains(t)&&(s=!0)}),s},T=()=>{let e=document.querySelector("body");if(e){let t=window.getComputedStyle(e).getPropertyValue("--color-background"),s=document.querySelector('meta[name="theme-color"]');if(s)s.content=t;else{let n=document.createElement("meta");n.name="theme-color",n.content=t,document.getElementsByTagName("head")[0].appendChild(n)}}};var k=()=>{let e=window.innerWidth-document.body.clientWidth;document.documentElement.style.setProperty("--vertical-scrollbar-width",`${e}px`)},I=e=>e.offsetHeight!==e.scrollHeight,se=e=>e.offsetWidth!==e.scrollWidth;var N=e=>{e.classList.contains("horizontal-scroll--no-overflow")&&e.classList.remove("horizontal-scroll--no-overflow");let t=e.querySelector(".horizontal-scroll--check-overflow .tabbed-content__section:not([hidden]) .horizontal-scroll__scrollable-content");t===null&&!t&&(t=e.querySelector(".horizontal-scroll--check-overflow .horizontal-scroll__scrollable-content")),t&&(se(t)?t?.setAttribute("tabindex","0"):(e.classList.add("horizontal-scroll--no-overflow"),t?.removeAttribute("tabindex")))},R='a[href]:not([tabindex="-1"]), area[href]:not([tabindex="-1"]), input:not([disabled]):not([tabindex="-1"]), select:not([disabled]):not([tabindex="-1"]), textarea:not([disabled]):not([tabindex="-1"]), button:not([disabled]):not([tabindex="-1"]), iframe:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"]), [contentEditable=true]:not([tabindex="-1"])';var W=(e,t=null)=>{let s="sub-nav--toggled";e.forEach(n=>{n!==t&&(n?.parentElement?.classList.contains(s)&&(n.focus(),n.setAttribute("aria-expanded","false")),n?.parentElement?.classList.remove(s))})},D=(e,t)=>{let s="sub-nav--toggled",n=()=>{t?.parentElement?.classList.toggle(s),t?.parentElement?.classList.contains(s)?t.setAttribute("aria-expanded","true"):t.setAttribute("aria-expanded","false"),W(e,t)};t.addEventListener("click",n);let r=m=>{y(m,"sub-nav")||W(e)};return document.querySelector("body")?.addEventListener("click",r),{buttonClickEvent:n,element:document.querySelector("body"),bodyClickEvent:r}},U=(e,t,s,n,r)=>{if(n&&s){w(n.innerText),t.classList.add("copy-to-clipboard--confirm"),t===s&&t.classList.add("copy-to-clipboard--done");let m=document.createElement("span");m.classList.add("copy-to-clipboard__this__confirm-message"),m.innerText=e,n.appendChild(m),s.removeEventListener("click",r),setTimeout(()=>{t.classList.remove("copy-to-clipboard--confirm"),m.remove(),s.addEventListener("click",r)},1200)}},B=(e,t="Kopieret!")=>{let s=e.querySelector(".copy-to-clipboard__this");if(e.type==="button"){let n=()=>{U(t,e,e,s,n)};e.addEventListener("click",n)}else{let n=e.querySelector(".copy-to-clipboard__execute"),r=()=>{U(t,e,n,s,r)};n?.addEventListener("click",r)}},z=(e,t)=>{let s="nav__search--toggled";t.addEventListener("click",()=>{e.classList.contains(s)?(t.setAttribute("aria-expanded","false"),e.classList.remove(s)):(t.setAttribute("aria-expanded","true"),e.classList.add(s))})};var x=["blue","purple","cyan","turquoise","green","yellow","red","magenta","orange","dark-blue","dark-purple","dark-cyan","dark-turquoise","dark-green","dark-yellow","dark-red","dark-magenta","dark-orange"],j=["default","medium","wide","reset"],E=(e,t)=>{t==null?window.localStorage.removeItem(e):window.localStorage.setItem(e,t)},re=()=>{let e=window.localStorage;return[e.getItem("atom-picker-theme"),e.getItem("atom-picker-style"),e.getItem("atom-picker-position"),e.getItem("atom-picker-scale")]},X=e=>{document.querySelector("body")?.classList.remove(`theme--${e}`)},$=e=>{x.forEach(X),e!=="theme--blue"&&document.querySelector("body")?.classList.add(e),E("atom-picker-theme",e)},V=()=>{let e=document.querySelector("body"),t=document.getElementById("content"),s=document.getElementById("aside"),n="theme--normal",r="theme--dark";e?.classList.remove("body--scrollbar-dark"),t?.classList.contains(n)||e?.classList.toggle(r),t?.classList.remove(n),s&&s.classList.remove(n),E("atom-picker-style",e?.classList.contains(r)?r:null)},F=()=>{let e=document.getElementById("atom-picker"),t="atom-picker--at-top";e?.classList.toggle(t),E("atom-picker-position",e?.classList.contains(t)?t:null)},ie=e=>{document.querySelector("body")?.classList.remove(`view--${e}`)},K=e=>{if(j.forEach(ie),e!=="reset")document.querySelector("body")?.classList.add(e),E("atom-picker-scale",e);else{x.forEach(X),document.querySelector("body")?.classList.add("theme--dark"),document.querySelector("body")?.classList.add("body--scrollbar-dark"),document.getElementById("content")?.classList.add("theme--normal");let t=document.getElementById("aside");t&&t.classList.add("theme--normal"),E("atom-picker-theme",null),E("atom-picker-scale",null),E("atom-picker-position",null),E("atom-picker-style",null),T()}},Y=()=>{let[e,t,s,n]=re();e&&$(e),t&&V(),s&&F(),n&&K(n);let r=document.querySelector(".atom-picker__scale__item__position-toggle");r&&r.addEventListener("click",()=>{F()});let m=document.querySelector(".atom-picker__scale__item__theme-style");m&&m.addEventListener("click",()=>{V(),T()}),j.forEach(u=>{let h=document.querySelector(`.atom-picker__scale__item__${u}`);h&&h.addEventListener("click",()=>{K(u==="reset"?"reset":`view--${u}`)})}),x.forEach(u=>{let h=document.querySelector(`.atom-picker__color__item.theme--${u}`);h&&h.addEventListener("click",()=>{$(`theme--${u}`),T()})})};var ae=()=>{document.querySelectorAll(".color-atom__colors > div").forEach(t=>{t.addEventListener("click",()=>{let s=window.getComputedStyle(t,":before").getPropertyValue("content");w(s.replace(/"/g,""))})})},G=ae;var H=function(){function e(t,s){for(var n=0;n<s.length;n++){var r=s[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(t,s,n){return s&&e(t.prototype,s),n&&e(t,n),t}}();function A(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(function(){if(typeof window>"u")return;var e=Array.prototype.slice,t=Element.prototype.matches||Element.prototype.msMatchesSelector,s=["a[href]","area[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","details","summary","iframe","object","embed","[contenteditable]"].join(","),n=function(){function l(i,o){A(this,l),this._inertManager=o,this._rootElement=i,this._managedNodes=new Set,this._rootElement.hasAttribute("aria-hidden")?this._savedAriaHidden=this._rootElement.getAttribute("aria-hidden"):this._savedAriaHidden=null,this._rootElement.setAttribute("aria-hidden","true"),this._makeSubtreeUnfocusable(this._rootElement),this._observer=new MutationObserver(this._onMutation.bind(this)),this._observer.observe(this._rootElement,{attributes:!0,childList:!0,subtree:!0})}return H(l,[{key:"destructor",value:function(){this._observer.disconnect(),this._rootElement&&(this._savedAriaHidden!==null?this._rootElement.setAttribute("aria-hidden",this._savedAriaHidden):this._rootElement.removeAttribute("aria-hidden")),this._managedNodes.forEach(function(o){this._unmanageNode(o.node)},this),this._observer=null,this._rootElement=null,this._managedNodes=null,this._inertManager=null}},{key:"_makeSubtreeUnfocusable",value:function(o){var c=this;u(o,function(v){return c._visitNode(v)});var d=document.activeElement;if(!document.body.contains(o)){for(var f=o,g=void 0;f;){if(f.nodeType===Node.DOCUMENT_FRAGMENT_NODE){g=f;break}f=f.parentNode}g&&(d=g.activeElement)}o.contains(d)&&(d.blur(),d===document.activeElement&&document.body.focus())}},{key:"_visitNode",value:function(o){if(o.nodeType===Node.ELEMENT_NODE){var c=o;c!==this._rootElement&&c.hasAttribute("inert")&&this._adoptInertRoot(c),(t.call(c,s)||c.hasAttribute("tabindex"))&&this._manageNode(c)}}},{key:"_manageNode",value:function(o){var c=this._inertManager.register(o,this);this._managedNodes.add(c)}},{key:"_unmanageNode",value:function(o){var c=this._inertManager.deregister(o,this);c&&this._managedNodes.delete(c)}},{key:"_unmanageSubtree",value:function(o){var c=this;u(o,function(d){return c._unmanageNode(d)})}},{key:"_adoptInertRoot",value:function(o){var c=this._inertManager.getInertRoot(o);c||(this._inertManager.setInert(o,!0),c=this._inertManager.getInertRoot(o)),c.managedNodes.forEach(function(d){this._manageNode(d.node)},this)}},{key:"_onMutation",value:function(o,c){o.forEach(function(d){var f=d.target;if(d.type==="childList")e.call(d.addedNodes).forEach(function(v){this._makeSubtreeUnfocusable(v)},this),e.call(d.removedNodes).forEach(function(v){this._unmanageSubtree(v)},this);else if(d.type==="attributes"){if(d.attributeName==="tabindex")this._manageNode(f);else if(f!==this._rootElement&&d.attributeName==="inert"&&f.hasAttribute("inert")){this._adoptInertRoot(f);var g=this._inertManager.getInertRoot(f);this._managedNodes.forEach(function(v){f.contains(v.node)&&g._manageNode(v.node)})}}},this)}},{key:"managedNodes",get:function(){return new Set(this._managedNodes)}},{key:"hasSavedAriaHidden",get:function(){return this._savedAriaHidden!==null}},{key:"savedAriaHidden",set:function(o){this._savedAriaHidden=o},get:function(){return this._savedAriaHidden}}]),l}(),r=function(){function l(i,o){A(this,l),this._node=i,this._overrodeFocusMethod=!1,this._inertRoots=new Set([o]),this._savedTabIndex=null,this._destroyed=!1,this.ensureUntabbable()}return H(l,[{key:"destructor",value:function(){if(this._throwIfDestroyed(),this._node&&this._node.nodeType===Node.ELEMENT_NODE){var o=this._node;this._savedTabIndex!==null?o.setAttribute("tabindex",this._savedTabIndex):o.removeAttribute("tabindex"),this._overrodeFocusMethod&&delete o.focus}this._node=null,this._inertRoots=null,this._destroyed=!0}},{key:"_throwIfDestroyed",value:function(){if(this.destroyed)throw new Error("Trying to access destroyed InertNode")}},{key:"ensureUntabbable",value:function(){if(this.node.nodeType===Node.ELEMENT_NODE){var o=this.node;if(t.call(o,s)){if(o.tabIndex===-1&&this.hasSavedTabIndex)return;o.hasAttribute("tabindex")&&(this._savedTabIndex=o.tabIndex),o.setAttribute("tabindex","-1"),o.nodeType===Node.ELEMENT_NODE&&(o.focus=function(){},this._overrodeFocusMethod=!0)}else o.hasAttribute("tabindex")&&(this._savedTabIndex=o.tabIndex,o.removeAttribute("tabindex"))}}},{key:"addInertRoot",value:function(o){this._throwIfDestroyed(),this._inertRoots.add(o)}},{key:"removeInertRoot",value:function(o){this._throwIfDestroyed(),this._inertRoots.delete(o),this._inertRoots.size===0&&this.destructor()}},{key:"destroyed",get:function(){return this._destroyed}},{key:"hasSavedTabIndex",get:function(){return this._savedTabIndex!==null}},{key:"node",get:function(){return this._throwIfDestroyed(),this._node}},{key:"savedTabIndex",set:function(o){this._throwIfDestroyed(),this._savedTabIndex=o},get:function(){return this._throwIfDestroyed(),this._savedTabIndex}}]),l}(),m=function(){function l(i){if(A(this,l),!i)throw new Error("Missing required argument; InertManager needs to wrap a document.");this._document=i,this._managedNodes=new Map,this._inertRoots=new Map,this._observer=new MutationObserver(this._watchForInert.bind(this)),h(i.head||i.body||i.documentElement),i.readyState==="loading"?i.addEventListener("DOMContentLoaded",this._onDocumentLoaded.bind(this)):this._onDocumentLoaded()}return H(l,[{key:"setInert",value:function(o,c){if(c){if(this._inertRoots.has(o))return;var d=new n(o,this);if(o.setAttribute("inert",""),this._inertRoots.set(o,d),!this._document.body.contains(o))for(var f=o.parentNode;f;)f.nodeType===11&&h(f),f=f.parentNode}else{if(!this._inertRoots.has(o))return;var g=this._inertRoots.get(o);g.destructor(),this._inertRoots.delete(o),o.removeAttribute("inert")}}},{key:"getInertRoot",value:function(o){return this._inertRoots.get(o)}},{key:"register",value:function(o,c){var d=this._managedNodes.get(o);return d!==void 0?d.addInertRoot(c):d=new r(o,c),this._managedNodes.set(o,d),d}},{key:"deregister",value:function(o,c){var d=this._managedNodes.get(o);return d?(d.removeInertRoot(c),d.destroyed&&this._managedNodes.delete(o),d):null}},{key:"_onDocumentLoaded",value:function(){var o=e.call(this._document.querySelectorAll("[inert]"));o.forEach(function(c){this.setInert(c,!0)},this),this._observer.observe(this._document.body||this._document.documentElement,{attributes:!0,subtree:!0,childList:!0})}},{key:"_watchForInert",value:function(o,c){var d=this;o.forEach(function(f){switch(f.type){case"childList":e.call(f.addedNodes).forEach(function(b){if(b.nodeType===Node.ELEMENT_NODE){var p=e.call(b.querySelectorAll("[inert]"));t.call(b,"[inert]")&&p.unshift(b),p.forEach(function(_){this.setInert(_,!0)},d)}},d);break;case"attributes":if(f.attributeName!=="inert")return;var g=f.target,v=g.hasAttribute("inert");d.setInert(g,v);break}},this)}}]),l}();function u(l,i,o){if(l.nodeType==Node.ELEMENT_NODE){var c=l;i&&i(c);var d=c.shadowRoot;if(d){u(d,i,d);return}if(c.localName=="content"){for(var f=c,g=f.getDistributedNodes?f.getDistributedNodes():[],v=0;v<g.length;v++)u(g[v],i,o);return}if(c.localName=="slot"){for(var b=c,p=b.assignedNodes?b.assignedNodes({flatten:!0}):[],_=0;_<p.length;_++)u(p[_],i,o);return}}for(var L=l.firstChild;L!=null;)u(L,i,o),L=L.nextSibling}function h(l){if(!l.querySelector("style#inert-style, link#inert-style")){var i=document.createElement("style");i.setAttribute("id","inert-style"),i.textContent=`
2
- [inert] {
3
- pointer-events: none;
4
- cursor: default;
5
- }
6
-
7
- [inert], [inert] * {
8
- -webkit-user-select: none;
9
- -moz-user-select: none;
10
- -ms-user-select: none;
11
- user-select: none;
12
- }
13
- `,l.appendChild(i)}}if(!HTMLElement.prototype.hasOwnProperty("inert")){var a=new m(document);Object.defineProperty(HTMLElement.prototype,"inert",{enumerable:!0,get:function(){return this.hasAttribute("inert")},set:function(i){a.setInert(this,i)}})}})();var S=(e,t,s=()=>{})=>{let n=document.getElementById(e);if(n){n.classList.remove("modal-view--visible"),n.inert=!0;let r=document.querySelector(".page");r.classList.remove("page--blur"),r.inert=!1,document.querySelector("body")?.classList.remove("body--no-scroll"),t.focus(),t.setAttribute("aria-expanded","false"),s()}},Q=(e,t,s=()=>{},n=!0)=>{let r=document.getElementById(e),m=[];if(r){r.classList.add("modal-view--visible"),r.inert=!1;let u=document.querySelector(".page");u.classList.add("page--blur"),u.inert=!0,document.querySelector("body")?.classList.add("body--no-scroll"),t.setAttribute("aria-expanded","true"),r.focus();let h=l=>{l.target===r&&S(e,t,s)},a=l=>{l.key==="Escape"&&S(e,t,s)};n&&(r.addEventListener("click",h),window.addEventListener("keyup",a),m.push({element:r,clickEvent:h}),m.push({element:window,keyUpEvent:a}))}return m};var q=e=>{e.querySelectorAll(".content-toggle__toggle").forEach(s=>{let n=s.parentElement?.querySelector(".content-toggle__content");s.setAttribute("aria-expanded","false"),n?.setAttribute("hidden","hidden")})},C=e=>{e.classList.contains("toolbar--no-collapse")||e.classList.remove("toolbar--toggled"),e.classList.remove("toolbar--fully-overflown"),e.classList.remove("toolbar--has-popout");let s=e.querySelector(".toolbar__items")?.children,n="toolbar__item--is-overflown",r="toolbar--has-overflow",m=!1,u=0,h=(a,l)=>{a&&(a.offsetTop>25?(a.classList.add(n),e.classList.add(r),m=!0,u+=1):a.classList.remove(n),m?l-1>=0&&h(s[l-1],l-1):e.classList.remove(r))};h(s[s.length-1],s.length-1),u>0&&u===s.length&&e.classList.add("toolbar--fully-overflown")},le=e=>{let t=[];return e.querySelectorAll(".toolbar__toggle").forEach(n=>{let r=()=>{n?.parentElement?.classList.toggle("toolbar--toggled");let m=n.getAttribute("aria-expanded");if(m!=="true"){let u="a.toolbar__item--is-overflown, button.toolbar__item--is-overflown, input.toolbar__item--is-overflown, select.toolbar__item--is-overflown, .toolbar__item--is-overflown a, .toolbar__item--is-overflown button, .toolbar__item--is-overflown input, .toolbar__item--is-overflown select",h=n?.parentElement?.querySelector(u);h&&setTimeout(()=>{h.focus()},0)}n.setAttribute("aria-expanded",m==="false"?"true":"false")};t.push({element:n,clickEvent:r}),n.addEventListener("click",r)}),t},J=(e,t,s=!0)=>{let n=[];if(C(e),t(e),n=n.concat(le(e)),!s){let r=h=>{!h.target.classList.contains("content-toggle__toggle")&&!y(h,"content-toggle__content")&&t(e)},m=h=>{h.key==="Escape"&&h.target&&h.target.getAttribute("type")!=="search"&&t(e)},u=document.querySelector("body");n.push({element:u,clickEvent:r}),n.push({element:window,keyUpEvent:m}),u?.addEventListener("click",r),window.addEventListener("keyup",m)}return n};var Z=e=>{e.forEach(t=>{t.querySelectorAll(".selection-list").forEach(n=>{n.classList.remove("selection-list--toggled")})})},ee=()=>{let e=[],t=document.querySelectorAll(".selection-list-overlay-container");t.forEach(n=>{let r=n.querySelector("button"),m=()=>{Z(t);let u=r.nextSibling;u&&u.classList.add("selection-list--toggled")};e.push({element:r,clickEvent:m}),r.addEventListener("click",m)});let s=n=>{!n.target.classList.contains("selection-list--overlay")&&!y(n,"selection-list-overlay-container")&&Z(t)};return document.querySelector("body")?.addEventListener("click",s),{pairs:e,element:document.querySelector("body"),clickEvent:s}};var O=e=>{let t=e.querySelector("select"),s=e.querySelector(`label[for="${t?.getAttribute("id")}"]`);if(s){let n=getComputedStyle(s).width;t?.style.setProperty("--label-width",n)}};var te=(e,t)=>{I(t)?e.removeAttribute("hidden"):e.parentElement?.classList.add("truncator--no-truncation")},ne=e=>{let t=e.querySelector(".truncator__expand"),s=e.querySelector(".truncator__content");if(t&&s){t.addEventListener("click",()=>{t.removeAttribute("hidden"),e.classList.add("truncator--no-truncation")}),te(t,s),window.addEventListener("resize",()=>{t.setAttribute("hidden","hidden"),e.classList.remove("truncator--no-truncation"),te(t,s)});let n=s.querySelectorAll(R);n&&n.forEach(r=>{r.addEventListener("focus",()=>{I(r)&&(t.removeAttribute("hidden"),e.classList.add("truncator--no-truncation"))})})}};var M=0;P(()=>{window.top===window.self&&document.querySelector(".atom-picker")&&Y();let e=document.querySelectorAll(".form__field--inline-label--select");e.forEach(a=>{O(a)}),document.querySelectorAll(".nav").forEach(a=>{let l=a.querySelector(".nav__search"),i=a.querySelector(".nav__search-toggle");l&&i&&z(l,i)}),document.querySelectorAll(".copy-to-clipboard").forEach(a=>B(a,document.querySelector("html")?.getAttribute("lang")==="en"?"Copied!":"Kopieret!"));let n=document.querySelectorAll(".horizontal-scroll");n.forEach(a=>{N(a)}),G(),ee();let r=document.querySelectorAll(".sub-nav > button.nav__item");r.forEach(a=>{D(r,a)}),document.querySelectorAll("[data-modal]").forEach(a=>{let l=a.getAttribute("data-modal");document.getElementById(l)?.querySelector(".modal-view__close")?.addEventListener("click",()=>{S(l,a)}),a.addEventListener("click",()=>{Q(l,a)})});let u=document.querySelectorAll(".toolbar");u.forEach(a=>J(a,l=>{q(l)},!1)),document.querySelectorAll(".truncator").forEach(a=>ne(a)),document.documentElement.style.setProperty("--window-inner-height",`${window.innerHeight}px`),k(),window.addEventListener("load",()=>{M=window.innerWidth}),window.addEventListener("resize",()=>{M>0&&window.innerWidth!==M&&(M=window.innerWidth,e.forEach(a=>{O(a)}),u.forEach(a=>{q(a),C(a)}),k(),n.forEach(a=>{a.classList.remove("horizontal-scroll--no-overflow"),N(a)})),document.documentElement.style.setProperty("--window-inner-height",`${window.innerHeight}px`)})});})();
14
- //# sourceMappingURL=demo.js.map
1
+ (()=>{var oe=e=>{document.readyState!=="loading"?e():document.addEventListener("DOMContentLoaded",e)},P=oe;var w=e=>{navigator.clipboard.writeText(e).then(()=>console.log(`${e} written to clipboard`))},y=(e,t)=>{let s=!1;return e.composedPath().forEach(r=>{r.classList&&r.classList.contains(t)&&(s=!0)}),s},T=()=>{let e=document.querySelector("body");if(e){let t=window.getComputedStyle(e).getPropertyValue("--color-background"),s=document.querySelector('meta[name="theme-color"]');if(s)s.content=t;else{let n=document.createElement("meta");n.name="theme-color",n.content=t,document.getElementsByTagName("head")[0].appendChild(n)}}};var k=()=>{let e=window.innerWidth-document.body.clientWidth;document.documentElement.style.setProperty("--vertical-scrollbar-width",`${e}px`)},I=e=>e.offsetHeight!==e.scrollHeight,se=e=>e.offsetWidth!==e.scrollWidth;var N=e=>{e.classList.contains("horizontal-scroll--no-overflow")&&e.classList.remove("horizontal-scroll--no-overflow");let t=e.querySelector(".horizontal-scroll--check-overflow .tabbed-content__section:not([hidden]) .horizontal-scroll__scrollable-content");t===null&&!t&&(t=e.querySelector(".horizontal-scroll--check-overflow .horizontal-scroll__scrollable-content")),t&&(se(t)?t?.setAttribute("tabindex","0"):(e.classList.add("horizontal-scroll--no-overflow"),t?.removeAttribute("tabindex")))},R='a[href]:not([tabindex="-1"]), area[href]:not([tabindex="-1"]), input:not([disabled]):not([tabindex="-1"]), select:not([disabled]):not([tabindex="-1"]), textarea:not([disabled]):not([tabindex="-1"]), button:not([disabled]):not([tabindex="-1"]), iframe:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"]), [contentEditable=true]:not([tabindex="-1"])';var W=(e,t=null)=>{let s="sub-nav--toggled";e.forEach(n=>{n!==t&&(n?.parentElement?.classList.contains(s)&&(n.focus(),n.setAttribute("aria-expanded","false")),n?.parentElement?.classList.remove(s))})},D=(e,t)=>{let s="sub-nav--toggled",n=()=>{t?.parentElement?.classList.toggle(s),t?.parentElement?.classList.contains(s)?t.setAttribute("aria-expanded","true"):t.setAttribute("aria-expanded","false"),W(e,t)};t.addEventListener("click",n);let r=m=>{y(m,"sub-nav")||W(e)};return document.querySelector("body")?.addEventListener("click",r),{buttonClickEvent:n,element:document.querySelector("body"),bodyClickEvent:r}},U=(e,t,s,n,r)=>{if(n&&s){w(n.innerText),t.classList.add("copy-to-clipboard--confirm"),t===s&&t.classList.add("copy-to-clipboard--done");let m=document.createElement("span");m.classList.add("copy-to-clipboard__this__confirm-message"),m.innerText=e,n.appendChild(m),s.removeEventListener("click",r),setTimeout(()=>{t.classList.remove("copy-to-clipboard--confirm"),m.remove(),s.addEventListener("click",r)},1200)}},B=(e,t="Kopieret!")=>{let s=e.querySelector(".copy-to-clipboard__this");if(e.type==="button"){let n=()=>{U(t,e,e,s,n)};e.addEventListener("click",n)}else{let n=e.querySelector(".copy-to-clipboard__execute"),r=()=>{U(t,e,n,s,r)};n?.addEventListener("click",r)}},z=(e,t)=>{let s="nav__search--toggled";t.addEventListener("click",()=>{e.classList.contains(s)?(t.setAttribute("aria-expanded","false"),e.classList.remove(s)):(t.setAttribute("aria-expanded","true"),e.classList.add(s))})};var x=["blue","purple","cyan","turquoise","green","yellow","red","magenta","orange","dark-blue","dark-purple","dark-cyan","dark-turquoise","dark-green","dark-yellow","dark-red","dark-magenta","dark-orange"],j=["default","medium","wide","reset"],E=(e,t)=>{t==null?window.localStorage.removeItem(e):window.localStorage.setItem(e,t)},re=()=>{let e=window.localStorage;return[e.getItem("atom-picker-theme"),e.getItem("atom-picker-style"),e.getItem("atom-picker-position"),e.getItem("atom-picker-scale")]},X=e=>{document.querySelector("body")?.classList.remove(`theme--${e}`)},$=e=>{x.forEach(X),e!=="theme--blue"&&document.querySelector("body")?.classList.add(e),E("atom-picker-theme",e)},V=()=>{let e=document.querySelector("body"),t=document.getElementById("content"),s=document.getElementById("aside"),n="theme--normal",r="theme--dark";e?.classList.remove("body--scrollbar-dark"),t?.classList.contains(n)||e?.classList.toggle(r),t?.classList.remove(n),s&&s.classList.remove(n),E("atom-picker-style",e?.classList.contains(r)?r:null)},F=()=>{let e=document.getElementById("atom-picker"),t="atom-picker--at-top";e?.classList.toggle(t),E("atom-picker-position",e?.classList.contains(t)?t:null)},ie=e=>{document.querySelector("body")?.classList.remove(`view--${e}`)},K=e=>{if(j.forEach(ie),e!=="reset")document.querySelector("body")?.classList.add(e),E("atom-picker-scale",e);else{x.forEach(X),document.querySelector("body")?.classList.add("theme--dark"),document.querySelector("body")?.classList.add("body--scrollbar-dark"),document.getElementById("content")?.classList.add("theme--normal");let t=document.getElementById("aside");t&&t.classList.add("theme--normal"),E("atom-picker-theme",null),E("atom-picker-scale",null),E("atom-picker-position",null),E("atom-picker-style",null),T()}},Y=()=>{let[e,t,s,n]=re();e&&$(e),t&&V(),s&&F(),n&&K(n);let r=document.querySelector(".atom-picker__scale__item__position-toggle");r&&r.addEventListener("click",()=>{F()});let m=document.querySelector(".atom-picker__scale__item__theme-style");m&&m.addEventListener("click",()=>{V(),T()}),j.forEach(u=>{let h=document.querySelector(`.atom-picker__scale__item__${u}`);h&&h.addEventListener("click",()=>{K(u==="reset"?"reset":`view--${u}`)})}),x.forEach(u=>{let h=document.querySelector(`.atom-picker__color__item.theme--${u}`);h&&h.addEventListener("click",()=>{$(`theme--${u}`),T()})})};var ae=()=>{document.querySelectorAll(".color-atom__colors > div").forEach(t=>{t.addEventListener("click",()=>{let s=window.getComputedStyle(t,":before").getPropertyValue("content");w(s.replace(/"/g,""))})})},G=ae;var H=function(){function e(t,s){for(var n=0;n<s.length;n++){var r=s[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(t,s,n){return s&&e(t.prototype,s),n&&e(t,n),t}}();function A(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(function(){if(typeof window>"u")return;var e=Array.prototype.slice,t=Element.prototype.matches||Element.prototype.msMatchesSelector,s=["a[href]","area[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","details","summary","iframe","object","embed","[contenteditable]"].join(","),n=function(){function l(i,o){A(this,l),this._inertManager=o,this._rootElement=i,this._managedNodes=new Set,this._rootElement.hasAttribute("aria-hidden")?this._savedAriaHidden=this._rootElement.getAttribute("aria-hidden"):this._savedAriaHidden=null,this._rootElement.setAttribute("aria-hidden","true"),this._makeSubtreeUnfocusable(this._rootElement),this._observer=new MutationObserver(this._onMutation.bind(this)),this._observer.observe(this._rootElement,{attributes:!0,childList:!0,subtree:!0})}return H(l,[{key:"destructor",value:function(){this._observer.disconnect(),this._rootElement&&(this._savedAriaHidden!==null?this._rootElement.setAttribute("aria-hidden",this._savedAriaHidden):this._rootElement.removeAttribute("aria-hidden")),this._managedNodes.forEach(function(o){this._unmanageNode(o.node)},this),this._observer=null,this._rootElement=null,this._managedNodes=null,this._inertManager=null}},{key:"_makeSubtreeUnfocusable",value:function(o){var c=this;u(o,function(v){return c._visitNode(v)});var d=document.activeElement;if(!document.body.contains(o)){for(var f=o,g=void 0;f;){if(f.nodeType===Node.DOCUMENT_FRAGMENT_NODE){g=f;break}f=f.parentNode}g&&(d=g.activeElement)}o.contains(d)&&(d.blur(),d===document.activeElement&&document.body.focus())}},{key:"_visitNode",value:function(o){if(o.nodeType===Node.ELEMENT_NODE){var c=o;c!==this._rootElement&&c.hasAttribute("inert")&&this._adoptInertRoot(c),(t.call(c,s)||c.hasAttribute("tabindex"))&&this._manageNode(c)}}},{key:"_manageNode",value:function(o){var c=this._inertManager.register(o,this);this._managedNodes.add(c)}},{key:"_unmanageNode",value:function(o){var c=this._inertManager.deregister(o,this);c&&this._managedNodes.delete(c)}},{key:"_unmanageSubtree",value:function(o){var c=this;u(o,function(d){return c._unmanageNode(d)})}},{key:"_adoptInertRoot",value:function(o){var c=this._inertManager.getInertRoot(o);c||(this._inertManager.setInert(o,!0),c=this._inertManager.getInertRoot(o)),c.managedNodes.forEach(function(d){this._manageNode(d.node)},this)}},{key:"_onMutation",value:function(o,c){o.forEach(function(d){var f=d.target;if(d.type==="childList")e.call(d.addedNodes).forEach(function(v){this._makeSubtreeUnfocusable(v)},this),e.call(d.removedNodes).forEach(function(v){this._unmanageSubtree(v)},this);else if(d.type==="attributes"){if(d.attributeName==="tabindex")this._manageNode(f);else if(f!==this._rootElement&&d.attributeName==="inert"&&f.hasAttribute("inert")){this._adoptInertRoot(f);var g=this._inertManager.getInertRoot(f);this._managedNodes.forEach(function(v){f.contains(v.node)&&g._manageNode(v.node)})}}},this)}},{key:"managedNodes",get:function(){return new Set(this._managedNodes)}},{key:"hasSavedAriaHidden",get:function(){return this._savedAriaHidden!==null}},{key:"savedAriaHidden",set:function(o){this._savedAriaHidden=o},get:function(){return this._savedAriaHidden}}]),l}(),r=function(){function l(i,o){A(this,l),this._node=i,this._overrodeFocusMethod=!1,this._inertRoots=new Set([o]),this._savedTabIndex=null,this._destroyed=!1,this.ensureUntabbable()}return H(l,[{key:"destructor",value:function(){if(this._throwIfDestroyed(),this._node&&this._node.nodeType===Node.ELEMENT_NODE){var o=this._node;this._savedTabIndex!==null?o.setAttribute("tabindex",this._savedTabIndex):o.removeAttribute("tabindex"),this._overrodeFocusMethod&&delete o.focus}this._node=null,this._inertRoots=null,this._destroyed=!0}},{key:"_throwIfDestroyed",value:function(){if(this.destroyed)throw new Error("Trying to access destroyed InertNode")}},{key:"ensureUntabbable",value:function(){if(this.node.nodeType===Node.ELEMENT_NODE){var o=this.node;if(t.call(o,s)){if(o.tabIndex===-1&&this.hasSavedTabIndex)return;o.hasAttribute("tabindex")&&(this._savedTabIndex=o.tabIndex),o.setAttribute("tabindex","-1"),o.nodeType===Node.ELEMENT_NODE&&(o.focus=function(){},this._overrodeFocusMethod=!0)}else o.hasAttribute("tabindex")&&(this._savedTabIndex=o.tabIndex,o.removeAttribute("tabindex"))}}},{key:"addInertRoot",value:function(o){this._throwIfDestroyed(),this._inertRoots.add(o)}},{key:"removeInertRoot",value:function(o){this._throwIfDestroyed(),this._inertRoots.delete(o),this._inertRoots.size===0&&this.destructor()}},{key:"destroyed",get:function(){return this._destroyed}},{key:"hasSavedTabIndex",get:function(){return this._savedTabIndex!==null}},{key:"node",get:function(){return this._throwIfDestroyed(),this._node}},{key:"savedTabIndex",set:function(o){this._throwIfDestroyed(),this._savedTabIndex=o},get:function(){return this._throwIfDestroyed(),this._savedTabIndex}}]),l}(),m=function(){function l(i){if(A(this,l),!i)throw new Error("Missing required argument; InertManager needs to wrap a document.");this._document=i,this._managedNodes=new Map,this._inertRoots=new Map,this._observer=new MutationObserver(this._watchForInert.bind(this)),h(i.head||i.body||i.documentElement),i.readyState==="loading"?i.addEventListener("DOMContentLoaded",this._onDocumentLoaded.bind(this)):this._onDocumentLoaded()}return H(l,[{key:"setInert",value:function(o,c){if(c){if(this._inertRoots.has(o))return;var d=new n(o,this);if(o.setAttribute("inert",""),this._inertRoots.set(o,d),!this._document.body.contains(o))for(var f=o.parentNode;f;)f.nodeType===11&&h(f),f=f.parentNode}else{if(!this._inertRoots.has(o))return;var g=this._inertRoots.get(o);g.destructor(),this._inertRoots.delete(o),o.removeAttribute("inert")}}},{key:"getInertRoot",value:function(o){return this._inertRoots.get(o)}},{key:"register",value:function(o,c){var d=this._managedNodes.get(o);return d!==void 0?d.addInertRoot(c):d=new r(o,c),this._managedNodes.set(o,d),d}},{key:"deregister",value:function(o,c){var d=this._managedNodes.get(o);return d?(d.removeInertRoot(c),d.destroyed&&this._managedNodes.delete(o),d):null}},{key:"_onDocumentLoaded",value:function(){var o=e.call(this._document.querySelectorAll("[inert]"));o.forEach(function(c){this.setInert(c,!0)},this),this._observer.observe(this._document.body||this._document.documentElement,{attributes:!0,subtree:!0,childList:!0})}},{key:"_watchForInert",value:function(o,c){var d=this;o.forEach(function(f){switch(f.type){case"childList":e.call(f.addedNodes).forEach(function(b){if(b.nodeType===Node.ELEMENT_NODE){var p=e.call(b.querySelectorAll("[inert]"));t.call(b,"[inert]")&&p.unshift(b),p.forEach(function(_){this.setInert(_,!0)},d)}},d);break;case"attributes":if(f.attributeName!=="inert")return;var g=f.target,v=g.hasAttribute("inert");d.setInert(g,v);break}},this)}}]),l}();function u(l,i,o){if(l.nodeType==Node.ELEMENT_NODE){var c=l;i&&i(c);var d=c.shadowRoot;if(d){u(d,i,d);return}if(c.localName=="content"){for(var f=c,g=f.getDistributedNodes?f.getDistributedNodes():[],v=0;v<g.length;v++)u(g[v],i,o);return}if(c.localName=="slot"){for(var b=c,p=b.assignedNodes?b.assignedNodes({flatten:!0}):[],_=0;_<p.length;_++)u(p[_],i,o);return}}for(var L=l.firstChild;L!=null;)u(L,i,o),L=L.nextSibling}function h(l){if(!l.querySelector("style#inert-style, link#inert-style")){var i=document.createElement("style");i.setAttribute("id","inert-style"),i.textContent=`
2
+ [inert] {
3
+ pointer-events: none;
4
+ cursor: default;
5
+ }
6
+
7
+ [inert], [inert] * {
8
+ -webkit-user-select: none;
9
+ -moz-user-select: none;
10
+ -ms-user-select: none;
11
+ user-select: none;
12
+ }
13
+ `,l.appendChild(i)}}if(!HTMLElement.prototype.hasOwnProperty("inert")){var a=new m(document);Object.defineProperty(HTMLElement.prototype,"inert",{enumerable:!0,get:function(){return this.hasAttribute("inert")},set:function(i){a.setInert(this,i)}})}})();var S=(e,t,s=()=>{})=>{let n=document.getElementById(e);if(n){n.classList.remove("modal-view--visible"),n.inert=!0;let r=document.querySelector(".page");r.classList.remove("page--blur"),r.inert=!1,document.querySelector("body")?.classList.remove("body--no-scroll"),t.focus(),t.setAttribute("aria-expanded","false"),s()}},Q=(e,t,s=()=>{},n=!0)=>{let r=document.getElementById(e),m=[];if(r){r.classList.add("modal-view--visible"),r.inert=!1;let u=document.querySelector(".page");u.classList.add("page--blur"),u.inert=!0,document.querySelector("body")?.classList.add("body--no-scroll"),t.setAttribute("aria-expanded","true"),r.focus();let h=l=>{l.target===r&&S(e,t,s)},a=l=>{l.key==="Escape"&&S(e,t,s)};n&&(r.addEventListener("click",h),window.addEventListener("keyup",a),m.push({element:r,clickEvent:h}),m.push({element:window,keyUpEvent:a}))}return m};var q=e=>{e.querySelectorAll(".content-toggle__toggle").forEach(s=>{let n=s.parentElement?.querySelector(".content-toggle__content");s.setAttribute("aria-expanded","false"),n?.setAttribute("hidden","hidden")})},C=e=>{e.classList.contains("toolbar--no-collapse")||e.classList.remove("toolbar--toggled"),e.classList.remove("toolbar--fully-overflown"),e.classList.remove("toolbar--has-popout");let s=e.querySelector(".toolbar__items")?.children,n="toolbar__item--is-overflown",r="toolbar--has-overflow",m=!1,u=0,h=(a,l)=>{a&&(a.offsetTop>25?(a.classList.add(n),e.classList.add(r),m=!0,u+=1):a.classList.remove(n),m?l-1>=0&&h(s[l-1],l-1):e.classList.remove(r))};h(s[s.length-1],s.length-1),u>0&&u===s.length&&e.classList.add("toolbar--fully-overflown")},le=e=>{let t=[];return e.querySelectorAll(".toolbar__toggle").forEach(n=>{let r=()=>{n?.parentElement?.classList.toggle("toolbar--toggled");let m=n.getAttribute("aria-expanded");if(m!=="true"){let u="a.toolbar__item--is-overflown, button.toolbar__item--is-overflown, input.toolbar__item--is-overflown, select.toolbar__item--is-overflown, .toolbar__item--is-overflown a, .toolbar__item--is-overflown button, .toolbar__item--is-overflown input, .toolbar__item--is-overflown select",h=n?.parentElement?.querySelector(u);h&&setTimeout(()=>{h.focus()},0)}n.setAttribute("aria-expanded",m==="false"?"true":"false")};t.push({element:n,clickEvent:r}),n.addEventListener("click",r)}),t},J=(e,t,s=!0)=>{let n=[];if(C(e),t(e),n=n.concat(le(e)),!s){let r=h=>{!h.target.classList.contains("content-toggle__toggle")&&!y(h,"content-toggle__content")&&t(e)},m=h=>{h.key==="Escape"&&h.target&&h.target.getAttribute("type")!=="search"&&t(e)},u=document.querySelector("body");n.push({element:u,clickEvent:r}),n.push({element:window,keyUpEvent:m}),u?.addEventListener("click",r),window.addEventListener("keyup",m)}return n};var Z=e=>{e.forEach(t=>{t.querySelectorAll(".selection-list").forEach(n=>{n.classList.remove("selection-list--toggled")})})},ee=()=>{let e=[],t=document.querySelectorAll(".selection-list-overlay-container");t.forEach(n=>{let r=n.querySelector("button"),m=()=>{Z(t);let u=r.nextSibling;u&&u.classList.add("selection-list--toggled")};e.push({element:r,clickEvent:m}),r.addEventListener("click",m)});let s=n=>{!n.target.classList.contains("selection-list--overlay")&&!y(n,"selection-list-overlay-container")&&Z(t)};return document.querySelector("body")?.addEventListener("click",s),{pairs:e,element:document.querySelector("body"),clickEvent:s}};var O=e=>{let t=e.querySelector("select"),s=e.querySelector(`label[for="${t?.getAttribute("id")}"]`);if(s){let n=getComputedStyle(s).width;t?.style.setProperty("--label-width",n)}};var te=(e,t)=>{I(t)?e.removeAttribute("hidden"):e.parentElement?.classList.add("truncator--no-truncation")},ne=e=>{let t=e.querySelector(".truncator__expand"),s=e.querySelector(".truncator__content");if(t&&s){t.addEventListener("click",()=>{t.removeAttribute("hidden"),e.classList.add("truncator--no-truncation")}),te(t,s),window.addEventListener("resize",()=>{t.setAttribute("hidden","hidden"),e.classList.remove("truncator--no-truncation"),te(t,s)});let n=s.querySelectorAll(R);n&&n.forEach(r=>{r.addEventListener("focus",()=>{I(r)&&(t.removeAttribute("hidden"),e.classList.add("truncator--no-truncation"))})})}};var M=0;P(()=>{window.top===window.self&&document.querySelector(".atom-picker")&&Y();let e=document.querySelectorAll(".form__field--inline-label--select");e.forEach(a=>{O(a)}),document.querySelectorAll(".nav").forEach(a=>{let l=a.querySelector(".nav__search"),i=a.querySelector(".nav__search-toggle");l&&i&&z(l,i)}),document.querySelectorAll(".copy-to-clipboard").forEach(a=>B(a,document.querySelector("html")?.getAttribute("lang")==="en"?"Copied!":"Kopieret!"));let n=document.querySelectorAll(".horizontal-scroll");n.forEach(a=>{N(a)}),G(),ee();let r=document.querySelectorAll(".sub-nav > button.nav__item");r.forEach(a=>{D(r,a)}),document.querySelectorAll("[data-modal]").forEach(a=>{let l=a.getAttribute("data-modal");document.getElementById(l)?.querySelector(".modal-view__close")?.addEventListener("click",()=>{S(l,a)}),a.addEventListener("click",()=>{Q(l,a)})});let u=document.querySelectorAll(".toolbar");u.forEach(a=>J(a,l=>{q(l)},!1)),document.querySelectorAll(".truncator").forEach(a=>ne(a)),document.documentElement.style.setProperty("--window-inner-height",`${window.innerHeight}px`),k(),window.addEventListener("load",()=>{M=window.innerWidth}),window.addEventListener("resize",()=>{M>0&&window.innerWidth!==M&&(M=window.innerWidth,e.forEach(a=>{O(a)}),u.forEach(a=>{q(a),C(a)}),k(),n.forEach(a=>{a.classList.remove("horizontal-scroll--no-overflow"),N(a)})),document.documentElement.style.setProperty("--window-inner-height",`${window.innerHeight}px`)})});})();
14
+ //# sourceMappingURL=demo.js.map