@bimplus/navigation 0.0.206 → 0.0.207

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.
@@ -1173,11 +1173,11 @@ class BimplusUpgradeLinkComponent extends BimplusLocalizedWidgetComponent {
1173
1173
  fireEvent(this, "bimplusUpgradeLinkClicked", domainLink);
1174
1174
  }
1175
1175
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: BimplusUpgradeLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1176
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.0.5", type: BimplusUpgradeLinkComponent, isStandalone: true, selector: "lib-bimplus-upgrade-link", inputs: { shopUrl: "shopUrl", country: "country", isTouch: ["isTouch", "isTouch", booleanAttribute] }, outputs: { bimplusUpgradeLinkClicked: "bimplusUpgradeLinkClicked" }, providers: [TranslateService], usesInheritance: true, ngImport: i0, template: " <div\n class=\"bimplus-upgrade-link secondary-button body-text-mixin\"\n [ngClass]=\"isTouch ? 'is-touch' : ''\"\n (click)=\"_linkClicked()\"\n (keypress)=\"_linkClicked()\"\n >\n {{ \"_Upgrade_to_Bimplus\" | translate }}\n </div>\n\n", styles: [".secondary-button{border:solid 2px var(--color-border-input-focus);border-radius:.4rem;padding:.4rem;box-sizing:border-box;line-height:1.2;height:100%;display:inline-block;color:var(--color-border-input-focus);text-transform:uppercase;text-align:center;vertical-align:middle;font-family:var(--font-family, \"Source Sans Pro\", Helvetica, Arial, tahoma, sans-serif);font-size:100%;font-weight:var(--font-weight, 700);cursor:pointer}.secondary-button:hover{background-color:var(--color-background-button-secondary-hover)}.secondary-button.hidden{visibility:hidden}.is-touch .secondary-button{padding-left:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
1176
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.0.5", type: BimplusUpgradeLinkComponent, isStandalone: true, selector: "lib-bimplus-upgrade-link", inputs: { shopUrl: "shopUrl", country: "country", isTouch: ["isTouch", "isTouch", booleanAttribute] }, outputs: { bimplusUpgradeLinkClicked: "bimplusUpgradeLinkClicked" }, providers: [TranslateService], usesInheritance: true, ngImport: i0, template: " <div\n class=\"bimplus-upgrade-link secondary-button body-text-mixin\"\n [ngClass]=\"isTouch ? 'is-touch' : ''\"\n (click)=\"_linkClicked()\"\n (keypress)=\"_linkClicked()\"\n >\n {{ \"_Upgrade_to_Bimplus\" | translate }}\n </div>\n\n", styles: [".secondary-button{border:solid 2px var(--color-border-input-focus);border-radius:.4rem;padding:.4rem;box-sizing:border-box;line-height:1.2;height:100%;display:inline-block;color:var(--color-border-input-focus);text-transform:uppercase;text-align:center;font-family:var(--font-family, \"Source Sans Pro\", Helvetica, Arial, tahoma, sans-serif);font-size:100%;font-weight:var(--font-weight, 700);cursor:pointer}.secondary-button:hover{background-color:var(--color-background-button-secondary-hover)}.secondary-button.hidden{visibility:hidden}.is-touch .secondary-button{padding-left:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
1177
1177
  }
1178
1178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: BimplusUpgradeLinkComponent, decorators: [{
1179
1179
  type: Component,
1180
- args: [{ selector: 'lib-bimplus-upgrade-link', imports: [CommonModule, TranslateModule], providers: [TranslateService], encapsulation: ViewEncapsulation.ShadowDom, template: " <div\n class=\"bimplus-upgrade-link secondary-button body-text-mixin\"\n [ngClass]=\"isTouch ? 'is-touch' : ''\"\n (click)=\"_linkClicked()\"\n (keypress)=\"_linkClicked()\"\n >\n {{ \"_Upgrade_to_Bimplus\" | translate }}\n </div>\n\n", styles: [".secondary-button{border:solid 2px var(--color-border-input-focus);border-radius:.4rem;padding:.4rem;box-sizing:border-box;line-height:1.2;height:100%;display:inline-block;color:var(--color-border-input-focus);text-transform:uppercase;text-align:center;vertical-align:middle;font-family:var(--font-family, \"Source Sans Pro\", Helvetica, Arial, tahoma, sans-serif);font-size:100%;font-weight:var(--font-weight, 700);cursor:pointer}.secondary-button:hover{background-color:var(--color-background-button-secondary-hover)}.secondary-button.hidden{visibility:hidden}.is-touch .secondary-button{padding-left:0}\n"] }]
1180
+ args: [{ selector: 'lib-bimplus-upgrade-link', imports: [CommonModule, TranslateModule], providers: [TranslateService], encapsulation: ViewEncapsulation.ShadowDom, template: " <div\n class=\"bimplus-upgrade-link secondary-button body-text-mixin\"\n [ngClass]=\"isTouch ? 'is-touch' : ''\"\n (click)=\"_linkClicked()\"\n (keypress)=\"_linkClicked()\"\n >\n {{ \"_Upgrade_to_Bimplus\" | translate }}\n </div>\n\n", styles: [".secondary-button{border:solid 2px var(--color-border-input-focus);border-radius:.4rem;padding:.4rem;box-sizing:border-box;line-height:1.2;height:100%;display:inline-block;color:var(--color-border-input-focus);text-transform:uppercase;text-align:center;font-family:var(--font-family, \"Source Sans Pro\", Helvetica, Arial, tahoma, sans-serif);font-size:100%;font-weight:var(--font-weight, 700);cursor:pointer}.secondary-button:hover{background-color:var(--color-background-button-secondary-hover)}.secondary-button.hidden{visibility:hidden}.is-touch .secondary-button{padding-left:0}\n"] }]
1181
1181
  }], ctorParameters: () => [], propDecorators: { shopUrl: [{
1182
1182
  type: Input
1183
1183
  }], country: [{
@@ -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-upgrade-link/bimplus-upgrade-link.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-upgrade-link/bimplus-upgrade-link.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';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigationService {\n\n constructor() { }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-navigation',\n imports: [],\n template: `\n <p>\n navigation works!\n </p>\n `,\n styles: ``\n})\nexport class NavigationComponent {\n\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, signal, WritableSignal, inject } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { LocalizedStrings } from './../../types/types'\n\n@Component({\n selector: 'lib-bimplus-localized-widget',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n template: `\n <p>\n localized widget works!\n </p>\n `,\n styles: [],\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusLocalizedWidgetComponent {\n translateService = inject(TranslateService);\n\n\n _selectedLanguage: WritableSignal<string> = signal('en');\n get selectedLanguage(): string {\n return this._selectedLanguage();\n }\n @Input() set selectedLanguage(value: string) {\n this._selectedLanguage.set(value);\n this.translateService.use(value);\n try {\n this.translateService.setTranslation(this.selectedLanguage, this._localizedStrings());\n } catch (error) {\n console.error(error);\n }\n }\n\n _localizedStrings: WritableSignal<LocalizedStrings> = signal({} as LocalizedStrings);\n get localizedStrings(): LocalizedStrings {\n return this._localizedStrings();\n }\n @Input() set localizedStrings(value: LocalizedStrings) {\n this._localizedStrings.set(value);\n this.translateService.use(this.selectedLanguage);\n try {\n this.translateService.setTranslation(this.selectedLanguage, value);\n } catch (error) {\n console.error(error);\n }\n }\n}\n","// Define the type of the window.BimPlus object\nexport interface BimPlusObject {\n [key: string]: (dataDetail: { detail: unknown }) => void;\n}\nexport interface Source {\n[key: string]: { emit: (arg0: unknown) => void; };\n}\n\n\n/**--------------------------------------------------------------------------\n* fire event from component in two ways : \n- fire custom event from component in standard recommended way via. this.eventName.emit function\n\n- call window.BimPlus.eventName function directly on window object (eventName is name\n of the event we want to fire e.g. bimplusNavbarClicked so it will be window.BimPlus.bimplusNavbarClicked).\n Function must be defined in app. where we are using our components.\n This was implemented because MS Edge browser has problems with custom events and in some \n situations(e.g. after file download) it stops handling custom events.\n Disadvantage is that we can have only one event handler which is shared between the multiple components.\n--------------------------------------------------------------------------*/\nexport function fireEvent(source: unknown, eventName: string, data: unknown = null){\n if ( !eventName ) {\n console.error(\"ERROR: Missing event name in fireEvent function in Bimplus components!\");\n return;\n }\n // Check if eventName exists on window.BimPlus and if it's a function\n const bimPlus = ('BimPlus' in window) && typeof window.BimPlus === 'object' && (window.BimPlus as BimPlusObject);\n if (bimPlus && typeof bimPlus[eventName] === 'function') {\n bimPlus[eventName]({detail: data});\n }\n\n const _source = (source as Source);\n if (eventName in _source) {\n _source[eventName].emit(data);\n }\n}","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { BimplusLocalizedWidgetComponent } from '../../components/bimplus-localized-widget/bimplus-localized-widget.component';\nimport { fireEvent } from '../../utils/utils';\n\n@Component({\n selector: 'lib-bimplus-contact',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n templateUrl: './bimplus-contact.component.html',\n styleUrl: './bimplus-contact.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusContactComponent extends BimplusLocalizedWidgetComponent{\n constructor(){\n super();\n }\n \n @Output() bimplusContactClicked = new EventEmitter<string>();\n\n _contactClicked(){\n fireEvent(this, \"bimplusContactClicked\", \"contact\");\n }\n}\n","<a\n href=\"https://connect.allplan.com/support/contact.ct?SSO=1&autolang\"\n class=\"bimplus-contact-link\"\n rel=\"noopener\"\n target=\"_blank\"\n (click)=\"_contactClicked()\"\n [title]=\"'_BimplusContactTitle' | translate\"\n>\n <div class=\"bimplus-contact\"></div>\n</a>\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute } from '@angular/core';\nimport { fireEvent } from '../../utils/utils';\n\n@Component({\n selector: 'lib-bimplus-language-menu',\n imports: [CommonModule],\n templateUrl: './bimplus-language-menu.component.html',\n styleUrl: './bimplus-language-menu.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusLanguageMenuComponent {\n\n _languagesList = [\n { symbol: \"cs\", text: \"Čeština\"},\n { symbol: \"de\", text: \"Deutsch\"},\n { symbol: \"en\", text: \"English (UK)\"},\n { symbol: \"us\", text: \"English (US)\"},\n { symbol: \"es\", text: \"Español\"},\n { symbol: \"fr\", text: \"Français\"},\n { symbol: \"it\", text: \"Italiano\"},\n { symbol: \"ru\", text: \"Русский\"},\n { symbol: \"ro\", text: \"Romana\"},\n { symbol: \"tr\", text: \"Türkçe\"}\n ];\n\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\n @Input() selectedLanguage : string = \"en\";\n @Input({ transform: booleanAttribute }) expandUp : boolean = false;\n _menuOpened : boolean = false;\n\n @Output() bimplusLanguageSelected = new EventEmitter<string>();\n\n _switchLanguage( language: string ){\n fireEvent(this, \"bimplusLanguageSelected\", language);\n }\n\n _toggleOpened(){\n this._menuOpened = !this._menuOpened;\n }\n}\n","<div \n class=\"bimcomp-overlay\"\n [ngClass]=\"_menuOpened ? 'open' : ''\" \n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n >\n</div>\n<div data-test=\"language-menu-dropdown\"\n class=\"dropdown\" \n [ngClass]=\"_menuOpened ? 'open' : ''\" [ngClass]=\"isTouch ? 'is-touch' : ''\" \n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n >\n <div class=\"dropdown-toggle\" >\n <div class='main-icon icon-languages'></div>\n <span class=\"caret\"></span>\n </div>\n\n <ul class= \"bimcomp-dropdown-menu\" [ngClass]=\"{'open':_menuOpened, 'expand-up':expandUp }\">\n <li [attr.data-test]=\"'langmenu_item_' + languageItem.text\" \n class=\"bimcomp-dropdown-menu-item\" \n [ngClass]=\"selectedLanguage === languageItem.symbol ? 'selected' : ''\" \n (click)=\"_switchLanguage(languageItem.symbol)\"\n (keypress)=\"_switchLanguage(languageItem.symbol)\"\n *ngFor=\"let languageItem of _languagesList\"\n >\n <span>{{languageItem.text}}</span>\n </li>\n </ul>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, booleanAttribute } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { BimplusLocalizedWidgetComponent } from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\nimport { fireEvent } from '../../utils/utils';\nimport { MenuListType } from '../../types/types';\n\nexport interface BimplusProjectMenuComponentAttribute {\n [key: string]: unknown; // Add index signature allowing string indexing\n //Other properties and methods...\n}\n\n@Component({\n selector: 'lib-bimplus-project-menu',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n templateUrl: './bimplus-project-menu.component.html',\n styleUrl: './bimplus-project-menu.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusProjectMenuComponent extends BimplusLocalizedWidgetComponent {\n constructor(){\n super()\n }\n\n @Input() projectName: string = \"\";\n @Input() projectImageUrl: string = \"\";\n @Input() projectExplorerUrl: string = \"\";\n @Input() projectActiveItem: string = \"\";\n @Input({ transform: booleanAttribute }) projectmembersDisabled: boolean = false;\n @Input({ transform: booleanAttribute }) modelsDisabled: boolean = false;\n @Input({ transform: booleanAttribute }) documentsDisabled: boolean = false;\n @Input({ transform: booleanAttribute }) projectsettingsDisabled: boolean = false;\n @Input({ transform: booleanAttribute }) processesDisabled: boolean = false;\n\n @Input({ transform: booleanAttribute }) projectmembersVisible: boolean = true;\n @Input({ transform: booleanAttribute }) modelsVisible: boolean = true;\n @Input({ transform: booleanAttribute }) documentsVisible: boolean = true;\n @Input({ transform: booleanAttribute }) projectsettingsVisible: boolean = true;\n @Input({ transform: booleanAttribute }) processesVisible: boolean = true;\n\n @Input({ transform: booleanAttribute }) isCollapsed: boolean = false;\n @Input({ transform: booleanAttribute }) isMiniMode: boolean = false;\n @Input({ transform: booleanAttribute }) isTouch: boolean = false;\n @Input({ transform: booleanAttribute }) hideMenuIcons: boolean = false;\n @Input({ transform: booleanAttribute }) showHorizontalMenuIcons: boolean = false;\n @Input() menuItemsOrder : string[] = [];\n\n get prjImgUrl() {\n return this.projectImageUrl ? this.projectImageUrl : \"./assets/@bimplus/navigation/assets/bimplus_Components_Project_Pic_Default.webp\";\n }\n get backgroundValue() {\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'})`;\n }\n\n get prjImageOverlayStyle() {\n return { 'background': `${this.backgroundValue}` };\n }\n\n get prjImageStyle() {\n return { 'background': `url(${this.prjImgUrl})` };\n }\n\n /**--------------------------------------------------------------------------\n * List of menu items\n * Note : action is used to identify action which should be executed\n * and also it serves as info topic id\n --------------------------------------------------------------------------*/\n _menuPrjList: MenuListType[] = [\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: \"\" },\n { action: \"models\", id: \"portalBimModels\", type: \"\", class: \"bim-pm-icon-models\", textId: \"_Models_tooltip\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\n { action: \"documents\", id: \"portalBimDocuments\", type: \"\", class: \"bim-pm-icon-documents\", textId: \"_Documents_tooltip\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\n { action: \"projectsettings\", id: \"portalBimProjectSettings\", type: \"\", class: \"bim-pm-icon-project-settings\", textId: \"_Project_settings_tooltip\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\n { action: \"processes\", id: \"portalBimProcesses\", type: \"\", class: \"bim-pm-icon-processes\", textId: \"_Approvals\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" }\n ];\n\n get menuItems() : MenuListType[] {\n return this._menuPrjList.sort((a, b) => this.menuItemsOrder.indexOf(a.id) - this.menuItemsOrder.indexOf(b.id));\n }\n\n /**--------------------------------------------------------------------------\n * check if app is subscribed/visible\n --------------------------------------------------------------------------*/\n _isHidden(item: MenuListType): boolean {\n if (item) {\n const key = `${item.action ? item.action : item.id}Visible`;\n\n return !((this as unknown as BimplusProjectMenuComponentAttribute)[key]);\n }\n return false;\n }\n /**--------------------------------------------------------------------------\n * check if app is subscribed/visible\n --------------------------------------------------------------------------*/\n _isDisabled(item: MenuListType): boolean {\n\n if (item) {\n const key = `${item.action ? item.action : item.id}Disabled`;\n return !!(this as unknown as BimplusProjectMenuComponentAttribute)[key];\n }\n return false;\n }\n\n\n _projectMenuItemClicked(action: string, param: string) {\n console.log(action, param);\n }\n\n /**--------------------------------------------------------------------------\n* item clicked\n--------------------------------------------------------------------------*/\n _menuItemClicked(item: MenuListType, type: string, event: Event) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n console.log(item, type, event);\n\n\n if (type != \"info\") {\n if (this._isDisabled(item)) {\n return;\n }\n }\n const action = item.action;\n fireEvent(this, \"bimplusProjectMenuClicked\", { action, type });\n }\n\n _menuItemIgnoreAction(event: Event) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n _getPrjItemClassAttributes(item: MenuListType, isTouch: boolean) {\n const retval: string = `${this._isDisabled(item) ? 'disabled' : ''} ${isTouch ? '' : 'hover-show-info'}`;\n return retval;\n }\n\n _getPrjIconClassAttributes(item: MenuListType) {\n const retval: string = `${item.class} ${item.action === this.projectActiveItem ? 'active' : ''} ${this._isDisabled(item) ? 'disabled' : ''}`;\n return retval;\n }\n}\n","<ng-template #navigationPrjList>\n@for(item of menuItems; track item.id){\n @if (!_isHidden(item)){\n <!--* prjList *-->\n <div class=\"bim-pm-prj-item\"\n [ngClass] = \"_getPrjItemClassAttributes(item,isTouch)\"\n [title]=\"((_isDisabled(item) && item.textIdDisabled) ? item.textIdDisabled : item.textId) | translate\"\n (dblclick)=\"_menuItemIgnoreAction($event)\"\n (click)=\"_menuItemClicked(item, 'normal',$event)\"\n (keypress)=\"_menuItemClicked(item, 'normal',$event)\"\n >\n <div\n class=\"bim-pm-prj-icon\"\n [ngClass] = \"_getPrjIconClassAttributes(item)\"\n >\n </div>\n <div class=\"bim-pm-app-item-info bim-pm-icon bim-pm-icon-info\"\n (click)=\"_menuItemClicked(item, 'info',$event)\"\n (keypress)=\"_menuItemClicked(item, 'info',$event)\"\n >\n </div>\n </div>\n }\n}\n</ng-template>\n\n<ng-template #navigationPrjListThumbnail>\n@for(item of menuItems; track item.id){\n @if (!_isHidden(item) && (isCollapsed || item.action !== 'processes' )){\n <!--* navigationPrjList *-->\n <div class=\"bim-pm-prj-item\"\n [ngClass] = \"_getPrjItemClassAttributes(item,isTouch)\"\n [title]=\"((_isDisabled(item) && item.textIdDisabled) ? item.textIdDisabled : item.textId) | translate\"\n (dblclick)=\"_menuItemIgnoreAction($event)\"\n (click)=\"_menuItemClicked(item, 'normal',$event)\"\n (keypress)=\"_menuItemClicked(item, 'normal',$event)\"\n >\n <div\n class=\"bim-pm-prj-icon\"\n [ngClass] = \"_getPrjIconClassAttributes(item)\"\n >\n </div>\n <div class=\"bim-pm-app-item-info bim-pm-icon bim-pm-icon-info\"\n (click)=\"_menuItemClicked(item, 'info',$event)\"\n (keypress)=\"_menuItemClicked(item, 'info',$event)\"\n >\n </div>\n </div>\n }\n}\n</ng-template>\n\n<div class=\"bim-pm-prj-container\"\n [ngClass]=\"{ collapsed: isCollapsed, 'mini-mode': isMiniMode, 'is-touch': isTouch }\"\n >\n @if (isMiniMode && !isCollapsed) {\n <div class=\"bim-pm-prj-details-mini\">\n <div class=\"bim-pm-prj-image-bkg-mini\"\n [ngStyle]=\"prjImageOverlayStyle\">\n <div class=\"bim-pm-prj-image-thumbnail\" [ngStyle]=\"prjImageStyle\"></div>\n </div>\n <div class=\"bim-pm-prj-name-mini\">\n {{projectName}}\n </div>\n </div>\n <div class=\"bim-pm-prj-items-horizontal\"\n [ngClass]=\"showHorizontalMenuIcons ? '' : 'hidden'\">\n <div class=\"bim-pm-prj-items-list\">\n @if (showHorizontalMenuIcons) {\n <ng-container *ngTemplateOutlet=\"navigationPrjList\">\n </ng-container>\n }\n </div>\n </div>\n }\n @else {\n <a href={{projectExplorerUrl}} class=\"bim-pm-prj-details\"\n [ngStyle]=\"prjImageOverlayStyle\"\n (dblclick)=\"_projectMenuItemClicked('prjimagedblclick','normal')\"\n (click)=\"_projectMenuItemClicked('prjimageclick','normal')\"\n [title]=\"'_ModelThumbnailTooltip' | translate\">\n\n <div class=\"bim-pm-prj-image\" [ngStyle]=\"prjImageStyle\">\n <div class=\"bim-pm-prj-items-overlay\" [ngClass] = \"hideMenuIcons || showHorizontalMenuIcons ? 'hidden' : ''\">\n </div>\n <div\n class=\"bim-pm-prj-items-list\"\n [ngClass] = \"hideMenuIcons || showHorizontalMenuIcons ? 'hidden' : ''\"\n >\n @if (!hideMenuIcons && !showHorizontalMenuIcons){\n <ng-container *ngTemplateOutlet=\"navigationPrjListThumbnail\">\n </ng-container>\n }\n </div>\n <div class=\"bim-pm-prj-name\">\n {{projectName}}\n </div>\n </div>\n </a>\n <div class=\"bim-pm-prj-items-horizontal\"\n [ngClass] = \"showHorizontalMenuIcons ? '' : 'hidden'\">\n <div class=\"bim-pm-prj-items-list\">\n @if (showHorizontalMenuIcons) {\n <ng-container *ngTemplateOutlet=\"navigationPrjList\">\n </ng-container>\n }\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges } from '@angular/core';\nimport {TranslateService, TranslateModule} from '@ngx-translate/core';\nimport {BimplusProjectMenuComponent} from './../bimplus-project-menu/bimplus-project-menu.component';\nimport {BimplusLocalizedWidgetComponent} from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\nimport { fireEvent } from '../../utils/utils';\nimport {MenuListType} from '../../types/types';\n\nconst MenuListTypeId = {\n PORTAL_TEAM_MANAGEMENT_BTN: 'portalTeamManagementBtn',\n PORTAL_PROPERTY_MANAGER_BTN: 'portalPropertyManagerBtn',\n PORTAL_BIM_USERS: 'portalBimUsers',\n PORTAL_BIM_MODELS: 'portalBimModels',\n PORTAL_BIM_DOCUMENTS: 'portalBimDocuments',\n PORTAL_BIM_PROJECT_SETTINGS: 'portalBimProjectSettings',\n PORTAL_BIM_PROCESSES: 'portalBimProcesses',\n DIVIDER_PROJECT_MANAGEMENT: 'dividerprojectmanagement',\n PORTAL_BIM_VIEWER_BTN: 'portalBimViewerBtn',\n PORTAL_CLOUD_VIEWER_BTN: 'portalCloudViewerBtn',\n PORTAL_CONNEXIS_BTN: 'portalConnexisBtn',\n PORTAL_BIM_AUTOCONVERTER_BTN: 'portalBimAutoconverterBtn',\n DIVIDERAPPS: 'dividerapps',\n PORTAL_ADD_INS_BTN: 'portalAddInsBtn',\n PORTAL_SHOP_BTN: 'portalShopBtn',\n PORTAL_GET_YOUR_TEAM_BTN: 'portalGetYourTeamBtn',\n PORTAL_TRY_BIMPLUS_PRO_BTN: 'portalTryBimplusProBtn',\n} as const;\n\nexport interface BimplusMainMenuComponentAttribute {\n [key: string]: unknown; // Add index signature allowing string indexing\n //Other properties and methods...\n}\n\n@Component({\n selector: 'lib-bimplus-main-menu',\n imports: [CommonModule, TranslateModule, BimplusProjectMenuComponent],\n providers: [TranslateService],\n templateUrl: './bimplus-main-menu.component.html',\n styleUrl: './bimplus-main-menu.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\n\nexport class BimplusMainMenuComponent extends BimplusLocalizedWidgetComponent implements OnChanges {\n constructor(){\n super();\n }\n\n @Input({ transform: booleanAttribute }) isEmbedded : boolean = false;\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\n @Input({ transform: booleanAttribute }) isIpadApp : boolean = false;\n @Input({ transform: booleanAttribute }) isDev : boolean = false;\n @Input({ transform: booleanAttribute }) isStage : boolean = false;\n @Input({ transform: booleanAttribute }) hideProjectMenuIcons : boolean = false;\n @Input({ transform: booleanAttribute }) showHorizontalMenuIcons : boolean = false;\n @Input() projectName : string = \"\";\n @Input() projectImageUrl : string = \"\";\n @Input() projectExplorerUrl : string = \"\";\n @Input() projectActiveItem : string = \"\";\n @Input({ transform: booleanAttribute }) projectmembersDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) modelsDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) documentsDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) projectsettingsDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) processesDisabled : boolean = false;\n @Input() footerActiveItem : string = \"\";\n @Input() menuActiveItem : string = \"\";\n @Input({ transform: booleanAttribute }) isCollapsed : boolean = false;\n @Input({ transform: booleanAttribute }) showOverlay : boolean = false;\n @Input({ transform: booleanAttribute }) teammembersSubscribed : boolean = false;\n @Input({ transform: booleanAttribute }) propertymanagerSubscribed : boolean = false;\n @Input({ transform: booleanAttribute }) autoconverterSubscribed : boolean = false;\n @Input({ transform: booleanAttribute }) connexisSubscribed : boolean = false;\n @Input({ transform: booleanAttribute }) openProjectDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) bimexplorerDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) autoconverterDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) connexisDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) teammembersDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) propertymanagerDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) shopDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) addinsDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) openProjectVisible : boolean = true;\n @Input({ transform: booleanAttribute }) bimplusProjectMenuVisible : boolean = true;\n @Input({ transform: booleanAttribute }) projectmembersVisible : boolean = true;\n @Input({ transform: booleanAttribute }) modelsVisible : boolean = true;\n @Input({ transform: booleanAttribute }) documentsVisible : boolean = true;\n @Input({ transform: booleanAttribute }) projectsettingsVisible : boolean = true;\n @Input({ transform: booleanAttribute }) processesVisible : boolean = true;\n @Input({ transform: booleanAttribute }) bimexplorerVisible : boolean = true;\n @Input({ transform: booleanAttribute }) autoconverterVisible : boolean = true;\n @Input({ transform: booleanAttribute }) connexisVisible : boolean = true;\n @Input({ transform: booleanAttribute }) teammembersVisible : boolean = true;\n @Input({ transform: booleanAttribute }) propertymanagerVisible : boolean = true;\n @Input({ transform: booleanAttribute }) shopVisible : boolean = true;\n @Input({ transform: booleanAttribute }) addinsVisible : boolean = true;\n @Input({ transform: booleanAttribute }) dividerprojectmanagementVisible : boolean = true;\n @Input({ transform: booleanAttribute }) dividerappsVisible : boolean = true;\n @Input({ transform: booleanAttribute }) getYourTeamVisible : boolean = false;\n @Input({ transform: booleanAttribute }) tryBimplusProVisible : boolean = false;\n @Input({ transform: booleanAttribute }) cloudviewerVisible : boolean = true;\n @Input() appsWithInfo : string[] = [];\n @Input() appsOrder : string[] = [];\n @Input() menuItemsOrder : string[] = [];\n\n @Output() bimplusMainMenuClicked = new EventEmitter<{ action: string, type: string }>();\n @Output() bimplusMainMenuOverlayClicked = new EventEmitter<void>();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['localizedStrings']) {\n this._localizedStrings.set(changes['localizedStrings'].currentValue);\n }\n }\n\n get apps(): MenuListType[] {\n let appsList = this.appsList.slice().sort((a, b) => this.appsOrder.indexOf(a.id) - this.appsOrder.indexOf(b.id));\n\n // if not connexisVisible remove PORTAL_CONNEXIS_BTN.\n if (!this.connexisVisible) {\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_CONNEXIS_BTN);\n }\n\n // if not cloudviewerVisible remove PORTAL_CLOUD_VIEWER_BTN.\n if (!this.cloudviewerVisible) {\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_CLOUD_VIEWER_BTN);\n }\n\n // if not autoconverterVisible remove PORTAL_AUTOCONVERTER_BTN.\n if (!this.autoconverterVisible) {\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_BIM_AUTOCONVERTER_BTN);\n }\n\n // if teammembersDisabled remove PORTAL_TEAM_MANAGEMENT_BTN.\n if (this.teammembersDisabled) {\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_TEAM_MANAGEMENT_BTN);\n }\n\n // if propertymanagerDisabled remove PORTAL_PROPERTY_MANAGER_BTN.\n if (this.propertymanagerDisabled) {\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_PROPERTY_MANAGER_BTN);\n }\n\n // if isTouch remove property manager btn. & approvals btn.\n if(this.isTouch) {\n appsList = appsList.filter(({ id }) => \n id !== MenuListTypeId.PORTAL_PROPERTY_MANAGER_BTN && \n id !== MenuListTypeId.PORTAL_BIM_PROCESSES\n );\n }\n\n return appsList;\n }\n\n get footerList(): MenuListType[] {\n let footerList = this._menuFooterList.filter(item => this._isSubscribed(item) && !this._isHidden(item));\n\n // in case that \"Get Your Team\" is not visible and teammembers are disabled then remove divider first, or is not isTouch mode\n if (this.teammembersDisabled || !this.isTouch) {\n footerList = footerList.filter(({ id }) => id !== MenuListTypeId.DIVIDERAPPS);\n }\n\n // if team is assigned then remove \"Get Your Team\" button\n if (!this.getYourTeamVisible) {\n return footerList.filter(({ id }) => id !== MenuListTypeId.PORTAL_GET_YOUR_TEAM_BTN);\n }\n\n // remove divider if there is no \"Get Your Team\" button\n return footerList.filter(({ id }) => id !== MenuListTypeId.DIVIDERAPPS);\n }\n\n /**--------------------------------------------------------------------------\n * check if app is subscribed\n --------------------------------------------------------------------------*/\n _isSubscribed(item:MenuListType):boolean {\n\n if (item.checkSubscription) {\n const key = `${item.action}Subscribed`;\n return !!((this as unknown as BimplusMainMenuComponentAttribute )[key]);\n }\n return true;\n }\n /**--------------------------------------------------------------------------\n * check if app is clickable\n --------------------------------------------------------------------------*/\n _isClickable(item:MenuListType):boolean {\n\n if (item.clickPolicy === \"noProjectNoSubscription\") {\n return this.projectName !== \"\";\n }\n return true;\n }\n\n /**--------------------------------------------------------------------------\n * check if app is subscribed/visible\n --------------------------------------------------------------------------*/\n _isHidden(item:MenuListType):boolean {\n\n if (item) {\n const key = `${item.action ? item.action : item.id}Visible`;\n return !((this as unknown as BimplusMainMenuComponentAttribute )[key]);\n }\n return false;\n }\n\n /**--------------------------------------------------------------------------\n * check if app is disabled\n --------------------------------------------------------------------------*/\n _isDisabled(item:MenuListType) {\n const key = `${item.action}Disabled`;\n return !!((this as unknown as BimplusMainMenuComponentAttribute )[key]);\n }\n\n _getContextData(item: MenuListType, active: boolean, disabled: boolean, clickable: boolean, selected: boolean) {\n return {\n item: item,\n active: active,\n disabled: disabled,\n clickable: clickable,\n selected: selected,\n showInfoIcon: this.appsWithInfo.includes(item.id)\n };\n }\n\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: \"\"};\n\n contextData = {item:\"haha\",active:true,disabled:true,clickable:true,selected:true};\n\n\n appsList: MenuListType[] = [\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: \"\"},\n { action:\"models\", id: MenuListTypeId.PORTAL_BIM_MODELS, type:\"\",class: \"bim-mm-icon-models\", textId: \"_Divisions\", textIdDisabled: \"_Divisions\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\n { action:\"documents\", id: MenuListTypeId.PORTAL_BIM_DOCUMENTS, type:\"\",class: \"bim-mm-icon-documents\", textId: \"_Files\", textIdDisabled: \"_Files\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\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: \"\"},\n { action:\"processes\", id: MenuListTypeId.PORTAL_BIM_PROCESSES, type:\"\",class: \"bim-mm-icon-processes\", textId: \"_Approvals\", textIdDisabled: \"_Approvals\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\n { action:\"\",id: MenuListTypeId.DIVIDER_PROJECT_MANAGEMENT, type:\"divider\", class: \"bim-mm-app-item-divider\", textId: \"\",textIdDisabled:\"\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\n\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\"},\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\"},\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\"},\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\"},\n\n { action:\"\",id: MenuListTypeId.DIVIDERAPPS, type:\"divider\", class: \"bim-mm-app-item-divider\", textId: \"\",textIdDisabled:\"\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\n\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: \"\"},\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: \"\"},\n ];\n\n _menuFooterList: MenuListType[] = [\n { action:\"\",id: MenuListTypeId.DIVIDERAPPS, type:\"divider\", class: \"bim-mm-app-item-divider\",checkSubscription: false,devOrStageOnly : false } as MenuListType,\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: \"\"},\n { \n action:\"getYourTeam\", \n id: MenuListTypeId.PORTAL_GET_YOUR_TEAM_BTN,\n class: \"bim-mm-icon-get-your-team\", \n textId: \"_Get_Your_Team\", \n textIdDisabled: \"_Get_Your_Team\",\n } as MenuListType,\n { \n action:\"tryBimplusPro\", \n id: MenuListTypeId.PORTAL_TRY_BIMPLUS_PRO_BTN,\n class: \"bim-mm-icon-try-bimplus-pro\", \n textId: \"_Try_Bimplus_Pro\", \n textIdDisabled: \"_Try_Bimplus_Pro\",\n } as MenuListType, \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: \"\"}\n ];\n\n _overlayClicked(){\n fireEvent(this, \"bimplusMainMenuOverlayClicked\");\n }\n\n _mainMenuItemClicked(item: MenuListType,type:string,event: Event | undefined ){\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n if(type != \"info\") {\n if (this._isDisabled(item)){\n return;\n }\n }\n\n const action = item.action;\n fireEvent(this,\"bimplusMainMenuClicked\", {action,type:type } );\n }\n}\n","<ng-template #appNavigationItemContent let-contextData>\n @if (contextData.item.type === 'divider') {\n <div class=\"bim-mm-app-item\" [class]=\"contextData.item.class\" [id]=\"contextData.item.id\"></div>\n } @else {\n <div class=\"bim-mm-app-item\" [id]=\"contextData.item.id\"\n [ngClass]=\"isTouch?'':'hover-show-info '+(contextData.active?'active ':' ') +(contextData.disabled?'disabled ':' ')+(contextData.clickable?' ':'not-clickable ')+(contextData.selected?'selected ':' ')\"\n [title] =\"((contextData.disabled) ? (contextData.item.disabledTitle | translate) : '' )\"\n >\n <div class=\"bim-mm-app-item-details\"\n [ngClass] = \" contextData.clickable ? '' : 'not-clickable' \"\n (click)=\"_mainMenuItemClicked(contextData.item,'normal',$event)\"\n (keypress)=\"_mainMenuItemClicked(contextData.item,'normal',$event)\">\n <div class=\"bim-mm-icon\"\n [ngClass]=\"contextData.item.class + (contextData.active?' active':'') + (contextData.disabled?' disabled ':'')\">\n </div>\n <span>{{(contextData.isDisabled && (contextData.item.textIdDisabled !==\"\") ? contextData.item.textIdDisabled : contextData.item.textId) | translate}}</span>\n </div>\n @if(contextData.showInfoIcon){\n <div class=\"bim-mm-app-item-info bim-mm-icon bim-mm-icon-info\"\n (click)=\"_mainMenuItemClicked(contextData.item, 'info',$event)\"\n (keypress)=\"_mainMenuItemClicked(contextData.item, 'info',$event)\">\n </div>\n }\n </div>\n }\n</ng-template>\n\n\n\n<div \n class=\"bim-mm-wrapper\" \n [ngClass]=\"showOverlay ? 'bim-mm-overlay' : ''\" \n (click)=\"_overlayClicked()\"\n (keypress)=\"_overlayClicked()\"\n >\n <div class= \"bim-mm-container\">\n @if(!_isHidden(_openPrjBtn)){\n <ng-container\n *ngTemplateOutlet=\"appNavigationItemContent; context: { $implicit: _getContextData(_openPrjBtn,projectActiveItem === 'projectlist',_isDisabled(_openPrjBtn),true,projectActiveItem === 'projectlist') }\"\n ></ng-container>\n }\n\n @if(bimplusProjectMenuVisible){\n <lib-bimplus-project-menu\n projectName = {{projectName}}\n projectImageUrl = {{projectImageUrl}}\n projectExplorerUrl = {{projectExplorerUrl}}\n projectActiveItem = {{projectActiveItem}}\n projectmembersDisabled = {{projectmembersDisabled}}\n modelsDisabled = {{modelsDisabled}}\n documentsDisabled = {{documentsDisabled}}\n projectsettingsDisabled = {{projectsettingsDisabled}}\n processesDisabled = {{processesDisabled}}\n projectmembersVisible = {{projectmembersVisible}}\n modelsVisible = {{modelsVisible}}\n documentsVisible = {{documentsVisible}}\n projectsettingsVisible = {{projectsettingsVisible}}\n processesVisible = {{processesVisible}}\n isCollapsed = {{isCollapsed}}\n isMiniMode = {{isTouch}}\n isTouch = {{isTouch}}\n hideMenuIcons = {{hideProjectMenuIcons}}\n showHorizontalMenuIcons = {{showHorizontalMenuIcons}}\n [menuItemsOrder]=\"menuItemsOrder\"\n ></lib-bimplus-project-menu>\n }\n <div [ngClass]=\"apps.length || footerList.length ? 'bim-mm-apps-container' : ''\">\n <div class=\"bim-mm-apps-list\">\n <div *ngFor=\"let appItem of apps\">\n <ng-container\n *ngTemplateOutlet=\"appNavigationItemContent; context: { $implicit: _getContextData(appItem,!_isSubscribed(appItem),_isDisabled(appItem),_isClickable(appItem),menuActiveItem === appItem.action)}\"\n ></ng-container>\n </div>\n </div>\n <div class=\"bim-mm-footer-container\">\n <div *ngFor=\"let footerItem of footerList\">\n <ng-container\n *ngTemplateOutlet=\"appNavigationItemContent; context: { $implicit: _getContextData(footerItem,footerActiveItem === footerItem.action,_isDisabled(footerItem),true,false)}\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n","export enum LogoState {\n BimplusViewer = 'bimplusViewer', // Bimplus logo\n ModelViewerBlack = 'modelViewerBlack', // Model viewer black logo\n ModelViewer = 'modelViewer', // Cloud viewer logo\n ConnexisViewer = 'connexisViewer', // Connexis viewer logo\n ConnexisViewerBlack = 'connexisViewerBlack' // Connexis viewer logo (black)\n}\n\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, computed, input } from '@angular/core';\nimport { fireEvent } from '../../utils/utils';\nimport { LogoState } from './logo-state.enum';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'lib-bimplus-navbar',\n imports: [CommonModule, TranslateModule],\n templateUrl: './bimplus-navbar.component.html',\n styleUrl: './bimplus-navbar.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusNavbarComponent {\n @Input() projectInfo : string = \"\";\n @Input() teamInfo : string = \"\";\n @Input({ transform: booleanAttribute }) isDev : boolean = false;\n @Input({ transform: booleanAttribute }) isStage : boolean = false;\n @Input() teamInfoOffset : string = \"\";\n @Input({ transform: booleanAttribute }) isNavbarMenuVisible : boolean = false;\n @Input({ transform: booleanAttribute }) isNavbarInfoVisible : boolean = false;\n logoState = input<LogoState>(LogoState.BimplusViewer);\n isModelViewerActive = input(false , { transform: booleanAttribute });\n // @Input({ transform: booleanAttribute }) isConnexisViewerActive : boolean = false;\n @Input({ transform: booleanAttribute }) isNavbarMessageVisible : boolean = false;\n @Input({ transform: booleanAttribute }) isNavbarMenuActive : boolean = false;\n @Input({ transform: booleanAttribute }) isNavbarMenuEnabled : boolean = true;\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\n @Input({ transform: booleanAttribute }) isDashboardTooltipEnabled: boolean = true;\n @Input() selectedLanguage : string = \"en\";\n @Output() bimplusNavbarClicked = new EventEmitter<string>();\n\n // Make the enum available in the template\n public LogoState = LogoState;\n\n protected readonly logoStateSignal = computed<LogoState>(() => {\n if (this.isModelViewerActive()) {\n return LogoState.ModelViewerBlack;\n }\n\n return this.logoState();\n });\n\n _menuClicked() {\n if ( this.isNavbarMenuEnabled ) {\n fireEvent(this, \"bimplusNavbarClicked\", \"menu\");\n }\n }\n\n _logoClicked() {\n if (this.logoStateSignal() === LogoState.BimplusViewer) {\n // Fire only an event for BimplusViewer\n fireEvent(this, \"bimplusNavbarClicked\", \"logo\");\n }\n }\n\n _projectInfoClicked() {\n if ( this.isDev ) {\n fireEvent(this, \"bimplusNavbarClicked\", \"project\");\n }\n }\n}\n","<div\n class=\"bimplus-navbar\"\n [ngClass]=\"isTouch ? 'is-touch' : ''\"\n>\n <div class=\"bimplus-navbar-logo-container\">\n <div\n class=\"bimplus-logo\"\n [ngClass]=\"{\n 'model-viewer': logoStateSignal() === LogoState.ModelViewer,\n 'model-viewer-black': logoStateSignal() === LogoState.ModelViewerBlack,\n 'connexis-viewer': logoStateSignal() === LogoState.ConnexisViewer,\n 'connexis-viewer-black': logoStateSignal() === LogoState.ConnexisViewerBlack,\n 'burger-menu-not-visible': !isNavbarMenuVisible\n }\"\n (click)=\"_logoClicked()\"\n (keypress)=\"_logoClicked()\"\n [title]=\"(isDashboardTooltipEnabled ? '_dashboard_tooltip' : '') | translate\"\n ></div>\n\n <div\n class=\"bimplus-navbar-menu icon\"\n [ngClass]=\"{'active':isNavbarMenuActive, 'hidden': !isNavbarMenuVisible, 'disabled': !isNavbarMenuEnabled}\"\n (click)=\"_menuClicked()\"\n (keypress)=\"_menuClicked()\"\n ></div>\n </div>\n\n <div class=\"bimplus-navbar-container\">\n <div\n class=\"bimplus-navbar-info\"\n [ngClass]=\"{'hidden': !isNavbarInfoVisible}\"\n [style.margin-left]=\"teamInfoOffset\"\n >\n <span class=\"team\">{{teamInfo}}</span>\n <span *ngIf=\"projectInfo && !isTouch\">&nbsp;&nbsp; -&nbsp;&nbsp;</span>\n <span\n class=\"project\"\n [ngClass]=\"isDev ? 'clickable' : ''\"\n (click)=\"_projectInfoClicked()\"\n (keypress)=\"_projectInfoClicked()\"\n >\n {{projectInfo}}\n </span>\n </div>\n\n <div class=\"bimplus-navbar-slot\">\n <slot></slot>\n </div>\n\n </div>\n</div>\n","import { Component, ViewEncapsulation, ElementRef, AfterViewInit, AfterViewChecked, inject } from '@angular/core';\n\nimport SimpleBar from 'simplebar';\n\n@Component({\n selector: 'lib-bimplus-scrollable-container',\n imports: [],\n templateUrl: './bimplus-scrollable-container.component.html',\n styleUrl: './bimplus-scrollable-container.component.less',\n encapsulation: ViewEncapsulation.None\n})\n\nexport class BimplusScrollableContainerComponent implements AfterViewInit, AfterViewChecked {\n private readonly elementRef = inject(ElementRef);\n\n _simpleBar!: SimpleBar;\n _element: HTMLElement;\n protected _scrollableContainerClassName: string = '.scrollable-container';\n\n constructor(){\n this._element = this.elementRef.nativeElement;\n }\n\n private _initializationSimpleScrollBar(): void {\n // init simple bar scrollbar\n const scrollableContainer: HTMLElement | null = this._element?.querySelector(this._scrollableContainerClassName);\n if (!scrollableContainer) {\n console.error('No scrollable container found in the element.');\n return;\n }\n this._simpleBar = new SimpleBar(scrollableContainer);\n }\n\n ngAfterViewInit(): void {\n this._initializationSimpleScrollBar();\n }\n\n private _recalculateScrollbar(): void {\n if(!this._element) {\n return;\n }\n const _element = this._element;\n const barElem = _element?.querySelector(this._scrollableContainerClassName);\n if (!barElem){\n return;\n }\n\n if (!this._simpleBar) {\n console.error('No scrollable container found in the element.');\n return;\n }\n\n this._simpleBar.recalculate();\n }\n\n ngAfterViewChecked(): void {\n this._recalculateScrollbar();\n }\n}\n","<div class=\"scrollable-container\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges, OnInit, HostBinding } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { fireEvent } from '../../utils/utils';\nimport { BimplusLocalizedWidgetComponent } from './../bimplus-localized-widget/bimplus-localized-widget.component';\nimport { BimplusScrollableContainerComponent } from './../bimplus-scrollable-container/bimplus-scrollable-container.component';\n\nconst BIMPLUS_NOTIFY_MESSAGES = \"bimplus-notify-messages\";\ninterface MessageModel {\n 'id': string | undefined,\n 'type': string | undefined,\n 'title': string | undefined,\n 'text': string | undefined,\n 'link': string | undefined,\n 'linkText': string | string[] | undefined,\n 'links': string[] | undefined,\n 'actionId': number | undefined,\n 'capitalizedTitle': string | boolean | undefined\n}\n@Component({\n selector: 'lib-bimplus-notify',\n imports: [\n CommonModule,\n TranslateModule,\n BimplusScrollableContainerComponent\n ],\n providers: [TranslateService],\n templateUrl: './bimplus-notify.component.html',\n styleUrl: './bimplus-notify.component.less',\n encapsulation: ViewEncapsulation.None\n})\nexport class BimplusNotifyComponent extends BimplusLocalizedWidgetComponent implements OnChanges, OnInit{\n constructor(){\n super();\n }\n\n // Expose Array constructor as a property\n Array = Array;\n \n @HostBinding('class.new-messages')\n get newMessages() {\n return this._alertActive;\n }\n\n @HostBinding('class.bim-notify')\n get bimNotify() {\n return true; // Or you can use a condition here if needed\n }\n\n /**--------------------------------------------------------------------------\n * List of messages\n --------------------------------------------------------------------------*/\n _messagesList: MessageModel[] = [];\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input() messagePreviewTime : number = 3000; // in ms\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input({ transform: booleanAttribute }) showMessagePreview : boolean = true;\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input() previewMessagesLimit : number = 3;\n\n /**--------------------------------------------------------------------------\n * offset of preview messages from main icon\n --------------------------------------------------------------------------*/\n @Input() previewMessagesOffsetY : string = '2.7em';\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input() messages : string = '';\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['messages']) {\n const newValue = changes['messages'].currentValue;\n this.updateMessages(newValue);\n }\n }\n\n updateMessages(newValue: string /*, oldValue: string*/) {\n const isOk = newValue && typeof newValue === 'string';\n if (!isOk) {\n this._messagesList = [];\n this._previewMessagesList = [];\n this._alertActive = false;\n return;\n }\n\n const msgData = JSON.parse(newValue);\n this._messagesList = msgData.messages;\n\n // filter new messages into the list for preview\n let newMessagesList = this._messagesList.filter( (msg) => this._oldMessagesList.findIndex( (oldMsg) => oldMsg.id === msg.id ) < 0 );\n newMessagesList = newMessagesList.filter( (item) => this._messageNotReadYet(item)); // filtering out allready read messages (stored in localstorage)\n\n // setup preview for new messages\n newMessagesList.slice().reverse().forEach( (newMsg) => {\n if ( this._previewMessagesList.findIndex( (item) => newMsg.id === item.id ) < 0){\n this._previewMessagesList.unshift(newMsg);\n\n if( this.messagePreviewTime > 0 ) {\n setTimeout(() => {\n this._closePreviewMessage(newMsg.id, false);\n }, this.messagePreviewTime);\n }\n }\n })\n\n // limit preview messages count\n this._previewMessagesList.length = this._previewMessagesList.length > this.previewMessagesLimit ? this.previewMessagesLimit : this._previewMessagesList.length;\n\n // set old state and alert\n this._oldMessagesList = this._messagesList;\n this._alertActive = this._messagesList.length != 0;\n }\n\n /**--------------------------------------------------------------------------\n * States\n --------------------------------------------------------------------------*/\n _menuOpened: boolean = false;\n _alertActive: boolean = false;\n _oldMessagesList: MessageModel[] = [];\n // list of messages for preview\n _previewMessagesList: MessageModel[] = [];\n\n\n /**--------------------------------------------------------------------------\n * Delete item event\n --------------------------------------------------------------------------*/\n @Output() bimplusNotifyDeleteMessage = new EventEmitter<string>();\n\n /**--------------------------------------------------------------------------\n * Delete all item event\n --------------------------------------------------------------------------*/\n @Output() bimplusNotifyDeleteAllMessages = new EventEmitter<string>();\n\n /**--------------------------------------------------------------------------\n * Message action event\n --------------------------------------------------------------------------*/\n @Output() bimplusNotifyMessageAction = new EventEmitter<string>();\n\n /**--------------------------------------------------------------------------\n * initial component load\n --------------------------------------------------------------------------*/\n ngOnInit(): void {\n this.updateMessages(this.messages);\n }\n\n /**--------------------------------------------------------------------------\n * close single message\n --------------------------------------------------------------------------*/\n _closeMessage( item: MessageModel, preview: boolean, event: Event | undefined ){\n if (preview) {\n return this._closePreviewMessage(item.id);\n }\n\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n fireEvent(this, \"bimplusNotifyDeleteMessage\", JSON.stringify(item));\n }\n\n /**--------------------------------------------------------------------------\n * close preview message\n --------------------------------------------------------------------------*/\n _closePreviewMessage( msgId: string | undefined, closedByUser = true ){\n if (!msgId) {\n return;\n }\n\n this._previewMessagesList = this._previewMessagesList.filter( (msg) => msg.id !== msgId );\n this.storeMessagesAsRead([msgId]);\n if ( closedByUser && this._previewMessagesList.length === 0 ){\n this._alertActive = false;\n }\n }\n\n /**--------------------------------------------------------------------------\n * close all messages\n --------------------------------------------------------------------------*/\n _deleteAllMessages(){\n fireEvent(this, \"bimplusNotifyDeleteAllMessages\");\n this.clearAllLocalStorageMessages();\n }\n\n /**--------------------------------------------------------------------------\n * message clicked\n --------------------------------------------------------------------------*/\n _messageAction( item: MessageModel, index: number ){\n item.actionId = index;\n fireEvent(this, \"bimplusNotifyMessageAction\", JSON.stringify(item));\n }\n\n /**--------------------------------------------------------------------------\n * toggle menu open\n --------------------------------------------------------------------------*/\n _toggleOpened(){\n this._menuOpened = !this._menuOpened;\n this._alertActive = false;\n this._previewMessagesList = [];\n }\n\n _messageNotReadYet(message: MessageModel){\n if(!message?.id){\n return true;\n }\n const messageListString = window.localStorage.getItem(BIMPLUS_NOTIFY_MESSAGES);\n if(!messageListString){\n return true;\n }\n return !messageListString.includes(message.id);\n }\n\n storeMessagesAsRead(messageList: string[]){\n if(!messageList || messageList.length <1){\n return;\n }\n let messageListString = window.localStorage.getItem(BIMPLUS_NOTIFY_MESSAGES);\n messageListString ??= \"\";\n messageList.forEach((item: string)=>{\n if(!messageListString?.includes(item)){\n messageListString+=(item+\";\");\n }\n })\n window.localStorage.setItem(BIMPLUS_NOTIFY_MESSAGES,messageListString);\n }\n\n clearAllLocalStorageMessages(){\n window.localStorage.removeItem(BIMPLUS_NOTIFY_MESSAGES);\n }\n\n /**--------------------------------------------------------------------------\n * get item link title\n --------------------------------------------------------------------------*/\n _getItemLinkTitle( item: MessageModel, index: number ){\n let itemLinksTitles: (string | undefined)[] = [];\n if ( item.linkText && (item.links || item.link)) {\n itemLinksTitles = Array.isArray(item.links) ? item.links : [item.link];\n }\n return itemLinksTitles[index] ?? '';\n }\n}\n","<div\n class=\"dropdown\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n [title]=\"'_BimplusNotifyTitle' | translate\"\n>\n <div class=\"dropdown-toggle\" >\n <div\n class=\"main-icon\"\n [ngClass]=\"'icon-notify' + (this._alertActive ? '-alert notify' : '')\"\n ></div>\n </div>\n\n <div\n class=\"bimcomp-dropdown-menu\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n >\n <div class=\"notify-tick\"></div>\n <div class=\"messages-title\">\n <div class=\"messages-count\">\n ({{this._messagesList.length}})\n </div>\n <div\n class=\"messages-delete-all\"\n (click)=\"_deleteAllMessages()\"\n (keypress)=\"_deleteAllMessages()\"\n >\n {{\"_Notify_Mark_All\" | translate}}\n </div>\n </div>\n <div class=\"messages-container\">\n @if (_messagesList.length) {\n <lib-bimplus-scrollable-container>\n <div\n *ngFor=\"let item of _messagesList\"\n class=\"message-item\"\n >\n <div class=\"message-item-title\">\n <div [ngClass]=\"'message-item-icon-' + item.type\"></div>\n <div\n class=\"message-item-title-text\"\n [ngClass]=\"{'capitalize':item.capitalizedTitle}\"\n >\n {{item.title}}\n </div>\n <div\n class=\"message-item-icon-close\"\n (click)=\"_closeMessage(item, false, $event)\"\n (keypress)=\"_closeMessage(item, false, $event)\"\n ></div>\n </div>\n \n <div class=\"message-item-body-text\">{{item.text}}</div>\n @if (item.linkText) {\n <div\n *ngFor=\"let link of (item.linkText.constructor === Array ? item.linkText : [item.linkText]); let i = index\"\n class=\"message-item-link\"\n [title]=\"_getItemLinkTitle(item, i)\"\n (click)=\"_messageAction(item, i)\"\n (keypress)=\"_messageAction(item, i)\"\n >{{link}}</div>\n }\n </div>\n </lib-bimplus-scrollable-container>\n } @else {\n <div class=\"message-item-empty\">\n <div class=\"message-item-empty-icon\"></div>\n <div class=\"message-item-empty-text\">{{\"_Notify_No_Messages\" | translate}}</div>\n </div>\n }\n </div>\n </div>\n</div>\n\n<div\n class=\"bimcomp-overlay\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n></div>\n\n<div\n class=\"bimcomp-messages-preview\"\n [ngClass]=\"(showMessagePreview && !_menuOpened && _previewMessagesList.length > 0) ? 'visible' : ''\"\n [style.top]=\"previewMessagesOffsetY\"\n>\n <div class=\"messages-container-preview\">\n <div\n *ngFor=\"let item of _previewMessagesList\"\n class=\"message-item\"\n >\n <div class=\"message-item-title\">\n <div [ngClass]=\"'message-item-icon-' + item.type\"></div>\n <div\n class=\"message-item-title-text\"\n [ngClass]=\"{'capitalize':item.capitalizedTitle}\"\n >\n {{item.title}}\n </div>\n <div\n class=\"message-item-icon-close\"\n (click)=\"_closeMessage(item, true, $event)\"\n (keypress)=\"_closeMessage(item, true, $event)\"\n ></div>\n </div>\n\n <div class=\"message-item-body-text\">\n {{item.text}}\n </div>\n @if (item.linkText) {\n <div\n *ngFor=\"let link of (item.linkText.constructor === Array ? item.linkText : [item.linkText]); let i = index\"\n class=\"message-item-link\"\n [title]=\"_getItemLinkTitle(item, i)\"\n (click)=\"_messageAction(item, i)\"\n (keypress)=\"_messageAction(item, i)\"\n >{{link}}</div>\n }\n </div>\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Output, EventEmitter, input } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { BimplusLocalizedWidgetComponent } from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\nimport { fireEvent } from '../../utils/utils';\n\n@Component({\n selector: 'lib-bimplus-storage-info',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n templateUrl: './bimplus-storage-info.component.html',\n styleUrl: './bimplus-storage-info.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusStorageInfoComponent extends BimplusLocalizedWidgetComponent{\n constructor(){\n super()\n }\n \n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n usedStorage = input<number>(0);\n\n\n @Output() bimplusStorageInfoClicked = new EventEmitter<string>();\n\n /**--------------------------------------------------------------------------\n * clicked storage info container\n --------------------------------------------------------------------------*/\n _infoClicked( action: string ){\n fireEvent(this, \"bimplusStorageInfoClicked\", action);\n }\n}\n","<div\n class=\"storage-info\"\n (click)=\"_infoClicked('storageInfo')\"\n (keypress)=\"_infoClicked('storageInfo')\"\n>\n <span class=\"progress-title\">\n {{\"_Common_Data_Environment_Quota\" | translate}}\n <span class=\"progress-text\" data-test=\"used-storage\">\n {{usedStorage()}}%\n </span>\n </span>\n <div class=\"storage-info-bar-container\">\n <div \n class=\"storage-info-bar\"\n [ngClass]=\"{\n 'red': usedStorage() >= 90,\n 'yellow': usedStorage() >= 80 && usedStorage() < 90,\n 'green': usedStorage() < 80\n }\"\n [style.width]=\"usedStorage() + '%'\"\n [style.max-width]=\"usedStorage() + '%'\"\n ></div>\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Output, EventEmitter, Input, booleanAttribute } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { BimplusLocalizedWidgetComponent } from \"../bimplus-localized-widget/bimplus-localized-widget.component\"\nimport { fireEvent } from '../../utils/utils';\n\n@Component({\n selector: 'lib-bimplus-upgrade-link',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n templateUrl: './bimplus-upgrade-link.component.html',\n styleUrl: './bimplus-upgrade-link.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusUpgradeLinkComponent extends BimplusLocalizedWidgetComponent {\n constructor() {\n super();\n }\n\n private _getLangParamValue(symbol: string) {\n const langMap: Record<string, string> = {\n en: '1',\n fr: '2',\n de: '3',\n cs: '1', // only in English, so use fallback\n es: '1', // only in English, so use fallback\n it: '1', // only in English, so use fallback\n ru: '1', // only in English, so use fallback\n ro: '1', // only in English, so use fallback\n tr: '1', // only in English, so use fallback\n };\n\n const lang = langMap[symbol];\n return `&lang=${lang ? lang : \"1\"}`;\n }\n\n private _getCountryIsoParam(symbol: string): string {\n const countryIsoMap: Record<string, string> = {\n en: 'gb', // English (UK) - currency is GBP\n us: 'us', // English (US) - currency is USD\n fr: 'fr', // French - currency is EUR\n de: 'de', // German - currency is EUR\n cs: 'cz', // Czech - currency is CZK\n es: 'es', // Spanish - currency is EUR\n it: 'it', // Italian - currency is EUR\n ru: 'ru', // Russian - currency is RUB\n ro: 'ro', // Romanian - currency is RON\n tr: 'tr' // Turkish - currency is TRY\n // all other countries are not supported\n // no pages are defined, so use fallback (don't add ap_country_iso param)\n };\n\n const iso = countryIsoMap[symbol];\n return iso ? `&ap_country_iso=${iso}` : '';\n }\n\n // New define for shop URLs\n // ACDC-31229 ==> ACDC-31560 Update the link of UPGARDE TO BIMPLUS\n // private defaultShopUrl = 'https://shop.allplan.com/?cl=details&anid=b34666d77706b644b8f19e6504f9a69f';\n private defaultShopUrl = 'https://www.bimplus.net/';\n @Input() shopUrl: string = this.defaultShopUrl;\n @Input() country: string = \"\";\n @Input({ transform: booleanAttribute }) isTouch: boolean = false;\n @Output() bimplusUpgradeLinkClicked = new EventEmitter<string>();\n\n _linkClicked() {\n // Determine the domain link based on your environment\n const domainLink = this.shopUrl || this.defaultShopUrl;\n console.debug(`Opening upgrade to Bimplus link`);\n\n window.open(domainLink, '_blank' /* Opens the link in a new tab or new window (depends on browser) */);\n // Emit to parent\n fireEvent(this, \"bimplusUpgradeLinkClicked\", domainLink);\n }\n\n // ACDC-31229 ==> ACDC-31560 Update the link of UPGARDE TO BIMPLUS\n // _linkClicked() {\n // // Get current language symbol from your base class or TranslateService\n // const currentLanguage = this.selectedLanguage;\n // const langValue = this._getLangParamValue(currentLanguage);\n // let countryIso = '';\n // if (!this.country || this.country === \"\") {\n // // If no country is provided, calculate country ISO based on the language\n // // console.debug(`No country provided, using default country ISO for language: ${currentLanguage}`);\n // countryIso = this._getCountryIsoParam(currentLanguage);\n // } else {\n // countryIso = `&ap_country_iso=${this.country}`;\n // }\n // // Determine the domain link based on your environment\n // const domainLink = this.shopUrl || this.defaultShopUrl;\n // console.debug(`Opening upgrade link with params: langauge=${currentLanguage} langValue=${langValue}, countryIso=${countryIso}`);\n // // Build the final URL with query params\n // // const url = new URL(domainLink);\n // // url.searchParams.set('lang', langValue);\n // const finalUrl = domainLink + langValue + countryIso;\n // window.open(finalUrl, '_blank' /* Opens the link in a new tab or new window (depends on browser) */);\n // // Emit to parent\n // fireEvent(this, \"bimplusUpgradeLinkClicked\", finalUrl);\n // }\n}\n\n"," <div\n class=\"bimplus-upgrade-link secondary-button body-text-mixin\"\n [ngClass]=\"isTouch ? 'is-touch' : ''\"\n (click)=\"_linkClicked()\"\n (keypress)=\"_linkClicked()\"\n >\n {{ \"_Upgrade_to_Bimplus\" | translate }}\n </div>\n\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges } from '@angular/core';\nimport {TranslateService, TranslateModule} from '@ngx-translate/core';\nimport {BimplusLocalizedWidgetComponent} from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\nimport { fireEvent } from '../../utils/utils';\n\nexport interface MenuItem {\n id: string,\n action: string,\n class: string,\n textId: string,\n type: string,\n checkState: string,\n url: string,\n _url?: () => string; // Function that takes no arguments and returns a string\n textClass: string,\n queryParams: string\n}\nexport interface MenuItemEventData {\n index: number,\n action: string\n}\nexport interface LangItem {\n symbol: string,\n text: string,\n lCode: string | undefined\n}\n\n@Component({\n selector: 'lib-bimplus-user-menu',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n templateUrl: './bimplus-user-menu.component.html',\n styleUrl: './bimplus-user-menu.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\n\nexport class BimplusUserMenuComponent extends BimplusLocalizedWidgetComponent implements OnChanges{\n constructor(){\n super();\n }\n\n _languagesList: LangItem[] = [\n { symbol: \"cs\", text: \"Čeština\", lCode: \"3\" },\n { symbol: \"de\", text: \"Deutsch\", lCode: \"1\" },\n { symbol: \"en\", text: \"English (UK)\", lCode: \"0\" },\n { symbol: \"us\", text: \"English (US)\", lCode: undefined },\n { symbol: \"es\", text: \"Español\", lCode: \"18\" },\n { symbol: \"fr\", text: \"Français\", lCode: \"4\" },\n { symbol: \"it\", text: \"Italiano\", lCode: \"2\" },\n { symbol: \"ru\", text: \"Русский\", lCode: \"14\" },\n { symbol: \"ro\", text: \"Romana\", lCode: undefined },\n { symbol: \"tr\", text: \"Türkçe\", lCode: undefined }\n ];\n\n /**--------------------------------------------------------------------------\n * States\n --------------------------------------------------------------------------*/\n _menuOpened = false;\n _languagesMenuOpened = false;\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input({ transform: booleanAttribute }) accountSettingsVisible : boolean = true;\n @Input({ transform: booleanAttribute }) removeConnectedAppsVisible : boolean = false;\n @Input({ transform: booleanAttribute }) userGuideVisible : boolean = true;\n @Input({ transform: booleanAttribute }) contactFormVisible : boolean = true;\n @Input({ transform: booleanAttribute }) forumVisible : boolean = true;\n @Input({ transform: booleanAttribute }) releaseNotesVisible : boolean = true;\n @Input({ transform: booleanAttribute }) submenuVisible : boolean = true;\n @Input({ transform: booleanAttribute }) clearCacheVisible : boolean = true;\n @Input({ transform: booleanAttribute }) dividerLoggedInVisible : boolean = true;\n @Input({ transform: booleanAttribute }) logoutVisible : boolean = true;\n @Input({ transform: booleanAttribute }) isEmbedded : boolean = false;\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\n @Input({ transform: booleanAttribute }) allowRcaItem : boolean = false;\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input() buttonTitle : string = '';\n @Input() userName : string = 'Unknown user';\n @Input() userPhotoUrl : string = '';\n @Input() userGuideLinkUrl : string = 'https://doc.allplan.com/display/BIMPLUSMANUAL/Bimplus+Benutzerhandbuch';\n @Input() contactFormLinkUrl : string = 'https://www.allplan.com/info/contact';\n @Input() forumLinkUrl : string = 'https://connect.allplan.com/de/forum/themen/bim-benutzer-forum.ct';\n /**--------------------------------------------------------------------------\n * Component events\n --------------------------------------------------------------------------*/\n @Output() bimplusUserMenuClicked = new EventEmitter<MenuItemEventData>();\n @Output() bimplusLanguageSelected = new EventEmitter<string>();\n\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['localizedStrings']) {\n this._localizedStrings.set(changes['localizedStrings'].currentValue);\n }\n }\n\n /**--------------------------------------------------------------------------\n * List of menu items\n * Note : action is used to identify action which should be executed\n --------------------------------------------------------------------------*/\n _menuItemsList: MenuItem[] = [\n { id:\"accountSettingsPage\", action:\"accountSettings\", class: \"icon-account-settings\", textId: \"_Edit_profile\", type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\", url: \"\"},\n { id:\"removeConnectedApps\", action:\"removeConnectedApps\", checkState: \"allowRcaItem\", class: \"icon-rca\", textClass: \"text-capitalized\", textId: \"_Remove_connected_apps\", type: \"\", url: \"\", queryParams: \"\"},\n { id:\"userGuideLink\", action:\"userGuide\", class: \"icon-user-guide\", textId: \"_UserGuide\", get url() { return this._url?.() ?? ''; }, _url: () => this.userGuideLinkUrl, type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\"},\n { id:\"contactFormLink\", action:\"contactForm\", class: \"icon-contact-form\", textId: \"_Contact_form\", get url() { return this._url?.() ?? ''; }, _url: () => this.contactFormLinkUrl, queryParams: \"\", type: \"\", checkState: \"\", textClass: \"\"},\n { id:\"forumLink\", action:\"forum\", class: \"icon-forum\", textId: \"_Forum\", get url() { return this._url?.() ?? ''; }, _url: () => this.forumLinkUrl, type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\"},\n { id:\"releaseNotesLink\", action:\"releaseNotes\", class: \"icon-release-notes\", textId: \"_Release_notes\", type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\", url: \"\"},\n { id:\"languagesSubmenu\", action:\"submenu\", class: \"icon-languages\", textId: \"_Languages\", type: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"},\n { id:\"clearCache\", action:\"clearCache\", class: \"icon-clear-cache\", textId: \"_Clear cache\", type: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"},\n { id:\"dividerLoggedIn\", type: \"divider\", action: \"\", class: \"\", textId: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"},\n { id:\"logout\", action:\"logout\", class: \"icon-log-out\", textId: \"_Logout\", type: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"}\n ];\n\n /**--------------------------------------------------------------------------\n * Item clicked\n --------------------------------------------------------------------------*/\n _menuItemClicked( item: MenuItem, index : number ){\n if (!item || item.type === 'divider') {\n return;\n }\n\n\n if (item.action === 'submenu') {\n this._toggleLanguagesSubmenuOpened();\n }\n else {\n this._languagesMenuOpened = false;\n this._menuOpened = false;\n fireEvent(this, \"bimplusUserMenuClicked\", { index, action: item.action ? item.action : '' });\n }\n }\n\n /**--------------------------------------------------------------------------\n * language submenu item clicked\n --------------------------------------------------------------------------*/\n _switchLanguage( language: string ){\n this._languagesMenuOpened = false;\n this._menuOpened = false;\n fireEvent(this, \"bimplusLanguageSelected\", language);\n }\n\n /**--------------------------------------------------------------------------\n * toggle menu open\n --------------------------------------------------------------------------*/\n _toggleOpened(){\n this._menuOpened = !this._menuOpened;\n if(!this._menuOpened) {\n this._languagesMenuOpened = false;\n }\n }\n\n /**--------------------------------------------------------------------------\n * toggle language submenu open\n --------------------------------------------------------------------------*/\n _toggleLanguagesSubmenuOpened(){\n if(!this._menuOpened) {\n return;\n }\n this._languagesMenuOpened = !this._languagesMenuOpened;\n }\n\n /**--------------------------------------------------------------------------\n * check if item is visible\n --------------------------------------------------------------------------*/\n _isHidden(item: MenuItem) {\n\n if (item) {\n return !this[(`${item.action ? item.action : item.id}Visible` as keyof BimplusUserMenuComponent)];\n }\n\n return false;\n }\n\n //--- add lang code and additional query params to supported urls\n _buildUrl(item: MenuItem | undefined) {\n let itemUrl = item?.url;\n const actualLang = this._languagesList.find(lang=> lang.symbol === this.selectedLanguage);\n const langCode = actualLang?.lCode;\n const supportsLangCode = itemUrl?.endsWith?.('.ct') && langCode;\n if (item?.queryParams || supportsLangCode) {\n itemUrl = itemUrl + '?';\n if (supportsLangCode) {\n itemUrl = itemUrl + 'L=' + langCode;\n if (item?.queryParams) {\n itemUrl = itemUrl + '&';\n }\n }\n if (item?.queryParams) {\n itemUrl = itemUrl + item.queryParams;\n }\n }\n return itemUrl;\n }\n\n _getMenuItems() {\n const menuItemsListFiltered = this.isEmbedded ? this._menuItemsList.slice(0,-3) : this._menuItemsList;\n return menuItemsListFiltered.map( (item) => {\n\n if (this._isHidden(item) || (item.checkState && !this[(item.checkState as keyof BimplusUserMenuComponent)])) {\n return;\n }\n return item;\n });\n }\n\n _getLangId(lang: LangItem | undefined) {\n return \"portalLanguage\" + lang?.symbol.charAt(0).toUpperCase() + lang?.symbol.slice(1);\n }\n}\n","<div\n [attr.key]=\"'bimcompOverlay'\"\n class=\"bimcomp-overlay\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n></div>\n<div\n [attr.key]=\"'userMenu'\"\n class=\"dropdown\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n>\n <div\n class=\"dropdown-toggle\"\n [title]=\"buttonTitle ? buttonTitle : ''\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n >\n <img\n class=\"user-photo\"\n src=\"{{ userPhotoUrl ? userPhotoUrl : '' }}\"\n alt=\"{{ buttonTitle ? buttonTitle : '' }}\"\n />\n <div class=\"user-name\">\n @if (!isTouch) {\n {{ userName }}\n }\n </div>\n <span class=\"caret\"></span>\n </div>\n <ul class=\"bimcomp-dropdown-menu\" [ngClass]=\"_menuOpened ? 'open' : ''\">\n <ng-container *ngFor=\"let item of _getMenuItems(); let i = index\">\n <li\n *ngIf=\"item\"\n [attr.key]=\"item.id\"\n [attr.role]=\"item.type === 'divider' ? 'separator' : ''\"\n [ngClass]=\"{\n divider: item.type === 'divider',\n languageMenuItem: item.action === 'submenu',\n 'submenu-hidden':\n (!item.url || item.url.slice(0, 2) === '#/') &&\n item.action !== 'submenu'\n }\"\n (click)=\"_menuItemClicked(item, i)\"\n (keypress)=\"_menuItemClicked(item, i)\"\n >\n @if (item.action === 'submenu') {\n <div class=\"submenu arrow\"></div>\n <div class=\"icon\" [ngClass]=\"item.class\"></div>\n <span\n class=\"menu-item-text\"\n [ngClass]=\"item.textClass ? item.textClass : ''\"\n >\n {{ item.textId | translate }}\n </span>\n <div\n class=\"languagesSubmenu\"\n [ngClass]=\"_languagesMenuOpened ? 'open' : ''\"\n >\n <div class=\"languageSubmenuItems\">\n <div\n *ngFor=\"let lang of _languagesList\"\n [attr.key]=\"_getLangId(lang)\"\n id=\"{{ _getLangId(lang) }}\"\n class=\"languageSubmenuItem\"\n [ngClass]=\"\n lang.symbol === this.selectedLanguage ? 'selected' : ''\n \"\n (click)=\"_switchLanguage(lang.symbol)\"\n (keypress)=\"_switchLanguage(lang.symbol)\"\n >\n {{ lang.text }}\n </div>\n </div>\n </div>\n } @else if (!item.url || item.url.slice(0,2) === \"#/\") {\n <div class=\"icon\" [ngClass]=\"item.class\"></div>\n <span\n class=\"menu-item-text\"\n [ngClass]=\"item.textClass ? item.textClass : ''\"\n >\n {{ item.textId | translate }}\n </span>\n } @else if (!item.type || item.type !== \"divider\") {\n <a\n href=\"{{ _buildUrl(item) }}\"\n rel=\"noopener\"\n target=\"_blank\"\n class=\"submenu-hidden\"\n >\n <div class=\"icon\" [ngClass]=\"item.class\"></div>\n <span\n class=\"menu-item-text\"\n [ngClass]=\"item.textClass ? item.textClass : ''\"\n >\n {{ item.textId | translate }}\n </span>\n </a>\n }\n </li>\n </ng-container>\n </ul>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute } from '@angular/core';\nimport { fireEvent } from '../../utils/utils';\n\n@Component({\n selector: 'lib-bimplus-zoom',\n imports: [CommonModule],\n templateUrl: './bimplus-zoom.component.html',\n styleUrl: './bimplus-zoom.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusZoomComponent{\n /**--------------------------------------------------------------------------\n * List of available zoom\n --------------------------------------------------------------------------*/\n _zoomList = [\n { symbol: \"100\", text: \"100%\"},\n { symbol: \"105\", text: \"105%\"},\n { symbol: \"110\", text: \"110%\"},\n { symbol: \"115\", text: \"115%\"},\n { symbol: \"120\", text: \"120%\"},\n { symbol: \"125\", text: \"125%\"},\n { symbol: \"130\", text: \"130%\"},\n { symbol: \"135\", text: \"135%\"},\n { symbol: \"140\", text: \"140%\"},\n { symbol: \"145\", text: \"145%\"},\n { symbol: \"150\", text: \"150%\"}\n ];\n\n /**--------------------------------------------------------------------------\n * States\n --------------------------------------------------------------------------*/\n _menuOpened = false;\n \n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input() selectedZoom : string = '125';\n\n /**--------------------------------------------------------------------------\n * Zoom selected event\n --------------------------------------------------------------------------*/\n @Output() bimplusZoomSelected = new EventEmitter<string>();\n\n /**--------------------------------------------------------------------------\n * Zoom selection\n --------------------------------------------------------------------------*/\n _switchZoom( zoom: string ){\n fireEvent(this, \"bimplusZoomSelected\", zoom);\n }\n\n /**--------------------------------------------------------------------------\n * toggle menu open\n --------------------------------------------------------------------------*/\n _toggleOpened(){\n this._menuOpened = !this._menuOpened;\n }\n\n /**--------------------------------------------------------------------------\n * setup dynamic classes for zoom item\n --------------------------------------------------------------------------*/\n _getZoomClassObject( symbol: string ){\n return {\n 'selected': this.selectedZoom === symbol,\n ['bimzoom-' + symbol]: true\n };\n }\n}\n","<div\n class=\"bimcomp-overlay\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n></div>\n<div \n class=\"dropdown\"\n [ngClass]=\"{'open': _menuOpened, 'is-touch': isTouch}\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n>\n <div class=\"dropdown-toggle\">\n <div class=\"main-icon icon-zoom\"></div>\n <span class=\"caret\"></span>\n </div>\n <ul\n class=\"bimcomp-dropdown-menu\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n >\n <li\n *ngFor=\"let zoom of _zoomList\"\n class=\"bimcomp-dropdown-menu-item\"\n [ngClass]=\"_getZoomClassObject(zoom.symbol)\"\n (click)=\"_switchZoom(zoom.symbol)\"\n (keypress)=\"_switchZoom(zoom.symbol)\"\n >\n <span>{{zoom.text}}</span>\n </li>\n </ul>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges } from '@angular/core';\nimport {TranslateService, TranslateModule} from '@ngx-translate/core';\nimport {BimplusLocalizedWidgetComponent} from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\nimport { fireEvent } from '../../utils/utils';\n\n@Component({\n selector: 'lib-bimplus-touch-menu',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n templateUrl: './bimplus-touch-menu.component.html',\n styleUrl: './bimplus-touch-menu.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\n\nexport class BimplusTouchMenuComponent extends BimplusLocalizedWidgetComponent implements OnChanges{\n constructor(){\n super()\n }\n\n /**--------------------------------------------------------------------------\n * List of menu items\n * Note : action is used to identify action which should be executed\n --------------------------------------------------------------------------*/\n _menuItemsList = [\n { mode:\"touch\", class: \"icon-touch-mode-toolbar\", textId: \"_Touch_Mode\"},\n { mode:\"desktop\", class: \"icon-desktop-mode-toolbar\", textId: \"_Desktop_Mode\"},\n ];\n\n get _selectedItem() {\n return this._menuItemsList.find(item => item.mode == this.selectedMode);\n }\n\n /**--------------------------------------------------------------------------\n * States\n --------------------------------------------------------------------------*/\n _menuOpened = false;\n \n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input() selectedMode : string = 'desktop';\n\n /**--------------------------------------------------------------------------\n * Zoom selected event\n --------------------------------------------------------------------------*/\n @Output() bimplusTouchModeSelected = new EventEmitter<string>();\n\n \n ngOnChanges(changes: SimpleChanges): void {\n if (changes['localizedStrings']) {\n this._localizedStrings.set(changes['localizedStrings'].currentValue); \n }\n }\n\n /**--------------------------------------------------------------------------\n * Item clicked\n --------------------------------------------------------------------------*/\n _menuItemClicked( mode: string ){\n fireEvent(this, \"bimplusTouchModeSelected\", mode);\n }\n\n /**--------------------------------------------------------------------------\n * toggle menu open\n --------------------------------------------------------------------------*/\n _toggleOpened(){\n this._menuOpened = !this._menuOpened;\n }\n}\n","<div\n class=\"bimcomp-overlay\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n >\n</div>\n<div \n class=\"dropdown\"\n [ngClass]=\"{'open': _menuOpened, 'is-touch': isTouch}\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n >\n <div class=\"dropdown-toggle\">\n <div \n class=\"main-icon\"\n [ngClass]=\"this._selectedItem?.class ? this._selectedItem?.class : ''\"\n ></div>\n <span class=\"caret\"></span>\n </div>\n <ul \n class=\"bimcomp-dropdown-menu\"\n [ngClass]=\"{'open':this._menuOpened}\">\n <li\n *ngFor=\"let item of _menuItemsList\"\n class=\"bimcomp-dropdown-menu-item\"\n [ngClass]=\"{'selected':this.selectedMode === item.mode}\"\n (click)=\"_menuItemClicked(item.mode)\"\n (keypress)=\"_menuItemClicked(item.mode)\"\n >\n <div \n class=\"icon\"\n [ngClass]=\"item.class\"\n ></div>\n <span>{{item.textId | translate}}</span>\n </li>\n </ul>\n</div>\n","import { Injectable } from '@angular/core';\nimport { LocalizedStrings } from './../types/types'\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageStringsService {\n\n // #region public fields\n set languageFilesUri(uri : string){\n this._languageFilesUri = uri;\n }\n private readonly defaultLang: string = 'en';\n currentLanguage$ = new BehaviorSubject<string> (this.defaultLang);\n currentLanguageStrings$ = new BehaviorSubject<LocalizedStrings>({});\n\n get currentLanguage() : string {\n return this.currentLanguage$.getValue();\n }\n\n set currentLanguageStrings(langStrings : LocalizedStrings){\n this.currentLanguageStrings$.next(langStrings);\n }\n\n get currentLanguageStrings() : LocalizedStrings {\n return this.currentLanguageStrings$.getValue();\n }\n // #endregion public fields\n\n // #region public methods\n async setCurrentLanguage(lang : string){\n this.currentLanguage$.next(lang);\n await this.fetchLanguageStrings(lang); \n }\n\n extractLocalizedStrings(stringIds : Array<string>) : LocalizedStrings {\n const obj : LocalizedStrings = {};\n for (const [key, value] of Object.entries(this.currentLanguageStrings)) {\n if(typeof value == 'string' && stringIds.find(x=>x === key)){\n obj[key] = value;\n }\n }\n\n return obj;\n }\n\n async fetchLanguageStrings(lang : string){\n const data = await fetch(`${this._languageFilesUri}/strings_${lang}.json`);\n console.log(`Language strings loaded from: ${this._languageFilesUri}/strings_${lang}.json`);\n console.log(data);\n const dataJSON = await data.json();\n // add missing translations from default language translations\n if (lang !== this.defaultLang) {\n const fallbackData = await fetch(`${this._languageFilesUri}/strings_en.json`);\n const fallbackDataJSON = await fallbackData?.json?.();\n const fallbackDataJSONIndexes = fallbackDataJSON && Object.keys(fallbackDataJSON);\n if (fallbackDataJSONIndexes?.length) {\n for (const index in fallbackDataJSONIndexes) {\n const indexName = fallbackDataJSONIndexes[index];\n dataJSON[indexName] ??= fallbackDataJSON[indexName];\n }\n }\n }\n this.currentLanguageStrings$.next(dataJSON); \n }\n // #endregion public methods\n\n // #region private fields \n private _languageFilesUri : string = \"/assets\"\n // #endregion private fields\n}\n","/*\n * Public API Surface of navigation\n */\n\nexport * from './lib/navigation.service';\nexport * from './lib/navigation.component';\nexport * from './lib/components/bimplus-contact/bimplus-contact.component';\nexport * from './lib/components/bimplus-language-menu/bimplus-language-menu.component';\nexport * from './lib/components/bimplus-localized-widget/bimplus-localized-widget.component';\nexport * from './lib/components/bimplus-main-menu/bimplus-main-menu.component';\nexport * from './lib/components/bimplus-navbar/bimplus-navbar.component';\nexport * from './lib/components/bimplus-navbar/logo-state.enum';\nexport * from './lib/components/bimplus-notify/bimplus-notify.component';\nexport * from './lib/components/bimplus-storage-info/bimplus-storage-info.component';\nexport * from './lib/components/bimplus-upgrade-link/bimplus-upgrade-link.component';\nexport * from './lib/components/bimplus-user-menu/bimplus-user-menu.component';\nexport * from './lib/components/bimplus-zoom/bimplus-zoom.component';\nexport * from './lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component';\nexport * from './lib/components/bimplus-touch-menu/bimplus-touch-menu.component';\nexport * from './lib/components/bimplus-project-menu/bimplus-project-menu.component';\nexport * from './lib/services/language-strings.service';\nexport * from './lib/types/types';\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-upgrade-link/bimplus-upgrade-link.component.ts","../../../../projects/@bimplus/navigation/src/lib/components/bimplus-upgrade-link/bimplus-upgrade-link.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';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigationService {\n\n constructor() { }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-navigation',\n imports: [],\n template: `\n <p>\n navigation works!\n </p>\n `,\n styles: ``\n})\nexport class NavigationComponent {\n\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, signal, WritableSignal, inject } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { LocalizedStrings } from './../../types/types'\n\n@Component({\n selector: 'lib-bimplus-localized-widget',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n template: `\n <p>\n localized widget works!\n </p>\n `,\n styles: [],\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusLocalizedWidgetComponent {\n translateService = inject(TranslateService);\n\n\n _selectedLanguage: WritableSignal<string> = signal('en');\n get selectedLanguage(): string {\n return this._selectedLanguage();\n }\n @Input() set selectedLanguage(value: string) {\n this._selectedLanguage.set(value);\n this.translateService.use(value);\n try {\n this.translateService.setTranslation(this.selectedLanguage, this._localizedStrings());\n } catch (error) {\n console.error(error);\n }\n }\n\n _localizedStrings: WritableSignal<LocalizedStrings> = signal({} as LocalizedStrings);\n get localizedStrings(): LocalizedStrings {\n return this._localizedStrings();\n }\n @Input() set localizedStrings(value: LocalizedStrings) {\n this._localizedStrings.set(value);\n this.translateService.use(this.selectedLanguage);\n try {\n this.translateService.setTranslation(this.selectedLanguage, value);\n } catch (error) {\n console.error(error);\n }\n }\n}\n","// Define the type of the window.BimPlus object\nexport interface BimPlusObject {\n [key: string]: (dataDetail: { detail: unknown }) => void;\n}\nexport interface Source {\n[key: string]: { emit: (arg0: unknown) => void; };\n}\n\n\n/**--------------------------------------------------------------------------\n* fire event from component in two ways : \n- fire custom event from component in standard recommended way via. this.eventName.emit function\n\n- call window.BimPlus.eventName function directly on window object (eventName is name\n of the event we want to fire e.g. bimplusNavbarClicked so it will be window.BimPlus.bimplusNavbarClicked).\n Function must be defined in app. where we are using our components.\n This was implemented because MS Edge browser has problems with custom events and in some \n situations(e.g. after file download) it stops handling custom events.\n Disadvantage is that we can have only one event handler which is shared between the multiple components.\n--------------------------------------------------------------------------*/\nexport function fireEvent(source: unknown, eventName: string, data: unknown = null){\n if ( !eventName ) {\n console.error(\"ERROR: Missing event name in fireEvent function in Bimplus components!\");\n return;\n }\n // Check if eventName exists on window.BimPlus and if it's a function\n const bimPlus = ('BimPlus' in window) && typeof window.BimPlus === 'object' && (window.BimPlus as BimPlusObject);\n if (bimPlus && typeof bimPlus[eventName] === 'function') {\n bimPlus[eventName]({detail: data});\n }\n\n const _source = (source as Source);\n if (eventName in _source) {\n _source[eventName].emit(data);\n }\n}","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { BimplusLocalizedWidgetComponent } from '../../components/bimplus-localized-widget/bimplus-localized-widget.component';\nimport { fireEvent } from '../../utils/utils';\n\n@Component({\n selector: 'lib-bimplus-contact',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n templateUrl: './bimplus-contact.component.html',\n styleUrl: './bimplus-contact.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusContactComponent extends BimplusLocalizedWidgetComponent{\n constructor(){\n super();\n }\n \n @Output() bimplusContactClicked = new EventEmitter<string>();\n\n _contactClicked(){\n fireEvent(this, \"bimplusContactClicked\", \"contact\");\n }\n}\n","<a\n href=\"https://connect.allplan.com/support/contact.ct?SSO=1&autolang\"\n class=\"bimplus-contact-link\"\n rel=\"noopener\"\n target=\"_blank\"\n (click)=\"_contactClicked()\"\n [title]=\"'_BimplusContactTitle' | translate\"\n>\n <div class=\"bimplus-contact\"></div>\n</a>\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute } from '@angular/core';\nimport { fireEvent } from '../../utils/utils';\n\n@Component({\n selector: 'lib-bimplus-language-menu',\n imports: [CommonModule],\n templateUrl: './bimplus-language-menu.component.html',\n styleUrl: './bimplus-language-menu.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusLanguageMenuComponent {\n\n _languagesList = [\n { symbol: \"cs\", text: \"Čeština\"},\n { symbol: \"de\", text: \"Deutsch\"},\n { symbol: \"en\", text: \"English (UK)\"},\n { symbol: \"us\", text: \"English (US)\"},\n { symbol: \"es\", text: \"Español\"},\n { symbol: \"fr\", text: \"Français\"},\n { symbol: \"it\", text: \"Italiano\"},\n { symbol: \"ru\", text: \"Русский\"},\n { symbol: \"ro\", text: \"Romana\"},\n { symbol: \"tr\", text: \"Türkçe\"}\n ];\n\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\n @Input() selectedLanguage : string = \"en\";\n @Input({ transform: booleanAttribute }) expandUp : boolean = false;\n _menuOpened : boolean = false;\n\n @Output() bimplusLanguageSelected = new EventEmitter<string>();\n\n _switchLanguage( language: string ){\n fireEvent(this, \"bimplusLanguageSelected\", language);\n }\n\n _toggleOpened(){\n this._menuOpened = !this._menuOpened;\n }\n}\n","<div \n class=\"bimcomp-overlay\"\n [ngClass]=\"_menuOpened ? 'open' : ''\" \n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n >\n</div>\n<div data-test=\"language-menu-dropdown\"\n class=\"dropdown\" \n [ngClass]=\"_menuOpened ? 'open' : ''\" [ngClass]=\"isTouch ? 'is-touch' : ''\" \n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n >\n <div class=\"dropdown-toggle\" >\n <div class='main-icon icon-languages'></div>\n <span class=\"caret\"></span>\n </div>\n\n <ul class= \"bimcomp-dropdown-menu\" [ngClass]=\"{'open':_menuOpened, 'expand-up':expandUp }\">\n <li [attr.data-test]=\"'langmenu_item_' + languageItem.text\" \n class=\"bimcomp-dropdown-menu-item\" \n [ngClass]=\"selectedLanguage === languageItem.symbol ? 'selected' : ''\" \n (click)=\"_switchLanguage(languageItem.symbol)\"\n (keypress)=\"_switchLanguage(languageItem.symbol)\"\n *ngFor=\"let languageItem of _languagesList\"\n >\n <span>{{languageItem.text}}</span>\n </li>\n </ul>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, booleanAttribute } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { BimplusLocalizedWidgetComponent } from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\nimport { fireEvent } from '../../utils/utils';\nimport { MenuListType } from '../../types/types';\n\nexport interface BimplusProjectMenuComponentAttribute {\n [key: string]: unknown; // Add index signature allowing string indexing\n //Other properties and methods...\n}\n\n@Component({\n selector: 'lib-bimplus-project-menu',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n templateUrl: './bimplus-project-menu.component.html',\n styleUrl: './bimplus-project-menu.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusProjectMenuComponent extends BimplusLocalizedWidgetComponent {\n constructor(){\n super()\n }\n\n @Input() projectName: string = \"\";\n @Input() projectImageUrl: string = \"\";\n @Input() projectExplorerUrl: string = \"\";\n @Input() projectActiveItem: string = \"\";\n @Input({ transform: booleanAttribute }) projectmembersDisabled: boolean = false;\n @Input({ transform: booleanAttribute }) modelsDisabled: boolean = false;\n @Input({ transform: booleanAttribute }) documentsDisabled: boolean = false;\n @Input({ transform: booleanAttribute }) projectsettingsDisabled: boolean = false;\n @Input({ transform: booleanAttribute }) processesDisabled: boolean = false;\n\n @Input({ transform: booleanAttribute }) projectmembersVisible: boolean = true;\n @Input({ transform: booleanAttribute }) modelsVisible: boolean = true;\n @Input({ transform: booleanAttribute }) documentsVisible: boolean = true;\n @Input({ transform: booleanAttribute }) projectsettingsVisible: boolean = true;\n @Input({ transform: booleanAttribute }) processesVisible: boolean = true;\n\n @Input({ transform: booleanAttribute }) isCollapsed: boolean = false;\n @Input({ transform: booleanAttribute }) isMiniMode: boolean = false;\n @Input({ transform: booleanAttribute }) isTouch: boolean = false;\n @Input({ transform: booleanAttribute }) hideMenuIcons: boolean = false;\n @Input({ transform: booleanAttribute }) showHorizontalMenuIcons: boolean = false;\n @Input() menuItemsOrder : string[] = [];\n\n get prjImgUrl() {\n return this.projectImageUrl ? this.projectImageUrl : \"./assets/@bimplus/navigation/assets/bimplus_Components_Project_Pic_Default.webp\";\n }\n get backgroundValue() {\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'})`;\n }\n\n get prjImageOverlayStyle() {\n return { 'background': `${this.backgroundValue}` };\n }\n\n get prjImageStyle() {\n return { 'background': `url(${this.prjImgUrl})` };\n }\n\n /**--------------------------------------------------------------------------\n * List of menu items\n * Note : action is used to identify action which should be executed\n * and also it serves as info topic id\n --------------------------------------------------------------------------*/\n _menuPrjList: MenuListType[] = [\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: \"\" },\n { action: \"models\", id: \"portalBimModels\", type: \"\", class: \"bim-pm-icon-models\", textId: \"_Models_tooltip\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\n { action: \"documents\", id: \"portalBimDocuments\", type: \"\", class: \"bim-pm-icon-documents\", textId: \"_Documents_tooltip\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\n { action: \"projectsettings\", id: \"portalBimProjectSettings\", type: \"\", class: \"bim-pm-icon-project-settings\", textId: \"_Project_settings_tooltip\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" },\n { action: \"processes\", id: \"portalBimProcesses\", type: \"\", class: \"bim-pm-icon-processes\", textId: \"_Approvals\", textIdDisabled: \"\", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: \"\" }\n ];\n\n get menuItems() : MenuListType[] {\n return this._menuPrjList.sort((a, b) => this.menuItemsOrder.indexOf(a.id) - this.menuItemsOrder.indexOf(b.id));\n }\n\n /**--------------------------------------------------------------------------\n * check if app is subscribed/visible\n --------------------------------------------------------------------------*/\n _isHidden(item: MenuListType): boolean {\n if (item) {\n const key = `${item.action ? item.action : item.id}Visible`;\n\n return !((this as unknown as BimplusProjectMenuComponentAttribute)[key]);\n }\n return false;\n }\n /**--------------------------------------------------------------------------\n * check if app is subscribed/visible\n --------------------------------------------------------------------------*/\n _isDisabled(item: MenuListType): boolean {\n\n if (item) {\n const key = `${item.action ? item.action : item.id}Disabled`;\n return !!(this as unknown as BimplusProjectMenuComponentAttribute)[key];\n }\n return false;\n }\n\n\n _projectMenuItemClicked(action: string, param: string) {\n console.log(action, param);\n }\n\n /**--------------------------------------------------------------------------\n* item clicked\n--------------------------------------------------------------------------*/\n _menuItemClicked(item: MenuListType, type: string, event: Event) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n console.log(item, type, event);\n\n\n if (type != \"info\") {\n if (this._isDisabled(item)) {\n return;\n }\n }\n const action = item.action;\n fireEvent(this, \"bimplusProjectMenuClicked\", { action, type });\n }\n\n _menuItemIgnoreAction(event: Event) {\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n _getPrjItemClassAttributes(item: MenuListType, isTouch: boolean) {\n const retval: string = `${this._isDisabled(item) ? 'disabled' : ''} ${isTouch ? '' : 'hover-show-info'}`;\n return retval;\n }\n\n _getPrjIconClassAttributes(item: MenuListType) {\n const retval: string = `${item.class} ${item.action === this.projectActiveItem ? 'active' : ''} ${this._isDisabled(item) ? 'disabled' : ''}`;\n return retval;\n }\n}\n","<ng-template #navigationPrjList>\n@for(item of menuItems; track item.id){\n @if (!_isHidden(item)){\n <!--* prjList *-->\n <div class=\"bim-pm-prj-item\"\n [ngClass] = \"_getPrjItemClassAttributes(item,isTouch)\"\n [title]=\"((_isDisabled(item) && item.textIdDisabled) ? item.textIdDisabled : item.textId) | translate\"\n (dblclick)=\"_menuItemIgnoreAction($event)\"\n (click)=\"_menuItemClicked(item, 'normal',$event)\"\n (keypress)=\"_menuItemClicked(item, 'normal',$event)\"\n >\n <div\n class=\"bim-pm-prj-icon\"\n [ngClass] = \"_getPrjIconClassAttributes(item)\"\n >\n </div>\n <div class=\"bim-pm-app-item-info bim-pm-icon bim-pm-icon-info\"\n (click)=\"_menuItemClicked(item, 'info',$event)\"\n (keypress)=\"_menuItemClicked(item, 'info',$event)\"\n >\n </div>\n </div>\n }\n}\n</ng-template>\n\n<ng-template #navigationPrjListThumbnail>\n@for(item of menuItems; track item.id){\n @if (!_isHidden(item) && (isCollapsed || item.action !== 'processes' )){\n <!--* navigationPrjList *-->\n <div class=\"bim-pm-prj-item\"\n [ngClass] = \"_getPrjItemClassAttributes(item,isTouch)\"\n [title]=\"((_isDisabled(item) && item.textIdDisabled) ? item.textIdDisabled : item.textId) | translate\"\n (dblclick)=\"_menuItemIgnoreAction($event)\"\n (click)=\"_menuItemClicked(item, 'normal',$event)\"\n (keypress)=\"_menuItemClicked(item, 'normal',$event)\"\n >\n <div\n class=\"bim-pm-prj-icon\"\n [ngClass] = \"_getPrjIconClassAttributes(item)\"\n >\n </div>\n <div class=\"bim-pm-app-item-info bim-pm-icon bim-pm-icon-info\"\n (click)=\"_menuItemClicked(item, 'info',$event)\"\n (keypress)=\"_menuItemClicked(item, 'info',$event)\"\n >\n </div>\n </div>\n }\n}\n</ng-template>\n\n<div class=\"bim-pm-prj-container\"\n [ngClass]=\"{ collapsed: isCollapsed, 'mini-mode': isMiniMode, 'is-touch': isTouch }\"\n >\n @if (isMiniMode && !isCollapsed) {\n <div class=\"bim-pm-prj-details-mini\">\n <div class=\"bim-pm-prj-image-bkg-mini\"\n [ngStyle]=\"prjImageOverlayStyle\">\n <div class=\"bim-pm-prj-image-thumbnail\" [ngStyle]=\"prjImageStyle\"></div>\n </div>\n <div class=\"bim-pm-prj-name-mini\">\n {{projectName}}\n </div>\n </div>\n <div class=\"bim-pm-prj-items-horizontal\"\n [ngClass]=\"showHorizontalMenuIcons ? '' : 'hidden'\">\n <div class=\"bim-pm-prj-items-list\">\n @if (showHorizontalMenuIcons) {\n <ng-container *ngTemplateOutlet=\"navigationPrjList\">\n </ng-container>\n }\n </div>\n </div>\n }\n @else {\n <a href={{projectExplorerUrl}} class=\"bim-pm-prj-details\"\n [ngStyle]=\"prjImageOverlayStyle\"\n (dblclick)=\"_projectMenuItemClicked('prjimagedblclick','normal')\"\n (click)=\"_projectMenuItemClicked('prjimageclick','normal')\"\n [title]=\"'_ModelThumbnailTooltip' | translate\">\n\n <div class=\"bim-pm-prj-image\" [ngStyle]=\"prjImageStyle\">\n <div class=\"bim-pm-prj-items-overlay\" [ngClass] = \"hideMenuIcons || showHorizontalMenuIcons ? 'hidden' : ''\">\n </div>\n <div\n class=\"bim-pm-prj-items-list\"\n [ngClass] = \"hideMenuIcons || showHorizontalMenuIcons ? 'hidden' : ''\"\n >\n @if (!hideMenuIcons && !showHorizontalMenuIcons){\n <ng-container *ngTemplateOutlet=\"navigationPrjListThumbnail\">\n </ng-container>\n }\n </div>\n <div class=\"bim-pm-prj-name\">\n {{projectName}}\n </div>\n </div>\n </a>\n <div class=\"bim-pm-prj-items-horizontal\"\n [ngClass] = \"showHorizontalMenuIcons ? '' : 'hidden'\">\n <div class=\"bim-pm-prj-items-list\">\n @if (showHorizontalMenuIcons) {\n <ng-container *ngTemplateOutlet=\"navigationPrjList\">\n </ng-container>\n }\n </div>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges } from '@angular/core';\nimport {TranslateService, TranslateModule} from '@ngx-translate/core';\nimport {BimplusProjectMenuComponent} from './../bimplus-project-menu/bimplus-project-menu.component';\nimport {BimplusLocalizedWidgetComponent} from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\nimport { fireEvent } from '../../utils/utils';\nimport {MenuListType} from '../../types/types';\n\nconst MenuListTypeId = {\n PORTAL_TEAM_MANAGEMENT_BTN: 'portalTeamManagementBtn',\n PORTAL_PROPERTY_MANAGER_BTN: 'portalPropertyManagerBtn',\n PORTAL_BIM_USERS: 'portalBimUsers',\n PORTAL_BIM_MODELS: 'portalBimModels',\n PORTAL_BIM_DOCUMENTS: 'portalBimDocuments',\n PORTAL_BIM_PROJECT_SETTINGS: 'portalBimProjectSettings',\n PORTAL_BIM_PROCESSES: 'portalBimProcesses',\n DIVIDER_PROJECT_MANAGEMENT: 'dividerprojectmanagement',\n PORTAL_BIM_VIEWER_BTN: 'portalBimViewerBtn',\n PORTAL_CLOUD_VIEWER_BTN: 'portalCloudViewerBtn',\n PORTAL_CONNEXIS_BTN: 'portalConnexisBtn',\n PORTAL_BIM_AUTOCONVERTER_BTN: 'portalBimAutoconverterBtn',\n DIVIDERAPPS: 'dividerapps',\n PORTAL_ADD_INS_BTN: 'portalAddInsBtn',\n PORTAL_SHOP_BTN: 'portalShopBtn',\n PORTAL_GET_YOUR_TEAM_BTN: 'portalGetYourTeamBtn',\n PORTAL_TRY_BIMPLUS_PRO_BTN: 'portalTryBimplusProBtn',\n} as const;\n\nexport interface BimplusMainMenuComponentAttribute {\n [key: string]: unknown; // Add index signature allowing string indexing\n //Other properties and methods...\n}\n\n@Component({\n selector: 'lib-bimplus-main-menu',\n imports: [CommonModule, TranslateModule, BimplusProjectMenuComponent],\n providers: [TranslateService],\n templateUrl: './bimplus-main-menu.component.html',\n styleUrl: './bimplus-main-menu.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\n\nexport class BimplusMainMenuComponent extends BimplusLocalizedWidgetComponent implements OnChanges {\n constructor(){\n super();\n }\n\n @Input({ transform: booleanAttribute }) isEmbedded : boolean = false;\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\n @Input({ transform: booleanAttribute }) isIpadApp : boolean = false;\n @Input({ transform: booleanAttribute }) isDev : boolean = false;\n @Input({ transform: booleanAttribute }) isStage : boolean = false;\n @Input({ transform: booleanAttribute }) hideProjectMenuIcons : boolean = false;\n @Input({ transform: booleanAttribute }) showHorizontalMenuIcons : boolean = false;\n @Input() projectName : string = \"\";\n @Input() projectImageUrl : string = \"\";\n @Input() projectExplorerUrl : string = \"\";\n @Input() projectActiveItem : string = \"\";\n @Input({ transform: booleanAttribute }) projectmembersDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) modelsDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) documentsDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) projectsettingsDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) processesDisabled : boolean = false;\n @Input() footerActiveItem : string = \"\";\n @Input() menuActiveItem : string = \"\";\n @Input({ transform: booleanAttribute }) isCollapsed : boolean = false;\n @Input({ transform: booleanAttribute }) showOverlay : boolean = false;\n @Input({ transform: booleanAttribute }) teammembersSubscribed : boolean = false;\n @Input({ transform: booleanAttribute }) propertymanagerSubscribed : boolean = false;\n @Input({ transform: booleanAttribute }) autoconverterSubscribed : boolean = false;\n @Input({ transform: booleanAttribute }) connexisSubscribed : boolean = false;\n @Input({ transform: booleanAttribute }) openProjectDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) bimexplorerDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) autoconverterDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) connexisDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) teammembersDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) propertymanagerDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) shopDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) addinsDisabled : boolean = false;\n @Input({ transform: booleanAttribute }) openProjectVisible : boolean = true;\n @Input({ transform: booleanAttribute }) bimplusProjectMenuVisible : boolean = true;\n @Input({ transform: booleanAttribute }) projectmembersVisible : boolean = true;\n @Input({ transform: booleanAttribute }) modelsVisible : boolean = true;\n @Input({ transform: booleanAttribute }) documentsVisible : boolean = true;\n @Input({ transform: booleanAttribute }) projectsettingsVisible : boolean = true;\n @Input({ transform: booleanAttribute }) processesVisible : boolean = true;\n @Input({ transform: booleanAttribute }) bimexplorerVisible : boolean = true;\n @Input({ transform: booleanAttribute }) autoconverterVisible : boolean = true;\n @Input({ transform: booleanAttribute }) connexisVisible : boolean = true;\n @Input({ transform: booleanAttribute }) teammembersVisible : boolean = true;\n @Input({ transform: booleanAttribute }) propertymanagerVisible : boolean = true;\n @Input({ transform: booleanAttribute }) shopVisible : boolean = true;\n @Input({ transform: booleanAttribute }) addinsVisible : boolean = true;\n @Input({ transform: booleanAttribute }) dividerprojectmanagementVisible : boolean = true;\n @Input({ transform: booleanAttribute }) dividerappsVisible : boolean = true;\n @Input({ transform: booleanAttribute }) getYourTeamVisible : boolean = false;\n @Input({ transform: booleanAttribute }) tryBimplusProVisible : boolean = false;\n @Input({ transform: booleanAttribute }) cloudviewerVisible : boolean = true;\n @Input() appsWithInfo : string[] = [];\n @Input() appsOrder : string[] = [];\n @Input() menuItemsOrder : string[] = [];\n\n @Output() bimplusMainMenuClicked = new EventEmitter<{ action: string, type: string }>();\n @Output() bimplusMainMenuOverlayClicked = new EventEmitter<void>();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['localizedStrings']) {\n this._localizedStrings.set(changes['localizedStrings'].currentValue);\n }\n }\n\n get apps(): MenuListType[] {\n let appsList = this.appsList.slice().sort((a, b) => this.appsOrder.indexOf(a.id) - this.appsOrder.indexOf(b.id));\n\n // if not connexisVisible remove PORTAL_CONNEXIS_BTN.\n if (!this.connexisVisible) {\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_CONNEXIS_BTN);\n }\n\n // if not cloudviewerVisible remove PORTAL_CLOUD_VIEWER_BTN.\n if (!this.cloudviewerVisible) {\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_CLOUD_VIEWER_BTN);\n }\n\n // if not autoconverterVisible remove PORTAL_AUTOCONVERTER_BTN.\n if (!this.autoconverterVisible) {\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_BIM_AUTOCONVERTER_BTN);\n }\n\n // if teammembersDisabled remove PORTAL_TEAM_MANAGEMENT_BTN.\n if (this.teammembersDisabled) {\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_TEAM_MANAGEMENT_BTN);\n }\n\n // if propertymanagerDisabled remove PORTAL_PROPERTY_MANAGER_BTN.\n if (this.propertymanagerDisabled) {\n appsList = appsList.filter(({ id }) => id !== MenuListTypeId.PORTAL_PROPERTY_MANAGER_BTN);\n }\n\n // if isTouch remove property manager btn. & approvals btn.\n if(this.isTouch) {\n appsList = appsList.filter(({ id }) => \n id !== MenuListTypeId.PORTAL_PROPERTY_MANAGER_BTN && \n id !== MenuListTypeId.PORTAL_BIM_PROCESSES\n );\n }\n\n return appsList;\n }\n\n get footerList(): MenuListType[] {\n let footerList = this._menuFooterList.filter(item => this._isSubscribed(item) && !this._isHidden(item));\n\n // in case that \"Get Your Team\" is not visible and teammembers are disabled then remove divider first, or is not isTouch mode\n if (this.teammembersDisabled || !this.isTouch) {\n footerList = footerList.filter(({ id }) => id !== MenuListTypeId.DIVIDERAPPS);\n }\n\n // if team is assigned then remove \"Get Your Team\" button\n if (!this.getYourTeamVisible) {\n return footerList.filter(({ id }) => id !== MenuListTypeId.PORTAL_GET_YOUR_TEAM_BTN);\n }\n\n // remove divider if there is no \"Get Your Team\" button\n return footerList.filter(({ id }) => id !== MenuListTypeId.DIVIDERAPPS);\n }\n\n /**--------------------------------------------------------------------------\n * check if app is subscribed\n --------------------------------------------------------------------------*/\n _isSubscribed(item:MenuListType):boolean {\n\n if (item.checkSubscription) {\n const key = `${item.action}Subscribed`;\n return !!((this as unknown as BimplusMainMenuComponentAttribute )[key]);\n }\n return true;\n }\n /**--------------------------------------------------------------------------\n * check if app is clickable\n --------------------------------------------------------------------------*/\n _isClickable(item:MenuListType):boolean {\n\n if (item.clickPolicy === \"noProjectNoSubscription\") {\n return this.projectName !== \"\";\n }\n return true;\n }\n\n /**--------------------------------------------------------------------------\n * check if app is subscribed/visible\n --------------------------------------------------------------------------*/\n _isHidden(item:MenuListType):boolean {\n\n if (item) {\n const key = `${item.action ? item.action : item.id}Visible`;\n return !((this as unknown as BimplusMainMenuComponentAttribute )[key]);\n }\n return false;\n }\n\n /**--------------------------------------------------------------------------\n * check if app is disabled\n --------------------------------------------------------------------------*/\n _isDisabled(item:MenuListType) {\n const key = `${item.action}Disabled`;\n return !!((this as unknown as BimplusMainMenuComponentAttribute )[key]);\n }\n\n _getContextData(item: MenuListType, active: boolean, disabled: boolean, clickable: boolean, selected: boolean) {\n return {\n item: item,\n active: active,\n disabled: disabled,\n clickable: clickable,\n selected: selected,\n showInfoIcon: this.appsWithInfo.includes(item.id)\n };\n }\n\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: \"\"};\n\n contextData = {item:\"haha\",active:true,disabled:true,clickable:true,selected:true};\n\n\n appsList: MenuListType[] = [\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: \"\"},\n { action:\"models\", id: MenuListTypeId.PORTAL_BIM_MODELS, type:\"\",class: \"bim-mm-icon-models\", textId: \"_Divisions\", textIdDisabled: \"_Divisions\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\n { action:\"documents\", id: MenuListTypeId.PORTAL_BIM_DOCUMENTS, type:\"\",class: \"bim-mm-icon-documents\", textId: \"_Files\", textIdDisabled: \"_Files\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\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: \"\"},\n { action:\"processes\", id: MenuListTypeId.PORTAL_BIM_PROCESSES, type:\"\",class: \"bim-mm-icon-processes\", textId: \"_Approvals\", textIdDisabled: \"_Approvals\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\n { action:\"\",id: MenuListTypeId.DIVIDER_PROJECT_MANAGEMENT, type:\"divider\", class: \"bim-mm-app-item-divider\", textId: \"\",textIdDisabled:\"\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\n\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\"},\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\"},\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\"},\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\"},\n\n { action:\"\",id: MenuListTypeId.DIVIDERAPPS, type:\"divider\", class: \"bim-mm-app-item-divider\", textId: \"\",textIdDisabled:\"\",disabledTitle:'',checkSubscription: false,devOrStageOnly : false,clickPolicy: \"\"},\n\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: \"\"},\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: \"\"},\n ];\n\n _menuFooterList: MenuListType[] = [\n { action:\"\",id: MenuListTypeId.DIVIDERAPPS, type:\"divider\", class: \"bim-mm-app-item-divider\",checkSubscription: false,devOrStageOnly : false } as MenuListType,\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: \"\"},\n { \n action:\"getYourTeam\", \n id: MenuListTypeId.PORTAL_GET_YOUR_TEAM_BTN,\n class: \"bim-mm-icon-get-your-team\", \n textId: \"_Get_Your_Team\", \n textIdDisabled: \"_Get_Your_Team\",\n } as MenuListType,\n { \n action:\"tryBimplusPro\", \n id: MenuListTypeId.PORTAL_TRY_BIMPLUS_PRO_BTN,\n class: \"bim-mm-icon-try-bimplus-pro\", \n textId: \"_Try_Bimplus_Pro\", \n textIdDisabled: \"_Try_Bimplus_Pro\",\n } as MenuListType, \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: \"\"}\n ];\n\n _overlayClicked(){\n fireEvent(this, \"bimplusMainMenuOverlayClicked\");\n }\n\n _mainMenuItemClicked(item: MenuListType,type:string,event: Event | undefined ){\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n if(type != \"info\") {\n if (this._isDisabled(item)){\n return;\n }\n }\n\n const action = item.action;\n fireEvent(this,\"bimplusMainMenuClicked\", {action,type:type } );\n }\n}\n","<ng-template #appNavigationItemContent let-contextData>\n @if (contextData.item.type === 'divider') {\n <div class=\"bim-mm-app-item\" [class]=\"contextData.item.class\" [id]=\"contextData.item.id\"></div>\n } @else {\n <div class=\"bim-mm-app-item\" [id]=\"contextData.item.id\"\n [ngClass]=\"isTouch?'':'hover-show-info '+(contextData.active?'active ':' ') +(contextData.disabled?'disabled ':' ')+(contextData.clickable?' ':'not-clickable ')+(contextData.selected?'selected ':' ')\"\n [title] =\"((contextData.disabled) ? (contextData.item.disabledTitle | translate) : '' )\"\n >\n <div class=\"bim-mm-app-item-details\"\n [ngClass] = \" contextData.clickable ? '' : 'not-clickable' \"\n (click)=\"_mainMenuItemClicked(contextData.item,'normal',$event)\"\n (keypress)=\"_mainMenuItemClicked(contextData.item,'normal',$event)\">\n <div class=\"bim-mm-icon\"\n [ngClass]=\"contextData.item.class + (contextData.active?' active':'') + (contextData.disabled?' disabled ':'')\">\n </div>\n <span>{{(contextData.isDisabled && (contextData.item.textIdDisabled !==\"\") ? contextData.item.textIdDisabled : contextData.item.textId) | translate}}</span>\n </div>\n @if(contextData.showInfoIcon){\n <div class=\"bim-mm-app-item-info bim-mm-icon bim-mm-icon-info\"\n (click)=\"_mainMenuItemClicked(contextData.item, 'info',$event)\"\n (keypress)=\"_mainMenuItemClicked(contextData.item, 'info',$event)\">\n </div>\n }\n </div>\n }\n</ng-template>\n\n\n\n<div \n class=\"bim-mm-wrapper\" \n [ngClass]=\"showOverlay ? 'bim-mm-overlay' : ''\" \n (click)=\"_overlayClicked()\"\n (keypress)=\"_overlayClicked()\"\n >\n <div class= \"bim-mm-container\">\n @if(!_isHidden(_openPrjBtn)){\n <ng-container\n *ngTemplateOutlet=\"appNavigationItemContent; context: { $implicit: _getContextData(_openPrjBtn,projectActiveItem === 'projectlist',_isDisabled(_openPrjBtn),true,projectActiveItem === 'projectlist') }\"\n ></ng-container>\n }\n\n @if(bimplusProjectMenuVisible){\n <lib-bimplus-project-menu\n projectName = {{projectName}}\n projectImageUrl = {{projectImageUrl}}\n projectExplorerUrl = {{projectExplorerUrl}}\n projectActiveItem = {{projectActiveItem}}\n projectmembersDisabled = {{projectmembersDisabled}}\n modelsDisabled = {{modelsDisabled}}\n documentsDisabled = {{documentsDisabled}}\n projectsettingsDisabled = {{projectsettingsDisabled}}\n processesDisabled = {{processesDisabled}}\n projectmembersVisible = {{projectmembersVisible}}\n modelsVisible = {{modelsVisible}}\n documentsVisible = {{documentsVisible}}\n projectsettingsVisible = {{projectsettingsVisible}}\n processesVisible = {{processesVisible}}\n isCollapsed = {{isCollapsed}}\n isMiniMode = {{isTouch}}\n isTouch = {{isTouch}}\n hideMenuIcons = {{hideProjectMenuIcons}}\n showHorizontalMenuIcons = {{showHorizontalMenuIcons}}\n [menuItemsOrder]=\"menuItemsOrder\"\n ></lib-bimplus-project-menu>\n }\n <div [ngClass]=\"apps.length || footerList.length ? 'bim-mm-apps-container' : ''\">\n <div class=\"bim-mm-apps-list\">\n <div *ngFor=\"let appItem of apps\">\n <ng-container\n *ngTemplateOutlet=\"appNavigationItemContent; context: { $implicit: _getContextData(appItem,!_isSubscribed(appItem),_isDisabled(appItem),_isClickable(appItem),menuActiveItem === appItem.action)}\"\n ></ng-container>\n </div>\n </div>\n <div class=\"bim-mm-footer-container\">\n <div *ngFor=\"let footerItem of footerList\">\n <ng-container\n *ngTemplateOutlet=\"appNavigationItemContent; context: { $implicit: _getContextData(footerItem,footerActiveItem === footerItem.action,_isDisabled(footerItem),true,false)}\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n","export enum LogoState {\n BimplusViewer = 'bimplusViewer', // Bimplus logo\n ModelViewerBlack = 'modelViewerBlack', // Model viewer black logo\n ModelViewer = 'modelViewer', // Cloud viewer logo\n ConnexisViewer = 'connexisViewer', // Connexis viewer logo\n ConnexisViewerBlack = 'connexisViewerBlack' // Connexis viewer logo (black)\n}\n\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, computed, input } from '@angular/core';\nimport { fireEvent } from '../../utils/utils';\nimport { LogoState } from './logo-state.enum';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'lib-bimplus-navbar',\n imports: [CommonModule, TranslateModule],\n templateUrl: './bimplus-navbar.component.html',\n styleUrl: './bimplus-navbar.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusNavbarComponent {\n @Input() projectInfo : string = \"\";\n @Input() teamInfo : string = \"\";\n @Input({ transform: booleanAttribute }) isDev : boolean = false;\n @Input({ transform: booleanAttribute }) isStage : boolean = false;\n @Input() teamInfoOffset : string = \"\";\n @Input({ transform: booleanAttribute }) isNavbarMenuVisible : boolean = false;\n @Input({ transform: booleanAttribute }) isNavbarInfoVisible : boolean = false;\n logoState = input<LogoState>(LogoState.BimplusViewer);\n isModelViewerActive = input(false , { transform: booleanAttribute });\n // @Input({ transform: booleanAttribute }) isConnexisViewerActive : boolean = false;\n @Input({ transform: booleanAttribute }) isNavbarMessageVisible : boolean = false;\n @Input({ transform: booleanAttribute }) isNavbarMenuActive : boolean = false;\n @Input({ transform: booleanAttribute }) isNavbarMenuEnabled : boolean = true;\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\n @Input({ transform: booleanAttribute }) isDashboardTooltipEnabled: boolean = true;\n @Input() selectedLanguage : string = \"en\";\n @Output() bimplusNavbarClicked = new EventEmitter<string>();\n\n // Make the enum available in the template\n public LogoState = LogoState;\n\n protected readonly logoStateSignal = computed<LogoState>(() => {\n if (this.isModelViewerActive()) {\n return LogoState.ModelViewerBlack;\n }\n\n return this.logoState();\n });\n\n _menuClicked() {\n if ( this.isNavbarMenuEnabled ) {\n fireEvent(this, \"bimplusNavbarClicked\", \"menu\");\n }\n }\n\n _logoClicked() {\n if (this.logoStateSignal() === LogoState.BimplusViewer) {\n // Fire only an event for BimplusViewer\n fireEvent(this, \"bimplusNavbarClicked\", \"logo\");\n }\n }\n\n _projectInfoClicked() {\n if ( this.isDev ) {\n fireEvent(this, \"bimplusNavbarClicked\", \"project\");\n }\n }\n}\n","<div\n class=\"bimplus-navbar\"\n [ngClass]=\"isTouch ? 'is-touch' : ''\"\n>\n <div class=\"bimplus-navbar-logo-container\">\n <div\n class=\"bimplus-logo\"\n [ngClass]=\"{\n 'model-viewer': logoStateSignal() === LogoState.ModelViewer,\n 'model-viewer-black': logoStateSignal() === LogoState.ModelViewerBlack,\n 'connexis-viewer': logoStateSignal() === LogoState.ConnexisViewer,\n 'connexis-viewer-black': logoStateSignal() === LogoState.ConnexisViewerBlack,\n 'burger-menu-not-visible': !isNavbarMenuVisible\n }\"\n (click)=\"_logoClicked()\"\n (keypress)=\"_logoClicked()\"\n [title]=\"(isDashboardTooltipEnabled ? '_dashboard_tooltip' : '') | translate\"\n ></div>\n\n <div\n class=\"bimplus-navbar-menu icon\"\n [ngClass]=\"{'active':isNavbarMenuActive, 'hidden': !isNavbarMenuVisible, 'disabled': !isNavbarMenuEnabled}\"\n (click)=\"_menuClicked()\"\n (keypress)=\"_menuClicked()\"\n ></div>\n </div>\n\n <div class=\"bimplus-navbar-container\">\n <div\n class=\"bimplus-navbar-info\"\n [ngClass]=\"{'hidden': !isNavbarInfoVisible}\"\n [style.margin-left]=\"teamInfoOffset\"\n >\n <span class=\"team\">{{teamInfo}}</span>\n <span *ngIf=\"projectInfo && !isTouch\">&nbsp;&nbsp; -&nbsp;&nbsp;</span>\n <span\n class=\"project\"\n [ngClass]=\"isDev ? 'clickable' : ''\"\n (click)=\"_projectInfoClicked()\"\n (keypress)=\"_projectInfoClicked()\"\n >\n {{projectInfo}}\n </span>\n </div>\n\n <div class=\"bimplus-navbar-slot\">\n <slot></slot>\n </div>\n\n </div>\n</div>\n","import { Component, ViewEncapsulation, ElementRef, AfterViewInit, AfterViewChecked, inject } from '@angular/core';\n\nimport SimpleBar from 'simplebar';\n\n@Component({\n selector: 'lib-bimplus-scrollable-container',\n imports: [],\n templateUrl: './bimplus-scrollable-container.component.html',\n styleUrl: './bimplus-scrollable-container.component.less',\n encapsulation: ViewEncapsulation.None\n})\n\nexport class BimplusScrollableContainerComponent implements AfterViewInit, AfterViewChecked {\n private readonly elementRef = inject(ElementRef);\n\n _simpleBar!: SimpleBar;\n _element: HTMLElement;\n protected _scrollableContainerClassName: string = '.scrollable-container';\n\n constructor(){\n this._element = this.elementRef.nativeElement;\n }\n\n private _initializationSimpleScrollBar(): void {\n // init simple bar scrollbar\n const scrollableContainer: HTMLElement | null = this._element?.querySelector(this._scrollableContainerClassName);\n if (!scrollableContainer) {\n console.error('No scrollable container found in the element.');\n return;\n }\n this._simpleBar = new SimpleBar(scrollableContainer);\n }\n\n ngAfterViewInit(): void {\n this._initializationSimpleScrollBar();\n }\n\n private _recalculateScrollbar(): void {\n if(!this._element) {\n return;\n }\n const _element = this._element;\n const barElem = _element?.querySelector(this._scrollableContainerClassName);\n if (!barElem){\n return;\n }\n\n if (!this._simpleBar) {\n console.error('No scrollable container found in the element.');\n return;\n }\n\n this._simpleBar.recalculate();\n }\n\n ngAfterViewChecked(): void {\n this._recalculateScrollbar();\n }\n}\n","<div class=\"scrollable-container\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges, OnInit, HostBinding } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { fireEvent } from '../../utils/utils';\nimport { BimplusLocalizedWidgetComponent } from './../bimplus-localized-widget/bimplus-localized-widget.component';\nimport { BimplusScrollableContainerComponent } from './../bimplus-scrollable-container/bimplus-scrollable-container.component';\n\nconst BIMPLUS_NOTIFY_MESSAGES = \"bimplus-notify-messages\";\ninterface MessageModel {\n 'id': string | undefined,\n 'type': string | undefined,\n 'title': string | undefined,\n 'text': string | undefined,\n 'link': string | undefined,\n 'linkText': string | string[] | undefined,\n 'links': string[] | undefined,\n 'actionId': number | undefined,\n 'capitalizedTitle': string | boolean | undefined\n}\n@Component({\n selector: 'lib-bimplus-notify',\n imports: [\n CommonModule,\n TranslateModule,\n BimplusScrollableContainerComponent\n ],\n providers: [TranslateService],\n templateUrl: './bimplus-notify.component.html',\n styleUrl: './bimplus-notify.component.less',\n encapsulation: ViewEncapsulation.None\n})\nexport class BimplusNotifyComponent extends BimplusLocalizedWidgetComponent implements OnChanges, OnInit{\n constructor(){\n super();\n }\n\n // Expose Array constructor as a property\n Array = Array;\n \n @HostBinding('class.new-messages')\n get newMessages() {\n return this._alertActive;\n }\n\n @HostBinding('class.bim-notify')\n get bimNotify() {\n return true; // Or you can use a condition here if needed\n }\n\n /**--------------------------------------------------------------------------\n * List of messages\n --------------------------------------------------------------------------*/\n _messagesList: MessageModel[] = [];\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input() messagePreviewTime : number = 3000; // in ms\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input({ transform: booleanAttribute }) showMessagePreview : boolean = true;\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input() previewMessagesLimit : number = 3;\n\n /**--------------------------------------------------------------------------\n * offset of preview messages from main icon\n --------------------------------------------------------------------------*/\n @Input() previewMessagesOffsetY : string = '2.7em';\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input() messages : string = '';\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['messages']) {\n const newValue = changes['messages'].currentValue;\n this.updateMessages(newValue);\n }\n }\n\n updateMessages(newValue: string /*, oldValue: string*/) {\n const isOk = newValue && typeof newValue === 'string';\n if (!isOk) {\n this._messagesList = [];\n this._previewMessagesList = [];\n this._alertActive = false;\n return;\n }\n\n const msgData = JSON.parse(newValue);\n this._messagesList = msgData.messages;\n\n // filter new messages into the list for preview\n let newMessagesList = this._messagesList.filter( (msg) => this._oldMessagesList.findIndex( (oldMsg) => oldMsg.id === msg.id ) < 0 );\n newMessagesList = newMessagesList.filter( (item) => this._messageNotReadYet(item)); // filtering out allready read messages (stored in localstorage)\n\n // setup preview for new messages\n newMessagesList.slice().reverse().forEach( (newMsg) => {\n if ( this._previewMessagesList.findIndex( (item) => newMsg.id === item.id ) < 0){\n this._previewMessagesList.unshift(newMsg);\n\n if( this.messagePreviewTime > 0 ) {\n setTimeout(() => {\n this._closePreviewMessage(newMsg.id, false);\n }, this.messagePreviewTime);\n }\n }\n })\n\n // limit preview messages count\n this._previewMessagesList.length = this._previewMessagesList.length > this.previewMessagesLimit ? this.previewMessagesLimit : this._previewMessagesList.length;\n\n // set old state and alert\n this._oldMessagesList = this._messagesList;\n this._alertActive = this._messagesList.length != 0;\n }\n\n /**--------------------------------------------------------------------------\n * States\n --------------------------------------------------------------------------*/\n _menuOpened: boolean = false;\n _alertActive: boolean = false;\n _oldMessagesList: MessageModel[] = [];\n // list of messages for preview\n _previewMessagesList: MessageModel[] = [];\n\n\n /**--------------------------------------------------------------------------\n * Delete item event\n --------------------------------------------------------------------------*/\n @Output() bimplusNotifyDeleteMessage = new EventEmitter<string>();\n\n /**--------------------------------------------------------------------------\n * Delete all item event\n --------------------------------------------------------------------------*/\n @Output() bimplusNotifyDeleteAllMessages = new EventEmitter<string>();\n\n /**--------------------------------------------------------------------------\n * Message action event\n --------------------------------------------------------------------------*/\n @Output() bimplusNotifyMessageAction = new EventEmitter<string>();\n\n /**--------------------------------------------------------------------------\n * initial component load\n --------------------------------------------------------------------------*/\n ngOnInit(): void {\n this.updateMessages(this.messages);\n }\n\n /**--------------------------------------------------------------------------\n * close single message\n --------------------------------------------------------------------------*/\n _closeMessage( item: MessageModel, preview: boolean, event: Event | undefined ){\n if (preview) {\n return this._closePreviewMessage(item.id);\n }\n\n if (event) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n fireEvent(this, \"bimplusNotifyDeleteMessage\", JSON.stringify(item));\n }\n\n /**--------------------------------------------------------------------------\n * close preview message\n --------------------------------------------------------------------------*/\n _closePreviewMessage( msgId: string | undefined, closedByUser = true ){\n if (!msgId) {\n return;\n }\n\n this._previewMessagesList = this._previewMessagesList.filter( (msg) => msg.id !== msgId );\n this.storeMessagesAsRead([msgId]);\n if ( closedByUser && this._previewMessagesList.length === 0 ){\n this._alertActive = false;\n }\n }\n\n /**--------------------------------------------------------------------------\n * close all messages\n --------------------------------------------------------------------------*/\n _deleteAllMessages(){\n fireEvent(this, \"bimplusNotifyDeleteAllMessages\");\n this.clearAllLocalStorageMessages();\n }\n\n /**--------------------------------------------------------------------------\n * message clicked\n --------------------------------------------------------------------------*/\n _messageAction( item: MessageModel, index: number ){\n item.actionId = index;\n fireEvent(this, \"bimplusNotifyMessageAction\", JSON.stringify(item));\n }\n\n /**--------------------------------------------------------------------------\n * toggle menu open\n --------------------------------------------------------------------------*/\n _toggleOpened(){\n this._menuOpened = !this._menuOpened;\n this._alertActive = false;\n this._previewMessagesList = [];\n }\n\n _messageNotReadYet(message: MessageModel){\n if(!message?.id){\n return true;\n }\n const messageListString = window.localStorage.getItem(BIMPLUS_NOTIFY_MESSAGES);\n if(!messageListString){\n return true;\n }\n return !messageListString.includes(message.id);\n }\n\n storeMessagesAsRead(messageList: string[]){\n if(!messageList || messageList.length <1){\n return;\n }\n let messageListString = window.localStorage.getItem(BIMPLUS_NOTIFY_MESSAGES);\n messageListString ??= \"\";\n messageList.forEach((item: string)=>{\n if(!messageListString?.includes(item)){\n messageListString+=(item+\";\");\n }\n })\n window.localStorage.setItem(BIMPLUS_NOTIFY_MESSAGES,messageListString);\n }\n\n clearAllLocalStorageMessages(){\n window.localStorage.removeItem(BIMPLUS_NOTIFY_MESSAGES);\n }\n\n /**--------------------------------------------------------------------------\n * get item link title\n --------------------------------------------------------------------------*/\n _getItemLinkTitle( item: MessageModel, index: number ){\n let itemLinksTitles: (string | undefined)[] = [];\n if ( item.linkText && (item.links || item.link)) {\n itemLinksTitles = Array.isArray(item.links) ? item.links : [item.link];\n }\n return itemLinksTitles[index] ?? '';\n }\n}\n","<div\n class=\"dropdown\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n [title]=\"'_BimplusNotifyTitle' | translate\"\n>\n <div class=\"dropdown-toggle\" >\n <div\n class=\"main-icon\"\n [ngClass]=\"'icon-notify' + (this._alertActive ? '-alert notify' : '')\"\n ></div>\n </div>\n\n <div\n class=\"bimcomp-dropdown-menu\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n >\n <div class=\"notify-tick\"></div>\n <div class=\"messages-title\">\n <div class=\"messages-count\">\n ({{this._messagesList.length}})\n </div>\n <div\n class=\"messages-delete-all\"\n (click)=\"_deleteAllMessages()\"\n (keypress)=\"_deleteAllMessages()\"\n >\n {{\"_Notify_Mark_All\" | translate}}\n </div>\n </div>\n <div class=\"messages-container\">\n @if (_messagesList.length) {\n <lib-bimplus-scrollable-container>\n <div\n *ngFor=\"let item of _messagesList\"\n class=\"message-item\"\n >\n <div class=\"message-item-title\">\n <div [ngClass]=\"'message-item-icon-' + item.type\"></div>\n <div\n class=\"message-item-title-text\"\n [ngClass]=\"{'capitalize':item.capitalizedTitle}\"\n >\n {{item.title}}\n </div>\n <div\n class=\"message-item-icon-close\"\n (click)=\"_closeMessage(item, false, $event)\"\n (keypress)=\"_closeMessage(item, false, $event)\"\n ></div>\n </div>\n \n <div class=\"message-item-body-text\">{{item.text}}</div>\n @if (item.linkText) {\n <div\n *ngFor=\"let link of (item.linkText.constructor === Array ? item.linkText : [item.linkText]); let i = index\"\n class=\"message-item-link\"\n [title]=\"_getItemLinkTitle(item, i)\"\n (click)=\"_messageAction(item, i)\"\n (keypress)=\"_messageAction(item, i)\"\n >{{link}}</div>\n }\n </div>\n </lib-bimplus-scrollable-container>\n } @else {\n <div class=\"message-item-empty\">\n <div class=\"message-item-empty-icon\"></div>\n <div class=\"message-item-empty-text\">{{\"_Notify_No_Messages\" | translate}}</div>\n </div>\n }\n </div>\n </div>\n</div>\n\n<div\n class=\"bimcomp-overlay\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n></div>\n\n<div\n class=\"bimcomp-messages-preview\"\n [ngClass]=\"(showMessagePreview && !_menuOpened && _previewMessagesList.length > 0) ? 'visible' : ''\"\n [style.top]=\"previewMessagesOffsetY\"\n>\n <div class=\"messages-container-preview\">\n <div\n *ngFor=\"let item of _previewMessagesList\"\n class=\"message-item\"\n >\n <div class=\"message-item-title\">\n <div [ngClass]=\"'message-item-icon-' + item.type\"></div>\n <div\n class=\"message-item-title-text\"\n [ngClass]=\"{'capitalize':item.capitalizedTitle}\"\n >\n {{item.title}}\n </div>\n <div\n class=\"message-item-icon-close\"\n (click)=\"_closeMessage(item, true, $event)\"\n (keypress)=\"_closeMessage(item, true, $event)\"\n ></div>\n </div>\n\n <div class=\"message-item-body-text\">\n {{item.text}}\n </div>\n @if (item.linkText) {\n <div\n *ngFor=\"let link of (item.linkText.constructor === Array ? item.linkText : [item.linkText]); let i = index\"\n class=\"message-item-link\"\n [title]=\"_getItemLinkTitle(item, i)\"\n (click)=\"_messageAction(item, i)\"\n (keypress)=\"_messageAction(item, i)\"\n >{{link}}</div>\n }\n </div>\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Output, EventEmitter, input } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { BimplusLocalizedWidgetComponent } from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\nimport { fireEvent } from '../../utils/utils';\n\n@Component({\n selector: 'lib-bimplus-storage-info',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n templateUrl: './bimplus-storage-info.component.html',\n styleUrl: './bimplus-storage-info.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusStorageInfoComponent extends BimplusLocalizedWidgetComponent{\n constructor(){\n super()\n }\n \n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n usedStorage = input<number>(0);\n\n\n @Output() bimplusStorageInfoClicked = new EventEmitter<string>();\n\n /**--------------------------------------------------------------------------\n * clicked storage info container\n --------------------------------------------------------------------------*/\n _infoClicked( action: string ){\n fireEvent(this, \"bimplusStorageInfoClicked\", action);\n }\n}\n","<div\n class=\"storage-info\"\n (click)=\"_infoClicked('storageInfo')\"\n (keypress)=\"_infoClicked('storageInfo')\"\n>\n <span class=\"progress-title\">\n {{\"_Common_Data_Environment_Quota\" | translate}}\n <span class=\"progress-text\" data-test=\"used-storage\">\n {{usedStorage()}}%\n </span>\n </span>\n <div class=\"storage-info-bar-container\">\n <div \n class=\"storage-info-bar\"\n [ngClass]=\"{\n 'red': usedStorage() >= 90,\n 'yellow': usedStorage() >= 80 && usedStorage() < 90,\n 'green': usedStorage() < 80\n }\"\n [style.width]=\"usedStorage() + '%'\"\n [style.max-width]=\"usedStorage() + '%'\"\n ></div>\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Output, EventEmitter, Input, booleanAttribute } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { BimplusLocalizedWidgetComponent } from \"../bimplus-localized-widget/bimplus-localized-widget.component\"\nimport { fireEvent } from '../../utils/utils';\n\n@Component({\n selector: 'lib-bimplus-upgrade-link',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n templateUrl: './bimplus-upgrade-link.component.html',\n styleUrl: './bimplus-upgrade-link.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusUpgradeLinkComponent extends BimplusLocalizedWidgetComponent {\n constructor() {\n super();\n }\n\n private _getLangParamValue(symbol: string) {\n const langMap: Record<string, string> = {\n en: '1',\n fr: '2',\n de: '3',\n cs: '1', // only in English, so use fallback\n es: '1', // only in English, so use fallback\n it: '1', // only in English, so use fallback\n ru: '1', // only in English, so use fallback\n ro: '1', // only in English, so use fallback\n tr: '1', // only in English, so use fallback\n };\n\n const lang = langMap[symbol];\n return `&lang=${lang ? lang : \"1\"}`;\n }\n\n private _getCountryIsoParam(symbol: string): string {\n const countryIsoMap: Record<string, string> = {\n en: 'gb', // English (UK) - currency is GBP\n us: 'us', // English (US) - currency is USD\n fr: 'fr', // French - currency is EUR\n de: 'de', // German - currency is EUR\n cs: 'cz', // Czech - currency is CZK\n es: 'es', // Spanish - currency is EUR\n it: 'it', // Italian - currency is EUR\n ru: 'ru', // Russian - currency is RUB\n ro: 'ro', // Romanian - currency is RON\n tr: 'tr' // Turkish - currency is TRY\n // all other countries are not supported\n // no pages are defined, so use fallback (don't add ap_country_iso param)\n };\n\n const iso = countryIsoMap[symbol];\n return iso ? `&ap_country_iso=${iso}` : '';\n }\n\n // New define for shop URLs\n // ACDC-31229 ==> ACDC-31560 Update the link of UPGARDE TO BIMPLUS\n // private defaultShopUrl = 'https://shop.allplan.com/?cl=details&anid=b34666d77706b644b8f19e6504f9a69f';\n private defaultShopUrl = 'https://www.bimplus.net/';\n @Input() shopUrl: string = this.defaultShopUrl;\n @Input() country: string = \"\";\n @Input({ transform: booleanAttribute }) isTouch: boolean = false;\n @Output() bimplusUpgradeLinkClicked = new EventEmitter<string>();\n\n _linkClicked() {\n // Determine the domain link based on your environment\n const domainLink = this.shopUrl || this.defaultShopUrl;\n console.debug(`Opening upgrade to Bimplus link`);\n\n window.open(domainLink, '_blank' /* Opens the link in a new tab or new window (depends on browser) */);\n // Emit to parent\n fireEvent(this, \"bimplusUpgradeLinkClicked\", domainLink);\n }\n\n // ACDC-31229 ==> ACDC-31560 Update the link of UPGARDE TO BIMPLUS\n // _linkClicked() {\n // // Get current language symbol from your base class or TranslateService\n // const currentLanguage = this.selectedLanguage;\n // const langValue = this._getLangParamValue(currentLanguage);\n // let countryIso = '';\n // if (!this.country || this.country === \"\") {\n // // If no country is provided, calculate country ISO based on the language\n // // console.debug(`No country provided, using default country ISO for language: ${currentLanguage}`);\n // countryIso = this._getCountryIsoParam(currentLanguage);\n // } else {\n // countryIso = `&ap_country_iso=${this.country}`;\n // }\n // // Determine the domain link based on your environment\n // const domainLink = this.shopUrl || this.defaultShopUrl;\n // console.debug(`Opening upgrade link with params: langauge=${currentLanguage} langValue=${langValue}, countryIso=${countryIso}`);\n // // Build the final URL with query params\n // // const url = new URL(domainLink);\n // // url.searchParams.set('lang', langValue);\n // const finalUrl = domainLink + langValue + countryIso;\n // window.open(finalUrl, '_blank' /* Opens the link in a new tab or new window (depends on browser) */);\n // // Emit to parent\n // fireEvent(this, \"bimplusUpgradeLinkClicked\", finalUrl);\n // }\n}\n\n"," <div\n class=\"bimplus-upgrade-link secondary-button body-text-mixin\"\n [ngClass]=\"isTouch ? 'is-touch' : ''\"\n (click)=\"_linkClicked()\"\n (keypress)=\"_linkClicked()\"\n >\n {{ \"_Upgrade_to_Bimplus\" | translate }}\n </div>\n\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges } from '@angular/core';\nimport {TranslateService, TranslateModule} from '@ngx-translate/core';\nimport {BimplusLocalizedWidgetComponent} from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\nimport { fireEvent } from '../../utils/utils';\n\nexport interface MenuItem {\n id: string,\n action: string,\n class: string,\n textId: string,\n type: string,\n checkState: string,\n url: string,\n _url?: () => string; // Function that takes no arguments and returns a string\n textClass: string,\n queryParams: string\n}\nexport interface MenuItemEventData {\n index: number,\n action: string\n}\nexport interface LangItem {\n symbol: string,\n text: string,\n lCode: string | undefined\n}\n\n@Component({\n selector: 'lib-bimplus-user-menu',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n templateUrl: './bimplus-user-menu.component.html',\n styleUrl: './bimplus-user-menu.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\n\nexport class BimplusUserMenuComponent extends BimplusLocalizedWidgetComponent implements OnChanges{\n constructor(){\n super();\n }\n\n _languagesList: LangItem[] = [\n { symbol: \"cs\", text: \"Čeština\", lCode: \"3\" },\n { symbol: \"de\", text: \"Deutsch\", lCode: \"1\" },\n { symbol: \"en\", text: \"English (UK)\", lCode: \"0\" },\n { symbol: \"us\", text: \"English (US)\", lCode: undefined },\n { symbol: \"es\", text: \"Español\", lCode: \"18\" },\n { symbol: \"fr\", text: \"Français\", lCode: \"4\" },\n { symbol: \"it\", text: \"Italiano\", lCode: \"2\" },\n { symbol: \"ru\", text: \"Русский\", lCode: \"14\" },\n { symbol: \"ro\", text: \"Romana\", lCode: undefined },\n { symbol: \"tr\", text: \"Türkçe\", lCode: undefined }\n ];\n\n /**--------------------------------------------------------------------------\n * States\n --------------------------------------------------------------------------*/\n _menuOpened = false;\n _languagesMenuOpened = false;\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input({ transform: booleanAttribute }) accountSettingsVisible : boolean = true;\n @Input({ transform: booleanAttribute }) removeConnectedAppsVisible : boolean = false;\n @Input({ transform: booleanAttribute }) userGuideVisible : boolean = true;\n @Input({ transform: booleanAttribute }) contactFormVisible : boolean = true;\n @Input({ transform: booleanAttribute }) forumVisible : boolean = true;\n @Input({ transform: booleanAttribute }) releaseNotesVisible : boolean = true;\n @Input({ transform: booleanAttribute }) submenuVisible : boolean = true;\n @Input({ transform: booleanAttribute }) clearCacheVisible : boolean = true;\n @Input({ transform: booleanAttribute }) dividerLoggedInVisible : boolean = true;\n @Input({ transform: booleanAttribute }) logoutVisible : boolean = true;\n @Input({ transform: booleanAttribute }) isEmbedded : boolean = false;\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\n @Input({ transform: booleanAttribute }) allowRcaItem : boolean = false;\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input() buttonTitle : string = '';\n @Input() userName : string = 'Unknown user';\n @Input() userPhotoUrl : string = '';\n @Input() userGuideLinkUrl : string = 'https://doc.allplan.com/display/BIMPLUSMANUAL/Bimplus+Benutzerhandbuch';\n @Input() contactFormLinkUrl : string = 'https://www.allplan.com/info/contact';\n @Input() forumLinkUrl : string = 'https://connect.allplan.com/de/forum/themen/bim-benutzer-forum.ct';\n /**--------------------------------------------------------------------------\n * Component events\n --------------------------------------------------------------------------*/\n @Output() bimplusUserMenuClicked = new EventEmitter<MenuItemEventData>();\n @Output() bimplusLanguageSelected = new EventEmitter<string>();\n\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['localizedStrings']) {\n this._localizedStrings.set(changes['localizedStrings'].currentValue);\n }\n }\n\n /**--------------------------------------------------------------------------\n * List of menu items\n * Note : action is used to identify action which should be executed\n --------------------------------------------------------------------------*/\n _menuItemsList: MenuItem[] = [\n { id:\"accountSettingsPage\", action:\"accountSettings\", class: \"icon-account-settings\", textId: \"_Edit_profile\", type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\", url: \"\"},\n { id:\"removeConnectedApps\", action:\"removeConnectedApps\", checkState: \"allowRcaItem\", class: \"icon-rca\", textClass: \"text-capitalized\", textId: \"_Remove_connected_apps\", type: \"\", url: \"\", queryParams: \"\"},\n { id:\"userGuideLink\", action:\"userGuide\", class: \"icon-user-guide\", textId: \"_UserGuide\", get url() { return this._url?.() ?? ''; }, _url: () => this.userGuideLinkUrl, type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\"},\n { id:\"contactFormLink\", action:\"contactForm\", class: \"icon-contact-form\", textId: \"_Contact_form\", get url() { return this._url?.() ?? ''; }, _url: () => this.contactFormLinkUrl, queryParams: \"\", type: \"\", checkState: \"\", textClass: \"\"},\n { id:\"forumLink\", action:\"forum\", class: \"icon-forum\", textId: \"_Forum\", get url() { return this._url?.() ?? ''; }, _url: () => this.forumLinkUrl, type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\"},\n { id:\"releaseNotesLink\", action:\"releaseNotes\", class: \"icon-release-notes\", textId: \"_Release_notes\", type: \"\", checkState: \"\", textClass: \"\", queryParams: \"\", url: \"\"},\n { id:\"languagesSubmenu\", action:\"submenu\", class: \"icon-languages\", textId: \"_Languages\", type: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"},\n { id:\"clearCache\", action:\"clearCache\", class: \"icon-clear-cache\", textId: \"_Clear cache\", type: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"},\n { id:\"dividerLoggedIn\", type: \"divider\", action: \"\", class: \"\", textId: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"},\n { id:\"logout\", action:\"logout\", class: \"icon-log-out\", textId: \"_Logout\", type: \"\", checkState: \"\", url: \"\", textClass: \"\", queryParams: \"\"}\n ];\n\n /**--------------------------------------------------------------------------\n * Item clicked\n --------------------------------------------------------------------------*/\n _menuItemClicked( item: MenuItem, index : number ){\n if (!item || item.type === 'divider') {\n return;\n }\n\n\n if (item.action === 'submenu') {\n this._toggleLanguagesSubmenuOpened();\n }\n else {\n this._languagesMenuOpened = false;\n this._menuOpened = false;\n fireEvent(this, \"bimplusUserMenuClicked\", { index, action: item.action ? item.action : '' });\n }\n }\n\n /**--------------------------------------------------------------------------\n * language submenu item clicked\n --------------------------------------------------------------------------*/\n _switchLanguage( language: string ){\n this._languagesMenuOpened = false;\n this._menuOpened = false;\n fireEvent(this, \"bimplusLanguageSelected\", language);\n }\n\n /**--------------------------------------------------------------------------\n * toggle menu open\n --------------------------------------------------------------------------*/\n _toggleOpened(){\n this._menuOpened = !this._menuOpened;\n if(!this._menuOpened) {\n this._languagesMenuOpened = false;\n }\n }\n\n /**--------------------------------------------------------------------------\n * toggle language submenu open\n --------------------------------------------------------------------------*/\n _toggleLanguagesSubmenuOpened(){\n if(!this._menuOpened) {\n return;\n }\n this._languagesMenuOpened = !this._languagesMenuOpened;\n }\n\n /**--------------------------------------------------------------------------\n * check if item is visible\n --------------------------------------------------------------------------*/\n _isHidden(item: MenuItem) {\n\n if (item) {\n return !this[(`${item.action ? item.action : item.id}Visible` as keyof BimplusUserMenuComponent)];\n }\n\n return false;\n }\n\n //--- add lang code and additional query params to supported urls\n _buildUrl(item: MenuItem | undefined) {\n let itemUrl = item?.url;\n const actualLang = this._languagesList.find(lang=> lang.symbol === this.selectedLanguage);\n const langCode = actualLang?.lCode;\n const supportsLangCode = itemUrl?.endsWith?.('.ct') && langCode;\n if (item?.queryParams || supportsLangCode) {\n itemUrl = itemUrl + '?';\n if (supportsLangCode) {\n itemUrl = itemUrl + 'L=' + langCode;\n if (item?.queryParams) {\n itemUrl = itemUrl + '&';\n }\n }\n if (item?.queryParams) {\n itemUrl = itemUrl + item.queryParams;\n }\n }\n return itemUrl;\n }\n\n _getMenuItems() {\n const menuItemsListFiltered = this.isEmbedded ? this._menuItemsList.slice(0,-3) : this._menuItemsList;\n return menuItemsListFiltered.map( (item) => {\n\n if (this._isHidden(item) || (item.checkState && !this[(item.checkState as keyof BimplusUserMenuComponent)])) {\n return;\n }\n return item;\n });\n }\n\n _getLangId(lang: LangItem | undefined) {\n return \"portalLanguage\" + lang?.symbol.charAt(0).toUpperCase() + lang?.symbol.slice(1);\n }\n}\n","<div\n [attr.key]=\"'bimcompOverlay'\"\n class=\"bimcomp-overlay\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n></div>\n<div\n [attr.key]=\"'userMenu'\"\n class=\"dropdown\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n>\n <div\n class=\"dropdown-toggle\"\n [title]=\"buttonTitle ? buttonTitle : ''\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n >\n <img\n class=\"user-photo\"\n src=\"{{ userPhotoUrl ? userPhotoUrl : '' }}\"\n alt=\"{{ buttonTitle ? buttonTitle : '' }}\"\n />\n <div class=\"user-name\">\n @if (!isTouch) {\n {{ userName }}\n }\n </div>\n <span class=\"caret\"></span>\n </div>\n <ul class=\"bimcomp-dropdown-menu\" [ngClass]=\"_menuOpened ? 'open' : ''\">\n <ng-container *ngFor=\"let item of _getMenuItems(); let i = index\">\n <li\n *ngIf=\"item\"\n [attr.key]=\"item.id\"\n [attr.role]=\"item.type === 'divider' ? 'separator' : ''\"\n [ngClass]=\"{\n divider: item.type === 'divider',\n languageMenuItem: item.action === 'submenu',\n 'submenu-hidden':\n (!item.url || item.url.slice(0, 2) === '#/') &&\n item.action !== 'submenu'\n }\"\n (click)=\"_menuItemClicked(item, i)\"\n (keypress)=\"_menuItemClicked(item, i)\"\n >\n @if (item.action === 'submenu') {\n <div class=\"submenu arrow\"></div>\n <div class=\"icon\" [ngClass]=\"item.class\"></div>\n <span\n class=\"menu-item-text\"\n [ngClass]=\"item.textClass ? item.textClass : ''\"\n >\n {{ item.textId | translate }}\n </span>\n <div\n class=\"languagesSubmenu\"\n [ngClass]=\"_languagesMenuOpened ? 'open' : ''\"\n >\n <div class=\"languageSubmenuItems\">\n <div\n *ngFor=\"let lang of _languagesList\"\n [attr.key]=\"_getLangId(lang)\"\n id=\"{{ _getLangId(lang) }}\"\n class=\"languageSubmenuItem\"\n [ngClass]=\"\n lang.symbol === this.selectedLanguage ? 'selected' : ''\n \"\n (click)=\"_switchLanguage(lang.symbol)\"\n (keypress)=\"_switchLanguage(lang.symbol)\"\n >\n {{ lang.text }}\n </div>\n </div>\n </div>\n } @else if (!item.url || item.url.slice(0,2) === \"#/\") {\n <div class=\"icon\" [ngClass]=\"item.class\"></div>\n <span\n class=\"menu-item-text\"\n [ngClass]=\"item.textClass ? item.textClass : ''\"\n >\n {{ item.textId | translate }}\n </span>\n } @else if (!item.type || item.type !== \"divider\") {\n <a\n href=\"{{ _buildUrl(item) }}\"\n rel=\"noopener\"\n target=\"_blank\"\n class=\"submenu-hidden\"\n >\n <div class=\"icon\" [ngClass]=\"item.class\"></div>\n <span\n class=\"menu-item-text\"\n [ngClass]=\"item.textClass ? item.textClass : ''\"\n >\n {{ item.textId | translate }}\n </span>\n </a>\n }\n </li>\n </ng-container>\n </ul>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute } from '@angular/core';\nimport { fireEvent } from '../../utils/utils';\n\n@Component({\n selector: 'lib-bimplus-zoom',\n imports: [CommonModule],\n templateUrl: './bimplus-zoom.component.html',\n styleUrl: './bimplus-zoom.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\nexport class BimplusZoomComponent{\n /**--------------------------------------------------------------------------\n * List of available zoom\n --------------------------------------------------------------------------*/\n _zoomList = [\n { symbol: \"100\", text: \"100%\"},\n { symbol: \"105\", text: \"105%\"},\n { symbol: \"110\", text: \"110%\"},\n { symbol: \"115\", text: \"115%\"},\n { symbol: \"120\", text: \"120%\"},\n { symbol: \"125\", text: \"125%\"},\n { symbol: \"130\", text: \"130%\"},\n { symbol: \"135\", text: \"135%\"},\n { symbol: \"140\", text: \"140%\"},\n { symbol: \"145\", text: \"145%\"},\n { symbol: \"150\", text: \"150%\"}\n ];\n\n /**--------------------------------------------------------------------------\n * States\n --------------------------------------------------------------------------*/\n _menuOpened = false;\n \n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input() selectedZoom : string = '125';\n\n /**--------------------------------------------------------------------------\n * Zoom selected event\n --------------------------------------------------------------------------*/\n @Output() bimplusZoomSelected = new EventEmitter<string>();\n\n /**--------------------------------------------------------------------------\n * Zoom selection\n --------------------------------------------------------------------------*/\n _switchZoom( zoom: string ){\n fireEvent(this, \"bimplusZoomSelected\", zoom);\n }\n\n /**--------------------------------------------------------------------------\n * toggle menu open\n --------------------------------------------------------------------------*/\n _toggleOpened(){\n this._menuOpened = !this._menuOpened;\n }\n\n /**--------------------------------------------------------------------------\n * setup dynamic classes for zoom item\n --------------------------------------------------------------------------*/\n _getZoomClassObject( symbol: string ){\n return {\n 'selected': this.selectedZoom === symbol,\n ['bimzoom-' + symbol]: true\n };\n }\n}\n","<div\n class=\"bimcomp-overlay\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n></div>\n<div \n class=\"dropdown\"\n [ngClass]=\"{'open': _menuOpened, 'is-touch': isTouch}\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n>\n <div class=\"dropdown-toggle\">\n <div class=\"main-icon icon-zoom\"></div>\n <span class=\"caret\"></span>\n </div>\n <ul\n class=\"bimcomp-dropdown-menu\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n >\n <li\n *ngFor=\"let zoom of _zoomList\"\n class=\"bimcomp-dropdown-menu-item\"\n [ngClass]=\"_getZoomClassObject(zoom.symbol)\"\n (click)=\"_switchZoom(zoom.symbol)\"\n (keypress)=\"_switchZoom(zoom.symbol)\"\n >\n <span>{{zoom.text}}</span>\n </li>\n </ul>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, Input, Output, EventEmitter, booleanAttribute, OnChanges, SimpleChanges } from '@angular/core';\nimport {TranslateService, TranslateModule} from '@ngx-translate/core';\nimport {BimplusLocalizedWidgetComponent} from \"../../components/bimplus-localized-widget/bimplus-localized-widget.component\"\nimport { fireEvent } from '../../utils/utils';\n\n@Component({\n selector: 'lib-bimplus-touch-menu',\n imports: [CommonModule, TranslateModule],\n providers: [TranslateService],\n templateUrl: './bimplus-touch-menu.component.html',\n styleUrl: './bimplus-touch-menu.component.less',\n encapsulation: ViewEncapsulation.ShadowDom\n})\n\nexport class BimplusTouchMenuComponent extends BimplusLocalizedWidgetComponent implements OnChanges{\n constructor(){\n super()\n }\n\n /**--------------------------------------------------------------------------\n * List of menu items\n * Note : action is used to identify action which should be executed\n --------------------------------------------------------------------------*/\n _menuItemsList = [\n { mode:\"touch\", class: \"icon-touch-mode-toolbar\", textId: \"_Touch_Mode\"},\n { mode:\"desktop\", class: \"icon-desktop-mode-toolbar\", textId: \"_Desktop_Mode\"},\n ];\n\n get _selectedItem() {\n return this._menuItemsList.find(item => item.mode == this.selectedMode);\n }\n\n /**--------------------------------------------------------------------------\n * States\n --------------------------------------------------------------------------*/\n _menuOpened = false;\n \n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input({ transform: booleanAttribute }) isTouch : boolean = false;\n\n /**--------------------------------------------------------------------------\n * properties\n --------------------------------------------------------------------------*/\n @Input() selectedMode : string = 'desktop';\n\n /**--------------------------------------------------------------------------\n * Zoom selected event\n --------------------------------------------------------------------------*/\n @Output() bimplusTouchModeSelected = new EventEmitter<string>();\n\n \n ngOnChanges(changes: SimpleChanges): void {\n if (changes['localizedStrings']) {\n this._localizedStrings.set(changes['localizedStrings'].currentValue); \n }\n }\n\n /**--------------------------------------------------------------------------\n * Item clicked\n --------------------------------------------------------------------------*/\n _menuItemClicked( mode: string ){\n fireEvent(this, \"bimplusTouchModeSelected\", mode);\n }\n\n /**--------------------------------------------------------------------------\n * toggle menu open\n --------------------------------------------------------------------------*/\n _toggleOpened(){\n this._menuOpened = !this._menuOpened;\n }\n}\n","<div\n class=\"bimcomp-overlay\"\n [ngClass]=\"_menuOpened ? 'open' : ''\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n >\n</div>\n<div \n class=\"dropdown\"\n [ngClass]=\"{'open': _menuOpened, 'is-touch': isTouch}\"\n (click)=\"_toggleOpened()\"\n (keypress)=\"_toggleOpened()\"\n >\n <div class=\"dropdown-toggle\">\n <div \n class=\"main-icon\"\n [ngClass]=\"this._selectedItem?.class ? this._selectedItem?.class : ''\"\n ></div>\n <span class=\"caret\"></span>\n </div>\n <ul \n class=\"bimcomp-dropdown-menu\"\n [ngClass]=\"{'open':this._menuOpened}\">\n <li\n *ngFor=\"let item of _menuItemsList\"\n class=\"bimcomp-dropdown-menu-item\"\n [ngClass]=\"{'selected':this.selectedMode === item.mode}\"\n (click)=\"_menuItemClicked(item.mode)\"\n (keypress)=\"_menuItemClicked(item.mode)\"\n >\n <div \n class=\"icon\"\n [ngClass]=\"item.class\"\n ></div>\n <span>{{item.textId | translate}}</span>\n </li>\n </ul>\n</div>\n","import { Injectable } from '@angular/core';\nimport { LocalizedStrings } from './../types/types'\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageStringsService {\n\n // #region public fields\n set languageFilesUri(uri : string){\n this._languageFilesUri = uri;\n }\n private readonly defaultLang: string = 'en';\n currentLanguage$ = new BehaviorSubject<string> (this.defaultLang);\n currentLanguageStrings$ = new BehaviorSubject<LocalizedStrings>({});\n\n get currentLanguage() : string {\n return this.currentLanguage$.getValue();\n }\n\n set currentLanguageStrings(langStrings : LocalizedStrings){\n this.currentLanguageStrings$.next(langStrings);\n }\n\n get currentLanguageStrings() : LocalizedStrings {\n return this.currentLanguageStrings$.getValue();\n }\n // #endregion public fields\n\n // #region public methods\n async setCurrentLanguage(lang : string){\n this.currentLanguage$.next(lang);\n await this.fetchLanguageStrings(lang); \n }\n\n extractLocalizedStrings(stringIds : Array<string>) : LocalizedStrings {\n const obj : LocalizedStrings = {};\n for (const [key, value] of Object.entries(this.currentLanguageStrings)) {\n if(typeof value == 'string' && stringIds.find(x=>x === key)){\n obj[key] = value;\n }\n }\n\n return obj;\n }\n\n async fetchLanguageStrings(lang : string){\n const data = await fetch(`${this._languageFilesUri}/strings_${lang}.json`);\n console.log(`Language strings loaded from: ${this._languageFilesUri}/strings_${lang}.json`);\n console.log(data);\n const dataJSON = await data.json();\n // add missing translations from default language translations\n if (lang !== this.defaultLang) {\n const fallbackData = await fetch(`${this._languageFilesUri}/strings_en.json`);\n const fallbackDataJSON = await fallbackData?.json?.();\n const fallbackDataJSONIndexes = fallbackDataJSON && Object.keys(fallbackDataJSON);\n if (fallbackDataJSONIndexes?.length) {\n for (const index in fallbackDataJSONIndexes) {\n const indexName = fallbackDataJSONIndexes[index];\n dataJSON[indexName] ??= fallbackDataJSON[indexName];\n }\n }\n }\n this.currentLanguageStrings$.next(dataJSON); \n }\n // #endregion public methods\n\n // #region private fields \n private _languageFilesUri : string = \"/assets\"\n // #endregion private fields\n}\n","/*\n * Public API Surface of navigation\n */\n\nexport * from './lib/navigation.service';\nexport * from './lib/navigation.component';\nexport * from './lib/components/bimplus-contact/bimplus-contact.component';\nexport * from './lib/components/bimplus-language-menu/bimplus-language-menu.component';\nexport * from './lib/components/bimplus-localized-widget/bimplus-localized-widget.component';\nexport * from './lib/components/bimplus-main-menu/bimplus-main-menu.component';\nexport * from './lib/components/bimplus-navbar/bimplus-navbar.component';\nexport * from './lib/components/bimplus-navbar/logo-state.enum';\nexport * from './lib/components/bimplus-notify/bimplus-notify.component';\nexport * from './lib/components/bimplus-storage-info/bimplus-storage-info.component';\nexport * from './lib/components/bimplus-upgrade-link/bimplus-upgrade-link.component';\nexport * from './lib/components/bimplus-user-menu/bimplus-user-menu.component';\nexport * from './lib/components/bimplus-zoom/bimplus-zoom.component';\nexport * from './lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component';\nexport * from './lib/components/bimplus-touch-menu/bimplus-touch-menu.component';\nexport * from './lib/components/bimplus-project-menu/bimplus-project-menu.component';\nexport * from './lib/services/language-strings.service';\nexport * from './lib/types/types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bimplus/navigation",
3
- "version": "0.0.206",
3
+ "version": "0.0.207",
4
4
  "license": "MIT",
5
5
  "author": "",
6
6
  "description": "bimplus angular components library for navigation",