{"version":3,"file":"9476.5552f5b18f85e0b25ba1.js","mappings":"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","sources":["webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactComponents/Shared/Constants/breakpoints.js","webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactComponents/Author/author-archive-section.js","webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactComponents/Author/author-archive.js","webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactComponents/Shared/Utils/throttle.js","webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactComponents/Shared/Utils/debounce.ts","webpack://gyldendal-uddannelse/./src/Foundation/Frontend/ReactViews/AuthorArchive/author-archive-view.js"],"sourcesContent":["export const Breakpoints = {\r\n ant: 0,\r\n cat: 640,\r\n dog: 768,\r\n lion: 920,\r\n horse: 1024,\r\n rhino: 1200,\r\n elephant: 1440,\r\n breakpointNavigation: 1240,\r\n breakpointHeader: 767\r\n};\r\n","import React, { Component } from \"react\";\r\nimport classNames from \"classnames\";\r\n\r\nclass AuthorArchiveSection extends Component {\r\n constructor() {\r\n super();\r\n\r\n this.state = {\r\n isOpen: false\r\n };\r\n\r\n this.toggle = this.toggle.bind(this);\r\n }\r\n\r\n toggle() {\r\n this.props.onToggleSection();\r\n\r\n this.setState({\r\n isOpen: !this.state.isOpen\r\n });\r\n }\r\n\r\n render() {\r\n const group = this.props.group;\r\n const canOpen = group.Authors.length > 5;\r\n const rootClasses = classNames({\r\n \"author-archive__list-section\": true,\r\n canOpen: canOpen,\r\n isOpen: this.state.isOpen,\r\n isEmpty: group.Authors.length < 1\r\n });\r\n const arrowClasses = classNames({\r\n \"arrow-icon\": true,\r\n \"arrow-icon-down\": !this.state.isOpen,\r\n \"arrow-icon-up\": this.state.isOpen\r\n });\r\n\r\n return (\r\n <div\r\n id={group.Title}\r\n className={rootClasses}\r\n ref={elm => {\r\n this.rootElm = elm;\r\n }}\r\n >\r\n <div>\r\n <h3 className=\"author-archive__list-section__header\">{group.Title}</h3>\r\n <ul className=\"author-archive__list-section__list\">\r\n {group.Authors.length > 0 &&\r\n group.Authors &&\r\n group.Authors.map((author, index) => (\r\n <li key={index} className=\"author-archive__list__item\">\r\n <a\r\n href={author.AuthorDetailsPageLink}\r\n dangerouslySetInnerHTML={{ __html: author.AuthorName }}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {canOpen && (\r\n <button\r\n aria-label={`${this.state.isOpen ? \"Vis færre\" : \"Vis flere\"}`}\r\n aria-expanded={this.state.isOpen}\r\n className=\"author-archive__list-section__view-more-btn\"\r\n onClick={this.toggle}\r\n >\r\n <div className={arrowClasses}></div>\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default AuthorArchiveSection;\r\n","import React, { Component } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport AuthorArchiveSection from \"ReactComponents/Author/author-archive-section\";\r\nimport { Breakpoints } from \"ReactComponents/Shared/Constants/breakpoints\";\r\nimport { debounce } from \"ReactComponents/Shared/Utils/debounce\";\r\nimport { throttle } from \"ReactComponents/Shared/Utils/throttle\";\r\n\r\nclass AuthorArchive extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n activeAlphabetIndex: 0,\r\n alphabetIndexArray: [],\r\n isMenuGloballySticky: false,\r\n isMenuBottomAligned: false,\r\n isMenuVertical: null,\r\n minMenuHeight: null,\r\n wrapperTopDist: null,\r\n wrapperBottomDist: null,\r\n sectionsListLastChildTopDist: null,\r\n winHeight: 0\r\n };\r\n\r\n this.handleMenu = this.handleMenu.bind(this);\r\n this.handleResize = this.handleResize.bind(this);\r\n this.setResizeParameters = this.setResizeParameters.bind(this);\r\n this.setScrollingParameters = this.setScrollingParameters.bind(this);\r\n this.setLetterIndexing = this.setLetterIndexing.bind(this);\r\n this.handleScroll = this.handleScroll.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (global.canUseDOM) {\r\n window.addEventListener(\"scroll\", this.handleScroll);\r\n window.addEventListener(\"resize\", this.handleResize);\r\n this.setResizeParameters();\r\n this.setScrollingParameters();\r\n this.handleMenu();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (global.canUseDOM) {\r\n window.removeEventListener(\"scroll\", this.handleScroll);\r\n window.removeEventListener(\"resize\", this.handleResize);\r\n }\r\n }\r\n\r\n handleResize() {\r\n this.setResizeParameters();\r\n this.setScrollingParameters();\r\n this.handleMenu();\r\n }\r\n\r\n handleScroll() {\r\n throttle(this.handleMenu, 50)();\r\n debounce(this.handleMenu, 500)();\r\n }\r\n\r\n handleMenu() {\r\n if (global.canUseDOM) {\r\n const wrapperTopDist = this.state.wrapperTopDist;\r\n const wrapperBottomDist = this.state.wrapperBottomDist;\r\n const sectionsListLastChildTopDist = this.state.sectionsListLastChildTopDist;\r\n const isMenuVertical = this.state.isMenuVertical;\r\n const minMenuHeight = this.state.minMenuHeight;\r\n const scrollDist = typeof window.scrollY === \"undefined\" ? window.pageYOffset : window.scrollY;\r\n const isWrapperTopAboveHeader = wrapperTopDist && scrollDist >= wrapperTopDist - minMenuHeight;\r\n const isWrapperBottomAboveFold =\r\n wrapperBottomDist && scrollDist > wrapperBottomDist - window.innerHeight;\r\n const isSectionsListLastChildAboveHeader =\r\n sectionsListLastChildTopDist && scrollDist >= sectionsListLastChildTopDist - minMenuHeight;\r\n\r\n //change: optimized a bit\r\n let activeIndex = 0;\r\n let threshold = 0;\r\n\r\n if (scrollDist > 0) {\r\n //this.setActiveIndex(scrollDist); //denne function bruger this.setState - den må den helst ikke fordi vi så ændre state mere en en gang på et scroll event.\r\n const alphabetIndexArray = this.state.alphabetIndexArray || [];\r\n threshold = scrollDist + minMenuHeight - 50;\r\n /* activeIndex = alphabetIndexArray.findIndex(n => {\r\n return n > threshold\r\n });*/\r\n //forsøger at finde den tætteste i stedet for den første over threshold\r\n activeIndex =\r\n alphabetIndexArray.length > 0\r\n ? alphabetIndexArray.reduce((prev, curr) => {\r\n return Math.abs(curr - threshold) < Math.abs(prev - threshold) ? curr : prev;\r\n })\r\n : 0;\r\n\r\n activeIndex = alphabetIndexArray.indexOf(activeIndex);\r\n }\r\n const aiResult = activeIndex || activeIndex == 0 ? activeIndex : this.state.activeAlphabetIndex;\r\n //end change\r\n\r\n if (isMenuVertical && isWrapperBottomAboveFold) {\r\n this.setState({\r\n isMenuGloballySticky: false,\r\n isMenuBottomAligned: true,\r\n activeAlphabetIndex: aiResult //added\r\n });\r\n } else if (!isMenuVertical && isSectionsListLastChildAboveHeader) {\r\n this.setState({\r\n isMenuGloballySticky: false,\r\n isMenuBottomAligned: false,\r\n activeAlphabetIndex: aiResult //added\r\n });\r\n } else if (isWrapperTopAboveHeader) {\r\n this.setState({\r\n isMenuGloballySticky: true,\r\n isMenuBottomAligned: false,\r\n activeAlphabetIndex: aiResult //added\r\n });\r\n } else {\r\n this.setState({\r\n isMenuGloballySticky: false,\r\n isMenuBottomAligned: false,\r\n activeAlphabetIndex: aiResult //added\r\n });\r\n }\r\n }\r\n }\r\n\r\n setResizeParameters() {\r\n const isMenuVertical = window.matchMedia(\r\n \"(max-width: \" + Breakpoints.breakpointNavigation + \"px)\"\r\n ).matches;\r\n const isMenuVerticalChanged = this.state.isMenuVertical !== isMenuVertical;\r\n const minMenuHeight = 80;\r\n const minMenuHeightChanged = this.state.minMenuHeight !== minMenuHeight;\r\n const winHeight = window.innerHeight;\r\n\r\n if (isMenuVerticalChanged || minMenuHeightChanged) {\r\n this.setState({\r\n isMenuVertical: isMenuVertical,\r\n minMenuHeight: minMenuHeight,\r\n winHeight: winHeight\r\n });\r\n }\r\n\r\n setTimeout(this.setLetterIndexing, 250);\r\n }\r\n\r\n setScrollingParameters() {\r\n const scrollDist = typeof window.scrollY === \"undefined\" ? window.pageYOffset : window.scrollY;\r\n const wrapperTopDist = this.contentWrapperElm.getBoundingClientRect().top;\r\n const wrapperBottomDist = this.contentWrapperElm.getBoundingClientRect().bottom;\r\n const sectionsListLastChildTopDist =\r\n this.refs.authorSectionsList.lastElementChild.getBoundingClientRect().top;\r\n\r\n this.setState({\r\n wrapperTopDist: wrapperTopDist + scrollDist,\r\n wrapperBottomDist: wrapperBottomDist + scrollDist,\r\n sectionsListLastChildTopDist: sectionsListLastChildTopDist + scrollDist\r\n });\r\n }\r\n\r\n setActiveIndex() {\r\n /* const alphabetIndexArray = this.state.alphabetIndexArray;\r\n const threshold = scrollDist - this.state.minMenuHeight + 50;\r\n const activeAlphabetIndex = alphabetIndexArray.findIndex(n => n > threshold);\r\n\r\n this.setState({\r\n activeAlphabetIndex: activeAlphabetIndex\r\n });*/\r\n }\r\n\r\n setLetterIndexing() {\r\n const scrollDist = typeof window.scrollY === \"undefined\" ? window.pageYOffset : window.scrollY;\r\n const authorSectionsList = this.refs.authorSectionsList.children;\r\n const alphabetIndexArray = [];\r\n\r\n for (var i = 0; i < authorSectionsList.length; i++) {\r\n const item = authorSectionsList[i];\r\n const itemY = item.getBoundingClientRect().top + scrollDist;\r\n\r\n alphabetIndexArray.push(itemY);\r\n }\r\n\r\n this.setState({\r\n alphabetIndexArray: alphabetIndexArray\r\n });\r\n\r\n setTimeout(this.handleMenu, 250);\r\n }\r\n\r\n onToggleSection() {\r\n // TODO: This doewn't work... should update the indexing and hence handle scrolling anew with the longer/shorter list!!\r\n setTimeout(this.setLetterIndexing, 250);\r\n }\r\n\r\n gotoSection(id) {\r\n const authorSectionsList = this.refs.authorSectionsList.children;\r\n\r\n for (var i = 0; i < authorSectionsList.length; i++) {\r\n const item = authorSectionsList[i];\r\n\r\n if (item.id === id) {\r\n const bodyRect = document.body.getBoundingClientRect();\r\n const elemRect = item.getBoundingClientRect();\r\n const menuCompensation = this.state.minMenuHeight + 20;\r\n const offset = elemRect.top - bodyRect.top - menuCompensation;\r\n\r\n if (window) {\r\n window.scrollTo({ top: offset, behavior: \"smooth\" });\r\n }\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const contentWrapperClasses = classNames({\r\n \"author-archive__content-wrapper\": true,\r\n isMenuBottomAligned: this.state.isMenuBottomAligned,\r\n isMenuGloballySticky: this.state.isMenuGloballySticky\r\n });\r\n\r\n return (\r\n <div className=\"author-archive\">\r\n <div className=\"author-archive__intro\">\r\n <h1\r\n className=\"author-archive__intro__header\"\r\n dangerouslySetInnerHTML={{ __html: this.props.TitleText }}\r\n />\r\n <p\r\n className=\"author-archive__intro__description\"\r\n dangerouslySetInnerHTML={{ __html: this.props.DescriptionText }}\r\n />\r\n </div>\r\n <div\r\n className={contentWrapperClasses}\r\n ref={elm => {\r\n this.contentWrapperElm = elm;\r\n }}\r\n >\r\n <ul\r\n className=\"author-archive__alphabet-menu\"\r\n ref={elm => {\r\n this.menuElm = elm;\r\n }}\r\n >\r\n {this.props.AlphabetFilters &&\r\n this.props.AlphabetFilters.map((group, index) => {\r\n const isActive = index === this.state.activeAlphabetIndex;\r\n const isDisabled = group.Authors.length == 0;\r\n const rootClasses = classNames({\r\n \"author-archive__alphabet-menu__item\": true,\r\n isActive: isActive,\r\n isDisabled: isDisabled\r\n });\r\n\r\n return (\r\n <li key={index} className={rootClasses} disabled={isDisabled}>\r\n <a\r\n href={\"#\" + group.Title}\r\n onClick={e => {\r\n e.preventDefault();\r\n this.gotoSection(group.Title);\r\n }}\r\n >\r\n <span dangerouslySetInnerHTML={{ __html: group.Title }} />\r\n </a>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n <div className=\"author-archive__list-container\">\r\n <div className=\"author-archive__list\" ref=\"authorSectionsList\">\r\n {this.props.AlphabetFilters &&\r\n this.props.AlphabetFilters.map((group, index) => {\r\n return (\r\n <AuthorArchiveSection\r\n key={index}\r\n group={group}\r\n onToggleSection={() => {\r\n this.onToggleSection();\r\n }}\r\n />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default AuthorArchive;\r\n","export const throttle = function (fn, threshhold, scope) {\r\n threshhold || (threshhold = 250);\r\n var last, deferTimer;\r\n return function () {\r\n var context = scope || this;\r\n\r\n var now = +new Date(),\r\n args = arguments;\r\n if (last && now < last + threshhold) {\r\n clearTimeout(deferTimer);\r\n deferTimer = setTimeout(function () {\r\n last = now;\r\n fn.apply(context, args);\r\n }, threshhold);\r\n } else {\r\n last = now;\r\n fn.apply(context, args);\r\n }\r\n };\r\n};\r\n","export const debounce = function <A extends any[], F extends (...args: A) => R, R = void>(\r\n func: F,\r\n wait = 250,\r\n immediate = false\r\n) {\r\n let timeoutId: NodeJS.Timeout | null;\r\n\r\n return function (this: ThisParameterType<F>, ...args: Parameters<F>) {\r\n const later = () => {\r\n timeoutId = null;\r\n if (!immediate) func.apply(this, args);\r\n };\r\n const callNow = immediate && !timeoutId;\r\n timeoutId && clearTimeout(timeoutId);\r\n\r\n timeoutId = setTimeout(later, wait);\r\n if (callNow) func.apply(this, args);\r\n };\r\n};\r\n","import * as React from \"react\";\r\nimport AuthorArchive from \"@/ReactComponents/Author/author-archive\";\r\n\r\nconst AuthorArchiveView = props => <AuthorArchive {...props} />;\r\n\r\nexport default AuthorArchiveView;\r\n"],"names":["Breakpoints","ant","cat","dog","lion","horse","rhino","elephant","breakpointNavigation","breakpointHeader","AuthorArchiveSection","state","isOpen","toggle","bind","this","props","onToggleSection","setState","render","group","canOpen","Authors","length","rootClasses","classNames","isEmpty","arrowClasses","div","id","Title","className","ref","elm","rootElm","h3","ul","map","author","index","li","key","a","href","AuthorDetailsPageLink","dangerouslySetInnerHTML","__html","AuthorName","button","aria-label","aria-expanded","onClick","Component","AuthorArchive","activeAlphabetIndex","alphabetIndexArray","isMenuGloballySticky","isMenuBottomAligned","isMenuVertical","minMenuHeight","wrapperTopDist","wrapperBottomDist","sectionsListLastChildTopDist","winHeight","handleMenu","handleResize","setResizeParameters","setScrollingParameters","setLetterIndexing","handleScroll","componentDidMount","global","canUseDOM","window","addEventListener","componentWillUnmount","removeEventListener","fn","threshhold","last","deferTimer","context","now","Date","args","arguments","clearTimeout","setTimeout","apply","func","timeoutId","wait","immediate","later","callNow","debounce","scrollDist","scrollY","pageYOffset","isWrapperTopAboveHeader","isWrapperBottomAboveFold","innerHeight","isSectionsListLastChildAboveHeader","activeIndex","threshold","aiResult","minMenuHeightChanged","isMenuVerticalChanged","contentWrapperElm","getBoundingClientRect","lastElementChild","item","authorSectionsList","elemRect","scrollTo","behavior","DescriptionText","contentWrapperClasses","menuElm","AlphabetFilters","isDisabled","isActive","disabled","e","gotoSection"],"sourceRoot":""}