{"version":3,"file":"static/js/361.fcc599a9.chunk.js","mappings":"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","sources":["components/Card.js","plugins/BaseWindowPlugin.js","plugins/DocumentHandler/documentWindow/Contents.js","plugins/DocumentHandler/documentWindow/DocumentViewer.js","plugins/DocumentHandler/documentWindow/DocumentWindowBase.js","plugins/DocumentHandler/documentWindow/ImagePopupModal.js","plugins/DocumentHandler/documentWindow/Progress.js","plugins/DocumentHandler/documentWindow/ScrollToTop.js","plugins/DocumentHandler/documentWindow/TableOfContents.js"],"sourcesContent":["import React from \"react\";\nimport propTypes from \"prop-types\";\nimport { styled } from \"@mui/material/styles\";\nimport {\n Card as MUICard,\n CardHeader,\n CardActionArea,\n Avatar,\n} from \"@mui/material\";\n\nconst StyledCard = styled(MUICard)(({ theme }) => ({\n marginBottom: theme.spacing(1),\n width: \"210px\",\n [theme.breakpoints.down(\"sm\")]: {\n boxShadow: \"none\",\n borderBottom: \"1px solid #ccc\",\n borderRadius: 0,\n margin: 0,\n width: \"100%\",\n justifyContent: \"left\",\n },\n}));\n\nconst StyledAvatar = styled(Avatar)(({ theme }) => ({\n background: theme.palette.text.primary,\n}));\n\nclass Card extends React.PureComponent {\n state = {\n open: false,\n text: \"\",\n };\n\n static propTypes = {\n abstract: propTypes.string.isRequired,\n icon: propTypes.object.isRequired,\n onClick: propTypes.func.isRequired,\n title: propTypes.string.isRequired,\n };\n\n static defaultProps = {\n abstract: \"Beskrivning saknas\",\n title: \"Titel saknas\",\n };\n\n render() {\n const { abstract, icon, onClick, title } = this.props;\n\n return (\n \n \n {icon}}\n title={title}\n subheader={abstract}\n />\n \n \n );\n }\n}\n\nexport default Card;\n","import React from \"react\";\nimport propTypes from \"prop-types\";\nimport { isMobile } from \"./../utils/IsMobile\";\nimport { createPortal } from \"react-dom\";\nimport { Hidden, ListItem, ListItemIcon, ListItemText } from \"@mui/material\";\nimport Window from \"../components/Window.js\";\nimport Card from \"../components/Card.js\";\nimport PluginControlButton from \"../components/PluginControlButton\";\n\nclass BaseWindowPlugin extends React.PureComponent {\n static propTypes = {\n app: propTypes.object.isRequired,\n children: propTypes.object.isRequired,\n custom: propTypes.object.isRequired,\n map: propTypes.object.isRequired,\n options: propTypes.object.isRequired,\n type: propTypes.string.isRequired,\n };\n\n constructor(props) {\n super(props);\n // 'type' is basically a unique identifier for each plugin\n this.type = props.type.toLowerCase() || undefined;\n\n // There will be defaults in props.custom, so that each plugin has own default title/description\n this.description = props.options.description || props.custom.description;\n\n // Should Window be visible at start?\n const visibleAtStart =\n (this.props.app.config.mapConfig.map.clean === false && // Never show in clean mode\n (isMobile\n ? props.options.visibleAtStartMobile\n : props.options.visibleAtStart)) ||\n false;\n\n // If plugin is shown at start, we want to register it as shown in the Analytics module too.\n // Normally, the event would be sent when user clicks on the button that activates the plugin,\n // but in this case there won't be any click as the window will be visible at start.\n if (visibleAtStart) {\n this.props.app.globalObserver.publish(\"analytics.trackEvent\", {\n eventName: \"pluginShown\",\n pluginName: this.type,\n activeMap: this.props.app.config.activeMap,\n });\n }\n\n // Title and Color are kept in state and not as class properties. Keeping them in state\n // ensures re-render when new props arrive and update the state variables (see componentDidUpdate() too).\n this.state = {\n title: props.options.title || props.custom.title || \"Unnamed plugin\",\n color: props.options.color || props.custom.color || null,\n windowVisible: visibleAtStart,\n };\n\n // Title is a special case: we want to use the state.title and pass on to Window in order\n // to update Window's title dynamically. At the same time, we want all other occurrences,\n // e.g. Widget or Drawer button's label to remain the same.\n this.title = props.options.title || props.custom.title || \"Unnamed plugin\";\n\n // Try to get values from admin's option. Fallback to customs from Plugin defaults, or finally to hard-coded values.\n this.width = props.options.width || props.custom.width || 400;\n this.height = props.options.height || props.custom.height || \"auto\";\n this.position = props.options.position || props.custom.position || \"left\";\n\n // Register Window in our global register\n props.app.registerWindowPlugin(this);\n\n // Subscribe to a global event that makes it possible to show/hide Windows.\n // First we prepare a unique event name for each plugin so it looks like '{pluginName}.showWindow'.\n const eventName = `${this.type}.showWindow`;\n // Next, subscribe to that event, expect 'opts' array.\n // To find all places where this event is publish, search for 'globalObserver.publish(\"show'\n props.app.globalObserver.subscribe(eventName, (opts) => {\n this.showWindow(opts);\n });\n\n // Same as above, but to close the window.\n const closeEventName = `${this.type}.closeWindow`;\n\n props.app.globalObserver.subscribe(closeEventName, () => {\n this.closeWindow();\n });\n }\n\n // Does not run on initial render, but runs on subsequential re-renders.\n componentDidUpdate(prevProps) {\n // Window's title and color can be updated on-the-flight, so we keep them\n // in state and ensure that state is updated when new props arrive.\n prevProps.custom.title !== this.props.custom.title &&\n this.setState({ title: this.props.custom.title });\n\n prevProps.custom.color !== this.props.custom.color &&\n this.setState({ color: this.props.custom.color });\n }\n\n pluginIsWidget(target) {\n return [\"left\", \"right\"].includes(target);\n }\n\n handleButtonClick = (e) => {\n this.showWindow({\n hideOtherPluginWindows: true,\n runCallback: true,\n });\n this.props.app.globalObserver.publish(\"core.onlyHideDrawerIfNeeded\");\n };\n\n showWindow = (opts = {}) => {\n const hideOtherPluginWindows = opts.hideOtherPluginWindows || true,\n runCallback = opts.runCallback || true;\n // Let the App know which tool is currently active\n this.props.app.activeTool = this.type;\n\n // Tell the Analytics model about this\n this.props.app.globalObserver.publish(\"analytics.trackEvent\", {\n eventName: \"pluginShown\",\n pluginName: this.type,\n activeMap: this.props.app.config.activeMap,\n });\n\n // AppModel keeps track of recently shown plugins.\n this.props.app.pushPluginIntoHistory({\n type: this.type,\n icon: this.props.custom.icon,\n title: this.title,\n description: this.description,\n });\n\n // Don't continue if visibility hasn't changed\n if (this.state.windowVisible === true) {\n return null;\n }\n\n hideOtherPluginWindows === true && this.props.app.onWindowOpen(this);\n\n this.setState(\n {\n windowVisible: true,\n },\n () => {\n // Notify the app that a plugin's visibility has changed\n this.props.app.globalObserver.publish(\"core.pluginVisibilityChanged\");\n\n // If there's a callback defined in custom, run it\n runCallback === true &&\n typeof this.props.custom.onWindowShow === \"function\" &&\n this.props.custom.onWindowShow();\n }\n );\n };\n\n closeWindow = () => {\n // If closeWindow was initiated by the tool that is currently\n // active, we should unset the activeTool property\n if (this.type === this.props.app.activeTool)\n this.props.app.activeTool = undefined;\n\n this.setState(\n {\n windowVisible: false,\n },\n () => {\n // Notify the app that a plugin's visibility has changed\n this.props.app.globalObserver.publish(\"core.pluginVisibilityChanged\");\n\n typeof this.props.custom.onWindowHide === \"function\" &&\n this.props.custom.onWindowHide();\n }\n );\n };\n /**\n * @summary Render the plugin and its buttons according to settings in admin.\n * @description See comments in code to follow the rendering logic.\n * @param {*} custom\n * @returns {object} React.Component\n * @memberof BaseWindowPlugin\n */\n renderWindow(custom) {\n const { target } = this.props.options;\n // BaseWindowPlugin, which calls this method, will supply an object.\n // If that object contains a render() function, we want to call it\n // and bypass any other functionality from this method.\n return typeof custom?.render === \"function\" ? (\n custom.render()\n ) : (\n // If there was not custom render method, we do \"normal\" rendering.\n // That includes rendering the plugin Window itself, as well as a\n // button (that will trigger opening of the plugin Window).\n <>\n t.type === \"layerswitcher\"\n )}\n >\n {/* We have to pass windowVisible down to the children so that we can conditionally render\n the component, since it does not accept components with display: \"none\". We use the\n windowVisible-prop to make sure that we don't render the when the window\n is not visible.*/}\n {React.cloneElement(this.props.children, {\n windowVisible: this.state.windowVisible,\n })}\n \n {/* Always render a Drawer button unless its target is \"hidden\". \n It's a backup for plugins render elsewhere: we hide \n Widget and Control buttons on small screens and fall \n back to Drawer button). */}\n {target !== \"hidden\" && this.renderDrawerButton()}\n {/* Widget buttons must also render a Widget */}\n {this.pluginIsWidget(target) &&\n this.renderWidgetButton(`${target}-column`)}\n {/* Finally, render a Control button if target has that value */}\n {target === \"control\" && this.renderControlButton()}\n >\n );\n }\n\n /**\n * This is a bit of a special case. This method will render\n * not only plugins specified as Drawer plugins (target===toolbar),\n * but it will also render Widget and Control plugins - given some special condition.\n *\n * Those special conditions are small screens, where there's no screen\n * estate to render the Widget button in Map Overlay.\n */\n renderDrawerButton() {\n return createPortal(\n \n \n {this.props.custom.icon}\n \n \n ,\n document.getElementById(\"plugin-buttons\")\n );\n }\n\n renderWidgetButton(id) {\n return createPortal(\n // Hide Widget button on small screens, see renderDrawerButton too\n \n \n ,\n document.getElementById(id)\n );\n }\n\n renderControlButton() {\n return createPortal(\n // Hide Control button on small screens, see renderDrawerButton too\n \n \n ,\n document.getElementById(\"plugin-control-buttons\")\n );\n }\n\n render() {\n // Don't render if \"clean\" query param is specified, otherwise go on\n return (\n this.props.app.config.mapConfig.map.clean !== true &&\n this.renderWindow(this.props.custom)\n );\n }\n}\n\nexport default BaseWindowPlugin;\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport ImagePopupModal from \"./ImagePopupModal\";\nimport { flattenChaptersTree } from \"../utils/helpers\";\nimport { Box } from \"@mui/material\";\n\nclass Contents extends React.PureComponent {\n state = {\n popupImage: null,\n activeContent: null,\n };\n\n constructor(props) {\n super(props);\n this.internalIds = [];\n }\n\n /* TODO...\n * This should be refactored in some other way.\n * right now we are \"creating\" components for printing here\n * because we need to use the render in this component\n */\n bindPrintSpecificHandlers = () => {\n const { localObserver, model } = this.props;\n localObserver.unsubscribe(\"append-chapter-components\");\n\n localObserver.subscribe(\"append-document-components\", (documents) => {\n let chapters = [];\n let headerChapter = [];\n\n documents.forEach((document) => {\n /*\n * add an H1 tag for menu parents when printing.\n * chapters if a group of documents has a parent document, the header of the parent\n * is printed if any of the children are printed.\n */\n if (document.isGroupHeader) {\n headerChapter.push(\n this.createGroupHeadingTag(document.title, document.id)\n );\n chapters.push(headerChapter);\n headerChapter = [];\n } else {\n document.chapters.forEach((chapter) => {\n model.appendComponentsToChapter(chapter);\n });\n\n let renderedChapters = [];\n let flatChaptersTree = flattenChaptersTree(document.chapters);\n flatChaptersTree = flatChaptersTree.map((item) => {\n if (item.mustReplace) {\n let newItem = {};\n item = newItem;\n }\n return item;\n });\n\n renderedChapters.push(this.renderChapters(flatChaptersTree, true));\n chapters.push(renderedChapters);\n }\n });\n\n localObserver.publish(\"chapter-components-appended\", chapters);\n });\n };\n\n componentDidMount = () => {\n const { localObserver } = this.props;\n this.bindPrintSpecificHandlers();\n localObserver.subscribe(\"image-popup\", this.showPopupModal);\n };\n\n componentWillUnmount = () => {\n const { localObserver } = this.props;\n localObserver.unsubscribe(\"chapter-components-appended\");\n };\n\n closePopupModal = () => {\n this.setState({ popupImage: null });\n };\n\n showPopupModal = (image) => {\n this.setState({ popupImage: image });\n };\n\n renderImageInModal = () => {\n const { popupImage } = this.state;\n\n return (\n \n );\n };\n\n createGroupHeadingTag = (title, id) => {\n return (\n \n {title}\n \n );\n };\n\n /**\n * Renders the document with all it's chapters and sub chapters.\n * @param {object} document The document that will be rendered.\n *\n * @memberof Contents\n */\n renderChapters = (chapters, isPrintMode) => {\n return Array.isArray(chapters)\n ? chapters.map((chapter) => this.renderChapter(chapter, isPrintMode))\n : null;\n };\n\n /**\n * Renders a chapter with a headline an a content.\n * @param {object} chapter The chapter to be rendered.\n *\n * @memberof Contents\n */\n renderChapter = (chapter, isPrintMode) => {\n return (\n \n {this.renderHeadline(chapter, isPrintMode)}\n {chapter.components}\n {Array.isArray(chapter.chapters)\n ? chapter.chapters.map((subChapter) => this.renderChapter(subChapter))\n : null}\n \n );\n };\n\n getHeaderVariant = (chapter, isPrintMode) => {\n let headerSize = 2; //Chapters start with h2\n\n //If we are printing, we have a flattened chapters tree, so use the chapter.level property to set the heading\n //instead of cycling through the parent chapter objects.\n if (isPrintMode) {\n headerSize += chapter.level;\n return `h${headerSize}`;\n }\n while (chapter.parent) {\n headerSize++;\n chapter = chapter.parent;\n }\n return `h${headerSize}`;\n };\n\n /**\n * Render the headline of a chapter.\n * @param {object} chapter The chapter to be rendered.\n *\n * @memberof Contents\n */\n renderHeadline = (chapter, isPrintMode) => {\n return (\n <>\n \n {chapter.header}\n \n >\n );\n };\n\n render = () => {\n if (this.props.activeDocument) {\n return (\n \n {this.renderImageInModal()}\n {this.renderChapters(this.props.activeDocument.chapters)}\n \n );\n } else {\n return null;\n }\n };\n}\n\nexport default Contents;\n","import React from \"react\";\nimport { styled } from \"@mui/material/styles\";\n\nimport Grid from \"@mui/material/Grid\";\nimport TableOfContents from \"./TableOfContents\";\nimport Contents from \"./Contents\";\nimport { delay } from \"../../../utils/Delay\";\nimport { animateScroll as scroll } from \"react-scroll\";\nimport ScrollToTop from \"./ScrollToTop\";\n\nconst GridContainer = styled(Grid)(() => ({\n maxHeight: \"100%\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n userSelect: \"text\",\n outline: \"none\",\n}));\n\nconst ContentContainer = styled(Grid)(({ theme }) => ({\n paddingBottom: theme.spacing(1),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n outline: \"none\",\n}));\n\nconst TocGridWrapper = styled(Grid)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst expandedTocOnStart = (props) => {\n const { activeDocument, options } = props;\n const mapConfigSetting = options?.tableOfContents?.expanded;\n const documentSetting = activeDocument?.tableOfContents?.expanded;\n if (documentSetting || documentSetting === false) {\n return documentSetting;\n }\n if (mapConfigSetting || mapConfigSetting === false) {\n return mapConfigSetting;\n }\n return true;\n};\n\nclass DocumentViewer extends React.PureComponent {\n state = {\n showScrollButton: false,\n showPrintWindow: false,\n expandedTableOfContents: expandedTocOnStart(this.props),\n };\n\n constructor(props) {\n super(props);\n this.documentViewerRef = React.createRef();\n this.setScrollButtonLimit();\n this.bindSubscriptions();\n }\n\n setScrollButtonLimit = () => {\n const { options } = this.props;\n let showScrollButtonLimit = options.showScrollButtonLimit;\n this.scrollLimit =\n showScrollButtonLimit != null && showScrollButtonLimit !== \"\"\n ? showScrollButtonLimit\n : 400;\n };\n\n bindSubscriptions = () => {\n const { localObserver } = this.props;\n\n localObserver.subscribe(\"scroll-to-chapter\", async (chapter) => {\n /*scrollIntoView is buggy without dirty fix - \n tried using react life cycle methods but is, for some reason, not working*/\n await delay(100);\n chapter.scrollRef.current.scrollIntoView();\n });\n\n localObserver.subscribe(\"scroll-to-top\", () => {\n this.scrollToTop();\n });\n };\n\n onScroll = (e) => {\n if (e.target.scrollTop > this.scrollLimit) {\n this.setState({\n showScrollButton: true,\n });\n } else {\n this.setState({\n showScrollButton: false,\n });\n }\n };\n\n componentDidUpdate = (prevProps) => {\n if (prevProps.activeDocument !== this.props.activeDocument) {\n this.setState({\n expandedTableOfContents: expandedTocOnStart(this.props),\n });\n }\n };\n\n scrollToTop = async () => {\n scroll.scrollTo(0, {\n containerId: \"documentViewer\",\n smooth: false,\n duration: 0,\n delay: 100,\n });\n };\n\n selectAllText = () => {\n let range = document.createRange();\n range.selectNode(this.documentViewerRef.current);\n window.getSelection().removeAllRanges();\n window.getSelection().addRange(range);\n };\n\n toggleCollapse = (e) => {\n this.setState({\n expandedTableOfContents: !this.state.expandedTableOfContents,\n });\n };\n\n getTocTitle = () => {\n const { activeDocument, options } = this.props;\n const documentSettingTitle = activeDocument?.tableOfContents?.title;\n const mapConfigSettingTitle = options?.tableOfContents?.title;\n\n if (documentSettingTitle || documentSettingTitle === false) {\n return documentSettingTitle;\n }\n if (mapConfigSettingTitle || mapConfigSettingTitle === false) {\n return mapConfigSettingTitle;\n }\n return \"Innehållsförteckning\";\n };\n\n getChapterLevelsToShowInToc = () => {\n const { activeDocument, options } = this.props;\n\n const documentSettingLevels =\n activeDocument?.tableOfContents?.chapterLevelsToShow;\n const mapConfigSettingLevels =\n options?.tableOfContents?.chapterLevelsToShow;\n\n if (documentSettingLevels) {\n return documentSettingLevels;\n }\n if (mapConfigSettingLevels) {\n return mapConfigSettingLevels;\n }\n\n return 100;\n };\n\n getShouldShowTableOfContents = () => {\n const { activeDocument, options } = this.props;\n\n const documentSetting = activeDocument?.tableOfContents?.active;\n const mapConfigSetting = options?.tableOfContents?.active;\n\n if (documentSetting || documentSetting === false) {\n return documentSetting;\n }\n if (mapConfigSetting || mapConfigSetting === false) {\n return mapConfigSetting;\n }\n return true;\n };\n\n getTableOfContents = () => {\n const { expandedTableOfContents } = this.state;\n const { activeDocument, localObserver } = this.props;\n\n const title = this.getTocTitle();\n const chapterLevelsToShow = this.getChapterLevelsToShowInToc();\n return (\n \n );\n };\n\n render() {\n const {\n activeDocument,\n localObserver,\n documentWindowMaximized,\n model,\n options,\n } = this.props;\n\n const { showScrollButton } = this.state;\n const showTableOfContents = this.getShouldShowTableOfContents();\n return (\n <>\n \n {showTableOfContents && (\n \n {this.getTableOfContents()}\n \n )}\n\n {\n //If ctrl-a or command-a is pressed\n if ((e.ctrlKey || e.metaKey) && e.keyCode === 65) {\n this.selectAllText();\n e.preventDefault();\n }\n }}\n sx={{ marginTop: showTableOfContents ? 0 : 2 }}\n container\n item\n >\n \n \n \n {showScrollButton && documentWindowMaximized && (\n \n )}\n >\n );\n }\n}\n\nexport default DocumentViewer;\n","import React from \"react\";\nimport { ThemeProvider, StyledEngineProvider } from \"@mui/material/styles\";\nimport BaseWindowPlugin from \"../../BaseWindowPlugin\";\nimport DocumentViewer from \"./DocumentViewer\";\nimport PrintWindow from \"../printMenu/PrintWindow\";\nimport MenuBookIcon from \"@mui/icons-material/MenuBook\";\nimport Progress from \"./Progress\";\nimport { CustomLink } from \"../utils/ContentComponentFactory\";\nimport { withSnackbar } from \"notistack\";\nimport PrintIcon from \"@mui/icons-material/Print\";\n\nclass DocumentWindowBase extends React.PureComponent {\n snackbarKey = null;\n\n shouldShowDocumentOnStart = () => {\n const { options } = this.props;\n return options.documentOnStart ? true : false;\n };\n\n scrollInDocument = (headerIdentifier) => {\n const { localObserver, model, document } = this.props;\n\n if (headerIdentifier) {\n localObserver.publish(\n \"scroll-to-chapter\",\n model.getHeaderRef(document, headerIdentifier)\n );\n } else {\n localObserver.publish(\n \"scroll-to-top\",\n model.getHeaderRef(document, headerIdentifier)\n );\n }\n };\n\n showHeaderInDocument = ({ documentName, headerIdentifier }) => {\n const { enqueueSnackbar } = this.props;\n if (documentName) {\n this.props.showDocument(documentName).then(\n () => {\n this.scrollInDocument(headerIdentifier);\n },\n () => {\n enqueueSnackbar(\"Kunde inte öppna dokumentet\", {\n variant: \"warning\",\n });\n\n console.warn(\n \"Could not fetch document, link to document probably reference a document not present in panelmenu\"\n );\n }\n );\n }\n };\n\n displayMaplinkLoadingBar = () => {\n const { enqueueSnackbar } = this.props;\n this.snackbarKey = enqueueSnackbar(\"Kartan laddar... \", {\n variant: \"information\",\n persist: true,\n preventDuplicate: true,\n transitionDuration: { enter: 0, exit: 0 },\n anchorOrigin: { vertical: \"bottom\", horizontal: \"center\" },\n });\n };\n\n closeMaplinkLoadingBar = () => {\n const { closeSnackbar } = this.props;\n closeSnackbar(this.snackbarKey);\n };\n\n togglePrintWindow = () => {\n this.setState({\n showPrintWindow: !this.state.showPrintWindow,\n });\n };\n\n handleInfoClickRequest = (infoClickEvent) => {\n const htmlObject = document.createElement(\"span\");\n htmlObject.innerHTML = infoClickEvent.payload.replace(/\\\\/g, \"\");\n const aTag = htmlObject.getElementsByTagName(\"a\")[0];\n if (aTag) {\n infoClickEvent.resolve(\n \n );\n } else {\n console.error(\n \"Could not render DocumentHandler link for payload:\",\n infoClickEvent.payload\n );\n // Must resolve with a value, even null will do, but something more helpful could be nice.\n // The reason we must do it is because this value is used in React's render, and undefined will not render.\n infoClickEvent.resolve(Could not render DocumentHandler link);\n }\n };\n\n bindSubscriptions = () => {\n const { localObserver, app } = this.props;\n app.globalObserver.subscribe(\n \"core.info-click-documenthandler\",\n this.handleInfoClickRequest\n );\n localObserver.subscribe(\"set-active-document\", this.showHeaderInDocument);\n localObserver.subscribe(\"maplink-loading\", this.displayMaplinkLoadingBar);\n localObserver.subscribe(\n \"map-animation-complete\",\n this.closeMaplinkLoadingBar\n );\n };\n\n isModelReady = () => {\n const { model } = this.props;\n return model ? true : false;\n };\n\n componentDidUpdate = (prevProps, prevState) => {\n const { localObserver } = this.props;\n\n if (prevProps.model !== this.props.model) {\n if (this.isModelReady()) {\n this.bindSubscriptions();\n\n if (this.shouldShowDocumentOnStart()) {\n localObserver.publish(\"set-active-document\", {\n documentName: this.props.options.documentOnStart,\n headerIdentifier: null,\n });\n }\n }\n }\n };\n\n getDocumentViewer = () => {\n const { documentWindowMaximized, document } = this.props;\n return (\n \n );\n };\n\n render() {\n const {\n options,\n localObserver,\n documentWindowMaximized,\n document,\n togglePrintWindow,\n onWindowHide,\n showPrintWindow,\n customTheme,\n onMinimize,\n onMaximize,\n } = this.props;\n const modelReady = this.isModelReady();\n const customHeaderButtons = options.enablePrint\n ? [\n {\n icon: ,\n description: \"Öppna utskrift\",\n onClickCallback: togglePrintWindow,\n },\n ]\n : [];\n return (\n ,\n title: document?.documentTitle || options.windowTitle || \"Documents\",\n color: document?.documentColor || \"#ffffff\",\n customPanelHeaderButtons: customHeaderButtons,\n description: \"En kort beskrivning som visas i widgeten\",\n height: options.height || \"auto\",\n width: options.width || 600,\n scrollable: false,\n onMinimize: onMinimize,\n onMaximize: onMaximize,\n onWindowHide: onWindowHide,\n draggingEnabled: options.draggingEnabled || false,\n resizingEnabled: options.resizingEnabled || false,\n allowMaximizedWindow: false,\n }}\n >\n {document != null && modelReady ? (\n !showPrintWindow ? (\n customTheme ? (\n \n \n {this.getDocumentViewer()}\n \n \n ) : (\n this.getDocumentViewer()\n )\n ) : (\n \n )\n ) : (\n \n )}\n \n );\n }\n}\n\nexport default withSnackbar(DocumentWindowBase);\n","import React from \"react\";\nimport { styled } from \"@mui/material/styles\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport Dialog from \"@mui/material/Dialog\";\nimport Paper from \"@mui/material/Paper\";\n\nconst mapDiv = document.getElementById(\"map\");\nconst blurCss = \"filter : blur(7px)\";\n\nconst CloseButton = styled(IconButton)(({ theme }) => ({\n position: \"absolute\",\n backgroundColor: theme.palette.grey[50],\n\n \"&:hover\": {\n backgroundColor: theme.palette.grey[400],\n },\n\n zIndex: 100,\n right: theme.spacing(2),\n top: theme.spacing(2),\n}));\n\nconst StyledPaper = styled(Paper)(() => ({\n maxHeight: \"80%\",\n maxWidth: \"90%\",\n overflow: \"auto\",\n backgroundColor: \"transparent\",\n boxShadow: \"none\",\n objectFit: \"contain\",\n}));\n\nfunction PaperComponent(props) {\n const { component, onClose, src, altValue } = props;\n return (\n <>\n \n \n \n \n >\n );\n}\n\nclass ImagePopupModal extends React.PureComponent {\n removeMapBlur = () => {\n mapDiv.removeAttribute(\"style\", blurCss);\n };\n\n addMapBlur = () => {\n mapDiv.setAttribute(\"style\", blurCss);\n };\n\n componentWillUnmount = () => {\n this.removeMapBlur();\n };\n\n componentDidMount = () => {};\n\n render() {\n const { open, close, image } = this.props;\n open ? this.addMapBlur() : this.removeMapBlur();\n\n return (\n \n );\n }\n}\n\nexport default ImagePopupModal;\n","import React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\n\nclass Progress extends React.PureComponent {\n render() {\n return (\n \n \n \n );\n }\n}\n\nexport default Progress;\n","import React from \"react\";\nimport { Box, Fab } from \"@mui/material\";\nimport NavigationIcon from \"@mui/icons-material/Navigation\";\nimport { darken } from \"@mui/material/styles\";\nimport { visuallyHidden } from \"@mui/utils\";\n\nconst ScrollToTop = (props) => {\n return (\n // Pass on all props to the styled component\n theme.spacing(2),\n right: (theme) => theme.spacing(3),\n ...(props.color && {\n backgroundColor: props.color,\n \"&:hover\": {\n backgroundColor: darken(props.color, 0.3),\n },\n }),\n }}\n >\n Scrolla till toppen av dokumentet\n \n \n );\n};\n\nexport default ScrollToTop;\n","import React from \"react\";\nimport { styled } from \"@mui/material/styles\";\nimport ExpandLessIcon from \"@mui/icons-material/ExpandLess\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport { withTheme } from \"@emotion/react\";\nimport {\n Grid,\n List,\n ListItem,\n ListItemText,\n Button,\n Collapse,\n} from \"@mui/material\";\n\nfunction NestedListItemRaw(props) {\n return (\n \n {props.children}\n \n );\n}\n\nconst NestedListItem = withTheme(NestedListItemRaw);\n\nconst ListRoot = styled(List)(({ theme }) => ({\n width: \"100%\",\n padding: theme.spacing(0),\n}));\n\nconst StyledButton = styled(Button)(({ theme }) => ({\n paddingLeft: \"0px\",\n display: \"flex\",\n justifyContent: \"space-between\",\n \"&:focus-visible\": {\n backgroundColor: theme.palette.action.selected,\n },\n}));\n\nconst GridTableOfContents = styled(Grid)(({ theme }) => ({\n //Need to manually change color when switching between dark/light-mode\n backgroundColor:\n theme.palette.mode === \"dark\"\n ? theme.palette.grey[700]\n : theme.palette.grey[200],\n\n tapHighlightColor: \"transparent\",\n cursor: \"pointer\",\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n}));\n\nconst CollapseCollapseContainer = styled(Collapse)(({ theme }) => ({\n width: \"100%\",\n}));\n\nclass TableOfContents extends React.PureComponent {\n state = {\n expanded: this.props.expanded,\n };\n\n static defaultProps = {\n expanded: true,\n title: \"Innehåll\",\n };\n\n linkClick = (chapter) => {\n const { localObserver } = this.props;\n localObserver.publish(\"scroll-to-chapter\", chapter);\n };\n /**\n * Render all chapters of the activeDocument.\n * @param {Array} activeDocument An array with all chapters of the activeDocument.\n *\n * @memberof TableOfContents\n */\n renderChapters = (activeDocument) => {\n let mainChapter = 0;\n return (\n \n {Array.isArray(activeDocument?.chapters)\n ? activeDocument.chapters.map((chapter) =>\n this.renderSubChapters(chapter, 0, (++mainChapter).toString())\n )\n : null}\n \n );\n };\n\n showSubChapter = (level) => {\n const { chapterLevelsToShow } = this.props;\n return level < chapterLevelsToShow;\n };\n\n /**\n * Private help method that recursive renders all sub chapters of a chapter.\n * @param {object} chapter A chapter with all it's sub chapters that will be rendered.\n * @param {string} level A recursive level that help with the table construction.\n * @param {number} subChapterNumber A counter of the current sub chapter number\n *\n * @memberof TableOfContents\n */\n renderSubChapters = (chapter, level, subChapterNumber) => {\n if (!this.showSubChapter(level)) {\n return null;\n }\n let newLevel = level + 1;\n let number = 0;\n\n return (\n \n {\n this.linkClick(chapter);\n }}\n level={level}\n >\n {chapter.header}\n \n \n {Array.isArray(chapter.chapters)\n ? chapter.chapters.map((subChapter) =>\n this.renderSubChapters(\n subChapter,\n newLevel,\n subChapterNumber.concat(\".\" + ++number)\n )\n )\n : null}\n
\n \n );\n };\n\n render() {\n const { activeDocument, title, expanded, toggleCollapse } = this.props;\n\n return (\n \n \n ) : (\n \n )\n }\n onClick={toggleCollapse}\n >\n {title}\n \n \n \n {this.renderChapters(activeDocument)}\n \n \n \n );\n }\n}\n\nexport default TableOfContents;\n"],"names":["StyledCard","styled","MUICard","theme","marginBottom","spacing","width","breakpoints","down","boxShadow","borderBottom","borderRadius","margin","justifyContent","StyledAvatar","Avatar","background","palette","text","primary","Card","React","state","open","render","abstract","icon","onClick","title","this","props","avatar","subheader","defaultProps","BaseWindowPlugin","constructor","super","handleButtonClick","e","showWindow","hideOtherPluginWindows","runCallback","app","globalObserver","publish","opts","activeTool","type","eventName","pluginName","activeMap","config","pushPluginIntoHistory","custom","description","windowVisible","onWindowOpen","setState","onWindowShow","closeWindow","undefined","onWindowHide","toLowerCase","options","visibleAtStart","mapConfig","map","clean","isMobile","visibleAtStartMobile","color","height","position","registerWindowPlugin","subscribe","closeEventName","componentDidUpdate","prevProps","pluginIsWidget","target","includes","renderWindow","onClose","onResize","onMaximize","onMinimize","draggingEnabled","customPanelHeaderButtons","resizingEnabled","scrollable","allowMaximizedWindow","disablePadding","mode","layerswitcherConfig","tools","find","t","children","renderDrawerButton","renderWidgetButton","renderControlButton","createPortal","mdUp","button","divider","selected","document","getElementById","id","mdDown","Contents","popupImage","activeContent","bindPrintSpecificHandlers","localObserver","model","unsubscribe","documents","chapters","headerChapter","forEach","isGroupHeader","push","createGroupHeadingTag","chapter","appendComponentsToChapter","renderedChapters","flatChaptersTree","flattenChaptersTree","item","mustReplace","renderChapters","componentDidMount","showPopupModal","componentWillUnmount","closePopupModal","image","renderImageInModal","close","variant","isPrintMode","Array","isArray","renderChapter","renderHeadline","components","subChapter","getHeaderVariant","headerSize","level","parent","ref","scrollRef","sx","overflowWrap","header","activeDocument","style","display","maxWidth","internalIds","GridContainer","Grid","maxHeight","overflowY","overflowX","userSelect","outline","ContentContainer","paddingBottom","paddingLeft","paddingRight","TocGridWrapper","expandedTocOnStart","mapConfigSetting","tableOfContents","expanded","documentSetting","DocumentViewer","showScrollButton","showPrintWindow","expandedTableOfContents","setScrollButtonLimit","showScrollButtonLimit","scrollLimit","bindSubscriptions","async","delay","current","scrollIntoView","scrollToTop","onScroll","scrollTop","scroll","containerId","smooth","duration","selectAllText","range","createRange","selectNode","documentViewerRef","window","getSelection","removeAllRanges","addRange","toggleCollapse","getTocTitle","documentSettingTitle","mapConfigSettingTitle","getChapterLevelsToShowInToc","documentSettingLevels","chapterLevelsToShow","mapConfigSettingLevels","getShouldShowTableOfContents","active","getTableOfContents","documentWindowMaximized","showTableOfContents","container","xs","tabIndex","onKeyDown","ctrlKey","metaKey","keyCode","preventDefault","marginTop","documentColor","DocumentWindowBase","snackbarKey","shouldShowDocumentOnStart","documentOnStart","scrollInDocument","headerIdentifier","getHeaderRef","showHeaderInDocument","documentName","enqueueSnackbar","showDocument","then","console","warn","displayMaplinkLoadingBar","persist","preventDuplicate","transitionDuration","enter","exit","anchorOrigin","vertical","horizontal","closeMaplinkLoadingBar","closeSnackbar","togglePrintWindow","handleInfoClickRequest","infoClickEvent","htmlObject","createElement","innerHTML","payload","replace","aTag","getElementsByTagName","resolve","CustomLink","bottomMargin","error","isModelReady","prevState","getDocumentViewer","customTheme","modelReady","customHeaderButtons","enablePrint","onClickCallback","documentTitle","windowTitle","injectFirst","withSnackbar","mapDiv","blurCss","CloseButton","IconButton","backgroundColor","grey","zIndex","right","top","StyledPaper","Paper","overflow","objectFit","PaperComponent","component","src","altValue","size","alt","ImagePopupModal","removeMapBlur","removeAttribute","addMapBlur","setAttribute","onBackdropClick","PaperProps","url","Progress","alignItems","justify","bottom","darken","visuallyHidden","NestedListItem","withTheme","dense","onCLick","paddingTop","ListRoot","List","padding","StyledButton","Button","action","GridTableOfContents","tapHighlightColor","cursor","CollapseCollapseContainer","Collapse","TableOfContents","linkClick","mainChapter","renderSubChapters","toString","showSubChapter","subChapterNumber","newLevel","number","concat","disableRipple","fullWidth","endIcon","in"],"sourceRoot":""}