{"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":""}