{ "version": 3, "sources": ["../Modules/aras/startup/index.ts", "../Modules/NavigationPanel/NavigationPanel.ts", "../Modules/NavigationPanel/NavigationPanelTabs.tsx", "../Modules/NavigationPanel/secondaryMenu.ts", "../Modules/NavigationPanel/quickSearch.ts", "../Modules/NavigationPanel/FavoritePanel.tsx", "../Modules/NavigationPanel/sidebarDataConverter.ts", "../Modules/aras/startup/headerTabs.tsx", "../Modules/aras/startup/layoutLoader.ts", "../Modules/aras/startup/mainPageEventHandlers.ts", "../Modules/aras/startup/validateBrowserCertified.ts", "../Modules/aras/startup/notCertifiedBrowser.ts", "../Modules/aras/startup/getResourceManager.ts", "../Modules/aras/startup/disabledCookies.ts", "../Modules/aras/startup/getTimeZoneName.ts", "../Modules/aras/startup/selectTimeZone.ts", "../Modules/aras/startup/login.ts", "../Modules/mainWindowCuiLayout/MainWindowCuiLayout.ts", "../Modules/mainWindowCuiLayout/HeaderTabsContainer.ts", "../Modules/mainWindowCuiLayout/MainWindowCuiActions.ts", "../Modules/aras/startup/openStartItems.ts", "../Modules/mainWindowCuiLayout/TocEditor/TocEditorCuiLayout.ts", "../Modules/mainWindowCuiLayout/TocEditor/navDataConverter.ts", "../Modules/mainWindowCuiLayout/TocEditor/tocEditorCuiLayoutActions.ts", "../Modules/mainWindowCuiLayout/TocEditor/formDataConverter.ts", "../Modules/mainWindowCuiLayout/TocEditor/formMetadata.ts", "../Modules/mainWindowCuiLayout/TocEditor/formValues.ts", "../Modules/mainWindowCuiLayout/TocEditor/viewAs.ts", "../Modules/mainWindowCuiLayout/TocEditor/saveTOC.ts", "../Modules/aras/startup/userNotifications.tsx", "../Modules/aras/startup/deepLinking.ts"], "sourcesContent": ["// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport '../../NavigationPanel/NavigationPanel';\r\nimport './headerTabs';\r\nimport { favorites } from 'store';\r\nimport mainPageEventHandlers from './mainPageEventHandlers';\r\nimport MainWindowCuiLayout from '../../mainWindowCuiLayout/MainWindowCuiLayout';\r\nimport TocEditorCuiLayout from '../../mainWindowCuiLayout/TocEditor/TocEditorCuiLayout';\r\nimport UserNotificationsContainer from './userNotifications';\r\nimport notCertifiedBrowser from './notCertifiedBrowser';\r\nimport deepLinking from './deepLinking';\r\n\r\nwindow.favorites = favorites;\r\nwindow.MainWindowCuiLayout = MainWindowCuiLayout;\r\nwindow.UserNotificationContainer = UserNotificationsContainer;\r\nwindow.deepLinking = deepLinking;\r\n\r\nexport {\r\n\tdeepLinking,\r\n\tmainPageEventHandlers,\r\n\tMainWindowCuiLayout,\r\n\tTocEditorCuiLayout,\r\n\tUserNotificationsContainer,\r\n\tnotCertifiedBrowser\r\n};\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport '../components/nav/nav';\r\nimport Sidebar from '../components/sidebar';\r\nimport ContextMenu from '../components/contextMenu';\r\nimport alertModule from '../components/alert';\r\nimport './NavigationPanelTabs';\r\nimport utils from '../core/utils';\r\nimport secondaryMenu from './secondaryMenu';\r\nimport { getFavoritePanel } from './FavoritePanel';\r\nimport { itemType as itemTypeMetadata } from 'metadata';\r\nimport { commands } from 'cui';\r\nimport { favorites as favoriteMethods } from 'store';\r\nimport { wire } from 'hyperhtml';\r\nimport * as Inferno from 'inferno';\r\nimport { SvgManager, getResource } from 'core';\r\nimport {\r\n\tcontentTabId,\r\n\tdefaultTabs,\r\n\tfavoriteTabId\r\n} from './sidebarDataConverter';\r\nimport type { Favorite } from '../store/storeTypes';\r\n\r\nconst icons = {\r\n\tback: '../images/BackFull.svg',\r\n\tclose: '../images/Close.svg',\r\n\tdefaultItemType: '../images/DefaultItemType.svg',\r\n\tsearch: '../images/ExecuteSearch.svg',\r\n\topen: '../images/OpenInTab.svg',\r\n\tpinned: '../images/PinnedOn.svg',\r\n\tsavedSearch: '../images/SavedSearchOverlay.svg',\r\n\tunpinned: '../images/PinnedOff.svg',\r\n\tmore: '../images/More.svg'\r\n};\r\n\r\nSvgManager.enqueue(Object.values(icons));\r\n\r\nconst disabledRowHighlightingClass =\r\n\t'aras-navigation-panel_row-highlighting-disabled';\r\n\r\nfunction navFormatter(nav, item) {\r\n\tconst itemValue = item.value;\r\n\tif (itemValue.children) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst isDashboardItem = itemValue.dashboard;\r\n\tif (itemValue.itemTypeId || isDashboardItem) {\r\n\t\tconst leafTemplate = nav.templates.getDefaultTemplate(item);\r\n\t\tconst src = isDashboardItem ? icons.open : icons.search;\r\n\t\tconst image = Inferno.createVNode(\r\n\t\t\tInferno.getFlagsForElementVnode('aras-image'),\r\n\t\t\t'aras-image',\r\n\t\t\t'aras-nav-leaf-ico-image',\r\n\t\t\tnull,\r\n\t\t\tutils.infernoFlags.unknownChildren,\r\n\t\t\t{\r\n\t\t\t\t'aria-hidden': true,\r\n\t\t\t\tsrc\r\n\t\t\t}\r\n\t\t);\r\n\t\tconst nodeClassList = isDashboardItem\r\n\t\t\t? 'aras-nav-leaf-ico'\r\n\t\t\t: 'aras-button aras-button_c aras-nav-leaf-ico';\r\n\t\tleafTemplate.push(\r\n\t\t\tInferno.createVNode(\r\n\t\t\t\tInferno.getFlagsForElementVnode('span'),\r\n\t\t\t\t'span',\r\n\t\t\t\tnodeClassList,\r\n\t\t\t\timage,\r\n\t\t\t\tutils.infernoFlags.unknownChildren\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\treturn leafTemplate;\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nfunction getFavoriteCategories(itemTypeName, options) {\r\n\tconst favorites = options.favorites;\r\n\tconst favoritesFilterCriteria = (favoriteItem) => {\r\n\t\treturn (\r\n\t\t\tfavoriteItem.quickAccessFlag === '1' &&\r\n\t\t\tfavoriteItem.contextType === itemTypeName\r\n\t\t);\r\n\t};\r\n\tconst [favoriteSearches, favoriteItems] = ['Search', 'Item'].map((type) =>\r\n\t\tfavoriteMethods.filterFavorites(favorites, type, favoritesFilterCriteria)\r\n\t);\r\n\r\n\tconst favoriteCategories = [];\r\n\tif (favoriteSearches.length) {\r\n\t\tconst label = getResource(\r\n\t\t\t'navigation_panel.secondary_menu.favorite_searches'\r\n\t\t);\r\n\t\tfavoriteCategories.push({\r\n\t\t\ticon: options.icon,\r\n\t\t\toverlayIcons: [icons.savedSearch],\r\n\t\t\tunpinIcon: icons.close,\r\n\t\t\tlabel,\r\n\t\t\titems: favoriteSearches\r\n\t\t});\r\n\t}\r\n\tif (favoriteItems.length) {\r\n\t\tfavoriteCategories.push({\r\n\t\t\ticon: options.icon,\r\n\t\t\tlabel: options.pluralLabel,\r\n\t\t\titems: favoriteItems\r\n\t\t});\r\n\t}\r\n\treturn favoriteCategories;\r\n}\r\n\r\nasync function getItemTypeData(itemTypeId) {\r\n\tconst itemType = await itemTypeMetadata.getItemType(itemTypeId, 'id');\r\n\tconst itemTypeName = itemType.name;\r\n\tconst singularLabel = itemType.label || itemTypeName;\r\n\tconst propertiesWithKeyedName =\r\n\t\titemTypeMetadata.getKeyedNameConfiguration(itemType);\r\n\tconst newCommand = createCommand('OpenNewItem', itemType);\r\n\tconst canAdd = newCommand.canExecute();\r\n\tconst openForbidden = window.isFunctionDisabled(itemTypeName, 'Open');\r\n\tconst isQuickSearchDisabled =\r\n\t\topenForbidden || !propertiesWithKeyedName.length;\r\n\r\n\treturn {\r\n\t\tcanAdd,\r\n\t\tisQuickSearchDisabled,\r\n\t\titemType,\r\n\t\titemTypeName,\r\n\t\tsingularLabel\r\n\t};\r\n}\r\n\r\nfunction createCommand(commandName, itemType, options = {}) {\r\n\tconst itemTypeName = itemType?.name;\r\n\r\n\treturn commands.commandFactory(commandName, {\r\n\t\titemType,\r\n\t\titemTypeName,\r\n\t\tlocation: 'MainWindowView',\r\n\t\t...options\r\n\t});\r\n}\r\n\r\nexport default class NavigationPanel extends Sidebar {\r\n\tcurrentTab = contentTabId;\r\n\tstaticTabs = defaultTabs.map((tab) => tab.id);\r\n\tnav = document.createElement('aras-nav');\r\n\ttabs = document.createElement('aras-navigation-panel-tabs');\r\n\ttopScroll = null;\r\n\r\n\tstate: {\r\n\t\tsecondaryMenuItemTypeId: string | null;\r\n\t\tsecondaryMenuData: {\r\n\t\t\titemTypeId: string;\r\n\t\t} | null;\r\n\t\tfavorites: Record;\r\n\t} = {\r\n\t\tsecondaryMenuItemTypeId: null,\r\n\t\tsecondaryMenuData: null,\r\n\t\tfavorites: {}\r\n\t};\r\n\r\n\ttogglePin(pinned) {\r\n\t\tsuper.togglePin(pinned);\r\n\t\tthis.render();\r\n\t}\r\n\r\n\ttoggleVisibility(visible) {\r\n\t\tsuper.toggleVisibility(visible);\r\n\t\tconst splitter = this.nextElementSibling;\r\n\t\tconst isVisible = this.isVisible;\r\n\t\tsplitter.classList.toggle('aras-hide', !isVisible);\r\n\t\tif (isVisible && this.isPinned) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.focus();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tfocus() {\r\n\t\tif (!this.state.secondaryMenuItemTypeId) {\r\n\t\t\treturn super.focus();\r\n\t\t}\r\n\r\n\t\tconst quickSearch = this.querySelector(\r\n\t\t\t'.aras-secondary-menu__quick-search:not([disabled])'\r\n\t\t);\r\n\r\n\t\tif (quickSearch) {\r\n\t\t\tquickSearch.focus();\r\n\t\t} else {\r\n\t\t\tconst navHeader = this.querySelector('.aras-navigation-panel__header');\r\n\t\t\tnavHeader.focus();\r\n\t\t}\r\n\t}\r\n\r\n\t#createHeaderIcon(src) {\r\n\t\treturn wire(this, ':headerIcon')``;\r\n\t}\r\n\r\n\t#createBackButton() {\r\n\t\tconst backTitle = getResource(\r\n\t\t\t'navigation_panel.secondary_menu.back_to_contents'\r\n\t\t);\r\n\r\n\t\treturn wire(this, ':backButton')` this._hideSecondaryMenu()}\"\r\n\t\t\ttitle=\"${backTitle}\"\r\n\t\t\t>\r\n\t\t\t\r\n\t\t`;\r\n\t}\r\n\r\n\t#createHeader({\r\n\t\ttitle,\r\n\t\ticonSrc\r\n\t}: {\r\n\t\ttitle: string;\r\n\t\ticonSrc: string;\r\n\t}): HTMLElement {\r\n\t\tconst isSecondaryMenu = this.currentTab === 'secondary-tab';\r\n\t\tconst pinIcon = this.isPinned ? icons.pinned : icons.unpinned;\r\n\r\n\t\tconst backButton = isSecondaryMenu ? this.#createBackButton() : null;\r\n\t\tconst headerIcon = iconSrc ? this.#createHeaderIcon(iconSrc) : null;\r\n\t\tconst favoriteMenuIcon =\r\n\t\t\tthis.currentTab === favoriteTabId\r\n\t\t\t\t? wire()`\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t`\r\n\t\t\t\t: null;\r\n\r\n\t\treturn wire(this, ':header')`\r\n\t\t\t
\r\n\t\t\t\t${backButton}\r\n\t\t\t\t${headerIcon}\r\n\t\t\t\t\r\n\t\t\t\t\t${title}\r\n\t\t\t\t\r\n\t\t\t\t${favoriteMenuIcon}\r\n\t\t\t\t this.togglePin()}\"\r\n\t\t\t\t>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
`;\r\n\t}\r\n\r\n\t#getCurrentTab(): { title: string; component: HTMLElement } {\r\n\t\tswitch (this.currentTab) {\r\n\t\t\tcase contentTabId:\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttitle: getResource('common.contents'),\r\n\t\t\t\t\tcomponent: this.nav\r\n\t\t\t\t};\r\n\t\t\tcase favoriteTabId:\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttitle: getResource('common.favorites'),\r\n\t\t\t\t\tcomponent: getFavoritePanel(this)\r\n\t\t\t\t};\r\n\t\t\tdefault:\r\n\t\t\t\treturn {\r\n\t\t\t\t\ttitle: this.state.secondaryMenuData?.pluralLabel,\r\n\t\t\t\t\tcomponent: secondaryMenu(this)\r\n\t\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tthis.state.secondaryMenuData = this._getSecondaryMenuData();\r\n\t\tconst secondaryMenuData = this.state.secondaryMenuData;\r\n\r\n\t\tconst { title, component } = this.#getCurrentTab();\r\n\r\n\t\tthis.html`\r\n\t\t\t${this.#createHeader({\r\n\t\t\t\ttitle,\r\n\t\t\t\ticonSrc: secondaryMenuData?.icon\r\n\t\t\t})}\r\n\t\t\t${this.tabs}\r\n\t\t\t${component}\r\n\t\t`;\r\n\r\n\t\tthis.nav.scrollTop = this.topScroll;\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback();\r\n\t\tthis.classList.add('aras-navigation-panel', disabledRowHighlightingClass);\r\n\t\tthis.setAttribute('role', 'navigation');\r\n\t\tthis.popupMenu = new ContextMenu();\r\n\t\tthis.secondaryPopupMenu = new ContextMenu();\r\n\t\tthis._initContextMenuHandlers();\r\n\t\tthis._initContextMenuListeners();\r\n\t\tconst observer = new MutationObserver((mutations) => {\r\n\t\t\tconst navPanel = mutations[0].target;\r\n\t\t\tconst panelWidth = navPanel.style.width;\r\n\t\t\tnavPanel.nextElementSibling.style.left = panelWidth;\r\n\t\t});\r\n\r\n\t\tobserver.observe(this, {\r\n\t\t\tattributes: true,\r\n\t\t\tattributeFilter: ['style']\r\n\t\t});\r\n\t\tthis.render();\r\n\t}\r\n\r\n\tcreated() {\r\n\t\tthis._initTOC();\r\n\t\tthis._initTabs();\r\n\t}\r\n\r\n\tresetState() {\r\n\t\tthis.state.secondaryMenuData = null;\r\n\t\tthis.render();\r\n\t}\r\n\r\n\t_initContextMenuHandlers() {\r\n\t\tconst sidebarTabs = this.tabs;\r\n\t\tconst contextMenuMethods = {\r\n\t\t\tpinItemType: (id, tabData) => sidebarTabs.addTab(id, tabData),\r\n\t\t\tunpinItemType: (id) => {\r\n\t\t\t\tconst tabsData = sidebarTabs.data;\r\n\t\t\t\tconst removedTab = tabsData.get(id);\r\n\t\t\t\tsidebarTabs.removeTab(id);\r\n\t\t\t\treturn removedTab;\r\n\t\t\t},\r\n\t\t\tgetItemTypeByItemTypeId: (itemTypeId) => {\r\n\t\t\t\tlet tabId;\r\n\t\t\t\tconst tabsData = sidebarTabs.data;\r\n\t\t\t\ttabsData.forEach((data, id) => {\r\n\t\t\t\t\tif (data.itemTypeId === itemTypeId) {\r\n\t\t\t\t\t\ttabId = id;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\treturn tabsData.get(tabId);\r\n\t\t\t},\r\n\t\t\topenSearch: (...args) => window.arasTabs.openSearch(...args)\r\n\t\t};\r\n\t\tconst dispatchContextMenuEvent = (controlName, event, options) => {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst detail = {\r\n\t\t\t\tcontrolName,\r\n\t\t\t\tx: event.clientX,\r\n\t\t\t\ty: event.clientY,\r\n\t\t\t\t...options\r\n\t\t\t};\r\n\t\t\tconst cuiEvent = new CustomEvent('navigationPanelContextMenu', {\r\n\t\t\t\tdetail\r\n\t\t\t});\r\n\t\t\tthis.dispatchEvent(cuiEvent);\r\n\t\t};\r\n\t\tsidebarTabs.on('contextmenu', (itemKey, event) => {\r\n\t\t\tconst currentTarget = sidebarTabs.data.get(itemKey);\r\n\t\t\tconst itemTypeName = currentTarget.contextType;\r\n\t\t\tconst options = {\r\n\t\t\t\tcurrentTarget,\r\n\t\t\t\titemTypeName,\r\n\t\t\t\t...contextMenuMethods\r\n\t\t\t};\r\n\t\t\tdispatchContextMenuEvent('MainView.PopupMenu', event, options);\r\n\t\t});\r\n\t\tconst nav = this.nav;\r\n\t\tnav.on('contextmenu', (itemKey, event) => {\r\n\t\t\tnav.select(itemKey);\r\n\t\t\tconst currentTarget = nav.data.get(itemKey);\r\n\t\t\tconst itemTypeId = currentTarget.itemTypeId;\r\n\t\t\tconst options = {\r\n\t\t\t\tcurrentTarget,\r\n\t\t\t\titemTypeId,\r\n\t\t\t\t...contextMenuMethods\r\n\t\t\t};\r\n\t\t\tdispatchContextMenuEvent('MainView.PopupMenu', event, options);\r\n\t\t});\r\n\t\tthis._favoritesContextMenuHandler = (event) => {\r\n\t\t\tconst favoriteItemRow = event.target.closest('.aras-nav__child');\r\n\t\t\tif (!favoriteItemRow) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tfavoriteItemRow.classList.add('aras-nav__child_selected');\r\n\t\t\tconst unselectHighlightedItem = () => {\r\n\t\t\t\tfavoriteItemRow.classList.remove('aras-nav__child_selected');\r\n\t\t\t\tthis.popupMenu.dom.removeEventListener(\r\n\t\t\t\t\t'contextMenuClose',\r\n\t\t\t\t\tunselectHighlightedItem\r\n\t\t\t\t);\r\n\t\t\t};\r\n\t\t\tthis.popupMenu.dom.addEventListener(\r\n\t\t\t\t'contextMenuClose',\r\n\t\t\t\tunselectHighlightedItem\r\n\t\t\t);\r\n\r\n\t\t\tconst favoriteId = favoriteItemRow.dataset.key;\r\n\t\t\tconst currentTarget = this.state.favorites[favoriteId];\r\n\t\t\tconst itemTypeName = currentTarget.contextType;\r\n\t\t\tconst options = {\r\n\t\t\t\tcurrentTarget,\r\n\t\t\t\titemTypeName\r\n\t\t\t};\r\n\t\t\tdispatchContextMenuEvent(\r\n\t\t\t\t'MainView.PopupMenuSecondaryMenu',\r\n\t\t\t\tevent,\r\n\t\t\t\toptions\r\n\t\t\t);\r\n\t\t};\r\n\t}\r\n\r\n\t_initContextMenuListeners() {\r\n\t\tconst contextMenuDom = this.popupMenu.dom;\r\n\t\tcontextMenuDom.addEventListener('contextMenuShow', () => {\r\n\t\t\tthis.classList.remove(disabledRowHighlightingClass);\r\n\t\t});\r\n\t\tcontextMenuDom.addEventListener('contextMenuClose', (e) => {\r\n\t\t\tthis.classList.add(disabledRowHighlightingClass);\r\n\t\t\tif (e.detail.type === 'keydown') {\r\n\t\t\t\tthis.focus();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.isPinned) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.closeIfNotAcitive(document.activeElement);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\tcontextMenuDom.addEventListener('click', () => {\r\n\t\t\tthis._hideIfNotPinned();\r\n\t\t});\r\n\t}\r\n\r\n\tcloseIfNotAcitive(element) {\r\n\t\tconst isElement = Boolean(element && this.contains(element));\r\n\t\tconst isContextMenu = Boolean(\r\n\t\t\telement &&\r\n\t\t\t\t(this.popupMenu.dom.contains(element) ||\r\n\t\t\t\t\tthis.secondaryPopupMenu.dom.contains(element))\r\n\t\t);\r\n\t\tif (!(isElement || isContextMenu)) {\r\n\t\t\tthis.toggleVisibility(false);\r\n\t\t}\r\n\t}\r\n\r\n\t_initTOC() {\r\n\t\tconst selectTab = (dataItem) => {\r\n\t\t\tconst tabs = this.tabs;\r\n\t\t\ttabs.data.forEach((tabItem, id) => {\r\n\t\t\t\tif (tabItem.itemTypeId === dataItem.itemTypeId) {\r\n\t\t\t\t\ttabs.selectTab(id);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\t\tthis.nav.classList.add('aras-nav-toc');\r\n\t\tthis.nav.formatter = navFormatter.bind(null, this.nav);\r\n\t\tconst handler = async (itemKey, event) => {\r\n\t\t\tif (\r\n\t\t\t\tevent.type === 'keydown' &&\r\n\t\t\t\t!['Enter', 'Space', 'NumpadEnter'].includes(event.code)\r\n\t\t\t) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tconst dataItem = this.nav.data.get(itemKey);\r\n\t\t\tconst isNewTabOpened =\r\n\t\t\t\tdataItem.dashboard ||\r\n\t\t\t\tevent.target.closest('.aras-button.aras-nav-leaf-ico');\r\n\t\t\tif (isNewTabOpened) {\r\n\t\t\t\tthis._hideIfNotPinned();\r\n\t\t\t} else if (dataItem.itemTypeId) {\r\n\t\t\t\tthis._showSecondaryMenu(dataItem.itemTypeId);\r\n\t\t\t\tselectTab(dataItem);\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.nav.on('click', handler);\r\n\t\tthis.nav.on('keydown', handler);\r\n\t}\r\n\r\n\t_initTabs() {\r\n\t\tthis.tabs.on('select', (id) => {\r\n\t\t\tif (this.staticTabs.includes(id)) {\r\n\t\t\t\tthis._hideSecondaryMenu(id);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst item = this.tabs.data.get(id);\r\n\t\t\tthis._showSecondaryMenu(item.itemTypeId);\r\n\t\t});\r\n\r\n\t\tthis.tabs.on('click', (id) => {\r\n\t\t\tif (this.staticTabs.includes(id)) {\r\n\t\t\t\tthis._hideSecondaryMenu(id);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_hideIfNotPinned() {\r\n\t\tif (!this.isPinned) {\r\n\t\t\tthis.toggleVisibility(false);\r\n\t\t\tdocument.documentElement.focus(); // for correct work of sidebar in IE and FF\r\n\t\t}\r\n\t}\r\n\r\n\t_getSecondaryMenuData() {\r\n\t\tconst itemTypeId = this.state.secondaryMenuItemTypeId;\r\n\t\tif (!itemTypeId) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst items = [...this.nav.data.values()];\r\n\t\tconst item = items.find(\r\n\t\t\t(item) => item.itemTypeId === itemTypeId && !item.dashboard\r\n\t\t);\r\n\t\tif (!item) {\r\n\t\t\tthis._hideSecondaryMenu();\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst { icon = icons.defaultItemType, label: pluralLabel } = item;\r\n\t\tconst itemTypeName = itemTypeMetadata.getItemTypeName(itemTypeId);\r\n\t\tconst favoriteCategories = getFavoriteCategories(itemTypeName, {\r\n\t\t\ticon,\r\n\t\t\tpluralLabel,\r\n\t\t\tfavorites: this.state.favorites\r\n\t\t});\r\n\r\n\t\tif (this.state.secondaryMenuData?.itemTypeId === itemTypeId) {\r\n\t\t\treturn {\r\n\t\t\t\t...this.state.secondaryMenuData,\r\n\t\t\t\tfavoriteCategories\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tconst loggedUserIdentity = aras.getIsAliasIdentityIDForLoggedUser();\r\n\t\tconst secondaryMenuData = {\r\n\t\t\tcanAdd: false,\r\n\t\t\tfavoriteCategories,\r\n\t\t\ticon,\r\n\t\t\titemTypeId,\r\n\t\t\titemTypeName,\r\n\t\t\tisQuickSearchDisabled: true,\r\n\t\t\tloggedUserIdentity,\r\n\t\t\tpluralLabel,\r\n\t\t\tsingularLabel: itemTypeName\r\n\t\t};\r\n\r\n\t\tthis._updateSecondaryMenuData(itemTypeId);\r\n\r\n\t\treturn secondaryMenuData;\r\n\t}\r\n\r\n\t_showSecondaryMenu(itemTypeId) {\r\n\t\tthis.currentTab = 'secondary-tab';\r\n\t\tthis.state.secondaryMenuItemTypeId = itemTypeId;\r\n\t\tthis.topScroll = this.nav.scrollTop;\r\n\r\n\t\tsuper.focus();\r\n\t\tthis.render();\r\n\t\tthis.focus();\r\n\t}\r\n\r\n\t_hideSecondaryMenu(tabId = contentTabId) {\r\n\t\tthis.currentTab = tabId;\r\n\t\tthis.state.secondaryMenuItemTypeId = null;\r\n\t\tthis.tabs.selectTab(tabId);\r\n\r\n\t\tsuper.focus();\r\n\t\tthis.render();\r\n\t\tthis.nav.focus();\r\n\t}\r\n\r\n\tasync _updateSecondaryMenuData(itemTypeId) {\r\n\t\tconst itemTypeData = await getItemTypeData(itemTypeId);\r\n\t\tif (this.state.secondaryMenuItemTypeId !== itemTypeId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.state.secondaryMenuData = {\r\n\t\t\t...this.state.secondaryMenuData,\r\n\t\t\t...itemTypeData\r\n\t\t};\r\n\t\tthis.render();\r\n\t\tthis.focus();\r\n\t}\r\n\r\n\tasync _favoritesClick(event) {\r\n\t\tconst favoriteItemRow = event.target.closest('.aras-nav__child');\r\n\t\tif (!favoriteItemRow) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst favoriteId = favoriteItemRow.dataset.key;\r\n\t\tconst favoriteItem = this.state.favorites[favoriteId];\r\n\t\tconst unpinIconNode = event.target.closest(\r\n\t\t\t'.aras-button.aras-nav-leaf-ico'\r\n\t\t);\r\n\t\tif (unpinIconNode) {\r\n\t\t\tfavoriteMethods.removeFromQuickAccess(favoriteId);\r\n\t\t} else if (favoriteItem.category === 'Item') {\r\n\t\t\tconst favoriteItemType = favoriteItem.contextType;\r\n\t\t\tconst itemType = await itemTypeMetadata.getItemType(favoriteItemType);\r\n\t\t\tconst isVersionable = itemType['is_versionable'] === '1';\r\n\t\t\tconst getItemMethod = isVersionable\r\n\t\t\t\t? 'getItemLastVersion'\r\n\t\t\t\t: 'getItemById';\r\n\t\t\tconst itemNode = aras[getItemMethod](\r\n\t\t\t\tfavoriteItemType,\r\n\t\t\t\tfavoriteItem.additional_data.id,\r\n\t\t\t\tisVersionable ? false : 0\r\n\t\t\t);\r\n\t\t\tconst openCommand = createCommand('OpenItem', itemType, { itemNode });\r\n\t\t\tif (openCommand.canExecute()) {\r\n\t\t\t\tawait openCommand.execute();\r\n\r\n\t\t\t\treturn this._hideIfNotPinned();\r\n\t\t\t}\r\n\r\n\t\t\tconst errorMessage = getResource(\r\n\t\t\t\t'ui_methods.access_restricted_or_not_exist',\r\n\t\t\t\tfavoriteItemType\r\n\t\t\t);\r\n\t\t\talertModule(errorMessage, {\r\n\t\t\t\ttype: 'error'\r\n\t\t\t});\r\n\t\t} else if (favoriteItem.category === 'Search') {\r\n\t\t\tlet itemTypeId = this.state.secondaryMenuItemTypeId;\r\n\t\t\tif (!itemTypeId) {\r\n\t\t\t\tconst itemTypeName = favoriteItem.contextType;\r\n\t\t\t\titemTypeId = itemTypeMetadata.getItemTypeId(itemTypeName);\r\n\t\t\t}\r\n\t\t\tthis._searchItemType(itemTypeId, favoriteId);\r\n\t\t}\r\n\t}\r\n\r\n\tasync _createNewItem() {\r\n\t\tconst { itemType } = this.state.secondaryMenuData;\r\n\t\tconst openNewItemCommand = createCommand('OpenNewItem', itemType);\r\n\r\n\t\tawait openNewItemCommand.execute();\r\n\r\n\t\tthis._hideIfNotPinned();\r\n\t}\r\n\r\n\t_searchItemType(itemTypeId, favoriteSearchId) {\r\n\t\treturn Promise.resolve(\r\n\t\t\twindow.arasTabs.openSearch(itemTypeId, favoriteSearchId)\r\n\t\t).then(() => {\r\n\t\t\tthis._hideIfNotPinned();\r\n\t\t});\r\n\t}\r\n\r\n\tasync _openItem(event) {\r\n\t\tconst quickSearch = event.currentTarget;\r\n\t\tconst selectedItem = quickSearch.getSelectedItem();\r\n\t\tif (!selectedItem) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tquickSearch.clear();\r\n\r\n\t\tconst { itemType } = this.state.secondaryMenuData;\r\n\t\tconst itemNode = aras.getItemById(itemType.name, selectedItem.itemId);\r\n\t\tconst openCommand = createCommand('OpenItem', itemType, { itemNode });\r\n\t\tif (openCommand.canExecute()) {\r\n\t\t\topenCommand.execute();\r\n\t\t}\r\n\t}\r\n}\r\n\r\nNavigationPanel.define('aras-navigation-panel');\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport Tabs from '../components/tabs';\r\nimport { favorites } from 'store';\r\n\r\nconst maxItemHeight = 32;\r\n\r\nconst showUnpinDialog = async (item, tabs) => {\r\n\tconst confirmResult = await ArasModules.Dialog.confirm(\r\n\t\taras.getResource('', 'common.itemtype_not_available'),\r\n\t\t{\r\n\t\t\ttitle: aras.getResource('', 'common.access_denied'),\r\n\t\t\tokButtonText: aras.getResource('', 'common.unpin'),\r\n\t\t\tokButtonModifier: 'aras-button_secondary'\r\n\t\t}\r\n\t);\r\n\r\n\tif (confirmResult === 'ok') {\r\n\t\ttabs.removeTab(item.id);\r\n\t\ttry {\r\n\t\t\tawait favorites.delete(item.id);\r\n\t\t} catch (e) {\r\n\t\t\ttabs.addTab(item.id, item);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport default class NavigationPanelTabs extends Tabs {\r\n\tusetooltip = true;\r\n\tvertical = true;\r\n\r\n\ttooltipSettings = {\r\n\t\ttooltipPosition: 'right'\r\n\t};\r\n\tstate = {\r\n\t\tfavorites: new Map()\r\n\t};\r\n\r\n\t#resizeHandler = (): Promise => {\r\n\t\treturn this.render();\r\n\t};\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback();\r\n\t\tthis.classList.add('aras-navigation-panel-tabs', 'aras-tabs_b');\r\n\t\twindow.addEventListener('resize', this.#resizeHandler);\r\n\t}\r\n\r\n\tdisconnectedCallback() {\r\n\t\twindow.removeEventListener('resize', this.#resizeHandler);\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst visibleItems = [];\r\n\t\tconst maxVisibleItems = Math.max(\r\n\t\t\tMath.floor(this.clientHeight / maxItemHeight),\r\n\t\t\t1\r\n\t\t);\r\n\r\n\t\tthis.state.favorites.forEach((item, id) => {\r\n\t\t\tif (visibleItems.length < maxVisibleItems) {\r\n\t\t\t\tvisibleItems.push(id);\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.tabs = visibleItems;\r\n\t\tthis.data = this.state.favorites;\r\n\r\n\t\treturn super.render();\r\n\t}\r\n\r\n\tselectTab(id) {\r\n\t\tconst item = this.state.favorites.get(id);\r\n\t\tif (item.locked) {\r\n\t\t\treturn showUnpinDialog(item, this);\r\n\t\t}\r\n\r\n\t\treturn super.selectTab(id);\r\n\t}\r\n\r\n\tformatter(id, data) {\r\n\t\tconst item = data.get(id);\r\n\t\tif (!item.locked) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst lockIconNode = ;\r\n\t\tconst imageNode = this._getImage(item.image);\r\n\t\tconst content = [lockIconNode, imageNode];\r\n\r\n\t\treturn this._getTooltipTemplate(item, content);\r\n\t}\r\n}\r\n\r\nNavigationPanelTabs.define('aras-navigation-panel-tabs');\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { SvgManager, getResource } from 'core';\r\nimport { wire } from 'hyperhtml';\r\nimport './quickSearch';\r\n\r\nconst icons = {\r\n\tsearch: '../images/ExecuteSearch.svg',\r\n\tcreateItem: '../images/CreateItem.svg'\r\n};\r\n\r\nSvgManager.enqueue(Object.values(icons));\r\n\r\nconst secondaryMenuClass =\r\n\t'aras-navigation-panel__secondary-menu aras-secondary-menu';\r\n\r\nconst getQuickSearch = (context, secondaryMenuData) => {\r\n\tconst { itemTypeName, isQuickSearchDisabled, singularLabel } =\r\n\t\tsecondaryMenuData;\r\n\tconst emptyMessage = getResource('common.does_not_exist', singularLabel);\r\n\r\n\tconst id = `:quicksearch:${itemTypeName}`;\r\n\treturn wire(context.state, id)`\r\n\t\t context._openItem(event)}\"\r\n\t\t\temptyMessage=\"${emptyMessage}\"\r\n\t\t\tonconnected=\"${(e) => e.target.clear()}\"\r\n\t\t/>\r\n\t`;\r\n};\r\n\r\nfunction getButtonsSection(context) {\r\n\tconst secondaryMenuData = context.state.secondaryMenuData;\r\n\tif (!secondaryMenuData) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst quickSearchNode = getQuickSearch(context, secondaryMenuData);\r\n\treturn wire(context.state, ':buttons')`\r\n\t\t
\r\n\t\t\t context._createNewItem()}\"\r\n\t\t\t>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t${getResource(\r\n\t\t\t\t\t\t'navigation_panel.secondary_menu.create_new',\r\n\t\t\t\t\t\tsecondaryMenuData.singularLabel\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t context._searchItemType(secondaryMenuData.itemTypeId)}\"\r\n\t\t\t>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t${getResource(\r\n\t\t\t\t\t\t'navigation_panel.secondary_menu.search',\r\n\t\t\t\t\t\tsecondaryMenuData.pluralLabel\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t${quickSearchNode}\r\n\t\t
\r\n\t`;\r\n}\r\n\r\nfunction keyboardHandler(e) {\r\n\tconst key = e.code;\r\n\tconst list = e.currentTarget;\r\n\r\n\tif (['ArrowUp', 'ArrowDown'].includes(key)) {\r\n\t\tconst currentNode =\r\n\t\t\tlist.querySelector('[tabindex=\"0\"]') || list.childNodes[0];\r\n\t\tconst nextElement =\r\n\t\t\tkey === 'ArrowUp' ? 'previousElementSibling' : 'nextElementSibling';\r\n\t\tconst nextNode = currentNode[nextElement]\r\n\t\t\t? currentNode[nextElement]\r\n\t\t\t: currentNode;\r\n\r\n\t\tif (currentNode !== nextNode) {\r\n\t\t\tcurrentNode.tabIndex = '-1';\r\n\t\t\tnextNode.tabIndex = '0';\r\n\t\t\tnextNode.focus();\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction getFavoriteCategory(context, categoryData, secondaryMenuData) {\r\n\treturn wire(context, categoryData.label)`\r\n\t\t${\r\n\t\t\tcategoryData.label\r\n\t\t}\r\n\t\t
    keyboardHandler(e)}\">\r\n\t\t\t${categoryData.items.map((favoriteItem, idx) => {\r\n\t\t\t\tconst label = favoriteItem.label || getResource('common.no_label');\r\n\t\t\t\treturn wire(favoriteItem, ':favorite')`\r\n\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t${label}\r\n\t\t\t\t\t\t\t${getUnpinFavoriteButton(favoriteItem, categoryData, secondaryMenuData)}\r\n\t\t\t\t\t\t
  • \r\n\t\t\t\t\t`;\r\n\t\t\t})}\r\n\t\t
\r\n\t`;\r\n}\r\n\r\nfunction getUnpinFavoriteButton(favoriteItem, categoryData, secondaryMenuData) {\r\n\tif (\r\n\t\t!categoryData.unpinIcon ||\r\n\t\tfavoriteItem.ownedBy !== secondaryMenuData.loggedUserIdentity\r\n\t) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst tooltipString = getResource(\r\n\t\t'navigation_panel.secondary_menu.unpin_favorite'\r\n\t);\r\n\treturn wire(favoriteItem, ':unpinIcon')`\r\n\t\t\r\n\t\t\t\r\n\t\t
`;\r\n}\r\n\r\nfunction getFavoritesSection(context) {\r\n\tconst secondaryMenuData = context.state.secondaryMenuData;\r\n\tif (!secondaryMenuData || !secondaryMenuData.favoriteCategories.length) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn wire(context, ':favorites')`\r\n\t\t context._favoritesClick(e)}\"\r\n\t\t\tonkeypress=\"${(e) => {\r\n\t\t\t\tconst key = e.code;\r\n\t\t\t\tif (['Space', 'Enter', 'NumpadEnter'].includes(key)) {\r\n\t\t\t\t\tcontext._favoritesClick(e);\r\n\t\t\t\t}\r\n\t\t\t}}\"\r\n\t\t\toncontextmenu=\"${(e) => context._favoritesContextMenuHandler(e)}\"\r\n\t\t>\r\n\t\t\t${secondaryMenuData.favoriteCategories.map((categoryData) =>\r\n\t\t\t\tgetFavoriteCategory(context, categoryData, secondaryMenuData)\r\n\t\t\t)}\r\n\t\t\r\n\t`;\r\n}\r\n\r\nexport default function (context) {\r\n\treturn wire(context, ':secondaryMenu')`\r\n\t\t
\r\n\t\t\t${getButtonsSection(context)}\r\n\t\t\t${getFavoritesSection(context)}\r\n\t\t
\r\n\t`;\r\n}\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { SvgManager, getResource } from 'core';\r\nimport ItemProperty from '../components/itemProperty';\r\n\r\nconst icons = {\r\n\tquickSearch: '../images/QuickSearch.svg'\r\n};\r\n\r\nSvgManager.enqueue(Object.values(icons));\r\n\r\nclass QuickSearch extends ItemProperty {\r\n\t#pressEnterTimeout = null;\r\n\t#selectedItemIndex = -1;\r\n\r\n\tinitialize() {\r\n\t\tsuper.initialize();\r\n\t\tthis.state.placeholder = getResource(\r\n\t\t\t'navigation_panel.secondary_menu.quick_search_placeholder'\r\n\t\t);\r\n\t\tthis.state.icon = icons.quickSearch;\r\n\t}\r\n\tfocus() {\r\n\t\tthis.state.refs.input?.focus();\r\n\t}\r\n\r\n\tclear() {\r\n\t\tthis.setState({\r\n\t\t\tvalue: '',\r\n\t\t\tlist: []\r\n\t\t});\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback();\r\n\t\tthis.classList.add('aras-quick-search');\r\n\t}\r\n\r\n\t_onInputFocusoutHandler(e) {\r\n\t\tconst value = this.state.value;\r\n\t\tconst predictedValue = this.state.predictedValue;\r\n\r\n\t\tthis.setState({\r\n\t\t\toldLabel: this.state.label,\r\n\t\t\tvalue: predictedValue || value\r\n\t\t});\r\n\r\n\t\tsuper._onInputFocusoutHandler(e);\r\n\t}\r\n\r\n\tgetSelectedItem() {\r\n\t\tif (!this.state.label) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst list = this.state.list;\r\n\t\tconst label = this.state.label.toUpperCase();\r\n\r\n\t\treturn (\r\n\t\t\tlist[this.#selectedItemIndex] ??\r\n\t\t\tlist.find((item) => item.label.toUpperCase() === label)\r\n\t\t);\r\n\t}\r\n\r\n\t_onItemClickHandler(e) {\r\n\t\tconst li = e.target.closest('li');\r\n\t\tthis.#selectedItemIndex = [].indexOf.call(li.parentElement.children, li);\r\n\r\n\t\tsuper._onItemClickHandler(e);\r\n\t}\r\n\r\n\t_onKeyDownHandler(e) {\r\n\t\tif (e.key === 'Enter') {\r\n\t\t\tif (this.#pressEnterTimeout) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.#selectedItemIndex = this.state.focusedIndex;\r\n\t\t\tif (this.state.requestTimeoutID) {\r\n\t\t\t\tthis.#pressEnterTimeout = setTimeout(async () => {\r\n\t\t\t\t\tawait this.state.requestPromise;\r\n\r\n\t\t\t\t\tthis.#pressEnterTimeout = null;\r\n\t\t\t\t\tif (!this.state.list.length) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsuper._onKeyDownHandler(e);\r\n\t\t\t\t}, this.state.typingDelay);\r\n\t\t\t} else {\r\n\t\t\t\tthis.state.refs.input.dispatchEvent(\r\n\t\t\t\t\tnew CustomEvent('change', { bubbles: true })\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\te.preventDefault();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsuper._onKeyDownHandler(e);\r\n\t}\r\n\r\n\t_getButtonTemplate() {\r\n\t\treturn null;\r\n\t}\r\n\r\n\t_getInputTemplate() {\r\n\t\tconst input = super._getInputTemplate();\r\n\t\tinput.className = 'aras-input aras-quick-search__input';\r\n\t\treturn input;\r\n\t}\r\n\r\n\t_getIconContainerTemplate() {\r\n\t\tconst icons = super._getIconContainerTemplate();\r\n\r\n\t\ticons.children = icons.children.map((icon) => {\r\n\t\t\tif (icon.className.includes('aras-spinner')) {\r\n\t\t\t\ticon.className += ' aras-quick-search__spinner';\r\n\t\t\t}\r\n\t\t\treturn icon;\r\n\t\t});\r\n\r\n\t\treturn icons;\r\n\t}\r\n}\r\n\r\nconst name = 'aras-quick-search';\r\nif (!customElements.get(name)) {\r\n\tcustomElements.define(name, QuickSearch);\r\n}\r\n\r\nexport default QuickSearch;\r\n", "import type { Favorite } from '../store/storeTypes';\r\nimport type Nav from '../components/nav/nav';\r\nimport type NavigationPanel from './NavigationPanel';\r\nimport type Image from '../components/image';\r\nimport { SvgManager, getResource } from 'core';\r\nimport { wire } from 'hyperhtml';\r\nimport type { NavTemplateItem, NavItem } from '../components/nav/navTypes';\r\n\r\ntype FavoriteNavItem = {\r\n\tcategory: string;\r\n} & NavItem;\r\n\r\nconst icons = {\r\n\temptyFavorites: '../images/FavoriteOff.svg',\r\n\tsearch: '../images/SavedSearchOverlay.svg',\r\n\tmore: '../images/More.svg'\r\n};\r\n\r\nSvgManager.enqueue(Object.values(icons));\r\n\r\nconst getEmptyFavoritesTemplate = (context: NavigationPanel) => wire(\r\n\tcontext,\r\n\t':favoritesEmptyState'\r\n)`\r\n\t
\r\n\t\t\r\n\t\t
\r\n\t\t\t${getResource('favorite_panel.empty_state_title')}\r\n\t\t
\r\n\t\t
\r\n\t\t\t${getResource('favorite_panel.empty_state_description')}\r\n\t\t
\r\n\t
\r\n`;\r\n\r\nconst setImageOverlayIcons = (node: Image) => {\r\n\tif (node) {\r\n\t\tnode.overlayIcons = [icons.search];\r\n\t}\r\n};\r\n\r\nfunction navFormatter(item: NavTemplateItem): JSX.Element[] {\r\n\treturn [\r\n\t\t,\r\n\t\t,\r\n\t\t{item.value.label},\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t];\r\n}\r\n\r\nconst getFavoritesNav = (\r\n\tcontext: NavigationPanel,\r\n\tfavoritesList: Favorite[]\r\n) => {\r\n\tconst nav: Nav = wire(context, ':favoritesNav')` context._favoritesClick(e)}\" />`;\r\n\tnav.formatter = navFormatter;\r\n\r\n\tconst roots = new Set(favoritesList.map(({ id }) => id));\r\n\tconst items = new Map(\r\n\t\tfavoritesList.map((favorite) => [\r\n\t\t\tfavorite.id,\r\n\t\t\t{\r\n\t\t\t\tid: favorite.id,\r\n\t\t\t\tlabel: favorite.label,\r\n\t\t\t\ticon: favorite.additional_data.image,\r\n\t\t\t\tcategory: favorite.category\r\n\t\t\t}\r\n\t\t])\r\n\t);\r\n\r\n\tnav.dataStore.items = items;\r\n\tnav.dataStore.roots = roots;\r\n\tnav.render();\r\n\r\n\treturn nav;\r\n};\r\n\r\nexport const getFavoritePanel = (context: NavigationPanel) => {\r\n\tconst favoritesList = Object.values(context.state.favorites).filter(\r\n\t\t({ category }) => category !== 'ItemType'\r\n\t);\r\n\r\n\tconst content = favoritesList.length\r\n\t\t? getFavoritesNav(context, favoritesList)\r\n\t\t: getEmptyFavoritesTemplate(context);\r\n\r\n\treturn wire(context, ':favoritesPanel')`\r\n\t\t
\r\n\t\t\t${content}\r\n\t\t
\r\n\t`;\r\n};\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { getResource, SvgManager } from 'core';\r\nimport { favorites as favoriteMethods } from 'store';\r\n\r\nconst icons = {\r\n\tnavContents: '../images/NavContentsOn.svg',\r\n\tnavFavoritesOn: '../images/NavFavoritesOn.svg'\r\n};\r\n\r\nSvgManager.enqueue(Object.values(icons));\r\n\r\nexport const contentTabId = 'content-tab';\r\nexport const favoriteTabId = 'favorite-tab';\r\n\r\nexport const defaultTabs = [\r\n\t{\r\n\t\tid: contentTabId,\r\n\t\timage: icons.navContents,\r\n\t\tcssClass: 'aras-navigation-panel-tabs__content-tab',\r\n\t\ttabNamePath: 'common.contents'\r\n\t},\r\n\t{\r\n\t\tid: favoriteTabId,\r\n\t\timage: icons.navFavoritesOn,\r\n\t\tcssClass: 'aras-navigation-panel-tabs__content-tab',\r\n\t\ttabNamePath: 'common.favorites',\r\n\t\thidden: true\r\n\t}\r\n];\r\n\r\nfunction getItemTypeIds(dataMap) {\r\n\tconst itemTypeIds = new Set();\r\n\tdataMap.forEach(({ formId, itemTypeId, startPage }) => {\r\n\t\tif (!itemTypeId || formId || startPage) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\titemTypeIds.add(itemTypeId);\r\n\t});\r\n\treturn itemTypeIds;\r\n}\r\n\r\nexport function updateLockedStatus(favorites, dataMap) {\r\n\tconst itemTypeIds = getItemTypeIds(dataMap);\r\n\tfavorites.forEach((item, id) => {\r\n\t\tif (!item.itemTypeId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst locked = !itemTypeIds.has(item.itemTypeId);\r\n\t\tif (locked !== item.locked) {\r\n\t\t\tfavorites.set(id, { ...item, locked });\r\n\t\t}\r\n\t});\r\n}\r\n\r\nexport function getSidebarData(favorites, dataMap) {\r\n\tconst sidebarData = new Map();\r\n\tdefaultTabs.forEach(({ tabNamePath, ...tab }) => {\r\n\t\tsidebarData.set(tab.id, {\r\n\t\t\t...tab,\r\n\t\t\ttooltip_template: getResource(tabNamePath)\r\n\t\t});\r\n\t});\r\n\r\n\tconst itemTypeIds = getItemTypeIds(dataMap);\r\n\tfavorites.forEach((item) => {\r\n\t\tconst additionalData = { ...item.additional_data };\r\n\t\tconst itemTypeId = additionalData.id;\r\n\t\tdelete additionalData.id;\r\n\t\tconst favoriteItem = {\r\n\t\t\t...item,\r\n\t\t\t...additionalData,\r\n\t\t\titemTypeId,\r\n\t\t\tlocked: !itemTypeIds.has(itemTypeId),\r\n\t\t\tparentTab: contentTabId,\r\n\t\t\ttooltip_template: additionalData.label\r\n\t\t};\r\n\t\tdelete favoriteItem.label;\r\n\t\tsidebarData.set(favoriteItem.id, favoriteItem);\r\n\t});\r\n\r\n\treturn sidebarData;\r\n}\r\n\r\nexport function getFavoriteItemTypes(favorites) {\r\n\tconst filtered = favoriteMethods.filterFavorites(favorites, 'ItemType');\r\n\treturn filtered.reduce(\r\n\t\t(acc, favorite) => acc.set(favorite.id, favorite),\r\n\t\tnew Map()\r\n\t);\r\n}\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { SvgManager } from 'core';\r\nimport Tabs from '../../components/tabs';\r\nimport { itemType as itemTypeMetadata } from 'metadata';\r\nimport { wire } from 'hyperhtml';\r\nimport getLayoutByName from './layoutLoader';\r\nimport type { Tab } from '../../components/tabs';\r\nimport type TocEditorCuiLayout from '../../mainWindowCuiLayout/TocEditor/TocEditorCuiLayout';\r\nimport type { Favorite } from '../../store/storeTypes';\r\nimport type MainWindowCuiActions from '../../mainWindowCuiLayout/MainWindowCuiActions';\r\nimport * as Inferno from 'inferno';\r\n\r\ntype TabTypes = {\r\n\tForm: {\r\n\t\tformId: string;\r\n\t};\r\n\tPage: {\r\n\t\turl: string;\r\n\t};\r\n\tCuiLayout: {\r\n\t\tlayoutName: string;\r\n\t\tlocation: string;\r\n\t\tlayoutId: string;\r\n\t\tlayout: TocEditorCuiLayout;\r\n\t};\r\n\tSearch: {\r\n\t\titemTypeId: string;\r\n\t\tfavoriteSearchId?: Favorite['id'];\r\n\t};\r\n\tItem: {\r\n\t\titemTypeId: string;\r\n\t\titemId: string;\r\n\t};\r\n};\r\n\r\nexport type GHeaderTab = Tab & TabTypes[T];\r\n\r\nexport type HeaderTab = GHeaderTab;\r\n\r\nconst icons = {\r\n\tdefaultItemType: '../images/DefaultItemType.svg',\r\n\tgridSearch: '../images/GridSearch.svg'\r\n};\r\n\r\nSvgManager.enqueue(Object.values(icons));\r\n\r\nconst IFRAME_CSS_CLASS = 'content-block__iframe';\r\nconst PAGE_IFRAME_CSS_CLASS = 'content-block__iframe_page';\r\n\r\nconst selectTab = (\r\n\ttabs: HeaderTabs,\r\n\ttabId: string,\r\n\tpreventFocus = false\r\n): Promise => {\r\n\tconst previousSelectedId = tabs.selectedTab;\r\n\tconst renderPromise = tabs.selectTab(tabId, preventFocus);\r\n\tconst event = new CustomEvent('select', {\r\n\t\tdetail: {\r\n\t\t\tid: tabs.selectedTab,\r\n\t\t\tpreviousId: previousSelectedId\r\n\t\t}\r\n\t});\r\n\ttabs.dispatchEvent(event);\r\n\r\n\treturn renderPromise;\r\n};\r\n\r\nexport default class HeaderTabs extends Tabs {\r\n\tdeclare data: Map;\r\n\toptions: {\r\n\t\tupdateTabState?:\r\n\t\t\t| ReturnType['updateDockedTabs']\r\n\t\t\t| ReturnType['updateUndockedTabs'];\r\n\t} = {};\r\n\tinitialized = false;\r\n\t_dropdownBox: null | HTMLElement = null;\r\n\t_frameCssClass: null | string = null;\r\n\r\n\tconnectedCallback() {\r\n\t\tif (!this.initialized) {\r\n\t\t\tthis.html`\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t`;\r\n\r\n\t\t\tconst dropdownContainer = this.querySelector('.aras-dropdown-container');\r\n\t\t\tdropdownContainer?.addEventListener('dropdownbeforeopen', () => {\r\n\t\t\t\tthis.dropdownTabRender();\r\n\t\t\t});\r\n\r\n\t\t\tthis._dropdownBox =\r\n\t\t\t\tdropdownContainer?.querySelector('div.aras-dropdown') || null;\r\n\t\t\tthis._frameCssClass = IFRAME_CSS_CLASS;\r\n\t\t\tthis._elem = this.firstElementChild;\r\n\t\t\tthis._movable = this._elem.querySelector('div');\r\n\r\n\t\t\tthis.makeScroll();\r\n\t\t\tthis.makeSelectable();\r\n\t\t\tthis.makeDraggable();\r\n\t\t\tthis.connectKeyboard();\r\n\r\n\t\t\tthis.initialized = true;\r\n\t\t}\r\n\t\tthis.render();\r\n\t}\r\n\topenForm(formId: string, icon: string, label: string) {\r\n\t\tif (!formId) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tconst formName = aras.MetadataCache.GetFormName(formId);\r\n\t\tconst tab = this.tabs.find(function (tab) {\r\n\t\t\treturn tab.indexOf('form_' + formId + formName + '_') !== -1;\r\n\t\t});\r\n\t\tif (tab) {\r\n\t\t\tthis.selectTab(tab);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst url = aras.getScriptsURL(\r\n\t\t\t'ShowFormInFrame.html?formId=' + formId + '&formType=edit&item=undefined'\r\n\t\t);\r\n\t\tconst winName = 'form_' + formId + formName + '_' + Date.now();\r\n\t\tconst win = this.open(url, winName, false, PAGE_IFRAME_CSS_CLASS);\r\n\t\tthis.updateTitleTab(winName, { formId, label, image: icon });\r\n\r\n\t\treturn win;\r\n\t}\r\n\topenPage(url: undefined | string, icon: string, label: string) {\r\n\t\tif (!url) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst tab = this.tabs.find(function (tab) {\r\n\t\t\treturn tab.indexOf('page_' + url) !== -1;\r\n\t\t});\r\n\t\tif (tab) {\r\n\t\t\tthis.selectTab(tab);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst winName = 'page_' + url + '_' + Date.now();\r\n\t\tconst pageUrl = aras.getScriptsURL(url);\r\n\t\tconst win = this.open(pageUrl, winName, false, PAGE_IFRAME_CSS_CLASS);\r\n\t\tthis.updateTitleTab(winName, { startPage: url, label, image: icon });\r\n\r\n\t\treturn win;\r\n\t}\r\n\tasync openCuiLayout(\r\n\t\tlayoutName: string,\r\n\t\tlocation: string,\r\n\t\tlayoutId: string,\r\n\t\t{\r\n\t\t\tlabel,\r\n\t\t\timage,\r\n\t\t\tclosable = true\r\n\t\t}: { label?: string; image?: string; closable?: boolean }\r\n\t) {\r\n\t\tconst tabId = 'layout_' + layoutId;\r\n\t\tconst hasTab = this.tabs.includes(tabId);\r\n\t\tif (hasTab) {\r\n\t\t\tawait selectTab(this, tabId);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.addTab(tabId, {\r\n\t\t\tlayoutName,\r\n\t\t\tlocation,\r\n\t\t\tlayoutId,\r\n\t\t\tlabel,\r\n\t\t\timage,\r\n\t\t\tclosable: false\r\n\t\t});\r\n\r\n\t\tconst containerNode = wire()`\r\n\t\t\t\r\n\t\t`;\r\n\t\tconst tabsContainer = document.getElementById('center');\r\n\t\ttabsContainer?.appendChild(containerNode);\r\n\r\n\t\tconst LayoutConstructor = await getLayoutByName(layoutName);\r\n\t\tconst layout = new LayoutConstructor(containerNode, location);\r\n\r\n\t\tawait Promise.all([\r\n\t\t\tlayout.init(),\r\n\t\t\tthis.setTabContent(tabId, { layout, closable }),\r\n\t\t\tselectTab(this, tabId)\r\n\t\t]);\r\n\r\n\t\treturn tabId;\r\n\t}\r\n\topenSearch(itemTypeId: string, favoriteSearchId?: string) {\r\n\t\tconst itemTypeName = itemTypeMetadata.getItemTypeName(itemTypeId);\r\n\t\tif (!itemTypeName) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst url = aras.getScriptsURL(\r\n\t\t\t'itemsGrid.html?itemtypeID=' +\r\n\t\t\t\titemTypeId +\r\n\t\t\t\t'&itemtypeName=' +\r\n\t\t\t\titemTypeName +\r\n\t\t\t\t(favoriteSearchId ? '&favoriteSearchId=' + favoriteSearchId : '')\r\n\t\t);\r\n\r\n\t\tconst winName = 'search_' + itemTypeId + itemTypeName + '_' + Date.now();\r\n\r\n\t\tconst win = this.open(url, winName, false);\r\n\t\twin.addEventListener('resize', async () => {\r\n\t\t\twindow.dispatchEvent(new CustomEvent('resize'));\r\n\t\t\tawait this.render();\r\n\t\t\tthis.scrollIntoView(this.selectedTab);\r\n\t\t});\r\n\t\tthis.updateTitleTab(winName, {\r\n\t\t\titemTypeId,\r\n\t\t\tfavoriteSearchId,\r\n\t\t\tlabel: itemTypeName,\r\n\t\t\timage: icons.gridSearch\r\n\t\t});\r\n\r\n\t\tconst itemTypePromise = itemTypeMetadata.getItemType(itemTypeId, 'id');\r\n\t\titemTypePromise.then((itemType) => {\r\n\t\t\tconst label = itemType['label_plural'];\r\n\t\t\tif (!label) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst props = { label };\r\n\t\t\treturn this.updateTitleTab(winName, props);\r\n\t\t});\r\n\r\n\t\treturn win;\r\n\t}\r\n\t_hideAll() {\r\n\t\tthis.tabs.forEach((id) => {\r\n\t\t\tconst frame = document.getElementById(id);\r\n\t\t\tif (frame) {\r\n\t\t\t\tframe.style.opacity = '0';\r\n\t\t\t\tframe.style['z-index'] = '-1';\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tejectTab(id: string) {\r\n\t\tconst data = this.data.get(id);\r\n\t\tsuper.removeTab(id);\r\n\t\tdata && this.options.updateTabState?.(this.tabs, id, data);\r\n\t\treturn data;\r\n\t}\r\n\tasync selectTab(id: string, preventFocus = false): Promise {\r\n\t\tif (!id) {\r\n\t\t\tconst previousSelectedId = this.selectedTab;\r\n\t\t\tthis.selectedTab = null;\r\n\t\t\tconst event = new CustomEvent('select', {\r\n\t\t\t\tdetail: {\r\n\t\t\t\t\tid: this.selectedTab,\r\n\t\t\t\t\tpreviousId: previousSelectedId\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.dispatchEvent(event);\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tthis._hideAll();\r\n\t\tconst frame = document.getElementById(id);\r\n\t\tif (frame) {\r\n\t\t\tframe.style.opacity = '1';\r\n\t\t\tframe.style['z-index'] = 'auto';\r\n\t\t}\r\n\t\tif (!preventFocus) {\r\n\t\t\tthis.focusTab(id);\r\n\t\t}\r\n\r\n\t\treturn await super.selectTab(id);\r\n\t}\r\n\tfocusTab(id: string) {\r\n\t\tconst tabContainer = document.getElementById(id);\r\n\t\tconst contentWindow = tabContainer.contentWindow;\r\n\t\tif (contentWindow?.nativeFocus) {\r\n\t\t\tcontentWindow.nativeFocus();\r\n\t\t} else if (contentWindow?.focus) {\r\n\t\t\tcontentWindow.focus();\r\n\t\t}\r\n\t}\r\n\t_getNextTabId() {\r\n\t\tconst lastTabId = this.tabs[this.tabs.length - 1];\r\n\t\tif (lastTabId === this.selectedTab) {\r\n\t\t\treturn this.tabs[this.tabs.length - 2] || null;\r\n\t\t}\r\n\r\n\t\treturn lastTabId || null;\r\n\t}\r\n\tasync removeTab(\r\n\t\tid: string,\r\n\t\tignorePageCloseHooks = false\r\n\t): Promise {\r\n\t\tconst tabContainer = document.getElementById(id);\r\n\t\tif (!tabContainer) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst remove = async () => {\r\n\t\t\tconst tab = this.data.get(id);\r\n\t\t\tif (tab?.layout) {\r\n\t\t\t\tconst layoutDestroyed = await tab.layout.tryDestroyLayout();\r\n\t\t\t\tif (!layoutDestroyed) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tsuper.removeTab(tabContainer.id);\r\n\t\t\ttab && this.options.updateTabState?.(this.tabs, tabContainer.id, tab);\r\n\t\t\tconst itemId = tabContainer.id.replace(aras.mainWindowName + '_', '');\r\n\t\t\taras.uiUnregWindowEx(itemId);\r\n\t\t\ttabContainer.src = 'about:blank';\r\n\t\t\ttabContainer.parentNode.removeChild(tabContainer);\r\n\t\t};\r\n\t\tif (\r\n\t\t\t!tabContainer.contentWindow ||\r\n\t\t\ttabContainer.contentWindow.close.toString().indexOf('[native code]') > -1\r\n\t\t) {\r\n\t\t\tawait remove();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\ttabContainer.contentWindow.close(async (isClosed: boolean) => {\r\n\t\t\t\tif (isClosed) {\r\n\t\t\t\t\tawait remove();\r\n\t\t\t\t}\r\n\t\t\t\tresolve(isClosed);\r\n\t\t\t}, ignorePageCloseHooks);\r\n\t\t});\r\n\t}\r\n\tasync clickOpenInTearOff(id) {\r\n\t\tif (!id) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst win = document.getElementById(id).contentWindow;\r\n\t\tif (win.windowType) {\r\n\t\t\treturn await this.openNonItemWindow(win, id);\r\n\t\t}\r\n\r\n\t\tconst selectItem = win.item;\r\n\t\tconst itemId = selectItem.getAttribute('id');\r\n\t\tconst itemType = selectItem.getAttribute('type');\r\n\t\tconst ignorePageCloseHooks = true;\r\n\r\n\t\tconst isClosed = await this.removeTab(id, ignorePageCloseHooks);\r\n\t\tif (!isClosed) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst gettedItem = aras.getItemById(itemType, itemId);\r\n\t\tconst openInTearOff = true;\r\n\t\treturn await aras.uiShowItemEx(gettedItem, 'tab view', openInTearOff);\r\n\t}\r\n\topenNonItemWindow(win, id) {\r\n\t\tconst itemId = win.itemId;\r\n\t\tconst itemTypeName = win.itemTypeName;\r\n\t\tconst windowType = win.windowType;\r\n\t\treturn this.removeTab(id).then(function (isClosed) {\r\n\t\t\tif (isClosed) {\r\n\t\t\t\tif (windowType === 'whereUsed' || windowType === 'structureBrowser') {\r\n\t\t\t\t\twindow.Dependencies.view(\r\n\t\t\t\t\t\titemTypeName,\r\n\t\t\t\t\t\titemId,\r\n\t\t\t\t\t\twindowType === 'whereUsed',\r\n\t\t\t\t\t\taras,\r\n\t\t\t\t\t\ttrue\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tasync setTitleTabWithFrame(frameWindow: Window) {\r\n\t\tlet itemTypeName;\r\n\t\tlet item;\r\n\r\n\t\tif (!frameWindow.frameElement) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (frameWindow.item && frameWindow.itemTypeName) {\r\n\t\t\titem = frameWindow.item;\r\n\t\t\titemTypeName = frameWindow.itemTypeName;\r\n\t\t} else {\r\n\t\t\tconst win = window[frameWindow.paramObjectName];\r\n\t\t\titemTypeName = window[frameWindow.paramObjectName].itemTypeName;\r\n\t\t\titem = win.item;\r\n\t\t}\r\n\r\n\t\tconst winName = frameWindow.frameElement.getAttribute('id') || '';\r\n\t\tconst itemType = await itemTypeMetadata.getItemType(itemTypeName);\r\n\t\tconst itemId = item.getAttribute('id');\r\n\t\tconst itemTypeId = itemTypeMetadata.getItemTypeId(itemTypeName);\r\n\t\tconst image = itemType['open_icon'] ?? icons.defaultItemType;\r\n\t\tconst label = aras.getKeyedNameEx(item);\r\n\t\tconst props = { itemId, itemTypeId, image, label };\r\n\t\treturn this.updateTitleTab(winName, props);\r\n\t}\r\n\tasync setTabContent(id: string, props: Partial) {\r\n\t\tawait super.setTabContent(id, props);\r\n\t\tthis.options.updateTabState?.(this.tabs, id, props);\r\n\t}\r\n\tasync updateTitleTab(id: string, props: Partial) {\r\n\t\tawait this.setTabContent(id, props);\r\n\t\tthis.scrollIntoView(id);\r\n\t}\r\n\tasync addTab(id: string, options: Partial, position?: number) {\r\n\t\tawait super.addTab(id, options, position);\r\n\r\n\t\tconst data = this.data.get(id);\r\n\t\tdata && this.options.updateTabState?.(this.tabs, id, data);\r\n\t}\r\n\topen(src: string, winName: string, isUnfocused: boolean, className = '') {\r\n\t\tconst iframe = document.createElement('IFRAME');\r\n\t\tconst isFirstTab = this.tabs.length === 0;\r\n\t\tdocument.getElementById('center')?.appendChild(iframe);\r\n\t\tthis.addTab(winName, { closable: true });\r\n\t\tif (!winName.startsWith('innovator_')) {\r\n\t\t\tthis.setTabContent(winName, { parentTab: null });\r\n\t\t}\r\n\t\tiframe.id = winName;\r\n\t\tiframe.className = `${this._frameCssClass} ${className || ''}`.trim();\r\n\t\tiframe.src = src;\r\n\t\tiframe.setAttribute('role', 'tabpanel');\r\n\t\tif (isUnfocused && !isFirstTab) {\r\n\t\t\tiframe.style.opacity = '0';\r\n\t\t\tiframe.style['z-index'] = '-1';\r\n\t\t} else {\r\n\t\t\tselectTab(this, winName, isUnfocused);\r\n\t\t}\r\n\t\tconst win = iframe.contentWindow;\r\n\t\twin.opener = window;\r\n\t\twin.name = iframe.name = winName;\r\n\t\treturn win;\r\n\t}\r\n\tdropdownTabRender() {\r\n\t\tconst select = (event: MouseEvent) => {\r\n\t\t\tconst target = event.target;\r\n\t\t\tconst listTab = (target as HTMLElement).closest('li');\r\n\t\t\tconst tabId = listTab?.getAttribute('list-data-id');\r\n\r\n\t\t\tif (tabId) {\r\n\t\t\t\tselectTab(this, tabId);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst items = this.tabs.map(\r\n\t\t\tfunction (tab) {\r\n\t\t\t\tconst data = this.data.get(tab);\r\n\t\t\t\tconst icon = this._getImage(data.image);\r\n\t\t\t\tif (icon) {\r\n\t\t\t\t\ticon.className = 'aras-list-item__icon';\r\n\t\t\t\t}\r\n\t\t\t\tconst className =\r\n\t\t\t\t\t'aras-list-item aras-list-item_iconed' +\r\n\t\t\t\t\t(this.selectedTab === tab ? ' selected' : '');\r\n\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{icon}\r\n\t\t\t\t\t\t{data.label}\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t}.bind(this)\r\n\t\t);\r\n\t\tconst list = (\r\n\t\t\t\r\n\t\t\t\t{items}\r\n\t\t\t\r\n\t\t);\r\n\t\tInferno.render(list, this._dropdownBox);\r\n\t}\r\n\tupdateTabInformation(currentID, newID) {\r\n\t\tconst index = this.tabs.indexOf(currentID);\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.tabs[index] = newID;\r\n\t\t}\r\n\r\n\t\tconst dataObj = this.data.get(currentID);\r\n\t\tthis.data.delete(currentID);\r\n\t\tthis.data.set(newID, Object.assign({}, dataObj));\r\n\r\n\t\tif (currentID === this.selectedTab) {\r\n\t\t\tthis.selectedTab = newID;\r\n\t\t}\r\n\r\n\t\tconst frame = document.getElementById(currentID);\r\n\t\tframe.id = frame.name = newID;\r\n\t\tthis.render();\r\n\t}\r\n\tgetSearchGridTabs(id) {\r\n\t\treturn this.tabs\r\n\t\t\t.filter(function (item) {\r\n\t\t\t\treturn item.indexOf('search_' + id) > -1;\r\n\t\t\t})\r\n\t\t\t.map(function (item) {\r\n\t\t\t\treturn window.document.getElementById(item).contentWindow;\r\n\t\t\t});\r\n\t}\r\n\trender() {\r\n\t\tconst isTabOpen = this.tabs.length > 0;\r\n\t\tthis.classList.toggle('content-block__main-tabs_hidden', !isTabOpen);\r\n\t\treturn super.render();\r\n\t}\r\n\tforceCloseAllTabs() {\r\n\t\tthis.tabs.forEach((id) => {\r\n\t\t\tconst tab = this.data.get(id);\r\n\t\t\tif (tab?.layout) {\r\n\t\t\t\ttab.layout.destroy();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.data.delete(id);\r\n\t\t\tconst frame = window.document.getElementById(id);\r\n\t\t\tconst itemId = frame.id.replace(aras.mainWindowName + '_', '');\r\n\t\t\taras.uiUnregWindowEx(itemId);\r\n\t\t\tframe.src = 'about:blank';\r\n\t\t});\r\n\t\tthis.tabs = [];\r\n\t}\r\n\tasync closeTabs(tabs = [...this.tabs]) {\r\n\t\tconst editedTabs = [];\r\n\t\tconst promisesArray = tabs.map((tabId) => {\r\n\t\t\tlet isEdited = false;\r\n\t\t\tif (tabId.startsWith('innovator_')) {\r\n\t\t\t\tconst tabWindow = window.document.getElementById(tabId).contentWindow;\r\n\t\t\t\tisEdited =\r\n\t\t\t\t\ttabWindow.aras &&\r\n\t\t\t\t\t(tabWindow.aras.isDirtyEx(tabWindow.item) ||\r\n\t\t\t\t\t\ttabWindow.aras.isTempEx(tabWindow.item));\r\n\t\t\t}\r\n\r\n\t\t\tif (isEdited) {\r\n\t\t\t\teditedTabs.push(tabId);\r\n\t\t\t\treturn Promise.resolve();\r\n\t\t\t}\r\n\r\n\t\t\treturn this.removeTab(tabId);\r\n\t\t});\r\n\t\tawait Promise.all(promisesArray);\r\n\r\n\t\tfor (let i = 0; i < editedTabs.length; i++) {\r\n\t\t\tconst tabId = editedTabs[i];\r\n\t\t\tawait this.selectTab(tabId);\r\n\t\t\tawait this.removeTab(tabId);\r\n\t\t}\r\n\r\n\t\treturn await this.render();\r\n\t}\r\n\tcloseOtherTabs(excludedTabId) {\r\n\t\tconst excludedTabIndex = this.tabs.indexOf(excludedTabId);\r\n\t\tconst removableTabs = this.tabs.slice();\r\n\t\tremovableTabs.splice(excludedTabIndex, 1);\r\n\r\n\t\treturn this.closeTabs(removableTabs);\r\n\t}\r\n}\r\n\r\nHeaderTabs.define('aras-header-tabs');\r\n", "import { CuiLayout } from 'cui';\r\n\r\nconst layouts = {\r\n\tTocEditorCuiLayout: async () => {\r\n\t\tconst startupBundle = await import('startup');\r\n\t\treturn startupBundle.TocEditorCuiLayout;\r\n\t}\r\n};\r\n\r\nexport default async function getLayoutByName(\r\n\tlayoutName: keyof typeof layouts\r\n) {\r\n\tconst getLayoutConstructor = layouts[layoutName];\r\n\tif (!getLayoutConstructor) {\r\n\t\treturn CuiLayout;\r\n\t}\r\n\r\n\treturn getLayoutConstructor();\r\n}\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport validateBrowserCertified from './validateBrowserCertified';\r\nimport disabledCookiesDialog from './disabledCookies';\r\nimport getTimeZoneName from './getTimeZoneName';\r\nimport login from './login';\r\n\r\nfunction onBeforeUnloadHandler() {\r\n\tconst tabsContainer = window.mainLayout && window.mainLayout.tabsContainer;\r\n\r\n\tif (aras.getCommonPropertyValue('exitInProgress') === true) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (aras.isDirtyItems()) {\r\n\t\twindow.onLogoutCommand();\r\n\t\treturn 'Changes you made may not be saved.';\r\n\t} else if (\r\n\t\ttabsContainer &&\r\n\t\ttabsContainer.isExistAnyTabs() &&\r\n\t\taras.getCommonPropertyValue('exitWithoutSavingInProgress') !== true\r\n\t) {\r\n\t\treturn 'Changes you made may not be saved.';\r\n\t}\r\n}\r\nasync function onLoadHandler() {\r\n\tif (!navigator.cookieEnabled) {\r\n\t\tawait disabledCookiesDialog();\r\n\t}\r\n\r\n\tawait validateBrowserCertified();\r\n\r\n\ttry {\r\n\t\tconst timeZoneName = await getTimeZoneName();\r\n\t\taras.setCommonPropertyValue('systemInfo_CurrentTimeZoneName', timeZoneName);\r\n\t\tawait login();\r\n\t} catch (e) {\r\n\t\taras.AlertError(e.message);\r\n\t}\r\n\taras.setWindowLangAttribute(window);\r\n}\r\nfunction onUnloadHandler() {\r\n\tif (!window.aras) {\r\n\t\treturn;\r\n\t}\r\n\taras.setCommonPropertyValue('exitInProgress', true);\r\n\taras.getOpenedWindowsCount(true);\r\n\r\n\tconst { mainLayout } = window;\r\n\tif (mainLayout && mainLayout.tabsContainer) {\r\n\t\tconst { dockHeaderTabs, undockHeaderTabs } = mainLayout.tabsContainer;\r\n\t\tdockHeaderTabs.forceCloseAllTabs();\r\n\t\tundockHeaderTabs.forceCloseAllTabs();\r\n\t}\r\n\r\n\taras.logout();\r\n}\r\n\r\nexport default { onBeforeUnloadHandler, onLoadHandler, onUnloadHandler };\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport notCertifiedBrowserDialog from './notCertifiedBrowser';\r\n\r\nconst storageKey = 'ArasAppUrlsKeys';\r\nconst getUrlsKeys = () => {\r\n\tconst strArray = localStorage.getItem(storageKey);\r\n\tlet array = [];\r\n\ttry {\r\n\t\tif (strArray) {\r\n\t\t\tarray = JSON.parse(strArray);\r\n\t\t}\r\n\t} catch (exp) {\r\n\t\treturn array;\r\n\t}\r\n\r\n\treturn array;\r\n};\r\n\r\nconst getBaseUrl = () =>\r\n\twindow.location.href.replace(/Client\\/.*/i, 'Client').toLowerCase();\r\nconst addToLocalStorage = () => {\r\n\tconst baseUrl = getBaseUrl();\r\n\tconst arrayUrls = getUrlsKeys();\r\n\r\n\tif (!arrayUrls.includes(baseUrl)) {\r\n\t\tarrayUrls.push(baseUrl);\r\n\t}\r\n\tlocalStorage.setItem(storageKey, JSON.stringify(arrayUrls));\r\n};\r\nconst keySessionStore = 'skipBrowserCertificationDialog';\r\nconst checkStorage = function () {\r\n\tif (sessionStorage.getItem(keySessionStore)) {\r\n\t\treturn true;\r\n\t}\r\n\treturn getUrlsKeys().includes(getBaseUrl());\r\n};\r\n\r\nconst validateBrowserCertified = async function () {\r\n\tif (aras.Browser.isCertified() || checkStorage()) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst rememberChoice = await notCertifiedBrowserDialog();\r\n\tif (rememberChoice) {\r\n\t\taddToLocalStorage();\r\n\t} else {\r\n\t\tsessionStorage.setItem(keySessionStore, true);\r\n\t}\r\n};\r\n\r\nexport default validateBrowserCertified;\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { bind } from 'hyperhtml';\r\nimport { Dialog, SvgManager } from 'core';\r\nimport getResourceManager from './getResourceManager';\r\n\r\nconst images = {\r\n\twarning: '../images/Warning.svg'\r\n};\r\n\r\nSvgManager.enqueue(Object.values(images));\r\n\r\nconst notCertifiedBrowser = () => {\r\n\tconst resourceManager = getResourceManager('core');\r\n\tconst title = resourceManager.getString('common.warning');\r\n\tconst dialog = new Dialog('html', { title });\r\n\r\n\tdialog.dialogNode.classList.add(\r\n\t\t'aras-dialog-alert',\r\n\t\t'aras-dialog_not-certified-browser'\r\n\t);\r\n\r\n\tconst onContinueClick = () => {\r\n\t\tconst rememberChoice = dialog.contentNode.querySelector(\r\n\t\t\t'input[type=\"checkbox\"]'\r\n\t\t).checked;\r\n\t\tdialog.close(rememberChoice);\r\n\t};\r\n\tbind(dialog.contentNode)`\r\n\t\t
\r\n\t\t\t\r\n\t\t\t${resourceManager.getFormatedString(\r\n\t\t\t\t'system_requirements.certification_browser_notification',\r\n\t\t\t\taras.Browser.getBrowserName()\r\n\t\t\t)}\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t`;\r\n\r\n\tdialog.dialogNode.addEventListener('cancel', (event) => {\r\n\t\tevent.preventDefault();\r\n\t});\r\n\r\n\tdialog.show();\r\n\r\n\treturn dialog.promise;\r\n};\r\n\r\nexport default notCertifiedBrowser;\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\n/* global ResourceManager, Solution */\r\nexport default function (\r\n\tsolution,\r\n\tresourceName = 'ui_resources.xml',\r\n\tlanguage = navigator.language\r\n) {\r\n\treturn new ResourceManager(new Solution(solution), resourceName, language);\r\n}\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { bind } from 'hyperhtml';\r\nimport { Dialog, SvgManager } from 'core';\r\nimport getResourceManager from './getResourceManager';\r\n\r\nconst images = {\r\n\terror: '../images/Error.svg'\r\n};\r\n\r\nSvgManager.enqueue(Object.values(images));\r\n\r\nconst disabledCookies = () => {\r\n\tconst resourceManager = getResourceManager('core');\r\n\tconst title = resourceManager.getString(\r\n\t\t'system_requirements.failed_initialize_innovator'\r\n\t);\r\n\tconst dialog = new Dialog('html', { title });\r\n\r\n\tdialog.dialogNode.classList.add(\r\n\t\t'aras-dialog-alert',\r\n\t\t'aras-dialog_disabled-cookies'\r\n\t);\r\n\r\n\tconst message = resourceManager.getString(\r\n\t\t'login.cookies_are_disabled_msg_html'\r\n\t);\r\n\tbind(dialog.contentNode)`\r\n\t\t
\r\n\t\t\t\r\n\t\t\t${message}\r\n\t\t
\r\n\t`;\r\n\r\n\tdialog.dialogNode.addEventListener('cancel', (event) => {\r\n\t\tevent.preventDefault();\r\n\t});\r\n\r\n\tdialog.show();\r\n\r\n\treturn dialog.promise;\r\n};\r\n\r\nexport default disabledCookies;\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport selectTimeZoneDialog from './selectTimeZone';\r\nimport getResourceManager from '../startup/getResourceManager';\r\n\r\nconst setTimeZoneNameInLocalStorage = (tzLabel, winTzName) => {\r\n\tconst tzOffset = -1 * new Date().getTimezoneOffset();\r\n\tconst timeZones = {};\r\n\ttimeZones[tzOffset + tzLabel] = winTzName;\r\n\tlocalStorage.setItem('timeZone', JSON.stringify(timeZones));\r\n};\r\n\r\nconst getTimeZoneName = async () => {\r\n\tconst resourceManager = getResourceManager('core');\r\n\tlet tzLabel;\r\n\r\n\ttry {\r\n\t\ttzLabel = new Intl.DateTimeFormat().resolvedOptions().timeZone || '';\r\n\t} catch (ex) {\r\n\t\ttzLabel = '';\r\n\t}\r\n\r\n\tconst tzOffset = -1 * new Date().getTimezoneOffset();\r\n\tlet timeZones = {};\r\n\r\n\ttry {\r\n\t\ttimeZones = JSON.parse(localStorage.getItem('timeZone'));\r\n\t} catch (e) {\r\n\t\ttimeZones = {};\r\n\t}\r\n\r\n\tconst winTzName = timeZones?.[tzOffset + tzLabel];\r\n\tif (winTzName) {\r\n\t\treturn winTzName;\r\n\t}\r\n\r\n\tconst inputType = tzLabel ? 'iana' : 'windows';\r\n\tconst localTime = new Date().toISOString();\r\n\tconst localTimeOffset = (-1 * new Date().getTimezoneOffset()).toString();\r\n\r\n\tconst url = new URL(aras.getBaseURL() + '/TimeZone/GetTimezoneNames');\r\n\turl.searchParams.set('tzlabel', tzLabel);\r\n\turl.searchParams.set('inputType', inputType);\r\n\turl.searchParams.set('localTime', localTime);\r\n\turl.searchParams.set('offsetBetweenLocalTimeAndUTCTime', localTimeOffset);\r\n\r\n\tconst tzRequest = await (await fetch(url)).json();\r\n\tconst winTzNames = tzRequest.map(({ id }) => id);\r\n\r\n\tif (winTzNames.length === 0) {\r\n\t\tthrow new Error(resourceManager.getString('tz.get_currentzone_fail'));\r\n\t} else if (winTzNames.length === 1) {\r\n\t\tsetTimeZoneNameInLocalStorage(tzLabel, winTzNames[0]);\r\n\t\treturn winTzNames[0];\r\n\t}\r\n\r\n\treturn selectTimeZoneDialog(winTzNames).then((value) => {\r\n\t\tsetTimeZoneNameInLocalStorage(tzLabel, value);\r\n\t\treturn value;\r\n\t});\r\n};\r\n\r\nexport default getTimeZoneName;\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { bind, wire } from 'hyperhtml';\r\nimport { Dialog } from 'core';\r\nimport getResourceManager from './getResourceManager';\r\nimport { createButtonContext } from '../../components/dialogCommonApi';\r\n\r\nconst selectTimeZone = (winTzNames) => {\r\n\tconst resourceManager = getResourceManager('core');\r\n\tconst title = resourceManager.getString('tz.select_time_zone');\r\n\tconst dialog = new Dialog('html', { title });\r\n\r\n\tdialog.dialogNode.classList.add('aras-dialog_timezone-selector');\r\n\tconst timeZonesSelect = wire()`\r\n\t\t\r\n\t`;\r\n\r\n\tconst acceptTimeZone = () => dialog.close(timeZonesSelect.value);\r\n\tconst createOkButton = createButtonContext();\r\n\tconst okButton = createOkButton(\r\n\t\tresourceManager.getString('common.ok'),\r\n\t\t'aras-button_primary aras-buttons-bar__button',\r\n\t\tacceptTimeZone\r\n\t);\r\n\r\n\tconst html = bind(dialog.contentNode);\r\n\thtml`\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t${timeZonesSelect}\r\n\t\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t
${okButton}
\r\n\t`;\r\n\r\n\tdialog.dialogNode.addEventListener('cancel', (event) =>\r\n\t\tevent.preventDefault()\r\n\t);\r\n\r\n\tdialog.show();\r\n\r\n\treturn dialog.promise;\r\n};\r\n\r\nexport default selectTimeZone;\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { deepLinking } from 'startup';\r\n\r\nexport default function login() {\r\n\treturn Promise.all([\r\n\t\tdeepLinking.beforeInitializeLoginForm(),\r\n\t\taras.OAuthServerDiscovery.discover(aras.getServerBaseURL())\r\n\t])\r\n\t\t.then(function (result) {\r\n\t\t\tconst deepLinkingResult = result[0];\r\n\t\t\tif (deepLinkingResult.startItemHandled === true) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tconst oauthServerConfiguration = result[1];\r\n\t\t\tconst clientUrlsUtility = new window.ClientUrlsUtility(aras.getBaseURL());\r\n\t\t\tconst clientBaseUrl = clientUrlsUtility.getBaseUrlWithoutSalt() + '/';\r\n\t\t\treturn aras.OAuthClient.init(\r\n\t\t\t\twindow.oauthClientId,\r\n\t\t\t\tclientBaseUrl,\r\n\t\t\t\toauthServerConfiguration\r\n\t\t\t)\r\n\t\t\t\t.then(async function () {\r\n\t\t\t\t\tconst navigatedFromRedirectCallbackKey =\r\n\t\t\t\t\t\t'OAuth:NavigatedFromRedirectCallback';\r\n\t\t\t\t\tconst params = new URLSearchParams(\r\n\t\t\t\t\t\tlocation.search.substr(1, location.search.length)\r\n\t\t\t\t\t);\r\n\t\t\t\t\tconst options = {\r\n\t\t\t\t\t\tprompt: params.get('prompt'),\r\n\t\t\t\t\t\tdatabase: params.get('db'),\r\n\t\t\t\t\t\tauthentication_type: params.get('auth'),\r\n\t\t\t\t\t\tstate: {\r\n\t\t\t\t\t\t\treturnUrl: location.href\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif (options.prompt === '') {\r\n\t\t\t\t\t\toptions.prompt = 'select_account';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (sessionStorage[navigatedFromRedirectCallbackKey] === 'true') {\r\n\t\t\t\t\t\t// Deteleting prompt field to avoid cyclic navigation to login page\r\n\t\t\t\t\t\t// after redirection from OAuth server after authorization\r\n\t\t\t\t\t\tdelete options.prompt;\r\n\t\t\t\t\t\tsessionStorage.removeItem(navigatedFromRedirectCallbackKey);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst registration = await navigator.serviceWorker?.getRegistration(\r\n\t\t\t\t\t\twindow.location\r\n\t\t\t\t\t);\r\n\t\t\t\t\tif (registration) {\r\n\t\t\t\t\t\tconst { active: worker } = await navigator.serviceWorker.ready;\r\n\t\t\t\t\t\t// worker can occasionally be null during Firefox selenium tests execution against an AICD instance.\r\n\t\t\t\t\t\t// This seems to be caused by a bug in Firefox service worker logic. In AICD oauth and client work\r\n\t\t\t\t\t\t// under different domains (urls), so probably switching domains (client -> oauth -> client) during the login\r\n\t\t\t\t\t\t// process can somehow \"break\" the service worker registration process (which occurs at the client's domain).\r\n\t\t\t\t\t\t// Also currently selenium tests are run against MSI Innovator only with http protocol (not https), which means\r\n\t\t\t\t\t\t// that the service worker feature is disabled (it's disabled by default for http), so probably this issue is not\r\n\t\t\t\t\t\t// specific to AICD.\r\n\t\t\t\t\t\tif (worker) {\r\n\t\t\t\t\t\t\tconst salt = clientUrlsUtility.getSalt();\r\n\t\t\t\t\t\t\tconst payload = { salt };\r\n\t\t\t\t\t\t\tworker.postMessage({ type: 'LOAD_STATIC', payload });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn aras.OAuthClient.login(options);\r\n\t\t\t\t})\r\n\t\t\t\t.then(function (result) {\r\n\t\t\t\t\tif (result.status == 'logged-in') {\r\n\t\t\t\t\t\treturn aras.login().then(function () {\r\n\t\t\t\t\t\t\twindow.onSuccessfulLogin();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t})\r\n\t\t.catch(function (err) {\r\n\t\t\treturn aras.AlertError(err).then(function () {\r\n\t\t\t\tif (aras.OAuthClient.isLogged()) {\r\n\t\t\t\t\tconst url = new URL(window.location.href);\r\n\t\t\t\t\turl.searchParams.delete('StartItem');\r\n\t\t\t\t\tlet returnUrl = url.toString();\r\n\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\terr instanceof SOAPResults &&\r\n\t\t\t\t\t\terr.getFaultString() === 'Invalid user name.' &&\r\n\t\t\t\t\t\t!url.searchParams.has('prompt')\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif (returnUrl.includes('?')) {\r\n\t\t\t\t\t\t\treturnUrl += '&prompt';\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturnUrl += '?prompt';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn aras.OAuthClient.logout({\r\n\t\t\t\t\t\tstate: {\r\n\t\t\t\t\t\t\treturnUrl: returnUrl\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n}\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { bind } from 'hyperhtml';\r\nimport {\r\n\tcontentTabId,\r\n\tgetSidebarData,\r\n\tupdateLockedStatus,\r\n\tgetFavoriteItemTypes\r\n} from '../NavigationPanel/sidebarDataConverter';\r\nimport HeaderTabsContainer from './HeaderTabsContainer';\r\nimport {\r\n\tcuiBackgroundPage,\r\n\tCuiLayout,\r\n\tcuiMethods,\r\n\tcuiToc,\r\n\tcuiToolbar\r\n} from 'cui';\r\nimport mainWindowActions from './MainWindowCuiActions';\r\nimport { itemType as itemTypeMetadata } from 'metadata';\r\nimport { favorites } from 'store';\r\nimport type { Favorite } from '../store/storeTypes';\r\nimport type { HeaderTab } from '../aras/startup/headerTabs';\r\nimport HeaderTabs from '../aras/startup/headerTabs';\r\nimport { openStartItems } from '../aras/startup/openStartItems';\r\nimport type NavigationPanel from '../NavigationPanel/NavigationPanel';\r\n\r\ninterface MainWindowLayoutState {\r\n\tsplitScreen: {\r\n\t\tdockTabs: Array;\r\n\t\tmainTabs: Array;\r\n\t\ttabs: Record;\r\n\t\tselectedTabs: Array;\r\n\t};\r\n\tnavigationPanel: {\r\n\t\tisVisible: boolean;\r\n\t};\r\n}\r\n\r\ninterface MainWindowLayoutProps {\r\n\tfavorites: Record;\r\n}\r\n\r\nexport default class MainWindowCuiLayout extends CuiLayout<\r\n\tMainWindowLayoutState,\r\n\tMainWindowLayoutProps\r\n> {\r\n\t_initBackgroundPromise = null;\r\n\t_initTocPromise = null;\r\n\tbackgroundPage = document.getElementById('backgroundPage');\r\n\tnavigationPanel: NavigationPanel = document.getElementById('navigationPanel');\r\n\ttabsContainer: null | HeaderTabsContainer = null;\r\n\tactions = mainWindowActions(this.setState.bind(this));\r\n\tinitialState: MainWindowLayoutState = {\r\n\t\tsplitScreen: {\r\n\t\t\tdockTabs: [],\r\n\t\t\tmainTabs: [],\r\n\t\t\ttabs: {},\r\n\t\t\tselectedTabs: []\r\n\t\t},\r\n\t\tnavigationPanel: {\r\n\t\t\tisVisible: false\r\n\t\t}\r\n\t};\r\n\t#toolbarComponent = document.getElementById('headerCommandsBar');\r\n\tdefinedControls = new Map([\r\n\t\t['MainView.Header', this.#toolbarComponent],\r\n\t\t['MainView.PopupMenu', this.navigationPanel.popupMenu],\r\n\t\t['MainView.PopupMenuSecondaryMenu', this.navigationPanel.secondaryPopupMenu]\r\n\t]);\r\n\r\n\tasync init() {\r\n\t\tconst waitForInit = super.init();\r\n\r\n\t\tconst dockTabs = document.getElementById('dock-tab');\r\n\t\tconst mainTabs = document.getElementById('main-tab');\r\n\t\tif (dockTabs instanceof HeaderTabs && mainTabs instanceof HeaderTabs) {\r\n\t\t\tthis.tabsContainer = new HeaderTabsContainer(dockTabs, mainTabs, {\r\n\t\t\t\tactions: this.actions\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tsessionStorage.setItem('defaultDState', 'defaultDState');\r\n\r\n\t\tconst commandFactory = cuiMethods.getLayoutCommandFactory(this.options);\r\n\t\tthis.options.commandFactory = commandFactory;\r\n\t\tconst initBackgroundPage = this._initializeBackgroundPage();\r\n\t\tconst initToc = this._initializeToc();\r\n\r\n\t\tawait initToc;\r\n\t\topenStartItems(this);\r\n\t\tthis._registerTocHandlers();\r\n\r\n\t\tthis._registerNavPanelHandlers();\r\n\t\tthis._setupNavPanel();\r\n\r\n\t\tthis._registerSidebarHandlers();\r\n\t\tawait this._initializeSidebar();\r\n\r\n\t\tawait initBackgroundPage;\r\n\t\tthis._registerBackgroundPageHandlers();\r\n\t\tawait waitForInit;\r\n\r\n\t\tthis._initializeHeader();\r\n\t\tthis._registerHeaderHandlers();\r\n\r\n\t\tthis._registerHeaderTabsContextMenuHandlers(\r\n\t\t\tthis.cuiControls.get('MainView.HeaderTabsContextMenu')\r\n\t\t);\r\n\t}\r\n\r\n\tupdateLayout(oldProps, oldState) {\r\n\t\tthis.navigationPanel.setState({ favorites: this.props.favorites });\r\n\t\tthis.renderHeader(oldState);\r\n\t\tthis._updateBackgroundPage(oldState);\r\n\t\tthis.#updateSideBar();\r\n\t}\r\n\r\n\t#updateSideBar() {\r\n\t\tconst tabs = this.navigationPanel.tabs;\r\n\t\tconst navData = this.navigationPanel.nav.data;\r\n\t\tconst favoriteItemTypes = getFavoriteItemTypes(this.props.favorites);\r\n\t\tconst sidebarData = getSidebarData(favoriteItemTypes, navData);\r\n\t\ttabs.setState({ favorites: sidebarData });\r\n\t}\r\n\r\n\trenderHeader(oldState) {\r\n\t\tif (oldState.navigationPanel !== this.state.navigationPanel) {\r\n\t\t\tthis.observer.notify('NavigationPanelVisibility');\r\n\t\t}\r\n\t}\r\n\r\n\tasync updateCuiLayoutOnItemChange(itemTypeName) {\r\n\t\tconst itemType = await itemTypeMetadata.getItemType(\r\n\t\t\t'CuiDependency',\r\n\t\t\t'name'\r\n\t\t);\r\n\t\tconst morphaes = itemType['Morphae'] ?? [];\r\n\t\tconst needToCuiUpgrade = morphaes.some((morphae) => {\r\n\t\t\tconst morphaeName = morphae['related_id@aras.name'];\r\n\t\t\treturn morphaeName === itemTypeName;\r\n\t\t});\r\n\t\tif (needToCuiUpgrade) {\r\n\t\t\tthis.observer.notify('reInitByCUIDependencies');\r\n\t\t}\r\n\t}\r\n\r\n\tmapStateToProps({ favorites }) {\r\n\t\tconst filteredFavorites = Object.values(favorites).reduce(\r\n\t\t\t(acum, favoriteItem) => {\r\n\t\t\t\tconst { category } = favoriteItem;\r\n\t\t\t\tif (['ItemType', 'Item', 'Search'].includes(category)) {\r\n\t\t\t\t\tacum[favoriteItem.id] = favoriteItem;\r\n\t\t\t\t}\r\n\t\t\t\treturn acum;\r\n\t\t\t},\r\n\t\t\t{}\r\n\t\t);\r\n\t\treturn { favorites: filteredFavorites };\r\n\t}\r\n\r\n\tasync _initializeBackgroundPage(options = {}) {\r\n\t\tif (this._initBackgroundPromise) {\r\n\t\t\treturn this._initBackgroundPromise;\r\n\t\t}\r\n\r\n\t\tthis._initBackgroundPromise = cuiBackgroundPage(\r\n\t\t\tthis.backgroundPage,\r\n\t\t\t'BackgroundPage',\r\n\t\t\t{ ...this.options, ...options }\r\n\t\t);\r\n\t\tawait this._initBackgroundPromise;\r\n\t\tthis._initBackgroundPromise = null;\r\n\t}\r\n\r\n\t_registerHeaderTabsContextMenuHandlers(contextMenu) {\r\n\t\tthis.tabsContainer.attachContextMenu(contextMenu);\r\n\t}\r\n\r\n\tasync _initializeHeader() {\r\n\t\tthis.#toolbarComponent.firstChild.classList.add('aras-header');\r\n\r\n\t\tthis.options.toggleSplitScreenMode = () =>\r\n\t\t\tthis.tabsContainer.toggleSplitScreenMode();\r\n\t}\r\n\r\n\t_initializeSidebar() {\r\n\t\tthis.#updateSideBar();\r\n\t\tconst tabs = this.navigationPanel.tabs;\r\n\t\treturn tabs.selectTab(contentTabId);\r\n\t}\r\n\r\n\tasync _initializeToc() {\r\n\t\tif (this._initTocPromise) {\r\n\t\t\treturn this._initTocPromise;\r\n\t\t}\r\n\r\n\t\tconst nav = this.navigationPanel.nav;\r\n\t\tthis._initTocPromise = cuiToc(nav, 'TOC', this.options);\r\n\r\n\t\tawait this._initTocPromise;\r\n\t\tthis._initTocPromise = null;\r\n\r\n\t\treturn this._initTocPromise;\r\n\t}\r\n\r\n\t_setupNavPanel() {\r\n\t\tconst isTocPinned =\r\n\t\t\taras.getPreferenceItemProperty(\r\n\t\t\t\t'Core_GlobalLayout',\r\n\t\t\t\tnull,\r\n\t\t\t\t'core_toc_pinned'\r\n\t\t\t) === '1';\r\n\r\n\t\tif (isTocPinned) {\r\n\t\t\tthis.navigationPanel.togglePin(true);\r\n\t\t\tthis.navigationPanel.toggleVisibility(true);\r\n\t\t}\r\n\t}\r\n\r\n\t_registerBackgroundPageHandlers() {\r\n\t\tthis.observer.subscribe(async (event) => {\r\n\t\t\tif (event !== 'UpdateTOC') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tawait this._initializeBackgroundPage();\r\n\t\t\tthis._toggleBackgroundPage(this.state.splitScreen);\r\n\t\t});\r\n\t}\r\n\r\n\t_registerNavPanelHandlers() {\r\n\t\tthis.navigationPanel.addEventListener(\r\n\t\t\t'navigationPanelContextMenu',\r\n\t\t\tasync (event) => {\r\n\t\t\t\tconst { x, y, controlName, itemTypeName, itemTypeId, ...detail } =\r\n\t\t\t\t\tevent.detail;\r\n\t\t\t\tconst criteria = itemTypeId\r\n\t\t\t\t\t? [itemTypeId, 'id']\r\n\t\t\t\t\t: [itemTypeName, 'name'];\r\n\t\t\t\tconst itemTypePromise = itemTypeMetadata.getItemType(...criteria);\r\n\r\n\t\t\t\tconst itemType = await itemTypePromise;\r\n\t\t\t\tconst options = {\r\n\t\t\t\t\t...detail,\r\n\t\t\t\t\tfavorites,\r\n\t\t\t\t\titemType,\r\n\t\t\t\t\titemTypeName: itemType?.name\r\n\t\t\t\t};\r\n\t\t\t\tthis.cuiControls.get(controlName).show({ x, y }, options);\r\n\t\t\t}\r\n\t\t);\r\n\t\tthis.navigationPanel.addEventListener('sidebarPin', (event) => {\r\n\t\t\tconst { state } = event.detail;\r\n\t\t\taras.setPreferenceItemProperties('Core_GlobalLayout', null, {\r\n\t\t\t\tcore_toc_pinned: Number(state)\r\n\t\t\t});\r\n\t\t});\r\n\t\tthis.navigationPanel.addEventListener('sidebarClose', () => {\r\n\t\t\tthis.actions.navigationPanel.updateVisibility(false);\r\n\t\t});\r\n\t\tthis.navigationPanel.addEventListener('sidebarShow', () => {\r\n\t\t\tthis.actions.navigationPanel.updateVisibility(true);\r\n\t\t});\r\n\t}\r\n\r\n\t_registerHeaderHandlers() {\r\n\t\tthis.observer.subscribe(async (event) => {\r\n\t\t\tswitch (event) {\r\n\t\t\t\tcase 'reInitByCUIDependencies':\r\n\t\t\t\t\tawait cuiToolbar(\r\n\t\t\t\t\t\tthis.#toolbarComponent,\r\n\t\t\t\t\t\t'MainWindowHeader',\r\n\t\t\t\t\t\tthis.options\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'UpdateNotifications':\r\n\t\t\t\tcase 'UpdatePreferences':\r\n\t\t\t\tcase 'UpdateState':\r\n\t\t\t\tcase 'NavigationPanelVisibility':\r\n\t\t\t\t\tcuiMethods.reinitControlItems(\r\n\t\t\t\t\t\tthis.#toolbarComponent,\r\n\t\t\t\t\t\tevent,\r\n\t\t\t\t\t\tthis.options\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\t\taras.registerEventHandler('PreferenceValueChanged', window, () => {\r\n\t\t\tthis.observer.notify('UpdatePreferences');\r\n\t\t});\r\n\t}\r\n\r\n\t_registerSidebarHandlers() {\r\n\t\tthis.observer.subscribe(async (event) => {\r\n\t\t\tif (event !== 'UpdateTOC') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tawait this._initializeToc();\r\n\t\t\tconst nav = this.navigationPanel.nav;\r\n\t\t\tconst tabs = this.navigationPanel.tabs;\r\n\t\t\tupdateLockedStatus(tabs.data, nav.data);\r\n\t\t\ttabs.render();\r\n\t\t});\r\n\t}\r\n\r\n\t_registerTocHandlers() {\r\n\t\tthis.observer.subscribe(async (event) => {\r\n\t\t\tif (event !== 'UpdateTOC') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\taras.MetadataCache.DeleteConfigurableUiDatesFromCache();\r\n\t\t\tawait this._initializeToc();\r\n\t\t\tthis.navigationPanel.resetState();\r\n\t\t});\r\n\t}\r\n\r\n\tasync _toggleBackgroundPage({ dockTabs, mainTabs }) {\r\n\t\tconst hidden = dockTabs.length > 0 || mainTabs.length > 0;\r\n\t\tif (hidden) {\r\n\t\t\tawait this._initBackgroundPromise;\r\n\t\t\tbind(this.backgroundPage)``;\r\n\t\t} else {\r\n\t\t\tawait this._initializeBackgroundPage({ renderOnly: true });\r\n\t\t}\r\n\t}\r\n\r\n\t_updateBackgroundPage(oldState) {\r\n\t\tconst splitScreenState = this.state.splitScreen;\r\n\t\tif (splitScreenState === oldState.splitScreen) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._toggleBackgroundPage(splitScreenState);\r\n\t}\r\n}\r\n", "import type {\r\n\tdefault as HeaderTabs,\r\n\tGHeaderTab\r\n} from '../aras/startup/headerTabs';\r\nimport type MainWindowCuiLayout from './MainWindowCuiLayout';\r\nimport type { ContextMenu } from 'core';\r\n\r\nconst SPLIT_CSS_CLASS = 'content-block_split';\r\nconst ACTIVE_TABBAR_CSS_CLASS = 'content-block__main-tabs_active';\r\nconst DOCK_FRAME_CSS_CLASS = 'content-block__tab_docked';\r\n\r\nexport default class HeaderTabsContainer {\r\n\tdockHeaderTabs: HeaderTabs;\r\n\tundockHeaderTabs: HeaderTabs;\r\n\t#requestId: null | number = null;\r\n\t#activeTabbar: null | HeaderTabs = null;\r\n\toptions: {\r\n\t\tupdateSelectedTabs?: MainWindowCuiLayout['actions']['updateSelectedTabs'];\r\n\t};\r\n\tconstructor(\r\n\t\tdockHeaderTabs: HeaderTabs,\r\n\t\tundockHeaderTabs: HeaderTabs,\r\n\t\toptions: {\r\n\t\t\tactions?: MainWindowCuiLayout['actions'];\r\n\t\t} = {}\r\n\t) {\r\n\t\tthis.dockHeaderTabs = dockHeaderTabs;\r\n\t\tthis.undockHeaderTabs = undockHeaderTabs;\r\n\r\n\t\tthis.undockHeaderTabs.addEventListener('focusin', () => {\r\n\t\t\tthis._setActiveTabbar(this.undockHeaderTabs);\r\n\t\t});\r\n\t\tthis.dockHeaderTabs.addEventListener('focusin', () => {\r\n\t\t\tthis._setActiveTabbar(this.dockHeaderTabs);\r\n\t\t});\r\n\t\tthis.dockHeaderTabs.addEventListener('select', ((event: CustomEvent) => {\r\n\t\t\tif (!event.detail.id) {\r\n\t\t\t\tthis.updateTabbarsStyle();\r\n\t\t\t\tthis._setActiveTabbar(this.undockHeaderTabs);\r\n\t\t\t}\r\n\t\t\tthis.#updateSelectedTabs();\r\n\t\t}) as EventListener);\r\n\t\tthis.undockHeaderTabs.addEventListener('select', ((event: CustomEvent) => {\r\n\t\t\tif (!event.detail.id && this.dockHeaderTabs.data.size > 0) {\r\n\t\t\t\tthis._setActiveTabbar(this.dockHeaderTabs);\r\n\t\t\t}\r\n\t\t\tthis.#updateSelectedTabs();\r\n\t\t}) as EventListener);\r\n\r\n\t\tthis.undockHeaderTabs.addEventListener('moved', ((event: CustomEvent) => {\r\n\t\t\tconst { id } = event.detail;\r\n\t\t\tconst tabData = this.undockHeaderTabs.data.get(id);\r\n\t\t\ttabData &&\r\n\t\t\t\toptions.actions?.updateUndockedTabs(\r\n\t\t\t\t\tthis.undockHeaderTabs.tabs,\r\n\t\t\t\t\tid,\r\n\t\t\t\t\ttabData\r\n\t\t\t\t);\r\n\r\n\t\t\tthis.#updateSelectedTabs();\r\n\t\t}) as EventListener);\r\n\t\tthis.dockHeaderTabs.addEventListener('moved', ((event: CustomEvent) => {\r\n\t\t\tconst { id } = event.detail;\r\n\t\t\tconst tabData = this.dockHeaderTabs.data.get(id);\r\n\t\t\ttabData &&\r\n\t\t\t\toptions.actions?.updateDockedTabs(\r\n\t\t\t\t\tthis.dockHeaderTabs.tabs,\r\n\t\t\t\t\tid,\r\n\t\t\t\t\ttabData\r\n\t\t\t\t);\r\n\r\n\t\t\tthis.#updateSelectedTabs();\r\n\t\t}) as EventListener);\r\n\r\n\t\tthis.undockHeaderTabs.options.updateTabState =\r\n\t\t\toptions.actions?.updateUndockedTabs;\r\n\t\tthis.dockHeaderTabs.options.updateTabState =\r\n\t\t\toptions.actions?.updateDockedTabs;\r\n\r\n\t\tthis.options = { updateSelectedTabs: options.actions?.updateSelectedTabs };\r\n\t\tthis.#activeTabbar = this.undockHeaderTabs;\r\n\t}\r\n\ton(\r\n\t\teventType: string,\r\n\t\tcallback: (tabs: HeaderTabs, tabId: string, event: Event) => void\r\n\t) {\r\n\t\tconst removeDockHandler = this.dockHeaderTabs.on(\r\n\t\t\teventType,\r\n\t\t\t(tabId, event) => callback(this.dockHeaderTabs, tabId, event)\r\n\t\t);\r\n\t\tconst removeUndockHandler = this.undockHeaderTabs.on(\r\n\t\t\teventType,\r\n\t\t\t(tabId, event) => callback(this.undockHeaderTabs, tabId, event)\r\n\t\t);\r\n\t\treturn () => {\r\n\t\t\tremoveDockHandler();\r\n\t\t\tremoveUndockHandler();\r\n\t\t};\r\n\t}\r\n\tattachContextMenu(contextMenu: ContextMenu) {\r\n\t\tif (!contextMenu) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst tabsHandlers = {\r\n\t\t\tdockTab: (id: string) => this.dockTab(id),\r\n\t\t\tundockTab: (id: string) => this.undockTab(id),\r\n\t\t\tisDockedTab: (id: string) => this.isDockedTab(id)\r\n\t\t};\r\n\t\tthis.on('contextmenu', (tabbar, tabId, event) => {\r\n\t\t\tif (!(event instanceof MouseEvent)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst currentTarget = tabbar.data.get(tabId);\r\n\r\n\t\t\tcontextMenu.show(\r\n\t\t\t\t{ x: event.clientX, y: event.clientY },\r\n\t\t\t\t{\r\n\t\t\t\t\ttabs: [...tabbar.tabs],\r\n\t\t\t\t\tcurrentTarget: { ...currentTarget, id: tabId },\r\n\t\t\t\t\tcloseTab: (id: string) => tabbar.removeTab(id),\r\n\t\t\t\t\tcloseTabs: (ids: Array) => tabbar.closeTabs(ids),\r\n\t\t\t\t\tcloseOtherTabs: (id: string) => tabbar.closeOtherTabs(id),\r\n\t\t\t\t\topenInTearOff: (id: string) => tabbar.clickOpenInTearOff(id),\r\n\t\t\t\t\t...tabsHandlers\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\tisDockedTab(tabId: string) {\r\n\t\treturn this.dockHeaderTabs.tabs.includes(tabId);\r\n\t}\r\n\t_moveTab(\r\n\t\ttabId: string,\r\n\t\ttabbarFrom: HeaderTabs,\r\n\t\ttabbarTo: HeaderTabs,\r\n\t\tposition?: number\r\n\t) {\r\n\t\tconst data = tabbarFrom.ejectTab(tabId);\r\n\t\tif (data) {\r\n\t\t\tdata.parentTab = null;\r\n\t\t\ttabbarTo.addTab(tabId, data, position);\r\n\t\t}\r\n\r\n\t\tconst frame = document.getElementById(tabId);\r\n\t\tframe?.classList.toggle(\r\n\t\t\tDOCK_FRAME_CSS_CLASS,\r\n\t\t\ttabbarTo === this.dockHeaderTabs\r\n\t\t);\r\n\r\n\t\tif (data) {\r\n\t\t\tthis.undockHeaderTabs.options.updateTabState?.(\r\n\t\t\t\tthis.undockHeaderTabs.tabs,\r\n\t\t\t\ttabId,\r\n\t\t\t\tdata\r\n\t\t\t);\r\n\t\t\tthis.dockHeaderTabs.options.updateTabState?.(\r\n\t\t\t\tthis.dockHeaderTabs.tabs,\r\n\t\t\t\ttabId,\r\n\t\t\t\tdata\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\tdockTab(tabId: string) {\r\n\t\tthis._moveTab(tabId, this.undockHeaderTabs, this.dockHeaderTabs);\r\n\t\tthis.updateTabbar(tabId, this.dockHeaderTabs);\r\n\t}\r\n\tundockTab(tabId: string) {\r\n\t\tif (this.dockHeaderTabs.tabs.length === 1) {\r\n\t\t\tthis.exitSplitscreen();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._moveTab(tabId, this.dockHeaderTabs, this.undockHeaderTabs);\r\n\t\tthis.updateTabbar(tabId, this.undockHeaderTabs);\r\n\t}\r\n\t#updateSelectedTabs() {\r\n\t\tconst selectedTabs = [\r\n\t\t\tthis.undockHeaderTabs.selectedTab,\r\n\t\t\tthis.dockHeaderTabs.selectedTab\r\n\t\t].filter((v): v is string => !!v);\r\n\r\n\t\tthis.options.updateSelectedTabs?.(selectedTabs);\r\n\t}\r\n\tupdateTabbarsStyle() {\r\n\t\tconst isNeedSplit = this.dockHeaderTabs.data.size > 0;\r\n\t\tconst tabsParentElement = this.dockHeaderTabs.parentElement;\r\n\t\ttabsParentElement?.classList.toggle(SPLIT_CSS_CLASS, isNeedSplit);\r\n\r\n\t\tconst splitter = tabsParentElement?.querySelector(\r\n\t\t\t'aras-splitter'\r\n\t\t) as HTMLElement;\r\n\t\tconst splitterWidth = splitter?.offsetWidth;\r\n\t\tif (splitterWidth === 0 && isNeedSplit) {\r\n\t\t\tthrow new Error(\r\n\t\t\t\t'The width of the splitter cannot be zero if split screen mode is enabled'\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconst splitterColumnWidth = `${splitterWidth}px`;\r\n\t\tconst startColumnSize = `calc(50% - ${splitterWidth / 2}px)`;\r\n\t\tconst splitColumnStyle = `${startColumnSize} ${splitterColumnWidth} ${startColumnSize}`;\r\n\r\n\t\tconst shouldUpdateStyles = !(\r\n\t\t\tisNeedSplit && tabsParentElement?.style.gridTemplateColumns\r\n\t\t);\r\n\r\n\t\tif (shouldUpdateStyles && tabsParentElement) {\r\n\t\t\ttabsParentElement.style.gridTemplateColumns = isNeedSplit\r\n\t\t\t\t? splitColumnStyle\r\n\t\t\t\t: '';\r\n\t\t}\r\n\t}\r\n\tupdateActiveTabbarObserver() {\r\n\t\tconst isNeedSplit = this.dockHeaderTabs.data.size > 0;\r\n\t\tif (isNeedSplit) {\r\n\t\t\tthis.startActiveTabbarObserver();\r\n\t\t} else {\r\n\t\t\tthis.stopActiveTabbarObserver();\r\n\t\t}\r\n\t}\r\n\tupdateTabbar(tabId: string, tabbar: HeaderTabs) {\r\n\t\ttabbar.selectTab(tabId);\r\n\t\tthis._setActiveTabbar(tabbar);\r\n\t\tthis.updateTabbarsStyle();\r\n\t\tthis.updateActiveTabbarObserver();\r\n\t\tthis.#updateSelectedTabs();\r\n\t}\r\n\tstartActiveTabbarObserver() {\r\n\t\tif (this.#requestId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.#requestId = requestAnimationFrame(this._checkActiveTabbar.bind(this));\r\n\t}\r\n\tstopActiveTabbarObserver() {\r\n\t\tif (this.#requestId) {\r\n\t\t\tcancelAnimationFrame(this.#requestId);\r\n\t\t}\r\n\t\tthis.#requestId = null;\r\n\t}\r\n\t_checkActiveTabbar() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (!this.#requestId) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.#requestId = requestAnimationFrame(\r\n\t\t\t\tthis._checkActiveTabbar.bind(this)\r\n\t\t\t);\r\n\t\t}, 200);\r\n\r\n\t\tconst activeElement = document.activeElement;\r\n\t\tconst activeElementTagName = activeElement && activeElement.tagName;\r\n\r\n\t\tif (activeElementTagName === 'IFRAME') {\r\n\t\t\tconst tabbar = this.getTabbarByTabId(activeElement?.id || '');\r\n\t\t\tif (tabbar) {\r\n\t\t\t\tthis._setActiveTabbar(tabbar);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t_setActiveTabbar(tabbar: HeaderTabs) {\r\n\t\tif (this.#activeTabbar === tabbar) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.#activeTabbar = tabbar;\r\n\t\tconst isDockTabbarActive = tabbar === this.dockHeaderTabs;\r\n\t\tthis.dockHeaderTabs.classList.toggle(\r\n\t\t\tACTIVE_TABBAR_CSS_CLASS,\r\n\t\t\tisDockTabbarActive\r\n\t\t);\r\n\t\tthis.undockHeaderTabs.classList.toggle(\r\n\t\t\tACTIVE_TABBAR_CSS_CLASS,\r\n\t\t\t!isDockTabbarActive\r\n\t\t);\r\n\t}\r\n\tgetTabbarByTabId(tabId: string) {\r\n\t\tif (this.dockHeaderTabs.tabs.includes(tabId)) {\r\n\t\t\treturn this.dockHeaderTabs;\r\n\t\t}\r\n\r\n\t\tif (this.undockHeaderTabs.tabs.includes(tabId)) {\r\n\t\t\treturn this.undockHeaderTabs;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\tisExistAnyTabs() {\r\n\t\tconst dockHeaderTabsExist = !!this.dockHeaderTabs.tabs.length;\r\n\t\tconst undockHeaderTabsExist = !!this.undockHeaderTabs.tabs.length;\r\n\r\n\t\treturn dockHeaderTabsExist || undockHeaderTabsExist;\r\n\t}\r\n\tgetSearchGridTabs(id: string) {\r\n\t\treturn [\r\n\t\t\t...this.dockHeaderTabs.getSearchGridTabs(id),\r\n\t\t\t...this.undockHeaderTabs.getSearchGridTabs(id)\r\n\t\t];\r\n\t}\r\n\topenPage(url: string, icon: string, label: string) {\r\n\t\tif (!url) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst openedPageTabId = this.dockHeaderTabs.tabs.find(\r\n\t\t\t(tab) => tab.indexOf('page_' + url) !== -1\r\n\t\t);\r\n\r\n\t\tif (openedPageTabId) {\r\n\t\t\tthis.dockHeaderTabs.selectTab(openedPageTabId);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\treturn this.undockHeaderTabs.openPage(url, icon, label);\r\n\t}\r\n\topenCuiLayout(\r\n\t\tlayoutName: string,\r\n\t\tlocation: string,\r\n\t\tname: string,\r\n\t\ttabUiData: GHeaderTab<'CuiLayout'>\r\n\t) {\r\n\t\tif (!layoutName) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst openedCuiLayoutId = this.dockHeaderTabs.tabs.find(\r\n\t\t\t(tab) => tab === `layout_${name}`\r\n\t\t);\r\n\t\tif (openedCuiLayoutId) {\r\n\t\t\tthis.dockHeaderTabs.selectTab(openedCuiLayoutId);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\treturn this.undockHeaderTabs.openCuiLayout(\r\n\t\t\tlayoutName,\r\n\t\t\tlocation,\r\n\t\t\tname,\r\n\t\t\ttabUiData\r\n\t\t);\r\n\t}\r\n\topenForm(formId: undefined | string, icon: string, label: string) {\r\n\t\tif (!formId) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tconst formName = aras.MetadataCache.GetFormName(formId);\r\n\t\tconst openedFormTabId = this.dockHeaderTabs.tabs.find(\r\n\t\t\t(tab) => tab.indexOf('form_' + formId + formName + '_') !== -1\r\n\t\t);\r\n\r\n\t\tif (openedFormTabId) {\r\n\t\t\tthis.dockHeaderTabs.selectTab(openedFormTabId);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\treturn this.undockHeaderTabs.openForm(formId, icon, label);\r\n\t}\r\n\ttoggleSplitScreenMode() {\r\n\t\tconst isSplitScreenModeEnabled = this.dockHeaderTabs.tabs.length > 0;\r\n\t\tif (isSplitScreenModeEnabled) {\r\n\t\t\tthis.exitSplitscreen();\r\n\t\t} else {\r\n\t\t\tthis.#moveTabs(this.undockHeaderTabs, this.dockHeaderTabs);\r\n\t\t}\r\n\t}\r\n\texitSplitscreen() {\r\n\t\tthis.#moveTabs(this.dockHeaderTabs, this.undockHeaderTabs);\r\n\t}\r\n\t#moveTabs(tabbarFrom: HeaderTabs, tabbarTo: HeaderTabs) {\r\n\t\tconst selectedTab = this.#activeTabbar?.selectedTab;\r\n\t\t[...tabbarFrom.tabs].forEach((tabId, index) => {\r\n\t\t\tthis._moveTab(tabId, tabbarFrom, tabbarTo, index);\r\n\t\t});\r\n\t\tselectedTab && this.updateTabbar(selectedTab, tabbarTo);\r\n\t}\r\n}\r\n", "import type MainWindowCuiLayout from './MainWindowCuiLayout';\r\nimport type { HeaderTab, GHeaderTab } from '../aras/startup/headerTabs';\r\n\r\nconst updateTabs = (\r\n\tsetState: MainWindowCuiLayout['setState'],\r\n\ttype: 'dockTabs' | 'mainTabs'\r\n) => {\r\n\treturn (\r\n\t\tnewTabs: Array,\r\n\t\ttabId: string,\r\n\t\ttabData: Partial\r\n\t) => {\r\n\t\tsetState((state: MainWindowCuiLayout['state']) => {\r\n\t\t\tstate.splitScreen[type] = [...newTabs];\r\n\r\n\t\t\tconst tabRemoved = !newTabs.includes(tabId);\r\n\t\t\tif (tabRemoved) {\r\n\t\t\t\tdelete state.splitScreen.tabs[tabId];\r\n\t\t\t} else {\r\n\t\t\t\tconst resultTabData: HeaderTab & {\r\n\t\t\t\t\tlayout?: GHeaderTab<'CuiLayout'>['layout'];\r\n\t\t\t\t} = {\r\n\t\t\t\t\t...state.splitScreen.tabs[tabId],\r\n\t\t\t\t\t...tabData\r\n\t\t\t\t};\r\n\t\t\t\t// there is could be an instance of CUI Layout and we shouldn't store it in state\r\n\t\t\t\tdelete resultTabData.layout;\r\n\r\n\t\t\t\tstate.splitScreen.tabs[tabId] = resultTabData;\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n};\r\n\r\nexport default (setState: MainWindowCuiLayout['setState']) => {\r\n\treturn {\r\n\t\tupdateDockedTabs: updateTabs(setState, 'dockTabs'),\r\n\t\tupdateUndockedTabs: updateTabs(setState, 'mainTabs'),\r\n\t\tupdateSelectedTabs: (\r\n\t\t\tselectedTabs: MainWindowCuiLayout['state']['splitScreen']['selectedTabs']\r\n\t\t) => {\r\n\t\t\tsetState((state: MainWindowCuiLayout['state']) => {\r\n\t\t\t\tstate.splitScreen.selectedTabs = selectedTabs;\r\n\t\t\t});\r\n\t\t},\r\n\t\tnavigationPanel: {\r\n\t\t\tupdateVisibility: (newState: boolean) => {\r\n\t\t\t\tsetState((state) => {\r\n\t\t\t\t\tstate.navigationPanel.isVisible = newState;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n};\r\n", "import { cuiMethods } from 'cui';\r\nimport type HeaderTabsContainer from '../../mainWindowCuiLayout/HeaderTabsContainer';\r\nimport type MainWindowCuiLayout from '../../mainWindowCuiLayout/MainWindowCuiLayout';\r\n\r\ntype TabsState = MainWindowCuiLayout['state']['splitScreen'];\r\n\r\nconst openStartItems = async (mainLayout: MainWindowCuiLayout) => {\r\n\tconst itemsToOpen: TabsState = aras.evalMethod('selectStartPage');\r\n\tconst { tabsContainer } = mainLayout;\r\n\tif (!tabsContainer) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst { mainTabs, dockTabs, tabs } = itemsToOpen;\r\n\tconst cuiControl = mainLayout.navigationPanel.nav;\r\n\tconst cuiOptions = mainLayout.options;\r\n\tconst openPromises = [...mainTabs, ...dockTabs].map(async (tabId) => {\r\n\t\tconst tabItem = tabs[tabId];\r\n\t\tconst newId = await cuiMethods.openItemHandler(\r\n\t\t\tcuiControl,\r\n\t\t\tcuiOptions,\r\n\t\t\ttabItem\r\n\t\t);\r\n\t\treturn { [tabId]: newId };\r\n\t});\r\n\tconst newIds = await Promise.allSettled(openPromises);\r\n\tconst oldIdToNewIdMap = newIds.reduce((acc, result) => {\r\n\t\tconst newIdToOldId = result.status === 'fulfilled' ? result.value : null;\r\n\r\n\t\treturn { ...acc, ...newIdToOldId };\r\n\t}, {});\r\n\tconst updatedTabsState = getUpdatedTabsState(itemsToOpen, oldIdToNewIdMap);\r\n\r\n\tawait updateTabsInState(updatedTabsState, tabsContainer.undockHeaderTabs);\r\n\tupdateTabsDockStateAndOrder(updatedTabsState, tabsContainer);\r\n\tupdateSelectedTabs(updatedTabsState, tabsContainer);\r\n};\r\n\r\nconst getUpdatedTabsState = (\r\n\toldTabsData: TabsState,\r\n\toldIdToNewIdMap: Record\r\n): TabsState => {\r\n\tconst { dockTabs, mainTabs, selectedTabs, tabs } = oldTabsData;\r\n\tconst newDockTabs = dockTabs.map((tabId) => oldIdToNewIdMap[tabId]);\r\n\tconst newMainTabs = mainTabs.map((tabId) => oldIdToNewIdMap[tabId]);\r\n\tconst newSelectedTabs = selectedTabs.map((tabId) => oldIdToNewIdMap[tabId]);\r\n\tconst newTabs = Object.entries(tabs).reduce((acc, [tabId, tab]) => {\r\n\t\tconst newTabId = oldIdToNewIdMap[tabId];\r\n\t\tconst parentTab = tab.parentTab ? oldIdToNewIdMap[tab.parentTab] : null;\r\n\r\n\t\treturn {\r\n\t\t\t...acc,\r\n\t\t\t[newTabId]: { ...tab, parentTab }\r\n\t\t};\r\n\t}, {});\r\n\r\n\treturn {\r\n\t\tdockTabs: newDockTabs,\r\n\t\tmainTabs: newMainTabs,\r\n\t\tselectedTabs: newSelectedTabs,\r\n\t\ttabs: newTabs\r\n\t};\r\n};\r\n\r\nconst updateTabsDockStateAndOrder = (\r\n\tupdatedTabsState: TabsState,\r\n\ttabsContainer: HeaderTabsContainer\r\n) => {\r\n\tconst { dockTabs, mainTabs } = updatedTabsState;\r\n\tconst { undockHeaderTabs } = tabsContainer;\r\n\r\n\tdockTabs.forEach((tabId) => tabsContainer.dockTab(tabId));\r\n\tmainTabs.forEach((tabId, i) => {\r\n\t\tconst tabWasSelected = undockHeaderTabs.selectedTab === tabId;\r\n\t\tconst data = undockHeaderTabs.ejectTab(tabId);\r\n\t\tdata && undockHeaderTabs.addTab(tabId, data, i);\r\n\t\ttabWasSelected && undockHeaderTabs.selectTab(tabId);\r\n\t});\r\n};\r\n\r\nconst updateTabsInState = (\r\n\tupdatedTabsState: TabsState,\r\n\theaderTabs: HeaderTabsContainer['undockHeaderTabs']\r\n) => {\r\n\tconst { dockTabs, mainTabs, tabs } = updatedTabsState;\r\n\r\n\treturn Promise.allSettled([\r\n\t\t...dockTabs.map((id) => headerTabs.setTabContent(id, tabs[id])),\r\n\t\t...mainTabs.map((id) => headerTabs.setTabContent(id, tabs[id]))\r\n\t]);\r\n};\r\n\r\nconst updateSelectedTabs = (\r\n\tupdatedTabsState: TabsState,\r\n\ttabsContainer: HeaderTabsContainer\r\n) => {\r\n\tconst { dockHeaderTabs, undockHeaderTabs } = tabsContainer;\r\n\tupdatedTabsState.selectedTabs.forEach((tabId) => {\r\n\t\tconst isDocked = tabsContainer.isDockedTab(tabId);\r\n\t\tconst headerTabs = isDocked ? dockHeaderTabs : undockHeaderTabs;\r\n\t\tconst tabExists = headerTabs.tabs.includes(tabId);\r\n\t\ttabExists && headerTabs.selectTab(tabId);\r\n\t});\r\n};\r\n\r\nexport { openStartItems };\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport '../../components/nav/navEditor';\r\nimport { CuiLayout } from 'cui';\r\nimport { bind, wire } from 'hyperhtml';\r\nimport { getResource } from 'core';\r\nimport applyNavChanges from './navDataConverter';\r\nimport tocEditorCuiActions from './tocEditorCuiLayoutActions';\r\nimport { getFormChange, getFormData } from './formDataConverter';\r\nimport renderViewAs from './viewAs';\r\nimport saveTOC from './saveTOC';\r\nimport 'components';\r\nimport { notify, odataFetch, xml } from 'core';\r\n\r\nconst notifyTOCSaving = (): void => {\r\n\tconst successMessage = getResource('toc_editor.toc_saved');\r\n\tnotify(successMessage, { type: 'success' });\r\n\twindow.mainLayout.observer.notify('UpdateTOC');\r\n};\r\n\r\nexport default class TocEditorCuiLayout extends CuiLayout {\r\n\tactions = tocEditorCuiActions(this.setState.bind(this));\r\n\tinitialState = {\r\n\t\tchanges: {},\r\n\t\tviewAs: null,\r\n\t\tdefaultLanguageCode: 'en',\r\n\t\tlanguages: [{ code: 'en', name: 'English' }],\r\n\t\tselectedSortingType: '',\r\n\t\tsortingType: '',\r\n\t\tsortingTypesList: [],\r\n\t\tselectedId: '',\r\n\t\tnextToSelectedId: '',\r\n\t\tprevToSelectedId: '',\r\n\t\ttocData: new Map()\r\n\t};\r\n\r\n\tasync init() {\r\n\t\tconst contentsTitle = getResource('common.contents');\r\n\t\tconst header = wire()`\r\n\t\t\t
\r\n\t\t`;\r\n\t\tconst nav = wire()`\r\n\t\t\t\r\n\t\t`;\r\n\t\tnav.on('click', (key) => this.actions.selectItem(key));\r\n\t\tnav.on('dropitem', (_, event) => this.actions.dropItem(event.detail));\r\n\t\tconst formHeader = wire()`\r\n\t\t\t
\r\n\t\t`;\r\n\t\tconst formView = wire()`\r\n\t\t\t\r\n\t\t`;\r\n\t\tconst spinner = wire()`\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t`;\r\n\t\tconst viewAsForm = this._renderViewAsForm(this);\r\n\r\n\t\tconst onTitleClick = () => this.actions.selectItem('');\r\n\t\tbind(this.dom)`\r\n\t\t\t
\r\n\t\t\t\t${header}\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t${contentsTitle}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t${nav}\r\n\t\t\t\t\t\t${viewAsForm}\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t${formHeader}\r\n\t\t\t\t\t\t${formView}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t${spinner}\r\n\t\t\t
\r\n\t\t`;\r\n\r\n\t\tthis.dom = header;\r\n\t\tthis.nav = nav;\r\n\t\tthis.formHeader = formHeader;\r\n\t\tthis.formView = formView;\r\n\t\tthis.formView.addEventListener('fieldchange', (e) => {\r\n\t\t\tconst detail = e.detail;\r\n\t\t\tif (!detail) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst state = this.state;\r\n\t\t\tconst change = getFormChange(this.formView, state, detail);\r\n\t\t\tif (!change) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst { changes, selectedId, tocData } = state;\r\n\t\t\tif (!selectedId) {\r\n\t\t\t\tconst { sortingType } = change;\r\n\t\t\t\tthis.actions.setSelectedSortingType(sortingType);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst relshipProperties = [\r\n\t\t\t\t'role@aras.id',\r\n\t\t\t\t'role@aras.keyed_name',\r\n\t\t\t\t'sort_order'\r\n\t\t\t];\r\n\t\t\tconst changedProperties = Object.keys(change);\r\n\t\t\tconst relshipChanged = relshipProperties.some((property) =>\r\n\t\t\t\tchangedProperties.includes(property)\r\n\t\t\t);\r\n\t\t\tconst relshipItem = {\r\n\t\t\t\t...tocData.get(selectedId),\r\n\t\t\t\t...changes[selectedId]\r\n\t\t\t};\r\n\t\t\tconst id = relshipChanged ? relshipItem.id : relshipItem.related_id;\r\n\t\t\tthis.actions.editItem(id, change);\r\n\t\t});\r\n\r\n\t\taras.browserHelper.toggleSpinner(document, true, 'toc_editor_spinner');\r\n\r\n\t\ttry {\r\n\t\t\tawait Promise.all([\r\n\t\t\t\tthis._initTOC(nav),\r\n\t\t\t\tthis._getSortPreferences(),\r\n\t\t\t\tsuper.init()\r\n\t\t\t]);\r\n\r\n\t\t\tthis._initLanguageData();\r\n\t\t\tthis._registerTocEditorHandlers();\r\n\t\t} finally {\r\n\t\t\taras.browserHelper.toggleSpinner(document, false, 'toc_editor_spinner');\r\n\t\t}\r\n\t}\r\n\r\n\tupdateLayout(oldProps, oldState) {\r\n\t\tconst {\r\n\t\t\tchanges: oldChanges,\r\n\t\t\tselectedId: oldSelectedId,\r\n\t\t\ttocData: oldTocData,\r\n\t\t\tviewAs: oldViewAs\r\n\t\t} = oldState;\r\n\t\tconst { changes, selectedId, tocData, viewAs } = this.state;\r\n\t\tconst data = this._applyDataChanges();\r\n\t\tconst hasNewChanegs = oldChanges !== changes || oldTocData !== tocData;\r\n\t\tif (hasNewChanegs) {\r\n\t\t\tapplyNavChanges(this.nav, data);\r\n\t\t}\r\n\r\n\t\tconst newItemSelected = oldSelectedId !== selectedId;\r\n\t\tif (newItemSelected) {\r\n\t\t\tthis._selectItem(data);\r\n\t\t}\r\n\r\n\t\tconst viewAsChanged = oldViewAs !== viewAs;\r\n\t\tif (hasNewChanegs || newItemSelected || viewAsChanged) {\r\n\t\t\tthis._renderForm(data);\r\n\t\t}\r\n\r\n\t\tif (viewAsChanged) {\r\n\t\t\tthis.nav.dragOn = !viewAs;\r\n\t\t}\r\n\r\n\t\tthis._renderViewAsForm(this);\r\n\t}\r\n\r\n\tasync saveTOC(): Promise {\r\n\t\tconst tocData = this._applyDataChanges();\r\n\t\tconst tocEditorSaved = await saveTOC(this.state, tocData);\r\n\t\tif (tocEditorSaved) {\r\n\t\t\tnotifyTOCSaving();\r\n\t\t}\r\n\r\n\t\treturn tocEditorSaved;\r\n\t}\r\n\r\n\t_selectItem(data) {\r\n\t\tconst { changes, selectedId } = this.state;\r\n\r\n\t\tthis.nav.select(selectedId);\r\n\r\n\t\tconst selectedItem = data.get(selectedId);\r\n\t\tif (!selectedItem) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst isNewItem = selectedItem['@action'] === 'add';\r\n\t\tif (!isNewItem) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst selectedRelatedId = selectedItem.related_id;\r\n\t\tconst selectedRelatedItem = changes[selectedRelatedId];\r\n\t\tconst selectedItemParentMenu = selectedRelatedItem['parent_menu@aras.id'];\r\n\t\tconst itemToExpand = [...data.values()].find(\r\n\t\t\t(el) => el.related_id === selectedItemParentMenu\r\n\t\t);\r\n\r\n\t\tif (itemToExpand) {\r\n\t\t\tthis.nav.expand(itemToExpand.id, true);\r\n\t\t}\r\n\t}\r\n\r\n\t_applyDataChanges() {\r\n\t\tconst { changes, tocData } = this.state;\r\n\t\tconst changeEntries = Object.entries(changes);\r\n\t\tif (changeEntries.length === 0) {\r\n\t\t\treturn tocData;\r\n\t\t}\r\n\r\n\t\tconst newData = new Map([...tocData]);\r\n\t\tfor (const [id, change] of changeEntries) {\r\n\t\t\tconst oldItem = tocData.get(id);\r\n\t\t\tif (!oldItem) {\r\n\t\t\t\tnewData.set(id, change);\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tnewData.set(id, { ...oldItem, ...change });\r\n\t\t}\r\n\r\n\t\treturn newData;\r\n\t}\r\n\r\n\t_buildDataForToc(rawData) {\r\n\t\treturn rawData.reduce((acc, relship) => {\r\n\t\t\tconst { id, related_id: relatedItem } = relship;\r\n\r\n\t\t\tdelete relatedItem['label@aras.lang'];\r\n\t\t\tif (relatedItem['@odata.type'] === '#CommandBarButton') {\r\n\t\t\t\tdelete relatedItem['parent_menu'];\r\n\t\t\t}\r\n\r\n\t\t\tacc.set(relatedItem.id, {\r\n\t\t\t\t...relatedItem,\r\n\t\t\t\tadditional_data: JSON.parse(relatedItem.additional_data)\r\n\t\t\t});\r\n\t\t\tacc.set(id, {\r\n\t\t\t\t...relship,\r\n\t\t\t\t'@odata.type': '#CommandBarSectionItem',\r\n\t\t\t\trelated_id: relatedItem.id\r\n\t\t\t});\r\n\t\t\treturn acc;\r\n\t\t}, new Map());\r\n\t}\r\n\r\n\tasync _getSortingTypesList() {\r\n\t\tconst list = await aras.MetadataCacheJson.GetList([\r\n\t\t\t'8D88E35D2B3C4E98AD954767736F724F'\r\n\t\t]);\r\n\t\tconst sortingTypeTable = list?.[0]?.value?.[0];\r\n\t\tconst sortingTypeList = sortingTypeTable?.Value.map(({ label, value }) => ({\r\n\t\t\tlabel,\r\n\t\t\tvalue\r\n\t\t}));\r\n\t\treturn sortingTypeList;\r\n\t}\r\n\r\n\tasync _getCurrentSortingType() {\r\n\t\tconst worldPreferenceId = '507A16AA36F94513AD7EC1F948B5B48F';\r\n\t\tconst currentSortingTypeUrl = `Preference('${worldPreferenceId}')/Core_GlobalLayout('DB4652A5C55D4EB38F39E5C0602CEC48')/core_toc_sorting_type`;\r\n\t\tconst { value: currentSortingType } = await odataFetch(\r\n\t\t\tcurrentSortingTypeUrl\r\n\t\t);\r\n\t\treturn currentSortingType;\r\n\t}\r\n\r\n\tasync _getSortPreferences() {\r\n\t\tconst currentSortingTypePromise = this._getCurrentSortingType();\r\n\t\tconst sortingTypesListPromise = this._getSortingTypesList();\r\n\t\tconst promises = [currentSortingTypePromise, sortingTypesListPromise];\r\n\t\tconst [sortingType = '', sortingTypesList = []] = await Promise.all(\r\n\t\t\tpromises\r\n\t\t);\r\n\t\tconst { setSelectedSortingType, setSortingType, setSortingTypesList } =\r\n\t\t\tthis.actions;\r\n\t\tsetSelectedSortingType(sortingType);\r\n\t\tsetSortingType(sortingType);\r\n\t\tsetSortingTypesList(sortingTypesList);\r\n\t}\r\n\r\n\tasync _fetchTOCData() {\r\n\t\tconst odataFilter = `action eq 'Add' and source_id/location/name eq 'TOC'`;\r\n\t\tconst odataRelatedSelect = `id,image,name,label,parent_menu,additional_data,command_alias,on_click_handler`;\r\n\t\tconst requestURL = `\r\n\t\t\tCommandBarSectionItem?\r\n\t\t\t$select=id,role,sort_order,source_id&\r\n\t\t\t$orderby=sort_order&\r\n\t\t\t$filter=${odataFilter}&\r\n\t\t\t$expand=related_id($select=${odataRelatedSelect};lang=*)\r\n\t\t`;\r\n\t\tconst data = await odataFetch(requestURL);\r\n\r\n\t\treturn this._buildDataForToc(data.value);\r\n\t}\r\n\r\n\tasync _fetchTOCDataForIdentity() {\r\n\t\tconst requestURL = `method.cui_GetTocForIdentityInODATAForm`;\r\n\t\tconst headers = {};\r\n\t\tconst { viewAs } = this.state;\r\n\t\tif (viewAs.language) {\r\n\t\t\tconst selectedLanguage = viewAs.prevLanguages.find(\r\n\t\t\t\t(lang) => lang.name === viewAs.language.label\r\n\t\t\t);\r\n\t\t\theaders['Accept-Language'] = selectedLanguage.code;\r\n\t\t}\r\n\t\tconst data = await odataFetch(requestURL, {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders,\r\n\t\t\tbody: JSON.stringify({\r\n\t\t\t\tidentity: viewAs.identity.value\r\n\t\t\t})\r\n\t\t});\r\n\r\n\t\treturn this._buildDataForToc(data.value);\r\n\t}\r\n\r\n\tasync _updateTocDataForIdentity() {\r\n\t\tconst tocData = await this._fetchTOCDataForIdentity();\r\n\t\tthis.setState((state) => {\r\n\t\t\tstate.tocData = tocData;\r\n\t\t});\r\n\t}\r\n\r\n\tasync _initTOC() {\r\n\t\tconst tocData = await this._fetchTOCData();\r\n\t\tthis.setState((state) => {\r\n\t\t\tstate.changes = {};\r\n\t\t\tstate.tocData = tocData;\r\n\t\t});\r\n\t\tif (!tocData.has(this.state.selectedId)) {\r\n\t\t\tthis.actions.selectItem('');\r\n\t\t}\r\n\t}\r\n\t_renderForm(stateData) {\r\n\t\tconst formData = getFormData(stateData, this.state);\r\n\t\tif (!formData) {\r\n\t\t\tbind(this.formHeader)``;\r\n\t\t\tthis.formView.order = [];\r\n\t\t\tthis.formView.render();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst { data, image, label, metadata, order } = formData;\r\n\t\tbind(this.formHeader)`\r\n\t\t\t\r\n\t\t\t${label}\r\n\t\t`;\r\n\r\n\t\tthis.formView.metadata = metadata;\r\n\t\tthis.formView.data = data;\r\n\t\tthis.formView.order = order;\r\n\t\tthis.formView.reset();\r\n\t}\r\n\r\n\t_renderViewAsForm() {\r\n\t\tconst formChangeHandler = async () => {\r\n\t\t\taras.browserHelper.toggleSpinner(document, true, 'toc_editor_spinner');\r\n\r\n\t\t\ttry {\r\n\t\t\t\tawait this._updateTocDataForIdentity();\r\n\t\t\t} finally {\r\n\t\t\t\taras.browserHelper.toggleSpinner(document, false, 'toc_editor_spinner');\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn renderViewAs(this, formChangeHandler);\r\n\t}\r\n\r\n\t_initLanguageData() {\r\n\t\tthis.setState((state) => {\r\n\t\t\tstate.defaultLanguageCode = aras.getSessionContextLanguageCode();\r\n\t\t\tstate.languages = xml\r\n\t\t\t\t.selectNodes(aras.getLanguagesResultNd(), 'Item[@type=\"Language\"]')\r\n\t\t\t\t.map((language) => {\r\n\t\t\t\t\tconst codePropertyNode = xml.selectSingleNode(language, 'code');\r\n\t\t\t\t\tconst code = codePropertyNode?.text;\r\n\t\t\t\t\tconst namePropertyNode = xml.selectSingleNode(language, 'name');\r\n\t\t\t\t\tconst name = namePropertyNode?.text;\r\n\t\t\t\t\treturn { code, name };\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t_registerTocEditorHandlers() {\r\n\t\tthis.observer.subscribe(async (event) => {\r\n\t\t\tif (event !== 'reinitTOCEditor') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst initTocPromise = this._initTOC(this.nav);\r\n\t\t\tconst preferencesPromise = this._getSortPreferences();\r\n\t\t\tawait Promise.all([initTocPromise, preferencesPromise]);\r\n\t\t});\r\n\t}\r\n}\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nconst sortBySortOrder = (dataMap, children) => {\r\n\tchildren.forEach((id) => {\r\n\t\tconst { children } = dataMap.get(id);\r\n\t\tif (children?.length) {\r\n\t\t\tsortBySortOrder(dataMap, children);\r\n\t\t}\r\n\t});\r\n\r\n\tchildren.sort((firstKey, secondKey) => {\r\n\t\tconst firstItem = dataMap.get(firstKey);\r\n\t\tconst secondItem = dataMap.get(secondKey);\r\n\r\n\t\treturn firstItem.sort_order - secondItem.sort_order;\r\n\t});\r\n};\r\n\r\nconst createNavDataStore = (data) => {\r\n\tconst roots = new Set();\r\n\tconst dataMap = new Map();\r\n\tconst tocItems = [];\r\n\tconst levels = {};\r\n\r\n\tdata.forEach((item, id) => {\r\n\t\tif (item['@odata.type'] !== '#CommandBarSectionItem') {\r\n\t\t\tdataMap.set(id, item);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst { related_id: relatedId } = item;\r\n\t\tconst relatedItem = data.get(relatedId);\r\n\t\tconst { 'parent_menu@aras.id': parentId } = relatedItem;\r\n\r\n\t\tif (parentId) {\r\n\t\t\tconst level = (levels[parentId] ||= []);\r\n\t\t\tlevel.push(id);\r\n\t\t} else {\r\n\t\t\troots.add(id);\r\n\t\t}\r\n\r\n\t\tconst tocItem = {\r\n\t\t\t...item\r\n\t\t};\r\n\t\tif (relatedItem['@odata.type'] === '#CommandBarMenu') {\r\n\t\t\ttocItem.children = [];\r\n\t\t}\r\n\r\n\t\ttocItems.push(tocItem);\r\n\t\tdataMap.set(id, tocItem);\r\n\t});\r\n\r\n\tObject.entries(levels).forEach(([parentId, children]) => {\r\n\t\ttocItems\r\n\t\t\t.filter(({ related_id: relatedId }) => {\r\n\t\t\t\treturn relatedId === parentId;\r\n\t\t\t})\r\n\t\t\t.forEach((item) => {\r\n\t\t\t\titem.children = children;\r\n\t\t\t});\r\n\t});\r\n\r\n\treturn { roots, dataMap };\r\n};\r\n\r\nexport default (nav, data) => {\r\n\tconst dataStore = createNavDataStore(data);\r\n\tconst { dataMap, roots } = dataStore;\r\n\tconst rootsArr = [...roots];\r\n\tsortBySortOrder(dataMap, rootsArr);\r\n\tnav.dataStore.items = dataMap;\r\n\tnav.dataStore.roots = new Set(rootsArr);\r\n\treturn nav.render();\r\n};\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { itemType } from 'metadata';\r\n\r\nconst tocMenuPrefix = 'com.aras.innovator.cui_default.toc';\r\nconst tocCommandBarSectionId = '0AEAF671F8E548C494CCEC8E13F99562';\r\nconst sortOrderStep = 128;\r\nconst sortOrderForDeleted = Infinity;\r\nconst getItemWithChanges = (itemId, state) => {\r\n\tconst { tocData, changes } = state;\r\n\tconst item = tocData.get(itemId);\r\n\tconst itemChanges = changes[itemId];\r\n\treturn { ...item, ...itemChanges };\r\n};\r\nconst getChildrenWithChanges = (state, parentId) => {\r\n\tconst { tocData, changes } = state;\r\n\tconst newData = new Map([...tocData]);\r\n\tfor (const [id, change] of Object.entries(changes)) {\r\n\t\tconst oldItem = tocData.get(id);\r\n\t\tif (!oldItem) {\r\n\t\t\tnewData.set(id, change);\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tnewData.set(id, { ...oldItem, ...change });\r\n\t}\r\n\r\n\tconst children = [];\r\n\tnewData.forEach((relshipItem) => {\r\n\t\tif (\r\n\t\t\trelshipItem['@odata.type'] !== '#CommandBarSectionItem' ||\r\n\t\t\trelshipItem['@action'] === 'delete'\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst relatedId = relshipItem.related_id;\r\n\t\tconst relatedItem = newData.get(relatedId);\r\n\t\tconst isChild = relatedItem['parent_menu@aras.id'] === parentId;\r\n\t\tif (!isChild) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst changedRelship = newData.get(relshipItem.id);\r\n\t\tchildren.push(changedRelship);\r\n\t});\r\n\r\n\tchildren.sort(\r\n\t\t(firstItem, secondItem) => firstItem.sort_order - secondItem.sort_order\r\n\t);\r\n\r\n\treturn children;\r\n};\r\n\r\nconst addItemChanges = (id, itemChanges, state) => {\r\n\tconst existingChange = state.changes[id];\r\n\tif (existingChange) {\r\n\t\tstate.changes[id] = {\r\n\t\t\t...existingChange,\r\n\t\t\t...itemChanges\r\n\t\t};\r\n\t} else {\r\n\t\tstate.changes[id] = {\r\n\t\t\t'@action': 'edit',\r\n\t\t\t...itemChanges\r\n\t\t};\r\n\t}\r\n\r\n\tconst currentItemChanges = state.changes[id];\r\n\tif (currentItemChanges['@action'] !== 'edit') {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst originalItem = state.tocData.get(id);\r\n\tconst changes = Object.entries(currentItemChanges);\r\n\tconst wasItemResetToInitialState = !changes.some(\r\n\t\t([propName, changedValue]) => {\r\n\t\t\tif (propName === '@action' || originalItem[propName] === changedValue) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\t);\r\n\r\n\tif (wasItemResetToInitialState) {\r\n\t\tdelete state.changes[id];\r\n\t}\r\n};\r\n\r\nconst createRelatedItem = (props) => {\r\n\tconst commandBarId = aras.generateNewGUID();\r\n\tconst commandBarName = [tocMenuPrefix];\r\n\tconst itemTypeId = props.additional_data?.itemTypeId;\r\n\tif (itemTypeId) {\r\n\t\tconst itemTypeName = itemTypeId ? itemType.getItemTypeName(itemTypeId) : '';\r\n\t\tcommandBarName.push(itemTypeName);\r\n\t}\r\n\tcommandBarName.push(commandBarId);\r\n\r\n\tconst relatedItem = {\r\n\t\t'@action': 'add',\r\n\t\tid: commandBarId,\r\n\t\tname: commandBarName.join('_'),\r\n\t\t...props\r\n\t};\r\n\r\n\treturn relatedItem;\r\n};\r\n\r\nconst setSelectedItem = (value, state) => {\r\n\tconst { prevToSelectedId, nextToSelectedId } = getSelectedButtonNeighbours(\r\n\t\tvalue,\r\n\t\tstate\r\n\t);\r\n\tstate.prevToSelectedId = prevToSelectedId;\r\n\tstate.nextToSelectedId = nextToSelectedId;\r\n\tstate.selectedId = value;\r\n};\r\n\r\nconst getSelectedButtonNeighbours = (selectedId, state) => {\r\n\tif (!selectedId) {\r\n\t\treturn { prevToSelectedId: '', nextToSelectedId: '' };\r\n\t}\r\n\r\n\tconst selectedRelationshipItem = getItemWithChanges(selectedId, state);\r\n\tconst selectedRelatedItem = getItemWithChanges(\r\n\t\tselectedRelationshipItem.related_id,\r\n\t\tstate\r\n\t);\r\n\tconst currentItemFolderId = selectedRelatedItem['parent_menu@aras.id'];\r\n\tconst allItemsOnCurrentlevel = getChildrenWithChanges(\r\n\t\tstate,\r\n\t\tcurrentItemFolderId\r\n\t);\r\n\tconst indexOfCurrentElementInFolder = allItemsOnCurrentlevel.findIndex(\r\n\t\t(item) => item.id === selectedRelationshipItem.id\r\n\t);\r\n\tconst prevToSelectedId =\r\n\t\tallItemsOnCurrentlevel[indexOfCurrentElementInFolder - 1]?.id ?? '';\r\n\tconst nextToSelectedId =\r\n\t\tallItemsOnCurrentlevel[indexOfCurrentElementInFolder + 1]?.id ?? '';\r\n\r\n\treturn { prevToSelectedId, nextToSelectedId };\r\n};\r\n\r\nconst convertButtonToType = (relshipItem, type, state) => {\r\n\tconst relatedId = relshipItem['related_id'];\r\n\tconst relatedItem = getItemWithChanges(relatedId, state);\r\n\tconst relatedChanges = {\r\n\t\t'@action': 'delete'\r\n\t};\r\n\taddItemChanges(relatedId, relatedChanges, state);\r\n\r\n\tconst relatedItemCopy = {\r\n\t\t...relatedItem,\r\n\t\t'@odata.type': type,\r\n\t\t'@action': 'add'\r\n\t};\r\n\tconst propsToClear = ['id', 'name'];\r\n\r\n\tif (type === '#CommandBarButton') {\r\n\t\tpropsToClear.push('parent_menu@aras.id');\r\n\t\tpropsToClear.push('parent_menu@aras.keyed_name');\r\n\t}\r\n\r\n\tpropsToClear.forEach((prop) => delete relatedItemCopy[prop]);\r\n\r\n\tconst newRelatedItem = createRelatedItem(relatedItemCopy);\r\n\taddItemChanges(newRelatedItem.id, newRelatedItem, state);\r\n\r\n\taddItemChanges(relshipItem.id, { related_id: newRelatedItem.id }, state);\r\n};\r\n\r\nconst normalizeSortOrders = (treeLevelItems, state) => {\r\n\ttreeLevelItems.forEach((item, index) => {\r\n\t\tconst { id } = item;\r\n\t\tconst newSortOrder = (index + 1) * sortOrderStep;\r\n\r\n\t\taddItemChanges(id, { sort_order: newSortOrder }, state);\r\n\t});\r\n};\r\n\r\nconst getRelatedItemTypeName = (state) => {\r\n\tconst selectedId = state.selectedId;\r\n\tif (!selectedId) {\r\n\t\treturn '#CommandBarButton';\r\n\t}\r\n\r\n\tconst selectedRelationshipItem = getItemWithChanges(selectedId, state);\r\n\tconst selectedRelatedId = selectedRelationshipItem.related_id;\r\n\tconst selectedRelatedItem = getItemWithChanges(selectedRelatedId, state);\r\n\tconst isRootButtonSelected =\r\n\t\tselectedRelatedItem['@odata.type'] === '#CommandBarButton';\r\n\tconst itemTypeName = isRootButtonSelected\r\n\t\t? '#CommandBarButton'\r\n\t\t: '#CommandBarMenuButton';\r\n\r\n\treturn itemTypeName;\r\n};\r\n\r\nexport default (setState) => {\r\n\treturn {\r\n\t\teditItem: (id, itemChanges) => {\r\n\t\t\tsetState((state) => addItemChanges(id, itemChanges, state));\r\n\t\t},\r\n\t\tdeleteItem: (id) => {\r\n\t\t\tsetState((state) => {\r\n\t\t\t\tconst deletedItem = getItemWithChanges(id, state);\r\n\t\t\t\tconst isNewItem = deletedItem['@action'] === 'add';\r\n\t\t\t\tconst relatedId = deletedItem.related_id;\r\n\t\t\t\tconst relatedItem = getItemWithChanges(relatedId, state);\r\n\r\n\t\t\t\tconst deletedParentId = relatedItem['parent_menu@aras.id'];\r\n\t\t\t\tconst indexOfDeletedItem = getChildrenWithChanges(\r\n\t\t\t\t\tstate,\r\n\t\t\t\t\tdeletedParentId\r\n\t\t\t\t).findIndex((item) => item.id === id);\r\n\r\n\t\t\t\tif (isNewItem) {\r\n\t\t\t\t\tdelete state.changes[id];\r\n\t\t\t\t\tdelete state.changes[relatedId];\r\n\t\t\t\t\tsetSelectedItem('', state);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst relshipChanges = {\r\n\t\t\t\t\t\t'@action': 'delete',\r\n\t\t\t\t\t\tsort_order: sortOrderForDeleted\r\n\t\t\t\t\t};\r\n\t\t\t\t\taddItemChanges(id, relshipChanges, state);\r\n\r\n\t\t\t\t\tconst relatedChanges = {\r\n\t\t\t\t\t\t'@action': 'delete'\r\n\t\t\t\t\t};\r\n\t\t\t\t\taddItemChanges(relatedId, relatedChanges, state);\r\n\t\t\t\t}\r\n\t\t\t\tconst childrenOfParent = getChildrenWithChanges(state, deletedParentId);\r\n\t\t\t\tconst isFolderDeleted =\r\n\t\t\t\t\trelatedItem['@odata.type'] === '#CommandBarMenu';\r\n\t\t\t\tif (isFolderDeleted) {\r\n\t\t\t\t\tconst childrenOfDeletedFolder = getChildrenWithChanges(\r\n\t\t\t\t\t\tstate,\r\n\t\t\t\t\t\trelatedId\r\n\t\t\t\t\t);\r\n\t\t\t\t\tchildrenOfParent.splice(\r\n\t\t\t\t\t\tindexOfDeletedItem,\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t...childrenOfDeletedFolder\r\n\t\t\t\t\t);\r\n\t\t\t\t\tnormalizeSortOrders(childrenOfParent, state);\r\n\r\n\t\t\t\t\tchildrenOfDeletedFolder.forEach((relship) => {\r\n\t\t\t\t\t\tconst relatedId = relship['related_id'];\r\n\t\t\t\t\t\tconst moveToRoot = !deletedParentId;\r\n\t\t\t\t\t\tif (moveToRoot) {\r\n\t\t\t\t\t\t\tconst relatedItem = getItemWithChanges(relatedId, state);\r\n\t\t\t\t\t\t\tconst convertToButton =\r\n\t\t\t\t\t\t\t\trelatedItem['@odata.type'] !== '#CommandBarMenu';\r\n\t\t\t\t\t\t\tif (convertToButton) {\r\n\t\t\t\t\t\t\t\tconvertButtonToType(relship, '#CommandBarButton', state);\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tconst relatedChanges = {\r\n\t\t\t\t\t\t\t'parent_menu@aras.id': deletedParentId\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\taddItemChanges(relatedId, relatedChanges, state);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tchildrenOfParent.forEach((child) => {\r\n\t\t\t\t\t\tconst { id, sort_order: sortOrder } = child;\r\n\t\t\t\t\t\tif (sortOrder > deletedItem['sort_order']) {\r\n\t\t\t\t\t\t\tconst change = { sort_order: sortOrder - sortOrderStep };\r\n\t\t\t\t\t\t\taddItemChanges(id, change, state);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\tdiscardChanges: () => {\r\n\t\t\tsetState((state) => {\r\n\t\t\t\tstate.changes = {};\r\n\t\t\t\tstate.selectedSortingType = state.sortingType;\r\n\t\t\t\tsetSelectedItem('', state);\r\n\t\t\t});\r\n\t\t},\r\n\t\taddRelationshipItem: (props) => {\r\n\t\t\tconst relationshipItem = {\r\n\t\t\t\taction: 'Add',\r\n\t\t\t\t'@action': 'add',\r\n\t\t\t\t'@odata.type': '#CommandBarSectionItem',\r\n\t\t\t\tid: aras.generateNewGUID(),\r\n\t\t\t\tsource_id: tocCommandBarSectionId,\r\n\t\t\t\t...props\r\n\t\t\t};\r\n\t\t\tsetState((state) => {\r\n\t\t\t\tconst { id, related_id: relatedId } = relationshipItem;\r\n\t\t\t\tstate.changes[id] = relationshipItem;\r\n\t\t\t\tconst { selectedId } = state;\r\n\t\t\t\tif (!selectedId) {\r\n\t\t\t\t\tconst roots = getChildrenWithChanges(state);\r\n\t\t\t\t\trelationshipItem.sort_order = roots.length * sortOrderStep;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst relatedItem = state.changes[relatedId];\r\n\t\t\t\tconst selectedRelationshipItem = getItemWithChanges(selectedId, state);\r\n\t\t\t\tconst { related_id: selectedRelatedId } = selectedRelationshipItem;\r\n\t\t\t\tconst selectedRelatedItem = getItemWithChanges(\r\n\t\t\t\t\tselectedRelatedId,\r\n\t\t\t\t\tstate\r\n\t\t\t\t);\r\n\t\t\t\tif (selectedRelatedItem['@odata.type'] === '#CommandBarMenu') {\r\n\t\t\t\t\tconst { id: parentId } = selectedRelatedItem;\r\n\t\t\t\t\trelatedItem['parent_menu@aras.id'] = parentId;\r\n\t\t\t\t\tconst children = getChildrenWithChanges(state, parentId);\r\n\t\t\t\t\trelationshipItem.sort_order = children.length * sortOrderStep;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst parentId = selectedRelatedItem['parent_menu@aras.id'];\r\n\t\t\t\t\tconst children = getChildrenWithChanges(state, parentId);\r\n\r\n\t\t\t\t\tif (selectedRelationshipItem['@action'] === 'delete') {\r\n\t\t\t\t\t\trelationshipItem.sort_order = (children.length + 1) * sortOrderStep;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst { sort_order: selectedSortOrder } = selectedRelationshipItem;\r\n\t\t\t\t\t\trelationshipItem.sort_order = selectedSortOrder + sortOrderStep;\r\n\t\t\t\t\t\tchildren.forEach((relship) => {\r\n\t\t\t\t\t\t\tconst { id, sort_order: sortOrder } = relship;\r\n\t\t\t\t\t\t\tif (sortOrder > selectedSortOrder) {\r\n\t\t\t\t\t\t\t\tconst change = { sort_order: sortOrder + sortOrderStep };\r\n\t\t\t\t\t\t\t\taddItemChanges(id, change, state);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\trelatedItem['parent_menu@aras.id'] = parentId;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn relationshipItem;\r\n\t\t},\r\n\t\taddRelatedItem: (props) => {\r\n\t\t\tconst relatedItem = createRelatedItem(props);\r\n\t\t\tsetState((state) => {\r\n\t\t\t\tconst type = relatedItem['@odata.type'];\r\n\t\t\t\trelatedItem['@odata.type'] = type ?? getRelatedItemTypeName(state);\r\n\t\t\t\tstate.changes[relatedItem.id] = relatedItem;\r\n\t\t\t});\r\n\r\n\t\t\treturn relatedItem;\r\n\t\t},\r\n\t\tselectItem: (id) => {\r\n\t\t\tsetState((state) => {\r\n\t\t\t\tsetSelectedItem(id, state);\r\n\t\t\t});\r\n\t\t},\r\n\t\tsetViewAs: (props) => {\r\n\t\t\tsetState((state) => {\r\n\t\t\t\tconst prevTocData =\r\n\t\t\t\t\tstate.viewAs === null ? state.tocData : state.viewAs.prevTocData;\r\n\t\t\t\tconst prevLanguages = state.viewAs?.prevLanguages ?? state.languages;\r\n\r\n\t\t\t\tstate.languages = prevLanguages.filter(\r\n\t\t\t\t\t(language) => language.code === state.defaultLanguageCode\r\n\t\t\t\t);\r\n\t\t\t\tstate.viewAs = {\r\n\t\t\t\t\t...state.viewAs,\r\n\t\t\t\t\t...props,\r\n\t\t\t\t\tprevTocData,\r\n\t\t\t\t\tprevLanguages\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t},\r\n\t\tresetViewAs: () => {\r\n\t\t\tsetState((state) => {\r\n\t\t\t\tif (state.viewAs !== null) {\r\n\t\t\t\t\tstate.tocData = state.viewAs.prevTocData;\r\n\t\t\t\t\tstate.languages = state.viewAs.prevLanguages;\r\n\t\t\t\t\tstate.viewAs = null;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\tsetSelectedSortingType: (selectedSortingType) => {\r\n\t\t\tsetState((state) => {\r\n\t\t\t\tstate.selectedSortingType = selectedSortingType;\r\n\t\t\t});\r\n\t\t},\r\n\t\tsetSortingType: (sortingType) => {\r\n\t\t\tsetState((state) => {\r\n\t\t\t\tstate.sortingType = sortingType;\r\n\t\t\t});\r\n\t\t},\r\n\t\tsetSortingTypesList: (sortingTypesList) => {\r\n\t\t\tsetState((state) => {\r\n\t\t\t\tstate.sortingTypesList = sortingTypesList;\r\n\t\t\t});\r\n\t\t},\r\n\t\tswapItemSortOrders: (firstItemId, secondItemId) => {\r\n\t\t\tsetState((state) => {\r\n\t\t\t\tconst item = getItemWithChanges(firstItemId, state);\r\n\t\t\t\tconst relatedItemId = item.related_id;\r\n\t\t\t\tconst relatedItem = getItemWithChanges(relatedItemId, state);\r\n\t\t\t\tconst parentMenuId = relatedItem['parent_menu@aras.id'];\r\n\t\t\t\tconst currentLevelItems = getChildrenWithChanges(state, parentMenuId);\r\n\t\t\t\tnormalizeSortOrders(currentLevelItems, state);\r\n\r\n\t\t\t\tconst firstItem = getItemWithChanges(firstItemId, state);\r\n\t\t\t\tconst firstItemSortOrder = firstItem.sort_order;\r\n\r\n\t\t\t\tconst secondItem = getItemWithChanges(secondItemId, state);\r\n\t\t\t\tconst secondItemSortOrder = secondItem.sort_order;\r\n\r\n\t\t\t\taddItemChanges(firstItemId, { sort_order: secondItemSortOrder }, state);\r\n\t\t\t\taddItemChanges(secondItemId, { sort_order: firstItemSortOrder }, state);\r\n\t\t\t\tsetSelectedItem(state.selectedId, state);\r\n\t\t\t});\r\n\t\t},\r\n\t\tdropItem: (parameters) => {\r\n\t\t\tsetState((state) => {\r\n\t\t\t\tconst { itemId, targetParentId, insertPosition } = parameters;\r\n\t\t\t\tconst draggedItem = getItemWithChanges(itemId, state);\r\n\t\t\t\tconst relatedId = draggedItem['related_id'];\r\n\t\t\t\tconst draggedRelatedItem = getItemWithChanges(relatedId, state);\r\n\t\t\t\tconst currentParentId = draggedRelatedItem['parent_menu@aras.id'];\r\n\t\t\t\tconst currentLevelItems = getChildrenWithChanges(\r\n\t\t\t\t\tstate,\r\n\t\t\t\t\tcurrentParentId\r\n\t\t\t\t);\r\n\r\n\t\t\t\tconst currentLevelItemsWithoutDraggedItem = currentLevelItems.filter(\r\n\t\t\t\t\t(item) => item.id !== draggedItem.id\r\n\t\t\t\t);\r\n\t\t\t\tnormalizeSortOrders(currentLevelItemsWithoutDraggedItem, state);\r\n\r\n\t\t\t\tconst parentMenuRelshipItem = getItemWithChanges(targetParentId, state);\r\n\t\t\t\tconst parentMenuId = parentMenuRelshipItem.related_id;\r\n\t\t\t\tconst targetLevelItems = getChildrenWithChanges(state, parentMenuId);\r\n\r\n\t\t\t\tconst targetLevelItemsWithoutDraggedItem = targetLevelItems.filter(\r\n\t\t\t\t\t(item) => item.id !== draggedItem.id\r\n\t\t\t\t);\r\n\t\t\t\ttargetLevelItemsWithoutDraggedItem.splice(\r\n\t\t\t\t\tinsertPosition,\r\n\t\t\t\t\t0,\r\n\t\t\t\t\tdraggedItem\r\n\t\t\t\t);\r\n\t\t\t\tnormalizeSortOrders(targetLevelItemsWithoutDraggedItem, state);\r\n\r\n\t\t\t\taddItemChanges(\r\n\t\t\t\t\tdraggedRelatedItem.id,\r\n\t\t\t\t\t{ 'parent_menu@aras.id': parentMenuId },\r\n\t\t\t\t\tstate\r\n\t\t\t\t);\r\n\r\n\t\t\t\tconst buttonType = draggedRelatedItem['@odata.type'];\r\n\t\t\t\tconst wasButtonMovedToRoot =\r\n\t\t\t\t\t!parentMenuId && buttonType === '#CommandBarMenuButton';\r\n\t\t\t\tif (wasButtonMovedToRoot) {\r\n\t\t\t\t\tconvertButtonToType(draggedItem, '#CommandBarButton', state);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst wasButtonMovedFromRoot =\r\n\t\t\t\t\tparentMenuId && buttonType === '#CommandBarButton';\r\n\t\t\t\tif (wasButtonMovedFromRoot) {\r\n\t\t\t\t\tconvertButtonToType(draggedItem, '#CommandBarMenuButton', state);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n};\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { SvgManager, getResource } from 'core';\r\nimport { getFormMetadata } from './formMetadata';\r\nimport { getFormValues } from './formValues';\r\n\r\nconst images = {\r\n\tfolder: '../images/Folder.svg',\r\n\tform: '../images/Form.svg',\r\n\titemType: '../images/ItemType.svg',\r\n\tpage: '../images/File.svg',\r\n\tsort: '../images/NavContentsOn.svg',\r\n\titem: '../images/DefaultItemType.svg'\r\n};\r\nSvgManager.enqueue(Object.values(images));\r\n\r\nconst generateFormData = (stateData, state, form) => {\r\n\tconst { order } = form;\r\n\tconst metadata = getFormMetadata(stateData, state, order);\r\n\tconst data = getFormValues(stateData, state, order);\r\n\r\n\treturn { ...form, data, metadata };\r\n};\r\n\r\nconst getSortingFormData = () => {\r\n\tconst image = images.sort;\r\n\tconst label = getResource('toc_editor.toc');\r\n\tconst order = ['sort'];\r\n\r\n\treturn {\r\n\t\timage,\r\n\t\tlabel,\r\n\t\torder\r\n\t};\r\n};\r\n\r\nconst getCategoryFormData = () => {\r\n\tconst image = images.folder;\r\n\tconst label = getResource('toc_editor.category');\r\n\tconst order = ['label'];\r\n\r\n\treturn {\r\n\t\timage,\r\n\t\tlabel,\r\n\t\torder\r\n\t};\r\n};\r\n\r\nconst getItemTypeFormData = () => {\r\n\tconst image = images.itemType;\r\n\tconst label = getResource('toc_editor.itemtype');\r\n\tconst order = ['itemType', 'image', 'label', 'access'];\r\n\r\n\treturn {\r\n\t\timage,\r\n\t\tlabel,\r\n\t\torder\r\n\t};\r\n};\r\n\r\nconst getPageDashboardFormData = () => {\r\n\tconst image = images.page;\r\n\tconst label = getResource('toc_editor.page');\r\n\tconst order = ['startPage', 'parameters', 'image', 'label', 'access'];\r\n\r\n\treturn {\r\n\t\timage,\r\n\t\tlabel,\r\n\t\torder\r\n\t};\r\n};\r\n\r\nconst getItemFormData = () => {\r\n\tconst image = images.item;\r\n\tconst label = 'Item';\r\n\tconst order = ['itemType', 'item', 'image', 'label', 'access'];\r\n\r\n\treturn {\r\n\t\timage,\r\n\t\tlabel,\r\n\t\torder\r\n\t};\r\n};\r\n\r\nconst getFormDashboardFormData = () => {\r\n\tconst image = images.form;\r\n\tconst label = getResource('toc_editor.form');\r\n\tconst order = ['form', 'image', 'label', 'access'];\r\n\r\n\treturn {\r\n\t\timage,\r\n\t\tlabel,\r\n\t\torder\r\n\t};\r\n};\r\n\r\nexport const getFormData = (data, state) => {\r\n\tconst { selectedId } = state;\r\n\tif (!selectedId) {\r\n\t\tconst formData = getSortingFormData();\r\n\t\treturn generateFormData(data, state, formData);\r\n\t}\r\n\r\n\tconst relshipItem = data.get(selectedId);\r\n\tif (!relshipItem) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tlet formData = null;\r\n\tconst relatedItem = data.get(relshipItem.related_id) ?? {};\r\n\tconst { '@odata.type': type, additional_data: additionalData } = relatedItem;\r\n\tif (type === '#CommandBarMenu') {\r\n\t\tformData = getCategoryFormData();\r\n\t} else if (additionalData?.itemId !== undefined) {\r\n\t\tformData = getItemFormData();\r\n\t} else if (additionalData?.startPage !== undefined) {\r\n\t\tformData = getPageDashboardFormData();\r\n\t} else if (additionalData?.itemTypeId) {\r\n\t\tformData = getItemTypeFormData();\r\n\t} else if (additionalData?.formId) {\r\n\t\tformData = getFormDashboardFormData();\r\n\t}\r\n\r\n\tif (formData) {\r\n\t\treturn generateFormData(data, state, formData);\r\n\t}\r\n\r\n\treturn formData;\r\n};\r\n\r\nconst getItemChange = (propName, newValue, state) => {\r\n\tconst { itemId, label } = newValue;\r\n\tswitch (propName) {\r\n\t\tcase 'access':\r\n\t\t\treturn {\r\n\t\t\t\t'role@aras.id': itemId,\r\n\t\t\t\t'role@aras.keyed_name': label\r\n\t\t\t};\r\n\t\tcase 'itemType': {\r\n\t\t\tconst additionalData = getAdditionalData(state);\r\n\r\n\t\t\tconst change = {\r\n\t\t\t\tadditional_data: {\r\n\t\t\t\t\t...additionalData,\r\n\t\t\t\t\titemTypeId: itemId\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tconst isItemTypeWasChanged = additionalData.itemTypeId !== itemId;\r\n\t\t\tif (change.additional_data.itemId !== undefined && isItemTypeWasChanged) {\r\n\t\t\t\tchange.additional_data.itemId = null;\r\n\t\t\t}\r\n\r\n\t\t\treturn change;\r\n\t\t}\r\n\t\tcase 'form': {\r\n\t\t\tconst additionalData = getAdditionalData(state);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tadditional_data: {\r\n\t\t\t\t\t...additionalData,\r\n\t\t\t\t\tformId: itemId\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase 'item': {\r\n\t\t\tconst additionalData = getAdditionalData(state);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tadditional_data: {\r\n\t\t\t\t\t...additionalData,\r\n\t\t\t\t\titemId\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\tdefault:\r\n\t\t\treturn null;\r\n\t}\r\n};\r\n\r\nconst getAdditionalData = (state) => {\r\n\tconst { selectedId, tocData, changes } = state;\r\n\tconst relshipItem = tocData.get(selectedId);\r\n\tconst relatedId = relshipItem?.related_id;\r\n\tconst relatedItem = tocData.get(relatedId);\r\n\tconst changedRelatedId = relatedId ?? changes[selectedId].related_id;\r\n\tconst changedRelatedItem = changes[changedRelatedId];\r\n\tconst additionalData = {\r\n\t\t...relatedItem?.additional_data,\r\n\t\t...changedRelatedItem?.additional_data\r\n\t};\r\n\r\n\treturn additionalData;\r\n};\r\n\r\nexport const getFormChange = (form, state, detail) => {\r\n\tconst { newValue, id } = detail;\r\n\tconst type = form.metadata[id]?.type;\r\n\tswitch (type) {\r\n\t\tcase 'multiLingual': {\r\n\t\t\tconst { defaultLanguageCode } = state;\r\n\t\t\treturn Object.entries(newValue).reduce((change, [code, value]) => {\r\n\t\t\t\tif (code === defaultLanguageCode) {\r\n\t\t\t\t\tchange[id] = value;\r\n\t\t\t\t}\r\n\t\t\t\tchange[`${id}@aras.lang.${code}`] = value;\r\n\t\t\t\treturn change;\r\n\t\t\t}, {});\r\n\t\t}\r\n\t\tcase 'item': {\r\n\t\t\treturn getItemChange(id, newValue, state);\r\n\t\t}\r\n\t\tcase 'image': {\r\n\t\t\treturn { image: newValue };\r\n\t\t}\r\n\t\tcase 'select': {\r\n\t\t\treturn { sortingType: newValue };\r\n\t\t}\r\n\t\tcase 'text': {\r\n\t\t\tconst additionalData = getAdditionalData(state);\r\n\r\n\t\t\treturn {\r\n\t\t\t\tadditional_data: {\r\n\t\t\t\t\t...additionalData,\r\n\t\t\t\t\t[id]: newValue\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\tdefault:\r\n\t\t\treturn null;\r\n\t}\r\n};\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { getResource } from 'core';\r\nimport { itemType } from 'metadata';\r\n\r\nconst getAccessFieldMetadata = () => {\r\n\treturn {\r\n\t\ttype: 'item',\r\n\t\titemTypeName: 'Identity',\r\n\t\tlabel: getResource('toc_editor.access'),\r\n\t\trequired: true\r\n\t};\r\n};\r\n\r\nconst getImageFieldMetadata = () => {\r\n\treturn {\r\n\t\ttype: 'image',\r\n\t\tcssClass:\r\n\t\t\t'toc-editor__form-image-field toc-editor__form-image-field_distant',\r\n\t\tlabel: getResource('toc_editor.icon')\r\n\t};\r\n};\r\n\r\nconst getLabelFieldMetadata = (state) => {\r\n\tconst { languages, defaultLanguageCode } = state;\r\n\treturn {\r\n\t\tdefaultLanguageCode,\r\n\t\tlabel: getResource('toc_editor.label'),\r\n\t\tlanguages,\r\n\t\trequired: true,\r\n\t\ttype: 'multiLingual'\r\n\t};\r\n};\r\n\r\nconst getItemTypeFieldMetadata = () => {\r\n\treturn {\r\n\t\titemTypeName: 'ItemType',\r\n\t\tlabel: getResource('toc_editor.itemtype'),\r\n\t\trequired: true,\r\n\t\ttype: 'item'\r\n\t};\r\n};\r\n\r\nconst getFormFieldMetadata = () => {\r\n\treturn {\r\n\t\titemTypeName: 'Form',\r\n\t\tlabel: getResource('toc_editor.form'),\r\n\t\trequired: true,\r\n\t\ttype: 'item'\r\n\t};\r\n};\r\n\r\nconst getSortFieldMetadata = (state) => {\r\n\tconst { sortingTypesList: options = [] } = state;\r\n\treturn {\r\n\t\tlabel: getResource('toc_editor.sort'),\r\n\t\ttype: 'select',\r\n\t\toptions\r\n\t};\r\n};\r\n\r\nconst getStartPageFieldMetadata = () => {\r\n\treturn {\r\n\t\tlabel: getResource('toc_editor.start_page'),\r\n\t\trequired: true,\r\n\t\ttype: 'text'\r\n\t};\r\n};\r\n\r\nconst getPageParametersFieldMetadata = () => {\r\n\treturn {\r\n\t\tlabel: getResource('toc_editor.parameters'),\r\n\t\ttype: 'text'\r\n\t};\r\n};\r\n\r\nconst getItemFieldMetadata = (state, stateData) => {\r\n\tconst { selectedId } = state;\r\n\tconst relshipItem = stateData.get(selectedId);\r\n\tconst relatedItem = stateData.get(relshipItem['related_id']);\r\n\tconst { itemTypeId } = relatedItem['additional_data'];\r\n\tconst itemTypeName = itemType.getItemTypeName(itemTypeId);\r\n\treturn {\r\n\t\titemTypeName,\r\n\t\tlabel: getResource('toc_editor.item'),\r\n\t\trequired: true,\r\n\t\ttype: 'item'\r\n\t};\r\n};\r\n\r\nconst propertyMetadataGenerators = {\r\n\taccess: getAccessFieldMetadata,\r\n\tlabel: getLabelFieldMetadata,\r\n\timage: getImageFieldMetadata,\r\n\titemType: getItemTypeFieldMetadata,\r\n\tstartPage: getStartPageFieldMetadata,\r\n\tparameters: getPageParametersFieldMetadata,\r\n\tform: getFormFieldMetadata,\r\n\tsort: getSortFieldMetadata,\r\n\titem: getItemFieldMetadata\r\n};\r\n\r\nexport const getFormMetadata = (stateData, state, order = []) => {\r\n\tconst { selectedId, viewAs } = state;\r\n\tconst relshipItem = stateData.get(selectedId);\r\n\tconst disabled = viewAs || relshipItem?.['@action'] === 'delete';\r\n\treturn order.reduce((result, property) => {\r\n\t\tconst metadata = propertyMetadataGenerators[property](state, stateData);\r\n\t\tresult[property] = { ...metadata, disabled };\r\n\t\treturn result;\r\n\t}, {});\r\n};\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { itemType } from 'metadata';\r\n\r\nconst getRelshipItem = (stateData, state) => {\r\n\tconst { selectedId } = state;\r\n\treturn stateData.get(selectedId);\r\n};\r\n\r\nconst getRelatedItem = (stateData, state) => {\r\n\tconst { related_id: relatedId } = getRelshipItem(stateData, state);\r\n\treturn stateData.get(relatedId);\r\n};\r\n\r\nconst getAccessValue = (stateData, state) => {\r\n\tconst relshipItem = getRelshipItem(stateData, state);\r\n\tconst { 'role@aras.keyed_name': label } = relshipItem;\r\n\treturn { label };\r\n};\r\n\r\nconst getMultiLingualValue = (stateData, state, property) => {\r\n\tconst { languages } = state;\r\n\tconst relatedItem = getRelatedItem(stateData, state);\r\n\treturn languages.reduce((result, { code }) => {\r\n\t\tresult[code] = relatedItem[`${property}@aras.lang.${code}`];\r\n\t\treturn result;\r\n\t}, {});\r\n};\r\n\r\nconst getImageValue = (stateData, state) => {\r\n\tconst { image } = getRelatedItem(stateData, state);\r\n\treturn image;\r\n};\r\n\r\nconst getItemTypeValue = (stateData, state) => {\r\n\tconst relatedItem = getRelatedItem(stateData, state);\r\n\tconst { additional_data: additionalData } = relatedItem;\r\n\tconst { itemTypeId } = additionalData;\r\n\tconst label = itemType.getItemTypeName(itemTypeId);\r\n\treturn { label };\r\n};\r\n\r\nconst getFormValue = (stateData, state) => {\r\n\tconst relatedItem = getRelatedItem(stateData, state);\r\n\tconst { additional_data: additionalData } = relatedItem;\r\n\tconst { formId } = additionalData;\r\n\tconst label = aras.getKeyedName(formId, 'Form');\r\n\treturn { label };\r\n};\r\n\r\nconst getSortValue = (stateData, state) => {\r\n\tconst { selectedSortingType } = state;\r\n\treturn selectedSortingType;\r\n};\r\n\r\nconst getPageValue = (stateData, state, property) => {\r\n\tconst relatedItem = getRelatedItem(stateData, state);\r\n\tconst { additional_data: additionalData } = relatedItem;\r\n\treturn additionalData[property] ?? '';\r\n};\r\n\r\nconst getItemValue = (stateData, state) => {\r\n\tconst relatedItem = getRelatedItem(stateData, state);\r\n\tconst { additional_data: additionalData } = relatedItem;\r\n\tconst { itemId, itemTypeId } = additionalData;\r\n\tconst itemTypeName = itemType.getItemTypeName(itemTypeId);\r\n\tconst label = aras.getKeyedName(itemId, itemTypeName);\r\n\treturn { label };\r\n};\r\n\r\nconst propertyValueGenerators = {\r\n\taccess: getAccessValue,\r\n\tlabel: (...args) => getMultiLingualValue(...args, 'label'),\r\n\timage: getImageValue,\r\n\titemType: getItemTypeValue,\r\n\tstartPage: getPageValue,\r\n\tparameters: getPageValue,\r\n\tform: getFormValue,\r\n\tsort: getSortValue,\r\n\titem: getItemValue\r\n};\r\n\r\nexport const getFormValues = (stateData, state, order) => {\r\n\treturn order.reduce((result, property) => {\r\n\t\tconst value = propertyValueGenerators[property](stateData, state, property);\r\n\t\tresult[property] = value;\r\n\t\treturn result;\r\n\t}, {});\r\n};\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport Accordion from '../../components/accordion';\r\nimport { itemType } from 'metadata';\r\nimport viewAsAccordionCSS from '../../../styles/less/aras/tocEditorAccordion.less';\r\nimport { getResource } from 'core';\r\nimport { wire } from 'hyperhtml';\r\n\r\nconst viewAsAccordionStylesheet = new CSSStyleSheet();\r\nviewAsAccordionStylesheet.replaceSync(viewAsAccordionCSS);\r\n\r\nclass ViewAsAccordion extends Accordion {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.reversed = true;\r\n\t\tthis.collapsed = true;\r\n\t}\r\n\r\n\tcreated() {\r\n\t\tsuper.created();\r\n\r\n\t\tthis.shadowRoot.adoptedStyleSheets = [\r\n\t\t\t...this.shadowRoot.adoptedStyleSheets,\r\n\t\t\tviewAsAccordionStylesheet\r\n\t\t];\r\n\t\tthis.classList.add('toc-editor__view-as-accordion');\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback();\r\n\r\n\t\tconst header = this.shadowRoot.querySelector('.aras-accordion__header');\r\n\t\theader.addEventListener('click', () => {\r\n\t\t\tthis.collapsed = !this.collapsed;\r\n\t\t});\r\n\t}\r\n}\r\n\r\nconst name = 'aras-accordion-view-as';\r\nif (!customElements.get(name)) {\r\n\tViewAsAccordion.define(name);\r\n}\r\n\r\nexport default async (layout, viewAsChangeHandler) => {\r\n\tconst state = layout.state || {};\r\n\tconst { viewAs } = state;\r\n\tconst formContext = wire(layout, ':view-as-form');\r\n\tconst formChangeHandler = (e) => {\r\n\t\tconst { detail } = e;\r\n\t\tif (!detail) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst { itemId: value, label } = detail.newValue;\r\n\t\tif (!value) {\r\n\t\t\tif (detail.id === 'identity') {\r\n\t\t\t\tlayout.actions.resetViewAs();\r\n\t\t\t} else {\r\n\t\t\t\tlayout.actions.setViewAs({\r\n\t\t\t\t\t[detail.id]: null\r\n\t\t\t\t});\r\n\t\t\t\tviewAsChangeHandler();\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst { viewAs: oldViewAs } = state;\r\n\t\tlayout.actions.setViewAs({\r\n\t\t\t[detail.id]: { value, label }\r\n\t\t});\r\n\r\n\t\tconst hasViewAsChanged = value !== oldViewAs?.[detail.id]?.value;\r\n\t\tif (hasViewAsChanged) {\r\n\t\t\tviewAsChangeHandler();\r\n\t\t}\r\n\t};\r\n\tconst form = formContext`\r\n\t\t`;\r\n\tconst identityItemTypeName = 'Identity';\r\n\tconst languageItemTypeName = 'Language';\r\n\tconst { getItemType } = itemType;\r\n\tconst [identityItemType, languageItemType] = await Promise.all([\r\n\t\tgetItemType(identityItemTypeName),\r\n\t\tgetItemType(languageItemTypeName)\r\n\t]);\r\n\tconst identityDisabled =\r\n\t\tstate.changes && Object.keys(state.changes).length > 0;\r\n\tconst availableLanguages = viewAs?.prevLanguages ?? state.languages;\r\n\tconst languageDisabled =\r\n\t\t!viewAs || identityDisabled || availableLanguages.length === 1;\r\n\tform.metadata = {\r\n\t\tidentity: {\r\n\t\t\ttype: 'item',\r\n\t\t\titemTypeName: identityItemTypeName,\r\n\t\t\tdisabled: identityDisabled,\r\n\t\t\tplaceholder: identityItemType.label,\r\n\t\t\ticon: identityItemType.open_icon\r\n\t\t},\r\n\t\tlanguage: {\r\n\t\t\ttype: 'item',\r\n\t\t\titemTypeName: languageItemTypeName,\r\n\t\t\tdisabled: languageDisabled,\r\n\t\t\tplaceholder: languageItemType.label,\r\n\t\t\ticon: languageItemType.open_icon\r\n\t\t}\r\n\t};\r\n\tform.order = Object.keys(form.metadata);\r\n\tform.data = {\r\n\t\tidentity: viewAs?.identity,\r\n\t\tlanguage: viewAs?.language\r\n\t};\r\n\tform.reset();\r\n\r\n\t// header color should be yellow when filter is active and it's impossible to do with css-class\r\n\t// because hyperHTML replaces basic component classes in this case.\r\n\t// so used attribute \"filtered\" (see styles in tocEditorAccordion.less)\r\n\tconst filterActive = !!viewAs;\r\n\tconst filters = [];\r\n\tif (viewAs?.identity) {\r\n\t\tfilters.push(viewAs.identity.label);\r\n\t}\r\n\tif (viewAs?.language) {\r\n\t\tfilters.push(viewAs.language.label);\r\n\t}\r\n\tconst filterLabel = filters.join(', ');\r\n\r\n\tconst headerLabel = viewAs\r\n\t\t? getResource('toc_editor.view_as_something', filterLabel)\r\n\t\t: getResource('toc_editor.view_as');\r\n\tconst clearLabel = getResource('toc_editor.clear_view_as');\r\n\tconst clearDisabledClass = viewAs ? '' : 'aras-link_a-disabled';\r\n\tconst clearHandler = (e) => {\r\n\t\te.stopPropagation();\r\n\t\tlayout.actions.resetViewAs();\r\n\t};\r\n\tconst accordionContext = wire(layout, ':view-as-accordion');\r\n\r\n\treturn accordionContext`\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t${headerLabel}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t${clearLabel}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t${form}\r\n\t\t\t
\r\n\t\t`;\r\n};\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { alertSoapError, soap, jsonToXml } from 'core';\r\n\r\nconst saveTOC = async (state, tocData): Promise => {\r\n\tconst { changes, selectedSortingType, sortingType } = state;\r\n\tconst propsToSkip = new Set([\r\n\t\t'@action',\r\n\t\t'@odata.type',\r\n\t\t'role@aras.keyed_name'\r\n\t]);\r\n\tconst propsToStringify = new Set(['sort_order', 'additional_data']);\r\n\tconst mlPropNamePrefix = '@aras.lang.';\r\n\r\n\tconst order = new Map([\r\n\t\t['add-#CommandBarMenu', 1],\r\n\t\t['add', 2], // menubutton, button and other\r\n\t\t['add-#CommandBarSectionItem', 3],\r\n\t\t['edit-#CommandBarMenu', 4],\r\n\t\t['edit', 5],\r\n\t\t['edit-#CommandBarSectionItem', 6],\r\n\t\t['delete-#CommandBarSectionItem', 7],\r\n\t\t['delete', 8],\r\n\t\t['delete-#CommandBarMenu', 9]\r\n\t]);\r\n\r\n\tconst getItemOrder = (item) => {\r\n\t\tconst { '@action': action, '@odata.type': type } = item;\r\n\t\treturn order.get(`${action}-${type}`) || order.get(`${action}`) || 0;\r\n\t};\r\n\r\n\tconst getParentId = (id) => {\r\n\t\tconst item = tocData.get(id);\r\n\t\tif (item['@action'] !== 'delete') {\r\n\t\t\treturn item['parent_menu@aras.id'];\r\n\t\t}\r\n\r\n\t\tconst originalItem = tocData.get(id);\r\n\t\treturn originalItem['parent_menu@aras.id'];\r\n\t};\r\n\r\n\tconst getNestingDistance = (fromId: string, toParentId: string): number => {\r\n\t\tlet nestingLevel = 0;\r\n\t\tlet parentId = getParentId(fromId);\r\n\r\n\t\twhile (parentId) {\r\n\t\t\tnestingLevel++;\r\n\t\t\tif (parentId === toParentId) {\r\n\t\t\t\treturn nestingLevel;\r\n\t\t\t}\r\n\r\n\t\t\tparentId = getParentId(parentId);\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t};\r\n\tconst changeEntries = Object.entries(changes);\r\n\tconst sortedChanges = changeEntries.sort(([id1], [id2]) => {\r\n\t\tconst item1 = tocData.get(id1);\r\n\t\tconst item2 = tocData.get(id2);\r\n\t\tconst order1 = getItemOrder(item1);\r\n\t\tconst order2 = getItemOrder(item2);\r\n\t\tif (order1 !== order2) {\r\n\t\t\treturn order1 - order2;\r\n\t\t}\r\n\r\n\t\tconst { '@action': action1, '@odata.type': type1 } = item1;\r\n\t\tconst { '@action': action2, '@odata.type': type2 } = item2;\r\n\t\tconst actions = ['add', 'delete'];\r\n\t\tif (\r\n\t\t\ttype1 === '#CommandBarMenu' &&\r\n\t\t\ttype2 === '#CommandBarMenu' &&\r\n\t\t\tactions.includes(action1) &&\r\n\t\t\tactions.includes(action2)\r\n\t\t) {\r\n\t\t\t// item1 is a child of item2-then item2 should be added before item1 when the action is \"add\" and otherwise when the action is \"delete\"\r\n\t\t\tif (getNestingDistance(id1, id2) > 0) {\r\n\t\t\t\treturn action1 === 'add' ? 1 : -1;\r\n\t\t\t}\r\n\t\t\tif (getNestingDistance(id2, id1) > 0) {\r\n\t\t\t\treturn action1 === 'add' ? -1 : 1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n\t});\r\n\r\n\tconst amlItems = sortedChanges.map(([id, change]) => {\r\n\t\tconst item = tocData.get(id);\r\n\t\tconst odataType = item?.['@odata.type'];\r\n\t\tconst type = odataType?.substring(1);\r\n\t\tconst properties = {};\r\n\t\tconst action = change['@action'];\r\n\t\tif (action !== 'delete') {\r\n\t\t\tfor (const [propName, propValue] of Object.entries(change)) {\r\n\t\t\t\tif (propsToSkip.has(propName)) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet value = propValue;\r\n\t\t\t\tif (value === undefined) {\r\n\t\t\t\t\tvalue = '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (propsToStringify.has(propName)) {\r\n\t\t\t\t\tvalue = JSON.stringify(value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!propName.includes(mlPropNamePrefix)) {\r\n\t\t\t\t\tconst realPropName = propName.replace('@aras.id', '');\r\n\t\t\t\t\tproperties[realPropName] = value;\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst [prop, lang] = propName.split(mlPropNamePrefix);\r\n\t\t\t\tconst mlPropName = `i18n:${prop}`;\r\n\t\t\t\tconst newValue = {\r\n\t\t\t\t\t'@attrs': {\r\n\t\t\t\t\t\t'xml:lang': lang,\r\n\t\t\t\t\t\t'xmlns:i18n': 'http://www.aras.com/I18N'\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'@value': value\r\n\t\t\t\t};\r\n\t\t\t\tconst multilingualProperties = properties[mlPropName] || [];\r\n\t\t\t\tmultilingualProperties.push(newValue);\r\n\t\t\t\tproperties[mlPropName] = multilingualProperties;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst itemObject = {\r\n\t\t\tItem: {\r\n\t\t\t\t'@attrs': {\r\n\t\t\t\t\taction,\r\n\t\t\t\t\tid,\r\n\t\t\t\t\ttype,\r\n\t\t\t\t\tdoGetItem: '0'\r\n\t\t\t\t},\r\n\t\t\t\t...properties\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn jsonToXml(itemObject);\r\n\t});\r\n\r\n\tlet preferencesXml = '';\r\n\tif (sortingType !== selectedSortingType) {\r\n\t\tconst Relationships = {\r\n\t\t\tItem: {\r\n\t\t\t\t'@attrs': {\r\n\t\t\t\t\taction: 'edit',\r\n\t\t\t\t\tid: 'DB4652A5C55D4EB38F39E5C0602CEC48',\r\n\t\t\t\t\ttype: 'Core_GlobalLayout'\r\n\t\t\t\t},\r\n\t\t\t\tcore_toc_sorting_type: selectedSortingType\r\n\t\t\t}\r\n\t\t};\r\n\t\tconst itemObject = {\r\n\t\t\tItem: {\r\n\t\t\t\t'@attrs': {\r\n\t\t\t\t\taction: 'edit',\r\n\t\t\t\t\tid: '507A16AA36F94513AD7EC1F948B5B48F',\r\n\t\t\t\t\ttype: 'Preference'\r\n\t\t\t\t},\r\n\t\t\t\tRelationships\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tpreferencesXml = jsonToXml(itemObject);\r\n\t}\r\n\r\n\tconst requestToRefreshMetadataDate =\r\n\t\t'';\r\n\tconst requestXml = `\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t${amlItems.join('')}${preferencesXml}${requestToRefreshMetadataDate}\r\n\t\t\t\t\r\n\t\t\t`;\r\n\tconst requestOptions = { method: 'ApplyItem', async: true };\r\n\r\n\taras.browserHelper.toggleSpinner(document, true, 'toc_editor_spinner');\r\n\r\n\ttry {\r\n\t\tawait soap(requestXml, requestOptions);\r\n\t} catch (err) {\r\n\t\talertSoapError(err);\r\n\t\treturn false;\r\n\t} finally {\r\n\t\taras.browserHelper.toggleSpinner(document, false, 'toc_editor_spinner');\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n\r\nexport default saveTOC;\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nexport default class UserNotificationContainer {\r\n\tconstructor(control, notifyObserver) {\r\n\t\tif (!control) {\r\n\t\t\tthrow new Error(\r\n\t\t\t\t\"ArgumentException: notification_control can't be undefined\"\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst messageCheckInterval = aras.commonProperties.MessageCheckInterval;\r\n\r\n\t\tif (!messageCheckInterval) {\r\n\t\t\tArasModules.Dialog.alert(\r\n\t\t\t\taras.getResource('', 'user_notifications.failed_get_interval_variable')\r\n\t\t\t);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.checkInterval = null;\r\n\t\tthis.checkTimeout = null;\r\n\t\tthis.acknowledge = 'Acknowledge';\r\n\t\tthis.closeText = 'Close';\r\n\t\tthis.url = aras.getServerBaseURL() + 'Notifications.aspx';\r\n\t\tthis.updateInfoDom = null;\r\n\t\tthis.popupParametersArray = [];\r\n\t\tthis.checkInterval = messageCheckInterval;\r\n\t\tthis.checkTimeout = setTimeout(\r\n\t\t\tthis.startIterativeUpdateMessageCollection.bind(this),\r\n\t\t\tthis.checkInterval\r\n\t\t);\r\n\t\tthis.notifyObserver = notifyObserver;\r\n\t\tthis.notifications = new Map();\r\n\t\tthis.extendControlWithNotificationButtonFormatter(control);\r\n\t\tthis.updateMessageCollection(true);\r\n\t}\r\n\tnotificationsButtonFormatter(item) {\r\n\t\tconst BUTTON_CLASS = 'aras-button';\r\n\t\tlet hasOnceMessages = false;\r\n\t\titem.data &&\r\n\t\t\titem.data.forEach(function (message) {\r\n\t\t\t\tif (message.isOnce) {\r\n\t\t\t\t\thasOnceMessages = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\tconst buttonNode = item.image ? (\r\n\t\t\t\r\n\t\t) : (\r\n\t\t\t\r\n\t\t\t\t{item.label}\r\n\t\t\t\r\n\t\t);\r\n\t\tif (!item.roots.length) {\r\n\t\t\treturn buttonNode;\r\n\t\t}\r\n\t\tconst notificationCountModifier = hasOnceMessages\r\n\t\t\t? 'notifications-count_red'\r\n\t\t\t: 'notifications-count_gray';\r\n\t\tconst notificationCountClass = `aras-header__notifications-count ${notificationCountModifier}`;\r\n\t\tconst msgCountNode = (\r\n\t\t\t{item.roots.length}\r\n\t\t);\r\n\t\treturn [msgCountNode, buttonNode];\r\n\t}\r\n\textendControlWithNotificationButtonFormatter(control) {\r\n\t\tcontrol.constructor.extendFormatters({\r\n\t\t\tnotificationsButtonFormatter: this.notificationsButtonFormatter\r\n\t\t});\r\n\t}\r\n\tupdateCuiLayout() {\r\n\t\tthis.notifyObserver('UpdateNotifications');\r\n\t}\r\n\taddMessage(id, text, image, messageItem) {\r\n\t\tconst acknowledgeDom =\r\n\t\t\tmessageItem && messageItem.selectSingleNode('acknowledge');\r\n\t\tconst isOnceAcknowledge = acknowledgeDom && acknowledgeDom.text === 'Once';\r\n\t\tconst type = messageItem.getAttribute('type');\r\n\r\n\t\tthis.notifications.set(id, {\r\n\t\t\tid: id,\r\n\t\t\ttype,\r\n\t\t\tlabel: text,\r\n\t\t\tname: id,\r\n\t\t\ticon: image,\r\n\t\t\tisOnce: isOnceAcknowledge,\r\n\t\t\tisOld: false\r\n\t\t});\r\n\t\tthis.updateCuiLayout();\r\n\t}\r\n\tremoveMessage(id) {\r\n\t\tif (this.notifications.has(id)) {\r\n\t\t\tthis.notifications.delete(id);\r\n\t\t}\r\n\t\tthis.updateCuiLayout();\r\n\t}\r\n\tclearCollection() {\r\n\t\tthis.notifications = new Map();\r\n\t\tthis.updateCuiLayout();\r\n\t}\r\n\tmakeAllMessagesOld() {\r\n\t\tthis.notifications.forEach((notification) => {\r\n\t\t\tnotification.isOld = true;\r\n\t\t});\r\n\t\tthis.updateCuiLayout();\r\n\t}\r\n\tclearOldMessages() {\r\n\t\tthis.notifications.forEach((notification) => {\r\n\t\t\tif (notification.isOld) {\r\n\t\t\t\tthis.notifications.delete(notification.id);\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.updateCuiLayout();\r\n\t}\r\n\tgetMessageQuery() {\r\n\t\tconst queryDom = aras.createXMLDocument();\r\n\r\n\t\tqueryDom.loadXML('');\r\n\t\tconst currentUserIDNode = queryDom.createElement('CurrentUserID');\r\n\t\tconst dateTimeNode = queryDom.createElement('DateTime');\r\n\t\tconst intlObject = ArasModules.intl;\r\n\r\n\t\tcurrentUserIDNode.text = aras.getCurrentUserID();\r\n\t\tdateTimeNode.text = intlObject.date.toIS0Format(new Date());\r\n\r\n\t\tqueryDom.documentElement.appendChild(currentUserIDNode);\r\n\t\tqueryDom.documentElement.appendChild(dateTimeNode);\r\n\r\n\t\treturn queryDom.documentElement.xml;\r\n\t}\r\n\tasyncCheckNewMessages(getCollectionCallback) {\r\n\t\tconst resultCallbackHandler = (soapResult) => {\r\n\t\t\tconst messageCollection = this.processSoapResult(soapResult);\r\n\t\t\tgetCollectionCallback(this, messageCollection);\r\n\t\t};\r\n\r\n\t\tconst soapController = new window.SoapController(resultCallbackHandler);\r\n\r\n\t\tconst query = this.getMessageQuery();\r\n\t\twindow.aras.soapSend(\r\n\t\t\t'GetNotifications',\r\n\t\t\tquery,\r\n\t\t\tthis.url,\r\n\t\t\tnull,\r\n\t\t\tsoapController\r\n\t\t);\r\n\t}\r\n\tsyncGetMessageCollection() {\r\n\t\tconst query = this.getMessageQuery();\r\n\t\tconst soapResult = aras.soapSend('GetNotifications', query, this.url);\r\n\r\n\t\treturn this.processSoapResult(soapResult);\r\n\t}\r\n\tprocessSoapResult(soapResult) {\r\n\t\tif (soapResult.getFaultCode() !== 0) {\r\n\t\t\tArasModules.Dialog.alert('', {\r\n\t\t\t\ttype: 'soap',\r\n\t\t\t\tdata: soapResult\r\n\t\t\t});\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (soapResult.isFault()) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\treturn soapResult.getResult();\r\n\t}\r\n\trefreshUpdateDom(resultDom) {\r\n\t\tif (!resultDom) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.updateInfoDom = resultDom.selectSingleNode(\r\n\t\t\t'Item[@id=\"UpdateInfoMessage\"]'\r\n\t\t);\r\n\t}\r\n\tfillStandardMessageCollection(resultDom, clearBefore) {\r\n\t\tif (clearBefore) {\r\n\t\t\tthis.clearCollection();\r\n\t\t} else {\r\n\t\t\tthis.makeAllMessagesOld();\r\n\t\t}\r\n\r\n\t\tif (!resultDom) {\r\n\t\t\tthis.clearCollection();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst standardCollection = resultDom.selectNodes(\r\n\t\t\t'Item[type/text()=\"Standard\"]'\r\n\t\t);\r\n\r\n\t\tfor (let i = 0; i < standardCollection.length; i++) {\r\n\t\t\tconst messageItem = standardCollection[i];\r\n\t\t\tconst messageId = messageItem.getAttribute('id');\r\n\t\t\tconst title = aras.getItemProperty(messageItem, 'title');\r\n\t\t\tconst imageUrl = aras.getItemProperty(messageItem, 'icon');\r\n\t\t\tthis.addMessage(messageId, title, imageUrl, messageItem);\r\n\t\t}\r\n\r\n\t\tthis.clearOldMessages();\r\n\t}\r\n\tshowPopupCollection(resultDom, showAsModeless) {\r\n\t\tif (!resultDom) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst popupCollection = resultDom.selectNodes('Item[type/text()=\"Popup\"]');\r\n\r\n\t\tconst sortedList = this.sortMessagesByPriority(popupCollection);\r\n\t\tlet i = 0;\r\n\r\n\t\tconst nextSortedList = function () {\r\n\t\t\tif (i >= sortedList.length) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tconst index = sortedList.length - i - 1;\r\n\t\t\tif (!sortedList[index]) {\r\n\t\t\t\ti++;\r\n\t\t\t\treturn nextSortedList();\r\n\t\t\t}\r\n\t\t\tnextMsgIndex(index, 0);\r\n\t\t};\r\n\r\n\t\tconst nextMsgIndex = (index, msgIndex) => {\r\n\t\t\tif (msgIndex >= sortedList[index].length) {\r\n\t\t\t\ti++;\r\n\t\t\t\tnextSortedList();\r\n\t\t\t} else {\r\n\t\t\t\tthis.displayMessageDialog(\r\n\t\t\t\t\tsortedList[index][msgIndex],\r\n\t\t\t\t\tshowAsModeless,\r\n\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tmsgIndex++;\r\n\t\t\t\t\t\t\tnextMsgIndex(index, msgIndex);\r\n\t\t\t\t\t\t}, 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tnextSortedList();\r\n\t}\r\n\tsortMessagesByPriority(messageCollection) {\r\n\t\tconst sortedList = [];\r\n\r\n\t\tfor (let i = 0; i < messageCollection.length; i++) {\r\n\t\t\tconst priority = aras.getItemProperty(messageCollection[i], 'priority');\r\n\t\t\tif (!sortedList[priority]) {\r\n\t\t\t\tsortedList[priority] = [];\r\n\t\t\t}\r\n\r\n\t\t\tsortedList[priority][sortedList[priority].length] = messageCollection[i];\r\n\t\t}\r\n\r\n\t\treturn sortedList;\r\n\t}\r\n\tupdateMessageCollection(doAsync, callback) {\r\n\t\tif (!doAsync) {\r\n\t\t\tdoAsync = false;\r\n\t\t}\r\n\r\n\t\tif (doAsync) {\r\n\t\t\tconst getCollectionCallback = function (container, messageCollection) {\r\n\t\t\t\tcontainer.refreshUpdateDom(messageCollection);\r\n\t\t\t\tcontainer.fillStandardMessageCollection(messageCollection);\r\n\t\t\t\tcontainer.showPopupCollection(messageCollection, true);\r\n\t\t\t\tif (callback) {\r\n\t\t\t\t\tcallback();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tthis.asyncCheckNewMessages(getCollectionCallback);\r\n\t\t} else {\r\n\t\t\tconst messageCollection = this.syncGetMessageCollection();\r\n\t\t\tthis.refreshUpdateDom(messageCollection);\r\n\t\t\tthis.fillStandardMessageCollection(messageCollection);\r\n\t\t\tthis.showPopupCollection(messageCollection, false);\r\n\t\t}\r\n\t}\r\n\tstartIterativeUpdateMessageCollection() {\r\n\t\tconst callback = () => {\r\n\t\t\tthis.checkTimeout = setTimeout(\r\n\t\t\t\tthis.startIterativeUpdateMessageCollection.bind(this),\r\n\t\t\t\tthis.checkInterval\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\tthis.updateMessageCollection(true, callback);\r\n\t}\r\n\tdisplayMessageDialogById(messageId, showAsModeless) {\r\n\t\tif (messageId === 'UpdateInfoMessage') {\r\n\t\t\tthis.displayMessageDialog(this.updateInfoDom, showAsModeless);\r\n\t\t} else {\r\n\t\t\tconst messageItem = aras.getItemById('Message', messageId);\r\n\t\t\tif (messageItem) {\r\n\t\t\t\tthis.displayMessageDialog(messageItem, showAsModeless);\r\n\t\t\t} else {\r\n\t\t\t\tArasModules.Dialog.alert(\r\n\t\t\t\t\taras.getResource('', 'user_notifications.message_no_more_available')\r\n\t\t\t\t);\r\n\t\t\t\tthis.removeMessage(messageId);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tdisplayMessageDialog(messageItem, showAsModeless, callback) {\r\n\t\tif (!messageItem) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst templateUrl = aras.getI18NXMLResource(\r\n\t\t\t'notification_popup_template.xml',\r\n\t\t\taras.getBaseURL()\r\n\t\t);\r\n\t\tconst templateDom = aras.createXMLDocument();\r\n\t\ttemplateDom.load(templateUrl);\r\n\r\n\t\tlet parameters =\r\n\t\t\tthis.popupParametersArray[aras.getItemProperty(messageItem, 'id')];\r\n\t\tif (!parameters) {\r\n\t\t\tparameters = {};\r\n\t\t}\r\n\r\n\t\tconst openedMessageWindow = parameters.window;\r\n\r\n\t\tparameters.id = aras.getItemProperty(messageItem, 'id');\r\n\t\tparameters.default_template =\r\n\t\t\ttemplateDom.selectSingleNode('template/html').text;\r\n\t\tparameters.custom_html = aras.getItemProperty(messageItem, 'custom_html');\r\n\r\n\t\tparameters.dialogWidth = aras.getItemProperty(messageItem, 'width');\r\n\t\tparameters.dialogHeight = aras.getItemProperty(messageItem, 'height');\r\n\t\tparameters.css = aras.getItemProperty(messageItem, 'css');\r\n\t\tparameters.is_standard_template =\r\n\t\t\taras.getItemProperty(messageItem, 'is_standard_template') === '1';\r\n\r\n\t\tif (!parameters.dialogWidth || parameters.is_standard_template) {\r\n\t\t\tparameters.dialogWidth = templateDom.selectSingleNode(\r\n\t\t\t\t'template/dialog_width'\r\n\t\t\t).text;\r\n\t\t}\r\n\r\n\t\tif (!parameters.dialogHeight || parameters.is_standard_template) {\r\n\t\t\tparameters.dialogHeight = templateDom.selectSingleNode(\r\n\t\t\t\t'template/dialog_height'\r\n\t\t\t).text;\r\n\t\t}\r\n\r\n\t\tparameters.title = aras.getItemProperty(messageItem, 'title');\r\n\t\tparameters.text = aras.getItemProperty(messageItem, 'text');\r\n\t\tparameters.url = aras.getItemProperty(messageItem, 'url');\r\n\t\tparameters.icon = aras.getItemProperty(messageItem, 'icon');\r\n\r\n\t\tparameters.OK_IsVisible =\r\n\t\t\taras.getItemProperty(messageItem, 'show_ok_button') === '1';\r\n\t\tparameters.Exit_IsVisible =\r\n\t\t\taras.getItemProperty(messageItem, 'show_exit_button') === '1';\r\n\r\n\t\tparameters.OK_Label = aras.getItemProperty(messageItem, 'ok_button_label');\r\n\t\tparameters.Exit_Label = aras.getItemProperty(\r\n\t\t\tmessageItem,\r\n\t\t\t'exit_button_label'\r\n\t\t);\r\n\r\n\t\tparameters.container = this;\r\n\t\tparameters.opener = window;\r\n\t\tparameters.writeContent = writeContent;\r\n\t\tparameters.aras = aras;\r\n\r\n\t\tthis.popupParametersArray[parameters.id] = parameters;\r\n\r\n\t\tif (!showAsModeless) {\r\n\t\t\tparameters.content = 'modalDialog.html';\r\n\r\n\t\t\twindow.ArasModules.Dialog.show('iframe', parameters)\r\n\t\t\t\t.promise.then((res) => {\r\n\t\t\t\t\tif (res === this.acknowledge) {\r\n\t\t\t\t\t\treturn this.acknowledgeMessage(messageItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tif (callback) {\r\n\t\t\t\t\t\treturn callback();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tconst sFeatures = `height=${parameters.dialogHeight}, width=${parameters.dialogWidth}`;\r\n\r\n\t\t\tif (openedMessageWindow) {\r\n\t\t\t\topenedMessageWindow.close();\r\n\t\t\t}\r\n\r\n\t\t\tconst OnBeforeUnloadHandler = async function () {\r\n\t\t\t\tconst container = parameters.window.parameters.container;\r\n\t\t\t\tif (parameters.window.returnValue === container.acknowledge) {\r\n\t\t\t\t\tawait container.acknowledgeMessage(messageItem);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (callback) {\r\n\t\t\t\t\tcallback();\r\n\t\t\t\t}\r\n\t\t\t\tparameters.window = null;\r\n\t\t\t};\r\n\r\n\t\t\tparameters.window = window.open(\r\n\t\t\t\taras.getScriptsURL() + 'blank.html',\r\n\t\t\t\t'',\r\n\t\t\t\tsFeatures\r\n\t\t\t);\r\n\t\t\tparameters.window.focus();\r\n\t\t\twriteContent(parameters.window);\r\n\t\t\tparameters.window.parameters = parameters;\r\n\t\t\tparameters.window.addEventListener('beforeunload', OnBeforeUnloadHandler);\r\n\t\t}\r\n\r\n\t\tfunction uiDrawInputButton(name, value, handlerCode, className) {\r\n\t\t\treturn ``;\r\n\t\t}\r\n\r\n\t\tfunction writeContent(w) {\r\n\t\t\tconst doc = w.document;\r\n\t\t\tlet template;\r\n\t\t\tconst titleExpr = new RegExp('{TITLE}', 'g');\r\n\t\t\tconst urlExpr = new RegExp('{URL}', 'g');\r\n\t\t\tconst textExpr = new RegExp('{TEXT}', 'g');\r\n\t\t\tconst iconExpr = new RegExp('{ICON}', 'g');\r\n\r\n\t\t\tif (parameters.icon) {\r\n\t\t\t\tparameters.icon = aras.getScriptsURL() + parameters.icon;\r\n\t\t\t}\r\n\t\t\tif (!parameters.is_standard_template) {\r\n\t\t\t\ttemplate = parameters.custom_html.replace(titleExpr, parameters.title);\r\n\t\t\t\ttemplate = template.replace(urlExpr, parameters.url);\r\n\t\t\t\ttemplate = template.replace(textExpr, parameters.text);\r\n\t\t\t\ttemplate = template.replace(iconExpr, parameters.icon);\r\n\r\n\t\t\t\tdoc.write(template);\r\n\t\t\t} else {\r\n\t\t\t\ttemplate = parameters.default_template.replace(\r\n\t\t\t\t\ttitleExpr,\r\n\t\t\t\t\tparameters.title\r\n\t\t\t\t);\r\n\t\t\t\ttemplate = template.replace(urlExpr, parameters.url);\r\n\t\t\t\ttemplate = template.replace(textExpr, parameters.text);\r\n\t\t\t\ttemplate = template.replace(iconExpr, parameters.icon);\r\n\t\t\t\tdoc.write(template);\r\n\r\n\t\t\t\tif (parameters.css) {\r\n\t\t\t\t\tconst style = doc.createElement('style');\r\n\t\t\t\t\tstyle.innerHTML = parameters.css;\r\n\t\t\t\t\tdoc.head.appendChild(style);\r\n\t\t\t\t}\r\n\t\t\t\tconst notificationTitle = doc.getElementById('notification_title');\r\n\t\t\t\tconst titleElement = notificationTitle.appendChild(\r\n\t\t\t\t\tdoc.createElement('h2')\r\n\t\t\t\t);\r\n\t\t\t\ttitleElement.setAttribute('class', 'title');\r\n\t\t\t\tif (parameters.url) {\r\n\t\t\t\t\tconst urlElement = titleElement.appendChild(doc.createElement('a'));\r\n\t\t\t\t\turlElement.setAttribute('href', parameters.url);\r\n\t\t\t\t\turlElement.setAttribute('target', '_about');\r\n\t\t\t\t\turlElement.setAttribute('class', 'sys_item_link');\r\n\t\t\t\t\turlElement.textContent = parameters.title;\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttitleElement.textContent = parameters.title;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!parameters.icon) {\r\n\t\t\t\t\tdoc.getElementById('message_icon').style.display = 'none';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tw.returnValue = parameters.container.closeText;\r\n\t\t\tw.closeWindow = function (value) {\r\n\t\t\t\tif (w.dialogArguments && w.dialogArguments.dialog) {\r\n\t\t\t\t\tw.dialogArguments.dialog.close(value);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tw.returnValue = value || w.returnValue;\r\n\t\t\t\t\tw.close();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tdoc.close();\r\n\r\n\t\t\tlet innerHTML = '';\r\n\t\t\tif (parameters.OK_IsVisible) {\r\n\t\t\t\tinnerHTML += uiDrawInputButton(\r\n\t\t\t\t\t'OK_button',\r\n\t\t\t\t\tparameters.OK_Label,\r\n\t\t\t\t\t` window.closeWindow('${parameters.container.acknowledge}');`,\r\n\t\t\t\t\t'notification_ok_btn'\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tif (parameters.Exit_IsVisible) {\r\n\t\t\t\tinnerHTML += uiDrawInputButton(\r\n\t\t\t\t\t'Exit_button',\r\n\t\t\t\t\tparameters.Exit_Label,\r\n\t\t\t\t\t` window.closeWindow('${parameters.container.closeText}');`,\r\n\t\t\t\t\t'cancel_button notification_exit_btn'\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tif (innerHTML) {\r\n\t\t\t\tconst el = doc.createElement('center');\r\n\t\t\t\tel.innerHTML = innerHTML;\r\n\t\t\t\tconst source =\r\n\t\t\t\t\tdoc.getElementById('btns') || doc.getElementsByTagName('body')[0];\r\n\t\t\t\tif (source) {\r\n\t\t\t\t\tsource.appendChild(el);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tasync acknowledgeMessage(messageItem) {\r\n\t\tconst acknowledgeDom =\r\n\t\t\tmessageItem && messageItem.selectSingleNode('acknowledge');\r\n\t\tif (!acknowledgeDom || acknowledgeDom.text !== 'Once') {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst messageId = messageItem.getAttribute('id');\r\n\r\n\t\tconst relsh = `\r\n\t\t\t\t${aras.getCurrentUserID()}\r\n\t\t\t\t${messageItem.getAttribute('id')}\r\n\t\t\t`;\r\n\r\n\t\ttry {\r\n\t\t\tawait ArasModules.soap(relsh, {\r\n\t\t\t\tmethod: 'ApplyItem',\r\n\t\t\t\tasync: true\r\n\t\t\t});\r\n\t\t\tthis.removeMessage(messageId);\r\n\t\t} catch (error) {\r\n\t\t\tconst errorResult = new SOAPResults(aras, error.responseText);\r\n\t\t\tif (errorResult.getFaultCode() !== 0) {\r\n\t\t\t\tawait ArasModules.Dialog.alert('', {\r\n\t\t\t\t\ttype: 'soap',\r\n\t\t\t\t\tdata: errorResult\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tdispose() {\r\n\t\tif (this.checkTimeout) {\r\n\t\t\tclearTimeout(this.checkTimeout);\r\n\t\t}\r\n\t}\r\n}\r\n", "// eslint-disable-next-line\r\n// @ts-nocheck\r\nimport { itemType as itemTypeMetadata } from 'metadata';\r\nimport { cuiMethods } from 'cui';\r\nimport type MainWindowCuiLayout from '../../mainWindowCuiLayout/MainWindowCuiLayout';\r\nimport { getResource } from 'core';\r\n\r\nlet deepLinkingResolve;\r\n\r\nconst changeMessage = (frame) => {\r\n\tconst win = frame.contentWindow;\r\n\tconst msg = win.document.getElementById('message');\r\n\tif (!msg) {\r\n\t\tframe.addEventListener('load', function () {\r\n\t\t\tconst msg = win.document.getElementById('message');\r\n\t\t\tmsg.textContent = deepLinking.currentMsg;\r\n\t\t});\r\n\t} else {\r\n\t\tmsg.textContent = deepLinking.currentMsg;\r\n\t}\r\n};\r\n\r\nconst setDeepLinkingMessage = (msg) => {\r\n\tdeepLinking.currentMsg = msg;\r\n\tconst deepWindowIframe = document.getElementById('deepLinking');\r\n\tdeepWindowIframe.style.display = 'block';\r\n\tdocument.getElementById('dimmer_spinner').classList.add('aras-hide');\r\n\tif (!deepWindowIframe.src) {\r\n\t\tdeepWindowIframe.src = 'deepLinking.aspx';\r\n\t}\r\n\tchangeMessage(deepWindowIframe);\r\n\r\n\tif (deepLinkingResolve) {\r\n\t\tdeepLinkingResolve({\r\n\t\t\tstartItemHandled: true\r\n\t\t});\r\n\t}\r\n};\r\n\r\nconst deepLinkingStorageListener = (storageEvent) => {\r\n\tconst storage = deepLinking.getStorage();\r\n\r\n\tif (\r\n\t\tstorageEvent.key === 'DeepLinkingMainMenu' &&\r\n\t\tstorageEvent.newValue === 'opening'\r\n\t) {\r\n\t\tstorage.removeItem('DeepLinkingMainMenu');\r\n\t\tsetDeepLinkingMessage(getResource('deep_link.start_opening_item'));\r\n\t}\r\n\r\n\tif (\r\n\t\tstorageEvent.key === 'DeepLinkingResultOpenItem' &&\r\n\t\tstorageEvent.newValue\r\n\t) {\r\n\t\tstorage.removeItem('DeepLinkingResultOpenItem');\r\n\t\tstorage.removeItem('DeepLinkingOpenStartItem');\r\n\t\tsetDeepLinkingMessage(storageEvent.newValue);\r\n\t\twindow.removeEventListener('storage', deepLinkingStorageListener);\r\n\t}\r\n};\r\n\r\nconst openItem = async (\r\n\titemTypeName: string,\r\n\titemId: string,\r\n\tversion: string\r\n) => {\r\n\tconst mainLayout: MainWindowCuiLayout = window.mainLayout;\r\n\tconst cuiControl = mainLayout.navigationPanel.nav;\r\n\tconst cuiOptions = mainLayout.options;\r\n\tconst itemTypeId = itemTypeMetadata.getItemTypeId(itemTypeName);\r\n\tconst itemToOpen = {\r\n\t\titemTypeId,\r\n\t\titemId,\r\n\t\tversion\r\n\t};\r\n\r\n\ttry {\r\n\t\treturn await cuiMethods.openItemHandler(cuiControl, cuiOptions, itemToOpen);\r\n\t} catch (e) {\r\n\t\treturn;\r\n\t}\r\n};\r\n\r\nconst mainWindowListener = async (storageEvent) => {\r\n\tif (\r\n\t\tstorageEvent.key !== 'DeepLinkingOpenStartItem' ||\r\n\t\t!storageEvent.newValue\r\n\t) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst item = JSON.parse(storageEvent.newValue);\r\n\tconst { itemTypeName, itemId, version = 'exact' } = item;\r\n\r\n\tif (\r\n\t\t!itemTypeName ||\r\n\t\t!itemId ||\r\n\t\t!aras.getLoginName ||\r\n\t\taras.getLoginName() === ''\r\n\t) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst storage = deepLinking.getStorage();\r\n\tstorage.removeItem('DeepLinkingOpenStartItem');\r\n\tstorage.removeItem('DeepLinkingResultOpenItem');\r\n\tstorage.removeItem('DeepLinkingMainMenu');\r\n\tstorage.setItem('DeepLinkingMainMenu', 'opening');\r\n\r\n\tconst resultOpenItem = await openItem(itemTypeName, itemId, version);\r\n\tlet message;\r\n\tif (resultOpenItem) {\r\n\t\tmessage = getResource(\r\n\t\t\t'deep_link.item_is_opened',\r\n\t\t\titemTypeName + ' ' + aras.getKeyedName(itemId, itemTypeName)\r\n\t\t);\r\n\t} else {\r\n\t\tmessage = getResource('deep_link.error_open_item');\r\n\t}\r\n\tstorage.setItem('DeepLinkingResultOpenItem', message);\r\n};\r\n\r\nconst getStartItem = () => {\r\n\tconst searchParams = new URLSearchParams(window.location.search);\r\n\tconst startItemStr = searchParams.get('StartItem');\r\n\tconst [type, itemId, version] = startItemStr?.split(':') || [];\r\n\tif (!type || !itemId) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst itemTypeName = type === 'inbasket' ? 'InBasket Task' : type;\r\n\r\n\treturn {\r\n\t\titemTypeName,\r\n\t\titemId,\r\n\t\tversion\r\n\t};\r\n};\r\n\r\nconst deepLinking = {\r\n\t/* Constant that determines what time DeepLinkingWindow may look MainWindow*/\r\n\tSEARCH_TIME_THE_MAIN_WINDOW: 2000,\r\n\tcurrentMsg: '',\r\n\tonSuccessfulLogin() {\r\n\t\twindow.addEventListener('storage', mainWindowListener);\r\n\t\twindow.removeEventListener('storage', deepLinkingStorageListener);\r\n\t},\r\n\tasync beforeInitializeLoginForm() {\r\n\t\tconst storage = this.getStorage();\r\n\r\n\t\twindow.addEventListener('beforeunload', function () {\r\n\t\t\tstorage.removeItem('DeepLinkingOpenStartItem');\r\n\t\t\tstorage.removeItem('DeepLinkingResultOpenItem');\r\n\t\t\tstorage.removeItem('DeepLinkingMainMenu');\r\n\t\t});\r\n\r\n\t\tconst startItem = getStartItem();\r\n\t\tif (!startItem) {\r\n\t\t\treturn {\r\n\t\t\t\tstartItemHandled: false\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('storage', deepLinkingStorageListener);\r\n\t\tstorage.removeItem('DeepLinkingOpenStartItem');\r\n\t\tstorage.setItem('DeepLinkingOpenStartItem', JSON.stringify(startItem));\r\n\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tdeepLinkingResolve = resolve;\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (this.currentMsg === '') {\r\n\t\t\t\t\twindow.removeEventListener('storage', deepLinkingStorageListener);\r\n\t\t\t\t\tresolve({\r\n\t\t\t\t\t\tstartItemHandled: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tresolve({\r\n\t\t\t\t\tstartItemHandled: true\r\n\t\t\t\t});\r\n\t\t\t}, this.SEARCH_TIME_THE_MAIN_WINDOW);\r\n\t\t});\r\n\t},\r\n\tgetStorage() {\r\n\t\treturn window.localStorage;\r\n\t}\r\n};\r\n\r\nexport default deepLinking;\r\n"], "mappings": "mjBAAAA,ICAAC,ICAAC,IAKA,IAAMC,GAAgB,GAEhBC,GAAkB,MAAOC,EAAMC,IAAS,CAU7C,GATsB,MAAM,YAAY,OAAO,QAC9C,KAAK,YAAY,GAAI,+BAA+B,EACpD,CACC,MAAO,KAAK,YAAY,GAAI,sBAAsB,EAClD,aAAc,KAAK,YAAY,GAAI,cAAc,EACjD,iBAAkB,uBACnB,CACD,IAEsB,KAAM,CAC3BA,EAAK,UAAUD,EAAK,EAAE,EACtB,GAAI,CACH,MAAME,EAAU,OAAOF,EAAK,EAAE,CAC/B,MAAE,CACDC,EAAK,OAAOD,EAAK,GAAIA,CAAI,CAC1B,EAEF,EAEqBG,GAArB,cAAiDC,EAAK,CACrD,WAAa,GACb,SAAW,GAEX,gBAAkB,CACjB,gBAAiB,OAClB,EACA,MAAQ,CACP,UAAW,IAAI,GAChB,EAEAC,GAAiB,IACT,KAAK,OAAO,EAGpB,mBAAoB,CACnB,MAAM,kBAAkB,EACxB,KAAK,UAAU,IAAI,6BAA8B,aAAa,EAC9D,OAAO,iBAAiB,SAAU,KAAKA,EAAc,CACtD,CAEA,sBAAuB,CACtB,OAAO,oBAAoB,SAAU,KAAKA,EAAc,CACzD,CAEA,QAAS,CACR,IAAMC,EAAe,CAAC,EAChBC,EAAkB,KAAK,IAC5B,KAAK,MAAM,KAAK,aAAeT,EAAa,EAC5C,CACD,EAEA,YAAK,MAAM,UAAU,QAAQ,CAACE,EAAMQ,IAAO,CACtCF,EAAa,OAASC,GACzBD,EAAa,KAAKE,CAAE,CAEtB,CAAC,EACD,KAAK,KAAOF,EACZ,KAAK,KAAO,KAAK,MAAM,UAEhB,MAAM,OAAO,CACrB,CAEA,UAAUE,EAAI,CACb,IAAMR,EAAO,KAAK,MAAM,UAAU,IAAIQ,CAAE,EACxC,OAAIR,EAAK,OACDD,GAAgBC,EAAM,IAAI,EAG3B,MAAM,UAAUQ,CAAE,CAC1B,CAEA,UAAUA,EAAIC,EAAM,CACnB,IAAMT,EAAOS,EAAK,IAAID,CAAE,EACxB,GAAI,CAACR,EAAK,OACT,OAAO,KAGR,IAAMU,EAAeC,EAAC,QAAK,UAAU,mCAAmC,EAClEC,EAAY,KAAK,UAAUZ,EAAK,KAAK,EACrCa,EAAU,CAACH,EAAcE,CAAS,EAExC,OAAO,KAAK,oBAAoBZ,EAAMa,CAAO,CAC9C,CACD,EAEAV,GAAoB,OAAO,4BAA4B,EC7FvDW,ICAAC,IAKA,IAAMC,GAAQ,CACb,YAAa,2BACd,EAEAC,EAAW,QAAQ,OAAO,OAAOD,EAAK,CAAC,EAEvC,IAAME,GAAN,cAA0BC,EAAa,CACtCC,GAAqB,KACrBC,GAAqB,GAErB,YAAa,CACZ,MAAM,WAAW,EACjB,KAAK,MAAM,YAAcC,EACxB,0DACD,EACA,KAAK,MAAM,KAAON,GAAM,WACzB,CACA,OAAQ,CACP,KAAK,MAAM,KAAK,OAAO,MAAM,CAC9B,CAEA,OAAQ,CACP,KAAK,SAAS,CACb,MAAO,GACP,KAAM,CAAC,CACR,CAAC,CACF,CAEA,mBAAoB,CACnB,MAAM,kBAAkB,EACxB,KAAK,UAAU,IAAI,mBAAmB,CACvC,CAEA,wBAAwB,EAAG,CAC1B,IAAMO,EAAQ,KAAK,MAAM,MACnBC,EAAiB,KAAK,MAAM,eAElC,KAAK,SAAS,CACb,SAAU,KAAK,MAAM,MACrB,MAAOA,GAAkBD,CAC1B,CAAC,EAED,MAAM,wBAAwB,CAAC,CAChC,CAEA,iBAAkB,CACjB,GAAI,CAAC,KAAK,MAAM,MACf,OAED,IAAME,EAAO,KAAK,MAAM,KAClBC,EAAQ,KAAK,MAAM,MAAM,YAAY,EAE3C,OACCD,EAAK,KAAKJ,EAAkB,GAC5BI,EAAK,KAAME,GAASA,EAAK,MAAM,YAAY,IAAMD,CAAK,CAExD,CAEA,oBAAoB,EAAG,CACtB,IAAME,EAAK,EAAE,OAAO,QAAQ,IAAI,EAChC,KAAKP,GAAqB,CAAC,EAAE,QAAQ,KAAKO,EAAG,cAAc,SAAUA,CAAE,EAEvE,MAAM,oBAAoB,CAAC,CAC5B,CAEA,kBAAkB,EAAG,CACpB,GAAI,EAAE,MAAQ,QAAS,CACtB,GAAI,KAAKR,GACR,OAGD,KAAKC,GAAqB,KAAK,MAAM,aACjC,KAAK,MAAM,iBACd,KAAKD,GAAqB,WAAW,SAAY,CAChD,MAAM,KAAK,MAAM,eAEjB,KAAKA,GAAqB,KACrB,KAAK,MAAM,KAAK,QAGrB,MAAM,kBAAkB,CAAC,CAC1B,EAAG,KAAK,MAAM,WAAW,EAEzB,KAAK,MAAM,KAAK,MAAM,cACrB,IAAI,YAAY,SAAU,CAAE,QAAS,EAAK,CAAC,CAC5C,EAGD,EAAE,eAAe,EACjB,OAGD,MAAM,kBAAkB,CAAC,CAC1B,CAEA,oBAAqB,CACpB,OAAO,IACR,CAEA,mBAAoB,CACnB,IAAMS,EAAQ,MAAM,kBAAkB,EACtC,OAAAA,EAAM,UAAY,sCACXA,CACR,CAEA,2BAA4B,CAC3B,IAAMb,EAAQ,MAAM,0BAA0B,EAE9C,OAAAA,EAAM,SAAWA,EAAM,SAAS,IAAKc,IAChCA,EAAK,UAAU,SAAS,cAAc,IACzCA,EAAK,WAAa,+BAEZA,EACP,EAEMd,CACR,CACD,EAEMe,GAAO,oBACR,eAAe,IAAIA,EAAI,GAC3B,eAAe,OAAOA,GAAMb,EAAW,EDxHxC,IAAMc,GAAQ,CACb,OAAQ,8BACR,WAAY,0BACb,EAEAC,EAAW,QAAQ,OAAO,OAAOD,EAAK,CAAC,EAEvC,IAAME,GACL,4DAEKC,GAAiB,CAACC,EAASC,IAAsB,CACtD,GAAM,CAAE,aAAAC,EAAc,sBAAAC,EAAuB,cAAAC,CAAc,EAC1DH,EACKI,EAAeC,EAAY,wBAAyBF,CAAa,EAEjEG,EAAK,gBAAgBL,IAC3B,OAAOM,EAAKR,EAAQ,MAAOO,CAAE;AAAA;AAAA;AAAA,eAGfL;AAAA,eACAC;AAAA,eACCM,GAAUT,EAAQ,UAAUS,CAAK;AAAA,mBAC9BJ;AAAA,kBACAK,GAAMA,EAAE,OAAO,MAAM;AAAA;AAAA,EAGxC,EAEA,SAASC,GAAkBX,EAAS,CACnC,IAAMC,EAAoBD,EAAQ,MAAM,kBACxC,GAAI,CAACC,EACJ,OAAO,KAGR,IAAMW,EAAkBb,GAAeC,EAASC,CAAiB,EACjE,OAAOO,EAAKR,EAAQ,MAAO,UAAU;AAAA;AAAA;AAAA;AAAA,eAIvB,CAACC,EAAkB;AAAA,eACnB,IAAMD,EAAQ,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,YAKhCJ,GAAM;AAAA;AAAA;AAAA,OAGXU,EACD,6CACAL,EAAkB,aACnB;AAAA;AAAA;AAAA;AAAA;AAAA,eAKU,IAAMD,EAAQ,gBAAgBC,EAAkB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,YAK7DL,GAAM;AAAA;AAAA;AAAA,OAGXU,EACD,yCACAL,EAAkB,WACnB;AAAA;AAAA;AAAA,KAGAW;AAAA;AAAA,EAGL,CAEA,SAASC,GAAgBH,EAAG,CAC3B,IAAMI,EAAMJ,EAAE,KACRK,EAAOL,EAAE,cAEf,GAAI,CAAC,UAAW,WAAW,EAAE,SAASI,CAAG,EAAG,CAC3C,IAAME,EACLD,EAAK,cAAc,gBAAgB,GAAKA,EAAK,WAAW,CAAC,EACpDE,EACLH,IAAQ,UAAY,yBAA2B,qBAC1CI,EAAWF,EAAYC,CAAW,EACrCD,EAAYC,CAAW,EACvBD,EAECA,IAAgBE,IACnBF,EAAY,SAAW,KACvBE,EAAS,SAAW,IACpBA,EAAS,MAAM,GAGlB,CAEA,SAASC,GAAoBnB,EAASoB,EAAcnB,EAAmB,CACtE,OAAOO,EAAKR,EAASoB,EAAa,KAAK;AAAA,+DAErCA,EAAa;AAAA;AAAA,gBAGCV,GAAMG,GAAgBH,CAAC;AAAA,KACnCU,EAAa,MAAM,IAAI,CAACC,EAAcC,IAAQ,CAC/C,IAAMC,EAAQF,EAAa,OAASf,EAAY,iBAAiB,EACjE,OAAOE,EAAKa,EAAc,WAAW;AAAA,4DACmBA,EAAa;AAAA,kBACvDC,IAAQ,EAAI,IAAM;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKpBF,EAAa;AAAA,yBACJA,EAAa;AAAA;AAAA,uCAECG;AAAA,SAC9BC,GAAuBH,EAAcD,EAAcnB,CAAiB;AAAA;AAAA,MAG1E,CAAC;AAAA;AAAA,EAGJ,CAEA,SAASuB,GAAuBH,EAAcD,EAAcnB,EAAmB,CAC9E,GACC,CAACmB,EAAa,WACdC,EAAa,UAAYpB,EAAkB,mBAE3C,OAAO,KAGR,IAAMwB,EAAgBnB,EACrB,gDACD,EACA,OAAOE,EAAKa,EAAc,YAAY;AAAA;AAAA;AAAA,YAG3BI;AAAA;AAAA;AAAA;AAAA;AAAA,WAKDL,EAAa;AAAA;AAAA,UAGxB,CAEA,SAASM,GAAoB1B,EAAS,CACrC,IAAMC,EAAoBD,EAAQ,MAAM,kBACxC,MAAI,CAACC,GAAqB,CAACA,EAAkB,mBAAmB,OACxD,KAGDO,EAAKR,EAAS,YAAY;AAAA;AAAA;AAAA,cAGnBU,GAAMV,EAAQ,gBAAgBU,CAAC;AAAA,iBAC5BA,GAAM,CACpB,IAAMI,EAAMJ,EAAE,KACV,CAAC,QAAS,QAAS,aAAa,EAAE,SAASI,CAAG,GACjDd,EAAQ,gBAAgBU,CAAC,CAE3B;AAAA,oBACkBA,GAAMV,EAAQ,6BAA6BU,CAAC;AAAA;AAAA,KAE5DT,EAAkB,mBAAmB,IAAKmB,GAC3CD,GAAoBnB,EAASoB,EAAcnB,CAAiB,CAC7D;AAAA;AAAA,EAGH,CAEe,SAAR0B,GAAkB3B,EAAS,CACjC,OAAOQ,EAAKR,EAAS,gBAAgB;AAAA,gBACtBF;AAAA,KACXa,GAAkBX,CAAO;AAAA,KACzB0B,GAAoB1B,CAAO;AAAA;AAAA,EAGhC,CE1LA4B,IAYA,IAAMC,GAAQ,CACb,eAAgB,4BAChB,OAAQ,mCACR,KAAM,oBACP,EAEAC,EAAW,QAAQ,OAAO,OAAOD,EAAK,CAAC,EAEvC,IAAME,GAA6BC,GAA6BC,EAC/DD,EACA,sBACD;AAAA;AAAA;AAAA,UAGUH,GAAM;AAAA;AAAA;AAAA;AAAA;AAAA,KAKXK,EAAY,kCAAkC;AAAA;AAAA;AAAA,KAG9CA,EAAY,wCAAwC;AAAA;AAAA;AAAA,EAKnDC,GAAwBC,GAAgB,CACzCA,IACHA,EAAK,aAAe,CAACP,GAAM,MAAM,EAEnC,EAEA,SAASQ,GAAaC,EAAuD,CAC5E,MAAO,CACNC,EAAC,QAAK,UAAU,0BAA0B,EAC1CA,EAAC,cACA,IAAKD,EAAK,MAAM,WAAa,SAAWH,GAAuB,KAC/D,cAAY,OACZ,UAAW,sBACX,IAAKG,EAAK,MAAM,KACjB,EACAC,EAAC,QAAK,UAAU,mBAAmBD,EAAK,MAAM,KAAM,EACpDC,EAAC,QAAK,UAAU,+CACfA,EAAC,cACA,cAAY,OACZ,UAAU,0BACV,IAAKV,GAAM,KACZ,CACD,CACD,CACD,CAEA,IAAMW,GAAkB,CACvBR,EACAS,IACI,CACJ,IAAMC,EAAWT,EAAKD,EAAS,eAAe,uBAC7CW,GACIX,EAAQ,gBAAgBW,CAAC,QAC9BD,EAAI,UAAYL,GAEhB,IAAMO,EAAQ,IAAI,IAAIH,EAAc,IAAI,CAAC,CAAE,GAAAI,CAAG,IAAMA,CAAE,CAAC,EACjDC,EAAQ,IAAI,IACjBL,EAAc,IAAKM,GAAa,CAC/BA,EAAS,GACT,CACC,GAAIA,EAAS,GACb,MAAOA,EAAS,MAChB,KAAMA,EAAS,gBAAgB,MAC/B,SAAUA,EAAS,QACpB,CACD,CAAC,CACF,EAEA,OAAAL,EAAI,UAAU,MAAQI,EACtBJ,EAAI,UAAU,MAAQE,EACtBF,EAAI,OAAO,EAEJA,CACR,EAEaM,GAAoBhB,GAA6B,CAC7D,IAAMS,EAAgB,OAAO,OAAOT,EAAQ,MAAM,SAAS,EAAE,OAC5D,CAAC,CAAE,SAAAiB,CAAS,IAAMA,IAAa,UAChC,EAEMC,EAAUT,EAAc,OAC3BD,GAAgBR,EAASS,CAAa,EACtCV,GAA0BC,CAAO,EAEpC,OAAOC,EAAKD,EAAS,iBAAiB;AAAA;AAAA,KAElCkB;AAAA;AAAA,EAGL,EJ9FAC,KKdAC,IAKA,IAAMC,GAAQ,CACb,YAAa,8BACb,eAAgB,8BACjB,EAEAC,EAAW,QAAQ,OAAO,OAAOD,EAAK,CAAC,EAEhC,IAAME,EAAe,cACfC,GAAgB,eAEhBC,GAAc,CAC1B,CACC,GAAIF,EACJ,MAAOF,GAAM,YACb,SAAU,0CACV,YAAa,iBACd,EACA,CACC,GAAIG,GACJ,MAAOH,GAAM,eACb,SAAU,0CACV,YAAa,mBACb,OAAQ,EACT,CACD,EAEA,SAASK,GAAeC,EAAS,CAChC,IAAMC,EAAc,IAAI,IACxB,OAAAD,EAAQ,QAAQ,CAAC,CAAE,OAAAE,EAAQ,WAAAC,EAAY,UAAAC,CAAU,IAAM,CAClD,CAACD,GAAcD,GAAUE,GAG7BH,EAAY,IAAIE,CAAU,CAC3B,CAAC,EACMF,CACR,CAEO,SAASI,GAAmBC,EAAWN,EAAS,CACtD,IAAMC,EAAcF,GAAeC,CAAO,EAC1CM,EAAU,QAAQ,CAACC,EAAMC,IAAO,CAC/B,GAAI,CAACD,EAAK,WACT,OAGD,IAAME,EAAS,CAACR,EAAY,IAAIM,EAAK,UAAU,EAC3CE,IAAWF,EAAK,QACnBD,EAAU,IAAIE,EAAI,CAAE,GAAGD,EAAM,OAAAE,CAAO,CAAC,CAEvC,CAAC,CACF,CAEO,SAASC,GAAeJ,EAAWN,EAAS,CAClD,IAAMW,EAAc,IAAI,IACxBb,GAAY,QAAQ,CAAC,CAAE,YAAAc,EAAa,GAAGC,CAAI,IAAM,CAChDF,EAAY,IAAIE,EAAI,GAAI,CACvB,GAAGA,EACH,iBAAkBC,EAAYF,CAAW,CAC1C,CAAC,CACF,CAAC,EAED,IAAMX,EAAcF,GAAeC,CAAO,EAC1C,OAAAM,EAAU,QAASC,GAAS,CAC3B,IAAMQ,EAAiB,CAAE,GAAGR,EAAK,eAAgB,EAC3CJ,EAAaY,EAAe,GAClC,OAAOA,EAAe,GACtB,IAAMC,EAAe,CACpB,GAAGT,EACH,GAAGQ,EACH,WAAAZ,EACA,OAAQ,CAACF,EAAY,IAAIE,CAAU,EACnC,UAAWP,EACX,iBAAkBmB,EAAe,KAClC,EACA,OAAOC,EAAa,MACpBL,EAAY,IAAIK,EAAa,GAAIA,CAAY,CAC9C,CAAC,EAEML,CACR,CAEO,SAASM,GAAqBX,EAAW,CAE/C,OADiBY,EAAgB,gBAAgBZ,EAAW,UAAU,EACtD,OACf,CAACa,EAAKC,IAAaD,EAAI,IAAIC,EAAS,GAAIA,CAAQ,EAChD,IAAI,GACL,CACD,CLpEA,IAAMC,EAAQ,CACb,KAAM,yBACN,MAAO,sBACP,gBAAiB,gCACjB,OAAQ,8BACR,KAAM,0BACN,OAAQ,yBACR,YAAa,mCACb,SAAU,0BACV,KAAM,oBACP,EAEAC,EAAW,QAAQ,OAAO,OAAOD,CAAK,CAAC,EAEvC,IAAME,GACL,kDAED,SAASC,GAAaC,EAAKC,EAAM,CAChC,IAAMC,EAAYD,EAAK,MACvB,GAAIC,EAAU,SACb,OAAO,KAGR,IAAMC,EAAkBD,EAAU,UAClC,GAAIA,EAAU,YAAcC,EAAiB,CAC5C,IAAMC,EAAeJ,EAAI,UAAU,mBAAmBC,CAAI,EACpDI,EAAMF,EAAkBP,EAAM,KAAOA,EAAM,OAC3CU,EAAgBC,GACbC,GAAwB,YAAY,EAC5C,aACA,0BACA,KACAC,GAAM,aAAa,gBACnB,CACC,cAAe,GACf,IAAAJ,CACD,CACD,EACMK,EAAgBP,EACnB,oBACA,8CACH,OAAAC,EAAa,KACJG,GACCC,GAAwB,MAAM,EACtC,OACAE,EACAJ,EACAG,GAAM,aAAa,eACpB,CACD,EAEOL,EAGR,OAAO,IACR,CAEA,SAASO,GAAsBC,EAAcC,EAAS,CACrD,IAAMC,EAAYD,EAAQ,UACpBE,EAA2BC,GAE/BA,EAAa,kBAAoB,KACjCA,EAAa,cAAgBJ,EAGzB,CAACK,EAAkBC,CAAa,EAAI,CAAC,SAAU,MAAM,EAAE,IAAKC,GACjEC,EAAgB,gBAAgBN,EAAWK,EAAMJ,CAAuB,CACzE,EAEMM,EAAqB,CAAC,EAC5B,GAAIJ,EAAiB,OAAQ,CAC5B,IAAMK,EAAQC,EACb,mDACD,EACAF,EAAmB,KAAK,CACvB,KAAMR,EAAQ,KACd,aAAc,CAACjB,EAAM,WAAW,EAChC,UAAWA,EAAM,MACjB,MAAA0B,EACA,MAAOL,CACR,CAAC,EAEF,OAAIC,EAAc,QACjBG,EAAmB,KAAK,CACvB,KAAMR,EAAQ,KACd,MAAOA,EAAQ,YACf,MAAOK,CACR,CAAC,EAEKG,CACR,CAEA,eAAeG,GAAgBC,EAAY,CAC1C,IAAMC,EAAW,MAAMC,EAAiB,YAAYF,EAAY,IAAI,EAC9Db,EAAec,EAAS,KACxBE,EAAgBF,EAAS,OAASd,EAClCiB,EACLF,EAAiB,0BAA0BD,CAAQ,EAE9CI,EADaC,GAAc,cAAeL,CAAQ,EAC9B,WAAW,EAE/BM,EADgB,OAAO,mBAAmBpB,EAAc,MAAM,GAElD,CAACiB,EAAwB,OAE3C,MAAO,CACN,OAAAC,EACA,sBAAAE,EACA,SAAAN,EACA,aAAAd,EACA,cAAAgB,CACD,CACD,CAEA,SAASG,GAAcE,EAAaP,EAAUb,EAAU,CAAC,EAAG,CAC3D,IAAMD,EAAec,GAAU,KAE/B,OAAOQ,GAAS,eAAeD,EAAa,CAC3C,SAAAP,EACA,aAAAd,EACA,SAAU,iBACV,GAAGC,CACJ,CAAC,CACF,CAEA,IAAqBsB,GAArB,cAA6CC,EAAQ,CACpD,WAAaC,EACb,WAAaC,GAAY,IAAKC,GAAQA,EAAI,EAAE,EAC5C,IAAM,SAAS,cAAc,UAAU,EACvC,KAAO,SAAS,cAAc,4BAA4B,EAC1D,UAAY,KAEZ,MAMI,CACH,wBAAyB,KACzB,kBAAmB,KACnB,UAAW,CAAC,CACb,EAEA,UAAUC,EAAQ,CACjB,MAAM,UAAUA,CAAM,EACtB,KAAK,OAAO,CACb,CAEA,iBAAiBC,EAAS,CACzB,MAAM,iBAAiBA,CAAO,EAC9B,IAAMC,EAAW,KAAK,mBAChBC,EAAY,KAAK,UACvBD,EAAS,UAAU,OAAO,YAAa,CAACC,CAAS,EAC7CA,GAAa,KAAK,UACrB,WAAW,IAAM,CAChB,KAAK,MAAM,CACZ,CAAC,CAEH,CAEA,OAAQ,CACP,GAAI,CAAC,KAAK,MAAM,wBACf,OAAO,MAAM,MAAM,EAGpB,IAAMC,EAAc,KAAK,cACxB,oDACD,EAEIA,EACHA,EAAY,MAAM,EAEA,KAAK,cAAc,gCAAgC,EAC3D,MAAM,CAElB,CAEAC,GAAkBxC,EAAK,CACtB,OAAOyC,EAAK,KAAM,aAAa;AAAA;AAAA,UAEvBzC;AAAA;AAAA,KAGT,CAEA0C,IAAoB,CACnB,IAAMC,EAAYzB,EACjB,kDACD,EAEA,OAAOuB,EAAK,KAAM,aAAa;AAAA,YACrB;AAAA,cACE,IAAM,KAAK,mBAAmB;AAAA,YAChCE;AAAA;AAAA;AAAA;AAAA;AAAA,WAKDpD,EAAM;AAAA;AAAA,YAGhB,CAEAqD,GAAc,CACb,MAAAC,EACA,QAAAC,CACD,EAGgB,CACf,IAAMC,EAAkB,KAAK,aAAe,gBACtCC,EAAU,KAAK,SAAWzD,EAAM,OAASA,EAAM,SAE/C0D,EAAaF,EAAkB,KAAKL,GAAkB,EAAI,KAC1DQ,EAAaJ,EAAU,KAAKN,GAAkBM,CAAO,EAAI,KACzDK,EACL,KAAK,aAAeC,GACjBX,EAAK;AAAA;AAAA,sEAE2DlD,EAAM;AAAA,cAEtE,KAEJ,OAAOkD,EAAK,KAAM,SAAS;AAAA,yEAC4CI;AAAA,MACnEI;AAAA,MACAC;AAAA;AAAA,OAECL;AAAA;AAAA,MAEDM;AAAA;AAAA;AAAA,gBAGU,IAAM,KAAK,UAAU;AAAA;AAAA,qEAEgCH;AAAA;AAAA,UAGpE,CAEAK,IAA4D,CAC3D,OAAQ,KAAK,WAAY,CACxB,KAAKrB,EACJ,MAAO,CACN,MAAOd,EAAY,iBAAiB,EACpC,UAAW,KAAK,GACjB,EACD,KAAKkC,GACJ,MAAO,CACN,MAAOlC,EAAY,kBAAkB,EACrC,UAAWoC,GAAiB,IAAI,CACjC,EACD,QACC,MAAO,CACN,MAAO,KAAK,MAAM,mBAAmB,YACrC,UAAWC,GAAc,IAAI,CAC9B,CACF,CACD,CAEA,QAAS,CACR,KAAK,MAAM,kBAAoB,KAAK,sBAAsB,EAC1D,IAAMC,EAAoB,KAAK,MAAM,kBAE/B,CAAE,MAAAX,EAAO,UAAAY,CAAU,EAAI,KAAKJ,GAAe,EAEjD,KAAK;AAAA,KACF,KAAKT,GAAc,CACpB,MAAAC,EACA,QAASW,GAAmB,IAC7B,CAAC;AAAA,KACC,KAAK;AAAA,KACLC;AAAA,IAGH,KAAK,IAAI,UAAY,KAAK,SAC3B,CAEA,mBAAoB,CACnB,MAAM,kBAAkB,EACxB,KAAK,UAAU,IAAI,wBAAyBhE,EAA4B,EACxE,KAAK,aAAa,OAAQ,YAAY,EACtC,KAAK,UAAY,IAAIiE,GACrB,KAAK,mBAAqB,IAAIA,GAC9B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EACd,IAAI,iBAAkBC,GAAc,CACpD,IAAMC,EAAWD,EAAU,CAAC,EAAE,OACxBE,EAAaD,EAAS,MAAM,MAClCA,EAAS,mBAAmB,MAAM,KAAOC,CAC1C,CAAC,EAEQ,QAAQ,KAAM,CACtB,WAAY,GACZ,gBAAiB,CAAC,OAAO,CAC1B,CAAC,EACD,KAAK,OAAO,CACb,CAEA,SAAU,CACT,KAAK,SAAS,EACd,KAAK,UAAU,CAChB,CAEA,YAAa,CACZ,KAAK,MAAM,kBAAoB,KAC/B,KAAK,OAAO,CACb,CAEA,0BAA2B,CAC1B,IAAMC,EAAc,KAAK,KACnBC,EAAqB,CAC1B,YAAa,CAACC,EAAIC,IAAYH,EAAY,OAAOE,EAAIC,CAAO,EAC5D,cAAgBD,GAAO,CAEtB,IAAME,EADWJ,EAAY,KACD,IAAIE,CAAE,EAClC,OAAAF,EAAY,UAAUE,CAAE,EACjBE,CACR,EACA,wBAA0B9C,GAAe,CACxC,IAAI+C,EACEC,EAAWN,EAAY,KAC7B,OAAAM,EAAS,QAAQ,CAACC,EAAML,IAAO,CAC1BK,EAAK,aAAejD,IACvB+C,EAAQH,EAEV,CAAC,EACMI,EAAS,IAAID,CAAK,CAC1B,EACA,WAAY,IAAIG,IAAS,OAAO,SAAS,WAAW,GAAGA,CAAI,CAC5D,EACMC,EAA2B,CAACC,EAAaC,EAAOjE,IAAY,CACjEiE,EAAM,eAAe,EACrB,IAAMC,EAAS,CACd,YAAAF,EACA,EAAGC,EAAM,QACT,EAAGA,EAAM,QACT,GAAGjE,CACJ,EACMmE,EAAW,IAAI,YAAY,6BAA8B,CAC9D,OAAAD,CACD,CAAC,EACD,KAAK,cAAcC,CAAQ,CAC5B,EACAb,EAAY,GAAG,cAAe,CAACc,EAASH,IAAU,CACjD,IAAMI,EAAgBf,EAAY,KAAK,IAAIc,CAAO,EAC5CrE,EAAesE,EAAc,YAC7BrE,EAAU,CACf,cAAAqE,EACA,aAAAtE,EACA,GAAGwD,CACJ,EACAQ,EAAyB,qBAAsBE,EAAOjE,CAAO,CAC9D,CAAC,EACD,IAAMb,EAAM,KAAK,IACjBA,EAAI,GAAG,cAAe,CAACiF,EAASH,IAAU,CACzC9E,EAAI,OAAOiF,CAAO,EAClB,IAAMC,EAAgBlF,EAAI,KAAK,IAAIiF,CAAO,EACpCxD,EAAayD,EAAc,WAC3BrE,EAAU,CACf,cAAAqE,EACA,WAAAzD,EACA,GAAG2C,CACJ,EACAQ,EAAyB,qBAAsBE,EAAOjE,CAAO,CAC9D,CAAC,EACD,KAAK,6BAAgCiE,GAAU,CAC9C,IAAMK,EAAkBL,EAAM,OAAO,QAAQ,kBAAkB,EAC/D,GAAI,CAACK,EACJ,OAGDA,EAAgB,UAAU,IAAI,0BAA0B,EACxD,IAAMC,EAA0B,IAAM,CACrCD,EAAgB,UAAU,OAAO,0BAA0B,EAC3D,KAAK,UAAU,IAAI,oBAClB,mBACAC,CACD,CACD,EACA,KAAK,UAAU,IAAI,iBAClB,mBACAA,CACD,EAEA,IAAMC,EAAaF,EAAgB,QAAQ,IACrCD,EAAgB,KAAK,MAAM,UAAUG,CAAU,EAC/CzE,EAAesE,EAAc,YAKnCN,EACC,kCACAE,EANe,CACf,cAAAI,EACA,aAAAtE,CACD,CAKA,CACD,CACD,CAEA,2BAA4B,CAC3B,IAAM0E,EAAiB,KAAK,UAAU,IACtCA,EAAe,iBAAiB,kBAAmB,IAAM,CACxD,KAAK,UAAU,OAAOxF,EAA4B,CACnD,CAAC,EACDwF,EAAe,iBAAiB,mBAAqBC,GAAM,CAE1D,GADA,KAAK,UAAU,IAAIzF,EAA4B,EAC3CyF,EAAE,OAAO,OAAS,UAAW,CAChC,KAAK,MAAM,EACX,OAGI,KAAK,UACT,WAAW,IAAM,CAChB,KAAK,kBAAkB,SAAS,aAAa,CAC9C,CAAC,CAEH,CAAC,EACDD,EAAe,iBAAiB,QAAS,IAAM,CAC9C,KAAK,iBAAiB,CACvB,CAAC,CACF,CAEA,kBAAkBE,EAAS,CAC1B,IAAMC,EAAY,GAAQD,GAAW,KAAK,SAASA,CAAO,GACpDE,EAAgB,GACrBF,IACE,KAAK,UAAU,IAAI,SAASA,CAAO,GACnC,KAAK,mBAAmB,IAAI,SAASA,CAAO,IAEzCC,GAAaC,GAClB,KAAK,iBAAiB,EAAK,CAE7B,CAEA,UAAW,CACV,IAAMC,EAAaC,GAAa,CAC/B,IAAMC,EAAO,KAAK,KAClBA,EAAK,KAAK,QAAQ,CAACC,EAASzB,IAAO,CAC9ByB,EAAQ,aAAeF,EAAS,YACnCC,EAAK,UAAUxB,CAAE,CAEnB,CAAC,CACF,EACA,KAAK,IAAI,UAAU,IAAI,cAAc,EACrC,KAAK,IAAI,UAAYtE,GAAa,KAAK,KAAM,KAAK,GAAG,EACrD,IAAMgG,EAAU,MAAOd,EAASH,IAAU,CACzC,GACCA,EAAM,OAAS,WACf,CAAC,CAAC,QAAS,QAAS,aAAa,EAAE,SAASA,EAAM,IAAI,EAEtD,OAED,IAAMc,EAAW,KAAK,IAAI,KAAK,IAAIX,CAAO,EAEzCW,EAAS,WACTd,EAAM,OAAO,QAAQ,gCAAgC,EAErD,KAAK,iBAAiB,EACZc,EAAS,aACnB,KAAK,mBAAmBA,EAAS,UAAU,EAC3CD,EAAUC,CAAQ,EAEpB,EACA,KAAK,IAAI,GAAG,QAASG,CAAO,EAC5B,KAAK,IAAI,GAAG,UAAWA,CAAO,CAC/B,CAEA,WAAY,CACX,KAAK,KAAK,GAAG,SAAW1B,GAAO,CAC9B,GAAI,KAAK,WAAW,SAASA,CAAE,EAAG,CACjC,KAAK,mBAAmBA,CAAE,EAC1B,OAGD,IAAMpE,EAAO,KAAK,KAAK,KAAK,IAAIoE,CAAE,EAClC,KAAK,mBAAmBpE,EAAK,UAAU,CACxC,CAAC,EAED,KAAK,KAAK,GAAG,QAAUoE,GAAO,CACzB,KAAK,WAAW,SAASA,CAAE,GAC9B,KAAK,mBAAmBA,CAAE,CAE5B,CAAC,CACF,CAEA,kBAAmB,CACb,KAAK,WACT,KAAK,iBAAiB,EAAK,EAC3B,SAAS,gBAAgB,MAAM,EAEjC,CAEA,uBAAwB,CACvB,IAAM5C,EAAa,KAAK,MAAM,wBAC9B,GAAI,CAACA,EACJ,OAAO,KAIR,IAAMxB,EADQ,CAAC,GAAG,KAAK,IAAI,KAAK,OAAO,CAAC,EACrB,KACjBA,GAASA,EAAK,aAAewB,GAAc,CAACxB,EAAK,SACnD,EACA,GAAI,CAACA,EACJ,YAAK,mBAAmB,EACjB,KAGR,GAAM,CAAE,KAAA+F,EAAOpG,EAAM,gBAAiB,MAAOqG,CAAY,EAAIhG,EACvDW,EAAee,EAAiB,gBAAgBF,CAAU,EAC1DJ,EAAqBV,GAAsBC,EAAc,CAC9D,KAAAoF,EACA,YAAAC,EACA,UAAW,KAAK,MAAM,SACvB,CAAC,EAED,GAAI,KAAK,MAAM,mBAAmB,aAAexE,EAChD,MAAO,CACN,GAAG,KAAK,MAAM,kBACd,mBAAAJ,CACD,EAGD,IAAM6E,EAAqB,KAAK,kCAAkC,EAC5DrC,EAAoB,CACzB,OAAQ,GACR,mBAAAxC,EACA,KAAA2E,EACA,WAAAvE,EACA,aAAAb,EACA,sBAAuB,GACvB,mBAAAsF,EACA,YAAAD,EACA,cAAerF,CAChB,EAEA,YAAK,yBAAyBa,CAAU,EAEjCoC,CACR,CAEA,mBAAmBpC,EAAY,CAC9B,KAAK,WAAa,gBAClB,KAAK,MAAM,wBAA0BA,EACrC,KAAK,UAAY,KAAK,IAAI,UAE1B,MAAM,MAAM,EACZ,KAAK,OAAO,EACZ,KAAK,MAAM,CACZ,CAEA,mBAAmB+C,EAAQnC,EAAc,CACxC,KAAK,WAAamC,EAClB,KAAK,MAAM,wBAA0B,KACrC,KAAK,KAAK,UAAUA,CAAK,EAEzB,MAAM,MAAM,EACZ,KAAK,OAAO,EACZ,KAAK,IAAI,MAAM,CAChB,CAEA,MAAM,yBAAyB/C,EAAY,CAC1C,IAAM0E,EAAe,MAAM3E,GAAgBC,CAAU,EACjD,KAAK,MAAM,0BAA4BA,IAI3C,KAAK,MAAM,kBAAoB,CAC9B,GAAG,KAAK,MAAM,kBACd,GAAG0E,CACJ,EACA,KAAK,OAAO,EACZ,KAAK,MAAM,EACZ,CAEA,MAAM,gBAAgBrB,EAAO,CAC5B,IAAMK,EAAkBL,EAAM,OAAO,QAAQ,kBAAkB,EAC/D,GAAI,CAACK,EACJ,OAGD,IAAME,EAAaF,EAAgB,QAAQ,IACrCnE,EAAe,KAAK,MAAM,UAAUqE,CAAU,EAIpD,GAHsBP,EAAM,OAAO,QAClC,gCACD,EAEC1D,EAAgB,sBAAsBiE,CAAU,UACtCrE,EAAa,WAAa,OAAQ,CAC5C,IAAMoF,EAAmBpF,EAAa,YAChCU,EAAW,MAAMC,EAAiB,YAAYyE,CAAgB,EAC9DC,EAAgB3E,EAAS,iBAAsB,IAC/C4E,EAAgBD,EACnB,qBACA,cACGE,EAAW,KAAKD,CAAa,EAClCF,EACApF,EAAa,gBAAgB,GAC7BqF,EAAgB,GAAQ,CACzB,EACMG,EAAczE,GAAc,WAAYL,EAAU,CAAE,SAAA6E,CAAS,CAAC,EACpE,GAAIC,EAAY,WAAW,EAC1B,aAAMA,EAAY,QAAQ,EAEnB,KAAK,iBAAiB,EAG9B,IAAMC,EAAelF,EACpB,4CACA6E,CACD,EACAM,GAAYD,EAAc,CACzB,KAAM,OACP,CAAC,UACSzF,EAAa,WAAa,SAAU,CAC9C,IAAIS,EAAa,KAAK,MAAM,wBAC5B,GAAI,CAACA,EAAY,CAChB,IAAMb,EAAeI,EAAa,YAClCS,EAAaE,EAAiB,cAAcf,CAAY,EAEzD,KAAK,gBAAgBa,EAAY4D,CAAU,EAE7C,CAEA,MAAM,gBAAiB,CACtB,GAAM,CAAE,SAAA3D,CAAS,EAAI,KAAK,MAAM,kBAGhC,MAF2BK,GAAc,cAAeL,CAAQ,EAEvC,QAAQ,EAEjC,KAAK,iBAAiB,CACvB,CAEA,gBAAgBD,EAAYkF,EAAkB,CAC7C,OAAO,QAAQ,QACd,OAAO,SAAS,WAAWlF,EAAYkF,CAAgB,CACxD,EAAE,KAAK,IAAM,CACZ,KAAK,iBAAiB,CACvB,CAAC,CACF,CAEA,MAAM,UAAU7B,EAAO,CACtB,IAAMlC,EAAckC,EAAM,cACpB8B,EAAehE,EAAY,gBAAgB,EACjD,GAAI,CAACgE,EACJ,OAEDhE,EAAY,MAAM,EAElB,GAAM,CAAE,SAAAlB,CAAS,EAAI,KAAK,MAAM,kBAC1B6E,EAAW,KAAK,YAAY7E,EAAS,KAAMkF,EAAa,MAAM,EAC9DJ,EAAczE,GAAc,WAAYL,EAAU,CAAE,SAAA6E,CAAS,CAAC,EAChEC,EAAY,WAAW,GAC1BA,EAAY,QAAQ,CAEtB,CACD,EAEArE,GAAgB,OAAO,uBAAuB,EMzqB9C0E,ICAAC,IAEA,IAAMC,GAAU,CACf,mBAAoB,UACG,KAAM,QAAO,iBAAS,GACvB,kBAEvB,EAEA,eAAOC,GACNC,EACC,CACD,IAAMC,EAAuBH,GAAQE,CAAU,EAC/C,OAAKC,EAIEA,EAAqB,EAHpBC,CAIT,CDPAC,KA6BA,IAAMC,GAAQ,CACb,gBAAiB,gCACjB,WAAY,0BACb,EAEAC,EAAW,QAAQ,OAAO,OAAOD,EAAK,CAAC,EAEvC,IAAME,GAAmB,wBACnBC,GAAwB,6BAExBC,GAAY,CACjBC,EACAC,EACAC,EAAe,KACI,CACnB,IAAMC,EAAqBH,EAAK,YAC1BI,EAAgBJ,EAAK,UAAUC,EAAOC,CAAY,EAClDG,EAAQ,IAAI,YAAY,SAAU,CACvC,OAAQ,CACP,GAAIL,EAAK,YACT,WAAYG,CACb,CACD,CAAC,EACD,OAAAH,EAAK,cAAcK,CAAK,EAEjBD,CACR,EAEqBE,EAArB,cAAwCC,EAAK,CAE5C,QAII,CAAC,EACL,YAAc,GACd,aAAmC,KACnC,eAAgC,KAEhC,mBAAoB,CACnB,GAAI,CAAC,KAAK,YAAa,CACtB,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAcL,IAAMC,EAAoB,KAAK,cAAc,0BAA0B,EACvEA,GAAmB,iBAAiB,qBAAsB,IAAM,CAC/D,KAAK,kBAAkB,CACxB,CAAC,EAED,KAAK,aACJA,GAAmB,cAAc,mBAAmB,GAAK,KAC1D,KAAK,eAAiBX,GACtB,KAAK,MAAQ,KAAK,kBAClB,KAAK,SAAW,KAAK,MAAM,cAAc,KAAK,EAE9C,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EAErB,KAAK,YAAc,GAEpB,KAAK,OAAO,CACb,CACA,SAASY,EAAgBC,EAAcC,EAAe,CACrD,GAAI,CAACF,EACJ,OAAO,KAER,IAAMG,EAAW,KAAK,cAAc,YAAYH,CAAM,EAChDI,EAAM,KAAK,KAAK,KAAK,SAAUA,EAAK,CACzC,OAAOA,EAAI,QAAQ,QAAUJ,EAASG,EAAW,GAAG,IAAM,EAC3D,CAAC,EACD,GAAIC,EAAK,CACR,KAAK,UAAUA,CAAG,EAClB,OAED,IAAMC,EAAM,KAAK,cAChB,+BAAiCL,EAAS,+BAC3C,EACMM,EAAU,QAAUN,EAASG,EAAW,IAAM,KAAK,IAAI,EACvDI,EAAM,KAAK,KAAKF,EAAKC,EAAS,GAAOjB,EAAqB,EAChE,YAAK,eAAeiB,EAAS,CAAE,OAAAN,EAAQ,MAAAE,EAAO,MAAOD,CAAK,CAAC,EAEpDM,CACR,CACA,SAASF,EAAyBJ,EAAcC,EAAe,CAC9D,GAAI,CAACG,EACJ,OAAO,KAGR,IAAMD,EAAM,KAAK,KAAK,KAAK,SAAUA,EAAK,CACzC,OAAOA,EAAI,QAAQ,QAAUC,CAAG,IAAM,EACvC,CAAC,EACD,GAAID,EAAK,CACR,KAAK,UAAUA,CAAG,EAClB,OAED,IAAME,EAAU,QAAUD,EAAM,IAAM,KAAK,IAAI,EACzCG,EAAU,KAAK,cAAcH,CAAG,EAChCE,EAAM,KAAK,KAAKC,EAASF,EAAS,GAAOjB,EAAqB,EACpE,YAAK,eAAeiB,EAAS,CAAE,UAAWD,EAAK,MAAAH,EAAO,MAAOD,CAAK,CAAC,EAE5DM,CACR,CACA,MAAM,cACLE,EACAC,EACAC,EACA,CACC,MAAAT,EACA,MAAAU,EACA,SAAAC,EAAW,EACZ,EACC,CACD,IAAMrB,EAAQ,UAAYmB,EAE1B,GADe,KAAK,KAAK,SAASnB,CAAK,EAC3B,CACX,MAAMF,GAAU,KAAME,CAAK,EAC3B,OAGD,KAAK,OAAOA,EAAO,CAClB,WAAAiB,EACA,SAAAC,EACA,SAAAC,EACA,MAAAT,EACA,MAAAU,EACA,SAAU,EACX,CAAC,EAED,IAAME,EAAgBC,EAAK;AAAA;AAAA;AAAA;AAAA,UAInBvB;AAAA;AAAA,IAGc,SAAS,eAAe,QAAQ,GACvC,YAAYsB,CAAa,EAExC,IAAME,EAAoB,MAAMC,GAAgBR,CAAU,EACpDS,EAAS,IAAIF,EAAkBF,EAAeJ,CAAQ,EAE5D,aAAM,QAAQ,IAAI,CACjBQ,EAAO,KAAK,EACZ,KAAK,cAAc1B,EAAO,CAAE,OAAA0B,EAAQ,SAAAL,CAAS,CAAC,EAC9CvB,GAAU,KAAME,CAAK,CACtB,CAAC,EAEMA,CACR,CACA,WAAW2B,EAAoBC,EAA2B,CACzD,IAAMC,EAAeC,EAAiB,gBAAgBH,CAAU,EAChE,GAAI,CAACE,EACJ,OAAO,KAGR,IAAMhB,EAAM,KAAK,cAChB,6BACCc,EACA,iBACAE,GACCD,EAAmB,qBAAuBA,EAAmB,GAChE,EAEMd,EAAU,UAAYa,EAAaE,EAAe,IAAM,KAAK,IAAI,EAEjEd,EAAM,KAAK,KAAKF,EAAKC,EAAS,EAAK,EACzC,OAAAC,EAAI,iBAAiB,SAAU,SAAY,CAC1C,OAAO,cAAc,IAAI,YAAY,QAAQ,CAAC,EAC9C,MAAM,KAAK,OAAO,EAClB,KAAK,eAAe,KAAK,WAAW,CACrC,CAAC,EACD,KAAK,eAAeD,EAAS,CAC5B,WAAAa,EACA,iBAAAC,EACA,MAAOC,EACP,MAAOnC,GAAM,UACd,CAAC,EAEuBoC,EAAiB,YAAYH,EAAY,IAAI,EACrD,KAAMI,GAAa,CAClC,IAAMrB,EAAQqB,EAAS,aACvB,GAAI,CAACrB,EACJ,OAGD,IAAMsB,EAAQ,CAAE,MAAAtB,CAAM,EACtB,OAAO,KAAK,eAAeI,EAASkB,CAAK,CAC1C,CAAC,EAEMjB,CACR,CACA,UAAW,CACV,KAAK,KAAK,QAASkB,GAAO,CACzB,IAAMC,EAAQ,SAAS,eAAeD,CAAE,EACpCC,IACHA,EAAM,MAAM,QAAU,IACtBA,EAAM,MAAM,SAAS,EAAI,KAE3B,CAAC,CACF,CACA,SAASD,EAAY,CACpB,IAAME,EAAO,KAAK,KAAK,IAAIF,CAAE,EAC7B,aAAM,UAAUA,CAAE,EAClBE,GAAQ,KAAK,QAAQ,iBAAiB,KAAK,KAAMF,EAAIE,CAAI,EAClDA,CACR,CACA,MAAM,UAAUF,EAAYhC,EAAe,GAAyB,CACnE,GAAI,CAACgC,EAAI,CACR,IAAM/B,EAAqB,KAAK,YAChC,KAAK,YAAc,KACnB,IAAME,EAAQ,IAAI,YAAY,SAAU,CACvC,OAAQ,CACP,GAAI,KAAK,YACT,WAAYF,CACb,CACD,CAAC,EACD,YAAK,cAAcE,CAAK,EACjB,GAGR,KAAK,SAAS,EACd,IAAM8B,EAAQ,SAAS,eAAeD,CAAE,EACxC,OAAIC,IACHA,EAAM,MAAM,QAAU,IACtBA,EAAM,MAAM,SAAS,EAAI,QAErBjC,GACJ,KAAK,SAASgC,CAAE,EAGV,MAAM,MAAM,UAAUA,CAAE,CAChC,CACA,SAASA,EAAY,CAEpB,IAAMG,EADe,SAAS,eAAeH,CAAE,EACZ,cAC/BG,GAAe,YAClBA,EAAc,YAAY,EAChBA,GAAe,OACzBA,EAAc,MAAM,CAEtB,CACA,eAAgB,CACf,IAAMC,EAAY,KAAK,KAAK,KAAK,KAAK,OAAS,CAAC,EAChD,OAAIA,IAAc,KAAK,YACf,KAAK,KAAK,KAAK,KAAK,OAAS,CAAC,GAAK,KAGpCA,GAAa,IACrB,CACA,MAAM,UACLJ,EACAK,EAAuB,GACG,CAC1B,IAAMC,EAAe,SAAS,eAAeN,CAAE,EAC/C,GAAI,CAACM,EACJ,OAGD,IAAMC,EAAS,SAAY,CAC1B,IAAM5B,EAAM,KAAK,KAAK,IAAIqB,CAAE,EAC5B,GAAIrB,GAAK,QAEJ,CADoB,MAAMA,EAAI,OAAO,iBAAiB,EAEzD,OAIF,MAAM,UAAU2B,EAAa,EAAE,EAC/B3B,GAAO,KAAK,QAAQ,iBAAiB,KAAK,KAAM2B,EAAa,GAAI3B,CAAG,EACpE,IAAM6B,EAASF,EAAa,GAAG,QAAQ,KAAK,eAAiB,IAAK,EAAE,EACpE,KAAK,gBAAgBE,CAAM,EAC3BF,EAAa,IAAM,cACnBA,EAAa,WAAW,YAAYA,CAAY,CACjD,EACA,GACC,CAACA,EAAa,eACdA,EAAa,cAAc,MAAM,SAAS,EAAE,QAAQ,eAAe,EAAI,GACtE,CACD,MAAMC,EAAO,EACb,OAGD,OAAO,IAAI,QAASE,GAAY,CAC/BH,EAAa,cAAc,MAAM,MAAOI,GAAsB,CACzDA,GACH,MAAMH,EAAO,EAEdE,EAAQC,CAAQ,CACjB,EAAGL,CAAoB,CACxB,CAAC,CACF,CACA,MAAM,mBAAmBL,EAAI,CAC5B,GAAI,CAACA,EACJ,OAGD,IAAMlB,EAAM,SAAS,eAAekB,CAAE,EAAE,cACxC,GAAIlB,EAAI,WACP,OAAO,MAAM,KAAK,kBAAkBA,EAAKkB,CAAE,EAG5C,IAAMW,EAAa7B,EAAI,KACjB0B,EAASG,EAAW,aAAa,IAAI,EACrCb,EAAWa,EAAW,aAAa,MAAM,EACzCN,EAAuB,GAG7B,GAAI,CADa,MAAM,KAAK,UAAUL,EAAIK,CAAoB,EAE7D,OAGD,IAAMO,EAAa,KAAK,YAAYd,EAAUU,CAAM,EAC9CK,EAAgB,GACtB,OAAO,MAAM,KAAK,aAAaD,EAAY,WAAYC,CAAa,CACrE,CACA,kBAAkB/B,EAAKkB,EAAI,CAC1B,IAAMQ,EAAS1B,EAAI,OACbc,EAAed,EAAI,aACnBgC,EAAahC,EAAI,WACvB,OAAO,KAAK,UAAUkB,CAAE,EAAE,KAAK,SAAUU,EAAU,CAC9CA,IACCI,IAAe,aAAeA,IAAe,qBAChD,OAAO,aAAa,KACnBlB,EACAY,EACAM,IAAe,YACf,KACA,EACD,CAGH,CAAC,CACF,CACA,MAAM,qBAAqBC,EAAqB,CAC/C,IAAInB,EACAoB,EAEJ,GAAI,CAACD,EAAY,aAChB,OAGD,GAAIA,EAAY,MAAQA,EAAY,aACnCC,EAAOD,EAAY,KACnBnB,EAAemB,EAAY,iBACrB,CACN,IAAMjC,EAAM,OAAOiC,EAAY,eAAe,EAC9CnB,EAAe,OAAOmB,EAAY,eAAe,EAAE,aACnDC,EAAOlC,EAAI,KAGZ,IAAMD,EAAUkC,EAAY,aAAa,aAAa,IAAI,GAAK,GACzDjB,EAAW,MAAMD,EAAiB,YAAYD,CAAY,EAC1DY,EAASQ,EAAK,aAAa,IAAI,EAC/BtB,EAAaG,EAAiB,cAAcD,CAAY,EACxDT,EAAQW,EAAS,WAAgBrC,GAAM,gBACvCgB,EAAQ,KAAK,eAAeuC,CAAI,EAChCjB,EAAQ,CAAE,OAAAS,EAAQ,WAAAd,EAAY,MAAAP,EAAO,MAAAV,CAAM,EACjD,OAAO,KAAK,eAAeI,EAASkB,CAAK,CAC1C,CACA,MAAM,cAAcC,EAAYD,EAA2B,CAC1D,MAAM,MAAM,cAAcC,EAAID,CAAK,EACnC,KAAK,QAAQ,iBAAiB,KAAK,KAAMC,EAAID,CAAK,CACnD,CACA,MAAM,eAAeC,EAAYD,EAA2B,CAC3D,MAAM,KAAK,cAAcC,EAAID,CAAK,EAClC,KAAK,eAAeC,CAAE,CACvB,CACA,MAAM,OAAOA,EAAYiB,EAA6BC,EAAmB,CACxE,MAAM,MAAM,OAAOlB,EAAIiB,EAASC,CAAQ,EAExC,IAAMhB,EAAO,KAAK,KAAK,IAAIF,CAAE,EAC7BE,GAAQ,KAAK,QAAQ,iBAAiB,KAAK,KAAMF,EAAIE,CAAI,CAC1D,CACA,KAAKiB,EAAatC,EAAiBuC,EAAsBC,EAAY,GAAI,CACxE,IAAMC,EAAS,SAAS,cAAc,QAAQ,EACxCC,EAAa,KAAK,KAAK,SAAW,EACxC,SAAS,eAAe,QAAQ,GAAG,YAAYD,CAAM,EACrD,KAAK,OAAOzC,EAAS,CAAE,SAAU,EAAK,CAAC,EAClCA,EAAQ,WAAW,YAAY,GACnC,KAAK,cAAcA,EAAS,CAAE,UAAW,IAAK,CAAC,EAEhDyC,EAAO,GAAKzC,EACZyC,EAAO,UAAY,GAAG,KAAK,kBAAkBD,GAAa,KAAK,KAAK,EACpEC,EAAO,IAAMH,EACbG,EAAO,aAAa,OAAQ,UAAU,EAClCF,GAAe,CAACG,GACnBD,EAAO,MAAM,QAAU,IACvBA,EAAO,MAAM,SAAS,EAAI,MAE1BzD,GAAU,KAAMgB,EAASuC,CAAW,EAErC,IAAMtC,EAAMwC,EAAO,cACnB,OAAAxC,EAAI,OAAS,OACbA,EAAI,KAAOwC,EAAO,KAAOzC,EAClBC,CACR,CACA,mBAAoB,CACnB,IAAM0C,EAAUrD,GAAsB,CAGrC,IAAMJ,EAFSI,EAAM,OACmB,QAAQ,IAAI,GAC7B,aAAa,cAAc,EAE9CJ,GACHF,GAAU,KAAME,CAAK,CAEvB,EAEM0D,EAAQ,KAAK,KAAK,IACvB,SAAU9C,EAAK,CACd,IAAMuB,EAAO,KAAK,KAAK,IAAIvB,CAAG,EACxBH,EAAO,KAAK,UAAU0B,EAAK,KAAK,EAClC1B,IACHA,EAAK,UAAY,wBAElB,IAAM6C,EACL,wCACC,KAAK,cAAgB1C,EAAM,YAAc,IAE3C,OACC+C,EAAC,MACA,UAAWL,EACX,eAAc1C,GAEd+C,EAAC,QAAK,UAAU,iCAAiC,EAChDlD,EACA0B,EAAK,KACP,CAEF,EAAE,KAAK,IAAI,CACZ,EASQyB,GAPPD,EAAC,MACA,UAAU,YACV,YAAaF,GAEZC,CACF,EAEoB,KAAK,YAAY,CACvC,CACA,qBAAqBG,EAAWC,EAAO,CACtC,IAAMC,EAAQ,KAAK,KAAK,QAAQF,CAAS,EACrCE,IAAU,KACb,KAAK,KAAKA,CAAK,EAAID,GAGpB,IAAME,EAAU,KAAK,KAAK,IAAIH,CAAS,EACvC,KAAK,KAAK,OAAOA,CAAS,EAC1B,KAAK,KAAK,IAAIC,EAAO,OAAO,OAAO,CAAC,EAAGE,CAAO,CAAC,EAE3CH,IAAc,KAAK,cACtB,KAAK,YAAcC,GAGpB,IAAM5B,EAAQ,SAAS,eAAe2B,CAAS,EAC/C3B,EAAM,GAAKA,EAAM,KAAO4B,EACxB,KAAK,OAAO,CACb,CACA,kBAAkB7B,EAAI,CACrB,OAAO,KAAK,KACV,OAAO,SAAUgB,EAAM,CACvB,OAAOA,EAAK,QAAQ,UAAYhB,CAAE,EAAI,EACvC,CAAC,EACA,IAAI,SAAUgB,EAAM,CACpB,OAAO,OAAO,SAAS,eAAeA,CAAI,EAAE,aAC7C,CAAC,CACH,CACA,QAAS,CACR,IAAMgB,EAAY,KAAK,KAAK,OAAS,EACrC,YAAK,UAAU,OAAO,kCAAmC,CAACA,CAAS,EAC5D,MAAM,OAAO,CACrB,CACA,mBAAoB,CACnB,KAAK,KAAK,QAAShC,GAAO,CACzB,IAAMrB,EAAM,KAAK,KAAK,IAAIqB,CAAE,EAC5B,GAAIrB,GAAK,OAAQ,CAChBA,EAAI,OAAO,QAAQ,EACnB,OAGD,KAAK,KAAK,OAAOqB,CAAE,EACnB,IAAMC,EAAQ,OAAO,SAAS,eAAeD,CAAE,EACzCQ,EAASP,EAAM,GAAG,QAAQ,KAAK,eAAiB,IAAK,EAAE,EAC7D,KAAK,gBAAgBO,CAAM,EAC3BP,EAAM,IAAM,aACb,CAAC,EACD,KAAK,KAAO,CAAC,CACd,CACA,MAAM,UAAUnC,EAAO,CAAC,GAAG,KAAK,IAAI,EAAG,CACtC,IAAMmE,EAAa,CAAC,EACdC,EAAgBpE,EAAK,IAAKC,GAAU,CACzC,IAAIoE,EAAW,GACf,GAAIpE,EAAM,WAAW,YAAY,EAAG,CACnC,IAAMqE,EAAY,OAAO,SAAS,eAAerE,CAAK,EAAE,cACxDoE,EACCC,EAAU,OACTA,EAAU,KAAK,UAAUA,EAAU,IAAI,GACvCA,EAAU,KAAK,SAASA,EAAU,IAAI,GAGzC,OAAID,GACHF,EAAW,KAAKlE,CAAK,EACd,QAAQ,QAAQ,GAGjB,KAAK,UAAUA,CAAK,CAC5B,CAAC,EACD,MAAM,QAAQ,IAAImE,CAAa,EAE/B,QAASG,EAAI,EAAGA,EAAIJ,EAAW,OAAQI,IAAK,CAC3C,IAAMtE,EAAQkE,EAAWI,CAAC,EAC1B,MAAM,KAAK,UAAUtE,CAAK,EAC1B,MAAM,KAAK,UAAUA,CAAK,EAG3B,OAAO,MAAM,KAAK,OAAO,CAC1B,CACA,eAAeuE,EAAe,CAC7B,IAAMC,EAAmB,KAAK,KAAK,QAAQD,CAAa,EAClDE,EAAgB,KAAK,KAAK,MAAM,EACtC,OAAAA,EAAc,OAAOD,EAAkB,CAAC,EAEjC,KAAK,UAAUC,CAAa,CACpC,CACD,EAEApE,EAAW,OAAO,kBAAkB,EEnkBpCqE,ICAAC,ICAAC,ICAAC,IAGe,SAARC,EACNC,EACAC,EAAe,mBACfC,EAAW,UAAU,SACpB,CACD,OAAO,IAAI,gBAAgB,IAAI,SAASF,CAAQ,EAAGC,EAAcC,CAAQ,CAC1E,CDHA,IAAMC,GAAS,CACd,QAAS,uBACV,EAEAC,EAAW,QAAQ,OAAO,OAAOD,EAAM,CAAC,EAExC,IAAME,GAAsB,IAAM,CACjC,IAAMC,EAAkBC,EAAmB,MAAM,EAC3CC,EAAQF,EAAgB,UAAU,gBAAgB,EAClDG,EAAS,IAAIC,EAAO,OAAQ,CAAE,MAAAF,CAAM,CAAC,EAE3CC,EAAO,WAAW,UAAU,IAC3B,oBACA,mCACD,EAEA,IAAME,EAAkB,IAAM,CAC7B,IAAMC,EAAiBH,EAAO,YAAY,cACzC,wBACD,EAAE,QACFA,EAAO,MAAMG,CAAc,CAC5B,EACA,OAAAC,EAAKJ,EAAO,WAAW;AAAA;AAAA,yCAGpBN,GAAO;AAAA,2CAEgCG,EAAgB,kBACvD,yDACA,KAAK,QAAQ,eAAe,CAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMGA,EAAgB,UACjB,0DACD;AAAA;AAAA,mCAE+BK;AAAA,sCACGL,EAAgB,UACjD,iBACD;AAAA;AAAA;AAAA,GAKHG,EAAO,WAAW,iBAAiB,SAAWK,GAAU,CACvDA,EAAM,eAAe,CACtB,CAAC,EAEDL,EAAO,KAAK,EAELA,EAAO,OACf,EAEOM,GAAQV,GD3Df,IAAMW,GAAa,kBACbC,GAAc,IAAM,CACzB,IAAMC,EAAW,aAAa,QAAQF,EAAU,EAC5CG,EAAQ,CAAC,EACb,GAAI,CACCD,IACHC,EAAQ,KAAK,MAAMD,CAAQ,EAE7B,MAAE,CACD,OAAOC,CACR,CAEA,OAAOA,CACR,EAEMC,GAAa,IAClB,OAAO,SAAS,KAAK,QAAQ,cAAe,QAAQ,EAAE,YAAY,EAC7DC,GAAoB,IAAM,CAC/B,IAAMC,EAAUF,GAAW,EACrBG,EAAYN,GAAY,EAEzBM,EAAU,SAASD,CAAO,GAC9BC,EAAU,KAAKD,CAAO,EAEvB,aAAa,QAAQN,GAAY,KAAK,UAAUO,CAAS,CAAC,CAC3D,EACMC,GAAkB,iCAClBC,GAAe,UAAY,CAChC,OAAI,eAAe,QAAQD,EAAe,EAClC,GAEDP,GAAY,EAAE,SAASG,GAAW,CAAC,CAC3C,EAEMM,GAA2B,gBAAkB,CAClD,GAAI,KAAK,QAAQ,YAAY,GAAKD,GAAa,EAC9C,OAGsB,MAAME,GAA0B,EAEtDN,GAAkB,EAElB,eAAe,QAAQG,GAAiB,EAAI,CAE9C,EAEOI,GAAQF,GGnDfG,IAMA,IAAMC,GAAS,CACd,MAAO,qBACR,EAEAC,EAAW,QAAQ,OAAO,OAAOD,EAAM,CAAC,EAExC,IAAME,GAAkB,IAAM,CAC7B,IAAMC,EAAkBC,EAAmB,MAAM,EAC3CC,EAAQF,EAAgB,UAC7B,iDACD,EACMG,EAAS,IAAIC,EAAO,OAAQ,CAAE,MAAAF,CAAM,CAAC,EAE3CC,EAAO,WAAW,UAAU,IAC3B,oBACA,8BACD,EAEA,IAAME,EAAUL,EAAgB,UAC/B,qCACD,EACA,OAAAM,EAAKH,EAAO,WAAW;AAAA;AAAA,sBAEFN,GAAO;AAAA,2CACcQ;AAAA;AAAA,GAI1CF,EAAO,WAAW,iBAAiB,SAAWI,GAAU,CACvDA,EAAM,eAAe,CACtB,CAAC,EAEDJ,EAAO,KAAK,EAELA,EAAO,OACf,EAEOK,GAAQT,GC3CfU,ICAAC,IAOA,IAAMC,GAAkBC,GAAe,CACtC,IAAMC,EAAkBC,EAAmB,MAAM,EAC3CC,EAAQF,EAAgB,UAAU,qBAAqB,EACvDG,EAAS,IAAIC,EAAO,OAAQ,CAAE,MAAAF,CAAM,CAAC,EAE3CC,EAAO,WAAW,UAAU,IAAI,+BAA+B,EAC/D,IAAME,EAAkBC,EAAK;AAAA,mBACXJ;AAAA,KACdH,EAAW,IAAKQ,GAAS,kBAAkBA,MAASA,YAAe;AAAA;AAAA,GAIjEC,EAAiB,IAAML,EAAO,MAAME,EAAgB,KAAK,EAEzDI,EADiBC,GAAoB,EAE1CV,EAAgB,UAAU,WAAW,EACrC,+CACAQ,CACD,EAGA,OADaG,EAAKR,EAAO,WAAW;AAAA;AAAA;AAAA;AAAA,OAK9BE;AAAA;AAAA;AAAA;AAAA;AAAA,yDAKkDI;AAAA,GAGxDN,EAAO,WAAW,iBAAiB,SAAWS,GAC7CA,EAAM,eAAe,CACtB,EAEAT,EAAO,KAAK,EAELA,EAAO,OACf,EAEOU,GAAQf,GD5Cf,IAAMgB,GAAgC,CAACC,EAASC,IAAc,CAC7D,IAAMC,EAAW,GAAK,IAAI,KAAK,EAAE,kBAAkB,EAC7CC,EAAY,CAAC,EACnBA,EAAUD,EAAWF,CAAO,EAAIC,EAChC,aAAa,QAAQ,WAAY,KAAK,UAAUE,CAAS,CAAC,CAC3D,EAEMC,GAAkB,SAAY,CACnC,IAAMC,EAAkBC,EAAmB,MAAM,EAC7CN,EAEJ,GAAI,CACHA,EAAU,IAAI,KAAK,eAAe,EAAE,gBAAgB,EAAE,UAAY,EACnE,MAAE,CACDA,EAAU,EACX,CAEA,IAAME,EAAW,GAAK,IAAI,KAAK,EAAE,kBAAkB,EAC/CC,EAAY,CAAC,EAEjB,GAAI,CACHA,EAAY,KAAK,MAAM,aAAa,QAAQ,UAAU,CAAC,CACxD,MAAE,CACDA,EAAY,CAAC,CACd,CAEA,IAAMF,EAAYE,IAAYD,EAAWF,CAAO,EAChD,GAAIC,EACH,OAAOA,EAGR,IAAMM,EAAYP,EAAU,OAAS,UAC/BQ,EAAY,IAAI,KAAK,EAAE,YAAY,EACnCC,GAAmB,GAAK,IAAI,KAAK,EAAE,kBAAkB,GAAG,SAAS,EAEjEC,EAAM,IAAI,IAAI,KAAK,WAAW,EAAI,4BAA4B,EACpEA,EAAI,aAAa,IAAI,UAAWV,CAAO,EACvCU,EAAI,aAAa,IAAI,YAAaH,CAAS,EAC3CG,EAAI,aAAa,IAAI,YAAaF,CAAS,EAC3CE,EAAI,aAAa,IAAI,mCAAoCD,CAAe,EAGxE,IAAME,GADY,MAAO,MAAM,MAAMD,CAAG,GAAG,KAAK,GACnB,IAAI,CAAC,CAAE,GAAAE,CAAG,IAAMA,CAAE,EAE/C,GAAID,EAAW,SAAW,EACzB,MAAM,IAAI,MAAMN,EAAgB,UAAU,yBAAyB,CAAC,EAC9D,OAAIM,EAAW,SAAW,GAChCZ,GAA8BC,EAASW,EAAW,CAAC,CAAC,EAC7CA,EAAW,CAAC,GAGbE,GAAqBF,CAAU,EAAE,KAAMG,IAC7Cf,GAA8BC,EAASc,CAAK,EACrCA,EACP,CACF,EAEOC,GAAQX,GE9DfY,IAIe,SAARC,IAAyB,CAC/B,OAAO,QAAQ,IAAI,CAClBC,GAAY,0BAA0B,EACtC,KAAK,qBAAqB,SAAS,KAAK,iBAAiB,CAAC,CAC3D,CAAC,EACC,KAAK,SAAUC,EAAQ,CAEvB,GAD0BA,EAAO,CAAC,EACZ,mBAAqB,GAC1C,OAED,IAAMC,EAA2BD,EAAO,CAAC,EACnCE,EAAoB,IAAI,OAAO,kBAAkB,KAAK,WAAW,CAAC,EAClEC,EAAgBD,EAAkB,sBAAsB,EAAI,IAClE,OAAO,KAAK,YAAY,KACvB,OAAO,cACPC,EACAF,CACD,EACE,KAAK,gBAAkB,CACvB,IAAMG,EACL,sCACKC,EAAS,IAAI,gBAClB,SAAS,OAAO,OAAO,EAAG,SAAS,OAAO,MAAM,CACjD,EACMC,EAAU,CACf,OAAQD,EAAO,IAAI,QAAQ,EAC3B,SAAUA,EAAO,IAAI,IAAI,EACzB,oBAAqBA,EAAO,IAAI,MAAM,EACtC,MAAO,CACN,UAAW,SAAS,IACrB,CACD,EAgBA,GAdIC,EAAQ,SAAW,KACtBA,EAAQ,OAAS,kBAGd,eAAeF,CAAgC,IAAM,SAGxD,OAAOE,EAAQ,OACf,eAAe,WAAWF,CAAgC,GAGtC,MAAM,UAAU,eAAe,gBACnD,OAAO,QACR,EACkB,CACjB,GAAM,CAAE,OAAQG,CAAO,EAAI,MAAM,UAAU,cAAc,MAQzD,GAAIA,EAAQ,CAEX,IAAMC,EAAU,CAAE,KADLN,EAAkB,QAAQ,CAChB,EACvBK,EAAO,YAAY,CAAE,KAAM,cAAe,QAAAC,CAAQ,CAAC,GAIrD,OAAO,KAAK,YAAY,MAAMF,CAAO,CACtC,CAAC,EACA,KAAK,SAAUN,EAAQ,CACvB,GAAIA,EAAO,QAAU,YACpB,OAAO,KAAK,MAAM,EAAE,KAAK,UAAY,CACpC,OAAO,kBAAkB,CAC1B,CAAC,CAEH,CAAC,CACH,CAAC,EACA,MAAM,SAAUS,EAAK,CACrB,OAAO,KAAK,WAAWA,CAAG,EAAE,KAAK,UAAY,CAC5C,GAAI,KAAK,YAAY,SAAS,EAAG,CAChC,IAAMC,EAAM,IAAI,IAAI,OAAO,SAAS,IAAI,EACxCA,EAAI,aAAa,OAAO,WAAW,EACnC,IAAIC,EAAYD,EAAI,SAAS,EAE7B,OACCD,aAAe,aACfA,EAAI,eAAe,IAAM,sBACzB,CAACC,EAAI,aAAa,IAAI,QAAQ,IAE1BC,EAAU,SAAS,GAAG,EACzBA,GAAa,UAEbA,GAAa,WAIR,KAAK,YAAY,OAAO,CAC9B,MAAO,CACN,UAAWA,CACZ,CACD,CAAC,EAEH,CAAC,CACF,CAAC,CACH,CPjGA,SAASC,IAAwB,CAChC,IAAMC,EAAgB,OAAO,YAAc,OAAO,WAAW,cAE7D,GAAI,KAAK,uBAAuB,gBAAgB,IAAM,GAItD,IAAI,KAAK,aAAa,EACrB,cAAO,gBAAgB,EAChB,qCACD,GACNA,GACAA,EAAc,eAAe,GAC7B,KAAK,uBAAuB,6BAA6B,IAAM,GAE/D,MAAO,qCAET,CACA,eAAeC,IAAgB,CACzB,UAAU,eACd,MAAMC,GAAsB,EAG7B,MAAMC,GAAyB,EAE/B,GAAI,CACH,IAAMC,EAAe,MAAMC,GAAgB,EAC3C,KAAK,uBAAuB,iCAAkCD,CAAY,EAC1E,MAAME,GAAM,CACb,OAASC,EAAP,CACD,KAAK,WAAWA,EAAE,OAAO,CAC1B,CACA,KAAK,uBAAuB,MAAM,CACnC,CACA,SAASC,IAAkB,CAC1B,GAAI,CAAC,OAAO,KACX,OAED,KAAK,uBAAuB,iBAAkB,EAAI,EAClD,KAAK,sBAAsB,EAAI,EAE/B,GAAM,CAAE,WAAAC,CAAW,EAAI,OACvB,GAAIA,GAAcA,EAAW,cAAe,CAC3C,GAAM,CAAE,eAAAC,EAAgB,iBAAAC,CAAiB,EAAIF,EAAW,cACxDC,EAAe,kBAAkB,EACjCC,EAAiB,kBAAkB,EAGpC,KAAK,OAAO,CACb,CAEA,IAAOC,GAAQ,CAAE,sBAAAb,GAAuB,cAAAE,GAAe,gBAAAO,EAAgB,EQ1DvEK,ICAAC,IAOA,IAAMC,GAAkB,sBAClBC,GAA0B,kCAC1BC,GAAuB,4BAERC,EAArB,KAAyC,CACxC,eACA,iBACAC,GAA4B,KAC5BC,GAAmC,KACnC,QAGA,YACCC,EACAC,EACAC,EAEI,CAAC,EACJ,CACD,KAAK,eAAiBF,EACtB,KAAK,iBAAmBC,EAExB,KAAK,iBAAiB,iBAAiB,UAAW,IAAM,CACvD,KAAK,iBAAiB,KAAK,gBAAgB,CAC5C,CAAC,EACD,KAAK,eAAe,iBAAiB,UAAW,IAAM,CACrD,KAAK,iBAAiB,KAAK,cAAc,CAC1C,CAAC,EACD,KAAK,eAAe,iBAAiB,SAAYE,GAAuB,CAClEA,EAAM,OAAO,KACjB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,KAAK,gBAAgB,GAE5C,KAAKC,GAAoB,CAC1B,CAAmB,EACnB,KAAK,iBAAiB,iBAAiB,SAAYD,GAAuB,CACrE,CAACA,EAAM,OAAO,IAAM,KAAK,eAAe,KAAK,KAAO,GACvD,KAAK,iBAAiB,KAAK,cAAc,EAE1C,KAAKC,GAAoB,CAC1B,CAAmB,EAEnB,KAAK,iBAAiB,iBAAiB,QAAWD,GAAuB,CACxE,GAAM,CAAE,GAAAE,CAAG,EAAIF,EAAM,OACfG,EAAU,KAAK,iBAAiB,KAAK,IAAID,CAAE,EACjDC,GACCJ,EAAQ,SAAS,mBAChB,KAAK,iBAAiB,KACtBG,EACAC,CACD,EAED,KAAKF,GAAoB,CAC1B,CAAmB,EACnB,KAAK,eAAe,iBAAiB,QAAWD,GAAuB,CACtE,GAAM,CAAE,GAAAE,CAAG,EAAIF,EAAM,OACfG,EAAU,KAAK,eAAe,KAAK,IAAID,CAAE,EAC/CC,GACCJ,EAAQ,SAAS,iBAChB,KAAK,eAAe,KACpBG,EACAC,CACD,EAED,KAAKF,GAAoB,CAC1B,CAAmB,EAEnB,KAAK,iBAAiB,QAAQ,eAC7BF,EAAQ,SAAS,mBAClB,KAAK,eAAe,QAAQ,eAC3BA,EAAQ,SAAS,iBAElB,KAAK,QAAU,CAAE,mBAAoBA,EAAQ,SAAS,kBAAmB,EACzE,KAAKH,GAAgB,KAAK,gBAC3B,CACA,GACCQ,EACAC,EACC,CACD,IAAMC,EAAoB,KAAK,eAAe,GAC7CF,EACA,CAACG,EAAOP,IAAUK,EAAS,KAAK,eAAgBE,EAAOP,CAAK,CAC7D,EACMQ,EAAsB,KAAK,iBAAiB,GACjDJ,EACA,CAACG,EAAOP,IAAUK,EAAS,KAAK,iBAAkBE,EAAOP,CAAK,CAC/D,EACA,MAAO,IAAM,CACZM,EAAkB,EAClBE,EAAoB,CACrB,CACD,CACA,kBAAkBC,EAA0B,CAC3C,GAAI,CAACA,EACJ,OAGD,IAAMC,EAAe,CACpB,QAAUR,GAAe,KAAK,QAAQA,CAAE,EACxC,UAAYA,GAAe,KAAK,UAAUA,CAAE,EAC5C,YAAcA,GAAe,KAAK,YAAYA,CAAE,CACjD,EACA,KAAK,GAAG,cAAe,CAACS,EAAQJ,EAAOP,IAAU,CAChD,GAAI,EAAEA,aAAiB,YACtB,OAGDA,EAAM,eAAe,EACrB,IAAMY,EAAgBD,EAAO,KAAK,IAAIJ,CAAK,EAE3CE,EAAY,KACX,CAAE,EAAGT,EAAM,QAAS,EAAGA,EAAM,OAAQ,EACrC,CACC,KAAM,CAAC,GAAGW,EAAO,IAAI,EACrB,cAAe,CAAE,GAAGC,EAAe,GAAIL,CAAM,EAC7C,SAAWL,GAAeS,EAAO,UAAUT,CAAE,EAC7C,UAAYW,GAAuBF,EAAO,UAAUE,CAAG,EACvD,eAAiBX,GAAeS,EAAO,eAAeT,CAAE,EACxD,cAAgBA,GAAeS,EAAO,mBAAmBT,CAAE,EAC3D,GAAGQ,CACJ,CACD,CACD,CAAC,CACF,CACA,YAAYH,EAAe,CAC1B,OAAO,KAAK,eAAe,KAAK,SAASA,CAAK,CAC/C,CACA,SACCA,EACAO,EACAC,EACAC,EACC,CACD,IAAMC,EAAOH,EAAW,SAASP,CAAK,EAClCU,IACHA,EAAK,UAAY,KACjBF,EAAS,OAAOR,EAAOU,EAAMD,CAAQ,GAGxB,SAAS,eAAeT,CAAK,GACpC,UAAU,OAChBd,GACAsB,IAAa,KAAK,cACnB,EAEIE,IACH,KAAK,iBAAiB,QAAQ,iBAC7B,KAAK,iBAAiB,KACtBV,EACAU,CACD,EACA,KAAK,eAAe,QAAQ,iBAC3B,KAAK,eAAe,KACpBV,EACAU,CACD,EAEF,CACA,QAAQV,EAAe,CACtB,KAAK,SAASA,EAAO,KAAK,iBAAkB,KAAK,cAAc,EAC/D,KAAK,aAAaA,EAAO,KAAK,cAAc,CAC7C,CACA,UAAUA,EAAe,CACxB,GAAI,KAAK,eAAe,KAAK,SAAW,EAAG,CAC1C,KAAK,gBAAgB,EACrB,OAED,KAAK,SAASA,EAAO,KAAK,eAAgB,KAAK,gBAAgB,EAC/D,KAAK,aAAaA,EAAO,KAAK,gBAAgB,CAC/C,CACAN,IAAsB,CACrB,IAAMiB,EAAe,CACpB,KAAK,iBAAiB,YACtB,KAAK,eAAe,WACrB,EAAE,OAAQC,GAAmB,CAAC,CAACA,CAAC,EAEhC,KAAK,QAAQ,qBAAqBD,CAAY,CAC/C,CACA,oBAAqB,CACpB,IAAME,EAAc,KAAK,eAAe,KAAK,KAAO,EAC9CC,EAAoB,KAAK,eAAe,cAC9CA,GAAmB,UAAU,OAAO9B,GAAiB6B,CAAW,EAKhE,IAAME,EAHWD,GAAmB,cACnC,eACD,GACgC,YAChC,GAAIC,IAAkB,GAAKF,EAC1B,MAAM,IAAI,MACT,0EACD,EAGD,IAAMG,EAAsB,GAAGD,MACzBE,EAAkB,cAAcF,EAAgB,OAChDG,EAAmB,GAAGD,KAAmBD,KAAuBC,IAE3C,EAC1BJ,GAAeC,GAAmB,MAAM,sBAGfA,IACzBA,EAAkB,MAAM,oBAAsBD,EAC3CK,EACA,GAEL,CACA,4BAA6B,CACR,KAAK,eAAe,KAAK,KAAO,EAEnD,KAAK,0BAA0B,EAE/B,KAAK,yBAAyB,CAEhC,CACA,aAAalB,EAAeI,EAAoB,CAC/CA,EAAO,UAAUJ,CAAK,EACtB,KAAK,iBAAiBI,CAAM,EAC5B,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAKV,GAAoB,CAC1B,CACA,2BAA4B,CACvB,KAAKN,KAIT,KAAKA,GAAa,sBAAsB,KAAK,mBAAmB,KAAK,IAAI,CAAC,EAC3E,CACA,0BAA2B,CACtB,KAAKA,IACR,qBAAqB,KAAKA,EAAU,EAErC,KAAKA,GAAa,IACnB,CACA,oBAAqB,CACpB,WAAW,IAAM,CACX,KAAKA,KAIV,KAAKA,GAAa,sBACjB,KAAK,mBAAmB,KAAK,IAAI,CAClC,EACD,EAAG,GAAG,EAEN,IAAM+B,EAAgB,SAAS,cAG/B,IAF6BA,GAAiBA,EAAc,WAE/B,SAAU,CACtC,IAAMf,EAAS,KAAK,iBAAiBe,GAAe,IAAM,EAAE,EACxDf,GACH,KAAK,iBAAiBA,CAAM,EAG/B,CACA,iBAAiBA,EAAoB,CACpC,GAAI,KAAKf,KAAkBe,EAC1B,OAED,KAAKf,GAAgBe,EACrB,IAAMgB,EAAqBhB,IAAW,KAAK,eAC3C,KAAK,eAAe,UAAU,OAC7BnB,GACAmC,CACD,EACA,KAAK,iBAAiB,UAAU,OAC/BnC,GACA,CAACmC,CACF,CACD,CACA,iBAAiBpB,EAAe,CAC/B,OAAI,KAAK,eAAe,KAAK,SAASA,CAAK,EACnC,KAAK,eAGT,KAAK,iBAAiB,KAAK,SAASA,CAAK,EACrC,KAAK,iBAGN,IACR,CACA,gBAAiB,CAChB,IAAMqB,EAAsB,CAAC,CAAC,KAAK,eAAe,KAAK,OACjDC,EAAwB,CAAC,CAAC,KAAK,iBAAiB,KAAK,OAE3D,OAAOD,GAAuBC,CAC/B,CACA,kBAAkB3B,EAAY,CAC7B,MAAO,CACN,GAAG,KAAK,eAAe,kBAAkBA,CAAE,EAC3C,GAAG,KAAK,iBAAiB,kBAAkBA,CAAE,CAC9C,CACD,CACA,SAAS4B,EAAaC,EAAcC,EAAe,CAClD,GAAI,CAACF,EACJ,OAAO,KAGR,IAAMG,EAAkB,KAAK,eAAe,KAAK,KAC/CC,GAAQA,EAAI,QAAQ,QAAUJ,CAAG,IAAM,EACzC,EAEA,GAAIG,EAAiB,CACpB,KAAK,eAAe,UAAUA,CAAe,EAC7C,OAGD,OAAO,KAAK,iBAAiB,SAASH,EAAKC,EAAMC,CAAK,CACvD,CACA,cACCG,EACAC,EACAC,EACAC,EACC,CACD,GAAI,CAACH,EACJ,OAAO,KAGR,IAAMI,EAAoB,KAAK,eAAe,KAAK,KACjDL,GAAQA,IAAQ,UAAUG,GAC5B,EACA,GAAIE,EAAmB,CACtB,KAAK,eAAe,UAAUA,CAAiB,EAC/C,OAGD,OAAO,KAAK,iBAAiB,cAC5BJ,EACAC,EACAC,EACAC,CACD,CACD,CACA,SAASE,EAA4BT,EAAcC,EAAe,CACjE,GAAI,CAACQ,EACJ,OAAO,KAER,IAAMC,EAAW,KAAK,cAAc,YAAYD,CAAM,EAChDE,EAAkB,KAAK,eAAe,KAAK,KAC/CR,GAAQA,EAAI,QAAQ,QAAUM,EAASC,EAAW,GAAG,IAAM,EAC7D,EAEA,GAAIC,EAAiB,CACpB,KAAK,eAAe,UAAUA,CAAe,EAC7C,OAGD,OAAO,KAAK,iBAAiB,SAASF,EAAQT,EAAMC,CAAK,CAC1D,CACA,uBAAwB,CACU,KAAK,eAAe,KAAK,OAAS,EAElE,KAAK,gBAAgB,EAErB,KAAKW,GAAU,KAAK,iBAAkB,KAAK,cAAc,CAE3D,CACA,iBAAkB,CACjB,KAAKA,GAAU,KAAK,eAAgB,KAAK,gBAAgB,CAC1D,CACAA,GAAU7B,EAAwBC,EAAsB,CACvD,IAAM6B,EAAc,KAAKhD,IAAe,YACxC,CAAC,GAAGkB,EAAW,IAAI,EAAE,QAAQ,CAACP,EAAOsC,IAAU,CAC9C,KAAK,SAAStC,EAAOO,EAAYC,EAAU8B,CAAK,CACjD,CAAC,EACDD,GAAe,KAAK,aAAaA,EAAa7B,CAAQ,CACvD,CACD,ECxXA+B,IAGA,IAAMC,GAAa,CAClBC,EACAC,IAEO,CACNC,EACAC,EACAC,IACI,CACJJ,EAAUK,GAAwC,CAIjD,GAHAA,EAAM,YAAYJ,CAAI,EAAI,CAAC,GAAGC,CAAO,EAElB,CAACA,EAAQ,SAASC,CAAK,EAEzC,OAAOE,EAAM,YAAY,KAAKF,CAAK,MAC7B,CACN,IAAMG,EAEF,CACH,GAAGD,EAAM,YAAY,KAAKF,CAAK,EAC/B,GAAGC,CACJ,EAEA,OAAOE,EAAc,OAErBD,EAAM,YAAY,KAAKF,CAAK,EAAIG,EAElC,CAAC,CACF,EAGMC,GAASP,IACR,CACN,iBAAkBD,GAAWC,EAAU,UAAU,EACjD,mBAAoBD,GAAWC,EAAU,UAAU,EACnD,mBACCQ,GACI,CACJR,EAAUK,GAAwC,CACjDA,EAAM,YAAY,aAAeG,CAClC,CAAC,CACF,EACA,gBAAiB,CAChB,iBAAmBC,GAAsB,CACxCT,EAAUK,GAAU,CACnBA,EAAM,gBAAgB,UAAYI,CACnC,CAAC,CACF,CACD,CACD,GCpDDC,IAMA,IAAMC,GAAiB,MAAOC,GAAoC,CACjE,IAAMC,EAAyB,KAAK,WAAW,iBAAiB,EAC1D,CAAE,cAAAC,CAAc,EAAIF,EAC1B,GAAI,CAACE,EACJ,OAGD,GAAM,CAAE,SAAAC,EAAU,SAAAC,EAAU,KAAAC,CAAK,EAAIJ,EAC/BK,EAAaN,EAAW,gBAAgB,IACxCO,EAAaP,EAAW,QACxBQ,EAAe,CAAC,GAAGL,EAAU,GAAGC,CAAQ,EAAE,IAAI,MAAOK,GAAU,CACpE,IAAMC,EAAUL,EAAKI,CAAK,EACpBE,EAAQ,MAAMC,EAAW,gBAC9BN,EACAC,EACAG,CACD,EACA,MAAO,CAAE,CAACD,CAAK,EAAGE,CAAM,CACzB,CAAC,EAEKE,GADS,MAAM,QAAQ,WAAWL,CAAY,GACrB,OAAO,CAACM,EAAKC,IAAW,CACtD,IAAMC,EAAeD,EAAO,SAAW,YAAcA,EAAO,MAAQ,KAEpE,MAAO,CAAE,GAAGD,EAAK,GAAGE,CAAa,CAClC,EAAG,CAAC,CAAC,EACCC,EAAmBC,GAAoBjB,EAAaY,CAAe,EAEzE,MAAMM,GAAkBF,EAAkBf,EAAc,gBAAgB,EACxEkB,GAA4BH,EAAkBf,CAAa,EAC3DmB,GAAmBJ,EAAkBf,CAAa,CACnD,EAEMgB,GAAsB,CAC3BI,EACAT,IACe,CACf,GAAM,CAAE,SAAAT,EAAU,SAAAD,EAAU,aAAAoB,EAAc,KAAAlB,CAAK,EAAIiB,EAC7CE,EAAcpB,EAAS,IAAKK,GAAUI,EAAgBJ,CAAK,CAAC,EAC5DgB,EAActB,EAAS,IAAKM,GAAUI,EAAgBJ,CAAK,CAAC,EAC5DiB,EAAkBH,EAAa,IAAKd,GAAUI,EAAgBJ,CAAK,CAAC,EACpEkB,EAAU,OAAO,QAAQtB,CAAI,EAAE,OAAO,CAACS,EAAK,CAACL,EAAOmB,CAAG,IAAM,CAClE,IAAMC,EAAWhB,EAAgBJ,CAAK,EAChCqB,EAAYF,EAAI,UAAYf,EAAgBe,EAAI,SAAS,EAAI,KAEnE,MAAO,CACN,GAAGd,EACH,CAACe,CAAQ,EAAG,CAAE,GAAGD,EAAK,UAAAE,CAAU,CACjC,CACD,EAAG,CAAC,CAAC,EAEL,MAAO,CACN,SAAUN,EACV,SAAUC,EACV,aAAcC,EACd,KAAMC,CACP,CACD,EAEMP,GAA8B,CACnCH,EACAf,IACI,CACJ,GAAM,CAAE,SAAAE,EAAU,SAAAD,CAAS,EAAIc,EACzB,CAAE,iBAAAc,CAAiB,EAAI7B,EAE7BE,EAAS,QAASK,GAAUP,EAAc,QAAQO,CAAK,CAAC,EACxDN,EAAS,QAAQ,CAACM,EAAOuB,IAAM,CAC9B,IAAMC,EAAiBF,EAAiB,cAAgBtB,EAClDyB,EAAOH,EAAiB,SAAStB,CAAK,EAC5CyB,GAAQH,EAAiB,OAAOtB,EAAOyB,EAAMF,CAAC,EAC9CC,GAAkBF,EAAiB,UAAUtB,CAAK,CACnD,CAAC,CACF,EAEMU,GAAoB,CACzBF,EACAkB,IACI,CACJ,GAAM,CAAE,SAAA/B,EAAU,SAAAD,EAAU,KAAAE,CAAK,EAAIY,EAErC,OAAO,QAAQ,WAAW,CACzB,GAAGb,EAAS,IAAKgC,GAAOD,EAAW,cAAcC,EAAI/B,EAAK+B,CAAE,CAAC,CAAC,EAC9D,GAAGjC,EAAS,IAAKiC,GAAOD,EAAW,cAAcC,EAAI/B,EAAK+B,CAAE,CAAC,CAAC,CAC/D,CAAC,CACF,EAEMf,GAAqB,CAC1BJ,EACAf,IACI,CACJ,GAAM,CAAE,eAAAmC,EAAgB,iBAAAN,CAAiB,EAAI7B,EAC7Ce,EAAiB,aAAa,QAASR,GAAU,CAEhD,IAAM0B,EADWjC,EAAc,YAAYO,CAAK,EAClB4B,EAAiBN,EAC7BI,EAAW,KAAK,SAAS1B,CAAK,GACnC0B,EAAW,UAAU1B,CAAK,CACxC,CAAC,CACF,EH7DA,IAAqB6B,EAArB,cAAiDC,CAG/C,CACD,uBAAyB,KACzB,gBAAkB,KAClB,eAAiB,SAAS,eAAe,gBAAgB,EACzD,gBAAmC,SAAS,eAAe,iBAAiB,EAC5E,cAA4C,KAC5C,QAAUC,GAAkB,KAAK,SAAS,KAAK,IAAI,CAAC,EACpD,aAAsC,CACrC,YAAa,CACZ,SAAU,CAAC,EACX,SAAU,CAAC,EACX,KAAM,CAAC,EACP,aAAc,CAAC,CAChB,EACA,gBAAiB,CAChB,UAAW,EACZ,CACD,EACAC,GAAoB,SAAS,eAAe,mBAAmB,EAC/D,gBAAkB,IAAI,IAAI,CACzB,CAAC,kBAAmB,KAAKA,EAAiB,EAC1C,CAAC,qBAAsB,KAAK,gBAAgB,SAAS,EACrD,CAAC,kCAAmC,KAAK,gBAAgB,kBAAkB,CAC5E,CAAC,EAED,MAAM,MAAO,CACZ,IAAMC,EAAc,MAAM,KAAK,EAEzBC,EAAW,SAAS,eAAe,UAAU,EAC7CC,EAAW,SAAS,eAAe,UAAU,EAC/CD,aAAoBE,GAAcD,aAAoBC,IACzD,KAAK,cAAgB,IAAIC,EAAoBH,EAAUC,EAAU,CAChE,QAAS,KAAK,OACf,CAAC,GAGF,eAAe,QAAQ,gBAAiB,eAAe,EAEvD,IAAMG,EAAiBC,EAAW,wBAAwB,KAAK,OAAO,EACtE,KAAK,QAAQ,eAAiBD,EAC9B,IAAME,EAAqB,KAAK,0BAA0B,EAG1D,MAFgB,KAAK,eAAe,EAGpCC,GAAe,IAAI,EACnB,KAAK,qBAAqB,EAE1B,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EAEpB,KAAK,yBAAyB,EAC9B,MAAM,KAAK,mBAAmB,EAE9B,MAAMD,EACN,KAAK,gCAAgC,EACrC,MAAMP,EAEN,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAE7B,KAAK,uCACJ,KAAK,YAAY,IAAI,gCAAgC,CACtD,CACD,CAEA,aAAaS,EAAUC,EAAU,CAChC,KAAK,gBAAgB,SAAS,CAAE,UAAW,KAAK,MAAM,SAAU,CAAC,EACjE,KAAK,aAAaA,CAAQ,EAC1B,KAAK,sBAAsBA,CAAQ,EACnC,KAAKC,GAAe,CACrB,CAEAA,IAAiB,CAChB,IAAMC,EAAO,KAAK,gBAAgB,KAC5BC,EAAU,KAAK,gBAAgB,IAAI,KACnCC,EAAoBC,GAAqB,KAAK,MAAM,SAAS,EAC7DC,EAAcC,GAAeH,EAAmBD,CAAO,EAC7DD,EAAK,SAAS,CAAE,UAAWI,CAAY,CAAC,CACzC,CAEA,aAAaN,EAAU,CAClBA,EAAS,kBAAoB,KAAK,MAAM,iBAC3C,KAAK,SAAS,OAAO,2BAA2B,CAElD,CAEA,MAAM,4BAA4BQ,EAAc,GAC9B,MAAMC,EAAiB,YACvC,gBACA,MACD,GAC0B,SAAc,CAAC,GACP,KAAMC,GACnBA,EAAQ,sBAAsB,IAC3BF,CACvB,GAEA,KAAK,SAAS,OAAO,yBAAyB,CAEhD,CAEA,gBAAgB,CAAE,UAAAG,CAAU,EAAG,CAW9B,MAAO,CAAE,UAViB,OAAO,OAAOA,CAAS,EAAE,OAClD,CAACC,EAAMC,IAAiB,CACvB,GAAM,CAAE,SAAAC,CAAS,EAAID,EACrB,MAAI,CAAC,WAAY,OAAQ,QAAQ,EAAE,SAASC,CAAQ,IACnDF,EAAKC,EAAa,EAAE,EAAIA,GAElBD,CACR,EACA,CAAC,CACF,CACsC,CACvC,CAEA,MAAM,0BAA0BG,EAAU,CAAC,EAAG,CAC7C,GAAI,KAAK,uBACR,OAAO,KAAK,uBAGb,KAAK,uBAAyBC,GAC7B,KAAK,eACL,iBACA,CAAE,GAAG,KAAK,QAAS,GAAGD,CAAQ,CAC/B,EACA,MAAM,KAAK,uBACX,KAAK,uBAAyB,IAC/B,CAEA,uCAAuCE,EAAa,CACnD,KAAK,cAAc,kBAAkBA,CAAW,CACjD,CAEA,MAAM,mBAAoB,CACzB,KAAK5B,GAAkB,WAAW,UAAU,IAAI,aAAa,EAE7D,KAAK,QAAQ,sBAAwB,IACpC,KAAK,cAAc,sBAAsB,CAC3C,CAEA,oBAAqB,CACpB,YAAKY,GAAe,EACP,KAAK,gBAAgB,KACtB,UAAUiB,CAAY,CACnC,CAEA,MAAM,gBAAiB,CACtB,GAAI,KAAK,gBACR,OAAO,KAAK,gBAGb,IAAMC,EAAM,KAAK,gBAAgB,IACjC,YAAK,gBAAkBC,GAAOD,EAAK,MAAO,KAAK,OAAO,EAEtD,MAAM,KAAK,gBACX,KAAK,gBAAkB,KAEhB,KAAK,eACb,CAEA,gBAAiB,CAEf,KAAK,0BACJ,oBACA,KACA,iBACD,IAAM,MAGN,KAAK,gBAAgB,UAAU,EAAI,EACnC,KAAK,gBAAgB,iBAAiB,EAAI,EAE5C,CAEA,iCAAkC,CACjC,KAAK,SAAS,UAAU,MAAOE,GAAU,CACpCA,IAAU,cAId,MAAM,KAAK,0BAA0B,EACrC,KAAK,sBAAsB,KAAK,MAAM,WAAW,EAClD,CAAC,CACF,CAEA,2BAA4B,CAC3B,KAAK,gBAAgB,iBACpB,6BACA,MAAOA,GAAU,CAChB,GAAM,CAAE,EAAAC,EAAG,EAAAC,EAAG,YAAAC,EAAa,aAAAhB,EAAc,WAAAiB,EAAY,GAAGC,CAAO,EAC9DL,EAAM,OACDM,EAAWF,EACd,CAACA,EAAY,IAAI,EACjB,CAACjB,EAAc,MAAM,EAGlBoB,EAAW,MAFOnB,EAAiB,YAAY,GAAGkB,CAAQ,EAG1DZ,EAAU,CACf,GAAGW,EACH,UAAAG,EACA,SAAAD,EACA,aAAcA,GAAU,IACzB,EACA,KAAK,YAAY,IAAIJ,CAAW,EAAE,KAAK,CAAE,EAAAF,EAAG,EAAAC,CAAE,EAAGR,CAAO,CACzD,CACD,EACA,KAAK,gBAAgB,iBAAiB,aAAeM,GAAU,CAC9D,GAAM,CAAE,MAAAS,CAAM,EAAIT,EAAM,OACxB,KAAK,4BAA4B,oBAAqB,KAAM,CAC3D,gBAAiB,OAAOS,CAAK,CAC9B,CAAC,CACF,CAAC,EACD,KAAK,gBAAgB,iBAAiB,eAAgB,IAAM,CAC3D,KAAK,QAAQ,gBAAgB,iBAAiB,EAAK,CACpD,CAAC,EACD,KAAK,gBAAgB,iBAAiB,cAAe,IAAM,CAC1D,KAAK,QAAQ,gBAAgB,iBAAiB,EAAI,CACnD,CAAC,CACF,CAEA,yBAA0B,CACzB,KAAK,SAAS,UAAU,MAAOT,GAAU,CACxC,OAAQA,EAAO,CACd,IAAK,0BACJ,MAAMU,GACL,KAAK1C,GACL,mBACA,KAAK,OACN,EACA,MACD,IAAK,sBACL,IAAK,oBACL,IAAK,cACL,IAAK,4BACJO,EAAW,mBACV,KAAKP,GACLgC,EACA,KAAK,OACN,EACA,KACF,CACD,CAAC,EACD,KAAK,qBAAqB,yBAA0B,OAAQ,IAAM,CACjE,KAAK,SAAS,OAAO,mBAAmB,CACzC,CAAC,CACF,CAEA,0BAA2B,CAC1B,KAAK,SAAS,UAAU,MAAOA,GAAU,CACxC,GAAIA,IAAU,YACb,OAGD,MAAM,KAAK,eAAe,EAC1B,IAAMF,EAAM,KAAK,gBAAgB,IAC3BjB,EAAO,KAAK,gBAAgB,KAClC8B,GAAmB9B,EAAK,KAAMiB,EAAI,IAAI,EACtCjB,EAAK,OAAO,CACb,CAAC,CACF,CAEA,sBAAuB,CACtB,KAAK,SAAS,UAAU,MAAOmB,GAAU,CACpCA,IAAU,cAId,KAAK,cAAc,mCAAmC,EACtD,MAAM,KAAK,eAAe,EAC1B,KAAK,gBAAgB,WAAW,EACjC,CAAC,CACF,CAEA,MAAM,sBAAsB,CAAE,SAAA9B,EAAU,SAAAC,CAAS,EAAG,CACpCD,EAAS,OAAS,GAAKC,EAAS,OAAS,GAEvD,MAAM,KAAK,uBACXyC,EAAK,KAAK,cAAc,KAExB,MAAM,KAAK,0BAA0B,CAAE,WAAY,EAAK,CAAC,CAE3D,CAEA,sBAAsBjC,EAAU,CAC/B,IAAMkC,EAAmB,KAAK,MAAM,YAChCA,IAAqBlC,EAAS,aAIlC,KAAK,sBAAsBkC,CAAgB,CAC5C,CACD,EIhVAC,ICAAC,IAEA,IAAMC,GAAkB,CAACC,EAASC,IAAa,CAC9CA,EAAS,QAASC,GAAO,CACxB,GAAM,CAAE,SAAAD,CAAS,EAAID,EAAQ,IAAIE,CAAE,EAC/BD,GAAU,QACbF,GAAgBC,EAASC,CAAQ,CAEnC,CAAC,EAEDA,EAAS,KAAK,CAACE,EAAUC,IAAc,CACtC,IAAMC,EAAYL,EAAQ,IAAIG,CAAQ,EAChCG,EAAaN,EAAQ,IAAII,CAAS,EAExC,OAAOC,EAAU,WAAaC,EAAW,UAC1C,CAAC,CACF,EAEMC,GAAsBC,GAAS,CACpC,IAAMC,EAAQ,IAAI,IACZT,EAAU,IAAI,IACdU,EAAW,CAAC,EACZC,EAAS,CAAC,EAEhB,OAAAH,EAAK,QAAQ,CAACI,EAAMV,IAAO,CAC1B,GAAIU,EAAK,aAAa,IAAM,yBAA0B,CACrDZ,EAAQ,IAAIE,EAAIU,CAAI,EACpB,OAGD,GAAM,CAAE,WAAYC,CAAU,EAAID,EAC5BE,EAAcN,EAAK,IAAIK,CAAS,EAChC,CAAE,sBAAuBE,CAAS,EAAID,EAExCC,GACYJ,EAAOI,CAAQ,IAAM,CAAC,GAC/B,KAAKb,CAAE,EAEbO,EAAM,IAAIP,CAAE,EAGb,IAAMc,EAAU,CACf,GAAGJ,CACJ,EACIE,EAAY,aAAa,IAAM,oBAClCE,EAAQ,SAAW,CAAC,GAGrBN,EAAS,KAAKM,CAAO,EACrBhB,EAAQ,IAAIE,EAAIc,CAAO,CACxB,CAAC,EAED,OAAO,QAAQL,CAAM,EAAE,QAAQ,CAAC,CAACI,EAAUd,CAAQ,IAAM,CACxDS,EACE,OAAO,CAAC,CAAE,WAAYG,CAAU,IACzBA,IAAcE,CACrB,EACA,QAASH,GAAS,CAClBA,EAAK,SAAWX,CACjB,CAAC,CACH,CAAC,EAEM,CAAE,MAAAQ,EAAO,QAAAT,CAAQ,CACzB,EAEOiB,GAAQ,CAACC,EAAKV,IAAS,CAC7B,IAAMW,EAAYZ,GAAmBC,CAAI,EACnC,CAAE,QAAAR,EAAS,MAAAS,CAAM,EAAIU,EACrBC,EAAW,CAAC,GAAGX,CAAK,EAC1B,OAAAV,GAAgBC,EAASoB,CAAQ,EACjCF,EAAI,UAAU,MAAQlB,EACtBkB,EAAI,UAAU,MAAQ,IAAI,IAAIE,CAAQ,EAC/BF,EAAI,OAAO,CACnB,ECzEAG,IAIA,IAAMC,GAAgB,qCAChBC,GAAyB,mCACzBC,EAAgB,IAChBC,GAAsB,IACtBC,EAAqB,CAACC,EAAQC,IAAU,CAC7C,GAAM,CAAE,QAAAC,EAAS,QAAAC,CAAQ,EAAIF,EACvBG,EAAOF,EAAQ,IAAIF,CAAM,EACzBK,EAAcF,EAAQH,CAAM,EAClC,MAAO,CAAE,GAAGI,EAAM,GAAGC,CAAY,CAClC,EACMC,EAAyB,CAACL,EAAOM,IAAa,CACnD,GAAM,CAAE,QAAAL,EAAS,QAAAC,CAAQ,EAAIF,EACvBO,EAAU,IAAI,IAAI,CAAC,GAAGN,CAAO,CAAC,EACpC,OAAW,CAACO,EAAIC,CAAM,IAAK,OAAO,QAAQP,CAAO,EAAG,CACnD,IAAMQ,EAAUT,EAAQ,IAAIO,CAAE,EAC9B,GAAI,CAACE,EAAS,CACbH,EAAQ,IAAIC,EAAIC,CAAM,EACtB,SAGDF,EAAQ,IAAIC,EAAI,CAAE,GAAGE,EAAS,GAAGD,CAAO,CAAC,EAG1C,IAAME,EAAW,CAAC,EAClB,OAAAJ,EAAQ,QAASK,GAAgB,CAChC,GACCA,EAAY,aAAa,IAAM,0BAC/BA,EAAY,SAAS,IAAM,SAE3B,OAGD,IAAMC,EAAYD,EAAY,WAG9B,GAAI,EAFgBL,EAAQ,IAAIM,CAAS,EACb,qBAAqB,IAAMP,GAEtD,OAGD,IAAMQ,EAAiBP,EAAQ,IAAIK,EAAY,EAAE,EACjDD,EAAS,KAAKG,CAAc,CAC7B,CAAC,EAEDH,EAAS,KACR,CAACI,EAAWC,IAAeD,EAAU,WAAaC,EAAW,UAC9D,EAEOL,CACR,EAEMM,EAAiB,CAACT,EAAIJ,EAAaJ,IAAU,CAClD,IAAMkB,EAAiBlB,EAAM,QAAQQ,CAAE,EACnCU,EACHlB,EAAM,QAAQQ,CAAE,EAAI,CACnB,GAAGU,EACH,GAAGd,CACJ,EAEAJ,EAAM,QAAQQ,CAAE,EAAI,CACnB,UAAW,OACX,GAAGJ,CACJ,EAGD,IAAMe,EAAqBnB,EAAM,QAAQQ,CAAE,EAC3C,GAAIW,EAAmB,SAAS,IAAM,OACrC,OAGD,IAAMC,EAAepB,EAAM,QAAQ,IAAIQ,CAAE,EAEN,CADnB,OAAO,QAAQW,CAAkB,EACL,KAC3C,CAAC,CAACE,EAAUC,CAAY,IACnB,EAAAD,IAAa,WAAaD,EAAaC,CAAQ,IAAMC,EAM3D,GAGC,OAAOtB,EAAM,QAAQQ,CAAE,CAEzB,EAEMe,GAAqBC,GAAU,CACpC,IAAMC,EAAe,KAAK,gBAAgB,EACpCC,EAAiB,CAAChC,EAAa,EAC/BiC,EAAaH,EAAM,iBAAiB,WAC1C,GAAIG,EAAY,CACf,IAAMC,EAAeD,EAAaE,EAAS,gBAAgBF,CAAU,EAAI,GACzED,EAAe,KAAKE,CAAY,EAEjC,OAAAF,EAAe,KAAKD,CAAY,EAEZ,CACnB,UAAW,MACX,GAAIA,EACJ,KAAMC,EAAe,KAAK,GAAG,EAC7B,GAAGF,CACJ,CAGD,EAEMM,GAAkB,CAACC,EAAO/B,IAAU,CACzC,GAAM,CAAE,iBAAAgC,EAAkB,iBAAAC,CAAiB,EAAIC,GAC9CH,EACA/B,CACD,EACAA,EAAM,iBAAmBgC,EACzBhC,EAAM,iBAAmBiC,EACzBjC,EAAM,WAAa+B,CACpB,EAEMG,GAA8B,CAACC,EAAYnC,IAAU,CAC1D,GAAI,CAACmC,EACJ,MAAO,CAAE,iBAAkB,GAAI,iBAAkB,EAAG,EAGrD,IAAMC,EAA2BtC,EAAmBqC,EAAYnC,CAAK,EAK/DqC,EAJsBvC,EAC3BsC,EAAyB,WACzBpC,CACD,EACgD,qBAAqB,EAC/DsC,EAAyBjC,EAC9BL,EACAqC,CACD,EACME,EAAgCD,EAAuB,UAC3DnC,GAASA,EAAK,KAAOiC,EAAyB,EAChD,EACMJ,EACLM,EAAuBC,EAAgC,CAAC,GAAG,IAAM,GAC5DN,EACLK,EAAuBC,EAAgC,CAAC,GAAG,IAAM,GAElE,MAAO,CAAE,iBAAAP,EAAkB,iBAAAC,CAAiB,CAC7C,EAEMO,GAAsB,CAAC5B,EAAa6B,EAAMzC,IAAU,CACzD,IAAMa,EAAYD,EAAY,WACxB8B,EAAc5C,EAAmBe,EAAWb,CAAK,EAIvDiB,EAAeJ,EAHQ,CACtB,UAAW,QACZ,EAC0Cb,CAAK,EAE/C,IAAM2C,EAAkB,CACvB,GAAGD,EACH,cAAeD,EACf,UAAW,KACZ,EACMG,EAAe,CAAC,KAAM,MAAM,EAE9BH,IAAS,sBACZG,EAAa,KAAK,qBAAqB,EACvCA,EAAa,KAAK,6BAA6B,GAGhDA,EAAa,QAASC,GAAS,OAAOF,EAAgBE,CAAI,CAAC,EAE3D,IAAMC,EAAiBvB,GAAkBoB,CAAe,EACxD1B,EAAe6B,EAAe,GAAIA,EAAgB9C,CAAK,EAEvDiB,EAAeL,EAAY,GAAI,CAAE,WAAYkC,EAAe,EAAG,EAAG9C,CAAK,CACxE,EAEM+C,GAAsB,CAACC,EAAgBhD,IAAU,CACtDgD,EAAe,QAAQ,CAAC7C,EAAM8C,IAAU,CACvC,GAAM,CAAE,GAAAzC,CAAG,EAAIL,EACT+C,GAAgBD,EAAQ,GAAKrD,EAEnCqB,EAAeT,EAAI,CAAE,WAAY0C,CAAa,EAAGlD,CAAK,CACvD,CAAC,CACF,EAEMmD,GAA0BnD,GAAU,CACzC,IAAMmC,EAAanC,EAAM,WACzB,GAAI,CAACmC,EACJ,MAAO,oBAIR,IAAMiB,EAD2BtD,EAAmBqC,EAAYnC,CAAK,EAClB,WAQnD,OAP4BF,EAAmBsD,EAAmBpD,CAAK,EAElD,aAAa,IAAM,oBAErC,oBACA,uBAGJ,EAEOqD,GAASC,IACR,CACN,SAAU,CAAC9C,EAAIJ,IAAgB,CAC9BkD,EAAUtD,GAAUiB,EAAeT,EAAIJ,EAAaJ,CAAK,CAAC,CAC3D,EACA,WAAaQ,GAAO,CACnB8C,EAAUtD,GAAU,CACnB,IAAMuD,EAAczD,EAAmBU,EAAIR,CAAK,EAC1CwD,EAAYD,EAAY,SAAS,IAAM,MACvC1C,EAAY0C,EAAY,WACxBb,EAAc5C,EAAmBe,EAAWb,CAAK,EAEjDyD,EAAkBf,EAAY,qBAAqB,EACnDgB,EAAqBrD,EAC1BL,EACAyD,CACD,EAAE,UAAWtD,GAASA,EAAK,KAAOK,CAAE,EAEhCgD,GACH,OAAOxD,EAAM,QAAQQ,CAAE,EACvB,OAAOR,EAAM,QAAQa,CAAS,EAC9BiB,GAAgB,GAAI9B,CAAK,IAMzBiB,EAAeT,EAJQ,CACtB,UAAW,SACX,WAAYX,EACb,EACmCG,CAAK,EAKxCiB,EAAeJ,EAHQ,CACtB,UAAW,QACZ,EAC0Cb,CAAK,GAEhD,IAAM2D,EAAmBtD,EAAuBL,EAAOyD,CAAe,EAGtE,GADCf,EAAY,aAAa,IAAM,kBACX,CACpB,IAAMkB,EAA0BvD,EAC/BL,EACAa,CACD,EACA8C,EAAiB,OAChBD,EACA,EACA,GAAGE,CACJ,EACAb,GAAoBY,EAAkB3D,CAAK,EAE3C4D,EAAwB,QAASC,GAAY,CAC5C,IAAMhD,EAAYgD,EAAQ,WAE1B,GADmB,CAACJ,GAEC3D,EAAmBe,EAAWb,CAAK,EAE1C,aAAa,IAAM,kBACX,CACpBwC,GAAoBqB,EAAS,oBAAqB7D,CAAK,EACvD,OAOFiB,EAAeJ,EAHQ,CACtB,sBAAuB4C,CACxB,EAC0CzD,CAAK,CAChD,CAAC,OAED2D,EAAiB,QAASG,GAAU,CACnC,GAAM,CAAE,GAAAtD,EAAI,WAAYuD,CAAU,EAAID,EACtC,GAAIC,EAAYR,EAAY,WAAe,CAC1C,IAAM9C,EAAS,CAAE,WAAYsD,EAAYnE,CAAc,EACvDqB,EAAeT,EAAIC,EAAQT,CAAK,EAElC,CAAC,CAEH,CAAC,CACF,EACA,eAAgB,IAAM,CACrBsD,EAAUtD,GAAU,CACnBA,EAAM,QAAU,CAAC,EACjBA,EAAM,oBAAsBA,EAAM,YAClC8B,GAAgB,GAAI9B,CAAK,CAC1B,CAAC,CACF,EACA,oBAAsBwB,GAAU,CAC/B,IAAMwC,EAAmB,CACxB,OAAQ,MACR,UAAW,MACX,cAAe,yBACf,GAAI,KAAK,gBAAgB,EACzB,UAAWrE,GACX,GAAG6B,CACJ,EACA,OAAA8B,EAAUtD,GAAU,CACnB,GAAM,CAAE,GAAAQ,EAAI,WAAYK,CAAU,EAAImD,EACtChE,EAAM,QAAQQ,CAAE,EAAIwD,EACpB,GAAM,CAAE,WAAA7B,CAAW,EAAInC,EACvB,GAAI,CAACmC,EAAY,CAChB,IAAM8B,EAAQ5D,EAAuBL,CAAK,EAC1CgE,EAAiB,WAAaC,EAAM,OAASrE,EAC7C,OAGD,IAAM8C,EAAc1C,EAAM,QAAQa,CAAS,EACrCuB,EAA2BtC,EAAmBqC,EAAYnC,CAAK,EAC/D,CAAE,WAAYoD,CAAkB,EAAIhB,EACpC8B,EAAsBpE,EAC3BsD,EACApD,CACD,EACA,GAAIkE,EAAoB,aAAa,IAAM,kBAAmB,CAC7D,GAAM,CAAE,GAAI5D,CAAS,EAAI4D,EACzBxB,EAAY,qBAAqB,EAAIpC,EACrC,IAAMK,EAAWN,EAAuBL,EAAOM,CAAQ,EACvD0D,EAAiB,WAAarD,EAAS,OAASf,MAC1C,CACN,IAAMU,EAAW4D,EAAoB,qBAAqB,EACpDvD,EAAWN,EAAuBL,EAAOM,CAAQ,EAEvD,GAAI8B,EAAyB,SAAS,IAAM,SAC3C4B,EAAiB,YAAcrD,EAAS,OAAS,GAAKf,MAChD,CACN,GAAM,CAAE,WAAYuE,CAAkB,EAAI/B,EAC1C4B,EAAiB,WAAaG,EAAoBvE,EAClDe,EAAS,QAASkD,GAAY,CAC7B,GAAM,CAAE,GAAArD,EAAI,WAAYuD,CAAU,EAAIF,EACtC,GAAIE,EAAYI,EAAmB,CAClC,IAAM1D,EAAS,CAAE,WAAYsD,EAAYnE,CAAc,EACvDqB,EAAeT,EAAIC,EAAQT,CAAK,EAElC,CAAC,EAGF0C,EAAY,qBAAqB,EAAIpC,EAEvC,CAAC,EAEM0D,CACR,EACA,eAAiBxC,GAAU,CAC1B,IAAMkB,EAAcnB,GAAkBC,CAAK,EAC3C,OAAA8B,EAAUtD,GAAU,CACnB,IAAMyC,EAAOC,EAAY,aAAa,EACtCA,EAAY,aAAa,EAAID,GAAQU,GAAuBnD,CAAK,EACjEA,EAAM,QAAQ0C,EAAY,EAAE,EAAIA,CACjC,CAAC,EAEMA,CACR,EACA,WAAalC,GAAO,CACnB8C,EAAUtD,GAAU,CACnB8B,GAAgBtB,EAAIR,CAAK,CAC1B,CAAC,CACF,EACA,UAAYwB,GAAU,CACrB8B,EAAUtD,GAAU,CACnB,IAAMoE,EACLpE,EAAM,SAAW,KAAOA,EAAM,QAAUA,EAAM,OAAO,YAChDqE,EAAgBrE,EAAM,QAAQ,eAAiBA,EAAM,UAE3DA,EAAM,UAAYqE,EAAc,OAC9BC,GAAaA,EAAS,OAAStE,EAAM,mBACvC,EACAA,EAAM,OAAS,CACd,GAAGA,EAAM,OACT,GAAGwB,EACH,YAAA4C,EACA,cAAAC,CACD,CACD,CAAC,CACF,EACA,YAAa,IAAM,CAClBf,EAAUtD,GAAU,CACfA,EAAM,SAAW,OACpBA,EAAM,QAAUA,EAAM,OAAO,YAC7BA,EAAM,UAAYA,EAAM,OAAO,cAC/BA,EAAM,OAAS,KAEjB,CAAC,CACF,EACA,uBAAyBuE,GAAwB,CAChDjB,EAAUtD,GAAU,CACnBA,EAAM,oBAAsBuE,CAC7B,CAAC,CACF,EACA,eAAiBC,GAAgB,CAChClB,EAAUtD,GAAU,CACnBA,EAAM,YAAcwE,CACrB,CAAC,CACF,EACA,oBAAsBC,GAAqB,CAC1CnB,EAAUtD,GAAU,CACnBA,EAAM,iBAAmByE,CAC1B,CAAC,CACF,EACA,mBAAoB,CAACC,EAAaC,IAAiB,CAClDrB,EAAUtD,GAAU,CAEnB,IAAM4E,EADO9E,EAAmB4E,EAAa1E,CAAK,EACvB,WAErB6E,EADc/E,EAAmB8E,EAAe5E,CAAK,EAC1B,qBAAqB,EAChD8E,EAAoBzE,EAAuBL,EAAO6E,CAAY,EACpE9B,GAAoB+B,EAAmB9E,CAAK,EAG5C,IAAM+E,EADYjF,EAAmB4E,EAAa1E,CAAK,EAClB,WAG/BgF,EADalF,EAAmB6E,EAAc3E,CAAK,EAClB,WAEvCiB,EAAeyD,EAAa,CAAE,WAAYM,CAAoB,EAAGhF,CAAK,EACtEiB,EAAe0D,EAAc,CAAE,WAAYI,CAAmB,EAAG/E,CAAK,EACtE8B,GAAgB9B,EAAM,WAAYA,CAAK,CACxC,CAAC,CACF,EACA,SAAWiF,GAAe,CACzB3B,EAAUtD,GAAU,CACnB,GAAM,CAAE,OAAAD,EAAQ,eAAAmF,EAAgB,eAAAC,CAAe,EAAIF,EAC7CG,EAActF,EAAmBC,EAAQC,CAAK,EAC9Ca,EAAYuE,EAAY,WACxBC,EAAqBvF,EAAmBe,EAAWb,CAAK,EACxDsF,EAAkBD,EAAmB,qBAAqB,EAM1DE,EALoBlF,EACzBL,EACAsF,CACD,EAE8D,OAC5DnF,GAASA,EAAK,KAAOiF,EAAY,EACnC,EACArC,GAAoBwC,EAAqCvF,CAAK,EAG9D,IAAM6E,EADwB/E,EAAmBoF,EAAgBlF,CAAK,EAC3B,WAGrCwF,EAFmBnF,EAAuBL,EAAO6E,CAAY,EAEP,OAC1D1E,GAASA,EAAK,KAAOiF,EAAY,EACnC,EACAI,EAAmC,OAClCL,EACA,EACAC,CACD,EACArC,GAAoByC,EAAoCxF,CAAK,EAE7DiB,EACCoE,EAAmB,GACnB,CAAE,sBAAuBR,CAAa,EACtC7E,CACD,EAEA,IAAMyF,EAAaJ,EAAmB,aAAa,EAElD,CAACR,GAAgBY,IAAe,yBAEhCjD,GAAoB4C,EAAa,oBAAqBpF,CAAK,EAI3D6E,GAAgBY,IAAe,qBAE/BjD,GAAoB4C,EAAa,wBAAyBpF,CAAK,CAEjE,CAAC,CACF,CACD,GCpdD0F,ICAAC,IAKA,IAAMC,GAAyB,KACvB,CACN,KAAM,OACN,aAAc,WACd,MAAOC,EAAY,mBAAmB,EACtC,SAAU,EACX,GAGKC,GAAwB,KACtB,CACN,KAAM,QACN,SACC,oEACD,MAAOD,EAAY,iBAAiB,CACrC,GAGKE,GAAyBC,GAAU,CACxC,GAAM,CAAE,UAAAC,EAAW,oBAAAC,CAAoB,EAAIF,EAC3C,MAAO,CACN,oBAAAE,EACA,MAAOL,EAAY,kBAAkB,EACrC,UAAAI,EACA,SAAU,GACV,KAAM,cACP,CACD,EAEME,GAA2B,KACzB,CACN,aAAc,WACd,MAAON,EAAY,qBAAqB,EACxC,SAAU,GACV,KAAM,MACP,GAGKO,GAAuB,KACrB,CACN,aAAc,OACd,MAAOP,EAAY,iBAAiB,EACpC,SAAU,GACV,KAAM,MACP,GAGKQ,GAAwBL,GAAU,CACvC,GAAM,CAAE,iBAAkBM,EAAU,CAAC,CAAE,EAAIN,EAC3C,MAAO,CACN,MAAOH,EAAY,iBAAiB,EACpC,KAAM,SACN,QAAAS,CACD,CACD,EAEMC,GAA4B,KAC1B,CACN,MAAOV,EAAY,uBAAuB,EAC1C,SAAU,GACV,KAAM,MACP,GAGKW,GAAiC,KAC/B,CACN,MAAOX,EAAY,uBAAuB,EAC1C,KAAM,MACP,GAGKY,GAAuB,CAACT,EAAOU,IAAc,CAClD,GAAM,CAAE,WAAAC,CAAW,EAAIX,EACjBY,EAAcF,EAAU,IAAIC,CAAU,EACtCE,EAAcH,EAAU,IAAIE,EAAY,UAAa,EACrD,CAAE,WAAAE,CAAW,EAAID,EAAY,gBAEnC,MAAO,CACN,aAFoBE,EAAS,gBAAgBD,CAAU,EAGvD,MAAOjB,EAAY,iBAAiB,EACpC,SAAU,GACV,KAAM,MACP,CACD,EAEMmB,GAA6B,CAClC,OAAQpB,GACR,MAAOG,GACP,MAAOD,GACP,SAAUK,GACV,UAAWI,GACX,WAAYC,GACZ,KAAMJ,GACN,KAAMC,GACN,KAAMI,EACP,EAEaQ,GAAkB,CAACP,EAAWV,EAAOkB,EAAQ,CAAC,IAAM,CAChE,GAAM,CAAE,WAAAP,EAAY,OAAAQ,CAAO,EAAInB,EACzBY,EAAcF,EAAU,IAAIC,CAAU,EACtCS,EAAWD,GAAUP,IAAc,SAAS,IAAM,SACxD,OAAOM,EAAM,OAAO,CAACG,EAAQC,IAAa,CACzC,IAAMC,EAAWP,GAA2BM,CAAQ,EAAEtB,EAAOU,CAAS,EACtE,OAAAW,EAAOC,CAAQ,EAAI,CAAE,GAAGC,EAAU,SAAAH,CAAS,EACpCC,CACR,EAAG,CAAC,CAAC,CACN,EC/GAG,IAIA,IAAMC,GAAiB,CAACC,EAAWC,IAAU,CAC5C,GAAM,CAAE,WAAAC,CAAW,EAAID,EACvB,OAAOD,EAAU,IAAIE,CAAU,CAChC,EAEMC,EAAiB,CAACH,EAAWC,IAAU,CAC5C,GAAM,CAAE,WAAYG,CAAU,EAAIL,GAAeC,EAAWC,CAAK,EACjE,OAAOD,EAAU,IAAII,CAAS,CAC/B,EAEMC,GAAiB,CAACL,EAAWC,IAAU,CAC5C,IAAMK,EAAcP,GAAeC,EAAWC,CAAK,EAC7C,CAAE,uBAAwBM,CAAM,EAAID,EAC1C,MAAO,CAAE,MAAAC,CAAM,CAChB,EAEMC,GAAuB,CAACR,EAAWC,EAAOQ,IAAa,CAC5D,GAAM,CAAE,UAAAC,CAAU,EAAIT,EAChBU,EAAcR,EAAeH,EAAWC,CAAK,EACnD,OAAOS,EAAU,OAAO,CAACE,EAAQ,CAAE,KAAAC,CAAK,KACvCD,EAAOC,CAAI,EAAIF,EAAY,GAAGF,eAAsBI,GAAM,EACnDD,GACL,CAAC,CAAC,CACN,EAEME,GAAgB,CAACd,EAAWC,IAAU,CAC3C,GAAM,CAAE,MAAAc,CAAM,EAAIZ,EAAeH,EAAWC,CAAK,EACjD,OAAOc,CACR,EAEMC,GAAmB,CAAChB,EAAWC,IAAU,CAC9C,IAAMU,EAAcR,EAAeH,EAAWC,CAAK,EAC7C,CAAE,gBAAiBgB,CAAe,EAAIN,EACtC,CAAE,WAAAO,CAAW,EAAID,EAEvB,MAAO,CAAE,MADKE,EAAS,gBAAgBD,CAAU,CAClC,CAChB,EAEME,GAAe,CAACpB,EAAWC,IAAU,CAC1C,IAAMU,EAAcR,EAAeH,EAAWC,CAAK,EAC7C,CAAE,gBAAiBgB,CAAe,EAAIN,EACtC,CAAE,OAAAU,CAAO,EAAIJ,EAEnB,MAAO,CAAE,MADK,KAAK,aAAaI,EAAQ,MAAM,CAC/B,CAChB,EAEMC,GAAe,CAACtB,EAAWC,IAAU,CAC1C,GAAM,CAAE,oBAAAsB,CAAoB,EAAItB,EAChC,OAAOsB,CACR,EAEMC,GAAe,CAACxB,EAAWC,EAAOQ,IAAa,CACpD,IAAME,EAAcR,EAAeH,EAAWC,CAAK,EAC7C,CAAE,gBAAiBgB,CAAe,EAAIN,EAC5C,OAAOM,EAAeR,CAAQ,GAAK,EACpC,EAEMgB,GAAe,CAACzB,EAAWC,IAAU,CAC1C,IAAMU,EAAcR,EAAeH,EAAWC,CAAK,EAC7C,CAAE,gBAAiBgB,CAAe,EAAIN,EACtC,CAAE,OAAAe,EAAQ,WAAAR,CAAW,EAAID,EACzBU,EAAeR,EAAS,gBAAgBD,CAAU,EAExD,MAAO,CAAE,MADK,KAAK,aAAaQ,EAAQC,CAAY,CACrC,CAChB,EAEMC,GAA0B,CAC/B,OAAQvB,GACR,MAAO,IAAIwB,IAASrB,GAAqB,GAAGqB,EAAM,OAAO,EACzD,MAAOf,GACP,SAAUE,GACV,UAAWQ,GACX,WAAYA,GACZ,KAAMJ,GACN,KAAME,GACN,KAAMG,EACP,EAEaK,GAAgB,CAAC9B,EAAWC,EAAO8B,IACxCA,EAAM,OAAO,CAACnB,EAAQH,IAAa,CACzC,IAAMuB,EAAQJ,GAAwBnB,CAAQ,EAAET,EAAWC,EAAOQ,CAAQ,EAC1E,OAAAG,EAAOH,CAAQ,EAAIuB,EACZpB,CACR,EAAG,CAAC,CAAC,EFjFN,IAAMqB,EAAS,CACd,OAAQ,uBACR,KAAM,qBACN,SAAU,yBACV,KAAM,qBACN,KAAM,8BACN,KAAM,+BACP,EACAC,EAAW,QAAQ,OAAO,OAAOD,CAAM,CAAC,EAExC,IAAME,GAAmB,CAACC,EAAWC,EAAOC,IAAS,CACpD,GAAM,CAAE,MAAAC,CAAM,EAAID,EACZE,EAAWC,GAAgBL,EAAWC,EAAOE,CAAK,EAClDG,EAAOC,GAAcP,EAAWC,EAAOE,CAAK,EAElD,MAAO,CAAE,GAAGD,EAAM,KAAAI,EAAM,SAAAF,CAAS,CAClC,EAEMI,GAAqB,IAAM,CAChC,IAAMC,EAAQZ,EAAO,KACfa,EAAQC,EAAY,gBAAgB,EAG1C,MAAO,CACN,MAAAF,EACA,MAAAC,EACA,MALa,CAAC,MAAM,CAMrB,CACD,EAEME,GAAsB,IAAM,CACjC,IAAMH,EAAQZ,EAAO,OACfa,EAAQC,EAAY,qBAAqB,EAG/C,MAAO,CACN,MAAAF,EACA,MAAAC,EACA,MALa,CAAC,OAAO,CAMtB,CACD,EAEMG,GAAsB,IAAM,CACjC,IAAMJ,EAAQZ,EAAO,SACfa,EAAQC,EAAY,qBAAqB,EAG/C,MAAO,CACN,MAAAF,EACA,MAAAC,EACA,MALa,CAAC,WAAY,QAAS,QAAS,QAAQ,CAMrD,CACD,EAEMI,GAA2B,IAAM,CACtC,IAAML,EAAQZ,EAAO,KACfa,EAAQC,EAAY,iBAAiB,EAG3C,MAAO,CACN,MAAAF,EACA,MAAAC,EACA,MALa,CAAC,YAAa,aAAc,QAAS,QAAS,QAAQ,CAMpE,CACD,EAEMK,GAAkB,KAKhB,CACN,MALalB,EAAO,KAMpB,MALa,OAMb,MALa,CAAC,WAAY,OAAQ,QAAS,QAAS,QAAQ,CAM7D,GAGKmB,GAA2B,IAAM,CACtC,IAAMP,EAAQZ,EAAO,KACfa,EAAQC,EAAY,iBAAiB,EAG3C,MAAO,CACN,MAAAF,EACA,MAAAC,EACA,MALa,CAAC,OAAQ,QAAS,QAAS,QAAQ,CAMjD,CACD,EAEaO,GAAc,CAACX,EAAML,IAAU,CAC3C,GAAM,CAAE,WAAAiB,CAAW,EAAIjB,EACvB,GAAI,CAACiB,EAAY,CAChB,IAAMC,EAAWX,GAAmB,EACpC,OAAOT,GAAiBO,EAAML,EAAOkB,CAAQ,EAG9C,IAAMC,EAAcd,EAAK,IAAIY,CAAU,EACvC,GAAI,CAACE,EACJ,OAAO,KAGR,IAAID,EAAW,KACTE,EAAcf,EAAK,IAAIc,EAAY,UAAU,GAAK,CAAC,EACnD,CAAE,cAAeE,EAAM,gBAAiBC,CAAe,EAAIF,EAajE,OAZIC,IAAS,kBACZH,EAAWP,GAAoB,EACrBW,GAAgB,SAAW,OACrCJ,EAAWJ,GAAgB,EACjBQ,GAAgB,YAAc,OACxCJ,EAAWL,GAAyB,EAC1BS,GAAgB,WAC1BJ,EAAWN,GAAoB,EACrBU,GAAgB,SAC1BJ,EAAWH,GAAyB,GAGjCG,GACIpB,GAAiBO,EAAML,EAAOkB,CAAQ,CAI/C,EAEMK,GAAgB,CAACC,EAAUC,EAAUzB,IAAU,CACpD,GAAM,CAAE,OAAA0B,EAAQ,MAAAjB,CAAM,EAAIgB,EAC1B,OAAQD,EAAU,CACjB,IAAK,SACJ,MAAO,CACN,eAAgBE,EAChB,uBAAwBjB,CACzB,EACD,IAAK,WAAY,CAChB,IAAMa,EAAiBK,GAAkB3B,CAAK,EAExC4B,EAAS,CACd,gBAAiB,CAChB,GAAGN,EACH,WAAYI,CACb,CACD,EAEMG,EAAuBP,EAAe,aAAeI,EAC3D,OAAIE,EAAO,gBAAgB,SAAW,QAAaC,IAClDD,EAAO,gBAAgB,OAAS,MAG1BA,CACR,CACA,IAAK,OAGJ,MAAO,CACN,gBAAiB,CAChB,GAJqBD,GAAkB3B,CAAK,EAK5C,OAAQ0B,CACT,CACD,EAED,IAAK,OAGJ,MAAO,CACN,gBAAiB,CAChB,GAJqBC,GAAkB3B,CAAK,EAK5C,OAAA0B,CACD,CACD,EAED,QACC,OAAO,IACT,CACD,EAEMC,GAAqB3B,GAAU,CACpC,GAAM,CAAE,WAAAiB,EAAY,QAAAa,EAAS,QAAAC,CAAQ,EAAI/B,EAEnCgC,EADcF,EAAQ,IAAIb,CAAU,GACX,WACzBG,EAAcU,EAAQ,IAAIE,CAAS,EACnCC,EAAmBD,GAAaD,EAAQd,CAAU,EAAE,WACpDiB,EAAqBH,EAAQE,CAAgB,EAMnD,MALuB,CACtB,GAAGb,GAAa,gBAChB,GAAGc,GAAoB,eACxB,CAGD,EAEaC,GAAgB,CAAClC,EAAMD,EAAOoC,IAAW,CACrD,GAAM,CAAE,SAAAX,EAAU,GAAAY,CAAG,EAAID,EAEzB,OADanC,EAAK,SAASoC,CAAE,GAAG,KAClB,CACb,IAAK,eAAgB,CACpB,GAAM,CAAE,oBAAAC,CAAoB,EAAItC,EAChC,OAAO,OAAO,QAAQyB,CAAQ,EAAE,OAAO,CAACG,EAAQ,CAACW,EAAMC,CAAK,KACvDD,IAASD,IACZV,EAAOS,CAAE,EAAIG,GAEdZ,EAAO,GAAGS,eAAgBE,GAAM,EAAIC,EAC7BZ,GACL,CAAC,CAAC,CACN,CACA,IAAK,OACJ,OAAOL,GAAcc,EAAIZ,EAAUzB,CAAK,EAEzC,IAAK,QACJ,MAAO,CAAE,MAAOyB,CAAS,EAE1B,IAAK,SACJ,MAAO,CAAE,YAAaA,CAAS,EAEhC,IAAK,OAGJ,MAAO,CACN,gBAAiB,CAChB,GAJqBE,GAAkB3B,CAAK,EAK5C,CAACqC,CAAE,EAAGZ,CACP,CACD,EAED,QACC,OAAO,IACT,CACD,EGvOAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQA,IAAMC,GAA4B,IAAI,cACtCA,GAA0B,YAAYC,EAAkB,EAExD,IAAMC,GAAN,cAA8BC,EAAU,CACvC,aAAc,CACb,MAAM,EAEN,KAAK,SAAW,GAChB,KAAK,UAAY,EAClB,CAEA,SAAU,CACT,MAAM,QAAQ,EAEd,KAAK,WAAW,mBAAqB,CACpC,GAAG,KAAK,WAAW,mBACnBH,EACD,EACA,KAAK,UAAU,IAAI,+BAA+B,CACnD,CAEA,mBAAoB,CACnB,MAAM,kBAAkB,EAET,KAAK,WAAW,cAAc,yBAAyB,EAC/D,iBAAiB,QAAS,IAAM,CACtC,KAAK,UAAY,CAAC,KAAK,SACxB,CAAC,CACF,CACD,EAEMI,GAAO,yBACR,eAAe,IAAIA,EAAI,GAC3BF,GAAgB,OAAOE,EAAI,EAG5B,IAAOC,GAAQ,MAAOC,EAAQC,IAAwB,CACrD,IAAMC,EAAQF,EAAO,OAAS,CAAC,EACzB,CAAE,OAAAG,CAAO,EAAID,EA+BbE,EA9BcC,EAAKL,EAAQ,eAAe;AAAA;AAAA;AAAA,mBACrBM,GAAM,CAChC,GAAM,CAAE,OAAAC,CAAO,EAAID,EACnB,GAAI,CAACC,EACJ,OAGD,GAAM,CAAE,OAAQC,EAAO,MAAAC,CAAM,EAAIF,EAAO,SACxC,GAAI,CAACC,EAAO,CACPD,EAAO,KAAO,WACjBP,EAAO,QAAQ,YAAY,GAE3BA,EAAO,QAAQ,UAAU,CACxB,CAACO,EAAO,EAAE,EAAG,IACd,CAAC,EACDN,EAAoB,GAErB,OAGD,GAAM,CAAE,OAAQS,CAAU,EAAIR,EAC9BF,EAAO,QAAQ,UAAU,CACxB,CAACO,EAAO,EAAE,EAAG,CAAE,MAAAC,EAAO,MAAAC,CAAM,CAC7B,CAAC,EAEwBD,IAAUE,IAAYH,EAAO,EAAE,GAAG,OAE1DN,EAAoB,CAEtB;AAAA,MAMMU,EAAuB,WACvBC,EAAuB,WACvB,CAAE,YAAAC,CAAY,EAAIC,EAClB,CAACC,EAAkBC,CAAgB,EAAI,MAAM,QAAQ,IAAI,CAC9DH,EAAYF,CAAoB,EAChCE,EAAYD,CAAoB,CACjC,CAAC,EACKK,EACLf,EAAM,SAAW,OAAO,KAAKA,EAAM,OAAO,EAAE,OAAS,EAChDgB,EAAqBf,GAAQ,eAAiBD,EAAM,UACpDiB,EACL,CAAChB,GAAUc,GAAoBC,EAAmB,SAAW,EAC9Dd,EAAK,SAAW,CACf,SAAU,CACT,KAAM,OACN,aAAcO,EACd,SAAUM,EACV,YAAaF,EAAiB,MAC9B,KAAMA,EAAiB,SACxB,EACA,SAAU,CACT,KAAM,OACN,aAAcH,EACd,SAAUO,EACV,YAAaH,EAAiB,MAC9B,KAAMA,EAAiB,SACxB,CACD,EACAZ,EAAK,MAAQ,OAAO,KAAKA,EAAK,QAAQ,EACtCA,EAAK,KAAO,CACX,SAAUD,GAAQ,SAClB,SAAUA,GAAQ,QACnB,EACAC,EAAK,MAAM,EAKX,IAAMgB,EAAe,CAAC,CAACjB,EACjBkB,EAAU,CAAC,EACblB,GAAQ,UACXkB,EAAQ,KAAKlB,EAAO,SAAS,KAAK,EAE/BA,GAAQ,UACXkB,EAAQ,KAAKlB,EAAO,SAAS,KAAK,EAEnC,IAAMmB,EAAcD,EAAQ,KAAK,IAAI,EAE/BE,EAAcpB,EACjBqB,EAAY,+BAAgCF,CAAW,EACvDE,EAAY,oBAAoB,EAC7BC,EAAaD,EAAY,0BAA0B,EACnDE,EAAqBvB,EAAS,GAAK,uBACnCwB,EAAgBrB,GAAM,CAC3BA,EAAE,gBAAgB,EAClBN,EAAO,QAAQ,YAAY,CAC5B,EAGA,OAFyBK,EAAKL,EAAQ,oBAAoB;AAAA,uCAGpBoB;AAAA;AAAA,+CAEQG;AAAA;AAAA,oEAEqBG;AAAA,gBACpDC;AAAA;AAAA,QAERF;AAAA;AAAA;AAAA,MAGFrB;AAAA;AAAA,GAGN,EC3JAwB,IAIA,IAAMC,GAAU,MAAOC,EAAOC,IAA8B,CAC3D,GAAM,CAAE,QAAAC,EAAS,oBAAAC,EAAqB,YAAAC,CAAY,EAAIJ,EAChDK,EAAc,IAAI,IAAI,CAC3B,UACA,cACA,sBACD,CAAC,EACKC,EAAmB,IAAI,IAAI,CAAC,aAAc,iBAAiB,CAAC,EAC5DC,EAAmB,cAEnBC,EAAQ,IAAI,IAAI,CACrB,CAAC,sBAAuB,CAAC,EACzB,CAAC,MAAO,CAAC,EACT,CAAC,6BAA8B,CAAC,EAChC,CAAC,uBAAwB,CAAC,EAC1B,CAAC,OAAQ,CAAC,EACV,CAAC,8BAA+B,CAAC,EACjC,CAAC,gCAAiC,CAAC,EACnC,CAAC,SAAU,CAAC,EACZ,CAAC,yBAA0B,CAAC,CAC7B,CAAC,EAEKC,EAAgBC,GAAS,CAC9B,GAAM,CAAE,UAAWC,EAAQ,cAAeC,CAAK,EAAIF,EACnD,OAAOF,EAAM,IAAI,GAAGG,KAAUC,GAAM,GAAKJ,EAAM,IAAI,GAAGG,GAAQ,GAAK,CACpE,EAEME,EAAeC,GAAO,CAC3B,IAAMJ,EAAOT,EAAQ,IAAIa,CAAE,EAC3B,OAAIJ,EAAK,SAAS,IAAM,SAChBA,EAAK,qBAAqB,EAGbT,EAAQ,IAAIa,CAAE,EACf,qBAAqB,CAC1C,EAEMC,EAAqB,CAACC,EAAgBC,IAA+B,CAC1E,IAAIC,EAAe,EACfC,EAAWN,EAAYG,CAAM,EAEjC,KAAOG,GAAU,CAEhB,GADAD,IACIC,IAAaF,EAChB,OAAOC,EAGRC,EAAWN,EAAYM,CAAQ,EAGhC,MAAO,EACR,EAgCMC,EA/BgB,OAAO,QAAQlB,CAAO,EACR,KAAK,CAAC,CAACmB,CAAG,EAAG,CAACC,CAAG,IAAM,CAC1D,IAAMC,EAAQtB,EAAQ,IAAIoB,CAAG,EACvBG,EAAQvB,EAAQ,IAAIqB,CAAG,EACvBG,EAAShB,EAAac,CAAK,EAC3BG,EAASjB,EAAae,CAAK,EACjC,GAAIC,IAAWC,EACd,OAAOD,EAASC,EAGjB,GAAM,CAAE,UAAWC,EAAS,cAAeC,CAAM,EAAIL,EAC/C,CAAE,UAAWM,EAAS,cAAeC,EAAM,EAAIN,EAC/CO,EAAU,CAAC,MAAO,QAAQ,EAChC,GACCH,IAAU,mBACVE,KAAU,mBACVC,EAAQ,SAASJ,CAAO,GACxBI,EAAQ,SAASF,CAAO,EACvB,CAED,GAAId,EAAmBM,EAAKC,CAAG,EAAI,EAClC,OAAOK,IAAY,MAAQ,EAAI,GAEhC,GAAIZ,EAAmBO,EAAKD,CAAG,EAAI,EAClC,OAAOM,IAAY,MAAQ,GAAK,EAIlC,MAAO,EACR,CAAC,EAE8B,IAAI,CAAC,CAACb,EAAIkB,CAAM,IAAM,CAGpD,IAAMpB,EAFOX,EAAQ,IAAIa,CAAE,IACF,aAAa,GACd,UAAU,CAAC,EAC7BmB,EAAa,CAAC,EACdtB,EAASqB,EAAO,SAAS,EAC/B,GAAIrB,IAAW,SACd,OAAW,CAACuB,EAAUC,EAAS,IAAK,OAAO,QAAQH,CAAM,EAAG,CAC3D,GAAI3B,EAAY,IAAI6B,CAAQ,EAC3B,SAGD,IAAIE,EAAQD,GASZ,GARIC,IAAU,SACbA,EAAQ,IAGL9B,EAAiB,IAAI4B,CAAQ,IAChCE,EAAQ,KAAK,UAAUA,CAAK,GAGzB,CAACF,EAAS,SAAS3B,CAAgB,EAAG,CACzC,IAAM8B,GAAeH,EAAS,QAAQ,WAAY,EAAE,EACpDD,EAAWI,EAAY,EAAID,EAC3B,SAGD,GAAM,CAACE,GAAMC,EAAI,EAAIL,EAAS,MAAM3B,CAAgB,EAC9CiC,GAAa,QAAQF,KACrBG,GAAW,CAChB,SAAU,CACT,WAAYF,GACZ,aAAc,0BACf,EACA,SAAUH,CACX,EACMM,GAAyBT,EAAWO,EAAU,GAAK,CAAC,EAC1DE,GAAuB,KAAKD,EAAQ,EACpCR,EAAWO,EAAU,EAAIE,GAI3B,IAAMC,EAAa,CAClB,KAAM,CACL,SAAU,CACT,OAAAhC,EACA,GAAAG,EACA,KAAAF,EACA,UAAW,GACZ,EACA,GAAGqB,CACJ,CACD,EAEA,OAAOW,GAAUD,CAAU,CAC5B,CAAC,EAEGE,EAAiB,GACjBzC,IAAgBD,IAsBnB0C,EAAiBD,GAXE,CAClB,KAAM,CACL,SAAU,CACT,OAAQ,OACR,GAAI,mCACJ,KAAM,YACP,EACA,cAjBoB,CACrB,KAAM,CACL,SAAU,CACT,OAAQ,OACR,GAAI,mCACJ,KAAM,mBACP,EACA,sBAAuBzC,CACxB,CACD,CASC,CACD,CAEqC,GAGtC,IAAM2C,EACL,sGACKC,EAAa;AAAA;AAAA;AAAA,OAGb3B,EAAS,KAAK,EAAE,IAAIyB,IAAiBC;AAAA;AAAA,YAGrCE,EAAiB,CAAE,OAAQ,YAAa,MAAO,EAAK,EAE1D,KAAK,cAAc,cAAc,SAAU,GAAM,oBAAoB,EAErE,GAAI,CACH,MAAMC,GAAKF,EAAYC,CAAc,CACtC,OAASE,EAAP,CACD,OAAAC,GAAeD,CAAG,EACX,EACR,QAAE,CACD,KAAK,cAAc,cAAc,SAAU,GAAO,oBAAoB,CACvE,CAEA,MAAO,EACR,EAEOE,GAAQrD,GPpLf,IAAMsD,GAAkB,IAAY,CACnC,IAAMC,EAAiBC,EAAY,sBAAsB,EACzDC,GAAOF,EAAgB,CAAE,KAAM,SAAU,CAAC,EAC1C,OAAO,WAAW,SAAS,OAAO,WAAW,CAC9C,EAEqBG,GAArB,cAAgDC,CAAU,CACzD,QAAUC,GAAoB,KAAK,SAAS,KAAK,IAAI,CAAC,EACtD,aAAe,CACd,QAAS,CAAC,EACV,OAAQ,KACR,oBAAqB,KACrB,UAAW,CAAC,CAAE,KAAM,KAAM,KAAM,SAAU,CAAC,EAC3C,oBAAqB,GACrB,YAAa,GACb,iBAAkB,CAAC,EACnB,WAAY,GACZ,iBAAkB,GAClB,iBAAkB,GAClB,QAAS,IAAI,GACd,EAEA,MAAM,MAAO,CACZ,IAAMC,EAAgBL,EAAY,iBAAiB,EAC7CM,EAASC,EAAK;AAAA;AAAA,IAGdC,EAAMD,EAAK;AAAA;AAAA,IAGjBC,EAAI,GAAG,QAAUC,GAAQ,KAAK,QAAQ,WAAWA,CAAG,CAAC,EACrDD,EAAI,GAAG,WAAY,CAACE,EAAGC,IAAU,KAAK,QAAQ,SAASA,EAAM,MAAM,CAAC,EACpE,IAAMC,EAAaL,EAAK;AAAA;AAAA,IAGlBM,EAAWN,EAAK;AAAA;AAAA,IAGhBO,EAAUP,EAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOfQ,EAAa,KAAK,kBAAkB,IAAI,EAExCC,EAAe,IAAM,KAAK,QAAQ,WAAW,EAAE,EACrDC,EAAK,KAAK,GAAG;AAAA;AAAA,MAETX;AAAA;AAAA;AAAA;AAAA,oEAI8DU;AAAA,UAC1DX;AAAA;AAAA;AAAA,QAGFG;AAAA,QACAO;AAAA;AAAA;AAAA,QAGAH;AAAA,QACAC;AAAA;AAAA;AAAA,MAGFC;AAAA;AAAA,IAIJ,KAAK,IAAMR,EACX,KAAK,IAAME,EACX,KAAK,WAAaI,EAClB,KAAK,SAAWC,EAChB,KAAK,SAAS,iBAAiB,cAAgBK,GAAM,CACpD,IAAMC,EAASD,EAAE,OACjB,GAAI,CAACC,EACJ,OAGD,IAAMC,EAAQ,KAAK,MACbC,EAASC,GAAc,KAAK,SAAUF,EAAOD,CAAM,EACzD,GAAI,CAACE,EACJ,OAGD,GAAM,CAAE,QAAAE,EAAS,WAAAC,EAAY,QAAAC,CAAQ,EAAIL,EACzC,GAAI,CAACI,EAAY,CAChB,GAAM,CAAE,YAAAE,CAAY,EAAIL,EACxB,KAAK,QAAQ,uBAAuBK,CAAW,EAC/C,OAGD,IAAMC,EAAoB,CACzB,eACA,uBACA,YACD,EACMC,EAAoB,OAAO,KAAKP,CAAM,EACtCQ,EAAiBF,EAAkB,KAAMG,GAC9CF,EAAkB,SAASE,CAAQ,CACpC,EACMC,EAAc,CACnB,GAAGN,EAAQ,IAAID,CAAU,EACzB,GAAGD,EAAQC,CAAU,CACtB,EACMQ,EAAKH,EAAiBE,EAAY,GAAKA,EAAY,WACzD,KAAK,QAAQ,SAASC,EAAIX,CAAM,CACjC,CAAC,EAED,KAAK,cAAc,cAAc,SAAU,GAAM,oBAAoB,EAErE,GAAI,CACH,MAAM,QAAQ,IAAI,CACjB,KAAK,SAASb,CAAG,EACjB,KAAK,oBAAoB,EACzB,MAAM,KAAK,CACZ,CAAC,EAED,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,CACjC,QAAE,CACD,KAAK,cAAc,cAAc,SAAU,GAAO,oBAAoB,CACvE,CACD,CAEA,aAAayB,EAAUC,EAAU,CAChC,GAAM,CACL,QAASC,EACT,WAAYC,EACZ,QAASC,EACT,OAAQC,CACT,EAAIJ,EACE,CAAE,QAAAX,EAAS,WAAAC,EAAY,QAAAC,EAAS,OAAAc,CAAO,EAAI,KAAK,MAChDC,EAAO,KAAK,kBAAkB,EAC9BC,EAAgBN,IAAeZ,GAAWc,IAAeZ,EAC3DgB,GACHC,GAAgB,KAAK,IAAKF,CAAI,EAG/B,IAAMG,EAAkBP,IAAkBZ,EACtCmB,GACH,KAAK,YAAYH,CAAI,EAGtB,IAAMI,EAAgBN,IAAcC,GAChCE,GAAiBE,GAAmBC,IACvC,KAAK,YAAYJ,CAAI,EAGlBI,IACH,KAAK,IAAI,OAAS,CAACL,GAGpB,KAAK,kBAAkB,IAAI,CAC5B,CAEA,MAAM,SAA4B,CACjC,IAAMd,EAAU,KAAK,kBAAkB,EACjCoB,EAAiB,MAAMC,GAAQ,KAAK,MAAOrB,CAAO,EACxD,OAAIoB,GACH/C,GAAgB,EAGV+C,CACR,CAEA,YAAYL,EAAM,CACjB,GAAM,CAAE,QAAAjB,EAAS,WAAAC,CAAW,EAAI,KAAK,MAErC,KAAK,IAAI,OAAOA,CAAU,EAE1B,IAAMuB,EAAeP,EAAK,IAAIhB,CAAU,EAMxC,GALI,CAACuB,GAKD,EADcA,EAAa,SAAS,IAAM,OAE7C,OAGD,IAAMC,EAAoBD,EAAa,WAEjCE,EADsB1B,EAAQyB,CAAiB,EACF,qBAAqB,EAClEE,EAAe,CAAC,GAAGV,EAAK,OAAO,CAAC,EAAE,KACtCW,GAAOA,EAAG,aAAeF,CAC3B,EAEIC,GACH,KAAK,IAAI,OAAOA,EAAa,GAAI,EAAI,CAEvC,CAEA,mBAAoB,CACnB,GAAM,CAAE,QAAA3B,EAAS,QAAAE,CAAQ,EAAI,KAAK,MAC5B2B,EAAgB,OAAO,QAAQ7B,CAAO,EAC5C,GAAI6B,EAAc,SAAW,EAC5B,OAAO3B,EAGR,IAAM4B,EAAU,IAAI,IAAI,CAAC,GAAG5B,CAAO,CAAC,EACpC,OAAW,CAACO,EAAIX,CAAM,IAAK+B,EAAe,CACzC,IAAME,EAAU7B,EAAQ,IAAIO,CAAE,EAC9B,GAAI,CAACsB,EAAS,CACbD,EAAQ,IAAIrB,EAAIX,CAAM,EACtB,SAGDgC,EAAQ,IAAIrB,EAAI,CAAE,GAAGsB,EAAS,GAAGjC,CAAO,CAAC,EAG1C,OAAOgC,CACR,CAEA,iBAAiBE,EAAS,CACzB,OAAOA,EAAQ,OAAO,CAACC,EAAKC,IAAY,CACvC,GAAM,CAAE,GAAAzB,EAAI,WAAY0B,CAAY,EAAID,EAExC,cAAOC,EAAY,iBAAiB,EAChCA,EAAY,aAAa,IAAM,qBAClC,OAAOA,EAAY,YAGpBF,EAAI,IAAIE,EAAY,GAAI,CACvB,GAAGA,EACH,gBAAiB,KAAK,MAAMA,EAAY,eAAe,CACxD,CAAC,EACDF,EAAI,IAAIxB,EAAI,CACX,GAAGyB,EACH,cAAe,yBACf,WAAYC,EAAY,EACzB,CAAC,EACMF,CACR,EAAG,IAAI,GAAK,CACb,CAEA,MAAM,sBAAuB,CAS5B,OARa,MAAM,KAAK,kBAAkB,QAAQ,CACjD,kCACD,CAAC,KAC+B,CAAC,GAAG,QAAQ,CAAC,GACH,MAAM,IAAI,CAAC,CAAE,MAAAG,EAAO,MAAAC,CAAM,KAAO,CAC1E,MAAAD,EACA,MAAAC,CACD,EAAE,CAEH,CAEA,MAAM,wBAAyB,CAE9B,IAAMC,EAAwB,6HACxB,CAAE,MAAOC,CAAmB,EAAI,MAAMC,GAC3CF,CACD,EACA,OAAOC,CACR,CAEA,MAAM,qBAAsB,CAC3B,IAAME,EAA4B,KAAK,uBAAuB,EACxDC,EAA0B,KAAK,qBAAqB,EACpDC,EAAW,CAACF,EAA2BC,CAAuB,EAC9D,CAACvC,EAAc,GAAIyC,EAAmB,CAAC,CAAC,EAAI,MAAM,QAAQ,IAC/DD,CACD,EACM,CAAE,uBAAAE,EAAwB,eAAAC,EAAgB,oBAAAC,CAAoB,EACnE,KAAK,QACNF,EAAuB1C,CAAW,EAClC2C,EAAe3C,CAAW,EAC1B4C,EAAoBH,CAAgB,CACrC,CAEA,MAAM,eAAgB,CAUrB,IAAM3B,EAAO,MAAMuB,GAPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOqB,EAExC,OAAO,KAAK,iBAAiBvB,EAAK,KAAK,CACxC,CAEA,MAAM,0BAA2B,CAChC,IAAM+B,EAAa,0CACbC,EAAU,CAAC,EACX,CAAE,OAAAjC,CAAO,EAAI,KAAK,MACxB,GAAIA,EAAO,SAAU,CACpB,IAAMkC,EAAmBlC,EAAO,cAAc,KAC5CmC,GAASA,EAAK,OAASnC,EAAO,SAAS,KACzC,EACAiC,EAAQ,iBAAiB,EAAIC,EAAiB,KAE/C,IAAMjC,EAAO,MAAMuB,GAAWQ,EAAY,CACzC,OAAQ,OACR,QAAAC,EACA,KAAM,KAAK,UAAU,CACpB,SAAUjC,EAAO,SAAS,KAC3B,CAAC,CACF,CAAC,EAED,OAAO,KAAK,iBAAiBC,EAAK,KAAK,CACxC,CAEA,MAAM,2BAA4B,CACjC,IAAMf,EAAU,MAAM,KAAK,yBAAyB,EACpD,KAAK,SAAUL,GAAU,CACxBA,EAAM,QAAUK,CACjB,CAAC,CACF,CAEA,MAAM,UAAW,CAChB,IAAMA,EAAU,MAAM,KAAK,cAAc,EACzC,KAAK,SAAUL,GAAU,CACxBA,EAAM,QAAU,CAAC,EACjBA,EAAM,QAAUK,CACjB,CAAC,EACIA,EAAQ,IAAI,KAAK,MAAM,UAAU,GACrC,KAAK,QAAQ,WAAW,EAAE,CAE5B,CACA,YAAYkD,EAAW,CACtB,IAAMC,EAAWC,GAAYF,EAAW,KAAK,KAAK,EAClD,GAAI,CAACC,EAAU,CACd3D,EAAK,KAAK,UAAU,IACpB,KAAK,SAAS,MAAQ,CAAC,EACvB,KAAK,SAAS,OAAO,EACrB,OAGD,GAAM,CAAE,KAAAuB,EAAM,MAAAsC,EAAO,MAAAnB,EAAO,SAAAoB,EAAU,MAAAC,CAAM,EAAIJ,EAChD3D,EAAK,KAAK,UAAU;AAAA,sBACA6D;AAAA,iDAC2BnB;AAAA,IAG/C,KAAK,SAAS,SAAWoB,EACzB,KAAK,SAAS,KAAOvC,EACrB,KAAK,SAAS,MAAQwC,EACtB,KAAK,SAAS,MAAM,CACrB,CAEA,mBAAoB,CAWnB,OAAOC,GAAa,KAVM,SAAY,CACrC,KAAK,cAAc,cAAc,SAAU,GAAM,oBAAoB,EAErE,GAAI,CACH,MAAM,KAAK,0BAA0B,CACtC,QAAE,CACD,KAAK,cAAc,cAAc,SAAU,GAAO,oBAAoB,CACvE,CACD,CAE2C,CAC5C,CAEA,mBAAoB,CACnB,KAAK,SAAU7D,GAAU,CACxBA,EAAM,oBAAsB,KAAK,8BAA8B,EAC/DA,EAAM,UAAY8D,GAChB,YAAY,KAAK,qBAAqB,EAAG,wBAAwB,EACjE,IAAKC,GAAa,CAElB,IAAMC,EADmBF,GAAI,iBAAiBC,EAAU,MAAM,GAC/B,KAEzBE,EADmBH,GAAI,iBAAiBC,EAAU,MAAM,GAC/B,KAC/B,MAAO,CAAE,KAAAC,EAAM,KAAAC,CAAK,CACrB,CAAC,CACH,CAAC,CACF,CAEA,4BAA6B,CAC5B,KAAK,SAAS,UAAU,MAAO1E,GAAU,CACxC,GAAIA,IAAU,kBACb,OAGD,IAAM2E,EAAiB,KAAK,SAAS,KAAK,GAAG,EACvCC,EAAqB,KAAK,oBAAoB,EACpD,MAAM,QAAQ,IAAI,CAACD,EAAgBC,CAAkB,CAAC,CACvD,CAAC,CACF,CACD,EQhZAC,IAEA,IAAqBC,GAArB,KAA+C,CAC9C,YAAYC,EAASC,EAAgB,CACpC,GAAI,CAACD,EACJ,MAAM,IAAI,MACT,4DACD,EAED,IAAME,EAAuB,KAAK,iBAAiB,qBAEnD,GAAI,CAACA,EAAsB,CAC1B,YAAY,OAAO,MAClB,KAAK,YAAY,GAAI,iDAAiD,CACvE,EACA,OAGD,KAAK,cAAgB,KACrB,KAAK,aAAe,KACpB,KAAK,YAAc,cACnB,KAAK,UAAY,QACjB,KAAK,IAAM,KAAK,iBAAiB,EAAI,qBACrC,KAAK,cAAgB,KACrB,KAAK,qBAAuB,CAAC,EAC7B,KAAK,cAAgBA,EACrB,KAAK,aAAe,WACnB,KAAK,sCAAsC,KAAK,IAAI,EACpD,KAAK,aACN,EACA,KAAK,eAAiBD,EACtB,KAAK,cAAgB,IAAI,IACzB,KAAK,6CAA6CD,CAAO,EACzD,KAAK,wBAAwB,EAAI,CAClC,CACA,6BAA6BG,EAAM,CAClC,IAAMC,EAAe,cACjBC,EAAkB,GACtBF,EAAK,MACJA,EAAK,KAAK,QAAQ,SAAUG,EAAS,CAChCA,EAAQ,SACXD,EAAkB,GAEpB,CAAC,EACF,IAAME,EAAaJ,EAAK,MACvBK,EAAC,cACA,cAAY,OACZ,IAAKL,EAAK,MACV,UAAW,GAAGC,UACf,EAEAI,EAAC,QACA,UAAWJ,EAAe,SAC1B,SAAS,MAERD,EAAK,KACP,EAED,OAAKA,EAAK,MAAM,OAUT,CAFNK,EAAC,QAAK,UAFwB,oCAHGH,EAC/B,0BACA,8BAGwCF,EAAK,MAAM,MAAO,EAEvCI,CAAU,EATxBA,CAUT,CACA,6CAA6CP,EAAS,CACrDA,EAAQ,YAAY,iBAAiB,CACpC,6BAA8B,KAAK,4BACpC,CAAC,CACF,CACA,iBAAkB,CACjB,KAAK,eAAe,qBAAqB,CAC1C,CACA,WAAWS,EAAIC,EAAMC,EAAOC,EAAa,CACxC,IAAMC,EACLD,GAAeA,EAAY,iBAAiB,aAAa,EACpDE,EAAoBD,GAAkBA,EAAe,OAAS,OAC9DE,EAAOH,EAAY,aAAa,MAAM,EAE5C,KAAK,cAAc,IAAIH,EAAI,CAC1B,GAAIA,EACJ,KAAAM,EACA,MAAOL,EACP,KAAMD,EACN,KAAME,EACN,OAAQG,EACR,MAAO,EACR,CAAC,EACD,KAAK,gBAAgB,CACtB,CACA,cAAcL,EAAI,CACb,KAAK,cAAc,IAAIA,CAAE,GAC5B,KAAK,cAAc,OAAOA,CAAE,EAE7B,KAAK,gBAAgB,CACtB,CACA,iBAAkB,CACjB,KAAK,cAAgB,IAAI,IACzB,KAAK,gBAAgB,CACtB,CACA,oBAAqB,CACpB,KAAK,cAAc,QAASO,GAAiB,CAC5CA,EAAa,MAAQ,EACtB,CAAC,EACD,KAAK,gBAAgB,CACtB,CACA,kBAAmB,CAClB,KAAK,cAAc,QAASA,GAAiB,CACxCA,EAAa,OAChB,KAAK,cAAc,OAAOA,EAAa,EAAE,CAE3C,CAAC,EACD,KAAK,gBAAgB,CACtB,CACA,iBAAkB,CACjB,IAAMC,EAAW,KAAK,kBAAkB,EAExCA,EAAS,QAAQ,eAAe,EAChC,IAAMC,EAAoBD,EAAS,cAAc,eAAe,EAC1DE,EAAeF,EAAS,cAAc,UAAU,EAChDG,EAAa,YAAY,KAE/B,OAAAF,EAAkB,KAAO,KAAK,iBAAiB,EAC/CC,EAAa,KAAOC,EAAW,KAAK,YAAY,IAAI,IAAM,EAE1DH,EAAS,gBAAgB,YAAYC,CAAiB,EACtDD,EAAS,gBAAgB,YAAYE,CAAY,EAE1CF,EAAS,gBAAgB,GACjC,CACA,sBAAsBI,EAAuB,CAC5C,IAAMC,EAAyBC,GAAe,CAC7C,IAAMC,EAAoB,KAAK,kBAAkBD,CAAU,EAC3DF,EAAsB,KAAMG,CAAiB,CAC9C,EAEMC,EAAiB,IAAI,OAAO,eAAeH,CAAqB,EAEhEI,EAAQ,KAAK,gBAAgB,EACnC,OAAO,KAAK,SACX,mBACAA,EACA,KAAK,IACL,KACAD,CACD,CACD,CACA,0BAA2B,CAC1B,IAAMC,EAAQ,KAAK,gBAAgB,EAC7BH,EAAa,KAAK,SAAS,mBAAoBG,EAAO,KAAK,GAAG,EAEpE,OAAO,KAAK,kBAAkBH,CAAU,CACzC,CACA,kBAAkBA,EAAY,CAC7B,OAAIA,EAAW,aAAa,IAAM,GACjC,YAAY,OAAO,MAAM,GAAI,CAC5B,KAAM,OACN,KAAMA,CACP,CAAC,EACM,MAGJA,EAAW,QAAQ,EACf,KAEDA,EAAW,UAAU,CAC7B,CACA,iBAAiBI,EAAW,CACtBA,IAGL,KAAK,cAAgBA,EAAU,iBAC9B,+BACD,EACD,CACA,8BAA8BA,EAAWC,EAAa,CAOrD,GANIA,EACH,KAAK,gBAAgB,EAErB,KAAK,mBAAmB,EAGrB,CAACD,EAAW,CACf,KAAK,gBAAgB,EACrB,OAGD,IAAME,EAAqBF,EAAU,YACpC,8BACD,EAEA,QAASG,EAAI,EAAGA,EAAID,EAAmB,OAAQC,IAAK,CACnD,IAAMlB,EAAciB,EAAmBC,CAAC,EAClCC,EAAYnB,EAAY,aAAa,IAAI,EACzCoB,EAAQ,KAAK,gBAAgBpB,EAAa,OAAO,EACjDqB,EAAW,KAAK,gBAAgBrB,EAAa,MAAM,EACzD,KAAK,WAAWmB,EAAWC,EAAOC,EAAUrB,CAAW,EAGxD,KAAK,iBAAiB,CACvB,CACA,oBAAoBe,EAAWO,EAAgB,CAC9C,GAAI,CAACP,EACJ,OAGD,IAAMQ,EAAkBR,EAAU,YAAY,2BAA2B,EAEnES,EAAa,KAAK,uBAAuBD,CAAe,EAC1DL,EAAI,EAEFO,EAAiB,UAAY,CAClC,GAAIP,GAAKM,EAAW,OACnB,OAED,IAAME,EAAQF,EAAW,OAASN,EAAI,EACtC,GAAI,CAACM,EAAWE,CAAK,EACpB,OAAAR,IACOO,EAAe,EAEvBE,EAAaD,EAAO,CAAC,CACtB,EAEMC,EAAe,CAACD,EAAOE,IAAa,CACrCA,GAAYJ,EAAWE,CAAK,EAAE,QACjCR,IACAO,EAAe,GAEf,KAAK,qBACJD,EAAWE,CAAK,EAAEE,CAAQ,EAC1BN,EACA,UAAY,CACX,WAAW,UAAY,CACtBM,IACAD,EAAaD,EAAOE,CAAQ,CAC7B,EAAG,CAAC,CACL,CACD,CAEF,EAEAH,EAAe,CAChB,CACA,uBAAuBb,EAAmB,CACzC,IAAMY,EAAa,CAAC,EAEpB,QAASN,EAAI,EAAGA,EAAIN,EAAkB,OAAQM,IAAK,CAClD,IAAMW,EAAW,KAAK,gBAAgBjB,EAAkBM,CAAC,EAAG,UAAU,EACjEM,EAAWK,CAAQ,IACvBL,EAAWK,CAAQ,EAAI,CAAC,GAGzBL,EAAWK,CAAQ,EAAEL,EAAWK,CAAQ,EAAE,MAAM,EAAIjB,EAAkBM,CAAC,EAGxE,OAAOM,CACR,CACA,wBAAwBM,EAASC,EAAU,CAK1C,GAJKD,IACJA,EAAU,IAGPA,EAAS,CACZ,IAAMrB,EAAwB,SAAUuB,EAAWpB,EAAmB,CACrEoB,EAAU,iBAAiBpB,CAAiB,EAC5CoB,EAAU,8BAA8BpB,CAAiB,EACzDoB,EAAU,oBAAoBpB,EAAmB,EAAI,EACjDmB,GACHA,EAAS,CAEX,EACA,KAAK,sBAAsBtB,CAAqB,MAC1C,CACN,IAAMG,EAAoB,KAAK,yBAAyB,EACxD,KAAK,iBAAiBA,CAAiB,EACvC,KAAK,8BAA8BA,CAAiB,EACpD,KAAK,oBAAoBA,EAAmB,EAAK,EAEnD,CACA,uCAAwC,CACvC,IAAMmB,EAAW,IAAM,CACtB,KAAK,aAAe,WACnB,KAAK,sCAAsC,KAAK,IAAI,EACpD,KAAK,aACN,CACD,EAEA,KAAK,wBAAwB,GAAMA,CAAQ,CAC5C,CACA,yBAAyBZ,EAAWG,EAAgB,CACnD,GAAIH,IAAc,oBACjB,KAAK,qBAAqB,KAAK,cAAeG,CAAc,MACtD,CACN,IAAMtB,EAAc,KAAK,YAAY,UAAWmB,CAAS,EACrDnB,EACH,KAAK,qBAAqBA,EAAasB,CAAc,GAErD,YAAY,OAAO,MAClB,KAAK,YAAY,GAAI,8CAA8C,CACpE,EACA,KAAK,cAAcH,CAAS,GAG/B,CACA,qBAAqBnB,EAAasB,EAAgBS,EAAU,CAC3D,GAAI,CAAC/B,EACJ,OAGD,IAAMiC,EAAc,KAAK,mBACxB,kCACA,KAAK,WAAW,CACjB,EACMC,EAAc,KAAK,kBAAkB,EAC3CA,EAAY,KAAKD,CAAW,EAE5B,IAAIE,EACH,KAAK,qBAAqB,KAAK,gBAAgBnC,EAAa,IAAI,CAAC,EAC7DmC,IACJA,EAAa,CAAC,GAGf,IAAMC,EAAsBD,EAAW,OAgDvC,GA9CAA,EAAW,GAAK,KAAK,gBAAgBnC,EAAa,IAAI,EACtDmC,EAAW,iBACVD,EAAY,iBAAiB,eAAe,EAAE,KAC/CC,EAAW,YAAc,KAAK,gBAAgBnC,EAAa,aAAa,EAExEmC,EAAW,YAAc,KAAK,gBAAgBnC,EAAa,OAAO,EAClEmC,EAAW,aAAe,KAAK,gBAAgBnC,EAAa,QAAQ,EACpEmC,EAAW,IAAM,KAAK,gBAAgBnC,EAAa,KAAK,EACxDmC,EAAW,qBACV,KAAK,gBAAgBnC,EAAa,sBAAsB,IAAM,KAE3D,CAACmC,EAAW,aAAeA,EAAW,wBACzCA,EAAW,YAAcD,EAAY,iBACpC,uBACD,EAAE,OAGC,CAACC,EAAW,cAAgBA,EAAW,wBAC1CA,EAAW,aAAeD,EAAY,iBACrC,wBACD,EAAE,MAGHC,EAAW,MAAQ,KAAK,gBAAgBnC,EAAa,OAAO,EAC5DmC,EAAW,KAAO,KAAK,gBAAgBnC,EAAa,MAAM,EAC1DmC,EAAW,IAAM,KAAK,gBAAgBnC,EAAa,KAAK,EACxDmC,EAAW,KAAO,KAAK,gBAAgBnC,EAAa,MAAM,EAE1DmC,EAAW,aACV,KAAK,gBAAgBnC,EAAa,gBAAgB,IAAM,IACzDmC,EAAW,eACV,KAAK,gBAAgBnC,EAAa,kBAAkB,IAAM,IAE3DmC,EAAW,SAAW,KAAK,gBAAgBnC,EAAa,iBAAiB,EACzEmC,EAAW,WAAa,KAAK,gBAC5BnC,EACA,mBACD,EAEAmC,EAAW,UAAY,KACvBA,EAAW,OAAS,OACpBA,EAAW,aAAeE,EAC1BF,EAAW,KAAO,KAElB,KAAK,qBAAqBA,EAAW,EAAE,EAAIA,EAEvC,CAACb,EACJa,EAAW,QAAU,mBAErB,OAAO,YAAY,OAAO,KAAK,SAAUA,CAAU,EACjD,QAAQ,KAAMG,GAAQ,CACtB,GAAIA,IAAQ,KAAK,YAChB,OAAO,KAAK,mBAAmBtC,CAAW,CAE5C,CAAC,EACA,KAAK,IAAM,CACX,GAAI+B,EACH,OAAOA,EAAS,CAElB,CAAC,MACI,CACN,IAAMQ,EAAY,UAAUJ,EAAW,uBAAuBA,EAAW,cAErEC,GACHA,EAAoB,MAAM,EAG3B,IAAMI,EAAwB,gBAAkB,CAC/C,IAAMR,EAAYG,EAAW,OAAO,WAAW,UAC3CA,EAAW,OAAO,cAAgBH,EAAU,aAC/C,MAAMA,EAAU,mBAAmBhC,CAAW,EAG3C+B,GACHA,EAAS,EAEVI,EAAW,OAAS,IACrB,EAEAA,EAAW,OAAS,OAAO,KAC1B,KAAK,cAAc,EAAI,aACvB,GACAI,CACD,EACAJ,EAAW,OAAO,MAAM,EACxBE,EAAaF,EAAW,MAAM,EAC9BA,EAAW,OAAO,WAAaA,EAC/BA,EAAW,OAAO,iBAAiB,eAAgBK,CAAqB,EAGzE,SAASC,EAAkBC,EAAMC,EAAOC,EAAaC,EAAW,CAC/D,MAAO,gBAAgBH,2BAA8BC,eAAmBC,iBAA2BC,MACpG,CAEA,SAASR,EAAaS,EAAG,CACxB,IAAMC,EAAMD,EAAE,SACVE,EACEC,EAAY,IAAI,OAAO,UAAW,GAAG,EACrCC,EAAU,IAAI,OAAO,QAAS,GAAG,EACjCC,EAAW,IAAI,OAAO,SAAU,GAAG,EACnCC,EAAW,IAAI,OAAO,SAAU,GAAG,EAKzC,GAHIjB,EAAW,OACdA,EAAW,KAAO,KAAK,cAAc,EAAIA,EAAW,MAEjD,CAACA,EAAW,qBACfa,EAAWb,EAAW,YAAY,QAAQc,EAAWd,EAAW,KAAK,EACrEa,EAAWA,EAAS,QAAQE,EAASf,EAAW,GAAG,EACnDa,EAAWA,EAAS,QAAQG,EAAUhB,EAAW,IAAI,EACrDa,EAAWA,EAAS,QAAQI,EAAUjB,EAAW,IAAI,EAErDY,EAAI,MAAMC,CAAQ,MACZ,CAUN,GATAA,EAAWb,EAAW,iBAAiB,QACtCc,EACAd,EAAW,KACZ,EACAa,EAAWA,EAAS,QAAQE,EAASf,EAAW,GAAG,EACnDa,EAAWA,EAAS,QAAQG,EAAUhB,EAAW,IAAI,EACrDa,EAAWA,EAAS,QAAQI,EAAUjB,EAAW,IAAI,EACrDY,EAAI,MAAMC,CAAQ,EAEdb,EAAW,IAAK,CACnB,IAAMkB,EAAQN,EAAI,cAAc,OAAO,EACvCM,EAAM,UAAYlB,EAAW,IAC7BY,EAAI,KAAK,YAAYM,CAAK,EAG3B,IAAMC,EADoBP,EAAI,eAAe,oBAAoB,EAC1B,YACtCA,EAAI,cAAc,IAAI,CACvB,EAEA,GADAO,EAAa,aAAa,QAAS,OAAO,EACtCnB,EAAW,IAAK,CACnB,IAAMoB,EAAaD,EAAa,YAAYP,EAAI,cAAc,GAAG,CAAC,EAClEQ,EAAW,aAAa,OAAQpB,EAAW,GAAG,EAC9CoB,EAAW,aAAa,SAAU,QAAQ,EAC1CA,EAAW,aAAa,QAAS,eAAe,EAChDA,EAAW,YAAcpB,EAAW,WAEpCmB,EAAa,YAAcnB,EAAW,MAGlCA,EAAW,OACfY,EAAI,eAAe,cAAc,EAAE,MAAM,QAAU,QAGrDD,EAAE,YAAcX,EAAW,UAAU,UACrCW,EAAE,YAAc,SAAUH,EAAO,CAC5BG,EAAE,iBAAmBA,EAAE,gBAAgB,OAC1CA,EAAE,gBAAgB,OAAO,MAAMH,CAAK,GAEpCG,EAAE,YAAcH,GAASG,EAAE,YAC3BA,EAAE,MAAM,EAEV,EACAC,EAAI,MAAM,EAEV,IAAIS,EAAY,GAiBhB,GAhBIrB,EAAW,eACdqB,GAAaf,EACZ,YACAN,EAAW,SACX,wBAAwBA,EAAW,UAAU,iBAC7C,qBACD,GAEGA,EAAW,iBACdqB,GAAaf,EACZ,cACAN,EAAW,WACX,wBAAwBA,EAAW,UAAU,eAC7C,qCACD,GAEGqB,EAAW,CACd,IAAMC,EAAKV,EAAI,cAAc,QAAQ,EACrCU,EAAG,UAAYD,EACf,IAAME,EACLX,EAAI,eAAe,MAAM,GAAKA,EAAI,qBAAqB,MAAM,EAAE,CAAC,EAC7DW,GACHA,EAAO,YAAYD,CAAE,EAGxB,CACD,CACA,MAAM,mBAAmBzD,EAAa,CACrC,IAAMC,EACLD,GAAeA,EAAY,iBAAiB,aAAa,EAC1D,GAAI,CAACC,GAAkBA,EAAe,OAAS,OAC9C,OAGD,IAAMkB,EAAYnB,EAAY,aAAa,IAAI,EAEzC2D,EAAQ;AAAA,kBACE,KAAK,iBAAiB;AAAA,iBACvB3D,EAAY,aAAa,IAAI;AAAA,YAG5C,GAAI,CACH,MAAM,YAAY,KAAK2D,EAAO,CAC7B,OAAQ,YACR,MAAO,EACR,CAAC,EACD,KAAK,cAAcxC,CAAS,CAC7B,OAASyC,EAAP,CACD,IAAMC,EAAc,IAAI,YAAY,KAAMD,EAAM,YAAY,EACxDC,EAAY,aAAa,IAAM,GAClC,MAAM,YAAY,OAAO,MAAM,GAAI,CAClC,KAAM,OACN,KAAMA,CACP,CAAC,CAEH,CACD,CACA,SAAU,CACL,KAAK,cACR,aAAa,KAAK,YAAY,CAEhC,CACD,ECriBAC,IAOA,IAAIC,GAEEC,GAAiBC,GAAU,CAChC,IAAMC,EAAMD,EAAM,cACZE,EAAMD,EAAI,SAAS,eAAe,SAAS,EAC5CC,EAMJA,EAAI,YAAcC,EAAY,WAL9BH,EAAM,iBAAiB,OAAQ,UAAY,CAC1C,IAAME,EAAMD,EAAI,SAAS,eAAe,SAAS,EACjDC,EAAI,YAAcC,EAAY,UAC/B,CAAC,CAIH,EAEMC,GAAyBF,GAAQ,CACtCC,EAAY,WAAaD,EACzB,IAAMG,EAAmB,SAAS,eAAe,aAAa,EAC9DA,EAAiB,MAAM,QAAU,QACjC,SAAS,eAAe,gBAAgB,EAAE,UAAU,IAAI,WAAW,EAC9DA,EAAiB,MACrBA,EAAiB,IAAM,oBAExBN,GAAcM,CAAgB,EAE1BP,IACHA,GAAmB,CAClB,iBAAkB,EACnB,CAAC,CAEH,EAEMQ,GAA8BC,GAAiB,CACpD,IAAMC,EAAUL,EAAY,WAAW,EAGtCI,EAAa,MAAQ,uBACrBA,EAAa,WAAa,YAE1BC,EAAQ,WAAW,qBAAqB,EACxCJ,GAAsBK,EAAY,8BAA8B,CAAC,GAIjEF,EAAa,MAAQ,6BACrBA,EAAa,WAEbC,EAAQ,WAAW,2BAA2B,EAC9CA,EAAQ,WAAW,0BAA0B,EAC7CJ,GAAsBG,EAAa,QAAQ,EAC3C,OAAO,oBAAoB,UAAWD,EAA0B,EAElE,EAEMI,GAAW,MAChBC,EACAC,EACAC,IACI,CACJ,IAAMC,EAAkC,OAAO,WACzCC,EAAaD,EAAW,gBAAgB,IACxCE,EAAaF,EAAW,QAExBG,EAAa,CAClB,WAFkBC,EAAiB,cAAcP,CAAY,EAG7D,OAAAC,EACA,QAAAC,CACD,EAEA,GAAI,CACH,OAAO,MAAMM,EAAW,gBAAgBJ,EAAYC,EAAYC,CAAU,CAC3E,MAAE,CACD,MACD,CACD,EAEMG,GAAqB,MAAOb,GAAiB,CAClD,GACCA,EAAa,MAAQ,4BACrB,CAACA,EAAa,SAEd,OAGD,IAAMc,EAAO,KAAK,MAAMd,EAAa,QAAQ,EACvC,CAAE,aAAAI,EAAc,OAAAC,EAAQ,QAAAC,EAAU,OAAQ,EAAIQ,EAEpD,GACC,CAACV,GACD,CAACC,GACD,CAAC,KAAK,cACN,KAAK,aAAa,IAAM,GAExB,OAGD,IAAMJ,EAAUL,EAAY,WAAW,EACvCK,EAAQ,WAAW,0BAA0B,EAC7CA,EAAQ,WAAW,2BAA2B,EAC9CA,EAAQ,WAAW,qBAAqB,EACxCA,EAAQ,QAAQ,sBAAuB,SAAS,EAEhD,IAAMc,EAAiB,MAAMZ,GAASC,EAAcC,EAAQC,CAAO,EAC/DU,EACAD,EACHC,EAAUd,EACT,2BACAE,EAAe,IAAM,KAAK,aAAaC,EAAQD,CAAY,CAC5D,EAEAY,EAAUd,EAAY,2BAA2B,EAElDD,EAAQ,QAAQ,4BAA6Be,CAAO,CACrD,EAEMC,GAAe,IAAM,CAE1B,IAAMC,EADe,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAC7B,IAAI,WAAW,EAC3C,CAACC,EAAMd,EAAQC,CAAO,EAAIY,GAAc,MAAM,GAAG,GAAK,CAAC,EAC7D,MAAI,CAACC,GAAQ,CAACd,EACN,KAKD,CACN,aAHoBc,IAAS,WAAa,gBAAkBA,EAI5D,OAAAd,EACA,QAAAC,CACD,CACD,EAEMV,EAAc,CAEnB,4BAA6B,IAC7B,WAAY,GACZ,mBAAoB,CACnB,OAAO,iBAAiB,UAAWiB,EAAkB,EACrD,OAAO,oBAAoB,UAAWd,EAA0B,CACjE,EACA,MAAM,2BAA4B,CACjC,IAAME,EAAU,KAAK,WAAW,EAEhC,OAAO,iBAAiB,eAAgB,UAAY,CACnDA,EAAQ,WAAW,0BAA0B,EAC7CA,EAAQ,WAAW,2BAA2B,EAC9CA,EAAQ,WAAW,qBAAqB,CACzC,CAAC,EAED,IAAMmB,EAAYH,GAAa,EAC/B,OAAKG,GAML,OAAO,iBAAiB,UAAWrB,EAA0B,EAC7DE,EAAQ,WAAW,0BAA0B,EAC7CA,EAAQ,QAAQ,2BAA4B,KAAK,UAAUmB,CAAS,CAAC,EAE9D,IAAI,QAASC,GAAY,CAC/B9B,GAAqB8B,EACrB,WAAW,IAAM,CACZ,KAAK,aAAe,KACvB,OAAO,oBAAoB,UAAWtB,EAA0B,EAChEsB,EAAQ,CACP,iBAAkB,EACnB,CAAC,GAGFA,EAAQ,CACP,iBAAkB,EACnB,CAAC,CACF,EAAG,KAAK,2BAA2B,CACpC,CAAC,GAvBO,CACN,iBAAkB,EACnB,CAsBF,EACA,YAAa,CACZ,OAAO,OAAO,YACf,CACD,EAEOC,GAAQ1B,E9BhLf,OAAO,UAAY2B,EACnB,OAAO,oBAAsBC,EAC7B,OAAO,0BAA4BC,GACnC,OAAO,YAAcC", "names": ["init_jsx_shim", "init_jsx_shim", "init_jsx_shim", "maxItemHeight", "showUnpinDialog", "item", "tabs", "favorites_exports", "NavigationPanelTabs", "Tabs", "#resizeHandler", "visibleItems", "maxVisibleItems", "id", "data", "lockIconNode", "createElement", "imageNode", "content", "init_jsx_shim", "init_jsx_shim", "icons", "SvgManager_default", "QuickSearch", "itemProperty_default", "#pressEnterTimeout", "#selectedItemIndex", "getResource", "value", "predictedValue", "list", "label", "item", "li", "input", "icon", "name", "icons", "SvgManager_default", "secondaryMenuClass", "getQuickSearch", "context", "secondaryMenuData", "itemTypeName", "isQuickSearchDisabled", "singularLabel", "emptyMessage", "getResource", "id", "wire", "event", "e", "getButtonsSection", "quickSearchNode", "keyboardHandler", "key", "list", "currentNode", "nextElement", "nextNode", "getFavoriteCategory", "categoryData", "favoriteItem", "idx", "label", "getUnpinFavoriteButton", "tooltipString", "getFavoritesSection", "secondaryMenu_default", "init_jsx_shim", "icons", "SvgManager_default", "getEmptyFavoritesTemplate", "context", "wire", "getResource", "setImageOverlayIcons", "node", "navFormatter", "item", "createElement", "getFavoritesNav", "favoritesList", "nav", "e", "roots", "id", "items", "favorite", "getFavoritePanel", "category", "content", "init_inferno", "init_jsx_shim", "icons", "SvgManager_default", "contentTabId", "favoriteTabId", "defaultTabs", "getItemTypeIds", "dataMap", "itemTypeIds", "formId", "itemTypeId", "startPage", "updateLockedStatus", "favorites", "item", "id", "locked", "getSidebarData", "sidebarData", "tabNamePath", "tab", "getResource", "additionalData", "favoriteItem", "getFavoriteItemTypes", "favorites_exports", "acc", "favorite", "icons", "SvgManager_default", "disabledRowHighlightingClass", "navFormatter", "nav", "item", "itemValue", "isDashboardItem", "leafTemplate", "src", "image", "createVNode", "getFlagsForElementVnode", "utils_default", "nodeClassList", "getFavoriteCategories", "itemTypeName", "options", "favorites", "favoritesFilterCriteria", "favoriteItem", "favoriteSearches", "favoriteItems", "type", "favorites_exports", "favoriteCategories", "label", "getResource", "getItemTypeData", "itemTypeId", "itemType", "itemType_default", "singularLabel", "propertiesWithKeyedName", "canAdd", "createCommand", "isQuickSearchDisabled", "commandName", "commands_default", "NavigationPanel", "Sidebar", "contentTabId", "defaultTabs", "tab", "pinned", "visible", "splitter", "isVisible", "quickSearch", "#createHeaderIcon", "wire", "#createBackButton", "backTitle", "#createHeader", "title", "iconSrc", "isSecondaryMenu", "pinIcon", "backButton", "headerIcon", "favoriteMenuIcon", "favoriteTabId", "#getCurrentTab", "getFavoritePanel", "secondaryMenu_default", "secondaryMenuData", "component", "contextMenu_default", "mutations", "navPanel", "panelWidth", "sidebarTabs", "contextMenuMethods", "id", "tabData", "removedTab", "tabId", "tabsData", "data", "args", "dispatchContextMenuEvent", "controlName", "event", "detail", "cuiEvent", "itemKey", "currentTarget", "favoriteItemRow", "unselectHighlightedItem", "favoriteId", "contextMenuDom", "e", "element", "isElement", "isContextMenu", "selectTab", "dataItem", "tabs", "tabItem", "handler", "icon", "pluralLabel", "loggedUserIdentity", "itemTypeData", "favoriteItemType", "isVersionable", "getItemMethod", "itemNode", "openCommand", "errorMessage", "alert_default", "favoriteSearchId", "selectedItem", "init_jsx_shim", "init_jsx_shim", "layouts", "getLayoutByName", "layoutName", "getLayoutConstructor", "CuiLayout", "init_inferno", "icons", "SvgManager_default", "IFRAME_CSS_CLASS", "PAGE_IFRAME_CSS_CLASS", "selectTab", "tabs", "tabId", "preventFocus", "previousSelectedId", "renderPromise", "event", "HeaderTabs", "Tabs", "dropdownContainer", "formId", "icon", "label", "formName", "tab", "url", "winName", "win", "pageUrl", "layoutName", "location", "layoutId", "image", "closable", "containerNode", "wire", "LayoutConstructor", "getLayoutByName", "layout", "itemTypeId", "favoriteSearchId", "itemTypeName", "itemType_default", "itemType", "props", "id", "frame", "data", "contentWindow", "lastTabId", "ignorePageCloseHooks", "tabContainer", "remove", "itemId", "resolve", "isClosed", "selectItem", "gettedItem", "openInTearOff", "windowType", "frameWindow", "item", "options", "position", "src", "isUnfocused", "className", "iframe", "isFirstTab", "select", "items", "createElement", "render", "currentID", "newID", "index", "dataObj", "isTabOpen", "editedTabs", "promisesArray", "isEdited", "tabWindow", "i", "excludedTabId", "excludedTabIndex", "removableTabs", "init_jsx_shim", "init_jsx_shim", "init_jsx_shim", "init_jsx_shim", "getResourceManager_default", "solution", "resourceName", "language", "images", "SvgManager_default", "notCertifiedBrowser", "resourceManager", "getResourceManager_default", "title", "dialog", "Dialog_default", "onContinueClick", "rememberChoice", "bind", "event", "notCertifiedBrowser_default", "storageKey", "getUrlsKeys", "strArray", "array", "getBaseUrl", "addToLocalStorage", "baseUrl", "arrayUrls", "keySessionStore", "checkStorage", "validateBrowserCertified", "notCertifiedBrowser_default", "validateBrowserCertified_default", "init_jsx_shim", "images", "SvgManager_default", "disabledCookies", "resourceManager", "getResourceManager_default", "title", "dialog", "Dialog_default", "message", "bind", "event", "disabledCookies_default", "init_jsx_shim", "init_jsx_shim", "selectTimeZone", "winTzNames", "resourceManager", "getResourceManager_default", "title", "dialog", "Dialog_default", "timeZonesSelect", "wire", "item", "acceptTimeZone", "okButton", "createButtonContext", "bind", "event", "selectTimeZone_default", "setTimeZoneNameInLocalStorage", "tzLabel", "winTzName", "tzOffset", "timeZones", "getTimeZoneName", "resourceManager", "getResourceManager_default", "inputType", "localTime", "localTimeOffset", "url", "winTzNames", "id", "selectTimeZone_default", "value", "getTimeZoneName_default", "init_jsx_shim", "login", "deepLinking_default", "result", "oauthServerConfiguration", "clientUrlsUtility", "clientBaseUrl", "navigatedFromRedirectCallbackKey", "params", "options", "worker", "payload", "err", "url", "returnUrl", "onBeforeUnloadHandler", "tabsContainer", "onLoadHandler", "disabledCookies_default", "validateBrowserCertified_default", "timeZoneName", "getTimeZoneName_default", "login", "e", "onUnloadHandler", "mainLayout", "dockHeaderTabs", "undockHeaderTabs", "mainPageEventHandlers_default", "init_jsx_shim", "init_jsx_shim", "SPLIT_CSS_CLASS", "ACTIVE_TABBAR_CSS_CLASS", "DOCK_FRAME_CSS_CLASS", "HeaderTabsContainer", "#requestId", "#activeTabbar", "dockHeaderTabs", "undockHeaderTabs", "options", "event", "#updateSelectedTabs", "id", "tabData", "eventType", "callback", "removeDockHandler", "tabId", "removeUndockHandler", "contextMenu", "tabsHandlers", "tabbar", "currentTarget", "ids", "tabbarFrom", "tabbarTo", "position", "data", "selectedTabs", "v", "isNeedSplit", "tabsParentElement", "splitterWidth", "splitterColumnWidth", "startColumnSize", "splitColumnStyle", "activeElement", "isDockTabbarActive", "dockHeaderTabsExist", "undockHeaderTabsExist", "url", "icon", "label", "openedPageTabId", "tab", "layoutName", "location", "name", "tabUiData", "openedCuiLayoutId", "formId", "formName", "openedFormTabId", "#moveTabs", "selectedTab", "index", "init_jsx_shim", "updateTabs", "setState", "type", "newTabs", "tabId", "tabData", "state", "resultTabData", "MainWindowCuiActions_default", "selectedTabs", "newState", "init_jsx_shim", "openStartItems", "mainLayout", "itemsToOpen", "tabsContainer", "mainTabs", "dockTabs", "tabs", "cuiControl", "cuiOptions", "openPromises", "tabId", "tabItem", "newId", "cuiMethods_default", "oldIdToNewIdMap", "acc", "result", "newIdToOldId", "updatedTabsState", "getUpdatedTabsState", "updateTabsInState", "updateTabsDockStateAndOrder", "updateSelectedTabs", "oldTabsData", "selectedTabs", "newDockTabs", "newMainTabs", "newSelectedTabs", "newTabs", "tab", "newTabId", "parentTab", "undockHeaderTabs", "i", "tabWasSelected", "data", "headerTabs", "id", "dockHeaderTabs", "MainWindowCuiLayout", "CuiLayout", "MainWindowCuiActions_default", "#toolbarComponent", "waitForInit", "dockTabs", "mainTabs", "HeaderTabs", "HeaderTabsContainer", "commandFactory", "cuiMethods_default", "initBackgroundPage", "openStartItems", "oldProps", "oldState", "#updateSideBar", "tabs", "navData", "favoriteItemTypes", "getFavoriteItemTypes", "sidebarData", "getSidebarData", "itemTypeName", "itemType_default", "morphae", "favorites", "acum", "favoriteItem", "category", "options", "cuiBackgroundPage_default", "contextMenu", "contentTabId", "nav", "cuiToc_default", "event", "x", "y", "controlName", "itemTypeId", "detail", "criteria", "itemType", "favorites_exports", "state", "cuiToolbar", "updateLockedStatus", "bind", "splitScreenState", "init_jsx_shim", "init_jsx_shim", "sortBySortOrder", "dataMap", "children", "id", "firstKey", "secondKey", "firstItem", "secondItem", "createNavDataStore", "data", "roots", "tocItems", "levels", "item", "relatedId", "relatedItem", "parentId", "tocItem", "navDataConverter_default", "nav", "dataStore", "rootsArr", "init_jsx_shim", "tocMenuPrefix", "tocCommandBarSectionId", "sortOrderStep", "sortOrderForDeleted", "getItemWithChanges", "itemId", "state", "tocData", "changes", "item", "itemChanges", "getChildrenWithChanges", "parentId", "newData", "id", "change", "oldItem", "children", "relshipItem", "relatedId", "changedRelship", "firstItem", "secondItem", "addItemChanges", "existingChange", "currentItemChanges", "originalItem", "propName", "changedValue", "createRelatedItem", "props", "commandBarId", "commandBarName", "itemTypeId", "itemTypeName", "itemType_default", "setSelectedItem", "value", "prevToSelectedId", "nextToSelectedId", "getSelectedButtonNeighbours", "selectedId", "selectedRelationshipItem", "currentItemFolderId", "allItemsOnCurrentlevel", "indexOfCurrentElementInFolder", "convertButtonToType", "type", "relatedItem", "relatedItemCopy", "propsToClear", "prop", "newRelatedItem", "normalizeSortOrders", "treeLevelItems", "index", "newSortOrder", "getRelatedItemTypeName", "selectedRelatedId", "tocEditorCuiLayoutActions_default", "setState", "deletedItem", "isNewItem", "deletedParentId", "indexOfDeletedItem", "childrenOfParent", "childrenOfDeletedFolder", "relship", "child", "sortOrder", "relationshipItem", "roots", "selectedRelatedItem", "selectedSortOrder", "prevTocData", "prevLanguages", "language", "selectedSortingType", "sortingType", "sortingTypesList", "firstItemId", "secondItemId", "relatedItemId", "parentMenuId", "currentLevelItems", "firstItemSortOrder", "secondItemSortOrder", "parameters", "targetParentId", "insertPosition", "draggedItem", "draggedRelatedItem", "currentParentId", "currentLevelItemsWithoutDraggedItem", "targetLevelItemsWithoutDraggedItem", "buttonType", "init_jsx_shim", "init_jsx_shim", "getAccessFieldMetadata", "getResource", "getImageFieldMetadata", "getLabelFieldMetadata", "state", "languages", "defaultLanguageCode", "getItemTypeFieldMetadata", "getFormFieldMetadata", "getSortFieldMetadata", "options", "getStartPageFieldMetadata", "getPageParametersFieldMetadata", "getItemFieldMetadata", "stateData", "selectedId", "relshipItem", "relatedItem", "itemTypeId", "itemType_default", "propertyMetadataGenerators", "getFormMetadata", "order", "viewAs", "disabled", "result", "property", "metadata", "init_jsx_shim", "getRelshipItem", "stateData", "state", "selectedId", "getRelatedItem", "relatedId", "getAccessValue", "relshipItem", "label", "getMultiLingualValue", "property", "languages", "relatedItem", "result", "code", "getImageValue", "image", "getItemTypeValue", "additionalData", "itemTypeId", "itemType_default", "getFormValue", "formId", "getSortValue", "selectedSortingType", "getPageValue", "getItemValue", "itemId", "itemTypeName", "propertyValueGenerators", "args", "getFormValues", "order", "value", "images", "SvgManager_default", "generateFormData", "stateData", "state", "form", "order", "metadata", "getFormMetadata", "data", "getFormValues", "getSortingFormData", "image", "label", "getResource", "getCategoryFormData", "getItemTypeFormData", "getPageDashboardFormData", "getItemFormData", "getFormDashboardFormData", "getFormData", "selectedId", "formData", "relshipItem", "relatedItem", "type", "additionalData", "getItemChange", "propName", "newValue", "itemId", "getAdditionalData", "change", "isItemTypeWasChanged", "tocData", "changes", "relatedId", "changedRelatedId", "changedRelatedItem", "getFormChange", "detail", "id", "defaultLanguageCode", "code", "value", "init_jsx_shim", "viewAsAccordionStylesheet", "tocEditorAccordion_default", "ViewAsAccordion", "Accordion", "name", "viewAs_default", "layout", "viewAsChangeHandler", "state", "viewAs", "form", "wire", "e", "detail", "value", "label", "oldViewAs", "identityItemTypeName", "languageItemTypeName", "getItemType", "itemType_default", "identityItemType", "languageItemType", "identityDisabled", "availableLanguages", "languageDisabled", "filterActive", "filters", "filterLabel", "headerLabel", "getResource", "clearLabel", "clearDisabledClass", "clearHandler", "init_jsx_shim", "saveTOC", "state", "tocData", "changes", "selectedSortingType", "sortingType", "propsToSkip", "propsToStringify", "mlPropNamePrefix", "order", "getItemOrder", "item", "action", "type", "getParentId", "id", "getNestingDistance", "fromId", "toParentId", "nestingLevel", "parentId", "amlItems", "id1", "id2", "item1", "item2", "order1", "order2", "action1", "type1", "action2", "type2", "actions", "change", "properties", "propName", "propValue", "value", "realPropName", "prop", "lang", "mlPropName", "newValue", "multilingualProperties", "itemObject", "jsonToXml", "preferencesXml", "requestToRefreshMetadataDate", "requestXml", "requestOptions", "sessionSoap", "err", "alertSoapError", "saveTOC_default", "notifyTOCSaving", "successMessage", "getResource", "notify_default", "TocEditorCuiLayout", "CuiLayout", "tocEditorCuiLayoutActions_default", "contentsTitle", "header", "wire", "nav", "key", "_", "event", "formHeader", "formView", "spinner", "viewAsForm", "onTitleClick", "bind", "e", "detail", "state", "change", "getFormChange", "changes", "selectedId", "tocData", "sortingType", "relshipProperties", "changedProperties", "relshipChanged", "property", "relshipItem", "id", "oldProps", "oldState", "oldChanges", "oldSelectedId", "oldTocData", "oldViewAs", "viewAs", "data", "hasNewChanegs", "navDataConverter_default", "newItemSelected", "viewAsChanged", "tocEditorSaved", "saveTOC_default", "selectedItem", "selectedRelatedId", "selectedItemParentMenu", "itemToExpand", "el", "changeEntries", "newData", "oldItem", "rawData", "acc", "relship", "relatedItem", "label", "value", "currentSortingTypeUrl", "currentSortingType", "odataFetch", "currentSortingTypePromise", "sortingTypesListPromise", "promises", "sortingTypesList", "setSelectedSortingType", "setSortingType", "setSortingTypesList", "requestURL", "headers", "selectedLanguage", "lang", "stateData", "formData", "getFormData", "image", "metadata", "order", "viewAs_default", "Xml_default", "language", "code", "name", "initTocPromise", "preferencesPromise", "init_jsx_shim", "UserNotificationContainer", "control", "notifyObserver", "messageCheckInterval", "item", "BUTTON_CLASS", "hasOnceMessages", "message", "buttonNode", "createElement", "id", "text", "image", "messageItem", "acknowledgeDom", "isOnceAcknowledge", "type", "notification", "queryDom", "currentUserIDNode", "dateTimeNode", "intlObject", "getCollectionCallback", "resultCallbackHandler", "soapResult", "messageCollection", "soapController", "query", "resultDom", "clearBefore", "standardCollection", "i", "messageId", "title", "imageUrl", "showAsModeless", "popupCollection", "sortedList", "nextSortedList", "index", "nextMsgIndex", "msgIndex", "priority", "doAsync", "callback", "container", "templateUrl", "templateDom", "parameters", "openedMessageWindow", "writeContent", "res", "sFeatures", "OnBeforeUnloadHandler", "uiDrawInputButton", "name", "value", "handlerCode", "className", "w", "doc", "template", "titleExpr", "urlExpr", "textExpr", "iconExpr", "style", "titleElement", "urlElement", "innerHTML", "el", "source", "relsh", "error", "errorResult", "init_jsx_shim", "deepLinkingResolve", "changeMessage", "frame", "win", "msg", "deepLinking", "setDeepLinkingMessage", "deepWindowIframe", "deepLinkingStorageListener", "storageEvent", "storage", "getResource", "openItem", "itemTypeName", "itemId", "version", "mainLayout", "cuiControl", "cuiOptions", "itemToOpen", "itemType_default", "cuiMethods_default", "mainWindowListener", "item", "resultOpenItem", "message", "getStartItem", "startItemStr", "type", "startItem", "resolve", "deepLinking_default", "favorites_exports", "MainWindowCuiLayout", "UserNotificationContainer", "deepLinking_default"] }