@kartverket/geonorge-web-components 4.0.9 → 4.0.11
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/BodyText.js +1 -1
- package/BodyText.js.map +1 -1
- package/BreadcrumbList.js +1 -1
- package/BreadcrumbList.js.map +1 -1
- package/ContentContainer.js +1 -1
- package/ContentContainer.js.map +1 -1
- package/DownloadItem.js +1 -1
- package/DownloadItem.js.map +1 -1
- package/GeonorgeFooter.js +1 -1
- package/GeonorgeFooter.js.map +1 -1
- package/GnAccordion.js +1 -1
- package/GnAccordion.js.map +1 -1
- package/GnBadgeList.js +1 -1
- package/GnBadgeList.js.map +1 -1
- package/GnBreadcrumbList.js +1 -1
- package/GnBreadcrumbList.js.map +1 -1
- package/GnButton.js +1 -1
- package/GnButton.js.map +1 -1
- package/GnDialog.js +1 -1
- package/GnDialog.js.map +1 -1
- package/GnFieldContainer.js +1 -1
- package/GnFieldContainer.js.map +1 -1
- package/GnIcon.js +1 -1
- package/GnIcon.js.map +1 -1
- package/GnInput.js +1 -1
- package/GnInput.js.map +1 -1
- package/GnLabel.js +1 -1
- package/GnLabel.js.map +1 -1
- package/GnList.js +1 -1
- package/GnList.js.map +1 -1
- package/GnSelect.js +1 -1
- package/GnSelect.js.map +1 -1
- package/GnShortcutButton.js +1 -1
- package/GnShortcutButton.js.map +1 -1
- package/GnSrOnly.js +1 -1
- package/GnSrOnly.js.map +1 -1
- package/GnTable.js +1 -1
- package/GnTable.js.map +1 -1
- package/GnTextarea.js +1 -1
- package/GnTextarea.js.map +1 -1
- package/HeadingText.js +1 -1
- package/HeadingText.js.map +1 -1
- package/MainMenu.js +1 -1
- package/MainMenu.js.map +1 -1
- package/MainNavigation.js +1 -1
- package/MainNavigation.js.map +1 -1
- package/MainSearchField.js +1 -1
- package/MainSearchField.js.map +1 -1
- package/MapItem.js +1 -1
- package/MapItem.js.map +1 -1
- package/NavigationTabContent.js +1 -1
- package/NavigationTabContent.js.map +1 -1
- package/NavigationTabHeading.js +1 -1
- package/NavigationTabHeading.js.map +1 -1
- package/NavigationTabs.js +1 -1
- package/NavigationTabs.js.map +1 -1
- package/SearchTypeSelector.js +1 -1
- package/SearchTypeSelector.js.map +1 -1
- package/UserAccount.js +1 -1
- package/UserAccount.js.map +1 -1
- package/index.css +1 -1
- package/index.css.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +6 -1
package/MainMenu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainMenu.js","mappings":"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","sources":["webpack://geonorge/webpack/universalModuleDefinition","webpack://geonorge/../node_modules/css-loader/dist/runtime/api.js","webpack://geonorge/../node_modules/super-custom-elements/src/listen.ts","webpack://geonorge/./stories/main-navigation/main-menu/main-menu.ts","webpack://geonorge/../node_modules/super-custom-elements/src/watch.ts","webpack://geonorge/./stories/main-navigation/main-menu/main-menu.html","webpack://geonorge/./stories/main-navigation/main-menu/main-menu.scss","webpack://geonorge/../node_modules/super-custom-elements/src/util.ts","webpack://geonorge/../node_modules/super-custom-elements/src/index.ts","webpack://geonorge/../node_modules/super-custom-elements/src/helpers.ts","webpack://geonorge/./assets/svg/close-icon-black.svg","webpack://geonorge/../node_modules/super-custom-elements/src/custom-element.ts","webpack://geonorge/../node_modules/super-custom-elements/src/toggle.ts","webpack://geonorge/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://geonorge/./assets/svg/burgerG.svg","webpack://geonorge/./functions/guiHelpers.ts","webpack://geonorge/../node_modules/super-custom-elements/src/prop.ts","webpack://geonorge/../node_modules/super-custom-elements/src/component.ts","webpack://geonorge/./functions/apiHelpers.ts","webpack://geonorge/webpack/bootstrap","webpack://geonorge/webpack/runtime/compat get default export","webpack://geonorge/webpack/runtime/define property getters","webpack://geonorge/webpack/runtime/hasOwnProperty shorthand","webpack://geonorge/webpack/runtime/make namespace object","webpack://geonorge/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"geonorge\"] = factory();\n\telse\n\t\troot[\"geonorge\"] = root[\"geonorge\"] || {}, root[\"geonorge\"][\"MainMenu\"] = factory();\n})(self, () => {\nreturn ","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","import { toDotCase } from './util';\r\n\r\ninterface ListenerMetadata {\r\n eventName: string;\r\n handler: Function;\r\n selector?: string;\r\n}\r\n\r\ninterface CustomEventOptions {\r\n bubbles?: boolean;\r\n composed?: boolean;\r\n detail?: any;\r\n}\r\n\r\ninterface DispatchEmitter {\r\n emit(options?: CustomEventOptions): void;\r\n}\r\n\r\nconst Listen = (eventName: string, selector?: string) => {\r\n return (target: any, methodName: string) => {\r\n if (!target.constructor.listeners) {\r\n target.constructor.listeners = [];\r\n }\r\n target.constructor.listeners.push({ selector: selector, eventName: eventName, handler: target[methodName] });\r\n };\r\n};\r\n\r\nconst addEventListeners = (target: any) => {\r\n if (target.constructor.listeners) {\r\n const targetRoot: any = target.shadowRoot || target;\r\n for (const listener of target.constructor.listeners as Array<ListenerMetadata>) {\r\n const eventTarget = (listener.selector)\r\n ? targetRoot.querySelector(listener.selector)\r\n ? targetRoot.querySelector(listener.selector) : null\r\n : target;\r\n if (eventTarget) {\r\n eventTarget.addEventListener(listener.eventName, (e: CustomEvent) => {\r\n listener.handler.call(target, e);\r\n });\r\n }\r\n }\r\n }\r\n};\r\n\r\nconst Dispatch = (eventName?: string) => {\r\n return (target: HTMLElement, propertyName: string) => {\r\n function get() {\r\n const self: EventTarget = this as EventTarget;\r\n return {\r\n emit(options?: CustomEventOptions) {\r\n const evtName = (eventName) ? eventName : toDotCase(propertyName);\r\n self.dispatchEvent(new CustomEvent(evtName, options));\r\n }\r\n };\r\n }\r\n Object.defineProperty(target, propertyName, { get });\r\n };\r\n};\r\n\r\nexport { Listen, addEventListeners, DispatchEmitter, Dispatch, CustomEventOptions, ListenerMetadata };","// Dependencies\nimport {\n Component, CustomElement, CustomElementOptions, Prop, Dispatch, DispatchEmitter,\n Listen, Watch, getElement, getShadowRootElement, Toggle\n} from 'super-custom-elements';\n\n\n// Assets\nimport MenuIcon from '../../../assets/svg/burgerG.svg';\nimport CloseIcon from '../../../assets/svg/close-icon-black.svg';\n\n// Functions\nimport { fetchMenuItems } from '../../../functions/apiHelpers';\nimport { getFocusableElementsInsideElement } from '../../../functions/guiHelpers';\nimport { setCookie } from '../../../functions/cookieHelpers';\n\n\ninterface MainMenuOptions extends CustomElementOptions {\n active?: boolean,\n onClick?: () => void,\n onSignInClick?: () => void,\n onSignOutClick?: () => void,\n onNorwegianLanguageSelect?: () => void,\n onEnglishLanguageSelect?: () => void\n}\n\ninterface MenuItem extends Object {\n Name: string,\n SubMenuItem: Array<MenuItem>,\n Url: string\n}\n\n@Component({\n tag: 'main-menu',\n template: import('./main-menu.html'),\n style: import('./main-menu.scss')\n})\n\nexport class MainMenu extends CustomElement {\n private static readonly elementSelector = 'main-menu';\n private menuButton: HTMLButtonElement;\n private menuTitle: HTMLSpanElement;\n private menuIcon: HTMLSpanElement;\n private closeIcon: HTMLSpanElement;\n private menuContainer: HTMLElement;\n private menuItemListContainer: HTMLElement;\n private menuActionsRow: HTMLElement;\n\n @Prop() id: string;\n @Prop() language: string;\n @Prop() environment: string;\n @Prop() signinurl: string;\n @Prop() signouturl: string;\n @Prop() norwegianurl: string;\n @Prop() englishurl: string;\n @Toggle() isloggedin: boolean;\n @Toggle() showmenu: boolean;\n @Toggle() hasAuthenticationFunction: boolean;\n @Toggle() hasLanguageSelectFunctions: boolean;\n @Prop() menuitems: Array<MenuItem>;\n @Dispatch('onSignInClick') onSignInClick: DispatchEmitter;\n @Dispatch('onSignOutClick') onSignOutClick: DispatchEmitter;\n @Dispatch('onNorwegianLanguageSelect') onNorwegianLanguageSelect: DispatchEmitter;\n @Dispatch('onEnglishLanguageSelect') onEnglishLanguageSelect: DispatchEmitter;\n\n\n constructor() {\n super();\n this.clickOutsideMenuContainer = this.clickOutsideMenuContainer.bind(this);\n }\n\n setup(options?: MainMenuOptions): void {\n this.connect(options.container);\n if (options.id) {\n this.id = options.id;\n }\n }\n\n connectedCallback() {\n this.menuButton = getShadowRootElement(this, '#menu-toggle-button');\n this.menuTitle = getShadowRootElement(this, '#menu-title');\n this.menuIcon = getShadowRootElement(this, '#menu-icon');\n this.closeIcon = getShadowRootElement(this, '#close-icon');\n this.menuContainer = getShadowRootElement(this, '#menu-container');\n this.menuItemListContainer = getShadowRootElement(this, '#menu-item-list-container');\n this.menuActionsRow = getShadowRootElement(this, '#menu-actions-row');\n this.menuIcon.innerHTML = MenuIcon;\n this.closeIcon.innerHTML = CloseIcon;\n\n this.showmenu ? this.menuIcon.classList.add('hidden') : this.closeIcon.classList.add('hidden');\n\n fetchMenuItems(this.language, this.environment).then(menuItems => {\n this.menuitems = menuItems;\n });\n\n this.menuButton.setAttribute('aria-label', this.language === 'en' ? 'Show menu' : 'Vis meny');\n\n if (this.menuTitle) {\n this.menuTitle.innerText = this.language === 'en' ? 'Menu' : 'Meny';\n }\n\n const hasAuthenticationUrls = this.signinurl && this.signouturl;\n if (hasAuthenticationUrls) {\n this.addAuthenticationLinks();\n }\n\n const supportsLanguages = this.englishurl && this.norwegianurl;\n if (supportsLanguages) {\n this.addLanguageSelectLinks();\n\n }\n document.addEventListener('click', this.clickOutsideMenuContainer);\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.clickOutsideMenuContainer);\n }\n\n hideMenuContainer = () => {\n this.showmenu = false;\n }\n\n\n clickOutsideMenuContainer(event: MouseEvent) {\n const targetElement = event.composedPath()[0] as Element;\n targetElement.closest('#menu-container');\n if (targetElement.closest('#menu-container') || targetElement.closest('#menu-toggle-button')) return\n this.hideMenuContainer();\n }\n\n renderMenuItems = (menuItems: Array<MenuItem>, hierarchyLevel: number = 0, maxHierarchyLevel: number = 1) => {\n const menuItemsListElement = menuItems.map((menuItem: MenuItem) => {\n const subItems = menuItem.SubMenuItem && menuItem.SubMenuItem.length ? menuItem.SubMenuItem : null;\n const menuItemElement = `<a href=\"${menuItem.Url}\" tabindex=\"${this.showmenu ? null : '-1'}\">${menuItem.Name}</a>`;\n const subItemElements = subItems && hierarchyLevel + 1 <= maxHierarchyLevel ? this.renderMenuItems(subItems, hierarchyLevel + 1, maxHierarchyLevel) : '';\n return `<li>${menuItemElement}${subItemElements}</li>`;\n }).join('');\n return `<ul class=\"menuItemList hierarchy-level-${hierarchyLevel}\">${menuItemsListElement}</ul>`;\n }\n\n addAuthenticationLinks(hasAuthenticationFunction = false) {\n let loginToggleElement;\n const hasAuthenticationLinks = this.signouturl && this.signinurl;\n\n if (!hasAuthenticationLinks && !hasAuthenticationFunction) {\n return '';\n }\n\n if (hasAuthenticationFunction) {\n loginToggleElement = document.createElement(\"button\");\n loginToggleElement.addEventListener(\"click\", () => {\n this.isloggedin ? this.onSignOutClick.emit() : this.onSignInClick.emit();\n });\n } else {\n loginToggleElement = document.createElement(\"a\");\n loginToggleElement.href = this.isloggedin ? this.signouturl : this.signinurl;\n }\n\n // Remove previously added login toggle element if exists\n for (const childElement of this.menuActionsRow.children) {\n if (childElement.getAttribute('id') === loginToggleElement.id) {\n childElement.remove()\n }\n }\n\n if (!this.showmenu){\n loginToggleElement.setAttribute('tabindex', '-1');\n }\n\n // Add login toggle element\n this.menuActionsRow.appendChild(loginToggleElement);\n }\n\n addLanguageSelectLinks(hasLanguageSelectFunctions = false) {\n let languageToggleElement;\n const hasLanguageSelectLinks = this.norwegianurl && this.englishurl;\n\n if (!hasLanguageSelectLinks && !hasLanguageSelectFunctions) {\n return '';\n }\n\n if (hasLanguageSelectFunctions) {\n languageToggleElement = document.createElement(\"button\");\n languageToggleElement.addEventListener(\"click\", () => {\n this.language === 'en' ? this.onNorwegianLanguageSelect.emit() : this.onEnglishLanguageSelect.emit();\n });\n } else {\n languageToggleElement = document.createElement(\"a\");\n languageToggleElement.href = this.language === 'en' ? this.norwegianurl : this.englishurl;\n }\n\n languageToggleElement.innerText = this.language === 'en' ? 'Norsk' : 'English';\n languageToggleElement.id = 'language-toggle-element';\n\n // Remove previously added language toggle element if exists\n for (const childElement of this.menuActionsRow.children) {\n if (childElement.getAttribute('id') === languageToggleElement.id) {\n childElement.remove()\n }\n }\n\n if (!this.showmenu){\n languageToggleElement.setAttribute('tabindex', '-1');\n }\n\n // Add language toggle element\n this.menuActionsRow.appendChild(languageToggleElement);\n }\n\n @Listen('click', '#menu-toggle-button')\n buttonClicked(event: MouseEvent) {\n this.showmenu = !this.showmenu;\n }\n\n @Watch('hasauthenticationfunction')\n hasAuthenticationFunctionChanged() {\n if (this.hasAuthenticationFunction) {\n this.addAuthenticationLinks(true);\n }\n }\n\n @Watch('isloggedin') \n isLoggedInChanged() {\n this.addAuthenticationLinks(this.hasAuthenticationFunction); \n }\n\n @Watch('haslanguageselectfunctions')\n hasLanguageSelectFunctionsChanged() {\n if (this.hasLanguageSelectFunctions) {\n this.addLanguageSelectLinks(true);\n }\n }\n\n @Watch('language')\n languageChanged() {\n this.addAuthenticationLinks(this.hasAuthenticationFunction);\n this.addLanguageSelectLinks(this.hasLanguageSelectFunctions);\n fetchMenuItems(this.language, this.environment).then(menuItems => {\n this.menuitems = menuItems;\n });\n if (this.menuTitle) {\n this.menuTitle.innerText = this.language === 'en' ? 'Menu' : 'Meny';\n }\n this.menuButton.setAttribute('aria-label', this.language === 'en' ? 'Show menu' : 'Vis meny');\n }\n\n @Watch('showmenu')\n showMenuChanged() {\n this.showmenu ? this.menuContainer.classList.add('open') : this.menuContainer.classList.remove('open');\n this.showmenu ? this.menuButton.classList.add('open') : this.menuButton.classList.remove('open');\n this.showmenu ? this.menuItemListContainer.classList.add('open') : this.menuItemListContainer.classList.remove('open');\n this.showmenu ? this.menuActionsRow.classList.add('open') : this.menuActionsRow.classList.remove('open');\n this.showmenu ? this.menuIcon.classList.add('hidden') : this.menuIcon.classList.remove('hidden');\n this.showmenu ? this.closeIcon.classList.remove('hidden') : this.closeIcon.classList.add('hidden');\n const focusableMenuContainerElements = getFocusableElementsInsideElement(this.menuContainer);\n focusableMenuContainerElements.forEach(focusableElement => {\n if (!this.showmenu){\n focusableElement.setAttribute('tabindex', '-1');\n } else {\n focusableElement.removeAttribute('tabindex');\n }\n });\n }\n\n @Watch('menuitems')\n menuItemsChanged() {\n if (this.menuitems && this.menuitems.length) {\n this.menuItemListContainer.innerHTML = this.renderMenuItems(this.menuitems);\n }\n }\n\n public static setup(selector: string, options: MainMenuOptions) {\n const element = getElement<MainMenu>(selector);\n\n if (options.onClick) {\n element.addEventListener('menuButtonClick', options.onClick);\n }\n if (options.active) {\n element.showmenu = options.active;\n }\n }\n}\n","import { toKebabCase } from './util';\r\n\r\nexport const Watch = (attrName: string) => {\r\n return (target: any, propertyName: string) => {\r\n if (!target.constructor.watchAttributes) {\r\n target.constructor.watchAttributes = {};\r\n }\r\n target.constructor.watchAttributes[toKebabCase(attrName)] = propertyName;\r\n if (!target.constructor.propsInit) {\r\n target.constructor.propsInit = {};\r\n }\r\n target.constructor.propsInit[attrName] = null;\r\n };\r\n};","export default \"<template>\\n <button id=\\\"menu-toggle-button\\\" class=\\\"menu-toggle-button\\\">\\n \\n <span id=\\\"menu-icon\\\"></span>\\n <span id=\\\"close-icon\\\"></span>\\n <span id=\\\"menu-title\\\" class=\\\"menu-title\\\">\\n Meny\\n </span>\\n </button>\\n <div id=\\\"menu-wrapper\\\" class=\\\"menu-wrapper\\\">\\n <div id=\\\"menu-container\\\" class=\\\"menu-container open\\\">\\n <div id=\\\"menu-item-list-container\\\" class=\\\"menu-item-list-container\\\"></div>\\n <div id=\\\"menu-actions-row\\\" class=\\\"menu-actions-row\\\"></div>\\n </div>\\n </div>\\n</template>\";","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `*{box-sizing:border-box}button.menu-toggle-button{border:none;background-color:rgba(0,0,0,0);color:#403f3f;cursor:pointer;width:40px;height:32px;display:flex;gap:6px;align-items:center}@media(min-width: 37.5em){button.menu-toggle-button{width:45px;height:37px}}@media(min-width: 992px){button.menu-toggle-button{width:98px;background-color:rgba(0,0,0,0);color:#403f3f}}button.menu-toggle-button.open{background-color:rgba(0,0,0,0)}button.menu-toggle-button span{padding:2px 1px;vertical-align:middle}button.menu-toggle-button span.menu-title{display:none;font-weight:500;vertical-align:middle;font-family:\"Open Sans\",sans-serif;font-size:14px}@media(min-width: 992px){button.menu-toggle-button span.menu-title{display:inline-block}}button.menu-toggle-button span.hidden{display:none}button.menu-toggle-button svg{height:24px;width:24px;vertical-align:middle}button.menu-toggle-button:hover{color:#1073bc}.menu-wrapper{position:absolute;left:0;width:100%}.menu-wrapper .menu-container{-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;box-sizing:border-box;width:100%;background-color:#fff;margin:auto;position:relative;top:56px}@media(min-width: 37.5em){.menu-wrapper .menu-container{top:15px}}@media(min-width: 768px){.menu-wrapper .menu-container{width:750px}}@media(min-width: 992px){.menu-wrapper .menu-container{width:970px}}@media(min-width: 1200px){.menu-wrapper .menu-container{width:1170px}}@media print{.menu-wrapper .menu-container{display:none}}.menu-wrapper .menu-container.open{-webkit-box-shadow:0 5px 5px -2px rgba(0,0,0,.26);-moz-box-shadow:0 5px 5px -2px rgba(0,0,0,.26);box-shadow:0 5px 5px -2px rgba(0,0,0,.26);height:auto}.menu-wrapper .menu-container .menu-item-list-container{-moz-transition:max-height .3s ease-in-out;-o-transition:max-height .3s ease-in-out;-webkit-transition:max-height .3s ease-in-out;transition:max-height .3s ease-in-out;overflow:hidden;max-height:0}.menu-wrapper .menu-container .menu-item-list-container.open{max-height:300px;overflow:auto}@media(min-width: 37.5em){.menu-wrapper .menu-container .menu-item-list-container.open{max-height:450px}}@media(min-width: 992px){.menu-wrapper .menu-container .menu-item-list-container.open{max-height:300px}}.menu-wrapper .menu-container .menu-item-list-container .menuItemList{list-style:none;margin:15px;color:#414042;font-size:15px}.menu-wrapper .menu-container .menu-item-list-container .menuItemList:first-child{padding:15px 0 0}.menu-wrapper .menu-container .menu-item-list-container .menuItemList a{color:#414042;text-decoration:none}.menu-wrapper .menu-container .menu-item-list-container .menuItemList a:hover{text-decoration:underline}.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0{display:flex;flex-wrap:wrap}.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0>li{flex:1 0 100%}@media(min-width: 37.5em){.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0>li{flex:1 0 50%}}@media(min-width: 992px){.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0>li{flex:1}}.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0>li>a{border-bottom:1px solid #b6afa8;font-weight:700;padding-bottom:.75em;margin-bottom:.75em;display:block}.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0>li>ul{padding:0}.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0>li>ul li{margin-bottom:12px}.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0.hierarchy-level-1>li>a{font-weight:normal}.menu-wrapper .menu-container .menu-actions-row{-moz-transition:max-height .3s ease-in-out;-o-transition:max-height .3s ease-in-out;-webkit-transition:max-height .3s ease-in-out;transition:max-height .3s ease-in-out;text-align:right;background-color:#fff;max-height:0;overflow:hidden}.menu-wrapper .menu-container .menu-actions-row.open{max-height:56px}.menu-wrapper .menu-container .menu-actions-row a,.menu-wrapper .menu-container .menu-actions-row button{display:inline-block;padding:.25em 1em .25em 1.1em;margin:15px 0;text-decoration:none;color:#414042;cursor:pointer;border:none;font-size:16px;font-weight:normal;font-family:\"Open Sans\",sans-serif;background:none}.menu-wrapper .menu-container .menu-actions-row a:hover,.menu-wrapper .menu-container .menu-actions-row button:hover{text-decoration:underline}.menu-wrapper .menu-container .menu-actions-row a:not(:first-child),.menu-wrapper .menu-container .menu-actions-row button:not(:first-child){border-left:1px solid #b6afa8}`, \"\",{\"version\":3,\"sources\":[\"webpack://./stories/main-navigation/main-menu/main-menu.scss\",\"webpack://./style/mixins/_breakpoints.scss\",\"webpack://./style/variables/_typography.scss\",\"webpack://./style/mixins/_border-radius.scss\",\"webpack://./style/mixins/_box-shadow.scss\",\"webpack://./style/mixins/_transition.scss\"],\"names\":[],\"mappings\":\"AAKA,EACI,qBAAA,CAGJ,0BACI,WAAA,CACA,8BAAA,CACA,aAAA,CACA,cAAA,CACA,UAAA,CACA,WAAA,CACA,YAAA,CACA,OAAA,CACA,kBAAA,CCFI,0BDPR,0BAYQ,UAAA,CACA,WAAA,CAAA,CCdA,yBDCR,0BAgBQ,UAAA,CACA,8BAAA,CACA,aAAA,CAAA,CAEJ,+BACI,8BAAA,CAEJ,+BACI,eAAA,CACA,qBAAA,CACA,0CACI,YAAA,CACA,eAAA,CACA,qBAAA,CACA,kCEvCG,CFwCH,cAAA,CChCJ,yBD2BA,0CAOQ,oBAAA,CAAA,CAGR,sCACI,YAAA,CAGR,8BACI,WAAA,CACA,UAAA,CACA,qBAAA,CAEJ,gCACI,aAAA,CAGR,cACI,iBAAA,CACA,MAAA,CACA,UAAA,CAEA,8BG9DF,iCH+D2C,CG9D3C,yBH8D2C,CACrC,qBAAA,CACA,UAAA,CACA,qBAAA,CACA,WAAA,CACA,iBAAA,CACA,QAAA,CCtDA,0BD+CJ,8BASQ,QAAA,CAAA,CC5DJ,yBDmDJ,8BAaQ,WAAA,CAAA,CCpEJ,yBDuDJ,8BAgBQ,WAAA,CAAA,CC3EJ,0BD2DJ,8BAmBQ,YAAA,CAAA,CAEJ,aArBJ,8BAsBQ,YAAA,CAAA,CAGJ,mCIvFJ,iDJwFQ,CIvFR,8CJuFQ,CItFR,yCJsFQ,CACA,WAAA,CAEJ,wDK3FJ,0CL4FQ,CK3FR,wCL2FQ,CK1FR,6CL0FQ,CKzFR,qCLyFQ,CACA,eAAA,CACA,YAAA,CACA,6DACI,gBAAA,CACA,aAAA,CClFR,0BDgFI,6DAIQ,gBAAA,CAAA,CC5FZ,yBDwFI,6DAOQ,gBAAA,CAAA,CAIR,sEACI,eAAA,CACA,WAAA,CACA,aAAA,CACA,cAAA,CACA,kFACI,gBAAA,CAEJ,wEACI,aAAA,CACA,oBAAA,CACA,8EACI,yBAAA,CAGR,wFACI,YAAA,CACA,cAAA,CACA,2FACI,aAAA,CC9GhB,0BD6GY,2FAGQ,YAAA,CAAA,CCxHpB,yBDqHY,2FAMQ,MAAA,CAAA,CAEJ,6FACI,+BAAA,CACA,eAAA,CACA,oBAAA,CACA,mBAAA,CACA,aAAA,CAEJ,8FACI,SAAA,CACA,iGACI,kBAAA,CAMJ,+GACI,kBAAA,CAOxB,gDK5JJ,0CL6JQ,CK5JR,wCL4JQ,CK3JR,6CL2JQ,CK1JR,qCL0JQ,CACA,gBAAA,CACA,qBAAA,CACA,YAAA,CACA,eAAA,CACA,qDACI,eAAA,CAEJ,yGAEI,oBAAA,CACA,6BAAA,CACA,aAAA,CACA,oBAAA,CACA,aAAA,CACA,cAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,kCEjLD,CFkLC,eAAA,CACA,qHACI,yBAAA,CAEJ,6IACI,6BAAA\",\"sourcesContent\":[\"@use \\\"../../../style/mixins/border-radius\\\";\\n@use \\\"../../../style/mixins/box-shadow\\\";\\n@use \\\"../../../style/mixins/breakpoints\\\";\\n@use \\\"../../../style/mixins/transition\\\";\\n@use \\\"../../../style/variables/typography\\\";\\n* {\\n box-sizing: border-box;\\n}\\n\\nbutton.menu-toggle-button {\\n border: none;\\n background-color: transparent;\\n color: #403f3f;\\n cursor: pointer;\\n width: 40px;\\n height: 32px;\\n display: flex;\\n gap: 6px;\\n align-items: center;\\n\\n @include breakpoints.breakpoint(phablet) {\\n width: 45px;\\n height: 37px;\\n }\\n @include breakpoints.breakpoint(laptop) {\\n width: 98px;\\n background-color: transparent;\\n color: #403f3f;\\n }\\n &.open {\\n background-color: transparent;\\n }\\n span {\\n padding: 2px 1px;\\n vertical-align: middle;\\n &.menu-title {\\n display: none;\\n font-weight: 500;\\n vertical-align: middle;\\n font-family: typography.$default-font;\\n font-size: 14px;\\n @include breakpoints.breakpoint(laptop) {\\n display: inline-block;\\n }\\n }\\n &.hidden {\\n display: none;\\n }\\n }\\n svg {\\n height: 24px;\\n width: 24px;\\n vertical-align: middle;\\n }\\n &:hover {\\n color: #1073bc;\\n }\\n}\\n.menu-wrapper {\\n position: absolute;\\n left: 0;\\n width: 100%;\\n\\n .menu-container {\\n @include border-radius.border-radius(0 0 3px 3px);\\n box-sizing: border-box;\\n width: 100%;\\n background-color: #fff;\\n margin: auto;\\n position: relative;\\n top: 56px;\\n @include breakpoints.breakpoint(phablet) {\\n top: 15px;\\n }\\n\\n @include breakpoints.breakpoint(tablet) {\\n width: 750px;\\n }\\n @include breakpoints.breakpoint(laptop) {\\n width: 970px;\\n }\\n @include breakpoints.breakpoint(desktop) {\\n width: 1170px;\\n }\\n @media print {\\n display: none;\\n }\\n\\n &.open {\\n @include box-shadow.box-shadow(0 5px 5px -2px rgba(0, 0, 0, 0.26));\\n height: auto;\\n }\\n .menu-item-list-container {\\n @include transition.transition(max-height 0.3s ease-in-out);\\n overflow: hidden;\\n max-height: 0;\\n &.open {\\n max-height: 300px;\\n overflow: auto;\\n @include breakpoints.breakpoint(phablet) {\\n max-height: 450px;\\n }\\n @include breakpoints.breakpoint(laptop) {\\n max-height: 300px;\\n }\\n }\\n\\n .menuItemList {\\n list-style: none;\\n margin: 15px;\\n color: #414042;\\n font-size: 15px;\\n &:first-child {\\n padding: 15px 0 0;\\n }\\n a {\\n color: #414042;\\n text-decoration: none;\\n &:hover {\\n text-decoration: underline;\\n }\\n }\\n &.hierarchy-level-0 {\\n display: flex;\\n flex-wrap: wrap;\\n > li {\\n flex: 1 0 100%;\\n @include breakpoints.breakpoint(phablet) {\\n flex: 1 0 50%;\\n }\\n @include breakpoints.breakpoint(laptop) {\\n flex: 1;\\n }\\n > a {\\n border-bottom: 1px solid #b6afa8;\\n font-weight: 700;\\n padding-bottom: 0.75em;\\n margin-bottom: 0.75em;\\n display: block;\\n }\\n > ul {\\n padding: 0;\\n li {\\n margin-bottom: 12px;\\n }\\n }\\n }\\n &.hierarchy-level-1 {\\n > li {\\n > a {\\n font-weight: normal;\\n }\\n }\\n }\\n }\\n }\\n }\\n .menu-actions-row {\\n @include transition.transition(max-height 0.3s ease-in-out);\\n text-align: right;\\n background-color: white;\\n max-height: 0;\\n overflow: hidden;\\n &.open {\\n max-height: 56px;\\n }\\n a,\\n button {\\n display: inline-block;\\n padding: 0.25em 1em 0.25em 1.1em;\\n margin: 15px 0;\\n text-decoration: none;\\n color: #414042;\\n cursor: pointer;\\n border: none;\\n font-size: 16px;\\n font-weight: normal;\\n font-family: typography.$default-font;\\n background: none;\\n &:hover {\\n text-decoration: underline;\\n }\\n &:not(:first-child) {\\n border-left: 1px solid #b6afa8;\\n }\\n }\\n }\\n }\\n}\\n\",\"@use \\\"../variables/breakpoints\\\";\\n\\n@mixin breakpoint($point) {\\n @if $point == desktop {\\n @media (min-width: breakpoints.$screen-desktop) {\\n @content;\\n }\\n } @else if $point == laptop {\\n @media (min-width: breakpoints.$screen-laptop) {\\n @content;\\n }\\n } @else if $point == tablet {\\n @media (min-width: breakpoints.$screen-tablet) {\\n @content;\\n }\\n } @else if $point == phablet {\\n @media (min-width: breakpoints.$screen-phablet) {\\n @content;\\n }\\n }\\n}\\n\",\"$default-font: \\\"Open Sans\\\", sans-serif;\\n$header-font: \\\"Raleway\\\", sans-serif;\\n$default-font-size: 15px;\\n\",\"@mixin border-radius($radius) {\\n -webkit-border-radius: $radius;\\n border-radius: $radius;\\n}\\n\\n// Single side border-radius\\n\\n@mixin border-top-radius($radius) {\\n -webkit-border-top-right-radius: $radius;\\n border-top-right-radius: $radius;\\n -webkit-border-top-left-radius: $radius;\\n border-top-left-radius: $radius;\\n}\\n@mixin border-right-radius($radius) {\\n -webkit-border-bottom-right-radius: $radius;\\n border-bottom-right-radius: $radius;\\n -webkit-border-top-right-radius: $radius;\\n border-top-right-radius: $radius;\\n}\\n@mixin border-bottom-radius($radius) {\\n -webkit-border-bottom-right-radius: $radius;\\n border-bottom-right-radius: $radius;\\n -webkit-border-bottom-left-radius: $radius;\\n border-bottom-left-radius: $radius;\\n}\\n@mixin border-left-radius($radius) {\\n -webkit-border-bottom-left-radius: $radius;\\n border-bottom-left-radius: $radius;\\n -webkit-border-top-left-radius: $radius;\\n border-top-left-radius: $radius;\\n}\",\"@mixin box-shadow($shadows...) {\\n -webkit-box-shadow: $shadows;\\n -moz-box-shadow: $shadows;\\n box-shadow: $shadows;\\n}\\n\",\"@mixin transition($transition...) {\\n -moz-transition: $transition;\\n -o-transition: $transition;\\n -webkit-transition: $transition;\\n transition: $transition;\\n}\\n\\n@mixin transition-property($property...) {\\n -moz-transition-property: $property;\\n -o-transition-property: $property;\\n -webkit-transition-property: $property;\\n transition-property: $property;\\n}\\n\\n@mixin transition-duration($duration...) {\\n -moz-transition-property: $duration;\\n -o-transition-property: $duration;\\n -webkit-transition-property: $duration;\\n transition-property: $duration;\\n}\\n\\n@mixin transition-timing-function($timing...) {\\n -moz-transition-timing-function: $timing;\\n -o-transition-timing-function: $timing;\\n -webkit-transition-timing-function: $timing;\\n transition-timing-function: $timing;\\n}\\n\\n@mixin transition-delay($delay...) {\\n -moz-transition-delay: $delay;\\n -o-transition-delay: $delay;\\n -webkit-transition-delay: $delay;\\n transition-delay: $delay;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export const toKebabCase = (str: string) => {\r\n return str\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/[\\s_]+/g, '-')\r\n .toLowerCase();\r\n};\r\n\r\nexport const toCamelCase = (str: string) => {\r\n return str\r\n .toLowerCase()\r\n .replace(/(\\-\\w)/g, (m) => m[1].toUpperCase());\r\n};\r\n\r\nexport const toDotCase = (str: string) => {\r\n return str.replace(/(?!^)([A-Z])/g, ' $1')\r\n .replace(/[_\\s]+(?=[a-zA-Z])/g, '.')\r\n .toLowerCase();\r\n};\r\n\r\nexport const tryParseInt = (value: any) => {\r\n return (parseInt(value) == value && parseFloat(value) !== NaN) ? parseInt(value) : value;\r\n};\r\n","export * from './component';\r\nexport * from './custom-element';\r\nexport * from './helpers';\r\nexport * from './listen';\r\nexport * from './prop';\r\nexport * from './toggle';\r\nexport * from './types';\r\nexport * from './watch';","export const getElement = <T extends HTMLElement>(selector: string): T => {\r\n return document.querySelector(selector);\r\n};\r\n\r\nexport const getShadowRootElement = <T extends HTMLElement>(customElement: HTMLElement, selector: string): T => {\r\n return customElement.shadowRoot.querySelector(selector);\r\n};","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 -960 960 960\\\"><path fill=\\\"currentColor\\\" d=\\\"m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z\\\"></path></svg>\"","import { CustomElementOptions } from \"./types\";\r\n\r\nexport abstract class CustomElement extends HTMLElement {\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected abstract setup(options?: CustomElementOptions): void;\r\n\r\n protected connect(selector: string): void {\r\n if (!this.isConnected) {\r\n document.querySelector(selector).appendChild(this);\r\n }\r\n }\r\n}\r\n","import { toKebabCase } from './util';\r\n\r\nexport const Toggle = (): any => {\r\n return (target: any, propName: any) => {\r\n function get() {\r\n const getAttribute = (propName: string) => {\r\n if (this.hasAttribute(propName)) {\r\n const attrValue = this.getAttribute(propName);\r\n if (/^(true|false|^$)$/.test(attrValue)) {\r\n return attrValue == 'true' || attrValue == '';\r\n } else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n };\r\n return getAttribute(propName);\r\n }\r\n function set(value: any) {\r\n const oldValue = value;\r\n if (value != undefined) {\r\n switch (typeof value) {\r\n case 'boolean':\r\n break;\r\n case 'string':\r\n if (/^(true|false|^$)$/.test(value)) {\r\n value = oldValue == 'true' || oldValue == '';\r\n } else {\r\n console.warn(`TypeError: Cannot set boolean toggle property '${propName}' to '${value}'`);\r\n value = false;\r\n }\r\n break;\r\n default:\r\n throw (`TypeError: Cannot set boolean toggle property '${propName}' to '${value}'`);\r\n }\r\n }\r\n if (this.__connected) {\r\n this.props[propName] = value || false;\r\n if (oldValue !== '' && oldValue !== null) {\r\n this.setAttribute(propName, value);\r\n } else {\r\n if (value) {\r\n this.setAttribute(propName, '');\r\n } else {\r\n this.removeAttribute(propName);\r\n }\r\n }\r\n } else {\r\n if (!this.hasAttribute(toKebabCase(propName))) {\r\n this.constructor.propsInit[propName] = value;\r\n }\r\n }\r\n }\r\n if (!target.constructor.propsInit) {\r\n target.constructor.propsInit = {};\r\n }\r\n target.constructor.propsInit[propName] = null;\r\n Object.defineProperty(target, propName, { get, set });\r\n };\r\n};\r\n","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 -960 960 960\\\"><path fill=\\\"currentColor\\\" d=\\\"M160-240q-17 0-28.5-11.5T120-280q0-17 11.5-28.5T160-320h640q17 0 28.5 11.5T840-280q0 17-11.5 28.5T800-240H160Zm0-200q-17 0-28.5-11.5T120-480q0-17 11.5-28.5T160-520h640q17 0 28.5 11.5T840-480q0 17-11.5 28.5T800-440H160Zm0-200q-17 0-28.5-11.5T120-680q0-17 11.5-28.5T160-720h640q17 0 28.5 11.5T840-680q0 17-11.5 28.5T800-640H160Z\\\"></path></svg>\"","export const getFocusableElementsInsideElement = (element: HTMLElement) => {\n return element.querySelectorAll('button, [href], input, [tabindex=\"0\"]');\n};\n\nexport const getDocumentHeading = () => {\n let documentHeading = document.querySelector(\"heading-text\") as HTMLElement | null; // This assumes that the heading is wrapped in a custom element called \"heading-text\"\n if (!documentHeading) {\n documentHeading = document.querySelector(\"h1:not(.sb-nopreview_heading.sb-heading)\") as HTMLElement | null; // Exclude the heading used by Storybook\n }\n return documentHeading;\n};\n\nexport const addGlobalStylesheet = (styleElementId: string, styles: string) => {\n const style = document.createElement(\"style\");\n style.setAttribute(\"id\", styleElementId);\n style.textContent = styles;\n if (!document.getElementById(styleElementId)) {\n document.head.appendChild(style);\n }\n};\n\nexport const removeInnerHTML = (element: HTMLElement) => {\n while (element.firstChild) {\n if (element.contains(element.firstChild)) {\n element.removeChild(element.firstChild);\n } else {\n // If not a child, break to avoid infinite loop\n break;\n }\n }\n};\n","import { toKebabCase, tryParseInt } from './util';\r\n\r\nexport const Prop = (): any => {\r\n return (target: any, propName: any) => {\r\n const attrName = toKebabCase(propName);\r\n function get() {\r\n if (this.props[propName]) {\r\n return this.props[propName];\r\n }\r\n return this.getAttribute(attrName);\r\n }\r\n function set(value: any) {\r\n if (this.__connected) {\r\n const oldValue = this.props[propName];\r\n this.props[propName] = tryParseInt(value);\r\n if (typeof value != 'object') {\r\n this.setAttribute(attrName, value);\r\n } else {\r\n this.onAttributeChange(attrName, oldValue, value, false);\r\n }\r\n } else {\r\n if (!this.hasAttribute(toKebabCase(propName))) {\r\n this.constructor.propsInit[propName] = value;\r\n }\r\n }\r\n }\r\n if (!target.constructor.propsInit) {\r\n target.constructor.propsInit = {};\r\n }\r\n target.constructor.propsInit[propName] = null;\r\n Object.defineProperty(target, propName, { get, set });\r\n };\r\n};\r\n\r\nconst getProps = (target: any) => {\r\n const watchAttributes = target.constructor.watchAttributes;\r\n const plainAttributes = { ...watchAttributes };\r\n Object.keys(plainAttributes).forEach(v => plainAttributes[v] = '');\r\n const cycleProps = { ...plainAttributes, ...target.constructor.propsInit };\r\n return Object.keys(cycleProps);\r\n};\r\n\r\nexport const initializeProps = (target: any) => {\r\n const watchAttributes = target.constructor.watchAttributes;\r\n for (let prop of getProps(target)) {\r\n if (watchAttributes) {\r\n if (watchAttributes[toKebabCase(prop)] == null) {\r\n watchAttributes[toKebabCase(prop)] = '';\r\n } else {\r\n const attribValue = target.props[prop] || target.getAttribute(toKebabCase(prop));\r\n if (typeof target[watchAttributes[prop]] == 'function') {\r\n target[watchAttributes[prop]]({ new: attribValue });\r\n }\r\n }\r\n }\r\n if (target.constructor.propsInit[prop]) {\r\n if (!target.hasAttribute(toKebabCase(prop))) {\r\n target[prop] = target.constructor.propsInit[prop];\r\n }\r\n }\r\n }\r\n};","import { addEventListeners, ListenerMetadata } from './listen';\r\nimport { initializeProps } from './prop';\r\nimport { ComponentMetadata, KeyValue } from './types';\r\nimport { toKebabCase, toCamelCase } from './util';\r\n\r\nexport const Component = (args: ComponentMetadata) => {\r\n return (target: any) => {\r\n const tag: string = args.tag || toKebabCase(target.prototype.constructor.name);\r\n const customElement: any = class extends (target as { new(): any }) {\r\n protected static __connected: boolean = false;\r\n protected static propsInit: KeyValue;\r\n protected static watchAttributes: KeyValue;\r\n protected static listeners: ListenerMetadata[];\r\n protected static ready: Promise<boolean> = new Promise((resolve, _) => resolve(true));\r\n public props: KeyValue = {};\r\n private showShadowRoot: boolean;\r\n\r\n public static get observedAttributes(): string[] {\r\n return Object.keys(this.propsInit || {}).map(x => toKebabCase(x));\r\n }\r\n\r\n constructor() {\r\n super();\r\n\r\n this.showShadowRoot = args.shadow == null ? true : args.shadow;\r\n\r\n if (!this.shadowRoot && this.showShadowRoot) {\r\n this.attachShadow({ mode: 'open' });\r\n }\r\n }\r\n\r\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\r\n this.onAttributeChange(name, oldValue, newValue);\r\n }\r\n\r\n public onAttributeChange(name: string, oldValue: string, newValue: string, set: boolean = true): void {\r\n if (oldValue != newValue) {\r\n if (set) { this[toCamelCase(name)] = newValue; }\r\n const watchAttributes: KeyValue = (this.constructor as any).watchAttributes;\r\n if (watchAttributes && watchAttributes[name]) {\r\n const methodToCall: string = watchAttributes[name];\r\n if (this.__connected) {\r\n if (typeof this[methodToCall] == 'function') {\r\n this[methodToCall]({ old: oldValue, new: newValue });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public async connectedCallback(): Promise<void> {\r\n await this.render();\r\n super.connectedCallback && super.connectedCallback();\r\n this.__connected = true;\r\n\r\n addEventListeners(this);\r\n initializeProps(this);\r\n }\r\n\r\n private async render(): Promise<void> {\r\n if (this.__connected) {\r\n return;\r\n }\r\n\r\n const template = document.createElement('template');\r\n template.innerHTML = await this.getStyle();\r\n\r\n if (args.template instanceof Promise) {\r\n template.content.appendChild(await this.getExternalTemplate());\r\n } else if (typeof args.template === 'string') {\r\n template.innerHTML += args.template;\r\n }\r\n\r\n (this.showShadowRoot ? this.shadowRoot : this).appendChild(template.content.cloneNode(true));\r\n }\r\n\r\n private async getExternalTemplate(): Promise<DocumentFragment> {\r\n const templateModule = await (args.template as Promise<typeof import('*.html')>);\r\n const markup = templateModule.default.toString();\r\n const fragment = document.createRange().createContextualFragment(markup);\r\n\r\n if (fragment.children.length === 1 && fragment.children[0].nodeName === 'TEMPLATE') {\r\n return (fragment.firstChild as HTMLTemplateElement).content;\r\n }\r\n return fragment;\r\n }\r\n\r\n private async getStyle(): Promise<string> {\r\n let css: string;\r\n\r\n if (args.style instanceof Promise) {\r\n const styleModule = await args.style;\r\n css = styleModule.default.toString();\r\n } else if (typeof args.style === 'string') {\r\n css = args.style;\r\n }\r\n\r\n return `${css ? `<style>${css}</style>` : ''}`\r\n }\r\n };\r\n\r\n if (!customElements.get(tag)) {\r\n customElements.define(tag, customElement);\r\n }\r\n\r\n return customElement;\r\n };\r\n};\r\n\r\n\r\n","export const getKartkatalogApiUrl = (environment: string) => {\n const environmentSlug = environment === \"dev\" || environment === \"test\" ? environment + \".\" : \"\";\n return `https://kartkatalog.${environmentSlug}geonorge.no/api`;\n};\n\nexport const getMinSideShortcutApiUrl = (environment: string, shortcutUrl?: string) => {\n const environmentSlug = environment === \"dev\" || environment === \"test\" ? environment + \".\" : \"\";\n const urlParameterString = shortcutUrl?.length ? `?${new URLSearchParams({ url: shortcutUrl }).toString()}` : \"\";\n return `https://minside.${environmentSlug}geonorge.no/api/shortcut${urlParameterString}`;\n};\nexport const getMinSideShortcutUrl = (environment: string) => {\n const environmentSlug = environment === \"dev\" || environment === \"test\" ? environment + \".\" : \"\";\n return `https://minside.${environmentSlug}geonorge.no/shortcuts`;\n};\n\nexport const fetchShortcutItem = async (environment: string = \"\", token: string, shortcutUrl: string) => {\n const apiUrl = getMinSideShortcutApiUrl(environment, shortcutUrl);\n const fetchOptions = {\n method: \"GET\",\n headers: new Headers({\n Authorization: `Bearer ${token}`\n })\n };\n try {\n return fetch(apiUrl, fetchOptions).then((res) => {\n if (res.status === 200) {\n return res.json().then((shortcutItem) => {\n return shortcutItem;\n });\n } else {\n return null;\n }\n });\n } catch (error) {\n console.error(\"Error fetching shortcut items:\", error);\n return null;\n }\n};\n\nexport const postShortcutItem = async (\n environment: string = \"\",\n token: string,\n shortcutItem: { name: string; url: string }\n) => {\n const apiUrl = getMinSideShortcutApiUrl(environment);\n const fetchOptions = {\n method: \"POST\",\n headers: new Headers({\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"application/json\"\n }),\n body: JSON.stringify(shortcutItem)\n };\n return fetch(apiUrl, fetchOptions)\n .then((res) => res.json())\n .then((shortcutItem) => {\n return shortcutItem;\n });\n};\n\nexport const deleteShortcutItem = async (environment: string = \"\", token: string, shortcutItem: { url: string }) => {\n const apiUrl = getMinSideShortcutApiUrl(environment);\n const fetchOptions = {\n method: \"DELETE\",\n headers: new Headers({\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"application/json\"\n }),\n body: JSON.stringify(shortcutItem)\n };\n return fetch(apiUrl, fetchOptions);\n};\n\nexport const getGeonorgeMenuUrl = (language: string, environment: string) => {\n const environmentSlug = environment === \"dev\" || environment === \"test\" ? \"test.\" : \"\";\n const selectedLanguageSlug = language === \"en\" ? \"en/\" : \"\";\n if (environment === \"dev\") return `https://dev.geonorge.no/menu.xml`;\n else return `https://www.${environmentSlug}geonorge.no/${selectedLanguageSlug}api/menu/get?omitLinks=1`;\n};\n\nexport const fetchMenuItems = (language: string = \"no\", environment: string = \"\") => {\n const apiUrl = getGeonorgeMenuUrl(language, environment);\n return fetch(apiUrl)\n .then((res) => res.json())\n .then((menuItems) => {\n return menuItems;\n });\n};\n\nexport const fetchDropdownSearchResults = async (\n searchString: string = \"\",\n language: string = \"no\",\n environment: string = \"\"\n) => {\n searchString = searchString.toString();\n const urlParameterStrings = {\n dataset: `search?text=${searchString}&facets%5B1%5Dname=type&facets%5B1%5Dvalue=dataset`,\n series: `search?text=${searchString}&facets%5B1%5Dname=type&facets%5B1%5Dvalue=series`,\n service: `search?text=${searchString}&facets%5B1%5Dname=type&facets%5B1%5Dvalue=service`,\n servicelayer: `search?text=${searchString}&facets%5B1%5Dname=type&facets%5B1%5Dvalue=servicelayer`,\n software: `search?text=${searchString}&facets%5B1%5Dname=type&facets%5B1%5Dvalue=software`,\n articles: `articles?text=${searchString}`\n };\n const fetchOptions = {\n headers: new Headers({\n \"Accept-Language\": language\n })\n };\n const limitParameterString = \"limit=5\";\n\n return searchString && searchString.length\n ? await Promise.all(\n Object.keys(urlParameterStrings).map(async (searchResultsType) => {\n const kartkatalogApiUrl = getKartkatalogApiUrl(environment);\n let urlParameterString = urlParameterStrings[searchResultsType];\n return fetch(`${kartkatalogApiUrl}/${urlParameterString}&${limitParameterString}`, fetchOptions)\n .then((res) => res.json())\n .then((searchResults) => {\n return {\n ...searchResults,\n searchResultsType\n };\n });\n })\n )\n : null;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(761);\n"],"names":["root","factory","exports","module","define","amd","self","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","id","_k","push","Listen","eventName","selector","target","methodName","constructor","listeners","handler","addEventListeners","targetRoot","shadowRoot","listener","eventTarget","querySelector","addEventListener","e","call","Dispatch","propertyName","Object","defineProperty","get","emit","options","evtName","toDotCase","dispatchEvent","CustomEvent","MainMenu","CustomElement","super","hideMenuContainer","showmenu","renderMenuItems","menuItems","hierarchyLevel","maxHierarchyLevel","menuItemsListElement","menuItem","subItems","SubMenuItem","Url","Name","clickOutsideMenuContainer","bind","setup","connect","container","connectedCallback","menuButton","getShadowRootElement","menuTitle","menuIcon","closeIcon","menuContainer","menuItemListContainer","menuActionsRow","innerHTML","classList","add","fetchMenuItems","language","environment","then","menuitems","setAttribute","innerText","signinurl","signouturl","addAuthenticationLinks","englishurl","norwegianurl","addLanguageSelectLinks","document","disconnectedCallback","removeEventListener","event","targetElement","composedPath","closest","hasAuthenticationFunction","loginToggleElement","createElement","isloggedin","onSignOutClick","onSignInClick","href","childElement","children","getAttribute","remove","appendChild","hasLanguageSelectFunctions","languageToggleElement","onNorwegianLanguageSelect","onEnglishLanguageSelect","buttonClicked","hasAuthenticationFunctionChanged","isLoggedInChanged","hasLanguageSelectFunctionsChanged","languageChanged","showMenuChanged","getFocusableElementsInsideElement","forEach","focusableElement","removeAttribute","menuItemsChanged","element","getElement","onClick","active","elementSelector","Prop","Toggle","Watch","Component","tag","template","style","attrName","watchAttributes","toKebabCase","propsInit","___CSS_LOADER_EXPORT___","str","replace","toLowerCase","toCamelCase","m","toUpperCase","tryParseInt","value","parseInt","NaN","parseFloat","customElement","HTMLElement","isConnected","propName","hasAttribute","attrValue","test","set","oldValue","console","warn","__connected","props","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","querySelectorAll","getDocumentHeading","documentHeading","addGlobalStylesheet","styleElementId","styles","textContent","getElementById","head","removeInnerHTML","firstChild","contains","removeChild","onAttributeChange","initializeProps","prop","plainAttributes","keys","v","cycleProps","getProps","attribValue","new","args","prototype","name","showShadowRoot","shadow","attachShadow","mode","observedAttributes","x","attributeChangedCallback","newValue","methodToCall","old","render","getStyle","Promise","getExternalTemplate","cloneNode","markup","default","fragment","createRange","createContextualFragment","nodeName","css","ready","resolve","_","customElements","getKartkatalogApiUrl","getMinSideShortcutApiUrl","shortcutUrl","URLSearchParams","url","getMinSideShortcutUrl","fetchShortcutItem","token","apiUrl","fetchOptions","method","headers","Headers","Authorization","fetch","res","status","json","shortcutItem","error","postShortcutItem","body","deleteShortcutItem","getGeonorgeMenuUrl","fetchDropdownSearchResults","searchString","urlParameterStrings","dataset","series","service","servicelayer","software","articles","all","searchResultsType","kartkatalogApiUrl","searchResults","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","enumerable","obj","hasOwnProperty","r","Symbol","toStringTag"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"MainMenu.js","mappings":"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","sources":["webpack://geonorge/webpack/universalModuleDefinition","webpack://geonorge/./stories/main-navigation/main-menu/main-menu.scss","webpack://geonorge/./stories/main-navigation/main-menu/main-menu.html","webpack://geonorge/../node_modules/css-loader/dist/runtime/api.js","webpack://geonorge/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://geonorge/../node_modules/super-custom-elements/src/component.ts","webpack://geonorge/../node_modules/super-custom-elements/src/custom-element.ts","webpack://geonorge/../node_modules/super-custom-elements/src/helpers.ts","webpack://geonorge/../node_modules/super-custom-elements/src/index.ts","webpack://geonorge/../node_modules/super-custom-elements/src/listen.ts","webpack://geonorge/../node_modules/super-custom-elements/src/prop.ts","webpack://geonorge/../node_modules/super-custom-elements/src/toggle.ts","webpack://geonorge/../node_modules/super-custom-elements/src/util.ts","webpack://geonorge/../node_modules/super-custom-elements/src/watch.ts","webpack://geonorge/./assets/svg/burgerG.svg","webpack://geonorge/./assets/svg/close-icon-black.svg","webpack://geonorge/./functions/apiHelpers.ts","webpack://geonorge/./functions/guiHelpers.ts","webpack://geonorge/./stories/main-navigation/main-menu/main-menu.ts","webpack://geonorge/webpack/bootstrap","webpack://geonorge/webpack/runtime/compat get default export","webpack://geonorge/webpack/runtime/define property getters","webpack://geonorge/webpack/runtime/hasOwnProperty shorthand","webpack://geonorge/webpack/runtime/make namespace object","webpack://geonorge/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"geonorge\"] = factory();\n\telse\n\t\troot[\"geonorge\"] = root[\"geonorge\"] || {}, root[\"geonorge\"][\"MainMenu\"] = factory();\n})(self, () => {\nreturn ","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `*{box-sizing:border-box}button.menu-toggle-button{border:none;background-color:rgba(0,0,0,0);color:#403f3f;cursor:pointer;width:40px;height:32px;display:flex;gap:6px;align-items:center}@media(min-width: 37.5em){button.menu-toggle-button{width:45px;height:37px}}@media(min-width: 992px){button.menu-toggle-button{width:98px;background-color:rgba(0,0,0,0);color:#403f3f}}button.menu-toggle-button.open{background-color:rgba(0,0,0,0)}button.menu-toggle-button span{padding:2px 1px;vertical-align:middle}button.menu-toggle-button span.menu-title{display:none;font-weight:500;vertical-align:middle;font-family:\"Open Sans\",sans-serif;font-size:14px}@media(min-width: 992px){button.menu-toggle-button span.menu-title{display:inline-block}}button.menu-toggle-button span.hidden{display:none}button.menu-toggle-button svg{height:24px;width:24px;vertical-align:middle}button.menu-toggle-button:hover{color:#1073bc}.menu-wrapper{position:absolute;left:0;width:100%}.menu-wrapper .menu-container{-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;box-sizing:border-box;width:100%;background-color:#fff;margin:auto;position:relative;top:56px}@media(min-width: 37.5em){.menu-wrapper .menu-container{top:15px}}@media(min-width: 768px){.menu-wrapper .menu-container{width:750px}}@media(min-width: 992px){.menu-wrapper .menu-container{width:970px}}@media(min-width: 1200px){.menu-wrapper .menu-container{width:1170px}}@media print{.menu-wrapper .menu-container{display:none}}.menu-wrapper .menu-container.open{-webkit-box-shadow:0 5px 5px -2px rgba(0,0,0,.26);-moz-box-shadow:0 5px 5px -2px rgba(0,0,0,.26);box-shadow:0 5px 5px -2px rgba(0,0,0,.26);height:auto}.menu-wrapper .menu-container .menu-item-list-container{-moz-transition:max-height .3s ease-in-out;-o-transition:max-height .3s ease-in-out;-webkit-transition:max-height .3s ease-in-out;transition:max-height .3s ease-in-out;overflow:hidden;max-height:0}.menu-wrapper .menu-container .menu-item-list-container.open{max-height:300px;overflow:auto}@media(min-width: 37.5em){.menu-wrapper .menu-container .menu-item-list-container.open{max-height:450px}}@media(min-width: 992px){.menu-wrapper .menu-container .menu-item-list-container.open{max-height:300px}}.menu-wrapper .menu-container .menu-item-list-container .menuItemList{list-style:none;margin:15px;color:#414042;font-size:15px}.menu-wrapper .menu-container .menu-item-list-container .menuItemList:first-child{padding:15px 0 0}.menu-wrapper .menu-container .menu-item-list-container .menuItemList a{color:#414042;text-decoration:none}.menu-wrapper .menu-container .menu-item-list-container .menuItemList a:hover{text-decoration:underline}.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0{display:flex;flex-wrap:wrap}.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0>li{flex:1 0 100%}@media(min-width: 37.5em){.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0>li{flex:1 0 50%}}@media(min-width: 992px){.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0>li{flex:1}}.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0>li>a{border-bottom:1px solid #b6afa8;font-weight:700;padding-bottom:.75em;margin-bottom:.75em;display:block}.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0>li>ul{padding:0}.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0>li>ul li{margin-bottom:12px}.menu-wrapper .menu-container .menu-item-list-container .menuItemList.hierarchy-level-0.hierarchy-level-1>li>a{font-weight:normal}.menu-wrapper .menu-container .menu-actions-row{-moz-transition:max-height .3s ease-in-out;-o-transition:max-height .3s ease-in-out;-webkit-transition:max-height .3s ease-in-out;transition:max-height .3s ease-in-out;text-align:right;background-color:#fff;max-height:0;overflow:hidden}.menu-wrapper .menu-container .menu-actions-row.open{max-height:56px}.menu-wrapper .menu-container .menu-actions-row a,.menu-wrapper .menu-container .menu-actions-row button{display:inline-block;padding:.25em 1em .25em 1.1em;margin:15px 0;text-decoration:none;color:#414042;cursor:pointer;border:none;font-size:16px;font-weight:normal;font-family:\"Open Sans\",sans-serif;background:none}.menu-wrapper .menu-container .menu-actions-row a:hover,.menu-wrapper .menu-container .menu-actions-row button:hover{text-decoration:underline}.menu-wrapper .menu-container .menu-actions-row a:not(:first-child),.menu-wrapper .menu-container .menu-actions-row button:not(:first-child){border-left:1px solid #b6afa8}`, \"\",{\"version\":3,\"sources\":[\"webpack://./stories/main-navigation/main-menu/main-menu.scss\",\"webpack://./style/mixins/_breakpoints.scss\",\"webpack://./style/variables/_typography.scss\",\"webpack://./style/mixins/_border-radius.scss\",\"webpack://./style/mixins/_box-shadow.scss\",\"webpack://./style/mixins/_transition.scss\"],\"names\":[],\"mappings\":\"AAKA,EACI,qBAAA,CAGJ,0BACI,WAAA,CACA,8BAAA,CACA,aAAA,CACA,cAAA,CACA,UAAA,CACA,WAAA,CACA,YAAA,CACA,OAAA,CACA,kBAAA,CCFI,0BDPR,0BAYQ,UAAA,CACA,WAAA,CAAA,CCdA,yBDCR,0BAgBQ,UAAA,CACA,8BAAA,CACA,aAAA,CAAA,CAEJ,+BACI,8BAAA,CAEJ,+BACI,eAAA,CACA,qBAAA,CACA,0CACI,YAAA,CACA,eAAA,CACA,qBAAA,CACA,kCEvCG,CFwCH,cAAA,CChCJ,yBD2BA,0CAOQ,oBAAA,CAAA,CAGR,sCACI,YAAA,CAGR,8BACI,WAAA,CACA,UAAA,CACA,qBAAA,CAEJ,gCACI,aAAA,CAGR,cACI,iBAAA,CACA,MAAA,CACA,UAAA,CAEA,8BG9DF,iCH+D2C,CG9D3C,yBH8D2C,CACrC,qBAAA,CACA,UAAA,CACA,qBAAA,CACA,WAAA,CACA,iBAAA,CACA,QAAA,CCtDA,0BD+CJ,8BASQ,QAAA,CAAA,CC5DJ,yBDmDJ,8BAaQ,WAAA,CAAA,CCpEJ,yBDuDJ,8BAgBQ,WAAA,CAAA,CC3EJ,0BD2DJ,8BAmBQ,YAAA,CAAA,CAEJ,aArBJ,8BAsBQ,YAAA,CAAA,CAGJ,mCIvFJ,iDJwFQ,CIvFR,8CJuFQ,CItFR,yCJsFQ,CACA,WAAA,CAEJ,wDK3FJ,0CL4FQ,CK3FR,wCL2FQ,CK1FR,6CL0FQ,CKzFR,qCLyFQ,CACA,eAAA,CACA,YAAA,CACA,6DACI,gBAAA,CACA,aAAA,CClFR,0BDgFI,6DAIQ,gBAAA,CAAA,CC5FZ,yBDwFI,6DAOQ,gBAAA,CAAA,CAIR,sEACI,eAAA,CACA,WAAA,CACA,aAAA,CACA,cAAA,CACA,kFACI,gBAAA,CAEJ,wEACI,aAAA,CACA,oBAAA,CACA,8EACI,yBAAA,CAGR,wFACI,YAAA,CACA,cAAA,CACA,2FACI,aAAA,CC9GhB,0BD6GY,2FAGQ,YAAA,CAAA,CCxHpB,yBDqHY,2FAMQ,MAAA,CAAA,CAEJ,6FACI,+BAAA,CACA,eAAA,CACA,oBAAA,CACA,mBAAA,CACA,aAAA,CAEJ,8FACI,SAAA,CACA,iGACI,kBAAA,CAMJ,+GACI,kBAAA,CAOxB,gDK5JJ,0CL6JQ,CK5JR,wCL4JQ,CK3JR,6CL2JQ,CK1JR,qCL0JQ,CACA,gBAAA,CACA,qBAAA,CACA,YAAA,CACA,eAAA,CACA,qDACI,eAAA,CAEJ,yGAEI,oBAAA,CACA,6BAAA,CACA,aAAA,CACA,oBAAA,CACA,aAAA,CACA,cAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,kCEjLD,CFkLC,eAAA,CACA,qHACI,yBAAA,CAEJ,6IACI,6BAAA\",\"sourcesContent\":[\"@use \\\"../../../style/mixins/border-radius\\\";\\n@use \\\"../../../style/mixins/box-shadow\\\";\\n@use \\\"../../../style/mixins/breakpoints\\\";\\n@use \\\"../../../style/mixins/transition\\\";\\n@use \\\"../../../style/variables/typography\\\";\\n* {\\n box-sizing: border-box;\\n}\\n\\nbutton.menu-toggle-button {\\n border: none;\\n background-color: transparent;\\n color: #403f3f;\\n cursor: pointer;\\n width: 40px;\\n height: 32px;\\n display: flex;\\n gap: 6px;\\n align-items: center;\\n\\n @include breakpoints.breakpoint(phablet) {\\n width: 45px;\\n height: 37px;\\n }\\n @include breakpoints.breakpoint(laptop) {\\n width: 98px;\\n background-color: transparent;\\n color: #403f3f;\\n }\\n &.open {\\n background-color: transparent;\\n }\\n span {\\n padding: 2px 1px;\\n vertical-align: middle;\\n &.menu-title {\\n display: none;\\n font-weight: 500;\\n vertical-align: middle;\\n font-family: typography.$default-font;\\n font-size: 14px;\\n @include breakpoints.breakpoint(laptop) {\\n display: inline-block;\\n }\\n }\\n &.hidden {\\n display: none;\\n }\\n }\\n svg {\\n height: 24px;\\n width: 24px;\\n vertical-align: middle;\\n }\\n &:hover {\\n color: #1073bc;\\n }\\n}\\n.menu-wrapper {\\n position: absolute;\\n left: 0;\\n width: 100%;\\n\\n .menu-container {\\n @include border-radius.border-radius(0 0 3px 3px);\\n box-sizing: border-box;\\n width: 100%;\\n background-color: #fff;\\n margin: auto;\\n position: relative;\\n top: 56px;\\n @include breakpoints.breakpoint(phablet) {\\n top: 15px;\\n }\\n\\n @include breakpoints.breakpoint(tablet) {\\n width: 750px;\\n }\\n @include breakpoints.breakpoint(laptop) {\\n width: 970px;\\n }\\n @include breakpoints.breakpoint(desktop) {\\n width: 1170px;\\n }\\n @media print {\\n display: none;\\n }\\n\\n &.open {\\n @include box-shadow.box-shadow(0 5px 5px -2px rgba(0, 0, 0, 0.26));\\n height: auto;\\n }\\n .menu-item-list-container {\\n @include transition.transition(max-height 0.3s ease-in-out);\\n overflow: hidden;\\n max-height: 0;\\n &.open {\\n max-height: 300px;\\n overflow: auto;\\n @include breakpoints.breakpoint(phablet) {\\n max-height: 450px;\\n }\\n @include breakpoints.breakpoint(laptop) {\\n max-height: 300px;\\n }\\n }\\n\\n .menuItemList {\\n list-style: none;\\n margin: 15px;\\n color: #414042;\\n font-size: 15px;\\n &:first-child {\\n padding: 15px 0 0;\\n }\\n a {\\n color: #414042;\\n text-decoration: none;\\n &:hover {\\n text-decoration: underline;\\n }\\n }\\n &.hierarchy-level-0 {\\n display: flex;\\n flex-wrap: wrap;\\n > li {\\n flex: 1 0 100%;\\n @include breakpoints.breakpoint(phablet) {\\n flex: 1 0 50%;\\n }\\n @include breakpoints.breakpoint(laptop) {\\n flex: 1;\\n }\\n > a {\\n border-bottom: 1px solid #b6afa8;\\n font-weight: 700;\\n padding-bottom: 0.75em;\\n margin-bottom: 0.75em;\\n display: block;\\n }\\n > ul {\\n padding: 0;\\n li {\\n margin-bottom: 12px;\\n }\\n }\\n }\\n &.hierarchy-level-1 {\\n > li {\\n > a {\\n font-weight: normal;\\n }\\n }\\n }\\n }\\n }\\n }\\n .menu-actions-row {\\n @include transition.transition(max-height 0.3s ease-in-out);\\n text-align: right;\\n background-color: white;\\n max-height: 0;\\n overflow: hidden;\\n &.open {\\n max-height: 56px;\\n }\\n a,\\n button {\\n display: inline-block;\\n padding: 0.25em 1em 0.25em 1.1em;\\n margin: 15px 0;\\n text-decoration: none;\\n color: #414042;\\n cursor: pointer;\\n border: none;\\n font-size: 16px;\\n font-weight: normal;\\n font-family: typography.$default-font;\\n background: none;\\n &:hover {\\n text-decoration: underline;\\n }\\n &:not(:first-child) {\\n border-left: 1px solid #b6afa8;\\n }\\n }\\n }\\n }\\n}\\n\",\"@use \\\"../variables/breakpoints\\\";\\n\\n@mixin breakpoint($point) {\\n @if $point == desktop {\\n @media (min-width: breakpoints.$screen-desktop) {\\n @content;\\n }\\n } @else if $point == laptop {\\n @media (min-width: breakpoints.$screen-laptop) {\\n @content;\\n }\\n } @else if $point == tablet {\\n @media (min-width: breakpoints.$screen-tablet) {\\n @content;\\n }\\n } @else if $point == phablet {\\n @media (min-width: breakpoints.$screen-phablet) {\\n @content;\\n }\\n }\\n}\\n\",\"$default-font: \\\"Open Sans\\\", sans-serif;\\n$header-font: \\\"Raleway\\\", sans-serif;\\n$default-font-size: 15px;\\n\",\"@mixin border-radius($radius) {\\n -webkit-border-radius: $radius;\\n border-radius: $radius;\\n}\\n\\n// Single side border-radius\\n\\n@mixin border-top-radius($radius) {\\n -webkit-border-top-right-radius: $radius;\\n border-top-right-radius: $radius;\\n -webkit-border-top-left-radius: $radius;\\n border-top-left-radius: $radius;\\n}\\n@mixin border-right-radius($radius) {\\n -webkit-border-bottom-right-radius: $radius;\\n border-bottom-right-radius: $radius;\\n -webkit-border-top-right-radius: $radius;\\n border-top-right-radius: $radius;\\n}\\n@mixin border-bottom-radius($radius) {\\n -webkit-border-bottom-right-radius: $radius;\\n border-bottom-right-radius: $radius;\\n -webkit-border-bottom-left-radius: $radius;\\n border-bottom-left-radius: $radius;\\n}\\n@mixin border-left-radius($radius) {\\n -webkit-border-bottom-left-radius: $radius;\\n border-bottom-left-radius: $radius;\\n -webkit-border-top-left-radius: $radius;\\n border-top-left-radius: $radius;\\n}\",\"@mixin box-shadow($shadows...) {\\n -webkit-box-shadow: $shadows;\\n -moz-box-shadow: $shadows;\\n box-shadow: $shadows;\\n}\\n\",\"@mixin transition($transition...) {\\n -moz-transition: $transition;\\n -o-transition: $transition;\\n -webkit-transition: $transition;\\n transition: $transition;\\n}\\n\\n@mixin transition-property($property...) {\\n -moz-transition-property: $property;\\n -o-transition-property: $property;\\n -webkit-transition-property: $property;\\n transition-property: $property;\\n}\\n\\n@mixin transition-duration($duration...) {\\n -moz-transition-property: $duration;\\n -o-transition-property: $duration;\\n -webkit-transition-property: $duration;\\n transition-property: $duration;\\n}\\n\\n@mixin transition-timing-function($timing...) {\\n -moz-transition-timing-function: $timing;\\n -o-transition-timing-function: $timing;\\n -webkit-transition-timing-function: $timing;\\n transition-timing-function: $timing;\\n}\\n\\n@mixin transition-delay($delay...) {\\n -moz-transition-delay: $delay;\\n -o-transition-delay: $delay;\\n -webkit-transition-delay: $delay;\\n transition-delay: $delay;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","export default \"<template>\\n <button id=\\\"menu-toggle-button\\\" class=\\\"menu-toggle-button\\\">\\n \\n <span id=\\\"menu-icon\\\"></span>\\n <span id=\\\"close-icon\\\"></span>\\n <span id=\\\"menu-title\\\" class=\\\"menu-title\\\">\\n Meny\\n </span>\\n </button>\\n <div id=\\\"menu-wrapper\\\" class=\\\"menu-wrapper\\\">\\n <div id=\\\"menu-container\\\" class=\\\"menu-container open\\\">\\n <div id=\\\"menu-item-list-container\\\" class=\\\"menu-item-list-container\\\"></div>\\n <div id=\\\"menu-actions-row\\\" class=\\\"menu-actions-row\\\"></div>\\n </div>\\n </div>\\n</template>\";","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","import { addEventListeners, ListenerMetadata } from './listen';\r\nimport { initializeProps } from './prop';\r\nimport { ComponentMetadata, KeyValue } from './types';\r\nimport { toKebabCase, toCamelCase } from './util';\r\n\r\nexport const Component = (args: ComponentMetadata) => {\r\n return (target: any) => {\r\n const tag: string = args.tag || toKebabCase(target.prototype.constructor.name);\r\n const customElement: any = class extends (target as { new(): any }) {\r\n protected static __connected: boolean = false;\r\n protected static propsInit: KeyValue;\r\n protected static watchAttributes: KeyValue;\r\n protected static listeners: ListenerMetadata[];\r\n protected static ready: Promise<boolean> = new Promise((resolve, _) => resolve(true));\r\n public props: KeyValue = {};\r\n private showShadowRoot: boolean;\r\n\r\n public static get observedAttributes(): string[] {\r\n return Object.keys(this.propsInit || {}).map(x => toKebabCase(x));\r\n }\r\n\r\n constructor() {\r\n super();\r\n\r\n this.showShadowRoot = args.shadow == null ? true : args.shadow;\r\n\r\n if (!this.shadowRoot && this.showShadowRoot) {\r\n this.attachShadow({ mode: 'open' });\r\n }\r\n }\r\n\r\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\r\n this.onAttributeChange(name, oldValue, newValue);\r\n }\r\n\r\n public onAttributeChange(name: string, oldValue: string, newValue: string, set: boolean = true): void {\r\n if (oldValue != newValue) {\r\n if (set) { this[toCamelCase(name)] = newValue; }\r\n const watchAttributes: KeyValue = (this.constructor as any).watchAttributes;\r\n if (watchAttributes && watchAttributes[name]) {\r\n const methodToCall: string = watchAttributes[name];\r\n if (this.__connected) {\r\n if (typeof this[methodToCall] == 'function') {\r\n this[methodToCall]({ old: oldValue, new: newValue });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public async connectedCallback(): Promise<void> {\r\n await this.render();\r\n super.connectedCallback && super.connectedCallback();\r\n this.__connected = true;\r\n\r\n addEventListeners(this);\r\n initializeProps(this);\r\n }\r\n\r\n private async render(): Promise<void> {\r\n if (this.__connected) {\r\n return;\r\n }\r\n\r\n const template = document.createElement('template');\r\n template.innerHTML = await this.getStyle();\r\n\r\n if (args.template instanceof Promise) {\r\n template.content.appendChild(await this.getExternalTemplate());\r\n } else if (typeof args.template === 'string') {\r\n template.innerHTML += args.template;\r\n }\r\n\r\n (this.showShadowRoot ? this.shadowRoot : this).appendChild(template.content.cloneNode(true));\r\n }\r\n\r\n private async getExternalTemplate(): Promise<DocumentFragment> {\r\n const templateModule = await (args.template as Promise<typeof import('*.html')>);\r\n const markup = templateModule.default.toString();\r\n const fragment = document.createRange().createContextualFragment(markup);\r\n\r\n if (fragment.children.length === 1 && fragment.children[0].nodeName === 'TEMPLATE') {\r\n return (fragment.firstChild as HTMLTemplateElement).content;\r\n }\r\n return fragment;\r\n }\r\n\r\n private async getStyle(): Promise<string> {\r\n let css: string;\r\n\r\n if (args.style instanceof Promise) {\r\n const styleModule = await args.style;\r\n css = styleModule.default.toString();\r\n } else if (typeof args.style === 'string') {\r\n css = args.style;\r\n }\r\n\r\n return `${css ? `<style>${css}</style>` : ''}`\r\n }\r\n };\r\n\r\n if (!customElements.get(tag)) {\r\n customElements.define(tag, customElement);\r\n }\r\n\r\n return customElement;\r\n };\r\n};\r\n\r\n\r\n","import { CustomElementOptions } from \"./types\";\r\n\r\nexport abstract class CustomElement extends HTMLElement {\r\n constructor() {\r\n super();\r\n }\r\n\r\n protected abstract setup(options?: CustomElementOptions): void;\r\n\r\n protected connect(selector: string): void {\r\n if (!this.isConnected) {\r\n document.querySelector(selector).appendChild(this);\r\n }\r\n }\r\n}\r\n","export const getElement = <T extends HTMLElement>(selector: string): T => {\r\n return document.querySelector(selector);\r\n};\r\n\r\nexport const getShadowRootElement = <T extends HTMLElement>(customElement: HTMLElement, selector: string): T => {\r\n return customElement.shadowRoot.querySelector(selector);\r\n};","export * from './component';\r\nexport * from './custom-element';\r\nexport * from './helpers';\r\nexport * from './listen';\r\nexport * from './prop';\r\nexport * from './toggle';\r\nexport * from './types';\r\nexport * from './watch';","import { toDotCase } from './util';\r\n\r\ninterface ListenerMetadata {\r\n eventName: string;\r\n handler: Function;\r\n selector?: string;\r\n}\r\n\r\ninterface CustomEventOptions {\r\n bubbles?: boolean;\r\n composed?: boolean;\r\n detail?: any;\r\n}\r\n\r\ninterface DispatchEmitter {\r\n emit(options?: CustomEventOptions): void;\r\n}\r\n\r\nconst Listen = (eventName: string, selector?: string) => {\r\n return (target: any, methodName: string) => {\r\n if (!target.constructor.listeners) {\r\n target.constructor.listeners = [];\r\n }\r\n target.constructor.listeners.push({ selector: selector, eventName: eventName, handler: target[methodName] });\r\n };\r\n};\r\n\r\nconst addEventListeners = (target: any) => {\r\n if (target.constructor.listeners) {\r\n const targetRoot: any = target.shadowRoot || target;\r\n for (const listener of target.constructor.listeners as Array<ListenerMetadata>) {\r\n const eventTarget = (listener.selector)\r\n ? targetRoot.querySelector(listener.selector)\r\n ? targetRoot.querySelector(listener.selector) : null\r\n : target;\r\n if (eventTarget) {\r\n eventTarget.addEventListener(listener.eventName, (e: CustomEvent) => {\r\n listener.handler.call(target, e);\r\n });\r\n }\r\n }\r\n }\r\n};\r\n\r\nconst Dispatch = (eventName?: string) => {\r\n return (target: HTMLElement, propertyName: string) => {\r\n function get() {\r\n const self: EventTarget = this as EventTarget;\r\n return {\r\n emit(options?: CustomEventOptions) {\r\n const evtName = (eventName) ? eventName : toDotCase(propertyName);\r\n self.dispatchEvent(new CustomEvent(evtName, options));\r\n }\r\n };\r\n }\r\n Object.defineProperty(target, propertyName, { get });\r\n };\r\n};\r\n\r\nexport { Listen, addEventListeners, DispatchEmitter, Dispatch, CustomEventOptions, ListenerMetadata };","import { toKebabCase, tryParseInt } from './util';\r\n\r\nexport const Prop = (): any => {\r\n return (target: any, propName: any) => {\r\n const attrName = toKebabCase(propName);\r\n function get() {\r\n if (this.props[propName]) {\r\n return this.props[propName];\r\n }\r\n return this.getAttribute(attrName);\r\n }\r\n function set(value: any) {\r\n if (this.__connected) {\r\n const oldValue = this.props[propName];\r\n this.props[propName] = tryParseInt(value);\r\n if (typeof value != 'object') {\r\n this.setAttribute(attrName, value);\r\n } else {\r\n this.onAttributeChange(attrName, oldValue, value, false);\r\n }\r\n } else {\r\n if (!this.hasAttribute(toKebabCase(propName))) {\r\n this.constructor.propsInit[propName] = value;\r\n }\r\n }\r\n }\r\n if (!target.constructor.propsInit) {\r\n target.constructor.propsInit = {};\r\n }\r\n target.constructor.propsInit[propName] = null;\r\n Object.defineProperty(target, propName, { get, set });\r\n };\r\n};\r\n\r\nconst getProps = (target: any) => {\r\n const watchAttributes = target.constructor.watchAttributes;\r\n const plainAttributes = { ...watchAttributes };\r\n Object.keys(plainAttributes).forEach(v => plainAttributes[v] = '');\r\n const cycleProps = { ...plainAttributes, ...target.constructor.propsInit };\r\n return Object.keys(cycleProps);\r\n};\r\n\r\nexport const initializeProps = (target: any) => {\r\n const watchAttributes = target.constructor.watchAttributes;\r\n for (let prop of getProps(target)) {\r\n if (watchAttributes) {\r\n if (watchAttributes[toKebabCase(prop)] == null) {\r\n watchAttributes[toKebabCase(prop)] = '';\r\n } else {\r\n const attribValue = target.props[prop] || target.getAttribute(toKebabCase(prop));\r\n if (typeof target[watchAttributes[prop]] == 'function') {\r\n target[watchAttributes[prop]]({ new: attribValue });\r\n }\r\n }\r\n }\r\n if (target.constructor.propsInit[prop]) {\r\n if (!target.hasAttribute(toKebabCase(prop))) {\r\n target[prop] = target.constructor.propsInit[prop];\r\n }\r\n }\r\n }\r\n};","import { toKebabCase } from './util';\r\n\r\nexport const Toggle = (): any => {\r\n return (target: any, propName: any) => {\r\n function get() {\r\n const getAttribute = (propName: string) => {\r\n if (this.hasAttribute(propName)) {\r\n const attrValue = this.getAttribute(propName);\r\n if (/^(true|false|^$)$/.test(attrValue)) {\r\n return attrValue == 'true' || attrValue == '';\r\n } else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n };\r\n return getAttribute(propName);\r\n }\r\n function set(value: any) {\r\n const oldValue = value;\r\n if (value != undefined) {\r\n switch (typeof value) {\r\n case 'boolean':\r\n break;\r\n case 'string':\r\n if (/^(true|false|^$)$/.test(value)) {\r\n value = oldValue == 'true' || oldValue == '';\r\n } else {\r\n console.warn(`TypeError: Cannot set boolean toggle property '${propName}' to '${value}'`);\r\n value = false;\r\n }\r\n break;\r\n default:\r\n throw (`TypeError: Cannot set boolean toggle property '${propName}' to '${value}'`);\r\n }\r\n }\r\n if (this.__connected) {\r\n this.props[propName] = value || false;\r\n if (oldValue !== '' && oldValue !== null) {\r\n this.setAttribute(propName, value);\r\n } else {\r\n if (value) {\r\n this.setAttribute(propName, '');\r\n } else {\r\n this.removeAttribute(propName);\r\n }\r\n }\r\n } else {\r\n if (!this.hasAttribute(toKebabCase(propName))) {\r\n this.constructor.propsInit[propName] = value;\r\n }\r\n }\r\n }\r\n if (!target.constructor.propsInit) {\r\n target.constructor.propsInit = {};\r\n }\r\n target.constructor.propsInit[propName] = null;\r\n Object.defineProperty(target, propName, { get, set });\r\n };\r\n};\r\n","export const toKebabCase = (str: string) => {\r\n return str\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/[\\s_]+/g, '-')\r\n .toLowerCase();\r\n};\r\n\r\nexport const toCamelCase = (str: string) => {\r\n return str\r\n .toLowerCase()\r\n .replace(/(\\-\\w)/g, (m) => m[1].toUpperCase());\r\n};\r\n\r\nexport const toDotCase = (str: string) => {\r\n return str.replace(/(?!^)([A-Z])/g, ' $1')\r\n .replace(/[_\\s]+(?=[a-zA-Z])/g, '.')\r\n .toLowerCase();\r\n};\r\n\r\nexport const tryParseInt = (value: any) => {\r\n return (parseInt(value) == value && parseFloat(value) !== NaN) ? parseInt(value) : value;\r\n};\r\n","import { toKebabCase } from './util';\r\n\r\nexport const Watch = (attrName: string) => {\r\n return (target: any, propertyName: string) => {\r\n if (!target.constructor.watchAttributes) {\r\n target.constructor.watchAttributes = {};\r\n }\r\n target.constructor.watchAttributes[toKebabCase(attrName)] = propertyName;\r\n if (!target.constructor.propsInit) {\r\n target.constructor.propsInit = {};\r\n }\r\n target.constructor.propsInit[attrName] = null;\r\n };\r\n};","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 -960 960 960\\\"><path fill=\\\"currentColor\\\" d=\\\"M160-240q-17 0-28.5-11.5T120-280q0-17 11.5-28.5T160-320h640q17 0 28.5 11.5T840-280q0 17-11.5 28.5T800-240H160Zm0-200q-17 0-28.5-11.5T120-480q0-17 11.5-28.5T160-520h640q17 0 28.5 11.5T840-480q0 17-11.5 28.5T800-440H160Zm0-200q-17 0-28.5-11.5T120-680q0-17 11.5-28.5T160-720h640q17 0 28.5 11.5T840-680q0 17-11.5 28.5T800-640H160Z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 -960 960 960\\\"><path fill=\\\"currentColor\\\" d=\\\"m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z\\\"></path></svg>\"","export const getKartkatalogApiUrl = (environment: string) => {\n const environmentSlug = environment === \"dev\" || environment === \"test\" ? environment + \".\" : \"\";\n return `https://kartkatalog.${environmentSlug}geonorge.no/api`;\n};\n\nexport const getMinSideShortcutApiUrl = (environment: string, shortcutUrl?: string) => {\n const environmentSlug = environment === \"dev\" || environment === \"test\" ? environment + \".\" : \"\";\n const urlParameterString = shortcutUrl?.length ? `?${new URLSearchParams({ url: shortcutUrl }).toString()}` : \"\";\n return `https://minside.${environmentSlug}geonorge.no/api/shortcut${urlParameterString}`;\n};\nexport const getMinSideShortcutUrl = (environment: string) => {\n const environmentSlug = environment === \"dev\" || environment === \"test\" ? environment + \".\" : \"\";\n return `https://minside.${environmentSlug}geonorge.no/shortcuts`;\n};\n\nexport const fetchShortcutItem = async (environment: string = \"\", token: string, shortcutUrl: string) => {\n const apiUrl = getMinSideShortcutApiUrl(environment, shortcutUrl);\n const fetchOptions = {\n method: \"GET\",\n headers: new Headers({\n Authorization: `Bearer ${token}`\n })\n };\n try {\n return fetch(apiUrl, fetchOptions).then((res) => {\n if (res.status === 200) {\n return res.json().then((shortcutItem) => {\n return shortcutItem;\n });\n } else {\n return null;\n }\n });\n } catch (error) {\n console.error(\"Error fetching shortcut items:\", error);\n return null;\n }\n};\n\nexport const postShortcutItem = async (\n environment: string = \"\",\n token: string,\n shortcutItem: { name: string; url: string }\n) => {\n const apiUrl = getMinSideShortcutApiUrl(environment);\n const fetchOptions = {\n method: \"POST\",\n headers: new Headers({\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"application/json\"\n }),\n body: JSON.stringify(shortcutItem)\n };\n return fetch(apiUrl, fetchOptions)\n .then((res) => res.json())\n .then((shortcutItem) => {\n return shortcutItem;\n });\n};\n\nexport const deleteShortcutItem = async (environment: string = \"\", token: string, shortcutItem: { url: string }) => {\n const apiUrl = getMinSideShortcutApiUrl(environment);\n const fetchOptions = {\n method: \"DELETE\",\n headers: new Headers({\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"application/json\"\n }),\n body: JSON.stringify(shortcutItem)\n };\n return fetch(apiUrl, fetchOptions);\n};\n\nexport const getGeonorgeMenuUrl = (language: string, environment: string) => {\n const environmentSlug = environment === \"dev\" || environment === \"test\" ? \"test.\" : \"\";\n const selectedLanguageSlug = language === \"en\" ? \"en/\" : \"\";\n if (environment === \"dev\") return `https://dev.geonorge.no/menu.xml`;\n else return `https://www.${environmentSlug}geonorge.no/${selectedLanguageSlug}api/menu/get?omitLinks=1`;\n};\n\nexport const fetchMenuItems = (language: string = \"no\", environment: string = \"\") => {\n const apiUrl = getGeonorgeMenuUrl(language, environment);\n return fetch(apiUrl)\n .then((res) => res.json())\n .then((menuItems) => {\n return menuItems;\n });\n};\n\nexport const fetchDropdownSearchResults = async (\n searchString: string = \"\",\n language: string = \"no\",\n environment: string = \"\"\n) => {\n searchString = searchString.toString();\n const urlParameterStrings = {\n dataset: `search?text=${searchString}&facets%5B1%5Dname=type&facets%5B1%5Dvalue=dataset`,\n series: `search?text=${searchString}&facets%5B1%5Dname=type&facets%5B1%5Dvalue=series`,\n service: `search?text=${searchString}&facets%5B1%5Dname=type&facets%5B1%5Dvalue=service`,\n servicelayer: `search?text=${searchString}&facets%5B1%5Dname=type&facets%5B1%5Dvalue=servicelayer`,\n software: `search?text=${searchString}&facets%5B1%5Dname=type&facets%5B1%5Dvalue=software`,\n articles: `articles?text=${searchString}`\n };\n const fetchOptions = {\n headers: new Headers({\n \"Accept-Language\": language\n })\n };\n const limitParameterString = \"limit=5\";\n\n return searchString && searchString.length\n ? await Promise.all(\n Object.keys(urlParameterStrings).map(async (searchResultsType) => {\n const kartkatalogApiUrl = getKartkatalogApiUrl(environment);\n let urlParameterString = urlParameterStrings[searchResultsType];\n return fetch(`${kartkatalogApiUrl}/${urlParameterString}&${limitParameterString}`, fetchOptions)\n .then((res) => res.json())\n .then((searchResults) => {\n return {\n ...searchResults,\n searchResultsType\n };\n });\n })\n )\n : null;\n};\n","export const getFocusableElementsInsideElement = (element: HTMLElement) => {\n return element.querySelectorAll('button, [href], input, [tabindex=\"0\"]');\n};\n\nexport const getDocumentHeading = () => {\n let documentHeading = document.querySelector(\"heading-text\") as HTMLElement | null; // This assumes that the heading is wrapped in a custom element called \"heading-text\"\n if (!documentHeading) {\n documentHeading = document.querySelector(\"h1:not(.sb-nopreview_heading.sb-heading)\") as HTMLElement | null; // Exclude the heading used by Storybook\n }\n return documentHeading;\n};\n\nexport const addGlobalStylesheet = (styleElementId: string, styles: string) => {\n const style = document.createElement(\"style\");\n style.setAttribute(\"id\", styleElementId);\n style.textContent = styles;\n if (!document.getElementById(styleElementId)) {\n document.head.appendChild(style);\n }\n};\n\nexport const removeInnerHTML = (element: HTMLElement) => {\n while (element.firstChild) {\n if (element.contains(element.firstChild)) {\n element.removeChild(element.firstChild);\n } else {\n // If not a child, break to avoid infinite loop\n break;\n }\n }\n};\n","// Dependencies\nimport {\n Component, CustomElement, CustomElementOptions, Prop, Dispatch, DispatchEmitter,\n Listen, Watch, getElement, getShadowRootElement, Toggle\n} from 'super-custom-elements';\n\n\n// Assets\nimport MenuIcon from '../../../assets/svg/burgerG.svg';\nimport CloseIcon from '../../../assets/svg/close-icon-black.svg';\n\n// Functions\nimport { fetchMenuItems } from '../../../functions/apiHelpers';\nimport { getFocusableElementsInsideElement } from '../../../functions/guiHelpers';\nimport { setCookie } from '../../../functions/cookieHelpers';\n\n\ninterface MainMenuOptions extends CustomElementOptions {\n active?: boolean,\n onClick?: () => void,\n onSignInClick?: () => void,\n onSignOutClick?: () => void,\n onNorwegianLanguageSelect?: () => void,\n onEnglishLanguageSelect?: () => void\n}\n\ninterface MenuItem extends Object {\n Name: string,\n SubMenuItem: Array<MenuItem>,\n Url: string\n}\n\n@Component({\n tag: 'main-menu',\n template: import('./main-menu.html'),\n style: import('./main-menu.scss')\n})\n\nexport class MainMenu extends CustomElement {\n private static readonly elementSelector = 'main-menu';\n private menuButton: HTMLButtonElement;\n private menuTitle: HTMLSpanElement;\n private menuIcon: HTMLSpanElement;\n private closeIcon: HTMLSpanElement;\n private menuContainer: HTMLElement;\n private menuItemListContainer: HTMLElement;\n private menuActionsRow: HTMLElement;\n\n @Prop() id: string;\n @Prop() language: string;\n @Prop() environment: string;\n @Prop() signinurl: string;\n @Prop() signouturl: string;\n @Prop() norwegianurl: string;\n @Prop() englishurl: string;\n @Toggle() isloggedin: boolean;\n @Toggle() showmenu: boolean;\n @Toggle() hasAuthenticationFunction: boolean;\n @Toggle() hasLanguageSelectFunctions: boolean;\n @Prop() menuitems: Array<MenuItem>;\n @Dispatch('onSignInClick') onSignInClick: DispatchEmitter;\n @Dispatch('onSignOutClick') onSignOutClick: DispatchEmitter;\n @Dispatch('onNorwegianLanguageSelect') onNorwegianLanguageSelect: DispatchEmitter;\n @Dispatch('onEnglishLanguageSelect') onEnglishLanguageSelect: DispatchEmitter;\n\n\n constructor() {\n super();\n this.clickOutsideMenuContainer = this.clickOutsideMenuContainer.bind(this);\n }\n\n setup(options?: MainMenuOptions): void {\n this.connect(options.container);\n if (options.id) {\n this.id = options.id;\n }\n }\n\n connectedCallback() {\n this.menuButton = getShadowRootElement(this, '#menu-toggle-button');\n this.menuTitle = getShadowRootElement(this, '#menu-title');\n this.menuIcon = getShadowRootElement(this, '#menu-icon');\n this.closeIcon = getShadowRootElement(this, '#close-icon');\n this.menuContainer = getShadowRootElement(this, '#menu-container');\n this.menuItemListContainer = getShadowRootElement(this, '#menu-item-list-container');\n this.menuActionsRow = getShadowRootElement(this, '#menu-actions-row');\n this.menuIcon.innerHTML = MenuIcon;\n this.closeIcon.innerHTML = CloseIcon;\n\n this.showmenu ? this.menuIcon.classList.add('hidden') : this.closeIcon.classList.add('hidden');\n\n fetchMenuItems(this.language, this.environment).then(menuItems => {\n this.menuitems = menuItems;\n });\n\n this.menuButton.setAttribute('aria-label', this.language === 'en' ? 'Show menu' : 'Vis meny');\n\n if (this.menuTitle) {\n this.menuTitle.innerText = this.language === 'en' ? 'Menu' : 'Meny';\n }\n\n const hasAuthenticationUrls = this.signinurl && this.signouturl;\n if (hasAuthenticationUrls) {\n this.addAuthenticationLinks();\n }\n\n const supportsLanguages = this.englishurl && this.norwegianurl;\n if (supportsLanguages) {\n this.addLanguageSelectLinks();\n\n }\n document.addEventListener('click', this.clickOutsideMenuContainer);\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.clickOutsideMenuContainer);\n }\n\n hideMenuContainer = () => {\n this.showmenu = false;\n }\n\n\n clickOutsideMenuContainer(event: MouseEvent) {\n const targetElement = event.composedPath()[0] as Element;\n targetElement.closest('#menu-container');\n if (targetElement.closest('#menu-container') || targetElement.closest('#menu-toggle-button')) return\n this.hideMenuContainer();\n }\n\n renderMenuItems = (menuItems: Array<MenuItem>, hierarchyLevel: number = 0, maxHierarchyLevel: number = 1) => {\n const menuItemsListElement = menuItems.map((menuItem: MenuItem) => {\n const subItems = menuItem.SubMenuItem && menuItem.SubMenuItem.length ? menuItem.SubMenuItem : null;\n const menuItemElement = `<a href=\"${menuItem.Url}\" tabindex=\"${this.showmenu ? null : '-1'}\">${menuItem.Name}</a>`;\n const subItemElements = subItems && hierarchyLevel + 1 <= maxHierarchyLevel ? this.renderMenuItems(subItems, hierarchyLevel + 1, maxHierarchyLevel) : '';\n return `<li>${menuItemElement}${subItemElements}</li>`;\n }).join('');\n return `<ul class=\"menuItemList hierarchy-level-${hierarchyLevel}\">${menuItemsListElement}</ul>`;\n }\n\n addAuthenticationLinks(hasAuthenticationFunction = false) {\n let loginToggleElement;\n const hasAuthenticationLinks = this.signouturl && this.signinurl;\n\n if (!hasAuthenticationLinks && !hasAuthenticationFunction) {\n return '';\n }\n\n if (hasAuthenticationFunction) {\n loginToggleElement = document.createElement(\"button\");\n loginToggleElement.addEventListener(\"click\", () => {\n this.isloggedin ? this.onSignOutClick.emit() : this.onSignInClick.emit();\n });\n } else {\n loginToggleElement = document.createElement(\"a\");\n loginToggleElement.href = this.isloggedin ? this.signouturl : this.signinurl;\n }\n\n // Remove previously added login toggle element if exists\n for (const childElement of this.menuActionsRow.children) {\n if (childElement.getAttribute('id') === loginToggleElement.id) {\n childElement.remove()\n }\n }\n\n if (!this.showmenu){\n loginToggleElement.setAttribute('tabindex', '-1');\n }\n\n // Add login toggle element\n this.menuActionsRow.appendChild(loginToggleElement);\n }\n\n addLanguageSelectLinks(hasLanguageSelectFunctions = false) {\n let languageToggleElement;\n const hasLanguageSelectLinks = this.norwegianurl && this.englishurl;\n\n if (!hasLanguageSelectLinks && !hasLanguageSelectFunctions) {\n return '';\n }\n\n if (hasLanguageSelectFunctions) {\n languageToggleElement = document.createElement(\"button\");\n languageToggleElement.addEventListener(\"click\", () => {\n this.language === 'en' ? this.onNorwegianLanguageSelect.emit() : this.onEnglishLanguageSelect.emit();\n });\n } else {\n languageToggleElement = document.createElement(\"a\");\n languageToggleElement.href = this.language === 'en' ? this.norwegianurl : this.englishurl;\n }\n\n languageToggleElement.innerText = this.language === 'en' ? 'Norsk' : 'English';\n languageToggleElement.id = 'language-toggle-element';\n\n // Remove previously added language toggle element if exists\n for (const childElement of this.menuActionsRow.children) {\n if (childElement.getAttribute('id') === languageToggleElement.id) {\n childElement.remove()\n }\n }\n\n if (!this.showmenu){\n languageToggleElement.setAttribute('tabindex', '-1');\n }\n\n // Add language toggle element\n this.menuActionsRow.appendChild(languageToggleElement);\n }\n\n @Listen('click', '#menu-toggle-button')\n buttonClicked(event: MouseEvent) {\n this.showmenu = !this.showmenu;\n }\n\n @Watch('hasauthenticationfunction')\n hasAuthenticationFunctionChanged() {\n if (this.hasAuthenticationFunction) {\n this.addAuthenticationLinks(true);\n }\n }\n\n @Watch('isloggedin') \n isLoggedInChanged() {\n this.addAuthenticationLinks(this.hasAuthenticationFunction); \n }\n\n @Watch('haslanguageselectfunctions')\n hasLanguageSelectFunctionsChanged() {\n if (this.hasLanguageSelectFunctions) {\n this.addLanguageSelectLinks(true);\n }\n }\n\n @Watch('language')\n languageChanged() {\n this.addAuthenticationLinks(this.hasAuthenticationFunction);\n this.addLanguageSelectLinks(this.hasLanguageSelectFunctions);\n fetchMenuItems(this.language, this.environment).then(menuItems => {\n this.menuitems = menuItems;\n });\n if (this.menuTitle) {\n this.menuTitle.innerText = this.language === 'en' ? 'Menu' : 'Meny';\n }\n this.menuButton.setAttribute('aria-label', this.language === 'en' ? 'Show menu' : 'Vis meny');\n }\n\n @Watch('showmenu')\n showMenuChanged() {\n this.showmenu ? this.menuContainer.classList.add('open') : this.menuContainer.classList.remove('open');\n this.showmenu ? this.menuButton.classList.add('open') : this.menuButton.classList.remove('open');\n this.showmenu ? this.menuItemListContainer.classList.add('open') : this.menuItemListContainer.classList.remove('open');\n this.showmenu ? this.menuActionsRow.classList.add('open') : this.menuActionsRow.classList.remove('open');\n this.showmenu ? this.menuIcon.classList.add('hidden') : this.menuIcon.classList.remove('hidden');\n this.showmenu ? this.closeIcon.classList.remove('hidden') : this.closeIcon.classList.add('hidden');\n const focusableMenuContainerElements = getFocusableElementsInsideElement(this.menuContainer);\n focusableMenuContainerElements.forEach(focusableElement => {\n if (!this.showmenu){\n focusableElement.setAttribute('tabindex', '-1');\n } else {\n focusableElement.removeAttribute('tabindex');\n }\n });\n }\n\n @Watch('menuitems')\n menuItemsChanged() {\n if (this.menuitems && this.menuitems.length) {\n this.menuItemListContainer.innerHTML = this.renderMenuItems(this.menuitems);\n }\n }\n\n public static setup(selector: string, options: MainMenuOptions) {\n const element = getElement<MainMenu>(selector);\n\n if (options.onClick) {\n element.addEventListener('menuButtonClick', options.onClick);\n }\n if (options.active) {\n element.showmenu = options.active;\n }\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(761);\n"],"names":["root","factory","exports","module","define","amd","self","___CSS_LOADER_EXPORT___","push","id","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","Component","args","target","tag","toKebabCase","prototype","constructor","name","customElement","super","props","showShadowRoot","shadow","shadowRoot","attachShadow","mode","observedAttributes","Object","keys","propsInit","x","attributeChangedCallback","oldValue","newValue","onAttributeChange","set","toCamelCase","watchAttributes","methodToCall","__connected","old","new","connectedCallback","render","addEventListeners","initializeProps","template","document","createElement","innerHTML","getStyle","Promise","appendChild","getExternalTemplate","cloneNode","markup","default","fragment","createRange","createContextualFragment","children","nodeName","firstChild","css","style","ready","resolve","_","customElements","get","CustomElement","HTMLElement","connect","selector","isConnected","querySelector","getElement","getShadowRootElement","Listen","eventName","methodName","listeners","handler","targetRoot","listener","eventTarget","addEventListener","e","call","Dispatch","propertyName","defineProperty","emit","options","evtName","toDotCase","dispatchEvent","CustomEvent","Prop","propName","attrName","getAttribute","value","tryParseInt","setAttribute","hasAttribute","prop","plainAttributes","forEach","v","cycleProps","getProps","attribValue","Toggle","attrValue","test","console","warn","removeAttribute","str","replace","toLowerCase","m","toUpperCase","parseInt","NaN","parseFloat","Watch","getKartkatalogApiUrl","environment","getMinSideShortcutApiUrl","shortcutUrl","URLSearchParams","url","getMinSideShortcutUrl","fetchShortcutItem","token","apiUrl","fetchOptions","method","headers","Headers","Authorization","fetch","then","res","status","json","shortcutItem","error","postShortcutItem","body","deleteShortcutItem","getGeonorgeMenuUrl","language","fetchMenuItems","menuItems","fetchDropdownSearchResults","searchString","urlParameterStrings","dataset","series","service","servicelayer","software","articles","all","searchResultsType","kartkatalogApiUrl","searchResults","getFocusableElementsInsideElement","element","querySelectorAll","getDocumentHeading","documentHeading","addGlobalStylesheet","styleElementId","styles","textContent","getElementById","head","removeInnerHTML","contains","removeChild","MainMenu","hideMenuContainer","showmenu","renderMenuItems","hierarchyLevel","maxHierarchyLevel","menuItemsListElement","menuItem","subItems","SubMenuItem","Url","Name","clickOutsideMenuContainer","bind","setup","container","menuButton","menuTitle","menuIcon","closeIcon","menuContainer","menuItemListContainer","menuActionsRow","classList","add","menuitems","innerText","signinurl","signouturl","addAuthenticationLinks","englishurl","norwegianurl","addLanguageSelectLinks","disconnectedCallback","removeEventListener","event","targetElement","composedPath","closest","hasAuthenticationFunction","loginToggleElement","isloggedin","onSignOutClick","onSignInClick","href","childElement","remove","hasLanguageSelectFunctions","languageToggleElement","onNorwegianLanguageSelect","onEnglishLanguageSelect","buttonClicked","hasAuthenticationFunctionChanged","isLoggedInChanged","hasLanguageSelectFunctionsChanged","languageChanged","showMenuChanged","focusableElement","menuItemsChanged","onClick","active","elementSelector","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","enumerable","obj","hasOwnProperty","r","Symbol","toStringTag"],"sourceRoot":""}
|