@bimplus/navigation 0.0.200-support01 → 0.0.200-support02
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -2414,5 +2414,5 @@
|
|
|
2414
2414
|
"_Invitation_license_note_1": "An appropriate license is required for full access. Without it, the invited user may have limited functionality. Contact your License Administrator to assign a license if needed.",
|
|
2415
2415
|
"_Invitation_license_note_2": "Members are not added to the projects by default. They must be manually added to each project where needed. Admins are added automatically to all projects.",
|
|
2416
2416
|
"_Note": "Note:",
|
|
2417
|
-
"_Contact_form": "Contact
|
|
2417
|
+
"_Contact_form": "Contact form"
|
|
2418
2418
|
}
|
|
@@ -1169,7 +1169,7 @@ class BimplusUserMenuComponent extends BimplusLocalizedWidgetComponent {
|
|
|
1169
1169
|
{ id: "accountSettingsPage", action: "accountSettings", class: "icon-account-settings", textId: "_Edit_profile", type: "", checkState: "", textClass: "", queryParams: "", url: "" },
|
|
1170
1170
|
{ id: "removeConnectedApps", action: "removeConnectedApps", checkState: "allowRcaItem", class: "icon-rca", textClass: "text-capitalized", textId: "_Remove_connected_apps", type: "", url: "", queryParams: "" },
|
|
1171
1171
|
{ id: "userGuideLink", action: "userGuide", class: "icon-user-guide", textId: "_UserGuide", get url() { return this._url?.() ?? ''; }, _url: () => this.userGuideLinkUrl, type: "", checkState: "", textClass: "", queryParams: "" },
|
|
1172
|
-
{ id: "contactFormLink", action: "contactForm", class: "icon-contact-form", textId: "
|
|
1172
|
+
{ id: "contactFormLink", action: "contactForm", class: "icon-contact-form", textId: "_Contact_form", get url() { return this._url?.() ?? ''; }, _url: () => this.contactFormLinkUrl, queryParams: "", type: "", checkState: "", textClass: "" },
|
|
1173
1173
|
{ id: "forumLink", action: "forum", class: "icon-forum", textId: "_Forum", get url() { return this._url?.() ?? ''; }, _url: () => this.forumLinkUrl, type: "", checkState: "", textClass: "", queryParams: "" },
|
|
1174
1174
|
{ id: "releaseNotesLink", action: "releaseNotes", class: "icon-release-notes", textId: "_Release_notes", type: "", checkState: "", textClass: "", queryParams: "", url: "" },
|
|
1175
1175
|
{ id: "languagesSubmenu", action: "submenu", class: "icon-languages", textId: "_Languages", type: "", checkState: "", url: "", textClass: "", queryParams: "" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bimplus-navigation.mjs","sources":["../../../../projects/@bimplus/navigation/src/lib/navigation.service.ts","../../../../projects/@bimplus/navigation/src/lib/navigation.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-localized-widget/bimplus-localized-widget.component.ts","../../../../projects/@bimplus/navigation/src/lib/utils/utils.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-contact/bimplus-contact.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-contact/bimplus-contact.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-language-menu/bimplus-language-menu.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-language-menu/bimplus-language-menu.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-project-menu/bimplus-project-menu.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-project-menu/bimplus-project-menu.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-main-menu/bimplus-main-menu.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-main-menu/bimplus-main-menu.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-navbar/logo-state.enum.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-navbar/bimplus-navbar.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-navbar/bimplus-navbar.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-notify/bimplus-notify.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-notify/bimplus-notify.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-storage-info/bimplus-storage-info.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-storage-info/bimplus-storage-info.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-user-menu/bimplus-user-menu.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-user-menu/bimplus-user-menu.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-zoom/bimplus-zoom.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-zoom/bimplus-zoom.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-touch-menu/bimplus-touch-menu.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-touch-menu/bimplus-touch-menu.component.html","../../../../projects/@bimplus/navigation/src/lib/services/language-strings.service.ts","../../../../projects/@bimplus/navigation/src/public-api.ts","../../../../projects/@bimplus/navigation/src/bimplus-navigation.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigationService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-navigation',\r\n imports: [],\r\n template: `\r\n <p>\r\n navigation works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class NavigationComponent {\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, signal, WritableSignal, inject } from '@angular/core';\r\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\r\nimport { LocalizedStrings } from './../../types/types'\r\n\r\n@Component({\r\n selector: 'lib-bimplus-localized-widget',\r\n imports: [CommonModule, TranslateModule],\r\n providers: [TranslateService],\r\n template: `\r\n <p>\r\n localized widget works!\r\n </p>\r\n `,\r\n styles: [],\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusLocalizedWidgetComponent {\r\n translateService = inject(TranslateService);\r\n\r\n\r\n _selectedLanguage: WritableSignal<string> = signal('en');\r\n get selectedLanguage(): string {\r\n return this._selectedLanguage();\r\n }\r\n @Input() set selectedLanguage(value: string) {\r\n this._selectedLanguage.set(value);\r\n this.translateService.use(value);\r\n try {\r\n this.translateService.setTranslation(this.selectedLanguage, this._localizedStrings());\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n _localizedStrings: WritableSignal<LocalizedStrings> = signal({} as LocalizedStrings);\r\n get localizedStrings(): LocalizedStrings {\r\n return this._localizedStrings();\r\n }\r\n @Input() set localizedStrings(value: LocalizedStrings) {\r\n this._localizedStrings.set(value);\r\n this.translateService.use(this.selectedLanguage);\r\n try {\r\n this.translateService.setTranslation(this.selectedLanguage, value);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n}\r\n","// Define the type of the window.BimPlus object\r\nexport interface BimPlusObject {\r\n [key: string]: (dataDetail: { detail: unknown }) => void;\r\n}\r\nexport interface Source {\r\n[key: string]: { emit: (arg0: unknown) => void; };\r\n}\r\n\r\n\r\n/**--------------------------------------------------------------------------\r\n* fire event from component in two ways : \r\n- fire custom event from component in standard recommended way via. this.eventName.emit function\r\n\r\n- call window.BimPlus.eventName function directly on window object (eventName is name\r\n of the event we want to fire e.g. bimplusNavbarClicked so it will be window.BimPlus.bimplusNavbarClicked).\r\n Function must be defined in app. where we are using our components.\r\n This was implemented because MS Edge browser has problems with custom events and in some \r\n situations(e.g. after file download) it stops handling custom events.\r\n Disadvantage is that we can have only one event handler which is shared between the multiple components.\r\n--------------------------------------------------------------------------*/\r\nexport function fireEvent(source: unknown, eventName: string, data: unknown = null){\r\n if ( !eventName ) {\r\n console.error(\"ERROR: Missing event name in fireEvent function in Bimplus components!\");\r\n return;\r\n }\r\n // Check if eventName exists on window.BimPlus and if it's a function\r\n const bimPlus = ('BimPlus' in window) && typeof window.BimPlus === 'object' && (window.BimPlus as BimPlusObject);\r\n if (bimPlus && typeof bimPlus[eventName] === 'function') {\r\n bimPlus[eventName]({detail: data});\r\n }\r\n\r\n const _source = (source as Source);\r\n if (eventName in _source) {\r\n _source[eventName].emit(data);\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\r\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\r\nimport { BimplusLocalizedWidgetComponent } from '../../components/bimplus-localized-widget/bimplus-localized-widget.component';\r\nimport { fireEvent } from '../../utils/utils';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-contact',\r\n imports: [CommonModule, TranslateModule],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-contact.component.html',\r\n styleUrl: './bimplus-contact.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusContactComponent extends BimplusLocalizedWidgetComponent{\r\n constructor(){\r\n super();\r\n }\r\n \r\n @Output() bimplusContactClicked = new EventEmitter<string>();\r\n\r\n _contactClicked(){\r\n fireEvent(this, \"bimplusContactClicked\", \"contact\");\r\n }\r\n}\r\n","<a href=\"https://www.allplan.com/info/contact\" \r\n class=\"bimplus-contact-link\"\r\n rel=\"noopener\"\r\n target=\"_blank\"\r\n (click)=\"_contactClicked()\"\r\n [title]=\"'_BimplusContactTitle' | translate\"\r\n>\r\n <div class=\"bimplus-contact\"></div>\r\n</a>","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute } from '@angular/core';\r\nimport { fireEvent } from '../../utils/utils';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-language-menu',\r\n imports: [CommonModule],\r\n templateUrl: './bimplus-language-menu.component.html',\r\n styleUrl: './bimplus-language-menu.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusLanguageMenuComponent {\r\n\r\n _languagesList = [\r\n { symbol: \"cs\", text: \"Čeština\"},\r\n { symbol: \"de\", text: \"Deutsch\"},\r\n { symbol: \"en\", text: \"English (UK)\"},\r\n { symbol: \"us\", text: \"English (US)\"},\r\n { symbol: \"es\", text: \"Español\"},\r\n { symbol: \"fr\", text: \"Français\"},\r\n { symbol: \"it\", text: \"Italiano\"},\r\n { symbol: \"ru\", text: \"Русский\"},\r\n { symbol: \"ro\", text: \"Romana\"},\r\n { symbol: \"tr\", text: \"Türkçe\"}\r\n ];\r\n\r\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\r\n @Input() selectedLanguage : string = \"en\";\r\n @Input({ transform: booleanAttribute }) expandUp : boolean = false;\r\n _menuOpened : boolean = false;\r\n\r\n @Output() bimplusLanguageSelected = new EventEmitter<string>();\r\n\r\n _switchLanguage( language: string ){\r\n fireEvent(this, \"bimplusLanguageSelected\", language);\r\n }\r\n\r\n _toggleOpened(){\r\n this._menuOpened = !this._menuOpened;\r\n }\r\n}\r\n","<div \r\n class=\"bimcomp-overlay\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\" \r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n</div>\r\n<div data-test=\"language-menu-dropdown\"\r\n class=\"dropdown\" \r\n [ngClass]=\"_menuOpened ? 'open' : ''\" [ngClass]=\"isTouch ? 'is-touch' : ''\" \r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n <div class=\"dropdown-toggle\" >\r\n <div class='main-icon icon-languages'></div>\r\n <span class=\"caret\"></span>\r\n </div>\r\n\r\n <ul class= \"bimcomp-dropdown-menu\" [ngClass]=\"{'open':_menuOpened, 'expand-up':expandUp }\">\r\n <li [attr.data-test]=\"'langmenu_item_' + languageItem.text\" \r\n class=\"bimcomp-dropdown-menu-item\" \r\n [ngClass]=\"selectedLanguage === languageItem.symbol ? 'selected' : ''\" \r\n (click)=\"_switchLanguage(languageItem.symbol)\"\r\n (keypress)=\"_switchLanguage(languageItem.symbol)\"\r\n *ngFor=\"let languageItem of _languagesList\"\r\n >\r\n <span>{{languageItem.text}}</span>\r\n </li>\r\n </ul>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, booleanAttribute } from '@angular/core';\r\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\r\nimport { BimplusLocalizedWidgetComponent } from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\r\nimport { fireEvent } from '../../utils/utils';\r\nimport { MenuListType } from '../../types/types';\r\n\r\nexport interface BimplusProjectMenuComponentAttribute {\r\n [key: string]: unknown; // Add index signature allowing string indexing\r\n //Other properties and methods...\r\n}\r\n\r\n@Component({\r\n selector: 'lib-bimplus-project-menu',\r\n imports: [CommonModule, TranslateModule],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-project-menu.component.html',\r\n styleUrl: './bimplus-project-menu.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusProjectMenuComponent extends BimplusLocalizedWidgetComponent {\r\n constructor(){\r\n super()\r\n }\r\n\r\n @Input() projectName: string = \"\";\r\n @Input() projectImageUrl: string = \"\";\r\n @Input() projectExplorerUrl: string = \"\";\r\n @Input() projectActiveItem: string = \"\";\r\n @Input({ transform: booleanAttribute }) projectmembersDisabled: boolean = false;\r\n @Input({ transform: booleanAttribute }) modelsDisabled: boolean = false;\r\n @Input({ transform: booleanAttribute }) documentsDisabled: boolean = false;\r\n @Input({ transform: booleanAttribute }) projectsettingsDisabled: boolean = false;\r\n @Input({ transform: booleanAttribute }) processesDisabled: boolean = false;\r\n\r\n @Input({ transform: booleanAttribute }) projectmembersVisible: boolean = true;\r\n @Input({ transform: booleanAttribute }) modelsVisible: boolean = true;\r\n @Input({ transform: booleanAttribute }) documentsVisible: boolean = true;\r\n @Input({ transform: booleanAttribute }) projectsettingsVisible: boolean = true;\r\n @Input({ transform: booleanAttribute }) processesVisible: boolean = true;\r\n\r\n @Input({ transform: booleanAttribute }) isCollapsed: boolean = false;\r\n @Input({ transform: booleanAttribute }) isMiniMode: boolean = false;\r\n @Input({ transform: booleanAttribute }) isTouch: boolean = false;\r\n @Input({ transform: booleanAttribute }) hideMenuIcons: boolean = false;\r\n @Input({ transform: booleanAttribute }) showHorizontalMenuIcons: boolean = false;\r\n @Input() menuItemsOrder : string[] = [];\r\n\r\n get prjImgUrl() {\r\n return this.projectImageUrl ? this.projectImageUrl : \"./assets/@bimplus/navigation/assets/bimplus_Components_Project_Pic_Default.webp\";\r\n }\r\n get backgroundValue() {\r\n return `linear-gradient(rgba(245, 245, 245, 0.8),rgba(245, 245, 245, 0.5) 25%, 75%, rgba(245, 245, 245, 0.8)), url(${this.projectImageUrl ? this.projectImageUrl : './assets/@bimplus/navigation/assets/bimplus_Components_Project_Pic_Default.webp'})`;\r\n }\r\n\r\n get prjImageOverlayStyle() {\r\n return { 'background': `${this.backgroundValue}` };\r\n }\r\n\r\n get prjImageStyle() {\r\n return { 'background': `url(${this.prjImgUrl})` };\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * List of menu items\r\n * Note : action is used to identify action which should be executed\r\n * and also it serves as info topic id\r\n --------------------------------------------------------------------------*/\r\n _menuPrjList: MenuListType[] = [\r\n { action: \"projectmembers\", id: \"portalBimUsers\", type: \"\", class: \"bim-pm-icon-users\", textId: \"_Project_members_tooltip\", textIdDisabled: \"_Insufficient rights title\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\r\n { action: \"models\", id: \"portalBimModels\", type: \"\", class: \"bim-pm-icon-models\", textId: \"_Models_tooltip\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\r\n { action: \"documents\", id: \"portalBimDocuments\", type: \"\", class: \"bim-pm-icon-documents\", textId: \"_Documents_tooltip\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\r\n { action: \"projectsettings\", id: \"portalBimProjectSettings\", type: \"\", class: \"bim-pm-icon-project-settings\", textId: \"_Project_settings_tooltip\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\r\n { action: \"processes\", id: \"portalBimProcesses\", type: \"\", class: \"bim-pm-icon-processes\", textId: \"_Approvals\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" }\r\n ];\r\n\r\n get menuItems() : MenuListType[] {\r\n return this._menuPrjList.sort((a, b) => this.menuItemsOrder.indexOf(a.id) - this.menuItemsOrder.indexOf(b.id));\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * check if app is subscribed/visible\r\n --------------------------------------------------------------------------*/\r\n _isHidden(item: MenuListType): boolean {\r\n if (item) {\r\n const key = `${item.action ? item.action : item.id}Visible`;\r\n\r\n return !((this as unknown as BimplusProjectMenuComponentAttribute)[key]);\r\n }\r\n return false;\r\n }\r\n /**--------------------------------------------------------------------------\r\n * check if app is subscribed/visible\r\n --------------------------------------------------------------------------*/\r\n _isDisabled(item: MenuListType): boolean {\r\n\r\n if (item) {\r\n const key = `${item.action ? item.action : item.id}Disabled`;\r\n return !!(this as unknown as BimplusProjectMenuComponentAttribute)[key];\r\n }\r\n return false;\r\n }\r\n\r\n\r\n _projectMenuItemClicked(action: string, param: string) {\r\n console.log(action, param);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n* item clicked\r\n--------------------------------------------------------------------------*/\r\n _menuItemClicked(item: MenuListType, type: string, event: Event) {\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n console.log(item, type, event);\r\n\r\n\r\n if (type != \"info\") {\r\n if (this._isDisabled(item)) {\r\n return;\r\n }\r\n }\r\n const action = item.action;\r\n fireEvent(this, \"bimplusProjectMenuClicked\", { action, type });\r\n }\r\n\r\n _menuItemIgnoreAction(event: Event) {\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n _getPrjItemClassAttributes(item: MenuListType, isTouch: boolean) {\r\n const retval: string = `${this._isDisabled(item) ? 'disabled' : ''} ${isTouch ? '' : 'hover-show-info'}`;\r\n return retval;\r\n }\r\n\r\n _getPrjIconClassAttributes(item: MenuListType) {\r\n const retval: string = `${item.class} ${item.action === this.projectActiveItem ? 'active' : ''} ${this._isDisabled(item) ? 'disabled' : ''}`;\r\n return retval;\r\n }\r\n}\r\n","<ng-template #navigationPrjList>\r\n@for(item of menuItems; track item.id){\r\n @if (!_isHidden(item)){\r\n <!--* prjList *-->\r\n <div class=\"bim-pm-prj-item\"\r\n [ngClass] = \"_getPrjItemClassAttributes(item,isTouch)\"\r\n [title]=\"((_isDisabled(item) && item.textIdDisabled) ? item.textIdDisabled : item.textId) | translate\"\r\n (dblclick)=\"_menuItemIgnoreAction($event)\"\r\n (click)=\"_menuItemClicked(item, 'normal',$event)\"\r\n (keypress)=\"_menuItemClicked(item, 'normal',$event)\"\r\n >\r\n <div\r\n class=\"bim-pm-prj-icon\"\r\n [ngClass] = \"_getPrjIconClassAttributes(item)\"\r\n >\r\n </div>\r\n <div class=\"bim-pm-app-item-info bim-pm-icon bim-pm-icon-info\"\r\n (click)=\"_menuItemClicked(item, 'info',$event)\"\r\n (keypress)=\"_menuItemClicked(item, 'info',$event)\"\r\n >\r\n </div>\r\n </div>\r\n }\r\n}\r\n</ng-template>\r\n\r\n<ng-template #navigationPrjListThumbnail>\r\n@for(item of menuItems; track item.id){\r\n @if (!_isHidden(item) && (isCollapsed || item.action !== 'processes' )){\r\n <!--* navigationPrjList *-->\r\n <div class=\"bim-pm-prj-item\"\r\n [ngClass] = \"_getPrjItemClassAttributes(item,isTouch)\"\r\n [title]=\"((_isDisabled(item) && item.textIdDisabled) ? item.textIdDisabled : item.textId) | translate\"\r\n (dblclick)=\"_menuItemIgnoreAction($event)\"\r\n (click)=\"_menuItemClicked(item, 'normal',$event)\"\r\n (keypress)=\"_menuItemClicked(item, 'normal',$event)\"\r\n >\r\n <div\r\n class=\"bim-pm-prj-icon\"\r\n [ngClass] = \"_getPrjIconClassAttributes(item)\"\r\n >\r\n </div>\r\n <div class=\"bim-pm-app-item-info bim-pm-icon bim-pm-icon-info\"\r\n (click)=\"_menuItemClicked(item, 'info',$event)\"\r\n (keypress)=\"_menuItemClicked(item, 'info',$event)\"\r\n >\r\n </div>\r\n </div>\r\n }\r\n}\r\n</ng-template>\r\n\r\n<div class=\"bim-pm-prj-container\"\r\n [ngClass]=\"{ collapsed: isCollapsed, 'mini-mode': isMiniMode, 'is-touch': isTouch }\"\r\n >\r\n @if (isMiniMode && !isCollapsed) {\r\n <div class=\"bim-pm-prj-details-mini\">\r\n <div class=\"bim-pm-prj-image-bkg-mini\"\r\n [ngStyle]=\"prjImageOverlayStyle\">\r\n <div class=\"bim-pm-prj-image-thumbnail\" [ngStyle]=\"prjImageStyle\"></div>\r\n </div>\r\n <div class=\"bim-pm-prj-name-mini\">\r\n {{projectName}}\r\n </div>\r\n </div>\r\n <div class=\"bim-pm-prj-items-horizontal\"\r\n [ngClass]=\"showHorizontalMenuIcons ? '' : 'hidden'\">\r\n <div class=\"bim-pm-prj-items-list\">\r\n @if (showHorizontalMenuIcons) {\r\n <ng-container *ngTemplateOutlet=\"navigationPrjList\">\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @else {\r\n <a href={{projectExplorerUrl}} class=\"bim-pm-prj-details\"\r\n [ngStyle]=\"prjImageOverlayStyle\"\r\n (dblclick)=\"_projectMenuItemClicked('prjimagedblclick','normal')\"\r\n (click)=\"_projectMenuItemClicked('prjimageclick','normal')\"\r\n [title]=\"'_ModelThumbnailTooltip' | translate\">\r\n\r\n <div class=\"bim-pm-prj-image\" [ngStyle]=\"prjImageStyle\">\r\n <div class=\"bim-pm-prj-items-overlay\" [ngClass] = \"hideMenuIcons || showHorizontalMenuIcons ? 'hidden' : ''\">\r\n </div>\r\n <div\r\n class=\"bim-pm-prj-items-list\"\r\n [ngClass] = \"hideMenuIcons || showHorizontalMenuIcons ? 'hidden' : ''\"\r\n >\r\n @if (!hideMenuIcons && !showHorizontalMenuIcons){\r\n <ng-container *ngTemplateOutlet=\"navigationPrjListThumbnail\">\r\n </ng-container>\r\n }\r\n </div>\r\n <div class=\"bim-pm-prj-name\">\r\n {{projectName}}\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"bim-pm-prj-items-horizontal\"\r\n [ngClass] = \"showHorizontalMenuIcons ? '' : 'hidden'\">\r\n <div class=\"bim-pm-prj-items-list\">\r\n @if (showHorizontalMenuIcons) {\r\n <ng-container *ngTemplateOutlet=\"navigationPrjList\">\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges } from '@angular/core';\r\nimport {TranslateService, TranslateModule} from '@ngx-translate/core';\r\nimport {BimplusProjectMenuComponent} from './../bimplus-project-menu/bimplus-project-menu.component';\r\nimport {BimplusLocalizedWidgetComponent} from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\r\nimport { fireEvent } from '../../utils/utils';\r\nimport {MenuListType} from '../../types/types';\r\n\r\nconst MenuListTypeId = {\r\n PORTAL_TEAM_MANAGEMENT_BTN: 'portalTeamManagementBtn',\r\n PORTAL_PROPERTY_MANAGER_BTN: 'portalPropertyManagerBtn',\r\n PORTAL_BIM_USERS: 'portalBimUsers',\r\n PORTAL_BIM_MODELS: 'portalBimModels',\r\n PORTAL_BIM_DOCUMENTS: 'portalBimDocuments',\r\n PORTAL_BIM_PROJECT_SETTINGS: 'portalBimProjectSettings',\r\n PORTAL_BIM_PROCESSES: 'portalBimProcesses',\r\n DIVIDER_PROJECT_MANAGEMENT: 'dividerprojectmanagement',\r\n PORTAL_BIM_VIEWER_BTN: 'portalBimViewerBtn',\r\n PORTAL_CLOUD_VIEWER_BTN: 'portalCloudViewerBtn',\r\n PORTAL_CONNEXIS_BTN: 'portalConnexisBtn',\r\n PORTAL_BIM_AUTOCONVERTER_BTN: 'portalBimAutoconverterBtn',\r\n DIVIDERAPPS: 'dividerapps',\r\n PORTAL_ADD_INS_BTN: 'portalAddInsBtn',\r\n PORTAL_SHOP_BTN: 'portalShopBtn',\r\n PORTAL_GET_YOUR_TEAM_BTN: 'portalGetYourTeamBtn',\r\n PORTAL_TRY_BIMPLUS_PRO_BTN: 'portalTryBimplusProBtn',\r\n} as const;\r\n\r\nexport interface BimplusMainMenuComponentAttribute {\r\n [key: string]: unknown; // Add index signature allowing string indexing\r\n //Other properties and methods...\r\n}\r\n\r\n@Component({\r\n selector: 'lib-bimplus-main-menu',\r\n imports: [CommonModule, TranslateModule, BimplusProjectMenuComponent],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-main-menu.component.html',\r\n styleUrl: './bimplus-main-menu.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\n\r\nexport class BimplusMainMenuComponent extends BimplusLocalizedWidgetComponent implements OnChanges {\r\n constructor(){\r\n super();\r\n }\r\n\r\n @Input({ transform: booleanAttribute }) isEmbedded : boolean = false;\r\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\r\n @Input({ transform: booleanAttribute }) isIpadApp : boolean = false;\r\n @Input({ transform: booleanAttribute }) isDev : boolean = false;\r\n @Input({ transform: booleanAttribute }) isStage : boolean = false;\r\n @Input({ transform: booleanAttribute }) hideProjectMenuIcons : boolean = false;\r\n @Input({ transform: booleanAttribute }) showHorizontalMenuIcons : boolean = false;\r\n @Input() projectName : string = \"\";\r\n @Input() projectImageUrl : string = \"\";\r\n @Input() projectExplorerUrl : string = \"\";\r\n @Input() projectActiveItem : string = \"\";\r\n @Input({ transform: booleanAttribute }) projectmembersDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) modelsDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) documentsDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) projectsettingsDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) processesDisabled : boolean = false;\r\n @Input() footerActiveItem : string = \"\";\r\n @Input() menuActiveItem : string = \"\";\r\n @Input({ transform: booleanAttribute }) isCollapsed : boolean = false;\r\n @Input({ transform: booleanAttribute }) showOverlay : boolean = false;\r\n @Input({ transform: booleanAttribute }) teammembersSubscribed : boolean = false;\r\n @Input({ transform: booleanAttribute }) propertymanagerSubscribed : boolean = false;\r\n @Input({ transform: booleanAttribute }) autoconverterSubscribed : boolean = false;\r\n @Input({ transform: booleanAttribute }) connexisSubscribed : boolean = false;\r\n @Input({ transform: booleanAttribute }) openProjectDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) bimexplorerDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) autoconverterDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) connexisDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) teammembersDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) propertymanagerDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) shopDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) addinsDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) openProjectVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) bimplusProjectMenuVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) projectmembersVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) modelsVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) documentsVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) projectsettingsVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) processesVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) bimexplorerVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) autoconverterVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) connexisVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) teammembersVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) propertymanagerVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) shopVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) addinsVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) dividerprojectmanagementVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) dividerappsVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) getYourTeamVisible : boolean = false;\r\n @Input({ transform: booleanAttribute }) tryBimplusProVisible : boolean = false;\r\n @Input() appsWithInfo : string[] = [];\r\n @Input() appsOrder : string[] = [];\r\n @Input() menuItemsOrder : string[] = [];\r\n\r\n @Output() bimplusMainMenuClicked = new EventEmitter<{ action: string, type: string }>();\r\n @Output() bimplusMainMenuOverlayClicked = new EventEmitter<void>();\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['localizedStrings']) {\r\n this._localizedStrings.set(changes['localizedStrings'].currentValue);\r\n }\r\n }\r\n\r\n get apps(): MenuListType[] {\r\n let appsList = this.appsList.slice().sort((a, b) => this.appsOrder.indexOf(a.id) - this.appsOrder.indexOf(b.id));\r\n\r\n // if not connexisVisible remove PORTAL_CONNEXIS_BTN.\r\n if (!this.connexisVisible) {\r\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_CONNEXIS_BTN);\r\n }\r\n\r\n // if not autoconverterVisible remove PORTAL_AUTOCONVERTER_BTN.\r\n if (!this.autoconverterVisible) {\r\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_BIM_AUTOCONVERTER_BTN);\r\n }\r\n\r\n // if teammembersDisabled remove PORTAL_TEAM_MANAGEMENT_BTN.\r\n if (this.teammembersDisabled) {\r\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_TEAM_MANAGEMENT_BTN);\r\n }\r\n\r\n // if propertymanagerDisabled remove PORTAL_PROPERTY_MANAGER_BTN.\r\n if (this.propertymanagerDisabled) {\r\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_PROPERTY_MANAGER_BTN);\r\n }\r\n\r\n // if isTouch remove property manager btn. & approvals btn.\r\n if(this.isTouch) {\r\n appsList = appsList.filter(({ id }) => \r\n id !== MenuListTypeId.PORTAL_PROPERTY_MANAGER_BTN && \r\n id !== MenuListTypeId.PORTAL_BIM_PROCESSES\r\n );\r\n }\r\n\r\n return appsList;\r\n }\r\n\r\n get footerList(): MenuListType[] {\r\n let footerList = this._menuFooterList.filter(item => this._isSubscribed(item) && !this._isHidden(item));\r\n\r\n // in case that \"Get Your Team\" is not visible and teammembers are disabled then remove divider first, or is not isTouch mode\r\n if (this.teammembersDisabled || !this.isTouch) {\r\n footerList = footerList.filter(({ id }) => id !== MenuListTypeId.DIVIDERAPPS);\r\n }\r\n\r\n // if team is assigned then remove \"Get Your Team\" button\r\n if (!this.getYourTeamVisible) {\r\n return footerList.filter(({ id }) => id !== MenuListTypeId.PORTAL_GET_YOUR_TEAM_BTN);\r\n }\r\n\r\n // remove divider if there is no \"Get Your Team\" button\r\n return footerList.filter(({ id }) => id !== MenuListTypeId.DIVIDERAPPS);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * check if app is subscribed\r\n --------------------------------------------------------------------------*/\r\n _isSubscribed(item:MenuListType):boolean {\r\n\r\n if (item.checkSubscription) {\r\n const key = `${item.action}Subscribed`;\r\n return !!((this as unknown as BimplusMainMenuComponentAttribute )[key]);\r\n }\r\n return true;\r\n }\r\n /**--------------------------------------------------------------------------\r\n * check if app is clickable\r\n --------------------------------------------------------------------------*/\r\n _isClickable(item:MenuListType):boolean {\r\n\r\n if (item.clickPolicy === \"noProjectNoSubscription\") {\r\n return this.projectName !== \"\";\r\n }\r\n return true;\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * check if app is subscribed/visible\r\n --------------------------------------------------------------------------*/\r\n _isHidden(item:MenuListType):boolean {\r\n\r\n if (item) {\r\n const key = `${item.action ? item.action : item.id}Visible`;\r\n return !((this as unknown as BimplusMainMenuComponentAttribute )[key]);\r\n }\r\n return false;\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * check if app is disabled\r\n --------------------------------------------------------------------------*/\r\n _isDisabled(item:MenuListType) {\r\n const key = `${item.action}Disabled`;\r\n return !!((this as unknown as BimplusMainMenuComponentAttribute )[key]);\r\n }\r\n\r\n _getContextData(item: MenuListType, active: boolean, disabled: boolean, clickable: boolean, selected: boolean) {\r\n return {\r\n item: item,\r\n active: active,\r\n disabled: disabled,\r\n clickable: clickable,\r\n selected: selected,\r\n showInfoIcon: this.appsWithInfo.includes(item.id)\r\n };\r\n }\r\n\r\n _openPrjBtn:MenuListType = { action:\"openProject\", id:\"portalSelectProjectBtn\",type:\"\", class: \"bim-mm-icon-folder\", textId: \"_Portal_Menu_Open_Project\", textIdDisabled: \"_Portal_Menu_Open_Project\",disabledTitle:'',checkSubscription: true, devOrStageOnly : false,clickPolicy: \"\"};\r\n\r\n contextData = {item:\"haha\",active:true,disabled:true,clickable:true,selected:true};\r\n\r\n\r\n appsList: MenuListType[] = [\r\n { action:\"projectmembers\", id: MenuListTypeId.PORTAL_BIM_USERS, type:\"\", class: \"bim-mm-icon-users\", textId: \"_projectStatisticsMembers\", textIdDisabled: \"_projectStatisticsMembers\", disabledTitle:\"_Insufficient rights title\",checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n { action:\"models\", id: MenuListTypeId.PORTAL_BIM_MODELS, type:\"\",class: \"bim-mm-icon-models\", textId: \"_Divisions\", textIdDisabled: \"_Divisions\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n { action:\"documents\", id: MenuListTypeId.PORTAL_BIM_DOCUMENTS, type:\"\",class: \"bim-mm-icon-documents\", textId: \"_Files\", textIdDisabled: \"_Files\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n { action:\"projectsettings\", id: MenuListTypeId.PORTAL_BIM_PROJECT_SETTINGS, type:\"\",class: \"bim-mm-icon-project-settings\", textId: \"_Settings\", textIdDisabled: \"_Settings\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n { action:\"processes\", id: MenuListTypeId.PORTAL_BIM_PROCESSES, type:\"\",class: \"bim-mm-icon-processes\", textId: \"_Approvals\", textIdDisabled: \"_Approvals\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n { action:\"\",id: MenuListTypeId.DIVIDER_PROJECT_MANAGEMENT, type:\"divider\", class: \"bim-mm-app-item-divider\", textId: \"\",textIdDisabled:\"\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n\r\n { action:\"bimexplorer\", id: MenuListTypeId.PORTAL_BIM_VIEWER_BTN, type:\"\",class: \"bim-mm-icon-bim-explorer\", textId: \"BIM Explorer\", textIdDisabled: \"BIM Explorer\", disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"noProjectNoSubscription\"},\r\n { action:\"cloudviewer\", id: MenuListTypeId.PORTAL_CLOUD_VIEWER_BTN, type:\"\",class: \"bim-mm-icon-cloud-viewer\", textId: \"Model Viewer\", textIdDisabled: \"Model Viewer\", disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"noProjectNoSubscription\"},\r\n { action:\"connexis\", id: MenuListTypeId.PORTAL_CONNEXIS_BTN, type:\"\",class: \"bim-mm-icon-connexis\", textId: \"Connexis\", textIdDisabled: \"Connexis\", disabledTitle:'',checkSubscription: false, devOrStageOnly : false, clickPolicy: \"noProjectNoSubscription\"},\r\n { action:\"autoconverter\", id: MenuListTypeId.PORTAL_BIM_AUTOCONVERTER_BTN, type:\"\",class: \"bim-mm-icon-autoconverter\", textId: \"Autoconverter\", textIdDisabled: \"Autoconverter\", disabledTitle:'',checkSubscription: true, devOrStageOnly : false, clickPolicy: \"noProjectNoSubscription\"},\r\n\r\n { action:\"\",id: MenuListTypeId.DIVIDERAPPS, type:\"divider\", class: \"bim-mm-app-item-divider\", textId: \"\",textIdDisabled:\"\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n\r\n { action:\"teammembers\", id: MenuListTypeId.PORTAL_TEAM_MANAGEMENT_BTN, type:\"\", class: \"bim-mm-icon-team-members\", textId: \"_Portal_Menu_Team_Members\", textIdDisabled: \"_Portal_Menu_Team_Members\", disabledTitle:'',checkSubscription: true, devOrStageOnly : false,clickPolicy: \"\"},\r\n { action:\"propertymanager\", id: MenuListTypeId.PORTAL_PROPERTY_MANAGER_BTN, type:\"\",class: \"bim-mm-icon-property-manager\", textId: \"_Portal_Menu_Properties\", textIdDisabled: \"_Portal_Menu_Properties\", disabledTitle:'',checkSubscription: true, devOrStageOnly : false,clickPolicy: \"\"},\r\n ];\r\n\r\n _menuFooterList: MenuListType[] = [\r\n { action:\"\",id: MenuListTypeId.DIVIDERAPPS, type:\"divider\", class: \"bim-mm-app-item-divider\",checkSubscription: false,devOrStageOnly : false } as MenuListType,\r\n { action:\"addins\", id: MenuListTypeId.PORTAL_ADD_INS_BTN, type:\"\", class: \"bim-mm-icon-add-ins\", textId: \"_AddIns\", textIdDisabled: \"_AddIns\", disabledTitle:'', checkSubscription: false, devOrStageOnly : false, clickPolicy: \"\"},\r\n { \r\n action:\"getYourTeam\", \r\n id: MenuListTypeId.PORTAL_GET_YOUR_TEAM_BTN,\r\n class: \"bim-mm-icon-get-your-team\", \r\n textId: \"_Get_Your_Team\", \r\n textIdDisabled: \"_Get_Your_Team\",\r\n } as MenuListType,\r\n { \r\n action:\"tryBimplusPro\", \r\n id: MenuListTypeId.PORTAL_TRY_BIMPLUS_PRO_BTN,\r\n class: \"bim-mm-icon-try-bimplus-pro\", \r\n textId: \"_Try_Bimplus_Pro\", \r\n textIdDisabled: \"_Try_Bimplus_Pro\",\r\n } as MenuListType, \r\n { action:\"shop\", id: MenuListTypeId.PORTAL_SHOP_BTN, type:\"\",class: \"bim-mm-icon-shop\", textId: \"_Get_More\", textIdDisabled: \"_Get_More\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"}\r\n ];\r\n\r\n _overlayClicked(){\r\n fireEvent(this, \"bimplusMainMenuOverlayClicked\");\r\n }\r\n\r\n _mainMenuItemClicked(item: MenuListType,type:string,event: Event | undefined ){\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n\r\n if(type != \"info\") {\r\n if (this._isDisabled(item)){\r\n return;\r\n }\r\n }\r\n\r\n const action = item.action;\r\n fireEvent(this,\"bimplusMainMenuClicked\", {action,type:type } );\r\n }\r\n}\r\n","<ng-template #appNavigationItemContent let-contextData>\r\n @if (contextData.item.type === 'divider') {\r\n <div class=\"bim-mm-app-item\" [class]=\"contextData.item.class\" [id]=\"contextData.item.id\"></div>\r\n } @else {\r\n <div class=\"bim-mm-app-item\" [id]=\"contextData.item.id\"\r\n [ngClass]=\"isTouch?'':'hover-show-info '+(contextData.active?'active ':' ') +(contextData.disabled?'disabled ':' ')+(contextData.clickable?' ':'not-clickable ')+(contextData.selected?'selected ':' ')\"\r\n [title] =\"((contextData.disabled) ? (contextData.item.disabledTitle | translate) : '' )\"\r\n >\r\n <div class=\"bim-mm-app-item-details\"\r\n [ngClass] = \" contextData.clickable ? '' : 'not-clickable' \"\r\n (click)=\"_mainMenuItemClicked(contextData.item,'normal',$event)\"\r\n (keypress)=\"_mainMenuItemClicked(contextData.item,'normal',$event)\">\r\n <div class=\"bim-mm-icon\"\r\n [ngClass]=\"contextData.item.class + (contextData.active?' active':'') + (contextData.disabled?' disabled ':'')\">\r\n </div>\r\n <span>{{(contextData.isDisabled && (contextData.item.textIdDisabled !==\"\") ? contextData.item.textIdDisabled : contextData.item.textId) | translate}}</span>\r\n </div>\r\n @if(contextData.showInfoIcon){\r\n <div class=\"bim-mm-app-item-info bim-mm-icon bim-mm-icon-info\"\r\n (click)=\"_mainMenuItemClicked(contextData.item, 'info',$event)\"\r\n (keypress)=\"_mainMenuItemClicked(contextData.item, 'info',$event)\">\r\n </div>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n\r\n\r\n<div \r\n class=\"bim-mm-wrapper\" \r\n [ngClass]=\"showOverlay ? 'bim-mm-overlay' : ''\" \r\n (click)=\"_overlayClicked()\"\r\n (keypress)=\"_overlayClicked()\"\r\n >\r\n <div class= \"bim-mm-container\">\r\n @if(!_isHidden(_openPrjBtn)){\r\n <ng-container\r\n *ngTemplateOutlet=\"appNavigationItemContent; context: { $implicit: _getContextData(_openPrjBtn,projectActiveItem === 'projectlist',_isDisabled(_openPrjBtn),true,projectActiveItem === 'projectlist') }\"\r\n ></ng-container>\r\n }\r\n\r\n @if(bimplusProjectMenuVisible){\r\n <lib-bimplus-project-menu\r\n projectName = {{projectName}}\r\n projectImageUrl = {{projectImageUrl}}\r\n projectExplorerUrl = {{projectExplorerUrl}}\r\n projectActiveItem = {{projectActiveItem}}\r\n projectmembersDisabled = {{projectmembersDisabled}}\r\n modelsDisabled = {{modelsDisabled}}\r\n documentsDisabled = {{documentsDisabled}}\r\n projectsettingsDisabled = {{projectsettingsDisabled}}\r\n processesDisabled = {{processesDisabled}}\r\n projectmembersVisible = {{projectmembersVisible}}\r\n modelsVisible = {{modelsVisible}}\r\n documentsVisible = {{documentsVisible}}\r\n projectsettingsVisible = {{projectsettingsVisible}}\r\n processesVisible = {{processesVisible}}\r\n isCollapsed = {{isCollapsed}}\r\n isMiniMode = {{isTouch}}\r\n isTouch = {{isTouch}}\r\n hideMenuIcons = {{hideProjectMenuIcons}}\r\n showHorizontalMenuIcons = {{showHorizontalMenuIcons}}\r\n [menuItemsOrder]=\"menuItemsOrder\"\r\n ></lib-bimplus-project-menu>\r\n }\r\n <div [ngClass]=\"apps.length || footerList.length ? 'bim-mm-apps-container' : ''\">\r\n <div class=\"bim-mm-apps-list\">\r\n <div *ngFor=\"let appItem of apps\">\r\n <ng-container\r\n *ngTemplateOutlet=\"appNavigationItemContent; context: { $implicit: _getContextData(appItem,!_isSubscribed(appItem),_isDisabled(appItem),_isClickable(appItem),menuActiveItem === appItem.action)}\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"bim-mm-footer-container\">\r\n <div *ngFor=\"let footerItem of footerList\">\r\n <ng-container\r\n *ngTemplateOutlet=\"appNavigationItemContent; context: { $implicit: _getContextData(footerItem,footerActiveItem === footerItem.action,_isDisabled(footerItem),true,false)}\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","export enum LogoState {\r\n BimplusViewer = 'bimplusViewer', // Bimplus logo\r\n ModelViewerBlack = 'modelViewerBlack', // Model viewer black logo\r\n ModelViewer = 'modelViewer', // Cloud viewer logo\r\n ConnexisViewer = 'connexisViewer', // Connexis viewer logo\r\n ConnexisViewerBlack = 'connexisViewerBlack' // Connexis viewer logo (black)\r\n}\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, computed, input } from '@angular/core';\r\nimport { fireEvent } from '../../utils/utils';\r\nimport { LogoState } from './logo-state.enum';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-navbar',\r\n imports: [CommonModule, TranslateModule],\r\n templateUrl: './bimplus-navbar.component.html',\r\n styleUrl: './bimplus-navbar.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusNavbarComponent {\r\n @Input() projectInfo : string = \"\";\r\n @Input() teamInfo : string = \"\";\r\n @Input({ transform: booleanAttribute }) isDev : boolean = false;\r\n @Input({ transform: booleanAttribute }) isStage : boolean = false;\r\n @Input() teamInfoOffset : string = \"\";\r\n @Input({ transform: booleanAttribute }) isNavbarMenuVisible : boolean = false;\r\n @Input({ transform: booleanAttribute }) isNavbarInfoVisible : boolean = false;\r\n logoState = input<LogoState>(LogoState.BimplusViewer);\r\n isModelViewerActive = input(false , { transform: booleanAttribute });\r\n // @Input({ transform: booleanAttribute }) isConnexisViewerActive : boolean = false;\r\n @Input({ transform: booleanAttribute }) isNavbarMessageVisible : boolean = false;\r\n @Input({ transform: booleanAttribute }) isNavbarMenuActive : boolean = false;\r\n @Input({ transform: booleanAttribute }) isNavbarMenuEnabled : boolean = true;\r\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\r\n @Input({ transform: booleanAttribute }) isDashboardTooltipEnabled: boolean = true;\r\n @Input() selectedLanguage : string = \"en\";\r\n @Output() bimplusNavbarClicked = new EventEmitter<string>();\r\n\r\n // Make the enum available in the template\r\n public LogoState = LogoState;\r\n\r\n protected readonly logoStateSignal = computed<LogoState>(() => {\r\n if (this.isModelViewerActive()) {\r\n return LogoState.ModelViewerBlack;\r\n }\r\n\r\n return this.logoState();\r\n });\r\n\r\n _menuClicked() {\r\n if ( this.isNavbarMenuEnabled ) {\r\n fireEvent(this, \"bimplusNavbarClicked\", \"menu\");\r\n }\r\n }\r\n\r\n _logoClicked() {\r\n if (this.logoStateSignal() === LogoState.BimplusViewer) {\r\n // Fire only an event for BimplusViewer\r\n fireEvent(this, \"bimplusNavbarClicked\", \"logo\");\r\n }\r\n }\r\n\r\n _projectInfoClicked() {\r\n if ( this.isDev ) {\r\n fireEvent(this, \"bimplusNavbarClicked\", \"project\");\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"bimplus-navbar\"\r\n [ngClass]=\"isTouch ? 'is-touch' : ''\"\r\n>\r\n <div class=\"bimplus-navbar-logo-container\">\r\n <div\r\n class=\"bimplus-logo\"\r\n [ngClass]=\"{\r\n 'model-viewer': logoStateSignal() === LogoState.ModelViewer,\r\n 'model-viewer-black': logoStateSignal() === LogoState.ModelViewerBlack,\r\n 'connexis-viewer': logoStateSignal() === LogoState.ConnexisViewer,\r\n 'connexis-viewer-black': logoStateSignal() === LogoState.ConnexisViewerBlack,\r\n 'burger-menu-not-visible': !isNavbarMenuVisible\r\n }\"\r\n (click)=\"_logoClicked()\"\r\n (keypress)=\"_logoClicked()\"\r\n [title]=\"(isDashboardTooltipEnabled ? '_dashboard_tooltip' : '') | translate\"\r\n ></div>\r\n\r\n <div\r\n class=\"bimplus-navbar-menu icon\"\r\n [ngClass]=\"{'active':isNavbarMenuActive, 'hidden': !isNavbarMenuVisible, 'disabled': !isNavbarMenuEnabled}\"\r\n (click)=\"_menuClicked()\"\r\n (keypress)=\"_menuClicked()\"\r\n ></div>\r\n </div>\r\n\r\n <div class=\"bimplus-navbar-container\">\r\n <div\r\n class=\"bimplus-navbar-info\"\r\n [ngClass]=\"{'hidden': !isNavbarInfoVisible}\"\r\n [style.margin-left]=\"teamInfoOffset\"\r\n >\r\n <span class=\"team\">{{teamInfo}}</span>\r\n <span *ngIf=\"projectInfo && !isTouch\"> - </span>\r\n <span\r\n class=\"project\"\r\n [ngClass]=\"isDev ? 'clickable' : ''\"\r\n (click)=\"_projectInfoClicked()\"\r\n (keypress)=\"_projectInfoClicked()\"\r\n >\r\n {{projectInfo}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"bimplus-navbar-slot\">\r\n <slot></slot>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n","import { Component, ViewEncapsulation, ElementRef, AfterViewInit, AfterViewChecked, inject } from '@angular/core';\r\n\r\nimport SimpleBar from 'simplebar';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-scrollable-container',\r\n imports: [],\r\n templateUrl: './bimplus-scrollable-container.component.html',\r\n styleUrl: './bimplus-scrollable-container.component.less',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class BimplusScrollableContainerComponent implements AfterViewInit, AfterViewChecked {\r\n private readonly elementRef = inject(ElementRef);\r\n\r\n _simpleBar!: SimpleBar;\r\n _element: HTMLElement;\r\n protected _scrollableContainerClassName: string = '.scrollable-container';\r\n\r\n constructor(){\r\n this._element = this.elementRef.nativeElement;\r\n }\r\n\r\n private _initializationSimpleScrollBar(): void {\r\n // init simple bar scrollbar\r\n const scrollableContainer: HTMLElement | null = this._element?.querySelector(this._scrollableContainerClassName);\r\n if (!scrollableContainer) {\r\n console.error('No scrollable container found in the element.');\r\n return;\r\n }\r\n this._simpleBar = new SimpleBar(scrollableContainer);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._initializationSimpleScrollBar();\r\n }\r\n\r\n private _recalculateScrollbar(): void {\r\n if(!this._element) {\r\n return;\r\n }\r\n const _element = this._element;\r\n const barElem = _element?.querySelector(this._scrollableContainerClassName);\r\n if (!barElem){\r\n return;\r\n }\r\n\r\n if (!this._simpleBar) {\r\n console.error('No scrollable container found in the element.');\r\n return;\r\n }\r\n\r\n this._simpleBar.recalculate();\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this._recalculateScrollbar();\r\n }\r\n}\r\n","<div class=\"scrollable-container\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges, OnInit, HostBinding } from '@angular/core';\r\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\r\nimport { fireEvent } from '../../utils/utils';\r\nimport { BimplusLocalizedWidgetComponent } from './../bimplus-localized-widget/bimplus-localized-widget.component';\r\nimport { BimplusScrollableContainerComponent } from './../bimplus-scrollable-container/bimplus-scrollable-container.component';\r\n\r\nconst BIMPLUS_NOTIFY_MESSAGES = \"bimplus-notify-messages\";\r\ninterface MessageModel {\r\n 'id': string | undefined,\r\n 'type': string | undefined,\r\n 'title': string | undefined,\r\n 'text': string | undefined,\r\n 'link': string | undefined,\r\n 'linkText': string | string[] | undefined,\r\n 'links': string[] | undefined,\r\n 'actionId': number | undefined,\r\n 'capitalizedTitle': string | boolean | undefined\r\n}\r\n@Component({\r\n selector: 'lib-bimplus-notify',\r\n imports: [\r\n CommonModule,\r\n TranslateModule,\r\n BimplusScrollableContainerComponent\r\n ],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-notify.component.html',\r\n styleUrl: './bimplus-notify.component.less',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class BimplusNotifyComponent extends BimplusLocalizedWidgetComponent implements OnChanges, OnInit{\r\n constructor(){\r\n super();\r\n }\r\n\r\n // Expose Array constructor as a property\r\n Array = Array;\r\n \r\n @HostBinding('class.new-messages')\r\n get newMessages() {\r\n return this._alertActive;\r\n }\r\n\r\n @HostBinding('class.bim-notify')\r\n get bimNotify() {\r\n return true; // Or you can use a condition here if needed\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * List of messages\r\n --------------------------------------------------------------------------*/\r\n _messagesList: MessageModel[] = [];\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input() messagePreviewTime : number = 3000; // in ms\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input({ transform: booleanAttribute }) showMessagePreview : boolean = true;\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input() previewMessagesLimit : number = 3;\r\n\r\n /**--------------------------------------------------------------------------\r\n * offset of preview messages from main icon\r\n --------------------------------------------------------------------------*/\r\n @Input() previewMessagesOffsetY : string = '2.7em';\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input() messages : string = '';\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['messages']) {\r\n const newValue = changes['messages'].currentValue;\r\n this.updateMessages(newValue);\r\n }\r\n }\r\n\r\n updateMessages(newValue: string /*, oldValue: string*/) {\r\n const isOk = newValue && typeof newValue === 'string';\r\n if (!isOk) {\r\n this._messagesList = [];\r\n this._previewMessagesList = [];\r\n this._alertActive = false;\r\n return;\r\n }\r\n\r\n const msgData = JSON.parse(newValue);\r\n this._messagesList = msgData.messages;\r\n\r\n // filter new messages into the list for preview\r\n let newMessagesList = this._messagesList.filter( (msg) => this._oldMessagesList.findIndex( (oldMsg) => oldMsg.id === msg.id ) < 0 );\r\n newMessagesList = newMessagesList.filter( (item) => this._messageNotReadYet(item)); // filtering out allready read messages (stored in localstorage)\r\n\r\n // setup preview for new messages\r\n newMessagesList.slice().reverse().forEach( (newMsg) => {\r\n if ( this._previewMessagesList.findIndex( (item) => newMsg.id === item.id ) < 0){\r\n this._previewMessagesList.unshift(newMsg);\r\n\r\n if( this.messagePreviewTime > 0 ) {\r\n setTimeout(() => {\r\n this._closePreviewMessage(newMsg.id, false);\r\n }, this.messagePreviewTime);\r\n }\r\n }\r\n })\r\n\r\n // limit preview messages count\r\n this._previewMessagesList.length = this._previewMessagesList.length > this.previewMessagesLimit ? this.previewMessagesLimit : this._previewMessagesList.length;\r\n\r\n // set old state and alert\r\n this._oldMessagesList = this._messagesList;\r\n this._alertActive = this._messagesList.length != 0;\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * States\r\n --------------------------------------------------------------------------*/\r\n _menuOpened: boolean = false;\r\n _alertActive: boolean = false;\r\n _oldMessagesList: MessageModel[] = [];\r\n // list of messages for preview\r\n _previewMessagesList: MessageModel[] = [];\r\n\r\n\r\n /**--------------------------------------------------------------------------\r\n * Delete item event\r\n --------------------------------------------------------------------------*/\r\n @Output() bimplusNotifyDeleteMessage = new EventEmitter<string>();\r\n\r\n /**--------------------------------------------------------------------------\r\n * Delete all item event\r\n --------------------------------------------------------------------------*/\r\n @Output() bimplusNotifyDeleteAllMessages = new EventEmitter<string>();\r\n\r\n /**--------------------------------------------------------------------------\r\n * Message action event\r\n --------------------------------------------------------------------------*/\r\n @Output() bimplusNotifyMessageAction = new EventEmitter<string>();\r\n\r\n /**--------------------------------------------------------------------------\r\n * initial component load\r\n --------------------------------------------------------------------------*/\r\n ngOnInit(): void {\r\n this.updateMessages(this.messages);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * close single message\r\n --------------------------------------------------------------------------*/\r\n _closeMessage( item: MessageModel, preview: boolean, event: Event | undefined ){\r\n if (preview) {\r\n return this._closePreviewMessage(item.id);\r\n }\r\n\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n\r\n fireEvent(this, \"bimplusNotifyDeleteMessage\", JSON.stringify(item));\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * close preview message\r\n --------------------------------------------------------------------------*/\r\n _closePreviewMessage( msgId: string | undefined, closedByUser = true ){\r\n if (!msgId) {\r\n return;\r\n }\r\n\r\n this._previewMessagesList = this._previewMessagesList.filter( (msg) => msg.id !== msgId );\r\n this.storeMessagesAsRead([msgId]);\r\n if ( closedByUser && this._previewMessagesList.length === 0 ){\r\n this._alertActive = false;\r\n }\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * close all messages\r\n --------------------------------------------------------------------------*/\r\n _deleteAllMessages(){\r\n fireEvent(this, \"bimplusNotifyDeleteAllMessages\");\r\n this.clearAllLocalStorageMessages();\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * message clicked\r\n --------------------------------------------------------------------------*/\r\n _messageAction( item: MessageModel, index: number ){\r\n item.actionId = index;\r\n fireEvent(this, \"bimplusNotifyMessageAction\", JSON.stringify(item));\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * toggle menu open\r\n --------------------------------------------------------------------------*/\r\n _toggleOpened(){\r\n this._menuOpened = !this._menuOpened;\r\n this._alertActive = false;\r\n this._previewMessagesList = [];\r\n }\r\n\r\n _messageNotReadYet(message: MessageModel){\r\n if(!message?.id){\r\n return true;\r\n }\r\n const messageListString = window.localStorage.getItem(BIMPLUS_NOTIFY_MESSAGES);\r\n if(!messageListString){\r\n return true;\r\n }\r\n return !messageListString.includes(message.id);\r\n }\r\n\r\n storeMessagesAsRead(messageList: string[]){\r\n if(!messageList || messageList.length <1){\r\n return;\r\n }\r\n let messageListString = window.localStorage.getItem(BIMPLUS_NOTIFY_MESSAGES);\r\n messageListString ??= \"\";\r\n messageList.forEach((item: string)=>{\r\n if(!messageListString?.includes(item)){\r\n messageListString+=(item+\";\");\r\n }\r\n })\r\n window.localStorage.setItem(BIMPLUS_NOTIFY_MESSAGES,messageListString);\r\n }\r\n\r\n clearAllLocalStorageMessages(){\r\n window.localStorage.removeItem(BIMPLUS_NOTIFY_MESSAGES);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * get item link title\r\n --------------------------------------------------------------------------*/\r\n _getItemLinkTitle( item: MessageModel, index: number ){\r\n let itemLinksTitles: (string | undefined)[] = [];\r\n if ( item.linkText && (item.links || item.link)) {\r\n itemLinksTitles = Array.isArray(item.links) ? item.links : [item.link];\r\n }\r\n return itemLinksTitles[index] ?? '';\r\n }\r\n}\r\n","<div\r\n class=\"dropdown\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n [title]=\"'_BimplusNotifyTitle' | translate\"\r\n>\r\n <div class=\"dropdown-toggle\" >\r\n <div\r\n class=\"main-icon\"\r\n [ngClass]=\"'icon-notify' + (this._alertActive ? '-alert notify' : '')\"\r\n ></div>\r\n </div>\r\n\r\n <div\r\n class=\"bimcomp-dropdown-menu\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n >\r\n <div class=\"notify-tick\"></div>\r\n <div class=\"messages-title\">\r\n <div class=\"messages-count\">\r\n ({{this._messagesList.length}})\r\n </div>\r\n <div\r\n class=\"messages-delete-all\"\r\n (click)=\"_deleteAllMessages()\"\r\n (keypress)=\"_deleteAllMessages()\"\r\n >\r\n {{\"_Notify_Mark_All\" | translate}}\r\n </div>\r\n </div>\r\n <div class=\"messages-container\">\r\n @if (_messagesList.length) {\r\n <lib-bimplus-scrollable-container>\r\n <div\r\n *ngFor=\"let item of _messagesList\"\r\n class=\"message-item\"\r\n >\r\n <div class=\"message-item-title\">\r\n <div [ngClass]=\"'message-item-icon-' + item.type\"></div>\r\n <div\r\n class=\"message-item-title-text\"\r\n [ngClass]=\"{'capitalize':item.capitalizedTitle}\"\r\n >\r\n {{item.title}}\r\n </div>\r\n <div\r\n class=\"message-item-icon-close\"\r\n (click)=\"_closeMessage(item, false, $event)\"\r\n (keypress)=\"_closeMessage(item, false, $event)\"\r\n ></div>\r\n </div>\r\n \r\n <div class=\"message-item-body-text\">{{item.text}}</div>\r\n @if (item.linkText) {\r\n <div\r\n *ngFor=\"let link of (item.linkText.constructor === Array ? item.linkText : [item.linkText]); let i = index\"\r\n class=\"message-item-link\"\r\n [title]=\"_getItemLinkTitle(item, i)\"\r\n (click)=\"_messageAction(item, i)\"\r\n (keypress)=\"_messageAction(item, i)\"\r\n >{{link}}</div>\r\n }\r\n </div>\r\n </lib-bimplus-scrollable-container>\r\n } @else {\r\n <div class=\"message-item-empty\">\r\n <div class=\"message-item-empty-icon\"></div>\r\n <div class=\"message-item-empty-text\">{{\"_Notify_No_Messages\" | translate}}</div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div\r\n class=\"bimcomp-overlay\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n></div>\r\n\r\n<div\r\n class=\"bimcomp-messages-preview\"\r\n [ngClass]=\"(showMessagePreview && !_menuOpened && _previewMessagesList.length > 0) ? 'visible' : ''\"\r\n [style.top]=\"previewMessagesOffsetY\"\r\n>\r\n <div class=\"messages-container-preview\">\r\n <div\r\n *ngFor=\"let item of _previewMessagesList\"\r\n class=\"message-item\"\r\n >\r\n <div class=\"message-item-title\">\r\n <div [ngClass]=\"'message-item-icon-' + item.type\"></div>\r\n <div\r\n class=\"message-item-title-text\"\r\n [ngClass]=\"{'capitalize':item.capitalizedTitle}\"\r\n >\r\n {{item.title}}\r\n </div>\r\n <div\r\n class=\"message-item-icon-close\"\r\n (click)=\"_closeMessage(item, true, $event)\"\r\n (keypress)=\"_closeMessage(item, true, $event)\"\r\n ></div>\r\n </div>\r\n\r\n <div class=\"message-item-body-text\">\r\n {{item.text}}\r\n </div>\r\n @if (item.linkText) {\r\n <div\r\n *ngFor=\"let link of (item.linkText.constructor === Array ? item.linkText : [item.linkText]); let i = index\"\r\n class=\"message-item-link\"\r\n [title]=\"_getItemLinkTitle(item, i)\"\r\n (click)=\"_messageAction(item, i)\"\r\n (keypress)=\"_messageAction(item, i)\"\r\n >{{link}}</div>\r\n }\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Output, EventEmitter, input } from '@angular/core';\r\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\r\nimport { BimplusLocalizedWidgetComponent } from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\r\nimport { fireEvent } from '../../utils/utils';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-storage-info',\r\n imports: [CommonModule, TranslateModule],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-storage-info.component.html',\r\n styleUrl: './bimplus-storage-info.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusStorageInfoComponent extends BimplusLocalizedWidgetComponent{\r\n constructor(){\r\n super()\r\n }\r\n \r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n usedStorage = input<number>(0);\r\n\r\n\r\n @Output() bimplusStorageInfoClicked = new EventEmitter<string>();\r\n\r\n /**--------------------------------------------------------------------------\r\n * clicked storage info container\r\n --------------------------------------------------------------------------*/\r\n _infoClicked( action: string ){\r\n fireEvent(this, \"bimplusStorageInfoClicked\", action);\r\n }\r\n}\r\n","<div\r\n class=\"storage-info\"\r\n (click)=\"_infoClicked('storageInfo')\"\r\n (keypress)=\"_infoClicked('storageInfo')\"\r\n>\r\n <span class=\"progress-title\">\r\n {{\"_Common_Data_Environment_Quota\" | translate}}\r\n <span class=\"progress-text\" data-test=\"used-storage\">\r\n {{usedStorage()}}%\r\n </span>\r\n </span>\r\n <div class=\"storage-info-bar-container\">\r\n <div \r\n class=\"storage-info-bar\"\r\n [ngClass]=\"{\r\n 'red': usedStorage() >= 90,\r\n 'yellow': usedStorage() >= 80 && usedStorage() < 90,\r\n 'green': usedStorage() < 80\r\n }\"\r\n [style.width]=\"usedStorage() + '%'\"\r\n [style.max-width]=\"usedStorage() + '%'\"\r\n ></div>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges } from '@angular/core';\r\nimport {TranslateService, TranslateModule} from '@ngx-translate/core';\r\nimport {BimplusLocalizedWidgetComponent} from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\r\nimport { fireEvent } from '../../utils/utils';\r\n\r\nexport interface MenuItem {\r\n id: string,\r\n action: string,\r\n class: string,\r\n textId: string,\r\n type: string,\r\n checkState: string,\r\n url: string,\r\n _url?: () => string; // Function that takes no arguments and returns a string\r\n textClass: string,\r\n queryParams: string\r\n}\r\nexport interface MenuItemEventData {\r\n index: number,\r\n action: string\r\n}\r\nexport interface LangItem {\r\n symbol: string,\r\n text: string,\r\n lCode: string | undefined\r\n}\r\n\r\n@Component({\r\n selector: 'lib-bimplus-user-menu',\r\n imports: [CommonModule, TranslateModule],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-user-menu.component.html',\r\n styleUrl: './bimplus-user-menu.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\n\r\nexport class BimplusUserMenuComponent extends BimplusLocalizedWidgetComponent implements OnChanges{\r\n constructor(){\r\n super();\r\n }\r\n\r\n _languagesList: LangItem[] = [\r\n { symbol: \"cs\", text: \"Čeština\", lCode: \"3\" },\r\n { symbol: \"de\", text: \"Deutsch\", lCode: \"1\" },\r\n { symbol: \"en\", text: \"English (UK)\", lCode: \"0\" },\r\n { symbol: \"us\", text: \"English (US)\", lCode: undefined },\r\n { symbol: \"es\", text: \"Español\", lCode: \"18\" },\r\n { symbol: \"fr\", text: \"Français\", lCode: \"4\" },\r\n { symbol: \"it\", text: \"Italiano\", lCode: \"2\" },\r\n { symbol: \"ru\", text: \"Русский\", lCode: \"14\" },\r\n { symbol: \"ro\", text: \"Romana\", lCode: undefined },\r\n { symbol: \"tr\", text: \"Türkçe\", lCode: undefined }\r\n ];\r\n\r\n /**--------------------------------------------------------------------------\r\n * States\r\n --------------------------------------------------------------------------*/\r\n _menuOpened = false;\r\n _languagesMenuOpened = false;\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input({ transform: booleanAttribute }) accountSettingsVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) removeConnectedAppsVisible : boolean = false;\r\n @Input({ transform: booleanAttribute }) userGuideVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) contactFormVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) forumVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) releaseNotesVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) submenuVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) clearCacheVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) dividerLoggedInVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) logoutVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) isEmbedded : boolean = false;\r\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\r\n @Input({ transform: booleanAttribute }) allowRcaItem : boolean = false;\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input() buttonTitle : string = '';\r\n @Input() userName : string = 'Unknown user';\r\n @Input() userPhotoUrl : string = '';\r\n @Input() userGuideLinkUrl : string = 'https://doc.allplan.com/display/BIMPLUSMANUAL/Bimplus+Benutzerhandbuch';\r\n @Input() contactFormLinkUrl : string = 'https://www.allplan.com/info/contact';\r\n @Input() forumLinkUrl : string = 'https://connect.allplan.com/de/forum/themen/bim-benutzer-forum.ct';\r\n /**--------------------------------------------------------------------------\r\n * Component events\r\n --------------------------------------------------------------------------*/\r\n @Output() bimplusUserMenuClicked = new EventEmitter<MenuItemEventData>();\r\n @Output() bimplusLanguageSelected = new EventEmitter<string>();\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['localizedStrings']) {\r\n this._localizedStrings.set(changes['localizedStrings'].currentValue);\r\n }\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * List of menu items\r\n * Note : action is used to identify action which should be executed\r\n --------------------------------------------------------------------------*/\r\n _menuItemsList: MenuItem[] = [\r\n { id:\"accountSettingsPage\", action:\"accountSettings\", class: \"icon-account-settings\", textId: \"_Edit_profile\", type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\", url: \"\"},\r\n { id:\"removeConnectedApps\", action:\"removeConnectedApps\", checkState: \"allowRcaItem\", class: \"icon-rca\", textClass: \"text-capitalized\", textId: \"_Remove_connected_apps\", type: \"\", url: \"\", queryParams: \"\"},\r\n { id:\"userGuideLink\", action:\"userGuide\", class: \"icon-user-guide\", textId: \"_UserGuide\", get url() { return this._url?.() ?? ''; }, _url: () => this.userGuideLinkUrl, type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\"},\r\n { id:\"contactFormLink\", action:\"contactForm\", class: \"icon-contact-form\", textId: \"_Contact_Form\", get url() { return this._url?.() ?? ''; }, _url: () => this.contactFormLinkUrl, queryParams: \"\", type: \"\", checkState: \"\", textClass: \"\"},\r\n { id:\"forumLink\", action:\"forum\", class: \"icon-forum\", textId: \"_Forum\", get url() { return this._url?.() ?? ''; }, _url: () => this.forumLinkUrl, type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\"},\r\n { id:\"releaseNotesLink\", action:\"releaseNotes\", class: \"icon-release-notes\", textId: \"_Release_notes\", type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\", url: \"\"},\r\n { id:\"languagesSubmenu\", action:\"submenu\", class: \"icon-languages\", textId: \"_Languages\", type: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"},\r\n { id:\"clearCache\", action:\"clearCache\", class: \"icon-clear-cache\", textId: \"_Clear cache\", type: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"},\r\n { id:\"dividerLoggedIn\", type: \"divider\", action: \"\", class: \"\", textId: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"},\r\n { id:\"logout\", action:\"logout\", class: \"icon-log-out\", textId: \"_Logout\", type: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"}\r\n ];\r\n\r\n /**--------------------------------------------------------------------------\r\n * Item clicked\r\n --------------------------------------------------------------------------*/\r\n _menuItemClicked( item: MenuItem, index : number ){\r\n if (!item || item.type === 'divider') {\r\n return;\r\n }\r\n\r\n\r\n if (item.action === 'submenu') {\r\n this._toggleLanguagesSubmenuOpened();\r\n }\r\n else {\r\n this._languagesMenuOpened = false;\r\n this._menuOpened = false;\r\n fireEvent(this, \"bimplusUserMenuClicked\", { index, action: item.action ? item.action : '' });\r\n }\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * language submenu item clicked\r\n --------------------------------------------------------------------------*/\r\n _switchLanguage( language: string ){\r\n this._languagesMenuOpened = false;\r\n this._menuOpened = false;\r\n fireEvent(this, \"bimplusLanguageSelected\", language);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * toggle menu open\r\n --------------------------------------------------------------------------*/\r\n _toggleOpened(){\r\n this._menuOpened = !this._menuOpened;\r\n if(!this._menuOpened) {\r\n this._languagesMenuOpened = false;\r\n }\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * toggle language submenu open\r\n --------------------------------------------------------------------------*/\r\n _toggleLanguagesSubmenuOpened(){\r\n if(!this._menuOpened) {\r\n return;\r\n }\r\n this._languagesMenuOpened = !this._languagesMenuOpened;\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * check if item is visible\r\n --------------------------------------------------------------------------*/\r\n _isHidden(item: MenuItem) {\r\n\r\n if (item) {\r\n return !this[(`${item.action ? item.action : item.id}Visible` as keyof BimplusUserMenuComponent)];\r\n }\r\n\r\n return false;\r\n }\r\n\r\n //--- add lang code and additional query params to supported urls\r\n _buildUrl(item: MenuItem | undefined) {\r\n let itemUrl = item?.url;\r\n const actualLang = this._languagesList.find(lang=> lang.symbol === this.selectedLanguage);\r\n const langCode = actualLang?.lCode;\r\n const supportsLangCode = itemUrl?.endsWith?.('.ct') && langCode;\r\n if (item?.queryParams || supportsLangCode) {\r\n itemUrl = itemUrl + '?';\r\n if (supportsLangCode) {\r\n itemUrl = itemUrl + 'L=' + langCode;\r\n if (item?.queryParams) {\r\n itemUrl = itemUrl + '&';\r\n }\r\n }\r\n if (item?.queryParams) {\r\n itemUrl = itemUrl + item.queryParams;\r\n }\r\n }\r\n return itemUrl;\r\n }\r\n\r\n _getMenuItems() {\r\n const menuItemsListFiltered = this.isEmbedded ? this._menuItemsList.slice(0,-3) : this._menuItemsList;\r\n return menuItemsListFiltered.map( (item) => {\r\n\r\n if (this._isHidden(item) || (item.checkState && !this[(item.checkState as keyof BimplusUserMenuComponent)])) {\r\n return;\r\n }\r\n return item;\r\n });\r\n }\r\n\r\n _getLangId(lang: LangItem | undefined) {\r\n return \"portalLanguage\" + lang?.symbol.charAt(0).toUpperCase() + lang?.symbol.slice(1);\r\n }\r\n}\r\n","<div\r\n [attr.key]=\"'bimcompOverlay'\"\r\n class=\"bimcomp-overlay\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n></div>\r\n<div\r\n [attr.key]=\"'userMenu'\"\r\n class=\"dropdown\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n>\r\n <div\r\n class=\"dropdown-toggle\"\r\n [title]=\"buttonTitle ? buttonTitle : ''\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n <img\r\n class=\"user-photo\"\r\n src=\"{{ userPhotoUrl ? userPhotoUrl : '' }}\"\r\n alt=\"{{ buttonTitle ? buttonTitle : '' }}\"\r\n />\r\n <div class=\"user-name\">\r\n @if (!isTouch) {\r\n {{ userName }}\r\n }\r\n </div>\r\n <span class=\"caret\"></span>\r\n </div>\r\n <ul class=\"bimcomp-dropdown-menu\" [ngClass]=\"_menuOpened ? 'open' : ''\">\r\n <ng-container *ngFor=\"let item of _getMenuItems(); let i = index\">\r\n <li\r\n *ngIf=\"item\"\r\n [attr.key]=\"item.id\"\r\n [attr.role]=\"item.type === 'divider' ? 'separator' : ''\"\r\n [ngClass]=\"{\r\n divider: item.type === 'divider',\r\n languageMenuItem: item.action === 'submenu',\r\n 'submenu-hidden':\r\n (!item.url || item.url.slice(0, 2) === '#/') &&\r\n item.action !== 'submenu'\r\n }\"\r\n (click)=\"_menuItemClicked(item, i)\"\r\n (keypress)=\"_menuItemClicked(item, i)\"\r\n >\r\n @if (item.action === 'submenu') {\r\n <div class=\"submenu arrow\"></div>\r\n <div class=\"icon\" [ngClass]=\"item.class\"></div>\r\n <span\r\n class=\"menu-item-text\"\r\n [ngClass]=\"item.textClass ? item.textClass : ''\"\r\n >\r\n {{ item.textId | translate }}\r\n </span>\r\n <div\r\n class=\"languagesSubmenu\"\r\n [ngClass]=\"_languagesMenuOpened ? 'open' : ''\"\r\n >\r\n <div class=\"languageSubmenuItems\">\r\n <div\r\n *ngFor=\"let lang of _languagesList\"\r\n [attr.key]=\"_getLangId(lang)\"\r\n id=\"{{ _getLangId(lang) }}\"\r\n class=\"languageSubmenuItem\"\r\n [ngClass]=\"\r\n lang.symbol === this.selectedLanguage ? 'selected' : ''\r\n \"\r\n (click)=\"_switchLanguage(lang.symbol)\"\r\n (keypress)=\"_switchLanguage(lang.symbol)\"\r\n >\r\n {{ lang.text }}\r\n </div>\r\n </div>\r\n </div>\r\n } @else if (!item.url || item.url.slice(0,2) === \"#/\") {\r\n <div class=\"icon\" [ngClass]=\"item.class\"></div>\r\n <span\r\n class=\"menu-item-text\"\r\n [ngClass]=\"item.textClass ? item.textClass : ''\"\r\n >\r\n {{ item.textId | translate }}\r\n </span>\r\n } @else if (!item.type || item.type !== \"divider\") {\r\n <a\r\n href=\"{{ _buildUrl(item) }}\"\r\n rel=\"noopener\"\r\n target=\"_blank\"\r\n class=\"submenu-hidden\"\r\n >\r\n <div class=\"icon\" [ngClass]=\"item.class\"></div>\r\n <span\r\n class=\"menu-item-text\"\r\n [ngClass]=\"item.textClass ? item.textClass : ''\"\r\n >\r\n {{ item.textId | translate }}\r\n </span>\r\n </a>\r\n }\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute } from '@angular/core';\r\nimport { fireEvent } from '../../utils/utils';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-zoom',\r\n imports: [CommonModule],\r\n templateUrl: './bimplus-zoom.component.html',\r\n styleUrl: './bimplus-zoom.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusZoomComponent{\r\n /**--------------------------------------------------------------------------\r\n * List of available zoom\r\n --------------------------------------------------------------------------*/\r\n _zoomList = [\r\n { symbol: \"100\", text: \"100%\"},\r\n { symbol: \"105\", text: \"105%\"},\r\n { symbol: \"110\", text: \"110%\"},\r\n { symbol: \"115\", text: \"115%\"},\r\n { symbol: \"120\", text: \"120%\"},\r\n { symbol: \"125\", text: \"125%\"},\r\n { symbol: \"130\", text: \"130%\"},\r\n { symbol: \"135\", text: \"135%\"},\r\n { symbol: \"140\", text: \"140%\"},\r\n { symbol: \"145\", text: \"145%\"},\r\n { symbol: \"150\", text: \"150%\"}\r\n ];\r\n\r\n /**--------------------------------------------------------------------------\r\n * States\r\n --------------------------------------------------------------------------*/\r\n _menuOpened = false;\r\n \r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input() selectedZoom : string = '125';\r\n\r\n /**--------------------------------------------------------------------------\r\n * Zoom selected event\r\n --------------------------------------------------------------------------*/\r\n @Output() bimplusZoomSelected = new EventEmitter<string>();\r\n\r\n /**--------------------------------------------------------------------------\r\n * Zoom selection\r\n --------------------------------------------------------------------------*/\r\n _switchZoom( zoom: string ){\r\n fireEvent(this, \"bimplusZoomSelected\", zoom);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * toggle menu open\r\n --------------------------------------------------------------------------*/\r\n _toggleOpened(){\r\n this._menuOpened = !this._menuOpened;\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * setup dynamic classes for zoom item\r\n --------------------------------------------------------------------------*/\r\n _getZoomClassObject( symbol: string ){\r\n return {\r\n 'selected': this.selectedZoom === symbol,\r\n ['bimzoom-' + symbol]: true\r\n };\r\n }\r\n}\r\n","<div\r\n class=\"bimcomp-overlay\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n></div>\r\n<div \r\n class=\"dropdown\"\r\n [ngClass]=\"{'open': _menuOpened, 'is-touch': isTouch}\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n>\r\n <div class=\"dropdown-toggle\">\r\n <div class=\"main-icon icon-zoom\"></div>\r\n <span class=\"caret\"></span>\r\n </div>\r\n <ul\r\n class=\"bimcomp-dropdown-menu\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n >\r\n <li\r\n *ngFor=\"let zoom of _zoomList\"\r\n class=\"bimcomp-dropdown-menu-item\"\r\n [ngClass]=\"_getZoomClassObject(zoom.symbol)\"\r\n (click)=\"_switchZoom(zoom.symbol)\"\r\n (keypress)=\"_switchZoom(zoom.symbol)\"\r\n >\r\n <span>{{zoom.text}}</span>\r\n </li>\r\n </ul>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges } from '@angular/core';\r\nimport {TranslateService, TranslateModule} from '@ngx-translate/core';\r\nimport {BimplusLocalizedWidgetComponent} from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\r\nimport { fireEvent } from '../../utils/utils';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-touch-menu',\r\n imports: [CommonModule, TranslateModule],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-touch-menu.component.html',\r\n styleUrl: './bimplus-touch-menu.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\n\r\nexport class BimplusTouchMenuComponent extends BimplusLocalizedWidgetComponent implements OnChanges{\r\n constructor(){\r\n super()\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * List of menu items\r\n * Note : action is used to identify action which should be executed\r\n --------------------------------------------------------------------------*/\r\n _menuItemsList = [\r\n { mode:\"touch\", class: \"icon-touch-mode-toolbar\", textId: \"_Touch_Mode\"},\r\n { mode:\"desktop\", class: \"icon-desktop-mode-toolbar\", textId: \"_Desktop_Mode\"},\r\n ];\r\n\r\n get _selectedItem() {\r\n return this._menuItemsList.find(item => item.mode == this.selectedMode);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * States\r\n --------------------------------------------------------------------------*/\r\n _menuOpened = false;\r\n \r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input() selectedMode : string = 'desktop';\r\n\r\n /**--------------------------------------------------------------------------\r\n * Zoom selected event\r\n --------------------------------------------------------------------------*/\r\n @Output() bimplusTouchModeSelected = new EventEmitter<string>();\r\n\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['localizedStrings']) {\r\n this._localizedStrings.set(changes['localizedStrings'].currentValue); \r\n }\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * Item clicked\r\n --------------------------------------------------------------------------*/\r\n _menuItemClicked( mode: string ){\r\n fireEvent(this, \"bimplusTouchModeSelected\", mode);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * toggle menu open\r\n --------------------------------------------------------------------------*/\r\n _toggleOpened(){\r\n this._menuOpened = !this._menuOpened;\r\n }\r\n}\r\n","<div\r\n class=\"bimcomp-overlay\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n</div>\r\n<div \r\n class=\"dropdown\"\r\n [ngClass]=\"{'open': _menuOpened, 'is-touch': isTouch}\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n <div class=\"dropdown-toggle\">\r\n <div \r\n class=\"main-icon\"\r\n [ngClass]=\"this._selectedItem?.class ? this._selectedItem?.class : ''\"\r\n ></div>\r\n <span class=\"caret\"></span>\r\n </div>\r\n <ul \r\n class=\"bimcomp-dropdown-menu\"\r\n [ngClass]=\"{'open':this._menuOpened}\">\r\n <li\r\n *ngFor=\"let item of _menuItemsList\"\r\n class=\"bimcomp-dropdown-menu-item\"\r\n [ngClass]=\"{'selected':this.selectedMode === item.mode}\"\r\n (click)=\"_menuItemClicked(item.mode)\"\r\n (keypress)=\"_menuItemClicked(item.mode)\"\r\n >\r\n <div \r\n class=\"icon\"\r\n [ngClass]=\"item.class\"\r\n ></div>\r\n <span>{{item.textId | translate}}</span>\r\n </li>\r\n </ul>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { LocalizedStrings } from './../types/types'\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LanguageStringsService {\r\n\r\n // #region public fields\r\n set languageFilesUri(uri : string){\r\n this._languageFilesUri = uri;\r\n }\r\n private readonly defaultLang: string = 'en';\r\n currentLanguage$ = new BehaviorSubject<string> (this.defaultLang);\r\n currentLanguageStrings$ = new BehaviorSubject<LocalizedStrings>({});\r\n\r\n get currentLanguage() : string {\r\n return this.currentLanguage$.getValue();\r\n }\r\n\r\n set currentLanguageStrings(langStrings : LocalizedStrings){\r\n this.currentLanguageStrings$.next(langStrings);\r\n }\r\n\r\n get currentLanguageStrings() : LocalizedStrings {\r\n return this.currentLanguageStrings$.getValue();\r\n }\r\n // #endregion public fields\r\n\r\n // #region public methods\r\n async setCurrentLanguage(lang : string){\r\n this.currentLanguage$.next(lang);\r\n await this.fetchLanguageStrings(lang); \r\n }\r\n\r\n extractLocalizedStrings(stringIds : Array<string>) : LocalizedStrings {\r\n const obj : LocalizedStrings = {};\r\n for (const [key, value] of Object.entries(this.currentLanguageStrings)) {\r\n if(typeof value == 'string' && stringIds.find(x=>x === key)){\r\n obj[key] = value;\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n async fetchLanguageStrings(lang : string){\r\n const data = await fetch(`${this._languageFilesUri}/strings_${lang}.json`);\r\n console.log(`Language strings loaded from: ${this._languageFilesUri}/strings_${lang}.json`);\r\n console.log(data);\r\n const dataJSON = await data.json();\r\n // add missing translations from default language translations\r\n if (lang !== this.defaultLang) {\r\n const fallbackData = await fetch(`${this._languageFilesUri}/strings_en.json`);\r\n const fallbackDataJSON = await fallbackData?.json?.();\r\n const fallbackDataJSONIndexes = fallbackDataJSON && Object.keys(fallbackDataJSON);\r\n if (fallbackDataJSONIndexes?.length) {\r\n for (const index in fallbackDataJSONIndexes) {\r\n const indexName = fallbackDataJSONIndexes[index];\r\n dataJSON[indexName] ??= fallbackDataJSON[indexName];\r\n }\r\n }\r\n }\r\n this.currentLanguageStrings$.next(dataJSON); \r\n }\r\n // #endregion public methods\r\n\r\n // #region private fields \r\n private _languageFilesUri : string = \"/assets\"\r\n // #endregion private fields\r\n}\r\n","/*\r\n * Public API Surface of navigation\r\n */\r\n\r\nexport * from './lib/navigation.service';\r\nexport * from './lib/navigation.component';\r\nexport * from './lib/components/bimplus-contact/bimplus-contact.component';\r\nexport * from './lib/components/bimplus-language-menu/bimplus-language-menu.component';\r\nexport * from './lib/components/bimplus-localized-widget/bimplus-localized-widget.component';\r\nexport * from './lib/components/bimplus-main-menu/bimplus-main-menu.component';\r\nexport * from './lib/components/bimplus-navbar/bimplus-navbar.component';\r\nexport * from './lib/components/bimplus-navbar/logo-state.enum';\r\nexport * from './lib/components/bimplus-notify/bimplus-notify.component';\r\nexport * from './lib/components/bimplus-storage-info/bimplus-storage-info.component';\r\nexport * from './lib/components/bimplus-user-menu/bimplus-user-menu.component';\r\nexport * from './lib/components/bimplus-zoom/bimplus-zoom.component';\r\nexport * from './lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component';\r\nexport * from './lib/components/bimplus-touch-menu/bimplus-touch-menu.component';\r\nexport * from './lib/components/bimplus-project-menu/bimplus-project-menu.component';\r\nexport * from './lib/services/language-strings.service';\r\nexport * from './lib/types/types';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bimplus-navigation.mjs","sources":["../../../../projects/@bimplus/navigation/src/lib/navigation.service.ts","../../../../projects/@bimplus/navigation/src/lib/navigation.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-localized-widget/bimplus-localized-widget.component.ts","../../../../projects/@bimplus/navigation/src/lib/utils/utils.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-contact/bimplus-contact.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-contact/bimplus-contact.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-language-menu/bimplus-language-menu.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-language-menu/bimplus-language-menu.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-project-menu/bimplus-project-menu.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-project-menu/bimplus-project-menu.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-main-menu/bimplus-main-menu.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-main-menu/bimplus-main-menu.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-navbar/logo-state.enum.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-navbar/bimplus-navbar.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-navbar/bimplus-navbar.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-notify/bimplus-notify.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-notify/bimplus-notify.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-storage-info/bimplus-storage-info.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-storage-info/bimplus-storage-info.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-user-menu/bimplus-user-menu.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-user-menu/bimplus-user-menu.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-zoom/bimplus-zoom.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-zoom/bimplus-zoom.component.html","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-touch-menu/bimplus-touch-menu.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-touch-menu/bimplus-touch-menu.component.html","../../../../projects/@bimplus/navigation/src/lib/services/language-strings.service.ts","../../../../projects/@bimplus/navigation/src/public-api.ts","../../../../projects/@bimplus/navigation/src/bimplus-navigation.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigationService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-navigation',\r\n imports: [],\r\n template: `\r\n <p>\r\n navigation works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class NavigationComponent {\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, signal, WritableSignal, inject } from '@angular/core';\r\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\r\nimport { LocalizedStrings } from './../../types/types'\r\n\r\n@Component({\r\n selector: 'lib-bimplus-localized-widget',\r\n imports: [CommonModule, TranslateModule],\r\n providers: [TranslateService],\r\n template: `\r\n <p>\r\n localized widget works!\r\n </p>\r\n `,\r\n styles: [],\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusLocalizedWidgetComponent {\r\n translateService = inject(TranslateService);\r\n\r\n\r\n _selectedLanguage: WritableSignal<string> = signal('en');\r\n get selectedLanguage(): string {\r\n return this._selectedLanguage();\r\n }\r\n @Input() set selectedLanguage(value: string) {\r\n this._selectedLanguage.set(value);\r\n this.translateService.use(value);\r\n try {\r\n this.translateService.setTranslation(this.selectedLanguage, this._localizedStrings());\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n _localizedStrings: WritableSignal<LocalizedStrings> = signal({} as LocalizedStrings);\r\n get localizedStrings(): LocalizedStrings {\r\n return this._localizedStrings();\r\n }\r\n @Input() set localizedStrings(value: LocalizedStrings) {\r\n this._localizedStrings.set(value);\r\n this.translateService.use(this.selectedLanguage);\r\n try {\r\n this.translateService.setTranslation(this.selectedLanguage, value);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n}\r\n","// Define the type of the window.BimPlus object\r\nexport interface BimPlusObject {\r\n [key: string]: (dataDetail: { detail: unknown }) => void;\r\n}\r\nexport interface Source {\r\n[key: string]: { emit: (arg0: unknown) => void; };\r\n}\r\n\r\n\r\n/**--------------------------------------------------------------------------\r\n* fire event from component in two ways : \r\n- fire custom event from component in standard recommended way via. this.eventName.emit function\r\n\r\n- call window.BimPlus.eventName function directly on window object (eventName is name\r\n of the event we want to fire e.g. bimplusNavbarClicked so it will be window.BimPlus.bimplusNavbarClicked).\r\n Function must be defined in app. where we are using our components.\r\n This was implemented because MS Edge browser has problems with custom events and in some \r\n situations(e.g. after file download) it stops handling custom events.\r\n Disadvantage is that we can have only one event handler which is shared between the multiple components.\r\n--------------------------------------------------------------------------*/\r\nexport function fireEvent(source: unknown, eventName: string, data: unknown = null){\r\n if ( !eventName ) {\r\n console.error(\"ERROR: Missing event name in fireEvent function in Bimplus components!\");\r\n return;\r\n }\r\n // Check if eventName exists on window.BimPlus and if it's a function\r\n const bimPlus = ('BimPlus' in window) && typeof window.BimPlus === 'object' && (window.BimPlus as BimPlusObject);\r\n if (bimPlus && typeof bimPlus[eventName] === 'function') {\r\n bimPlus[eventName]({detail: data});\r\n }\r\n\r\n const _source = (source as Source);\r\n if (eventName in _source) {\r\n _source[eventName].emit(data);\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\r\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\r\nimport { BimplusLocalizedWidgetComponent } from '../../components/bimplus-localized-widget/bimplus-localized-widget.component';\r\nimport { fireEvent } from '../../utils/utils';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-contact',\r\n imports: [CommonModule, TranslateModule],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-contact.component.html',\r\n styleUrl: './bimplus-contact.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusContactComponent extends BimplusLocalizedWidgetComponent{\r\n constructor(){\r\n super();\r\n }\r\n \r\n @Output() bimplusContactClicked = new EventEmitter<string>();\r\n\r\n _contactClicked(){\r\n fireEvent(this, \"bimplusContactClicked\", \"contact\");\r\n }\r\n}\r\n","<a href=\"https://www.allplan.com/info/contact\" \r\n class=\"bimplus-contact-link\"\r\n rel=\"noopener\"\r\n target=\"_blank\"\r\n (click)=\"_contactClicked()\"\r\n [title]=\"'_BimplusContactTitle' | translate\"\r\n>\r\n <div class=\"bimplus-contact\"></div>\r\n</a>","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute } from '@angular/core';\r\nimport { fireEvent } from '../../utils/utils';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-language-menu',\r\n imports: [CommonModule],\r\n templateUrl: './bimplus-language-menu.component.html',\r\n styleUrl: './bimplus-language-menu.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusLanguageMenuComponent {\r\n\r\n _languagesList = [\r\n { symbol: \"cs\", text: \"Čeština\"},\r\n { symbol: \"de\", text: \"Deutsch\"},\r\n { symbol: \"en\", text: \"English (UK)\"},\r\n { symbol: \"us\", text: \"English (US)\"},\r\n { symbol: \"es\", text: \"Español\"},\r\n { symbol: \"fr\", text: \"Français\"},\r\n { symbol: \"it\", text: \"Italiano\"},\r\n { symbol: \"ru\", text: \"Русский\"},\r\n { symbol: \"ro\", text: \"Romana\"},\r\n { symbol: \"tr\", text: \"Türkçe\"}\r\n ];\r\n\r\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\r\n @Input() selectedLanguage : string = \"en\";\r\n @Input({ transform: booleanAttribute }) expandUp : boolean = false;\r\n _menuOpened : boolean = false;\r\n\r\n @Output() bimplusLanguageSelected = new EventEmitter<string>();\r\n\r\n _switchLanguage( language: string ){\r\n fireEvent(this, \"bimplusLanguageSelected\", language);\r\n }\r\n\r\n _toggleOpened(){\r\n this._menuOpened = !this._menuOpened;\r\n }\r\n}\r\n","<div \r\n class=\"bimcomp-overlay\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\" \r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n</div>\r\n<div data-test=\"language-menu-dropdown\"\r\n class=\"dropdown\" \r\n [ngClass]=\"_menuOpened ? 'open' : ''\" [ngClass]=\"isTouch ? 'is-touch' : ''\" \r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n <div class=\"dropdown-toggle\" >\r\n <div class='main-icon icon-languages'></div>\r\n <span class=\"caret\"></span>\r\n </div>\r\n\r\n <ul class= \"bimcomp-dropdown-menu\" [ngClass]=\"{'open':_menuOpened, 'expand-up':expandUp }\">\r\n <li [attr.data-test]=\"'langmenu_item_' + languageItem.text\" \r\n class=\"bimcomp-dropdown-menu-item\" \r\n [ngClass]=\"selectedLanguage === languageItem.symbol ? 'selected' : ''\" \r\n (click)=\"_switchLanguage(languageItem.symbol)\"\r\n (keypress)=\"_switchLanguage(languageItem.symbol)\"\r\n *ngFor=\"let languageItem of _languagesList\"\r\n >\r\n <span>{{languageItem.text}}</span>\r\n </li>\r\n </ul>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, booleanAttribute } from '@angular/core';\r\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\r\nimport { BimplusLocalizedWidgetComponent } from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\r\nimport { fireEvent } from '../../utils/utils';\r\nimport { MenuListType } from '../../types/types';\r\n\r\nexport interface BimplusProjectMenuComponentAttribute {\r\n [key: string]: unknown; // Add index signature allowing string indexing\r\n //Other properties and methods...\r\n}\r\n\r\n@Component({\r\n selector: 'lib-bimplus-project-menu',\r\n imports: [CommonModule, TranslateModule],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-project-menu.component.html',\r\n styleUrl: './bimplus-project-menu.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusProjectMenuComponent extends BimplusLocalizedWidgetComponent {\r\n constructor(){\r\n super()\r\n }\r\n\r\n @Input() projectName: string = \"\";\r\n @Input() projectImageUrl: string = \"\";\r\n @Input() projectExplorerUrl: string = \"\";\r\n @Input() projectActiveItem: string = \"\";\r\n @Input({ transform: booleanAttribute }) projectmembersDisabled: boolean = false;\r\n @Input({ transform: booleanAttribute }) modelsDisabled: boolean = false;\r\n @Input({ transform: booleanAttribute }) documentsDisabled: boolean = false;\r\n @Input({ transform: booleanAttribute }) projectsettingsDisabled: boolean = false;\r\n @Input({ transform: booleanAttribute }) processesDisabled: boolean = false;\r\n\r\n @Input({ transform: booleanAttribute }) projectmembersVisible: boolean = true;\r\n @Input({ transform: booleanAttribute }) modelsVisible: boolean = true;\r\n @Input({ transform: booleanAttribute }) documentsVisible: boolean = true;\r\n @Input({ transform: booleanAttribute }) projectsettingsVisible: boolean = true;\r\n @Input({ transform: booleanAttribute }) processesVisible: boolean = true;\r\n\r\n @Input({ transform: booleanAttribute }) isCollapsed: boolean = false;\r\n @Input({ transform: booleanAttribute }) isMiniMode: boolean = false;\r\n @Input({ transform: booleanAttribute }) isTouch: boolean = false;\r\n @Input({ transform: booleanAttribute }) hideMenuIcons: boolean = false;\r\n @Input({ transform: booleanAttribute }) showHorizontalMenuIcons: boolean = false;\r\n @Input() menuItemsOrder : string[] = [];\r\n\r\n get prjImgUrl() {\r\n return this.projectImageUrl ? this.projectImageUrl : \"./assets/@bimplus/navigation/assets/bimplus_Components_Project_Pic_Default.webp\";\r\n }\r\n get backgroundValue() {\r\n return `linear-gradient(rgba(245, 245, 245, 0.8),rgba(245, 245, 245, 0.5) 25%, 75%, rgba(245, 245, 245, 0.8)), url(${this.projectImageUrl ? this.projectImageUrl : './assets/@bimplus/navigation/assets/bimplus_Components_Project_Pic_Default.webp'})`;\r\n }\r\n\r\n get prjImageOverlayStyle() {\r\n return { 'background': `${this.backgroundValue}` };\r\n }\r\n\r\n get prjImageStyle() {\r\n return { 'background': `url(${this.prjImgUrl})` };\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * List of menu items\r\n * Note : action is used to identify action which should be executed\r\n * and also it serves as info topic id\r\n --------------------------------------------------------------------------*/\r\n _menuPrjList: MenuListType[] = [\r\n { action: \"projectmembers\", id: \"portalBimUsers\", type: \"\", class: \"bim-pm-icon-users\", textId: \"_Project_members_tooltip\", textIdDisabled: \"_Insufficient rights title\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\r\n { action: \"models\", id: \"portalBimModels\", type: \"\", class: \"bim-pm-icon-models\", textId: \"_Models_tooltip\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\r\n { action: \"documents\", id: \"portalBimDocuments\", type: \"\", class: \"bim-pm-icon-documents\", textId: \"_Documents_tooltip\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\r\n { action: \"projectsettings\", id: \"portalBimProjectSettings\", type: \"\", class: \"bim-pm-icon-project-settings\", textId: \"_Project_settings_tooltip\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\r\n { action: \"processes\", id: \"portalBimProcesses\", type: \"\", class: \"bim-pm-icon-processes\", textId: \"_Approvals\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" }\r\n ];\r\n\r\n get menuItems() : MenuListType[] {\r\n return this._menuPrjList.sort((a, b) => this.menuItemsOrder.indexOf(a.id) - this.menuItemsOrder.indexOf(b.id));\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * check if app is subscribed/visible\r\n --------------------------------------------------------------------------*/\r\n _isHidden(item: MenuListType): boolean {\r\n if (item) {\r\n const key = `${item.action ? item.action : item.id}Visible`;\r\n\r\n return !((this as unknown as BimplusProjectMenuComponentAttribute)[key]);\r\n }\r\n return false;\r\n }\r\n /**--------------------------------------------------------------------------\r\n * check if app is subscribed/visible\r\n --------------------------------------------------------------------------*/\r\n _isDisabled(item: MenuListType): boolean {\r\n\r\n if (item) {\r\n const key = `${item.action ? item.action : item.id}Disabled`;\r\n return !!(this as unknown as BimplusProjectMenuComponentAttribute)[key];\r\n }\r\n return false;\r\n }\r\n\r\n\r\n _projectMenuItemClicked(action: string, param: string) {\r\n console.log(action, param);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n* item clicked\r\n--------------------------------------------------------------------------*/\r\n _menuItemClicked(item: MenuListType, type: string, event: Event) {\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n console.log(item, type, event);\r\n\r\n\r\n if (type != \"info\") {\r\n if (this._isDisabled(item)) {\r\n return;\r\n }\r\n }\r\n const action = item.action;\r\n fireEvent(this, \"bimplusProjectMenuClicked\", { action, type });\r\n }\r\n\r\n _menuItemIgnoreAction(event: Event) {\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n _getPrjItemClassAttributes(item: MenuListType, isTouch: boolean) {\r\n const retval: string = `${this._isDisabled(item) ? 'disabled' : ''} ${isTouch ? '' : 'hover-show-info'}`;\r\n return retval;\r\n }\r\n\r\n _getPrjIconClassAttributes(item: MenuListType) {\r\n const retval: string = `${item.class} ${item.action === this.projectActiveItem ? 'active' : ''} ${this._isDisabled(item) ? 'disabled' : ''}`;\r\n return retval;\r\n }\r\n}\r\n","<ng-template #navigationPrjList>\r\n@for(item of menuItems; track item.id){\r\n @if (!_isHidden(item)){\r\n <!--* prjList *-->\r\n <div class=\"bim-pm-prj-item\"\r\n [ngClass] = \"_getPrjItemClassAttributes(item,isTouch)\"\r\n [title]=\"((_isDisabled(item) && item.textIdDisabled) ? item.textIdDisabled : item.textId) | translate\"\r\n (dblclick)=\"_menuItemIgnoreAction($event)\"\r\n (click)=\"_menuItemClicked(item, 'normal',$event)\"\r\n (keypress)=\"_menuItemClicked(item, 'normal',$event)\"\r\n >\r\n <div\r\n class=\"bim-pm-prj-icon\"\r\n [ngClass] = \"_getPrjIconClassAttributes(item)\"\r\n >\r\n </div>\r\n <div class=\"bim-pm-app-item-info bim-pm-icon bim-pm-icon-info\"\r\n (click)=\"_menuItemClicked(item, 'info',$event)\"\r\n (keypress)=\"_menuItemClicked(item, 'info',$event)\"\r\n >\r\n </div>\r\n </div>\r\n }\r\n}\r\n</ng-template>\r\n\r\n<ng-template #navigationPrjListThumbnail>\r\n@for(item of menuItems; track item.id){\r\n @if (!_isHidden(item) && (isCollapsed || item.action !== 'processes' )){\r\n <!--* navigationPrjList *-->\r\n <div class=\"bim-pm-prj-item\"\r\n [ngClass] = \"_getPrjItemClassAttributes(item,isTouch)\"\r\n [title]=\"((_isDisabled(item) && item.textIdDisabled) ? item.textIdDisabled : item.textId) | translate\"\r\n (dblclick)=\"_menuItemIgnoreAction($event)\"\r\n (click)=\"_menuItemClicked(item, 'normal',$event)\"\r\n (keypress)=\"_menuItemClicked(item, 'normal',$event)\"\r\n >\r\n <div\r\n class=\"bim-pm-prj-icon\"\r\n [ngClass] = \"_getPrjIconClassAttributes(item)\"\r\n >\r\n </div>\r\n <div class=\"bim-pm-app-item-info bim-pm-icon bim-pm-icon-info\"\r\n (click)=\"_menuItemClicked(item, 'info',$event)\"\r\n (keypress)=\"_menuItemClicked(item, 'info',$event)\"\r\n >\r\n </div>\r\n </div>\r\n }\r\n}\r\n</ng-template>\r\n\r\n<div class=\"bim-pm-prj-container\"\r\n [ngClass]=\"{ collapsed: isCollapsed, 'mini-mode': isMiniMode, 'is-touch': isTouch }\"\r\n >\r\n @if (isMiniMode && !isCollapsed) {\r\n <div class=\"bim-pm-prj-details-mini\">\r\n <div class=\"bim-pm-prj-image-bkg-mini\"\r\n [ngStyle]=\"prjImageOverlayStyle\">\r\n <div class=\"bim-pm-prj-image-thumbnail\" [ngStyle]=\"prjImageStyle\"></div>\r\n </div>\r\n <div class=\"bim-pm-prj-name-mini\">\r\n {{projectName}}\r\n </div>\r\n </div>\r\n <div class=\"bim-pm-prj-items-horizontal\"\r\n [ngClass]=\"showHorizontalMenuIcons ? '' : 'hidden'\">\r\n <div class=\"bim-pm-prj-items-list\">\r\n @if (showHorizontalMenuIcons) {\r\n <ng-container *ngTemplateOutlet=\"navigationPrjList\">\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @else {\r\n <a href={{projectExplorerUrl}} class=\"bim-pm-prj-details\"\r\n [ngStyle]=\"prjImageOverlayStyle\"\r\n (dblclick)=\"_projectMenuItemClicked('prjimagedblclick','normal')\"\r\n (click)=\"_projectMenuItemClicked('prjimageclick','normal')\"\r\n [title]=\"'_ModelThumbnailTooltip' | translate\">\r\n\r\n <div class=\"bim-pm-prj-image\" [ngStyle]=\"prjImageStyle\">\r\n <div class=\"bim-pm-prj-items-overlay\" [ngClass] = \"hideMenuIcons || showHorizontalMenuIcons ? 'hidden' : ''\">\r\n </div>\r\n <div\r\n class=\"bim-pm-prj-items-list\"\r\n [ngClass] = \"hideMenuIcons || showHorizontalMenuIcons ? 'hidden' : ''\"\r\n >\r\n @if (!hideMenuIcons && !showHorizontalMenuIcons){\r\n <ng-container *ngTemplateOutlet=\"navigationPrjListThumbnail\">\r\n </ng-container>\r\n }\r\n </div>\r\n <div class=\"bim-pm-prj-name\">\r\n {{projectName}}\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"bim-pm-prj-items-horizontal\"\r\n [ngClass] = \"showHorizontalMenuIcons ? '' : 'hidden'\">\r\n <div class=\"bim-pm-prj-items-list\">\r\n @if (showHorizontalMenuIcons) {\r\n <ng-container *ngTemplateOutlet=\"navigationPrjList\">\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges } from '@angular/core';\r\nimport {TranslateService, TranslateModule} from '@ngx-translate/core';\r\nimport {BimplusProjectMenuComponent} from './../bimplus-project-menu/bimplus-project-menu.component';\r\nimport {BimplusLocalizedWidgetComponent} from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\r\nimport { fireEvent } from '../../utils/utils';\r\nimport {MenuListType} from '../../types/types';\r\n\r\nconst MenuListTypeId = {\r\n PORTAL_TEAM_MANAGEMENT_BTN: 'portalTeamManagementBtn',\r\n PORTAL_PROPERTY_MANAGER_BTN: 'portalPropertyManagerBtn',\r\n PORTAL_BIM_USERS: 'portalBimUsers',\r\n PORTAL_BIM_MODELS: 'portalBimModels',\r\n PORTAL_BIM_DOCUMENTS: 'portalBimDocuments',\r\n PORTAL_BIM_PROJECT_SETTINGS: 'portalBimProjectSettings',\r\n PORTAL_BIM_PROCESSES: 'portalBimProcesses',\r\n DIVIDER_PROJECT_MANAGEMENT: 'dividerprojectmanagement',\r\n PORTAL_BIM_VIEWER_BTN: 'portalBimViewerBtn',\r\n PORTAL_CLOUD_VIEWER_BTN: 'portalCloudViewerBtn',\r\n PORTAL_CONNEXIS_BTN: 'portalConnexisBtn',\r\n PORTAL_BIM_AUTOCONVERTER_BTN: 'portalBimAutoconverterBtn',\r\n DIVIDERAPPS: 'dividerapps',\r\n PORTAL_ADD_INS_BTN: 'portalAddInsBtn',\r\n PORTAL_SHOP_BTN: 'portalShopBtn',\r\n PORTAL_GET_YOUR_TEAM_BTN: 'portalGetYourTeamBtn',\r\n PORTAL_TRY_BIMPLUS_PRO_BTN: 'portalTryBimplusProBtn',\r\n} as const;\r\n\r\nexport interface BimplusMainMenuComponentAttribute {\r\n [key: string]: unknown; // Add index signature allowing string indexing\r\n //Other properties and methods...\r\n}\r\n\r\n@Component({\r\n selector: 'lib-bimplus-main-menu',\r\n imports: [CommonModule, TranslateModule, BimplusProjectMenuComponent],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-main-menu.component.html',\r\n styleUrl: './bimplus-main-menu.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\n\r\nexport class BimplusMainMenuComponent extends BimplusLocalizedWidgetComponent implements OnChanges {\r\n constructor(){\r\n super();\r\n }\r\n\r\n @Input({ transform: booleanAttribute }) isEmbedded : boolean = false;\r\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\r\n @Input({ transform: booleanAttribute }) isIpadApp : boolean = false;\r\n @Input({ transform: booleanAttribute }) isDev : boolean = false;\r\n @Input({ transform: booleanAttribute }) isStage : boolean = false;\r\n @Input({ transform: booleanAttribute }) hideProjectMenuIcons : boolean = false;\r\n @Input({ transform: booleanAttribute }) showHorizontalMenuIcons : boolean = false;\r\n @Input() projectName : string = \"\";\r\n @Input() projectImageUrl : string = \"\";\r\n @Input() projectExplorerUrl : string = \"\";\r\n @Input() projectActiveItem : string = \"\";\r\n @Input({ transform: booleanAttribute }) projectmembersDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) modelsDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) documentsDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) projectsettingsDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) processesDisabled : boolean = false;\r\n @Input() footerActiveItem : string = \"\";\r\n @Input() menuActiveItem : string = \"\";\r\n @Input({ transform: booleanAttribute }) isCollapsed : boolean = false;\r\n @Input({ transform: booleanAttribute }) showOverlay : boolean = false;\r\n @Input({ transform: booleanAttribute }) teammembersSubscribed : boolean = false;\r\n @Input({ transform: booleanAttribute }) propertymanagerSubscribed : boolean = false;\r\n @Input({ transform: booleanAttribute }) autoconverterSubscribed : boolean = false;\r\n @Input({ transform: booleanAttribute }) connexisSubscribed : boolean = false;\r\n @Input({ transform: booleanAttribute }) openProjectDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) bimexplorerDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) autoconverterDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) connexisDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) teammembersDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) propertymanagerDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) shopDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) addinsDisabled : boolean = false;\r\n @Input({ transform: booleanAttribute }) openProjectVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) bimplusProjectMenuVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) projectmembersVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) modelsVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) documentsVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) projectsettingsVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) processesVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) bimexplorerVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) autoconverterVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) connexisVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) teammembersVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) propertymanagerVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) shopVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) addinsVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) dividerprojectmanagementVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) dividerappsVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) getYourTeamVisible : boolean = false;\r\n @Input({ transform: booleanAttribute }) tryBimplusProVisible : boolean = false;\r\n @Input() appsWithInfo : string[] = [];\r\n @Input() appsOrder : string[] = [];\r\n @Input() menuItemsOrder : string[] = [];\r\n\r\n @Output() bimplusMainMenuClicked = new EventEmitter<{ action: string, type: string }>();\r\n @Output() bimplusMainMenuOverlayClicked = new EventEmitter<void>();\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['localizedStrings']) {\r\n this._localizedStrings.set(changes['localizedStrings'].currentValue);\r\n }\r\n }\r\n\r\n get apps(): MenuListType[] {\r\n let appsList = this.appsList.slice().sort((a, b) => this.appsOrder.indexOf(a.id) - this.appsOrder.indexOf(b.id));\r\n\r\n // if not connexisVisible remove PORTAL_CONNEXIS_BTN.\r\n if (!this.connexisVisible) {\r\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_CONNEXIS_BTN);\r\n }\r\n\r\n // if not autoconverterVisible remove PORTAL_AUTOCONVERTER_BTN.\r\n if (!this.autoconverterVisible) {\r\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_BIM_AUTOCONVERTER_BTN);\r\n }\r\n\r\n // if teammembersDisabled remove PORTAL_TEAM_MANAGEMENT_BTN.\r\n if (this.teammembersDisabled) {\r\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_TEAM_MANAGEMENT_BTN);\r\n }\r\n\r\n // if propertymanagerDisabled remove PORTAL_PROPERTY_MANAGER_BTN.\r\n if (this.propertymanagerDisabled) {\r\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_PROPERTY_MANAGER_BTN);\r\n }\r\n\r\n // if isTouch remove property manager btn. & approvals btn.\r\n if(this.isTouch) {\r\n appsList = appsList.filter(({ id }) => \r\n id !== MenuListTypeId.PORTAL_PROPERTY_MANAGER_BTN && \r\n id !== MenuListTypeId.PORTAL_BIM_PROCESSES\r\n );\r\n }\r\n\r\n return appsList;\r\n }\r\n\r\n get footerList(): MenuListType[] {\r\n let footerList = this._menuFooterList.filter(item => this._isSubscribed(item) && !this._isHidden(item));\r\n\r\n // in case that \"Get Your Team\" is not visible and teammembers are disabled then remove divider first, or is not isTouch mode\r\n if (this.teammembersDisabled || !this.isTouch) {\r\n footerList = footerList.filter(({ id }) => id !== MenuListTypeId.DIVIDERAPPS);\r\n }\r\n\r\n // if team is assigned then remove \"Get Your Team\" button\r\n if (!this.getYourTeamVisible) {\r\n return footerList.filter(({ id }) => id !== MenuListTypeId.PORTAL_GET_YOUR_TEAM_BTN);\r\n }\r\n\r\n // remove divider if there is no \"Get Your Team\" button\r\n return footerList.filter(({ id }) => id !== MenuListTypeId.DIVIDERAPPS);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * check if app is subscribed\r\n --------------------------------------------------------------------------*/\r\n _isSubscribed(item:MenuListType):boolean {\r\n\r\n if (item.checkSubscription) {\r\n const key = `${item.action}Subscribed`;\r\n return !!((this as unknown as BimplusMainMenuComponentAttribute )[key]);\r\n }\r\n return true;\r\n }\r\n /**--------------------------------------------------------------------------\r\n * check if app is clickable\r\n --------------------------------------------------------------------------*/\r\n _isClickable(item:MenuListType):boolean {\r\n\r\n if (item.clickPolicy === \"noProjectNoSubscription\") {\r\n return this.projectName !== \"\";\r\n }\r\n return true;\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * check if app is subscribed/visible\r\n --------------------------------------------------------------------------*/\r\n _isHidden(item:MenuListType):boolean {\r\n\r\n if (item) {\r\n const key = `${item.action ? item.action : item.id}Visible`;\r\n return !((this as unknown as BimplusMainMenuComponentAttribute )[key]);\r\n }\r\n return false;\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * check if app is disabled\r\n --------------------------------------------------------------------------*/\r\n _isDisabled(item:MenuListType) {\r\n const key = `${item.action}Disabled`;\r\n return !!((this as unknown as BimplusMainMenuComponentAttribute )[key]);\r\n }\r\n\r\n _getContextData(item: MenuListType, active: boolean, disabled: boolean, clickable: boolean, selected: boolean) {\r\n return {\r\n item: item,\r\n active: active,\r\n disabled: disabled,\r\n clickable: clickable,\r\n selected: selected,\r\n showInfoIcon: this.appsWithInfo.includes(item.id)\r\n };\r\n }\r\n\r\n _openPrjBtn:MenuListType = { action:\"openProject\", id:\"portalSelectProjectBtn\",type:\"\", class: \"bim-mm-icon-folder\", textId: \"_Portal_Menu_Open_Project\", textIdDisabled: \"_Portal_Menu_Open_Project\",disabledTitle:'',checkSubscription: true, devOrStageOnly : false,clickPolicy: \"\"};\r\n\r\n contextData = {item:\"haha\",active:true,disabled:true,clickable:true,selected:true};\r\n\r\n\r\n appsList: MenuListType[] = [\r\n { action:\"projectmembers\", id: MenuListTypeId.PORTAL_BIM_USERS, type:\"\", class: \"bim-mm-icon-users\", textId: \"_projectStatisticsMembers\", textIdDisabled: \"_projectStatisticsMembers\", disabledTitle:\"_Insufficient rights title\",checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n { action:\"models\", id: MenuListTypeId.PORTAL_BIM_MODELS, type:\"\",class: \"bim-mm-icon-models\", textId: \"_Divisions\", textIdDisabled: \"_Divisions\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n { action:\"documents\", id: MenuListTypeId.PORTAL_BIM_DOCUMENTS, type:\"\",class: \"bim-mm-icon-documents\", textId: \"_Files\", textIdDisabled: \"_Files\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n { action:\"projectsettings\", id: MenuListTypeId.PORTAL_BIM_PROJECT_SETTINGS, type:\"\",class: \"bim-mm-icon-project-settings\", textId: \"_Settings\", textIdDisabled: \"_Settings\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n { action:\"processes\", id: MenuListTypeId.PORTAL_BIM_PROCESSES, type:\"\",class: \"bim-mm-icon-processes\", textId: \"_Approvals\", textIdDisabled: \"_Approvals\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n { action:\"\",id: MenuListTypeId.DIVIDER_PROJECT_MANAGEMENT, type:\"divider\", class: \"bim-mm-app-item-divider\", textId: \"\",textIdDisabled:\"\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n\r\n { action:\"bimexplorer\", id: MenuListTypeId.PORTAL_BIM_VIEWER_BTN, type:\"\",class: \"bim-mm-icon-bim-explorer\", textId: \"BIM Explorer\", textIdDisabled: \"BIM Explorer\", disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"noProjectNoSubscription\"},\r\n { action:\"cloudviewer\", id: MenuListTypeId.PORTAL_CLOUD_VIEWER_BTN, type:\"\",class: \"bim-mm-icon-cloud-viewer\", textId: \"Model Viewer\", textIdDisabled: \"Model Viewer\", disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"noProjectNoSubscription\"},\r\n { action:\"connexis\", id: MenuListTypeId.PORTAL_CONNEXIS_BTN, type:\"\",class: \"bim-mm-icon-connexis\", textId: \"Connexis\", textIdDisabled: \"Connexis\", disabledTitle:'',checkSubscription: false, devOrStageOnly : false, clickPolicy: \"noProjectNoSubscription\"},\r\n { action:\"autoconverter\", id: MenuListTypeId.PORTAL_BIM_AUTOCONVERTER_BTN, type:\"\",class: \"bim-mm-icon-autoconverter\", textId: \"Autoconverter\", textIdDisabled: \"Autoconverter\", disabledTitle:'',checkSubscription: true, devOrStageOnly : false, clickPolicy: \"noProjectNoSubscription\"},\r\n\r\n { action:\"\",id: MenuListTypeId.DIVIDERAPPS, type:\"divider\", class: \"bim-mm-app-item-divider\", textId: \"\",textIdDisabled:\"\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\r\n\r\n { action:\"teammembers\", id: MenuListTypeId.PORTAL_TEAM_MANAGEMENT_BTN, type:\"\", class: \"bim-mm-icon-team-members\", textId: \"_Portal_Menu_Team_Members\", textIdDisabled: \"_Portal_Menu_Team_Members\", disabledTitle:'',checkSubscription: true, devOrStageOnly : false,clickPolicy: \"\"},\r\n { action:\"propertymanager\", id: MenuListTypeId.PORTAL_PROPERTY_MANAGER_BTN, type:\"\",class: \"bim-mm-icon-property-manager\", textId: \"_Portal_Menu_Properties\", textIdDisabled: \"_Portal_Menu_Properties\", disabledTitle:'',checkSubscription: true, devOrStageOnly : false,clickPolicy: \"\"},\r\n ];\r\n\r\n _menuFooterList: MenuListType[] = [\r\n { action:\"\",id: MenuListTypeId.DIVIDERAPPS, type:\"divider\", class: \"bim-mm-app-item-divider\",checkSubscription: false,devOrStageOnly : false } as MenuListType,\r\n { action:\"addins\", id: MenuListTypeId.PORTAL_ADD_INS_BTN, type:\"\", class: \"bim-mm-icon-add-ins\", textId: \"_AddIns\", textIdDisabled: \"_AddIns\", disabledTitle:'', checkSubscription: false, devOrStageOnly : false, clickPolicy: \"\"},\r\n { \r\n action:\"getYourTeam\", \r\n id: MenuListTypeId.PORTAL_GET_YOUR_TEAM_BTN,\r\n class: \"bim-mm-icon-get-your-team\", \r\n textId: \"_Get_Your_Team\", \r\n textIdDisabled: \"_Get_Your_Team\",\r\n } as MenuListType,\r\n { \r\n action:\"tryBimplusPro\", \r\n id: MenuListTypeId.PORTAL_TRY_BIMPLUS_PRO_BTN,\r\n class: \"bim-mm-icon-try-bimplus-pro\", \r\n textId: \"_Try_Bimplus_Pro\", \r\n textIdDisabled: \"_Try_Bimplus_Pro\",\r\n } as MenuListType, \r\n { action:\"shop\", id: MenuListTypeId.PORTAL_SHOP_BTN, type:\"\",class: \"bim-mm-icon-shop\", textId: \"_Get_More\", textIdDisabled: \"_Get_More\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"}\r\n ];\r\n\r\n _overlayClicked(){\r\n fireEvent(this, \"bimplusMainMenuOverlayClicked\");\r\n }\r\n\r\n _mainMenuItemClicked(item: MenuListType,type:string,event: Event | undefined ){\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n\r\n if(type != \"info\") {\r\n if (this._isDisabled(item)){\r\n return;\r\n }\r\n }\r\n\r\n const action = item.action;\r\n fireEvent(this,\"bimplusMainMenuClicked\", {action,type:type } );\r\n }\r\n}\r\n","<ng-template #appNavigationItemContent let-contextData>\r\n @if (contextData.item.type === 'divider') {\r\n <div class=\"bim-mm-app-item\" [class]=\"contextData.item.class\" [id]=\"contextData.item.id\"></div>\r\n } @else {\r\n <div class=\"bim-mm-app-item\" [id]=\"contextData.item.id\"\r\n [ngClass]=\"isTouch?'':'hover-show-info '+(contextData.active?'active ':' ') +(contextData.disabled?'disabled ':' ')+(contextData.clickable?' ':'not-clickable ')+(contextData.selected?'selected ':' ')\"\r\n [title] =\"((contextData.disabled) ? (contextData.item.disabledTitle | translate) : '' )\"\r\n >\r\n <div class=\"bim-mm-app-item-details\"\r\n [ngClass] = \" contextData.clickable ? '' : 'not-clickable' \"\r\n (click)=\"_mainMenuItemClicked(contextData.item,'normal',$event)\"\r\n (keypress)=\"_mainMenuItemClicked(contextData.item,'normal',$event)\">\r\n <div class=\"bim-mm-icon\"\r\n [ngClass]=\"contextData.item.class + (contextData.active?' active':'') + (contextData.disabled?' disabled ':'')\">\r\n </div>\r\n <span>{{(contextData.isDisabled && (contextData.item.textIdDisabled !==\"\") ? contextData.item.textIdDisabled : contextData.item.textId) | translate}}</span>\r\n </div>\r\n @if(contextData.showInfoIcon){\r\n <div class=\"bim-mm-app-item-info bim-mm-icon bim-mm-icon-info\"\r\n (click)=\"_mainMenuItemClicked(contextData.item, 'info',$event)\"\r\n (keypress)=\"_mainMenuItemClicked(contextData.item, 'info',$event)\">\r\n </div>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n\r\n\r\n\r\n<div \r\n class=\"bim-mm-wrapper\" \r\n [ngClass]=\"showOverlay ? 'bim-mm-overlay' : ''\" \r\n (click)=\"_overlayClicked()\"\r\n (keypress)=\"_overlayClicked()\"\r\n >\r\n <div class= \"bim-mm-container\">\r\n @if(!_isHidden(_openPrjBtn)){\r\n <ng-container\r\n *ngTemplateOutlet=\"appNavigationItemContent; context: { $implicit: _getContextData(_openPrjBtn,projectActiveItem === 'projectlist',_isDisabled(_openPrjBtn),true,projectActiveItem === 'projectlist') }\"\r\n ></ng-container>\r\n }\r\n\r\n @if(bimplusProjectMenuVisible){\r\n <lib-bimplus-project-menu\r\n projectName = {{projectName}}\r\n projectImageUrl = {{projectImageUrl}}\r\n projectExplorerUrl = {{projectExplorerUrl}}\r\n projectActiveItem = {{projectActiveItem}}\r\n projectmembersDisabled = {{projectmembersDisabled}}\r\n modelsDisabled = {{modelsDisabled}}\r\n documentsDisabled = {{documentsDisabled}}\r\n projectsettingsDisabled = {{projectsettingsDisabled}}\r\n processesDisabled = {{processesDisabled}}\r\n projectmembersVisible = {{projectmembersVisible}}\r\n modelsVisible = {{modelsVisible}}\r\n documentsVisible = {{documentsVisible}}\r\n projectsettingsVisible = {{projectsettingsVisible}}\r\n processesVisible = {{processesVisible}}\r\n isCollapsed = {{isCollapsed}}\r\n isMiniMode = {{isTouch}}\r\n isTouch = {{isTouch}}\r\n hideMenuIcons = {{hideProjectMenuIcons}}\r\n showHorizontalMenuIcons = {{showHorizontalMenuIcons}}\r\n [menuItemsOrder]=\"menuItemsOrder\"\r\n ></lib-bimplus-project-menu>\r\n }\r\n <div [ngClass]=\"apps.length || footerList.length ? 'bim-mm-apps-container' : ''\">\r\n <div class=\"bim-mm-apps-list\">\r\n <div *ngFor=\"let appItem of apps\">\r\n <ng-container\r\n *ngTemplateOutlet=\"appNavigationItemContent; context: { $implicit: _getContextData(appItem,!_isSubscribed(appItem),_isDisabled(appItem),_isClickable(appItem),menuActiveItem === appItem.action)}\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"bim-mm-footer-container\">\r\n <div *ngFor=\"let footerItem of footerList\">\r\n <ng-container\r\n *ngTemplateOutlet=\"appNavigationItemContent; context: { $implicit: _getContextData(footerItem,footerActiveItem === footerItem.action,_isDisabled(footerItem),true,false)}\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","export enum LogoState {\r\n BimplusViewer = 'bimplusViewer', // Bimplus logo\r\n ModelViewerBlack = 'modelViewerBlack', // Model viewer black logo\r\n ModelViewer = 'modelViewer', // Cloud viewer logo\r\n ConnexisViewer = 'connexisViewer', // Connexis viewer logo\r\n ConnexisViewerBlack = 'connexisViewerBlack' // Connexis viewer logo (black)\r\n}\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, computed, input } from '@angular/core';\r\nimport { fireEvent } from '../../utils/utils';\r\nimport { LogoState } from './logo-state.enum';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-navbar',\r\n imports: [CommonModule, TranslateModule],\r\n templateUrl: './bimplus-navbar.component.html',\r\n styleUrl: './bimplus-navbar.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusNavbarComponent {\r\n @Input() projectInfo : string = \"\";\r\n @Input() teamInfo : string = \"\";\r\n @Input({ transform: booleanAttribute }) isDev : boolean = false;\r\n @Input({ transform: booleanAttribute }) isStage : boolean = false;\r\n @Input() teamInfoOffset : string = \"\";\r\n @Input({ transform: booleanAttribute }) isNavbarMenuVisible : boolean = false;\r\n @Input({ transform: booleanAttribute }) isNavbarInfoVisible : boolean = false;\r\n logoState = input<LogoState>(LogoState.BimplusViewer);\r\n isModelViewerActive = input(false , { transform: booleanAttribute });\r\n // @Input({ transform: booleanAttribute }) isConnexisViewerActive : boolean = false;\r\n @Input({ transform: booleanAttribute }) isNavbarMessageVisible : boolean = false;\r\n @Input({ transform: booleanAttribute }) isNavbarMenuActive : boolean = false;\r\n @Input({ transform: booleanAttribute }) isNavbarMenuEnabled : boolean = true;\r\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\r\n @Input({ transform: booleanAttribute }) isDashboardTooltipEnabled: boolean = true;\r\n @Input() selectedLanguage : string = \"en\";\r\n @Output() bimplusNavbarClicked = new EventEmitter<string>();\r\n\r\n // Make the enum available in the template\r\n public LogoState = LogoState;\r\n\r\n protected readonly logoStateSignal = computed<LogoState>(() => {\r\n if (this.isModelViewerActive()) {\r\n return LogoState.ModelViewerBlack;\r\n }\r\n\r\n return this.logoState();\r\n });\r\n\r\n _menuClicked() {\r\n if ( this.isNavbarMenuEnabled ) {\r\n fireEvent(this, \"bimplusNavbarClicked\", \"menu\");\r\n }\r\n }\r\n\r\n _logoClicked() {\r\n if (this.logoStateSignal() === LogoState.BimplusViewer) {\r\n // Fire only an event for BimplusViewer\r\n fireEvent(this, \"bimplusNavbarClicked\", \"logo\");\r\n }\r\n }\r\n\r\n _projectInfoClicked() {\r\n if ( this.isDev ) {\r\n fireEvent(this, \"bimplusNavbarClicked\", \"project\");\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"bimplus-navbar\"\r\n [ngClass]=\"isTouch ? 'is-touch' : ''\"\r\n>\r\n <div class=\"bimplus-navbar-logo-container\">\r\n <div\r\n class=\"bimplus-logo\"\r\n [ngClass]=\"{\r\n 'model-viewer': logoStateSignal() === LogoState.ModelViewer,\r\n 'model-viewer-black': logoStateSignal() === LogoState.ModelViewerBlack,\r\n 'connexis-viewer': logoStateSignal() === LogoState.ConnexisViewer,\r\n 'connexis-viewer-black': logoStateSignal() === LogoState.ConnexisViewerBlack,\r\n 'burger-menu-not-visible': !isNavbarMenuVisible\r\n }\"\r\n (click)=\"_logoClicked()\"\r\n (keypress)=\"_logoClicked()\"\r\n [title]=\"(isDashboardTooltipEnabled ? '_dashboard_tooltip' : '') | translate\"\r\n ></div>\r\n\r\n <div\r\n class=\"bimplus-navbar-menu icon\"\r\n [ngClass]=\"{'active':isNavbarMenuActive, 'hidden': !isNavbarMenuVisible, 'disabled': !isNavbarMenuEnabled}\"\r\n (click)=\"_menuClicked()\"\r\n (keypress)=\"_menuClicked()\"\r\n ></div>\r\n </div>\r\n\r\n <div class=\"bimplus-navbar-container\">\r\n <div\r\n class=\"bimplus-navbar-info\"\r\n [ngClass]=\"{'hidden': !isNavbarInfoVisible}\"\r\n [style.margin-left]=\"teamInfoOffset\"\r\n >\r\n <span class=\"team\">{{teamInfo}}</span>\r\n <span *ngIf=\"projectInfo && !isTouch\"> - </span>\r\n <span\r\n class=\"project\"\r\n [ngClass]=\"isDev ? 'clickable' : ''\"\r\n (click)=\"_projectInfoClicked()\"\r\n (keypress)=\"_projectInfoClicked()\"\r\n >\r\n {{projectInfo}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"bimplus-navbar-slot\">\r\n <slot></slot>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n","import { Component, ViewEncapsulation, ElementRef, AfterViewInit, AfterViewChecked, inject } from '@angular/core';\r\n\r\nimport SimpleBar from 'simplebar';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-scrollable-container',\r\n imports: [],\r\n templateUrl: './bimplus-scrollable-container.component.html',\r\n styleUrl: './bimplus-scrollable-container.component.less',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class BimplusScrollableContainerComponent implements AfterViewInit, AfterViewChecked {\r\n private readonly elementRef = inject(ElementRef);\r\n\r\n _simpleBar!: SimpleBar;\r\n _element: HTMLElement;\r\n protected _scrollableContainerClassName: string = '.scrollable-container';\r\n\r\n constructor(){\r\n this._element = this.elementRef.nativeElement;\r\n }\r\n\r\n private _initializationSimpleScrollBar(): void {\r\n // init simple bar scrollbar\r\n const scrollableContainer: HTMLElement | null = this._element?.querySelector(this._scrollableContainerClassName);\r\n if (!scrollableContainer) {\r\n console.error('No scrollable container found in the element.');\r\n return;\r\n }\r\n this._simpleBar = new SimpleBar(scrollableContainer);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._initializationSimpleScrollBar();\r\n }\r\n\r\n private _recalculateScrollbar(): void {\r\n if(!this._element) {\r\n return;\r\n }\r\n const _element = this._element;\r\n const barElem = _element?.querySelector(this._scrollableContainerClassName);\r\n if (!barElem){\r\n return;\r\n }\r\n\r\n if (!this._simpleBar) {\r\n console.error('No scrollable container found in the element.');\r\n return;\r\n }\r\n\r\n this._simpleBar.recalculate();\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this._recalculateScrollbar();\r\n }\r\n}\r\n","<div class=\"scrollable-container\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges, OnInit, HostBinding } from '@angular/core';\r\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\r\nimport { fireEvent } from '../../utils/utils';\r\nimport { BimplusLocalizedWidgetComponent } from './../bimplus-localized-widget/bimplus-localized-widget.component';\r\nimport { BimplusScrollableContainerComponent } from './../bimplus-scrollable-container/bimplus-scrollable-container.component';\r\n\r\nconst BIMPLUS_NOTIFY_MESSAGES = \"bimplus-notify-messages\";\r\ninterface MessageModel {\r\n 'id': string | undefined,\r\n 'type': string | undefined,\r\n 'title': string | undefined,\r\n 'text': string | undefined,\r\n 'link': string | undefined,\r\n 'linkText': string | string[] | undefined,\r\n 'links': string[] | undefined,\r\n 'actionId': number | undefined,\r\n 'capitalizedTitle': string | boolean | undefined\r\n}\r\n@Component({\r\n selector: 'lib-bimplus-notify',\r\n imports: [\r\n CommonModule,\r\n TranslateModule,\r\n BimplusScrollableContainerComponent\r\n ],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-notify.component.html',\r\n styleUrl: './bimplus-notify.component.less',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class BimplusNotifyComponent extends BimplusLocalizedWidgetComponent implements OnChanges, OnInit{\r\n constructor(){\r\n super();\r\n }\r\n\r\n // Expose Array constructor as a property\r\n Array = Array;\r\n \r\n @HostBinding('class.new-messages')\r\n get newMessages() {\r\n return this._alertActive;\r\n }\r\n\r\n @HostBinding('class.bim-notify')\r\n get bimNotify() {\r\n return true; // Or you can use a condition here if needed\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * List of messages\r\n --------------------------------------------------------------------------*/\r\n _messagesList: MessageModel[] = [];\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input() messagePreviewTime : number = 3000; // in ms\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input({ transform: booleanAttribute }) showMessagePreview : boolean = true;\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input() previewMessagesLimit : number = 3;\r\n\r\n /**--------------------------------------------------------------------------\r\n * offset of preview messages from main icon\r\n --------------------------------------------------------------------------*/\r\n @Input() previewMessagesOffsetY : string = '2.7em';\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input() messages : string = '';\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['messages']) {\r\n const newValue = changes['messages'].currentValue;\r\n this.updateMessages(newValue);\r\n }\r\n }\r\n\r\n updateMessages(newValue: string /*, oldValue: string*/) {\r\n const isOk = newValue && typeof newValue === 'string';\r\n if (!isOk) {\r\n this._messagesList = [];\r\n this._previewMessagesList = [];\r\n this._alertActive = false;\r\n return;\r\n }\r\n\r\n const msgData = JSON.parse(newValue);\r\n this._messagesList = msgData.messages;\r\n\r\n // filter new messages into the list for preview\r\n let newMessagesList = this._messagesList.filter( (msg) => this._oldMessagesList.findIndex( (oldMsg) => oldMsg.id === msg.id ) < 0 );\r\n newMessagesList = newMessagesList.filter( (item) => this._messageNotReadYet(item)); // filtering out allready read messages (stored in localstorage)\r\n\r\n // setup preview for new messages\r\n newMessagesList.slice().reverse().forEach( (newMsg) => {\r\n if ( this._previewMessagesList.findIndex( (item) => newMsg.id === item.id ) < 0){\r\n this._previewMessagesList.unshift(newMsg);\r\n\r\n if( this.messagePreviewTime > 0 ) {\r\n setTimeout(() => {\r\n this._closePreviewMessage(newMsg.id, false);\r\n }, this.messagePreviewTime);\r\n }\r\n }\r\n })\r\n\r\n // limit preview messages count\r\n this._previewMessagesList.length = this._previewMessagesList.length > this.previewMessagesLimit ? this.previewMessagesLimit : this._previewMessagesList.length;\r\n\r\n // set old state and alert\r\n this._oldMessagesList = this._messagesList;\r\n this._alertActive = this._messagesList.length != 0;\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * States\r\n --------------------------------------------------------------------------*/\r\n _menuOpened: boolean = false;\r\n _alertActive: boolean = false;\r\n _oldMessagesList: MessageModel[] = [];\r\n // list of messages for preview\r\n _previewMessagesList: MessageModel[] = [];\r\n\r\n\r\n /**--------------------------------------------------------------------------\r\n * Delete item event\r\n --------------------------------------------------------------------------*/\r\n @Output() bimplusNotifyDeleteMessage = new EventEmitter<string>();\r\n\r\n /**--------------------------------------------------------------------------\r\n * Delete all item event\r\n --------------------------------------------------------------------------*/\r\n @Output() bimplusNotifyDeleteAllMessages = new EventEmitter<string>();\r\n\r\n /**--------------------------------------------------------------------------\r\n * Message action event\r\n --------------------------------------------------------------------------*/\r\n @Output() bimplusNotifyMessageAction = new EventEmitter<string>();\r\n\r\n /**--------------------------------------------------------------------------\r\n * initial component load\r\n --------------------------------------------------------------------------*/\r\n ngOnInit(): void {\r\n this.updateMessages(this.messages);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * close single message\r\n --------------------------------------------------------------------------*/\r\n _closeMessage( item: MessageModel, preview: boolean, event: Event | undefined ){\r\n if (preview) {\r\n return this._closePreviewMessage(item.id);\r\n }\r\n\r\n if (event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n\r\n fireEvent(this, \"bimplusNotifyDeleteMessage\", JSON.stringify(item));\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * close preview message\r\n --------------------------------------------------------------------------*/\r\n _closePreviewMessage( msgId: string | undefined, closedByUser = true ){\r\n if (!msgId) {\r\n return;\r\n }\r\n\r\n this._previewMessagesList = this._previewMessagesList.filter( (msg) => msg.id !== msgId );\r\n this.storeMessagesAsRead([msgId]);\r\n if ( closedByUser && this._previewMessagesList.length === 0 ){\r\n this._alertActive = false;\r\n }\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * close all messages\r\n --------------------------------------------------------------------------*/\r\n _deleteAllMessages(){\r\n fireEvent(this, \"bimplusNotifyDeleteAllMessages\");\r\n this.clearAllLocalStorageMessages();\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * message clicked\r\n --------------------------------------------------------------------------*/\r\n _messageAction( item: MessageModel, index: number ){\r\n item.actionId = index;\r\n fireEvent(this, \"bimplusNotifyMessageAction\", JSON.stringify(item));\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * toggle menu open\r\n --------------------------------------------------------------------------*/\r\n _toggleOpened(){\r\n this._menuOpened = !this._menuOpened;\r\n this._alertActive = false;\r\n this._previewMessagesList = [];\r\n }\r\n\r\n _messageNotReadYet(message: MessageModel){\r\n if(!message?.id){\r\n return true;\r\n }\r\n const messageListString = window.localStorage.getItem(BIMPLUS_NOTIFY_MESSAGES);\r\n if(!messageListString){\r\n return true;\r\n }\r\n return !messageListString.includes(message.id);\r\n }\r\n\r\n storeMessagesAsRead(messageList: string[]){\r\n if(!messageList || messageList.length <1){\r\n return;\r\n }\r\n let messageListString = window.localStorage.getItem(BIMPLUS_NOTIFY_MESSAGES);\r\n messageListString ??= \"\";\r\n messageList.forEach((item: string)=>{\r\n if(!messageListString?.includes(item)){\r\n messageListString+=(item+\";\");\r\n }\r\n })\r\n window.localStorage.setItem(BIMPLUS_NOTIFY_MESSAGES,messageListString);\r\n }\r\n\r\n clearAllLocalStorageMessages(){\r\n window.localStorage.removeItem(BIMPLUS_NOTIFY_MESSAGES);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * get item link title\r\n --------------------------------------------------------------------------*/\r\n _getItemLinkTitle( item: MessageModel, index: number ){\r\n let itemLinksTitles: (string | undefined)[] = [];\r\n if ( item.linkText && (item.links || item.link)) {\r\n itemLinksTitles = Array.isArray(item.links) ? item.links : [item.link];\r\n }\r\n return itemLinksTitles[index] ?? '';\r\n }\r\n}\r\n","<div\r\n class=\"dropdown\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n [title]=\"'_BimplusNotifyTitle' | translate\"\r\n>\r\n <div class=\"dropdown-toggle\" >\r\n <div\r\n class=\"main-icon\"\r\n [ngClass]=\"'icon-notify' + (this._alertActive ? '-alert notify' : '')\"\r\n ></div>\r\n </div>\r\n\r\n <div\r\n class=\"bimcomp-dropdown-menu\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n >\r\n <div class=\"notify-tick\"></div>\r\n <div class=\"messages-title\">\r\n <div class=\"messages-count\">\r\n ({{this._messagesList.length}})\r\n </div>\r\n <div\r\n class=\"messages-delete-all\"\r\n (click)=\"_deleteAllMessages()\"\r\n (keypress)=\"_deleteAllMessages()\"\r\n >\r\n {{\"_Notify_Mark_All\" | translate}}\r\n </div>\r\n </div>\r\n <div class=\"messages-container\">\r\n @if (_messagesList.length) {\r\n <lib-bimplus-scrollable-container>\r\n <div\r\n *ngFor=\"let item of _messagesList\"\r\n class=\"message-item\"\r\n >\r\n <div class=\"message-item-title\">\r\n <div [ngClass]=\"'message-item-icon-' + item.type\"></div>\r\n <div\r\n class=\"message-item-title-text\"\r\n [ngClass]=\"{'capitalize':item.capitalizedTitle}\"\r\n >\r\n {{item.title}}\r\n </div>\r\n <div\r\n class=\"message-item-icon-close\"\r\n (click)=\"_closeMessage(item, false, $event)\"\r\n (keypress)=\"_closeMessage(item, false, $event)\"\r\n ></div>\r\n </div>\r\n \r\n <div class=\"message-item-body-text\">{{item.text}}</div>\r\n @if (item.linkText) {\r\n <div\r\n *ngFor=\"let link of (item.linkText.constructor === Array ? item.linkText : [item.linkText]); let i = index\"\r\n class=\"message-item-link\"\r\n [title]=\"_getItemLinkTitle(item, i)\"\r\n (click)=\"_messageAction(item, i)\"\r\n (keypress)=\"_messageAction(item, i)\"\r\n >{{link}}</div>\r\n }\r\n </div>\r\n </lib-bimplus-scrollable-container>\r\n } @else {\r\n <div class=\"message-item-empty\">\r\n <div class=\"message-item-empty-icon\"></div>\r\n <div class=\"message-item-empty-text\">{{\"_Notify_No_Messages\" | translate}}</div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div\r\n class=\"bimcomp-overlay\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n></div>\r\n\r\n<div\r\n class=\"bimcomp-messages-preview\"\r\n [ngClass]=\"(showMessagePreview && !_menuOpened && _previewMessagesList.length > 0) ? 'visible' : ''\"\r\n [style.top]=\"previewMessagesOffsetY\"\r\n>\r\n <div class=\"messages-container-preview\">\r\n <div\r\n *ngFor=\"let item of _previewMessagesList\"\r\n class=\"message-item\"\r\n >\r\n <div class=\"message-item-title\">\r\n <div [ngClass]=\"'message-item-icon-' + item.type\"></div>\r\n <div\r\n class=\"message-item-title-text\"\r\n [ngClass]=\"{'capitalize':item.capitalizedTitle}\"\r\n >\r\n {{item.title}}\r\n </div>\r\n <div\r\n class=\"message-item-icon-close\"\r\n (click)=\"_closeMessage(item, true, $event)\"\r\n (keypress)=\"_closeMessage(item, true, $event)\"\r\n ></div>\r\n </div>\r\n\r\n <div class=\"message-item-body-text\">\r\n {{item.text}}\r\n </div>\r\n @if (item.linkText) {\r\n <div\r\n *ngFor=\"let link of (item.linkText.constructor === Array ? item.linkText : [item.linkText]); let i = index\"\r\n class=\"message-item-link\"\r\n [title]=\"_getItemLinkTitle(item, i)\"\r\n (click)=\"_messageAction(item, i)\"\r\n (keypress)=\"_messageAction(item, i)\"\r\n >{{link}}</div>\r\n }\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Output, EventEmitter, input } from '@angular/core';\r\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\r\nimport { BimplusLocalizedWidgetComponent } from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\r\nimport { fireEvent } from '../../utils/utils';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-storage-info',\r\n imports: [CommonModule, TranslateModule],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-storage-info.component.html',\r\n styleUrl: './bimplus-storage-info.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusStorageInfoComponent extends BimplusLocalizedWidgetComponent{\r\n constructor(){\r\n super()\r\n }\r\n \r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n usedStorage = input<number>(0);\r\n\r\n\r\n @Output() bimplusStorageInfoClicked = new EventEmitter<string>();\r\n\r\n /**--------------------------------------------------------------------------\r\n * clicked storage info container\r\n --------------------------------------------------------------------------*/\r\n _infoClicked( action: string ){\r\n fireEvent(this, \"bimplusStorageInfoClicked\", action);\r\n }\r\n}\r\n","<div\r\n class=\"storage-info\"\r\n (click)=\"_infoClicked('storageInfo')\"\r\n (keypress)=\"_infoClicked('storageInfo')\"\r\n>\r\n <span class=\"progress-title\">\r\n {{\"_Common_Data_Environment_Quota\" | translate}}\r\n <span class=\"progress-text\" data-test=\"used-storage\">\r\n {{usedStorage()}}%\r\n </span>\r\n </span>\r\n <div class=\"storage-info-bar-container\">\r\n <div \r\n class=\"storage-info-bar\"\r\n [ngClass]=\"{\r\n 'red': usedStorage() >= 90,\r\n 'yellow': usedStorage() >= 80 && usedStorage() < 90,\r\n 'green': usedStorage() < 80\r\n }\"\r\n [style.width]=\"usedStorage() + '%'\"\r\n [style.max-width]=\"usedStorage() + '%'\"\r\n ></div>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges } from '@angular/core';\r\nimport {TranslateService, TranslateModule} from '@ngx-translate/core';\r\nimport {BimplusLocalizedWidgetComponent} from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\r\nimport { fireEvent } from '../../utils/utils';\r\n\r\nexport interface MenuItem {\r\n id: string,\r\n action: string,\r\n class: string,\r\n textId: string,\r\n type: string,\r\n checkState: string,\r\n url: string,\r\n _url?: () => string; // Function that takes no arguments and returns a string\r\n textClass: string,\r\n queryParams: string\r\n}\r\nexport interface MenuItemEventData {\r\n index: number,\r\n action: string\r\n}\r\nexport interface LangItem {\r\n symbol: string,\r\n text: string,\r\n lCode: string | undefined\r\n}\r\n\r\n@Component({\r\n selector: 'lib-bimplus-user-menu',\r\n imports: [CommonModule, TranslateModule],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-user-menu.component.html',\r\n styleUrl: './bimplus-user-menu.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\n\r\nexport class BimplusUserMenuComponent extends BimplusLocalizedWidgetComponent implements OnChanges{\r\n constructor(){\r\n super();\r\n }\r\n\r\n _languagesList: LangItem[] = [\r\n { symbol: \"cs\", text: \"Čeština\", lCode: \"3\" },\r\n { symbol: \"de\", text: \"Deutsch\", lCode: \"1\" },\r\n { symbol: \"en\", text: \"English (UK)\", lCode: \"0\" },\r\n { symbol: \"us\", text: \"English (US)\", lCode: undefined },\r\n { symbol: \"es\", text: \"Español\", lCode: \"18\" },\r\n { symbol: \"fr\", text: \"Français\", lCode: \"4\" },\r\n { symbol: \"it\", text: \"Italiano\", lCode: \"2\" },\r\n { symbol: \"ru\", text: \"Русский\", lCode: \"14\" },\r\n { symbol: \"ro\", text: \"Romana\", lCode: undefined },\r\n { symbol: \"tr\", text: \"Türkçe\", lCode: undefined }\r\n ];\r\n\r\n /**--------------------------------------------------------------------------\r\n * States\r\n --------------------------------------------------------------------------*/\r\n _menuOpened = false;\r\n _languagesMenuOpened = false;\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input({ transform: booleanAttribute }) accountSettingsVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) removeConnectedAppsVisible : boolean = false;\r\n @Input({ transform: booleanAttribute }) userGuideVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) contactFormVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) forumVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) releaseNotesVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) submenuVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) clearCacheVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) dividerLoggedInVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) logoutVisible : boolean = true;\r\n @Input({ transform: booleanAttribute }) isEmbedded : boolean = false;\r\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\r\n @Input({ transform: booleanAttribute }) allowRcaItem : boolean = false;\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input() buttonTitle : string = '';\r\n @Input() userName : string = 'Unknown user';\r\n @Input() userPhotoUrl : string = '';\r\n @Input() userGuideLinkUrl : string = 'https://doc.allplan.com/display/BIMPLUSMANUAL/Bimplus+Benutzerhandbuch';\r\n @Input() contactFormLinkUrl : string = 'https://www.allplan.com/info/contact';\r\n @Input() forumLinkUrl : string = 'https://connect.allplan.com/de/forum/themen/bim-benutzer-forum.ct';\r\n /**--------------------------------------------------------------------------\r\n * Component events\r\n --------------------------------------------------------------------------*/\r\n @Output() bimplusUserMenuClicked = new EventEmitter<MenuItemEventData>();\r\n @Output() bimplusLanguageSelected = new EventEmitter<string>();\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['localizedStrings']) {\r\n this._localizedStrings.set(changes['localizedStrings'].currentValue);\r\n }\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * List of menu items\r\n * Note : action is used to identify action which should be executed\r\n --------------------------------------------------------------------------*/\r\n _menuItemsList: MenuItem[] = [\r\n { id:\"accountSettingsPage\", action:\"accountSettings\", class: \"icon-account-settings\", textId: \"_Edit_profile\", type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\", url: \"\"},\r\n { id:\"removeConnectedApps\", action:\"removeConnectedApps\", checkState: \"allowRcaItem\", class: \"icon-rca\", textClass: \"text-capitalized\", textId: \"_Remove_connected_apps\", type: \"\", url: \"\", queryParams: \"\"},\r\n { id:\"userGuideLink\", action:\"userGuide\", class: \"icon-user-guide\", textId: \"_UserGuide\", get url() { return this._url?.() ?? ''; }, _url: () => this.userGuideLinkUrl, type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\"},\r\n { id:\"contactFormLink\", action:\"contactForm\", class: \"icon-contact-form\", textId: \"_Contact_form\", get url() { return this._url?.() ?? ''; }, _url: () => this.contactFormLinkUrl, queryParams: \"\", type: \"\", checkState: \"\", textClass: \"\"},\r\n { id:\"forumLink\", action:\"forum\", class: \"icon-forum\", textId: \"_Forum\", get url() { return this._url?.() ?? ''; }, _url: () => this.forumLinkUrl, type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\"},\r\n { id:\"releaseNotesLink\", action:\"releaseNotes\", class: \"icon-release-notes\", textId: \"_Release_notes\", type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\", url: \"\"},\r\n { id:\"languagesSubmenu\", action:\"submenu\", class: \"icon-languages\", textId: \"_Languages\", type: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"},\r\n { id:\"clearCache\", action:\"clearCache\", class: \"icon-clear-cache\", textId: \"_Clear cache\", type: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"},\r\n { id:\"dividerLoggedIn\", type: \"divider\", action: \"\", class: \"\", textId: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"},\r\n { id:\"logout\", action:\"logout\", class: \"icon-log-out\", textId: \"_Logout\", type: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"}\r\n ];\r\n\r\n /**--------------------------------------------------------------------------\r\n * Item clicked\r\n --------------------------------------------------------------------------*/\r\n _menuItemClicked( item: MenuItem, index : number ){\r\n if (!item || item.type === 'divider') {\r\n return;\r\n }\r\n\r\n\r\n if (item.action === 'submenu') {\r\n this._toggleLanguagesSubmenuOpened();\r\n }\r\n else {\r\n this._languagesMenuOpened = false;\r\n this._menuOpened = false;\r\n fireEvent(this, \"bimplusUserMenuClicked\", { index, action: item.action ? item.action : '' });\r\n }\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * language submenu item clicked\r\n --------------------------------------------------------------------------*/\r\n _switchLanguage( language: string ){\r\n this._languagesMenuOpened = false;\r\n this._menuOpened = false;\r\n fireEvent(this, \"bimplusLanguageSelected\", language);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * toggle menu open\r\n --------------------------------------------------------------------------*/\r\n _toggleOpened(){\r\n this._menuOpened = !this._menuOpened;\r\n if(!this._menuOpened) {\r\n this._languagesMenuOpened = false;\r\n }\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * toggle language submenu open\r\n --------------------------------------------------------------------------*/\r\n _toggleLanguagesSubmenuOpened(){\r\n if(!this._menuOpened) {\r\n return;\r\n }\r\n this._languagesMenuOpened = !this._languagesMenuOpened;\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * check if item is visible\r\n --------------------------------------------------------------------------*/\r\n _isHidden(item: MenuItem) {\r\n\r\n if (item) {\r\n return !this[(`${item.action ? item.action : item.id}Visible` as keyof BimplusUserMenuComponent)];\r\n }\r\n\r\n return false;\r\n }\r\n\r\n //--- add lang code and additional query params to supported urls\r\n _buildUrl(item: MenuItem | undefined) {\r\n let itemUrl = item?.url;\r\n const actualLang = this._languagesList.find(lang=> lang.symbol === this.selectedLanguage);\r\n const langCode = actualLang?.lCode;\r\n const supportsLangCode = itemUrl?.endsWith?.('.ct') && langCode;\r\n if (item?.queryParams || supportsLangCode) {\r\n itemUrl = itemUrl + '?';\r\n if (supportsLangCode) {\r\n itemUrl = itemUrl + 'L=' + langCode;\r\n if (item?.queryParams) {\r\n itemUrl = itemUrl + '&';\r\n }\r\n }\r\n if (item?.queryParams) {\r\n itemUrl = itemUrl + item.queryParams;\r\n }\r\n }\r\n return itemUrl;\r\n }\r\n\r\n _getMenuItems() {\r\n const menuItemsListFiltered = this.isEmbedded ? this._menuItemsList.slice(0,-3) : this._menuItemsList;\r\n return menuItemsListFiltered.map( (item) => {\r\n\r\n if (this._isHidden(item) || (item.checkState && !this[(item.checkState as keyof BimplusUserMenuComponent)])) {\r\n return;\r\n }\r\n return item;\r\n });\r\n }\r\n\r\n _getLangId(lang: LangItem | undefined) {\r\n return \"portalLanguage\" + lang?.symbol.charAt(0).toUpperCase() + lang?.symbol.slice(1);\r\n }\r\n}\r\n","<div\r\n [attr.key]=\"'bimcompOverlay'\"\r\n class=\"bimcomp-overlay\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n></div>\r\n<div\r\n [attr.key]=\"'userMenu'\"\r\n class=\"dropdown\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n>\r\n <div\r\n class=\"dropdown-toggle\"\r\n [title]=\"buttonTitle ? buttonTitle : ''\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n <img\r\n class=\"user-photo\"\r\n src=\"{{ userPhotoUrl ? userPhotoUrl : '' }}\"\r\n alt=\"{{ buttonTitle ? buttonTitle : '' }}\"\r\n />\r\n <div class=\"user-name\">\r\n @if (!isTouch) {\r\n {{ userName }}\r\n }\r\n </div>\r\n <span class=\"caret\"></span>\r\n </div>\r\n <ul class=\"bimcomp-dropdown-menu\" [ngClass]=\"_menuOpened ? 'open' : ''\">\r\n <ng-container *ngFor=\"let item of _getMenuItems(); let i = index\">\r\n <li\r\n *ngIf=\"item\"\r\n [attr.key]=\"item.id\"\r\n [attr.role]=\"item.type === 'divider' ? 'separator' : ''\"\r\n [ngClass]=\"{\r\n divider: item.type === 'divider',\r\n languageMenuItem: item.action === 'submenu',\r\n 'submenu-hidden':\r\n (!item.url || item.url.slice(0, 2) === '#/') &&\r\n item.action !== 'submenu'\r\n }\"\r\n (click)=\"_menuItemClicked(item, i)\"\r\n (keypress)=\"_menuItemClicked(item, i)\"\r\n >\r\n @if (item.action === 'submenu') {\r\n <div class=\"submenu arrow\"></div>\r\n <div class=\"icon\" [ngClass]=\"item.class\"></div>\r\n <span\r\n class=\"menu-item-text\"\r\n [ngClass]=\"item.textClass ? item.textClass : ''\"\r\n >\r\n {{ item.textId | translate }}\r\n </span>\r\n <div\r\n class=\"languagesSubmenu\"\r\n [ngClass]=\"_languagesMenuOpened ? 'open' : ''\"\r\n >\r\n <div class=\"languageSubmenuItems\">\r\n <div\r\n *ngFor=\"let lang of _languagesList\"\r\n [attr.key]=\"_getLangId(lang)\"\r\n id=\"{{ _getLangId(lang) }}\"\r\n class=\"languageSubmenuItem\"\r\n [ngClass]=\"\r\n lang.symbol === this.selectedLanguage ? 'selected' : ''\r\n \"\r\n (click)=\"_switchLanguage(lang.symbol)\"\r\n (keypress)=\"_switchLanguage(lang.symbol)\"\r\n >\r\n {{ lang.text }}\r\n </div>\r\n </div>\r\n </div>\r\n } @else if (!item.url || item.url.slice(0,2) === \"#/\") {\r\n <div class=\"icon\" [ngClass]=\"item.class\"></div>\r\n <span\r\n class=\"menu-item-text\"\r\n [ngClass]=\"item.textClass ? item.textClass : ''\"\r\n >\r\n {{ item.textId | translate }}\r\n </span>\r\n } @else if (!item.type || item.type !== \"divider\") {\r\n <a\r\n href=\"{{ _buildUrl(item) }}\"\r\n rel=\"noopener\"\r\n target=\"_blank\"\r\n class=\"submenu-hidden\"\r\n >\r\n <div class=\"icon\" [ngClass]=\"item.class\"></div>\r\n <span\r\n class=\"menu-item-text\"\r\n [ngClass]=\"item.textClass ? item.textClass : ''\"\r\n >\r\n {{ item.textId | translate }}\r\n </span>\r\n </a>\r\n }\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute } from '@angular/core';\r\nimport { fireEvent } from '../../utils/utils';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-zoom',\r\n imports: [CommonModule],\r\n templateUrl: './bimplus-zoom.component.html',\r\n styleUrl: './bimplus-zoom.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\nexport class BimplusZoomComponent{\r\n /**--------------------------------------------------------------------------\r\n * List of available zoom\r\n --------------------------------------------------------------------------*/\r\n _zoomList = [\r\n { symbol: \"100\", text: \"100%\"},\r\n { symbol: \"105\", text: \"105%\"},\r\n { symbol: \"110\", text: \"110%\"},\r\n { symbol: \"115\", text: \"115%\"},\r\n { symbol: \"120\", text: \"120%\"},\r\n { symbol: \"125\", text: \"125%\"},\r\n { symbol: \"130\", text: \"130%\"},\r\n { symbol: \"135\", text: \"135%\"},\r\n { symbol: \"140\", text: \"140%\"},\r\n { symbol: \"145\", text: \"145%\"},\r\n { symbol: \"150\", text: \"150%\"}\r\n ];\r\n\r\n /**--------------------------------------------------------------------------\r\n * States\r\n --------------------------------------------------------------------------*/\r\n _menuOpened = false;\r\n \r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input() selectedZoom : string = '125';\r\n\r\n /**--------------------------------------------------------------------------\r\n * Zoom selected event\r\n --------------------------------------------------------------------------*/\r\n @Output() bimplusZoomSelected = new EventEmitter<string>();\r\n\r\n /**--------------------------------------------------------------------------\r\n * Zoom selection\r\n --------------------------------------------------------------------------*/\r\n _switchZoom( zoom: string ){\r\n fireEvent(this, \"bimplusZoomSelected\", zoom);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * toggle menu open\r\n --------------------------------------------------------------------------*/\r\n _toggleOpened(){\r\n this._menuOpened = !this._menuOpened;\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * setup dynamic classes for zoom item\r\n --------------------------------------------------------------------------*/\r\n _getZoomClassObject( symbol: string ){\r\n return {\r\n 'selected': this.selectedZoom === symbol,\r\n ['bimzoom-' + symbol]: true\r\n };\r\n }\r\n}\r\n","<div\r\n class=\"bimcomp-overlay\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n></div>\r\n<div \r\n class=\"dropdown\"\r\n [ngClass]=\"{'open': _menuOpened, 'is-touch': isTouch}\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n>\r\n <div class=\"dropdown-toggle\">\r\n <div class=\"main-icon icon-zoom\"></div>\r\n <span class=\"caret\"></span>\r\n </div>\r\n <ul\r\n class=\"bimcomp-dropdown-menu\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n >\r\n <li\r\n *ngFor=\"let zoom of _zoomList\"\r\n class=\"bimcomp-dropdown-menu-item\"\r\n [ngClass]=\"_getZoomClassObject(zoom.symbol)\"\r\n (click)=\"_switchZoom(zoom.symbol)\"\r\n (keypress)=\"_switchZoom(zoom.symbol)\"\r\n >\r\n <span>{{zoom.text}}</span>\r\n </li>\r\n </ul>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges } from '@angular/core';\r\nimport {TranslateService, TranslateModule} from '@ngx-translate/core';\r\nimport {BimplusLocalizedWidgetComponent} from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\r\nimport { fireEvent } from '../../utils/utils';\r\n\r\n@Component({\r\n selector: 'lib-bimplus-touch-menu',\r\n imports: [CommonModule, TranslateModule],\r\n providers: [TranslateService],\r\n templateUrl: './bimplus-touch-menu.component.html',\r\n styleUrl: './bimplus-touch-menu.component.less',\r\n encapsulation: ViewEncapsulation.ShadowDom\r\n})\r\n\r\nexport class BimplusTouchMenuComponent extends BimplusLocalizedWidgetComponent implements OnChanges{\r\n constructor(){\r\n super()\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * List of menu items\r\n * Note : action is used to identify action which should be executed\r\n --------------------------------------------------------------------------*/\r\n _menuItemsList = [\r\n { mode:\"touch\", class: \"icon-touch-mode-toolbar\", textId: \"_Touch_Mode\"},\r\n { mode:\"desktop\", class: \"icon-desktop-mode-toolbar\", textId: \"_Desktop_Mode\"},\r\n ];\r\n\r\n get _selectedItem() {\r\n return this._menuItemsList.find(item => item.mode == this.selectedMode);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * States\r\n --------------------------------------------------------------------------*/\r\n _menuOpened = false;\r\n \r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\r\n\r\n /**--------------------------------------------------------------------------\r\n * properties\r\n --------------------------------------------------------------------------*/\r\n @Input() selectedMode : string = 'desktop';\r\n\r\n /**--------------------------------------------------------------------------\r\n * Zoom selected event\r\n --------------------------------------------------------------------------*/\r\n @Output() bimplusTouchModeSelected = new EventEmitter<string>();\r\n\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['localizedStrings']) {\r\n this._localizedStrings.set(changes['localizedStrings'].currentValue); \r\n }\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * Item clicked\r\n --------------------------------------------------------------------------*/\r\n _menuItemClicked( mode: string ){\r\n fireEvent(this, \"bimplusTouchModeSelected\", mode);\r\n }\r\n\r\n /**--------------------------------------------------------------------------\r\n * toggle menu open\r\n --------------------------------------------------------------------------*/\r\n _toggleOpened(){\r\n this._menuOpened = !this._menuOpened;\r\n }\r\n}\r\n","<div\r\n class=\"bimcomp-overlay\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n</div>\r\n<div \r\n class=\"dropdown\"\r\n [ngClass]=\"{'open': _menuOpened, 'is-touch': isTouch}\"\r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n <div class=\"dropdown-toggle\">\r\n <div \r\n class=\"main-icon\"\r\n [ngClass]=\"this._selectedItem?.class ? this._selectedItem?.class : ''\"\r\n ></div>\r\n <span class=\"caret\"></span>\r\n </div>\r\n <ul \r\n class=\"bimcomp-dropdown-menu\"\r\n [ngClass]=\"{'open':this._menuOpened}\">\r\n <li\r\n *ngFor=\"let item of _menuItemsList\"\r\n class=\"bimcomp-dropdown-menu-item\"\r\n [ngClass]=\"{'selected':this.selectedMode === item.mode}\"\r\n (click)=\"_menuItemClicked(item.mode)\"\r\n (keypress)=\"_menuItemClicked(item.mode)\"\r\n >\r\n <div \r\n class=\"icon\"\r\n [ngClass]=\"item.class\"\r\n ></div>\r\n <span>{{item.textId | translate}}</span>\r\n </li>\r\n </ul>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { LocalizedStrings } from './../types/types'\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LanguageStringsService {\r\n\r\n // #region public fields\r\n set languageFilesUri(uri : string){\r\n this._languageFilesUri = uri;\r\n }\r\n private readonly defaultLang: string = 'en';\r\n currentLanguage$ = new BehaviorSubject<string> (this.defaultLang);\r\n currentLanguageStrings$ = new BehaviorSubject<LocalizedStrings>({});\r\n\r\n get currentLanguage() : string {\r\n return this.currentLanguage$.getValue();\r\n }\r\n\r\n set currentLanguageStrings(langStrings : LocalizedStrings){\r\n this.currentLanguageStrings$.next(langStrings);\r\n }\r\n\r\n get currentLanguageStrings() : LocalizedStrings {\r\n return this.currentLanguageStrings$.getValue();\r\n }\r\n // #endregion public fields\r\n\r\n // #region public methods\r\n async setCurrentLanguage(lang : string){\r\n this.currentLanguage$.next(lang);\r\n await this.fetchLanguageStrings(lang); \r\n }\r\n\r\n extractLocalizedStrings(stringIds : Array<string>) : LocalizedStrings {\r\n const obj : LocalizedStrings = {};\r\n for (const [key, value] of Object.entries(this.currentLanguageStrings)) {\r\n if(typeof value == 'string' && stringIds.find(x=>x === key)){\r\n obj[key] = value;\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n async fetchLanguageStrings(lang : string){\r\n const data = await fetch(`${this._languageFilesUri}/strings_${lang}.json`);\r\n console.log(`Language strings loaded from: ${this._languageFilesUri}/strings_${lang}.json`);\r\n console.log(data);\r\n const dataJSON = await data.json();\r\n // add missing translations from default language translations\r\n if (lang !== this.defaultLang) {\r\n const fallbackData = await fetch(`${this._languageFilesUri}/strings_en.json`);\r\n const fallbackDataJSON = await fallbackData?.json?.();\r\n const fallbackDataJSONIndexes = fallbackDataJSON && Object.keys(fallbackDataJSON);\r\n if (fallbackDataJSONIndexes?.length) {\r\n for (const index in fallbackDataJSONIndexes) {\r\n const indexName = fallbackDataJSONIndexes[index];\r\n dataJSON[indexName] ??= fallbackDataJSON[indexName];\r\n }\r\n }\r\n }\r\n this.currentLanguageStrings$.next(dataJSON); \r\n }\r\n // #endregion public methods\r\n\r\n // #region private fields \r\n private _languageFilesUri : string = \"/assets\"\r\n // #endregion private fields\r\n}\r\n","/*\r\n * Public API Surface of navigation\r\n */\r\n\r\nexport * from './lib/navigation.service';\r\nexport * from './lib/navigation.component';\r\nexport * from './lib/components/bimplus-contact/bimplus-contact.component';\r\nexport * from './lib/components/bimplus-language-menu/bimplus-language-menu.component';\r\nexport * from './lib/components/bimplus-localized-widget/bimplus-localized-widget.component';\r\nexport * from './lib/components/bimplus-main-menu/bimplus-main-menu.component';\r\nexport * from './lib/components/bimplus-navbar/bimplus-navbar.component';\r\nexport * from './lib/components/bimplus-navbar/logo-state.enum';\r\nexport * from './lib/components/bimplus-notify/bimplus-notify.component';\r\nexport * from './lib/components/bimplus-storage-info/bimplus-storage-info.component';\r\nexport * from './lib/components/bimplus-user-menu/bimplus-user-menu.component';\r\nexport * from './lib/components/bimplus-zoom/bimplus-zoom.component';\r\nexport * from './lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component';\r\nexport * from './lib/components/bimplus-touch-menu/bimplus-touch-menu.component';\r\nexport * from './lib/components/bimplus-project-menu/bimplus-project-menu.component';\r\nexport * from './lib/services/language-strings.service';\r\nexport * from './lib/types/types';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":";;;;;;;;;MAKa,iBAAiB,CAAA;AAE5B,IAAA,WAAA,GAAA;8GAFW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;2FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCQY,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAPpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAV/B,SAAS;+BACE,gBAAgB,EAAA,OAAA,EACjB,EAAE,EACD,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA;;;MCQU,+BAA+B,CAAA;AAZ5C,IAAA,WAAA,GAAA;AAaE,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAG3C,QAAA,IAAA,CAAA,iBAAiB,GAA2B,MAAM,CAAC,IAAI,CAAC;AAcxD,QAAA,IAAA,CAAA,iBAAiB,GAAqC,MAAM,CAAC,EAAsB,CAAC;AAarF;AA1BC,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE;;IAEjC,IAAa,gBAAgB,CAAC,KAAa,EAAA;AACzC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;;QACrF,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;;;AAKxB,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE;;IAEjC,IAAa,gBAAgB,CAAC,KAAuB,EAAA;AACnD,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAChD,QAAA,IAAI;YACF,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;;QAClE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;;;8GA5Bb,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAT/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,gBAAgB,CAAC,EACnB,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;GAIT,EANS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8BAAE,eAAe,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,SAAA,EAAA,CAAA,CAAA;;2FAU5B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAZ3C,SAAS;+BACE,8BAA8B,EAAA,OAAA,EAC/B,CAAC,YAAY,EAAE,eAAe,CAAC,EAC7B,SAAA,EAAA,CAAC,gBAAgB,CAAC,EACnB,QAAA,EAAA,CAAA;;;;GAIT,EAEc,aAAA,EAAA,iBAAiB,CAAC,SAAS,EAAA;8BAU7B,gBAAgB,EAAA,CAAA;sBAA5B;gBAcY,gBAAgB,EAAA,CAAA;sBAA5B;;;AC9BH;;;;;;;;;;AAU4E;AACtE,SAAU,SAAS,CAAC,MAAe,EAAE,SAAiB,EAAE,OAAgB,IAAI,EAAA;IAChF,IAAK,CAAC,SAAS,EAAG;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC;QACvF;;;AAGJ,IAAA,MAAM,OAAO,GAAG,CAAC,SAAS,IAAI,MAAM,KAAK,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAK,MAAM,CAAC,OAAyB;IAChH,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE;QACtD,OAAO,CAAC,SAAS,CAAC,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;;IAGrC,MAAM,OAAO,GAAI,MAAiB;AAClC,IAAA,IAAI,SAAS,IAAI,OAAO,EAAE;QACtB,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEnC;;ACrBM,MAAO,uBAAwB,SAAQ,+BAA+B,CAAA;AAC1E,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAGC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAU;;IAE5D,eAAe,GAAA;AACb,QAAA,SAAS,CAAC,IAAI,EAAE,uBAAuB,EAAE,SAAS,CAAC;;8GAR1C,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EALvB,CAAC,gBAAgB,CAAC,iDCT/B,+RAQI,EAAA,MAAA,EAAA,CAAA,y2CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDAQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,SAAA,EAAA,CAAA,CAAA;;2FAM5B,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBARnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EACtB,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,CAAC,EAC7B,SAAA,EAAA,CAAC,gBAAgB,CAAC,EAGd,aAAA,EAAA,iBAAiB,CAAC,SAAS,EAAA,QAAA,EAAA,+RAAA,EAAA,MAAA,EAAA,CAAA,y2CAAA,CAAA,EAAA;wDAOhC,qBAAqB,EAAA,CAAA;sBAA9B;;;MERU,4BAA4B,CAAA;AAPzC,IAAA,WAAA,GAAA;AASG,QAAA,IAAA,CAAA,cAAc,GAAG;AAChB,YAAA,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC;AAChC,YAAA,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC;AAChC,YAAA,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAC;AACrC,YAAA,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAC;AACrC,YAAA,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC;AAChC,YAAA,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAC;AACjC,YAAA,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAC;AACjC,YAAA,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC;AAChC,YAAA,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC;AAC/B,YAAA,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ;SAC/B;QAEuC,IAAO,CAAA,OAAA,GAAa,KAAK;QACxD,IAAgB,CAAA,gBAAA,GAAY,IAAI;QACD,IAAQ,CAAA,QAAA,GAAa,KAAK;QAClE,IAAW,CAAA,WAAA,GAAa,KAAK;AAEnB,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,YAAY,EAAU;AAS/D;AAPC,IAAA,eAAe,CAAE,QAAgB,EAAA;AAC/B,QAAA,SAAS,CAAC,IAAI,EAAE,yBAAyB,EAAE,QAAQ,CAAC;;IAGtD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;;8GA3B3B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,uGAenB,gBAAgB,CAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAEhB,gBAAgB,CC5BtC,EAAA,EAAA,OAAA,EAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,upCA6BM,q5HDvBM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,SAAA,EAAA,CAAA,CAAA;;2FAKX,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,WAC5B,CAAC,YAAY,CAAC,EAGR,aAAA,EAAA,iBAAiB,CAAC,SAAS,EAAA,QAAA,EAAA,upCAAA,EAAA,MAAA,EAAA,CAAA,81HAAA,CAAA,EAAA;8BAiBF,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,gBAAgB,EAAA,CAAA;sBAAxB;gBACuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAG5B,uBAAuB,EAAA,CAAA;sBAAhC;;;AEXG,MAAO,2BAA4B,SAAQ,+BAA+B,CAAA;AAC9E,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAGA,IAAW,CAAA,WAAA,GAAW,EAAE;QACxB,IAAe,CAAA,eAAA,GAAW,EAAE;QAC5B,IAAkB,CAAA,kBAAA,GAAW,EAAE;QAC/B,IAAiB,CAAA,iBAAA,GAAW,EAAE;QACC,IAAsB,CAAA,sBAAA,GAAY,KAAK;QACvC,IAAc,CAAA,cAAA,GAAY,KAAK;QAC/B,IAAiB,CAAA,iBAAA,GAAY,KAAK;QAClC,IAAuB,CAAA,uBAAA,GAAY,KAAK;QACxC,IAAiB,CAAA,iBAAA,GAAY,KAAK;QAElC,IAAqB,CAAA,qBAAA,GAAY,IAAI;QACrC,IAAa,CAAA,aAAA,GAAY,IAAI;QAC7B,IAAgB,CAAA,gBAAA,GAAY,IAAI;QAChC,IAAsB,CAAA,sBAAA,GAAY,IAAI;QACtC,IAAgB,CAAA,gBAAA,GAAY,IAAI;QAEhC,IAAW,CAAA,WAAA,GAAY,KAAK;QAC5B,IAAU,CAAA,UAAA,GAAY,KAAK;QAC3B,IAAO,CAAA,OAAA,GAAY,KAAK;QACxB,IAAa,CAAA,aAAA,GAAY,KAAK;QAC9B,IAAuB,CAAA,uBAAA,GAAY,KAAK;QACvE,IAAc,CAAA,cAAA,GAAc,EAAE;AAiBvC;;;;AAI4E;AAC5E,QAAA,IAAA,CAAA,YAAY,GAAmB;AAC7B,YAAA,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,0BAA0B,EAAE,cAAc,EAAE,4BAA4B,EAAE,aAAa,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;AAC/P,YAAA,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;AACtN,YAAA,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,oBAAoB,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;AAClO,YAAA,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE,MAAM,EAAE,2BAA2B,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;AAC5P,YAAA,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;SACzN;;AA1BD,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,iFAAiF;;AAExI,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,CAA8G,2GAAA,EAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,iFAAiF,GAAG;;AAGzP,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,EAAE,YAAY,EAAE,CAAA,EAAG,IAAI,CAAC,eAAe,CAAE,CAAA,EAAE;;AAGpD,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,EAAE,YAAY,EAAE,CAAA,IAAA,EAAO,IAAI,CAAC,SAAS,CAAG,CAAA,CAAA,EAAE;;AAgBnD,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;;AAGhH;;AAE4E;AAC5E,IAAA,SAAS,CAAC,IAAkB,EAAA;QAC1B,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,SAAS;AAE3D,YAAA,OAAO,EAAG,IAAwD,CAAC,GAAG,CAAC,CAAC;;AAE1E,QAAA,OAAO,KAAK;;AAEd;;AAE8E;AAC9E,IAAA,WAAW,CAAC,IAAkB,EAAA;QAE5B,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,UAAU;AAC5D,YAAA,OAAO,CAAC,CAAE,IAAwD,CAAC,GAAG,CAAC;;AAEzE,QAAA,OAAO,KAAK;;IAId,uBAAuB,CAAC,MAAc,EAAE,KAAa,EAAA;AACnD,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;;AAG5B;;AAE0E;AAC1E,IAAA,gBAAgB,CAAC,IAAkB,EAAE,IAAY,EAAE,KAAY,EAAA;QAC7D,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,eAAe,EAAE;YACvB,KAAK,CAAC,cAAc,EAAE;;QAExB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AAG9B,QAAA,IAAI,IAAI,IAAI,MAAM,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBAC1B;;;AAGJ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;QAC1B,SAAS,CAAC,IAAI,EAAE,2BAA2B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;AAGhE,IAAA,qBAAqB,CAAC,KAAY,EAAA;QAChC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,eAAe,EAAE;YACvB,KAAK,CAAC,cAAc,EAAE;;;IAI1B,0BAA0B,CAAC,IAAkB,EAAE,OAAgB,EAAA;AAC7D,QAAA,MAAM,MAAM,GAAW,CAAG,EAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,EAAE,CAAA,CAAA,EAAI,OAAO,GAAG,EAAE,GAAG,iBAAiB,CAAA,CAAE;AACxG,QAAA,OAAO,MAAM;;AAGf,IAAA,0BAA0B,CAAC,IAAkB,EAAA;AAC3C,QAAA,MAAM,MAAM,GAAW,CAAA,EAAG,IAAI,CAAC,KAAK,CAAI,CAAA,EAAA,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,iBAAiB,GAAG,QAAQ,GAAG,EAAE,CAAI,CAAA,EAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,EAAE,EAAE;AAC5I,QAAA,OAAO,MAAM;;8GA1HJ,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,qSASlB,gBAAgB,CAAA,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,EAChB,gBAAgB,CAAA,EAAA,iBAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,EAChB,gBAAgB,CAChB,EAAA,uBAAA,EAAA,CAAA,yBAAA,EAAA,yBAAA,EAAA,gBAAgB,CAChB,EAAA,iBAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,EAAA,gBAAgB,6EAEhB,gBAAgB,CAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAChB,gBAAgB,CAChB,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAAA,gBAAgB,gFAChB,gBAAgB,CAAA,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAChB,gBAAgB,CAAA,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAEhB,gBAAgB,CAChB,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,gBAAgB,mCAChB,gBAAgB,CAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAChB,gBAAgB,CAChB,EAAA,uBAAA,EAAA,CAAA,yBAAA,EAAA,yBAAA,EAAA,gBAAgB,CA9BzB,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,gBAAgB,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf/B,mmIA6GA,ED/FY,MAAA,EAAA,CAAA,sqsBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,wXAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,SAAA,EAAA,CAAA,CAAA;;2FAM5B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBARvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAC3B,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,CAAC,EAC7B,SAAA,EAAA,CAAC,gBAAgB,CAAC,EAGd,aAAA,EAAA,iBAAiB,CAAC,SAAS,EAAA,QAAA,EAAA,mmIAAA,EAAA,MAAA,EAAA,CAAA,sqsBAAA,CAAA,EAAA;wDAOjC,WAAW,EAAA,CAAA;sBAAnB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACuC,sBAAsB,EAAA,CAAA;sBAA7D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,cAAc,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,iBAAiB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,uBAAuB,EAAA,CAAA;sBAA9D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,iBAAiB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAEE,qBAAqB,EAAA,CAAA;sBAA5D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,gBAAgB,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,sBAAsB,EAAA,CAAA;sBAA7D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,gBAAgB,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAEE,WAAW,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,uBAAuB,EAAA,CAAA;sBAA9D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,cAAc,EAAA,CAAA;sBAAtB;;;AEtCH,MAAM,cAAc,GAAG;AACrB,IAAA,0BAA0B,EAAE,yBAAyB;AACrD,IAAA,2BAA2B,EAAE,0BAA0B;AACvD,IAAA,gBAAgB,EAAE,gBAAgB;AAClC,IAAA,iBAAiB,EAAE,iBAAiB;AACpC,IAAA,oBAAoB,EAAE,oBAAoB;AAC1C,IAAA,2BAA2B,EAAE,0BAA0B;AACvD,IAAA,oBAAoB,EAAE,oBAAoB;AAC1C,IAAA,0BAA0B,EAAE,0BAA0B;AACtD,IAAA,qBAAqB,EAAE,oBAAoB;AAC3C,IAAA,uBAAuB,EAAE,sBAAsB;AAC/C,IAAA,mBAAmB,EAAE,mBAAmB;AACxC,IAAA,4BAA4B,EAAE,2BAA2B;AACzD,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,kBAAkB,EAAE,iBAAiB;AACrC,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,wBAAwB,EAAE,sBAAsB;AAChD,IAAA,0BAA0B,EAAE,wBAAwB;CAC5C;AAgBJ,MAAO,wBAAyB,SAAQ,+BAA+B,CAAA;AAC3E,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAG+B,IAAU,CAAA,UAAA,GAAa,KAAK;QAC5B,IAAO,CAAA,OAAA,GAAa,KAAK;QACzB,IAAS,CAAA,SAAA,GAAa,KAAK;QAC3B,IAAK,CAAA,KAAA,GAAa,KAAK;QACvB,IAAO,CAAA,OAAA,GAAa,KAAK;QACzB,IAAoB,CAAA,oBAAA,GAAa,KAAK;QACtC,IAAuB,CAAA,uBAAA,GAAa,KAAK;QACxE,IAAW,CAAA,WAAA,GAAY,EAAE;QACzB,IAAe,CAAA,eAAA,GAAY,EAAE;QAC7B,IAAkB,CAAA,kBAAA,GAAY,EAAE;QAChC,IAAiB,CAAA,iBAAA,GAAY,EAAE;QACA,IAAsB,CAAA,sBAAA,GAAa,KAAK;QACxC,IAAc,CAAA,cAAA,GAAa,KAAK;QAChC,IAAiB,CAAA,iBAAA,GAAa,KAAK;QACnC,IAAuB,CAAA,uBAAA,GAAa,KAAK;QACzC,IAAiB,CAAA,iBAAA,GAAa,KAAK;QAClE,IAAgB,CAAA,gBAAA,GAAY,EAAE;QAC9B,IAAc,CAAA,cAAA,GAAY,EAAE;QACG,IAAW,CAAA,WAAA,GAAa,KAAK;QAC7B,IAAW,CAAA,WAAA,GAAa,KAAK;QAC7B,IAAqB,CAAA,qBAAA,GAAa,KAAK;QACvC,IAAyB,CAAA,yBAAA,GAAa,KAAK;QAC3C,IAAuB,CAAA,uBAAA,GAAa,KAAK;QACzC,IAAkB,CAAA,kBAAA,GAAa,KAAK;QACpC,IAAmB,CAAA,mBAAA,GAAa,KAAK;QACrC,IAAmB,CAAA,mBAAA,GAAa,KAAK;QACrC,IAAqB,CAAA,qBAAA,GAAa,KAAK;QACvC,IAAgB,CAAA,gBAAA,GAAa,KAAK;QAClC,IAAmB,CAAA,mBAAA,GAAa,KAAK;QACrC,IAAuB,CAAA,uBAAA,GAAa,KAAK;QACzC,IAAY,CAAA,YAAA,GAAa,KAAK;QAC9B,IAAc,CAAA,cAAA,GAAa,KAAK;QAChC,IAAkB,CAAA,kBAAA,GAAa,IAAI;QACnC,IAAyB,CAAA,yBAAA,GAAa,IAAI;QAC1C,IAAqB,CAAA,qBAAA,GAAa,IAAI;QACtC,IAAa,CAAA,aAAA,GAAa,IAAI;QAC9B,IAAgB,CAAA,gBAAA,GAAa,IAAI;QACjC,IAAsB,CAAA,sBAAA,GAAa,IAAI;QACvC,IAAgB,CAAA,gBAAA,GAAa,IAAI;QACjC,IAAkB,CAAA,kBAAA,GAAa,IAAI;QACnC,IAAoB,CAAA,oBAAA,GAAa,IAAI;QACrC,IAAe,CAAA,eAAA,GAAa,IAAI;QAChC,IAAkB,CAAA,kBAAA,GAAa,IAAI;QACnC,IAAsB,CAAA,sBAAA,GAAa,IAAI;QACvC,IAAW,CAAA,WAAA,GAAa,IAAI;QAC5B,IAAa,CAAA,aAAA,GAAa,IAAI;QAC9B,IAA+B,CAAA,+BAAA,GAAa,IAAI;QAChD,IAAkB,CAAA,kBAAA,GAAa,IAAI;QACnC,IAAkB,CAAA,kBAAA,GAAa,KAAK;QACpC,IAAoB,CAAA,oBAAA,GAAa,KAAK;QACrE,IAAY,CAAA,YAAA,GAAc,EAAE;QAC5B,IAAS,CAAA,SAAA,GAAc,EAAE;QACzB,IAAc,CAAA,cAAA,GAAc,EAAE;AAE7B,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,EAAoC;AAC7E,QAAA,IAAA,CAAA,6BAA6B,GAAG,IAAI,YAAY,EAAQ;AAgHlE,QAAA,IAAA,CAAA,WAAW,GAAgB,EAAE,MAAM,EAAC,aAAa,EAAE,EAAE,EAAC,wBAAwB,EAAC,IAAI,EAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,2BAA2B,EAAE,cAAc,EAAE,2BAA2B,EAAC,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,EAAE,EAAC;QAEvR,IAAW,CAAA,WAAA,GAAG,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC;AAGlF,QAAA,IAAA,CAAA,QAAQ,GAAmB;AACzB,YAAA,EAAE,MAAM,EAAC,gBAAgB,EAAE,EAAE,EAAE,cAAc,CAAC,gBAAgB,EAAE,IAAI,EAAC,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,2BAA2B,EAAE,cAAc,EAAE,2BAA2B,EAAE,aAAa,EAAC,4BAA4B,EAAC,iBAAiB,EAAE,KAAK,EAAC,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,EAAE,EAAC;AAClS,YAAA,EAAE,MAAM,EAAC,QAAQ,EAAE,EAAE,EAAE,cAAc,CAAC,iBAAiB,EAAE,IAAI,EAAC,EAAE,EAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAC,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAC,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,EAAE,EAAC;AAClO,YAAA,EAAE,MAAM,EAAC,WAAW,EAAE,EAAE,EAAE,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAC,EAAE,EAAC,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAC,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAC,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,EAAE,EAAC;AACnO,YAAA,EAAE,MAAM,EAAC,iBAAiB,EAAE,EAAE,EAAE,cAAc,CAAC,2BAA2B,EAAE,IAAI,EAAC,EAAE,EAAC,KAAK,EAAE,8BAA8B,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAC,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAC,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,EAAE,EAAC;AAC7P,YAAA,EAAE,MAAM,EAAC,WAAW,EAAE,EAAE,EAAE,cAAc,CAAC,oBAAoB,EAAE,IAAI,EAAC,EAAE,EAAC,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAC,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAC,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,EAAE,EAAC;AAC3O,YAAA,EAAE,MAAM,EAAC,EAAE,EAAC,EAAE,EAAE,cAAc,CAAC,0BAA0B,EAAE,IAAI,EAAC,SAAS,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,EAAC,cAAc,EAAC,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAC,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,EAAE,EAAC;AAE3N,YAAA,EAAE,MAAM,EAAC,aAAa,EAAE,EAAE,EAAE,cAAc,CAAC,qBAAqB,EAAE,IAAI,EAAC,EAAE,EAAC,KAAK,EAAE,0BAA0B,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAC,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,yBAAyB,EAAC;AAC7Q,YAAA,EAAE,MAAM,EAAC,aAAa,EAAE,EAAE,EAAE,cAAc,CAAC,uBAAuB,EAAE,IAAI,EAAC,EAAE,EAAC,KAAK,EAAE,0BAA0B,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAC,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,yBAAyB,EAAC;AAC/Q,YAAA,EAAE,MAAM,EAAC,UAAU,EAAE,EAAE,EAAE,cAAc,CAAC,mBAAmB,EAAE,IAAI,EAAC,EAAE,EAAC,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAG,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAC;AAC9P,YAAA,EAAE,MAAM,EAAC,eAAe,EAAE,EAAE,EAAE,cAAc,CAAC,4BAA4B,EAAE,IAAI,EAAC,EAAE,EAAC,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAG,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAC;AAE1R,YAAA,EAAE,MAAM,EAAC,EAAE,EAAC,EAAE,EAAE,cAAc,CAAC,WAAW,EAAE,IAAI,EAAC,SAAS,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,EAAC,cAAc,EAAC,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAC,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,EAAE,EAAC;AAE5M,YAAA,EAAE,MAAM,EAAC,aAAa,EAAE,EAAE,EAAE,cAAc,CAAC,0BAA0B,EAAE,IAAI,EAAC,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,MAAM,EAAE,2BAA2B,EAAE,cAAc,EAAE,2BAA2B,EAAE,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,EAAE,EAAC;AACtR,YAAA,EAAE,MAAM,EAAC,iBAAiB,EAAE,EAAE,EAAE,cAAc,CAAC,2BAA2B,EAAE,IAAI,EAAC,EAAE,EAAC,KAAK,EAAE,8BAA8B,EAAE,MAAM,EAAE,yBAAyB,EAAE,cAAc,EAAE,yBAAyB,EAAE,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,EAAE,EAAC;SAC3R;AAED,QAAA,IAAA,CAAA,eAAe,GAAmB;YAChC,EAAE,MAAM,EAAC,EAAE,EAAC,EAAE,EAAE,cAAc,CAAC,WAAW,EAAE,IAAI,EAAC,SAAS,EAAE,KAAK,EAAE,yBAAyB,EAAC,iBAAiB,EAAE,KAAK,EAAC,cAAc,EAAG,KAAK,EAAkB;AAC9J,YAAA,EAAE,MAAM,EAAC,QAAQ,EAAE,EAAE,EAAE,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAC,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAC,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAG,KAAK,EAAE,WAAW,EAAE,EAAE,EAAC;AACnO,YAAA;AACE,gBAAA,MAAM,EAAC,aAAa;gBACpB,EAAE,EAAE,cAAc,CAAC,wBAAwB;AAC3C,gBAAA,KAAK,EAAE,2BAA2B;AAClC,gBAAA,MAAM,EAAE,gBAAgB;AACxB,gBAAA,cAAc,EAAE,gBAAgB;AACjB,aAAA;AACjB,YAAA;AACE,gBAAA,MAAM,EAAC,eAAe;gBACtB,EAAE,EAAE,cAAc,CAAC,0BAA0B;AAC7C,gBAAA,KAAK,EAAE,6BAA6B;AACpC,gBAAA,MAAM,EAAE,kBAAkB;AAC1B,gBAAA,cAAc,EAAE,kBAAkB;AACnB,aAAA;AACjB,YAAA,EAAE,MAAM,EAAC,MAAM,EAAE,EAAE,EAAE,cAAc,CAAC,eAAe,EAAE,IAAI,EAAC,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAC,aAAa,EAAC,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAC,cAAc,EAAG,KAAK,EAAC,WAAW,EAAE,EAAE;SAC1N;;AAxJD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC;;;AAIxE,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;;AAGhH,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,cAAc,CAAC,mBAAmB,CAAC;;;AAInF,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC9B,YAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,cAAc,CAAC,4BAA4B,CAAC;;;AAI5F,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,cAAc,CAAC,0BAA0B,CAAC;;;AAI1F,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,YAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,cAAc,CAAC,2BAA2B,CAAC;;;AAI3F,QAAA,IAAG,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAChC,EAAE,KAAK,cAAc,CAAC,2BAA2B;AACjD,gBAAA,EAAE,KAAK,cAAc,CAAC,oBAAoB,CAC3C;;AAGH,QAAA,OAAO,QAAQ;;AAGjB,IAAA,IAAI,UAAU,GAAA;QACZ,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;QAGvG,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7C,YAAA,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,cAAc,CAAC,WAAW,CAAC;;;AAI/E,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,cAAc,CAAC,wBAAwB,CAAC;;;AAItF,QAAA,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,cAAc,CAAC,WAAW,CAAC;;AAGzE;;AAE4E;AAC5E,IAAA,aAAa,CAAC,IAAiB,EAAA;AAE7B,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,YAAY;YACtC,OAAO,CAAC,EAAG,IAAsD,CAAC,GAAG,CAAC,CAAC;;AAEzE,QAAA,OAAO,IAAI;;AAEb;;AAE4E;AAC5E,IAAA,YAAY,CAAC,IAAiB,EAAA;AAE5B,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,yBAAyB,EAAE;AAClD,YAAA,OAAO,IAAI,CAAC,WAAW,KAAK,EAAE;;AAEhC,QAAA,OAAO,IAAI;;AAGb;;AAE4E;AAC5E,IAAA,SAAS,CAAC,IAAiB,EAAA;QAEzB,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,SAAS;AAC3D,YAAA,OAAO,EAAG,IAAsD,CAAC,GAAG,CAAC,CAAC;;AAExE,QAAA,OAAO,KAAK;;AAGd;;AAE4E;AAC5E,IAAA,WAAW,CAAC,IAAiB,EAAA;AAC3B,QAAA,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,UAAU;QACpC,OAAO,CAAC,EAAG,IAAsD,CAAC,GAAG,CAAC,CAAC;;IAGzE,eAAe,CAAC,IAAkB,EAAE,MAAe,EAAE,QAAiB,EAAE,SAAkB,EAAE,QAAiB,EAAA;QAC3G,OAAO;AACL,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;SACjD;;IA+CH,eAAe,GAAA;AACb,QAAA,SAAS,CAAC,IAAI,EAAE,+BAA+B,CAAC;;AAGlD,IAAA,oBAAoB,CAAC,IAAkB,EAAC,IAAW,EAAC,KAAwB,EAAA;QAC1E,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,eAAe,EAAE;YACvB,KAAK,CAAC,cAAc,EAAE;;AAGxB,QAAA,IAAG,IAAI,IAAI,MAAM,EAAE;AACjB,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC;gBACzB;;;AAIJ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,QAAA,SAAS,CAAC,IAAI,EAAC,wBAAwB,EAAE,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAE,CAAE;;8GAzOrD,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAKf,gBAAgB,CAChB,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,gBAAgB,yCAChB,gBAAgB,CAAA,EAAA,KAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAChB,gBAAgB,CAChB,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,gBAAgB,0EAChB,gBAAgB,CAAA,EAAA,uBAAA,EAAA,CAAA,yBAAA,EAAA,yBAAA,EAChB,gBAAgB,CAKhB,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,CAAA,wBAAA,EAAA,wBAAA,EAAA,gBAAgB,wDAChB,gBAAgB,CAAA,EAAA,iBAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,EAChB,gBAAgB,CAAA,EAAA,uBAAA,EAAA,CAAA,yBAAA,EAAA,yBAAA,EAChB,gBAAgB,CAAA,EAAA,iBAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,EAChB,gBAAgB,CAGhB,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAgB,+CAChB,gBAAgB,CAAA,EAAA,qBAAA,EAAA,CAAA,uBAAA,EAAA,uBAAA,EAChB,gBAAgB,CAChB,EAAA,yBAAA,EAAA,CAAA,2BAAA,EAAA,2BAAA,EAAA,gBAAgB,CAChB,EAAA,uBAAA,EAAA,CAAA,yBAAA,EAAA,yBAAA,EAAA,gBAAgB,CAChB,EAAA,kBAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,gBAAgB,uEAChB,gBAAgB,CAAA,EAAA,mBAAA,EAAA,CAAA,qBAAA,EAAA,qBAAA,EAChB,gBAAgB,CAChB,EAAA,qBAAA,EAAA,CAAA,uBAAA,EAAA,uBAAA,EAAA,gBAAgB,8DAChB,gBAAgB,CAAA,EAAA,mBAAA,EAAA,CAAA,qBAAA,EAAA,qBAAA,EAChB,gBAAgB,CAAA,EAAA,uBAAA,EAAA,CAAA,yBAAA,EAAA,yBAAA,EAChB,gBAAgB,CAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAChB,gBAAgB,CAChB,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAgB,oEAChB,gBAAgB,CAAA,EAAA,yBAAA,EAAA,CAAA,2BAAA,EAAA,2BAAA,EAChB,gBAAgB,CAChB,EAAA,qBAAA,EAAA,CAAA,uBAAA,EAAA,uBAAA,EAAA,gBAAgB,CAChB,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAAA,gBAAgB,CAChB,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAAA,gBAAgB,gFAChB,gBAAgB,CAAA,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAChB,gBAAgB,CAChB,EAAA,kBAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,gBAAgB,0EAChB,gBAAgB,CAAA,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAChB,gBAAgB,CAAA,EAAA,kBAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAChB,gBAAgB,CAAA,EAAA,sBAAA,EAAA,CAAA,wBAAA,EAAA,wBAAA,EAChB,gBAAgB,CAChB,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAgB,qDAChB,gBAAgB,CAAA,EAAA,+BAAA,EAAA,CAAA,iCAAA,EAAA,iCAAA,EAChB,gBAAgB,CAChB,EAAA,kBAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,gBAAgB,CAChB,EAAA,kBAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,gBAAgB,CAChB,EAAA,oBAAA,EAAA,CAAA,sBAAA,EAAA,sBAAA,EAAA,gBAAgB,uOA5DzB,CAAC,gBAAgB,CAAC,ECpC/B,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,myIAoFA,s57EDjDY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,2BAA2B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,SAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,SAAA,EAAA,CAAA,CAAA;;2FAOzD,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EACxB,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,EAAE,2BAA2B,CAAC,EAAA,SAAA,EAC1D,CAAC,gBAAgB,CAAC,EAGd,aAAA,EAAA,iBAAiB,CAAC,SAAS,EAAA,QAAA,EAAA,myIAAA,EAAA,MAAA,EAAA,CAAA,+17EAAA,CAAA,EAAA;wDAQF,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,KAAK,EAAA,CAAA;sBAA5C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,oBAAoB,EAAA,CAAA;sBAA3D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,uBAAuB,EAAA,CAAA;sBAA9D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,WAAW,EAAA,CAAA;sBAAnB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACuC,sBAAsB,EAAA,CAAA;sBAA7D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,cAAc,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,iBAAiB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,uBAAuB,EAAA,CAAA;sBAA9D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,iBAAiB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACuC,WAAW,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,WAAW,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,qBAAqB,EAAA,CAAA;sBAA5D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,yBAAyB,EAAA,CAAA;sBAAhE,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,uBAAuB,EAAA,CAAA;sBAA9D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,kBAAkB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,mBAAmB,EAAA,CAAA;sBAA1D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,mBAAmB,EAAA,CAAA;sBAA1D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,qBAAqB,EAAA,CAAA;sBAA5D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,gBAAgB,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,mBAAmB,EAAA,CAAA;sBAA1D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,uBAAuB,EAAA,CAAA;sBAA9D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,YAAY,EAAA,CAAA;sBAAnD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,cAAc,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,kBAAkB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,yBAAyB,EAAA,CAAA;sBAAhE,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,qBAAqB,EAAA,CAAA;sBAA5D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,gBAAgB,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,sBAAsB,EAAA,CAAA;sBAA7D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,gBAAgB,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,kBAAkB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,oBAAoB,EAAA,CAAA;sBAA3D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,eAAe,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,kBAAkB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,sBAAsB,EAAA,CAAA;sBAA7D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,WAAW,EAAA,CAAA;sBAAlD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,+BAA+B,EAAA,CAAA;sBAAtE,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,kBAAkB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,kBAAkB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,oBAAoB,EAAA,CAAA;sBAA3D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,YAAY,EAAA,CAAA;sBAApB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBAES,sBAAsB,EAAA,CAAA;sBAA/B;gBACS,6BAA6B,EAAA,CAAA;sBAAtC;;;IEtGS;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;IACjC,SAA2C,CAAA,qBAAA,CAAA,GAAA,qBAAA,CAAA;AAC7C,CAAC,EANW,SAAS,KAAT,SAAS,GAMpB,EAAA,CAAA,CAAA;;MCOY,sBAAsB,CAAA;AAPnC,IAAA,WAAA,GAAA;QAQW,IAAW,CAAA,WAAA,GAAY,EAAE;QACzB,IAAQ,CAAA,QAAA,GAAY,EAAE;QACS,IAAK,CAAA,KAAA,GAAa,KAAK;QACvB,IAAO,CAAA,OAAA,GAAa,KAAK;QACxD,IAAc,CAAA,cAAA,GAAY,EAAE;QACG,IAAmB,CAAA,mBAAA,GAAa,KAAK;QACrC,IAAmB,CAAA,mBAAA,GAAa,KAAK;AAC7E,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAY,SAAS,CAAC,aAAa,CAAC;QACrD,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC,KAAK,EAAG,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;;QAE5B,IAAsB,CAAA,sBAAA,GAAa,KAAK;QACxC,IAAkB,CAAA,kBAAA,GAAa,KAAK;QACpC,IAAmB,CAAA,mBAAA,GAAa,IAAI;QACpC,IAAO,CAAA,OAAA,GAAa,KAAK;QACzB,IAAyB,CAAA,yBAAA,GAAY,IAAI;QACxE,IAAgB,CAAA,gBAAA,GAAY,IAAI;AAC/B,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAU;;QAGpD,IAAS,CAAA,SAAA,GAAG,SAAS;AAET,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAY,MAAK;AAC5D,YAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;gBAC9B,OAAO,SAAS,CAAC,gBAAgB;;AAGnC,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE;AACzB,SAAC,CAAC;AAoBH;IAlBC,YAAY,GAAA;AACV,QAAA,IAAK,IAAI,CAAC,mBAAmB,EAAG;AAC9B,YAAA,SAAS,CAAC,IAAI,EAAE,sBAAsB,EAAE,MAAM,CAAC;;;IAInD,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,SAAS,CAAC,aAAa,EAAE;;AAEtD,YAAA,SAAS,CAAC,IAAI,EAAE,sBAAsB,EAAE,MAAM,CAAC;;;IAInD,mBAAmB,GAAA;AACjB,QAAA,IAAK,IAAI,CAAC,KAAK,EAAG;AAChB,YAAA,SAAS,CAAC,IAAI,EAAE,sBAAsB,EAAE,SAAS,CAAC;;;8GA7C3C,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAGb,gBAAgB,EAChB,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,gBAAgB,mTAEhB,gBAAgB,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAChB,gBAAgB,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAIhB,gBAAgB,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAChB,gBAAgB,EAChB,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,gBAAgB,EAChB,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,gBAAgB,EAChB,EAAA,yBAAA,EAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,gBAAgB,mPC5BtC,k+DAmDA,EAAA,MAAA,EAAA,CAAA,08xBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3CY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,SAAA,EAAA,CAAA,CAAA;;2FAK5B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;+BACE,oBAAoB,EAAA,OAAA,EACrB,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,aAAA,EAGzB,iBAAiB,CAAC,SAAS,EAAA,QAAA,EAAA,k+DAAA,EAAA,MAAA,EAAA,CAAA,08xBAAA,CAAA,EAAA;8BAGjC,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACuC,KAAK,EAAA,CAAA;sBAA5C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,cAAc,EAAA,CAAA;sBAAtB;gBACuC,mBAAmB,EAAA,CAAA;sBAA1D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,mBAAmB,EAAA,CAAA;sBAA1D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAIE,sBAAsB,EAAA,CAAA;sBAA7D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,kBAAkB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,mBAAmB,EAAA,CAAA;sBAA1D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,yBAAyB,EAAA,CAAA;sBAAhE,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAC7B,gBAAgB,EAAA,CAAA;sBAAxB;gBACS,oBAAoB,EAAA,CAAA;sBAA7B;;;MElBU,mCAAmC,CAAA;AAO9C,IAAA,WAAA,GAAA;AANiB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAItC,IAA6B,CAAA,6BAAA,GAAW,uBAAuB;QAGvE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;;IAGvC,8BAA8B,GAAA;;AAEpC,QAAA,MAAM,mBAAmB,GAAuB,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,6BAA6B,CAAC;QAChH,IAAI,CAAC,mBAAmB,EAAE;AACxB,YAAA,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC;YAC9D;;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,mBAAmB,CAAC;;IAGtD,eAAe,GAAA;QACb,IAAI,CAAC,8BAA8B,EAAE;;IAG/B,qBAAqB,GAAA;AAC3B,QAAA,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;YACjB;;AAEF,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAC9B,MAAM,OAAO,GAAG,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,6BAA6B,CAAC;QAC3E,IAAI,CAAC,OAAO,EAAC;YACX;;AAGF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,YAAA,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC;YAC9D;;AAGF,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;;IAG/B,kBAAkB,GAAA;QAChB,IAAI,CAAC,qBAAqB,EAAE;;8GA5CnB,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,4FCZhD,mFAGA,EAAA,MAAA,EAAA,CAAA,wkGAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDSa,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAR/C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,EACnC,OAAA,EAAA,EAAE,EAGI,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,mFAAA,EAAA,MAAA,EAAA,CAAA,wkGAAA,CAAA,EAAA;;;AEFvC,MAAM,uBAAuB,GAAG,yBAAyB;AAwBnD,MAAO,sBAAuB,SAAQ,+BAA+B,CAAA;AACzE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;QAIT,IAAK,CAAA,KAAA,GAAG,KAAK;AAYb;;AAE4E;QAC5E,IAAa,CAAA,aAAA,GAAmB,EAAE;AAElC;;AAE4E;AACnE,QAAA,IAAA,CAAA,kBAAkB,GAAY,IAAI,CAAC;AAE5C;;AAE4E;QACpC,IAAkB,CAAA,kBAAA,GAAa,IAAI;AAE3E;;AAE4E;QACnE,IAAoB,CAAA,oBAAA,GAAY,CAAC;AAE1C;;AAE4E;QACnE,IAAsB,CAAA,sBAAA,GAAY,OAAO;AAElD;;AAE4E;QACnE,IAAQ,CAAA,QAAA,GAAY,EAAE;AA8C/B;;AAE4E;QAC5E,IAAW,CAAA,WAAA,GAAY,KAAK;QAC5B,IAAY,CAAA,YAAA,GAAY,KAAK;QAC7B,IAAgB,CAAA,gBAAA,GAAmB,EAAE;;QAErC,IAAoB,CAAA,oBAAA,GAAmB,EAAE;AAGzC;;AAE4E;AAClE,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,YAAY,EAAU;AAEjE;;AAE4E;AAClE,QAAA,IAAA,CAAA,8BAA8B,GAAG,IAAI,YAAY,EAAU;AAErE;;AAE4E;AAClE,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,YAAY,EAAU;;AA3GjE,IAAA,IACI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;;AAG1B,IAAA,IACI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC;;AAiCd,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;YACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY;AACjD,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;;;IAIjC,cAAc,CAAC,QAAgB,yBAAuB;QACpD,MAAM,IAAI,GAAG,QAAQ,IAAK,OAAO,QAAQ,KAAK,QAAQ;QACtD,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE;AACvB,YAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;YACzB;;QAGF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AACpC,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,QAAQ;;AAGrC,QAAA,IAAI,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,GAAG,KAAK,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAE,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAE,GAAG,CAAC,CAAE;AACnI,QAAA,eAAe,GAAG,eAAe,CAAC,MAAM,CAAE,CAAC,IAAI,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;;AAGnF,QAAA,eAAe,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAE,CAAC,MAAM,KAAI;YACpD,IAAK,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAE,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAE,GAAG,CAAC,EAAC;AAC9E,gBAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;AAEzC,gBAAA,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAG;oBAChC,UAAU,CAAC,MAAK;wBACd,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC;AAC7C,qBAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC;;;AAGjC,SAAC,CAAC;;AAGF,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM;;AAG9J,QAAA,IAAI,CAAC,gBAAgB,GAAI,IAAI,CAAC,aAAa;QAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC;;AA4BpD;;AAE4E;IAC5E,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAGpC;;AAE4E;AAC5E,IAAA,aAAa,CAAE,IAAkB,EAAE,OAAgB,EAAE,KAAwB,EAAA;QAC3E,IAAI,OAAO,EAAE;YACX,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;;QAG3C,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,eAAe,EAAE;YACvB,KAAK,CAAC,cAAc,EAAE;;AAGxB,QAAA,SAAS,CAAC,IAAI,EAAE,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;AAGrE;;AAE4E;AAC5E,IAAA,oBAAoB,CAAE,KAAyB,EAAE,YAAY,GAAG,IAAI,EAAA;QAClE,IAAI,CAAC,KAAK,EAAE;YACV;;QAGF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,KAAK,CAAE;AACzF,QAAA,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC;QACjC,IAAK,YAAY,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3D,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;;;AAI7B;;AAE4E;IAC5E,kBAAkB,GAAA;AAChB,QAAA,SAAS,CAAC,IAAI,EAAE,gCAAgC,CAAC;QACjD,IAAI,CAAC,4BAA4B,EAAE;;AAGrC;;AAE4E;IAC5E,cAAc,CAAE,IAAkB,EAAE,KAAa,EAAA;AAC/C,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,SAAS,CAAC,IAAI,EAAE,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;AAGrE;;AAE4E;IAC5E,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE;;AAGhC,IAAA,kBAAkB,CAAC,OAAqB,EAAA;AACtC,QAAA,IAAG,CAAC,OAAO,EAAE,EAAE,EAAC;AACd,YAAA,OAAO,IAAI;;QAEb,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,uBAAuB,CAAC;QAC9E,IAAG,CAAC,iBAAiB,EAAC;AACpB,YAAA,OAAO,IAAI;;QAEb,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;;AAGhD,IAAA,mBAAmB,CAAC,WAAqB,EAAA;QACvC,IAAG,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,GAAE,CAAC,EAAC;YACvC;;QAEF,IAAI,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,uBAAuB,CAAC;QAC5E,iBAAiB,KAAK,EAAE;AACxB,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAY,KAAG;YAClC,IAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAC;AACpC,gBAAA,iBAAiB,KAAG,IAAI,GAAC,GAAG,CAAC;;AAEjC,SAAC,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,uBAAuB,EAAC,iBAAiB,CAAC;;IAGxE,4BAA4B,GAAA;AAC1B,QAAA,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,uBAAuB,CAAC;;AAGzD;;AAE4E;IAC5E,iBAAiB,CAAE,IAAkB,EAAE,KAAa,EAAA;QAClD,IAAI,eAAe,GAA2B,EAAE;AAChD,QAAA,IAAK,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;YAC/C,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;;AAExE,QAAA,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE;;8GAzN1B,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EA+Bb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,gBAAgB,CApCzB,EAAA,oBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,gBAAgB,CAAC,EC1B/B,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,g/JAyHM,EDnGF,MAAA,EAAA,CAAA,iveAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,4FACf,mCAAmC,EAAA,QAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAO1B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAZlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EACrB,OAAA,EAAA;wBACP,YAAY;wBACZ,eAAe;wBACf;AACD,qBAAA,EAAA,SAAA,EACU,CAAC,gBAAgB,CAAC,EAGd,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,g/JAAA,EAAA,MAAA,EAAA,CAAA,iveAAA,CAAA,EAAA;wDAWjC,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,oBAAoB;gBAM7B,SAAS,EAAA,CAAA;sBADZ,WAAW;uBAAC,kBAAkB;gBAatB,kBAAkB,EAAA,CAAA;sBAA1B;gBAKuC,kBAAkB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAK7B,oBAAoB,EAAA,CAAA;sBAA5B;gBAKQ,sBAAsB,EAAA,CAAA;sBAA9B;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBA2DS,0BAA0B,EAAA,CAAA;sBAAnC;gBAKS,8BAA8B,EAAA,CAAA;sBAAvC;gBAKS,0BAA0B,EAAA,CAAA;sBAAnC;;;AEpIG,MAAO,2BAA4B,SAAQ,+BAA+B,CAAA;AAC9E,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAGT;;AAE4E;AAC5E,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,CAAC,CAAC;AAGpB,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,YAAY,EAAU;;AAEhE;;AAE4E;AAC5E,IAAA,YAAY,CAAE,MAAc,EAAA;AAC1B,QAAA,SAAS,CAAC,IAAI,EAAE,2BAA2B,EAAE,MAAM,CAAC;;8GAjB3C,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,EAAA,SAAA,EAL3B,CAAC,gBAAgB,CAAC,iDCT/B,o1BAuBM,EAAA,MAAA,EAAA,CAAA,oxCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfM,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,SAAA,EAAA,CAAA,CAAA;;2FAM5B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBARvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAC3B,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,CAAC,EAC7B,SAAA,EAAA,CAAC,gBAAgB,CAAC,EAGd,aAAA,EAAA,iBAAiB,CAAC,SAAS,EAAA,QAAA,EAAA,o1BAAA,EAAA,MAAA,EAAA,CAAA,oxCAAA,CAAA,EAAA;wDAahC,yBAAyB,EAAA,CAAA;sBAAlC;;;AEYG,MAAO,wBAAyB,SAAQ,+BAA+B,CAAA;AAC3E,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAGT,QAAA,IAAA,CAAA,cAAc,GAAe;YAC3B,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;YAC7C,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;YAC7C,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE;YAClD,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE;YACxD,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9C,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9C,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9C,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;YAC9C,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;YAClD,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS;SACjD;AAED;;AAE4E;QAC5E,IAAW,CAAA,WAAA,GAAG,KAAK;QACnB,IAAoB,CAAA,oBAAA,GAAG,KAAK;AAE5B;;AAE4E;QACpC,IAAsB,CAAA,sBAAA,GAAa,IAAI;QACvC,IAA0B,CAAA,0BAAA,GAAa,KAAK;QAC5C,IAAgB,CAAA,gBAAA,GAAa,IAAI;QACjC,IAAkB,CAAA,kBAAA,GAAa,IAAI;QACnC,IAAY,CAAA,YAAA,GAAa,IAAI;QAC7B,IAAmB,CAAA,mBAAA,GAAa,IAAI;QACpC,IAAc,CAAA,cAAA,GAAa,IAAI;QAC/B,IAAiB,CAAA,iBAAA,GAAa,IAAI;QAClC,IAAsB,CAAA,sBAAA,GAAa,IAAI;QACvC,IAAa,CAAA,aAAA,GAAa,IAAI;QAC9B,IAAU,CAAA,UAAA,GAAa,KAAK;QAC5B,IAAO,CAAA,OAAA,GAAa,KAAK;QACzB,IAAY,CAAA,YAAA,GAAa,KAAK;AAEtE;;AAE4E;QACnE,IAAW,CAAA,WAAA,GAAY,EAAE;QACzB,IAAQ,CAAA,QAAA,GAAY,cAAc;QAClC,IAAY,CAAA,YAAA,GAAY,EAAE;QAC1B,IAAgB,CAAA,gBAAA,GAAY,wEAAwE;QACpG,IAAkB,CAAA,kBAAA,GAAY,sCAAsC;QACpE,IAAY,CAAA,YAAA,GAAY,mEAAmE;AACpG;;AAE4E;AAClE,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,EAAqB;AAC9D,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,YAAY,EAAU;AAS9D;;;AAG4E;AAC5E,QAAA,IAAA,CAAA,cAAc,GAAe;AAC3B,YAAA,EAAE,EAAE,EAAC,qBAAqB,EAAE,MAAM,EAAC,iBAAiB,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAC;AACjL,YAAA,EAAE,EAAE,EAAC,qBAAqB,EAAE,MAAM,EAAC,qBAAqB,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAC;YAC7M,EAAE,EAAE,EAAC,eAAe,EAAE,MAAM,EAAC,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,GAAG,GAAA,EAAK,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAC;YACjO,EAAE,EAAE,EAAC,iBAAiB,EAAE,MAAM,EAAC,aAAa,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,GAAG,GAAA,EAAK,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAC;YAC5O,EAAE,EAAE,EAAC,WAAW,EAAE,MAAM,EAAC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,GAAA,EAAK,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAC;AAC5M,YAAA,EAAE,EAAE,EAAC,kBAAkB,EAAE,MAAM,EAAC,cAAc,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAC;AACzK,YAAA,EAAE,EAAE,EAAC,kBAAkB,EAAE,MAAM,EAAC,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAC;AAC5J,YAAA,EAAE,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAC;AAC7J,YAAA,EAAE,EAAE,EAAC,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAC;AACpI,YAAA,EAAE,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE;SAC5I;;AArBD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC;;;AAqBxE;;AAE4E;IAC5E,gBAAgB,CAAE,IAAc,EAAE,KAAc,EAAA;QAC9C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YACpC;;AAIF,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,6BAA6B,EAAE;;aAEjC;AACH,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;AACjC,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;YACxB,SAAS,CAAC,IAAI,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;;;AAIhG;;AAE4E;AAC5E,IAAA,eAAe,CAAE,QAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,SAAS,CAAC,IAAI,EAAE,yBAAyB,EAAE,QAAQ,CAAC;;AAGtD;;AAE4E;IAC5E,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;AACpC,QAAA,IAAG,CAAC,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;;;AAIrC;;AAE4E;IAC5E,6BAA6B,GAAA;AAC3B,QAAA,IAAG,CAAC,IAAI,CAAC,WAAW,EAAE;YACpB;;AAEF,QAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,oBAAoB;;AAGxD;;AAE4E;AAC5E,IAAA,SAAS,CAAC,IAAc,EAAA;QAEtB,IAAI,IAAI,EAAE;YACR,OAAO,CAAC,IAAI,CAAE,CAAA,EAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAA4C,OAAA,CAAA,CAAC;;AAGnG,QAAA,OAAO,KAAK;;;AAId,IAAA,SAAS,CAAC,IAA0B,EAAA;AAClC,QAAA,IAAI,OAAO,GAAG,IAAI,EAAE,GAAG;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,gBAAgB,CAAC;AACzF,QAAA,MAAM,QAAQ,GAAG,UAAU,EAAE,KAAK;QAClC,MAAM,gBAAgB,GAAG,OAAO,EAAE,QAAQ,GAAG,KAAK,CAAC,IAAI,QAAQ;AAC/D,QAAA,IAAI,IAAI,EAAE,WAAW,IAAI,gBAAgB,EAAE;AACzC,YAAA,OAAO,GAAG,OAAO,GAAG,GAAG;YACvB,IAAI,gBAAgB,EAAE;AACpB,gBAAA,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ;AACnC,gBAAA,IAAI,IAAI,EAAE,WAAW,EAAE;AACrB,oBAAA,OAAO,GAAG,OAAO,GAAG,GAAG;;;AAG3B,YAAA,IAAI,IAAI,EAAE,WAAW,EAAE;AACrB,gBAAA,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,WAAW;;;AAGxC,QAAA,OAAO,OAAO;;IAGhB,aAAa,GAAA;QACX,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc;AACrG,QAAA,OAAO,qBAAqB,CAAC,GAAG,CAAE,CAAC,IAAI,KAAI;YAEzC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,UAA6C,CAAC,CAAC,EAAE;gBAC3G;;AAEF,YAAA,OAAO,IAAI;AACb,SAAC,CAAC;;AAGJ,IAAA,UAAU,CAAC,IAA0B,EAAA;QACnC,OAAO,gBAAgB,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;;8GA7K7E,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EA2Bf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,sBAAA,EAAA,CAAA,wBAAA,EAAA,wBAAA,EAAA,gBAAgB,CAChB,EAAA,0BAAA,EAAA,CAAA,4BAAA,EAAA,4BAAA,EAAA,gBAAgB,8DAChB,gBAAgB,CAAA,EAAA,kBAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAChB,gBAAgB,CAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAChB,gBAAgB,CAChB,EAAA,mBAAA,EAAA,CAAA,qBAAA,EAAA,qBAAA,EAAA,gBAAgB,CAChB,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAgB,iEAChB,gBAAgB,CAAA,EAAA,sBAAA,EAAA,CAAA,wBAAA,EAAA,wBAAA,EAChB,gBAAgB,CAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAChB,gBAAgB,CAChB,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,gBAAgB,CAChB,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,gBAAgB,kDAChB,gBAAgB,CAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,EAAA,SAAA,EA7CzB,CAAC,gBAAgB,CAAC,EC/B/B,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,q8GAuGA,EDzEY,MAAA,EAAA,CAAA,w6hBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,6VAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,SAAA,EAAA,CAAA,CAAA;;2FAO5B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EACxB,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,CAAC,EAC7B,SAAA,EAAA,CAAC,gBAAgB,CAAC,EAGd,aAAA,EAAA,iBAAiB,CAAC,SAAS,EAAA,QAAA,EAAA,q8GAAA,EAAA,MAAA,EAAA,CAAA,w6hBAAA,CAAA,EAAA;wDA8BF,sBAAsB,EAAA,CAAA;sBAA7D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,0BAA0B,EAAA,CAAA;sBAAjE,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,gBAAgB,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,kBAAkB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,YAAY,EAAA,CAAA;sBAAnD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,mBAAmB,EAAA,CAAA;sBAA1D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,cAAc,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,iBAAiB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,sBAAsB,EAAA,CAAA;sBAA7D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,aAAa,EAAA,CAAA;sBAApD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBACE,YAAY,EAAA,CAAA;sBAAnD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAK7B,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBAIS,sBAAsB,EAAA,CAAA;sBAA/B;gBACS,uBAAuB,EAAA,CAAA;sBAAhC;;;MEhFU,oBAAoB,CAAA;AAPjC,IAAA,WAAA,GAAA;AAQE;;AAE4E;AAC5E,QAAA,IAAA,CAAA,SAAS,GAAG;AACV,YAAA,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC;AAC9B,YAAA,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC;AAC9B,YAAA,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC;AAC9B,YAAA,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC;AAC9B,YAAA,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC;AAC9B,YAAA,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC;AAC9B,YAAA,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC;AAC9B,YAAA,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC;AAC9B,YAAA,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC;AAC9B,YAAA,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAC;AAC9B,YAAA,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM;SAC9B;AAED;;AAE4E;QAC5E,IAAW,CAAA,WAAA,GAAG,KAAK;AAEnB;;AAE4E;QACpC,IAAO,CAAA,OAAA,GAAa,KAAK;AAEjE;;AAE4E;QACnE,IAAY,CAAA,YAAA,GAAY,KAAK;AAEtC;;AAE4E;AAClE,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAU;AAyB3D;AAvBC;;AAE4E;AAC5E,IAAA,WAAW,CAAE,IAAY,EAAA;AACvB,QAAA,SAAS,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC;;AAG9C;;AAE4E;IAC5E,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;;AAGtC;;AAE4E;AAC5E,IAAA,mBAAmB,CAAE,MAAc,EAAA;QACjC,OAAO;AACL,YAAA,UAAU,EAAE,IAAI,CAAC,YAAY,KAAK,MAAM;AACxC,YAAA,CAAC,UAAU,GAAG,MAAM,GAAG;SACxB;;8GA3DQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EA0BX,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,gBAAgB,CCrCtC,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,69BA+BA,25HDzBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,SAAA,EAAA,CAAA,CAAA;;2FAKX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,WACnB,CAAC,YAAY,CAAC,EAGR,aAAA,EAAA,iBAAiB,CAAC,SAAS,EAAA,QAAA,EAAA,69BAAA,EAAA,MAAA,EAAA,CAAA,o2HAAA,CAAA,EAAA;8BA4BF,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAK7B,YAAY,EAAA,CAAA;sBAApB;gBAKS,mBAAmB,EAAA,CAAA;sBAA5B;;;AEhCG,MAAO,yBAA0B,SAAQ,+BAA+B,CAAA;AAC5E,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAGT;;;AAG4E;AAC5E,QAAA,IAAA,CAAA,cAAc,GAAG;YACf,EAAE,IAAI,EAAC,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,aAAa,EAAC;YACxE,EAAE,IAAI,EAAC,SAAS,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,eAAe,EAAC;SAC/E;AAMD;;AAE4E;QAC5E,IAAW,CAAA,WAAA,GAAG,KAAK;AAEnB;;AAE4E;QACpC,IAAO,CAAA,OAAA,GAAa,KAAK;AAEjE;;AAE4E;QACnE,IAAY,CAAA,YAAA,GAAY,SAAS;AAE1C;;AAE4E;AAClE,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,YAAY,EAAU;;AAtB/D,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC;;AAwBzE,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC;;;AAIxE;;AAE4E;AAC5E,IAAA,gBAAgB,CAAE,IAAY,EAAA;AAC5B,QAAA,SAAS,CAAC,IAAI,EAAE,0BAA0B,EAAE,IAAI,CAAC;;AAGnD;;AAE4E;IAC5E,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;;8GAxD3B,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EA0BhB,gBAAgB,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,EAAA,SAAA,EAhCzB,CAAC,gBAAgB,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECT/B,ivCAsCA,EAAA,MAAA,EAAA,CAAA,u+KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED9BY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,SAAA,EAAA,CAAA,CAAA;;2FAO5B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBATrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EACzB,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,CAAC,EAC7B,SAAA,EAAA,CAAC,gBAAgB,CAAC,EAGd,aAAA,EAAA,iBAAiB,CAAC,SAAS,EAAA,QAAA,EAAA,ivCAAA,EAAA,MAAA,EAAA,CAAA,u+KAAA,CAAA,EAAA;wDA6BF,OAAO,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAK7B,YAAY,EAAA,CAAA;sBAApB;gBAKS,wBAAwB,EAAA,CAAA;sBAAjC;;;ME5CU,sBAAsB,CAAA;AAHnC,IAAA,WAAA,GAAA;QASmB,IAAW,CAAA,WAAA,GAAW,IAAI;QAC3C,IAAgB,CAAA,gBAAA,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,WAAW,CAAC;AACjE,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,eAAe,CAAmB,EAAE,CAAC;;;QAsD3D,IAAiB,CAAA,iBAAA,GAAY,SAAS;AAE/C;;IA7DC,IAAI,gBAAgB,CAAC,GAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,iBAAiB,GAAG,GAAG;;AAM9B,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;;IAGzC,IAAI,sBAAsB,CAAC,WAA8B,EAAA;AACvD,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC;;AAGhD,IAAA,IAAI,sBAAsB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE;;;;IAKhD,MAAM,kBAAkB,CAAC,IAAa,EAAA;AACpC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,QAAA,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;;AAGvC,IAAA,uBAAuB,CAAC,SAAyB,EAAA;QAC/C,MAAM,GAAG,GAAsB,EAAE;AACjC,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;AACtE,YAAA,IAAG,OAAO,KAAK,IAAI,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAE,CAAC,KAAK,GAAG,CAAC,EAAC;AAC1D,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;;;AAIpB,QAAA,OAAO,GAAG;;IAGZ,MAAM,oBAAoB,CAAC,IAAa,EAAA;AACtC,QAAA,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,CAAA,EAAG,IAAI,CAAC,iBAAiB,CAAA,SAAA,EAAY,IAAI,CAAA,KAAA,CAAO,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,CAAiC,8BAAA,EAAA,IAAI,CAAC,iBAAiB,CAAY,SAAA,EAAA,IAAI,CAAO,KAAA,CAAA,CAAC;AAC3F,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACjB,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;;AAElC,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;YAC7B,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,CAAG,EAAA,IAAI,CAAC,iBAAiB,CAAkB,gBAAA,CAAA,CAAC;YAC7E,MAAM,gBAAgB,GAAG,MAAM,YAAY,EAAE,IAAI,IAAI;YACrD,MAAM,uBAAuB,GAAG,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACjF,YAAA,IAAI,uBAAuB,EAAE,MAAM,EAAE;AACnC,gBAAA,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE;AAC3C,oBAAA,MAAM,SAAS,GAAG,uBAAuB,CAAC,KAAK,CAAC;oBAChD,QAAQ,CAAC,SAAS,CAAC,KAAK,gBAAgB,CAAC,SAAS,CAAC;;;;AAIzD,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC;;8GAzDlC,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;;2FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACND;;AAEG;;ACFH;;AAEG;;;;"}
|