@bimplus/navigation
Version:
bimplus angular components library for navigation
286 lines (278 loc) • 504 kB
JavaScript
import * as i0 from '@angular/core';
import { Injectable, Component, inject, signal, Input, ViewEncapsulation, EventEmitter, Output, booleanAttribute, input, computed, ElementRef, HostBinding } from '@angular/core';
import * as i1 from '@angular/common';
import { CommonModule } from '@angular/common';
import * as i2 from '@ngx-translate/core';
import { TranslateService, TranslateModule } from '@ngx-translate/core';
import SimpleBar from 'simplebar';
import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';
class NavigationService {
constructor() { }
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: NavigationService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: NavigationService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [] });
class NavigationComponent {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: NavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.5", type: NavigationComponent, isStandalone: true, selector: "lib-navigation", ngImport: i0, template: `
<p>
navigation works!
</p>
`, isInline: true, styles: [""] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: NavigationComponent, decorators: [{
type: Component,
args: [{ selector: 'lib-navigation', imports: [], template: `
<p>
navigation works!
</p>
` }]
}] });
class BimplusLocalizedWidgetComponent {
constructor() {
this.translateService = inject(TranslateService);
this._selectedLanguage = signal('en');
this._localizedStrings = signal({});
}
get selectedLanguage() {
return this._selectedLanguage();
}
set selectedLanguage(value) {
this._selectedLanguage.set(value);
this.translateService.use(value);
try {
this.translateService.setTranslation(this.selectedLanguage, this._localizedStrings());
}
catch (error) {
console.error(error);
}
}
get localizedStrings() {
return this._localizedStrings();
}
set localizedStrings(value) {
this._localizedStrings.set(value);
this.translateService.use(this.selectedLanguage);
try {
this.translateService.setTranslation(this.selectedLanguage, value);
}
catch (error) {
console.error(error);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: BimplusLocalizedWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.5", type: BimplusLocalizedWidgetComponent, isStandalone: true, selector: "lib-bimplus-localized-widget", inputs: { selectedLanguage: "selectedLanguage", localizedStrings: "localizedStrings" }, providers: [TranslateService], ngImport: i0, template: `
<p>
localized widget works!
</p>
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: BimplusLocalizedWidgetComponent, decorators: [{
type: Component,
args: [{ selector: 'lib-bimplus-localized-widget', imports: [CommonModule, TranslateModule], providers: [TranslateService], template: `
<p>
localized widget works!
</p>
`, encapsulation: ViewEncapsulation.ShadowDom }]
}], propDecorators: { selectedLanguage: [{
type: Input
}], localizedStrings: [{
type: Input
}] } });
/**--------------------------------------------------------------------------
* fire event from component in two ways :
- fire custom event from component in standard recommended way via. this.eventName.emit function
- call window.BimPlus.eventName function directly on window object (eventName is name
of the event we want to fire e.g. bimplusNavbarClicked so it will be window.BimPlus.bimplusNavbarClicked).
Function must be defined in app. where we are using our components.
This was implemented because MS Edge browser has problems with custom events and in some
situations(e.g. after file download) it stops handling custom events.
Disadvantage is that we can have only one event handler which is shared between the multiple components.
--------------------------------------------------------------------------*/
function fireEvent(source, eventName, data = null) {
if (!eventName) {
console.error("ERROR: Missing event name in fireEvent function in Bimplus components!");
return;
}
// Check if eventName exists on window.BimPlus and if it's a function
const bimPlus = ('BimPlus' in window) && typeof window.BimPlus === 'object' && window.BimPlus;
if (bimPlus && typeof bimPlus[eventName] === 'function') {
bimPlus[eventName]({ detail: data });
}
const _source = source;
if (eventName in _source) {
_source[eventName].emit(data);
}
}
class BimplusContactComponent extends BimplusLocalizedWidgetComponent {
constructor() {
super();
this.bimplusContactClicked = new EventEmitter();
}
_contactClicked() {
fireEvent(this, "bimplusContactClicked", "contact");
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: BimplusContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.5", type: BimplusContactComponent, isStandalone: true, selector: "lib-bimplus-contact", outputs: { bimplusContactClicked: "bimplusContactClicked" }, providers: [TranslateService], usesInheritance: true, ngImport: i0, template: "<a href=\"https://www.allplan.com/info/contact\" \r\n class=\"bimplus-contact-link\"\r\n rel=\"noopener\"\r\n target=\"_blank\"\r\n (click)=\"_contactClicked()\"\r\n [title]=\"'_BimplusContactTitle' | translate\"\r\n>\r\n <div class=\"bimplus-contact\"></div>\r\n</a>", styles: [".bimplus-contact{height:1.375em;width:4em;background:url('data:image/svg+xml,<svg id=\"Project_Gray\" data-name=\"Project Gray\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><defs><style>.cls-1{fill:%23444;}<\\/style></defs><title>contact us</title><g id=\"Page-1\"><g id=\"Social_icons\" data-name=\"Social icons\"><g id=\"Phone\"><path id=\"Shape\" class=\"cls-1\" d=\"M6.48,3.08a.34.34,0,0,1,.35.16c.18.29.36.58.54.88s.38.7.58,1c.05.09.12.18.18.27l.16.26a.43.43,0,0,1-.06.54c-.22.22-.46.43-.69.64s-.39.35-.58.53a.39.39,0,0,0-.09.5c.15.28.3.57.47.85a8.1,8.1,0,0,0,2.42,2.58c.39.26.79.5,1.2.73s.53.18.83-.15l.82-.92a2,2,0,0,1,.22-.2.43.43,0,0,1,.51-.06l.15.08c.48.34,1,.58,1.52.87l.8.48a.37.37,0,0,1,.19.38,2.54,2.54,0,0,1-.38,1.34,1.86,1.86,0,0,1-.45.43,4.24,4.24,0,0,1-1.53.64,2.84,2.84,0,0,1-1.47-.08,12.36,12.36,0,0,1-2.67-1.1,11.71,11.71,0,0,1-2.09-1.59A12.6,12.6,0,0,1,5.3,9.63a10.5,10.5,0,0,1-.9-2A6.49,6.49,0,0,1,4,6.42,3,3,0,0,1,4.17,5a4.16,4.16,0,0,1,.59-1.18,1.49,1.49,0,0,1,.81-.57l.82-.19A.11.11,0,0,0,6.48,3.08Z\"/></g></g></g><path class=\"cls-1\" d=\"M9,0a9,9,0,1,0,6.13,15.59L15,15.48a4,4,0,0,1-1.17.46,2.6,2.6,0,0,1-1.35-.07l-.29-.09A7.5,7.5,0,1,1,16.5,9s0,1,.76,1S18,9,18,9A9,9,0,0,0,9,0Z\"/></svg>') no-repeat;background-size:1.375em;background-repeat:no-repeat;background-position:center;cursor:pointer}.bimplus-contact a{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: BimplusContactComponent, decorators: [{
type: Component,
args: [{ selector: 'lib-bimplus-contact', imports: [CommonModule, TranslateModule], providers: [TranslateService], encapsulation: ViewEncapsulation.ShadowDom, template: "<a href=\"https://www.allplan.com/info/contact\" \r\n class=\"bimplus-contact-link\"\r\n rel=\"noopener\"\r\n target=\"_blank\"\r\n (click)=\"_contactClicked()\"\r\n [title]=\"'_BimplusContactTitle' | translate\"\r\n>\r\n <div class=\"bimplus-contact\"></div>\r\n</a>", styles: [".bimplus-contact{height:1.375em;width:4em;background:url('data:image/svg+xml,<svg id=\"Project_Gray\" data-name=\"Project Gray\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><defs><style>.cls-1{fill:%23444;}<\\/style></defs><title>contact us</title><g id=\"Page-1\"><g id=\"Social_icons\" data-name=\"Social icons\"><g id=\"Phone\"><path id=\"Shape\" class=\"cls-1\" d=\"M6.48,3.08a.34.34,0,0,1,.35.16c.18.29.36.58.54.88s.38.7.58,1c.05.09.12.18.18.27l.16.26a.43.43,0,0,1-.06.54c-.22.22-.46.43-.69.64s-.39.35-.58.53a.39.39,0,0,0-.09.5c.15.28.3.57.47.85a8.1,8.1,0,0,0,2.42,2.58c.39.26.79.5,1.2.73s.53.18.83-.15l.82-.92a2,2,0,0,1,.22-.2.43.43,0,0,1,.51-.06l.15.08c.48.34,1,.58,1.52.87l.8.48a.37.37,0,0,1,.19.38,2.54,2.54,0,0,1-.38,1.34,1.86,1.86,0,0,1-.45.43,4.24,4.24,0,0,1-1.53.64,2.84,2.84,0,0,1-1.47-.08,12.36,12.36,0,0,1-2.67-1.1,11.71,11.71,0,0,1-2.09-1.59A12.6,12.6,0,0,1,5.3,9.63a10.5,10.5,0,0,1-.9-2A6.49,6.49,0,0,1,4,6.42,3,3,0,0,1,4.17,5a4.16,4.16,0,0,1,.59-1.18,1.49,1.49,0,0,1,.81-.57l.82-.19A.11.11,0,0,0,6.48,3.08Z\"/></g></g></g><path class=\"cls-1\" d=\"M9,0a9,9,0,1,0,6.13,15.59L15,15.48a4,4,0,0,1-1.17.46,2.6,2.6,0,0,1-1.35-.07l-.29-.09A7.5,7.5,0,1,1,16.5,9s0,1,.76,1S18,9,18,9A9,9,0,0,0,9,0Z\"/></svg>') no-repeat;background-size:1.375em;background-repeat:no-repeat;background-position:center;cursor:pointer}.bimplus-contact a{width:100%;height:100%}\n"] }]
}], ctorParameters: () => [], propDecorators: { bimplusContactClicked: [{
type: Output
}] } });
class BimplusLanguageMenuComponent {
constructor() {
this._languagesList = [
{ symbol: "cs", text: "Čeština" },
{ symbol: "de", text: "Deutsch" },
{ symbol: "en", text: "English (UK)" },
{ symbol: "us", text: "English (US)" },
{ symbol: "es", text: "Español" },
{ symbol: "fr", text: "Français" },
{ symbol: "it", text: "Italiano" },
{ symbol: "ru", text: "Русский" },
{ symbol: "ro", text: "Romana" },
{ symbol: "tr", text: "Türkçe" }
];
this.isTouch = false;
this.selectedLanguage = "en";
this.expandUp = false;
this._menuOpened = false;
this.bimplusLanguageSelected = new EventEmitter();
}
_switchLanguage(language) {
fireEvent(this, "bimplusLanguageSelected", language);
}
_toggleOpened() {
this._menuOpened = !this._menuOpened;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: BimplusLanguageMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.0.5", type: BimplusLanguageMenuComponent, isStandalone: true, selector: "lib-bimplus-language-menu", inputs: { isTouch: ["isTouch", "isTouch", booleanAttribute], selectedLanguage: "selectedLanguage", expandUp: ["expandUp", "expandUp", booleanAttribute] }, outputs: { bimplusLanguageSelected: "bimplusLanguageSelected" }, ngImport: i0, template: "<div \r\n class=\"bimcomp-overlay\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\" \r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n</div>\r\n<div data-test=\"language-menu-dropdown\"\r\n class=\"dropdown\" \r\n [ngClass]=\"_menuOpened ? 'open' : ''\" [ngClass]=\"isTouch ? 'is-touch' : ''\" \r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n <div class=\"dropdown-toggle\" >\r\n <div class='main-icon icon-languages'></div>\r\n <span class=\"caret\"></span>\r\n </div>\r\n\r\n <ul class= \"bimcomp-dropdown-menu\" [ngClass]=\"{'open':_menuOpened, 'expand-up':expandUp }\">\r\n <li [attr.data-test]=\"'langmenu_item_' + languageItem.text\" \r\n class=\"bimcomp-dropdown-menu-item\" \r\n [ngClass]=\"selectedLanguage === languageItem.symbol ? 'selected' : ''\" \r\n (click)=\"_switchLanguage(languageItem.symbol)\"\r\n (keypress)=\"_switchLanguage(languageItem.symbol)\"\r\n *ngFor=\"let languageItem of _languagesList\"\r\n >\r\n <span>{{languageItem.text}}</span>\r\n </li>\r\n </ul>\r\n</div>", styles: [".dropdown{position:relative;width:4.2em;height:3.25em;cursor:pointer;display:flex;flex-direction:column;justify-content:space-around;align-items:center}.dropdown.open{color:var(--language-menu-dropdown-open-text-color-enabled);background-color:var(--language-menu-dropdown-open-background-color-enabled)}.dropdown-toggle{position:relative;margin-left:.44em;margin-right:.44em;background-size:1.4em 1.4em;padding-bottom:.22em;padding-left:.2em}.dropdown-toggle .caret{display:inline-block;width:0;height:0;margin-top:.19em;margin-left:.5em;vertical-align:middle;color:var(--language-menu-dropdown-toggle-caret-text-color-enabled);border-top:.25em dashed;border-top:.25em solid;border-right:.25em solid transparent;border-left:.25em solid transparent}.is-touch .dropdown-toggle{padding-left:0}.is-touch .dropdown-toggle .caret{display:none}.bimcomp-dropdown-menu{font-family:Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;position:absolute;top:100%;right:0;z-index:1;display:none;min-width:11.43em;padding:.5em 0 .57em;margin:0;font-size:.875em;list-style:none;background-color:var(--language-menu-dropdown-menu-background-color-enabled);border:thin solid var(--language-menu-dropdown-menu-border-color-enabled);border-radius:0 0 .29em .29em;-webkit-box-shadow:0 .43em .86em var(--language-menu-dropdown-menu-box-shadow-color-enabled);box-shadow:0 .43em .86em var(--language-menu-dropdown-menu-box-shadow-color-enabled);text-decoration-color:var(--language-menu-dropdown-menu-text-decoration-color-enabled);text-decoration-line:none;text-decoration-style:solid;line-height:2.4em;font-weight:400}.bimcomp-dropdown-menu div{font-size:1em}.bimcomp-dropdown-menu .noselect{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none}.bimcomp-dropdown-menu li{display:flex;flex-direction:row;align-items:center;cursor:pointer;box-sizing:content-box;padding:0 2.1em}.bimcomp-dropdown-menu li span{display:inline-block;flex:1 0 auto;margin-right:1.43em;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none}.bimcomp-dropdown-menu li.selected,.bimcomp-dropdown-menu li.selected:hover{background-color:var(--dropdown-menu-item-background-color-selected)}.bimcomp-dropdown-menu li:hover{background-color:var(--language-menu-dropdown-menu-item-background-color-hovered)}.bimcomp-dropdown-menu ul,.bimcomp-dropdown-menu li{list-style:none}.bimcomp-dropdown-menu.expand-up{top:-24rem;right:-13.5rem}.bimcomp-dropdown-menu.open{display:inline-block}.icon{flex-shrink:0;display:inline-block;vertical-align:middle;margin:0 1.36em 0 0;width:1.64em;height:1.64em;background-size:contain;background-position:center;background-repeat:no-repeat}.main-icon{flex-shrink:0;display:inline-block;vertical-align:middle;width:1.375em;height:1.375em;background-size:contain;background-position:center;background-repeat:no-repeat}.bimcomp-overlay{position:fixed;width:100vw;height:100vh;left:0;top:0;display:none}.bimcomp-overlay.open{display:block;z-index:1}.icon-languages{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 1L5 3H0V4.49999L2 4.5C2.43947 6.27912 3.24436 7.55186 4.50213 8.88094C3.3069 9.5683 0 11 0 11L1 12C1 12 3.5 11 5.44323 9.75533C6.5 10.5 8 11.5 8 11.5L9 10.5C9 10.5 7.5572 9.75533 6.53981 8.88087C7.75282 7.52893 8.5814 6.27217 9 4.5H11V3H6.5C6.43255 2.80538 5.5 1 5.5 1H4ZM5.4856 8.0701C4.40554 6.99056 3.83462 6.00259 3.5 4.5H7.5C7.24387 5.99973 6.55146 7.01658 5.4856 8.0701Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25214 16.9813L9.99998 16.9813L11 14.5H15L16.007 16.9813H17.7222L13.7225 7.02972L12.2521 7.03339L8.25214 16.9813ZM14.5 13H11.5L13.0012 8.54775L14.5 13Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A%0D%0A') no-repeat center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: BimplusLanguageMenuComponent, decorators: [{
type: Component,
args: [{ selector: 'lib-bimplus-language-menu', imports: [CommonModule], encapsulation: ViewEncapsulation.ShadowDom, template: "<div \r\n class=\"bimcomp-overlay\"\r\n [ngClass]=\"_menuOpened ? 'open' : ''\" \r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n</div>\r\n<div data-test=\"language-menu-dropdown\"\r\n class=\"dropdown\" \r\n [ngClass]=\"_menuOpened ? 'open' : ''\" [ngClass]=\"isTouch ? 'is-touch' : ''\" \r\n (click)=\"_toggleOpened()\"\r\n (keypress)=\"_toggleOpened()\"\r\n >\r\n <div class=\"dropdown-toggle\" >\r\n <div class='main-icon icon-languages'></div>\r\n <span class=\"caret\"></span>\r\n </div>\r\n\r\n <ul class= \"bimcomp-dropdown-menu\" [ngClass]=\"{'open':_menuOpened, 'expand-up':expandUp }\">\r\n <li [attr.data-test]=\"'langmenu_item_' + languageItem.text\" \r\n class=\"bimcomp-dropdown-menu-item\" \r\n [ngClass]=\"selectedLanguage === languageItem.symbol ? 'selected' : ''\" \r\n (click)=\"_switchLanguage(languageItem.symbol)\"\r\n (keypress)=\"_switchLanguage(languageItem.symbol)\"\r\n *ngFor=\"let languageItem of _languagesList\"\r\n >\r\n <span>{{languageItem.text}}</span>\r\n </li>\r\n </ul>\r\n</div>", styles: [".dropdown{position:relative;width:4.2em;height:3.25em;cursor:pointer;display:flex;flex-direction:column;justify-content:space-around;align-items:center}.dropdown.open{color:var(--language-menu-dropdown-open-text-color-enabled);background-color:var(--language-menu-dropdown-open-background-color-enabled)}.dropdown-toggle{position:relative;margin-left:.44em;margin-right:.44em;background-size:1.4em 1.4em;padding-bottom:.22em;padding-left:.2em}.dropdown-toggle .caret{display:inline-block;width:0;height:0;margin-top:.19em;margin-left:.5em;vertical-align:middle;color:var(--language-menu-dropdown-toggle-caret-text-color-enabled);border-top:.25em dashed;border-top:.25em solid;border-right:.25em solid transparent;border-left:.25em solid transparent}.is-touch .dropdown-toggle{padding-left:0}.is-touch .dropdown-toggle .caret{display:none}.bimcomp-dropdown-menu{font-family:Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;position:absolute;top:100%;right:0;z-index:1;display:none;min-width:11.43em;padding:.5em 0 .57em;margin:0;font-size:.875em;list-style:none;background-color:var(--language-menu-dropdown-menu-background-color-enabled);border:thin solid var(--language-menu-dropdown-menu-border-color-enabled);border-radius:0 0 .29em .29em;-webkit-box-shadow:0 .43em .86em var(--language-menu-dropdown-menu-box-shadow-color-enabled);box-shadow:0 .43em .86em var(--language-menu-dropdown-menu-box-shadow-color-enabled);text-decoration-color:var(--language-menu-dropdown-menu-text-decoration-color-enabled);text-decoration-line:none;text-decoration-style:solid;line-height:2.4em;font-weight:400}.bimcomp-dropdown-menu div{font-size:1em}.bimcomp-dropdown-menu .noselect{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none}.bimcomp-dropdown-menu li{display:flex;flex-direction:row;align-items:center;cursor:pointer;box-sizing:content-box;padding:0 2.1em}.bimcomp-dropdown-menu li span{display:inline-block;flex:1 0 auto;margin-right:1.43em;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none}.bimcomp-dropdown-menu li.selected,.bimcomp-dropdown-menu li.selected:hover{background-color:var(--dropdown-menu-item-background-color-selected)}.bimcomp-dropdown-menu li:hover{background-color:var(--language-menu-dropdown-menu-item-background-color-hovered)}.bimcomp-dropdown-menu ul,.bimcomp-dropdown-menu li{list-style:none}.bimcomp-dropdown-menu.expand-up{top:-24rem;right:-13.5rem}.bimcomp-dropdown-menu.open{display:inline-block}.icon{flex-shrink:0;display:inline-block;vertical-align:middle;margin:0 1.36em 0 0;width:1.64em;height:1.64em;background-size:contain;background-position:center;background-repeat:no-repeat}.main-icon{flex-shrink:0;display:inline-block;vertical-align:middle;width:1.375em;height:1.375em;background-size:contain;background-position:center;background-repeat:no-repeat}.bimcomp-overlay{position:fixed;width:100vw;height:100vh;left:0;top:0;display:none}.bimcomp-overlay.open{display:block;z-index:1}.icon-languages{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 1L5 3H0V4.49999L2 4.5C2.43947 6.27912 3.24436 7.55186 4.50213 8.88094C3.3069 9.5683 0 11 0 11L1 12C1 12 3.5 11 5.44323 9.75533C6.5 10.5 8 11.5 8 11.5L9 10.5C9 10.5 7.5572 9.75533 6.53981 8.88087C7.75282 7.52893 8.5814 6.27217 9 4.5H11V3H6.5C6.43255 2.80538 5.5 1 5.5 1H4ZM5.4856 8.0701C4.40554 6.99056 3.83462 6.00259 3.5 4.5H7.5C7.24387 5.99973 6.55146 7.01658 5.4856 8.0701Z\" fill=\"%23444444\"/>%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.25214 16.9813L9.99998 16.9813L11 14.5H15L16.007 16.9813H17.7222L13.7225 7.02972L12.2521 7.03339L8.25214 16.9813ZM14.5 13H11.5L13.0012 8.54775L14.5 13Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A%0D%0A') no-repeat center}\n"] }]
}], propDecorators: { isTouch: [{
type: Input,
args: [{ transform: booleanAttribute }]
}], selectedLanguage: [{
type: Input
}], expandUp: [{
type: Input,
args: [{ transform: booleanAttribute }]
}], bimplusLanguageSelected: [{
type: Output
}] } });
class BimplusProjectMenuComponent extends BimplusLocalizedWidgetComponent {
constructor() {
super();
this.projectName = "";
this.projectImageUrl = "";
this.projectExplorerUrl = "";
this.projectActiveItem = "";
this.projectmembersDisabled = false;
this.modelsDisabled = false;
this.documentsDisabled = false;
this.projectsettingsDisabled = false;
this.processesDisabled = false;
this.projectmembersVisible = true;
this.modelsVisible = true;
this.documentsVisible = true;
this.projectsettingsVisible = true;
this.processesVisible = true;
this.isCollapsed = false;
this.isMiniMode = false;
this.isTouch = false;
this.hideMenuIcons = false;
this.showHorizontalMenuIcons = false;
this.menuItemsOrder = [];
/**--------------------------------------------------------------------------
* List of menu items
* Note : action is used to identify action which should be executed
* and also it serves as info topic id
--------------------------------------------------------------------------*/
this._menuPrjList = [
{ action: "projectmembers", id: "portalBimUsers", type: "", class: "bim-pm-icon-users", textId: "_Project_members_tooltip", textIdDisabled: "_Insufficient rights title", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: "" },
{ action: "models", id: "portalBimModels", type: "", class: "bim-pm-icon-models", textId: "_Models_tooltip", textIdDisabled: "", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: "" },
{ action: "documents", id: "portalBimDocuments", type: "", class: "bim-pm-icon-documents", textId: "_Documents_tooltip", textIdDisabled: "", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: "" },
{ action: "projectsettings", id: "portalBimProjectSettings", type: "", class: "bim-pm-icon-project-settings", textId: "_Project_settings_tooltip", textIdDisabled: "", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: "" },
{ action: "processes", id: "portalBimProcesses", type: "", class: "bim-pm-icon-processes", textId: "_Approvals", textIdDisabled: "", disabledTitle: '', checkSubscription: false, devOrStageOnly: false, clickPolicy: "" }
];
}
get prjImgUrl() {
return this.projectImageUrl ? this.projectImageUrl : "./assets/@bimplus/navigation/assets/bimplus_Components_Project_Pic_Default.webp";
}
get backgroundValue() {
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'})`;
}
get prjImageOverlayStyle() {
return { 'background': `${this.backgroundValue}` };
}
get prjImageStyle() {
return { 'background': `url(${this.prjImgUrl})` };
}
get menuItems() {
return this._menuPrjList.sort((a, b) => this.menuItemsOrder.indexOf(a.id) - this.menuItemsOrder.indexOf(b.id));
}
/**--------------------------------------------------------------------------
* check if app is subscribed/visible
--------------------------------------------------------------------------*/
_isHidden(item) {
if (item) {
const key = `${item.action ? item.action : item.id}Visible`;
return !(this[key]);
}
return false;
}
/**--------------------------------------------------------------------------
* check if app is subscribed/visible
--------------------------------------------------------------------------*/
_isDisabled(item) {
if (item) {
const key = `${item.action ? item.action : item.id}Disabled`;
return !!this[key];
}
return false;
}
_projectMenuItemClicked(action, param) {
console.log(action, param);
}
/**--------------------------------------------------------------------------
* item clicked
--------------------------------------------------------------------------*/
_menuItemClicked(item, type, event) {
if (event) {
event.stopPropagation();
event.preventDefault();
}
console.log(item, type, event);
if (type != "info") {
if (this._isDisabled(item)) {
return;
}
}
const action = item.action;
fireEvent(this, "bimplusProjectMenuClicked", { action, type });
}
_menuItemIgnoreAction(event) {
if (event) {
event.stopPropagation();
event.preventDefault();
}
}
_getPrjItemClassAttributes(item, isTouch) {
const retval = `${this._isDisabled(item) ? 'disabled' : ''} ${isTouch ? '' : 'hover-show-info'}`;
return retval;
}
_getPrjIconClassAttributes(item) {
const retval = `${item.class} ${item.action === this.projectActiveItem ? 'active' : ''} ${this._isDisabled(item) ? 'disabled' : ''}`;
return retval;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: BimplusProjectMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.5", type: BimplusProjectMenuComponent, isStandalone: true, selector: "lib-bimplus-project-menu", inputs: { projectName: "projectName", projectImageUrl: "projectImageUrl", projectExplorerUrl: "projectExplorerUrl", projectActiveItem: "projectActiveItem", projectmembersDisabled: ["projectmembersDisabled", "projectmembersDisabled", booleanAttribute], modelsDisabled: ["modelsDisabled", "modelsDisabled", booleanAttribute], documentsDisabled: ["documentsDisabled", "documentsDisabled", booleanAttribute], projectsettingsDisabled: ["projectsettingsDisabled", "projectsettingsDisabled", booleanAttribute], processesDisabled: ["processesDisabled", "processesDisabled", booleanAttribute], projectmembersVisible: ["projectmembersVisible", "projectmembersVisible", booleanAttribute], modelsVisible: ["modelsVisible", "modelsVisible", booleanAttribute], documentsVisible: ["documentsVisible", "documentsVisible", booleanAttribute], projectsettingsVisible: ["projectsettingsVisible", "projectsettingsVisible", booleanAttribute], processesVisible: ["processesVisible", "processesVisible", booleanAttribute], isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], isMiniMode: ["isMiniMode", "isMiniMode", booleanAttribute], isTouch: ["isTouch", "isTouch", booleanAttribute], hideMenuIcons: ["hideMenuIcons", "hideMenuIcons", booleanAttribute], showHorizontalMenuIcons: ["showHorizontalMenuIcons", "showHorizontalMenuIcons", booleanAttribute], menuItemsOrder: "menuItemsOrder" }, providers: [TranslateService], usesInheritance: true, ngImport: i0, template: "<ng-template #navigationPrjList>\r\n@for(item of menuItems; track item.id){\r\n @if (!_isHidden(item)){\r\n <!--* prjList *-->\r\n <div class=\"bim-pm-prj-item\"\r\n [ngClass] = \"_getPrjItemClassAttributes(item,isTouch)\"\r\n [title]=\"((_isDisabled(item) && item.textIdDisabled) ? item.textIdDisabled : item.textId) | translate\"\r\n (dblclick)=\"_menuItemIgnoreAction($event)\"\r\n (click)=\"_menuItemClicked(item, 'normal',$event)\"\r\n (keypress)=\"_menuItemClicked(item, 'normal',$event)\"\r\n >\r\n <div\r\n class=\"bim-pm-prj-icon\"\r\n [ngClass] = \"_getPrjIconClassAttributes(item)\"\r\n >\r\n </div>\r\n <div class=\"bim-pm-app-item-info bim-pm-icon bim-pm-icon-info\"\r\n (click)=\"_menuItemClicked(item, 'info',$event)\"\r\n (keypress)=\"_menuItemClicked(item, 'info',$event)\"\r\n >\r\n </div>\r\n </div>\r\n }\r\n}\r\n</ng-template>\r\n\r\n<ng-template #navigationPrjListThumbnail>\r\n@for(item of menuItems; track item.id){\r\n @if (!_isHidden(item) && (isCollapsed || item.action !== 'processes' )){\r\n <!--* navigationPrjList *-->\r\n <div class=\"bim-pm-prj-item\"\r\n [ngClass] = \"_getPrjItemClassAttributes(item,isTouch)\"\r\n [title]=\"((_isDisabled(item) && item.textIdDisabled) ? item.textIdDisabled : item.textId) | translate\"\r\n (dblclick)=\"_menuItemIgnoreAction($event)\"\r\n (click)=\"_menuItemClicked(item, 'normal',$event)\"\r\n (keypress)=\"_menuItemClicked(item, 'normal',$event)\"\r\n >\r\n <div\r\n class=\"bim-pm-prj-icon\"\r\n [ngClass] = \"_getPrjIconClassAttributes(item)\"\r\n >\r\n </div>\r\n <div class=\"bim-pm-app-item-info bim-pm-icon bim-pm-icon-info\"\r\n (click)=\"_menuItemClicked(item, 'info',$event)\"\r\n (keypress)=\"_menuItemClicked(item, 'info',$event)\"\r\n >\r\n </div>\r\n </div>\r\n }\r\n}\r\n</ng-template>\r\n\r\n<div class=\"bim-pm-prj-container\"\r\n [ngClass]=\"{ collapsed: isCollapsed, 'mini-mode': isMiniMode, 'is-touch': isTouch }\"\r\n >\r\n @if (isMiniMode && !isCollapsed) {\r\n <div class=\"bim-pm-prj-details-mini\">\r\n <div class=\"bim-pm-prj-image-bkg-mini\"\r\n [ngStyle]=\"prjImageOverlayStyle\">\r\n <div class=\"bim-pm-prj-image-thumbnail\" [ngStyle]=\"prjImageStyle\"></div>\r\n </div>\r\n <div class=\"bim-pm-prj-name-mini\">\r\n {{projectName}}\r\n </div>\r\n </div>\r\n <div class=\"bim-pm-prj-items-horizontal\"\r\n [ngClass]=\"showHorizontalMenuIcons ? '' : 'hidden'\">\r\n <div class=\"bim-pm-prj-items-list\">\r\n @if (showHorizontalMenuIcons) {\r\n <ng-container *ngTemplateOutlet=\"navigationPrjList\">\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @else {\r\n <a href={{projectExplorerUrl}} class=\"bim-pm-prj-details\"\r\n [ngStyle]=\"prjImageOverlayStyle\"\r\n (dblclick)=\"_projectMenuItemClicked('prjimagedblclick','normal')\"\r\n (click)=\"_projectMenuItemClicked('prjimageclick','normal')\"\r\n [title]=\"'_ModelThumbnailTooltip' | translate\">\r\n\r\n <div class=\"bim-pm-prj-image\" [ngStyle]=\"prjImageStyle\">\r\n <div class=\"bim-pm-prj-items-overlay\" [ngClass] = \"hideMenuIcons || showHorizontalMenuIcons ? 'hidden' : ''\">\r\n </div>\r\n <div\r\n class=\"bim-pm-prj-items-list\"\r\n [ngClass] = \"hideMenuIcons || showHorizontalMenuIcons ? 'hidden' : ''\"\r\n >\r\n @if (!hideMenuIcons && !showHorizontalMenuIcons){\r\n <ng-container *ngTemplateOutlet=\"navigationPrjListThumbnail\">\r\n </ng-container>\r\n }\r\n </div>\r\n <div class=\"bim-pm-prj-name\">\r\n {{projectName}}\r\n </div>\r\n </div>\r\n </a>\r\n <div class=\"bim-pm-prj-items-horizontal\"\r\n [ngClass] = \"showHorizontalMenuIcons ? '' : 'hidden'\">\r\n <div class=\"bim-pm-prj-items-list\">\r\n @if (showHorizontalMenuIcons) {\r\n <ng-container *ngTemplateOutlet=\"navigationPrjList\">\r\n </ng-container>\r\n }\r\n </div>\r\n </div>\r\n}\r\n", styles: [".bim-pm-prj-container{display:flex;flex-direction:column;justify-content:flex-start;background-color:var(--project-menu-project-container-background-color-enabled)}.bim-pm-prj-container:not(.collapsed).mini-mode{border-bottom:thin solid var(--project-menu-project-container-mini-mode-border-color-enabled)}.bim-pm-prj-container:not(.collapsed).mini-mode .bim-pm-prj-items-horizontal{padding-left:.5em;padding-bottom:.5em}.bim-pm-prj-container:not(.collapsed).mini-mode .bim-pm-prj-items-list{height:2.3em}.bim-pm-icon{flex-shrink:0;display:inline-block;vertical-align:middle;width:1.13em;height:1.13em;background-size:1.13em 1.13em}div:not(.collapsed) .bim-pm-prj-details{height:10em}div:not(.collapsed) .bim-pm-prj-details .bim-pm-prj-image{height:10em}.bim-pm-prj-details{color:inherit;background-size:100% auto!important;background-color:var(--project-menu-project-details-background-color-enabled);background-repeat:no-repeat!important;overflow:hidden}.bim-pm-prj-details .bim-pm-prj-image{background-size:auto 10em!important;background-position:center center!important;background-repeat:no-repeat!important;background-origin:padding-box!important;display:flex;flex-direction:column;position:relative;cursor:pointer}.bim-pm-prj-details .bim-pm-prj-items-list{width:4.6875em;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;flex:1 0 auto;position:absolute}.bim-pm-prj-details .bim-pm-prj-items-list .bim-pm-prj-item{padding-top:.88em;width:100%;display:flex;justify-content:space-around;cursor:pointer}.bim-pm-prj-details .bim-pm-prj-items-list .bim-pm-prj-item.disabled{cursor:default}.bim-pm-prj-details .bim-pm-prj-items-list .bim-pm-prj-item:first-child{padding-top:.43em}.bim-pm-prj-details .bim-pm-prj-items-list .bim-pm-prj-icon{flex-shrink:0;display:inline-block;vertical-align:middle;width:1.13em;height:1.13em;background-size:1.13em 1.13em;margin-left:.875em;margin-right:auto}.bim-pm-prj-details .bim-pm-prj-items-list .bim-pm-app-item-info{display:none}.bim-pm-prj-details .bim-pm-prj-items-list .hover-show-info:hover .bim-pm-app-item-info{display:block}.bim-pm-prj-details .bim-pm-prj-name{color:var(--project-menu-project-name-text-color);background-color:var(--project-menu-project-name-background-color);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:1em;font-weight:400;padding-left:.875em;padding-top:.375em;padding-right:1rem;height:1.625em;box-sizing:content-box;position:absolute;bottom:0;left:0;right:0}.bim-pm-prj-details .bim-pm-prj-items-overlay{position:absolute;background-color:var(--project-menu-item-overlay-background-color-enabled);width:2.8125em;height:calc(100% - 2em)}.bim-pm-prj-details .bim-pm-prj-items-overlay.hidden{display:none}.bim-pm-prj-items-horizontal{border-bottom:1px solid var(--project-menu-project-items-horizontal-border-color-enabled)}.bim-pm-prj-items-horizontal.hidden{display:none}.bim-pm-prj-items-horizontal .bim-pm-prj-items-list{width:auto;height:3.44em;position:relative;display:inline-flex;flex-direction:row;justify-content:center;align-items:center}.bim-pm-prj-items-horizontal .bim-pm-prj-items-list .bim-pm-prj-icon{flex-shrink:0;display:inline-block;vertical-align:middle;width:1.13em;height:1.13em;background-size:1.13em 1.13em;margin:auto}.bim-pm-prj-items-horizontal .bim-pm-prj-items-list .bim-pm-prj-item{margin-left:.875em;margin-right:auto;cursor:pointer}.bim-pm-prj-items-horizontal .bim-pm-prj-items-list .bim-pm-prj-item~.bim-pm-prj-item{margin-left:1.13em}.bim-pm-prj-items-horizontal .bim-pm-prj-items-list .bim-pm-prj-item.disabled{cursor:default}.bim-pm-prj-items-horizontal .bim-pm-prj-items-list .bim-pm-app-item-info{display:none}.bim-pm-prj-container.collapsed .bim-pm-prj-details,.bim-pm-prj-container.collapsed .bim-pm-prj-image{background:none transparent!important;min-height:7.589em}.bim-pm-prj-container.collapsed .bim-pm-prj-items-list{position:static}.bim-pm-prj-container.collapsed .bim-pm-prj-items-overlay,.bim-pm-prj-container.collapsed .bim-pm-prj-name,.bim-pm-prj-container.collapsed .bim-pm-app-item-details span{display:none}.bim-pm-prj-details-mini{display:grid;grid-template-columns:2.25em auto;grid-template-rows:min-content;row-gap:.4em;grid-gap:.8em;margin:.5em .9em}.bim-pm-prj-details-mini .bim-pm-prj-image-bkg-mini{grid-column:1;grid-row:1;width:2.25em;height:2.25em;background-size:auto 2.25em!important;background-position:center center!important;background-repeat:no-repeat!important;background-origin:padding-box!important;border-radius:.3em}.bim-pm-prj-details-mini .bim-pm-prj-image-bkg-mini .bim-pm-prj-image-thumbnail{width:2.25em;height:2.25em;background-size:auto 2.25em!important;border-radius:.3em}.bim-pm-prj-details-mini .bim-pm-prj-name-mini{font-weight:700;grid-column:2;grid-row:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;align-self:center}.bim-pm-prj-items-list.hidden{display:none}.bim-pm-icon-users{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M10.385 15.872C10.481 15.776 10.567 15.672 10.643 15.557C10.908 15.157 10.978 14.743 10.995 14.417C11.0025 13.509 11.0025 12.601 10.995 11.693C10.9868 11.3109 10.8888 10.9362 10.709 10.599C10.5233 10.2677 10.2734 9.9767 9.974 9.743C10.394 9.543 10.897 9.325 11.5 9.082C11.69 8.946 11.69 8.914 11.69 8.556C11.69 7.978 11.5 7.853 11.5 7.853C10.7 6.964 10.514 6.566 10.323 5.19C10.13 3.813 10.925 2 13 2C15.074 2 15.868 3.813 15.677 5.19C15.485 6.566 15.3 6.964 14.499 7.853C14.499 7.853 14.31 7.978 14.31 8.556C14.31 8.914 14.31 8.946 14.5 9.082C17.304 10.214 17.963 10.782 17.996 11.728C17.998 11.772 18 12.216 18 12.728C18 13.449 18 14.307 17.996 14.366C17.95 15.273 17.363 16 13 16C11.91 16 11.054 15.955 10.385 15.872Z\" fill=\"%2384888C\"/>%0D%0A<path d=\"M2.323 5.19C2.132 3.813 2.925 2 5 2C7.075 2 7.868 3.813 7.677 5.19C7.485 6.566 7.3 6.964 6.5 7.853C6.5 7.853 6.31 7.978 6.31 8.556C6.31 8.914 6.31 8.946 6.5 9.082C9.304 10.214 9.963 10.782 9.997 11.728C9.998 11.772 10 12.216 10 12.728C10 13.449 10 14.307 9.997 14.366C9.95 15.273 9.364 16 5 16C0.636 16 0.05 15.273 0.003 14.366C0 14.306 0 13.42 0 12.691C0 12.195 0.002 11.771 0.003 11.728C0.037 10.782 0.696 10.214 3.5 9.082C3.69 8.946 3.69 8.914 3.69 8.556C3.69 7.978 3.5 7.853 3.5 7.853C2.7 6.964 2.515 6.566 2.323 5.19Z\" fill=\"%2346494D\"/>%0D%0A</svg>%0D%0A') no-repeat center}.bim-pm-icon-users.active{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M10.385 15.872C10.481 15.776 10.567 15.672 10.643 15.557C10.908 15.157 10.978 14.743 10.995 14.417C11.0025 13.509 11.0025 12.601 10.995 11.693C10.9868 11.3109 10.8888 10.9362 10.709 10.599C10.5233 10.2677 10.2734 9.9767 9.974 9.743C10.394 9.543 10.897 9.325 11.5 9.082C11.69 8.946 11.69 8.914 11.69 8.556C11.69 7.978 11.5 7.853 11.5 7.853C10.7 6.964 10.514 6.566 10.323 5.19C10.13 3.813 10.925 2 13 2C15.074 2 15.868 3.813 15.677 5.19C15.485 6.566 15.3 6.964 14.499 7.853C14.499 7.853 14.31 7.978 14.31 8.556C14.31 8.914 14.31 8.946 14.5 9.082C17.304 10.214 17.963 10.782 17.996 11.728C17.998 11.772 18 12.216 18 12.728C18 13.449 18 14.307 17.996 14.366C17.95 15.273 17.363 16 13 16C11.91 16 11.054 15.955 10.385 15.872Z\" fill=\"%234DC0F6\"/>%0D%0A<path d=\"M2.323 5.19C2.132 3.813 2.925 2 5 2C7.075 2 7.868 3.813 7.677 5.19C7.485 6.566 7.3 6.964 6.5 7.853C6.5 7.853 6.31 7.978 6.31 8.556C6.31 8.914 6.31 8.946 6.5 9.082C9.304 10.214 9.963 10.782 9.997 11.728C9.998 11.772 10 12.216 10 12.728C10 13.449 10 14.307 9.997 14.366C9.95 15.273 9.364 16 5 16C0.636 16 0.05 15.273 0.003 14.366C0 14.306 0 13.42 0 12.691C0 12.195 0.002 11.771 0.003 11.728C0.037 10.782 0.696 10.214 3.5 9.082C3.69 8.946 3.69 8.914 3.69 8.556C3.69 7.978 3.5 7.853 3.5 7.853C2.7 6.964 2.515 6.566 2.323 5.19Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A') no-repeat center}.bim-pm-icon-users.disabled{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M10.385 15.872C10.481 15.776 10.567 15.672 10.643 15.557C10.908 15.157 10.978 14.743 10.995 14.417C11.0025 13.509 11.0025 12.601 10.995 11.693C10.9868 11.3109 10.8888 10.9362 10.709 10.599C10.5233 10.2677 10.2734 9.9767 9.974 9.743C10.394 9.543 10.897 9.325 11.5 9.082C11.69 8.946 11.69 8.914 11.69 8.556C11.69 7.978 11.5 7.853 11.5 7.853C10.7 6.964 10.514 6.566 10.323 5.19C10.13 3.813 10.925 2 13 2C15.074 2 15.868 3.813 15.677 5.19C15.485 6.566 15.3 6.964 14.499 7.853C14.499 7.853 14.31 7.978 14.31 8.556C14.31 8.914 14.31 8.946 14.5 9.082C17.304 10.214 17.963 10.782 17.996 11.728C17.998 11.772 18 12.216 18 12.728C18 13.449 18 14.307 17.996 14.366C17.95 15.273 17.363 16 13 16C11.91 16 11.054 15.955 10.385 15.872Z\" fill=\"%23D3D7DB\"/>%0D%0A<path d=\"M2.323 5.19C2.132 3.813 2.925 2 5 2C7.075 2 7.868 3.813 7.677 5.19C7.485 6.566 7.3 6.964 6.5 7.853C6.5 7.853 6.31 7.978 6.31 8.556C6.31 8.914 6.31 8.946 6.5 9.082C9.304 10.214 9.963 10.782 9.997 11.728C9.998 11.772 10 12.216 10 12.728C10 13.449 10 14.307 9.997 14.366C9.95 15.273 9.364 16 5 16C0.636 16 0.05 15.273 0.003 14.366C0 14.306 0 13.42 0 12.691C0 12.195 0.002 11.771 0.003 11.728C0.037 10.782 0.696 10.214 3.5 9.082C3.69 8.946 3.69 8.914 3.69 8.556C3.69 7.978 3.5 7.853 3.5 7.853C2.7 6.964 2.515 6.566 2.323 5.19Z\" fill=\"%23B8BBBF\"/>%0D%0A</svg>%0D%0A') no-repeat center}.bim-pm-icon-models{background:url('data:image/svg+xml,<svg width=\"16\" height=\"18\" viewBox=\"0 0 16 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<g clip-path=\"url(%23clip0_38_5717)\">%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8 18L16 13.2V4.89999L8 0L0 4.89999V13.2L8 18ZM14 7.3L9 10V14.9L14 12.1V7.3ZM2 12.1L7 14.9V10L2 7.3V12.1ZM2.82141 5.3847L8 2.39999L13.1786 5.3847L8 8.29999L2.82141 5.3847Z\" fill=\"%2346494D\"/>%0D%0A</g>%0D%0A<defs>%0D%0A<clipPath id=\"clip0_38_5717\">%0D%0A<rect width=\"16\" height=\"18\" fill=\"white\"/>%0D%0A</clipPath>%0D%0A</defs>%0D%0A</svg>%0D%0A') no-repeat center}.bim-pm-icon-models.active{background:url('data:image/svg+xml,<svg width=\"16\" height=\"18\" viewBox=\"0 0 16 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<g clip-path=\"url(%23clip0_757_167)\">%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8 18L16 13.2V4.89999L8 0L0 4.89999V13.2L8 18ZM14 7.3L9 10V14.9L14 12.1V7.3ZM2 12.1L7 14.9V10L2 7.3V12.1ZM2.82141 5.3847L8 2.39999L13.1786 5.3847L8 8.29999L2.82141 5.3847Z\" fill=\"%230066CC\"/>%0D%0A</g>%0D%0A<defs>%0D%0A<clipPath id=\"clip0_757_167\">%0D%0A<rect width=\"16\" height=\"18\" fill=\"white\"/>%0D%0A</clipPath>%0D%0A</defs>%0D%0A</svg>%0D%0A') no-repeat center}.bim-pm-icon-models.disabled{background:url('data:image/svg+xml,<svg width=\"16\" height=\"18\" viewBox=\"0 0 16 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<g clip-path=\"url(%23clip0_38_5715)\">%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8 18L16 13.2V4.89999L8 0L0 4.89999V13.2L8 18ZM14 7.3L9 10V14.9L14 12.1V7.3ZM2 12.1L7 14.9V10L2 7.3V12.1ZM2.82141 5.3847L8 2.39999L13.1786 5.3847L8 8.29999L2.82141 5.3847Z\" fill=\"%23D3D7DB\"/>%0D%0A</g>%0D%0A<defs>%0D%0A<clipPath id=\"clip0_38_5715\">%0D%0A<rect width=\"16\" height=\"18\" fill=\"white\"/>%0D%0A</clipPath>%0D%0A</defs>%0D%0A</svg>%0D%0A') no-repeat center}.bim-pm-icon-documents{background:url('data:image/svg+xml,<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M6 9H10V7H6V9Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M6 4V6H14V4H6Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M6 12H10V10H6V12Z\" fill=\"%2346494D\"/>%0D%0A<path d=\"M17 1H3V19H13L17 15V1ZM13 15V17H5V3H15V15H13Z\" fill=\"%2346494D\"/>%0D%0A</svg>%0D%0A') no-repeat center}.bim-pm-icon-documents.active{background:url('data:image/svg+xml,<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M6 9H10V7H6V9ZM6 4V6H14V4H6ZM6 12H10V10H6V12Z\" fill=\"%230066CC\"/>%0D%0A<path d=\"M17 1H3V19H13L17 15V1ZM13 15V17H5V3H15V15H13Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A') no-repeat center}.bim-pm-icon-documents.disabled{background:url('data:image/svg+xml,<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path d=\"M6 9H10V7H6V9Z\" fill=\"%23D3D7DB\"/>%0D%0A<path d=\"M6 4V6H14V4H6Z\" fill=\"%23D3D7DB\"/>%0D%0A<path d=\"M6 12H10V10H6V12Z\" fill=\"%23D3D7DB\"/>%0D%0A<path d=\"M17 1H3V19H13L17 15V1ZM13 15V17H5V3H15V15H13Z\" fill=\"%23D3D7DB\"/>%0D%0A</svg>%0D%0A') no-repeat center}.bim-pm-icon-processes{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 1C10.8231 1 12.5038 1.60982 13.8491 2.63662L12.3474 4.0198C11.3912 3.37585 10.2395 3 9 3C5.68629 3 3 5.68629 3 9C3 12.3137 5.68629 15 9 15C12.3137 15 15 12.3137 15 9C15 8.798 14.99 8.59832 14.9705 8.40145L16.6969 6.81133C16.8943 7.50694 17 8.24113 17 9C17 13.4183 13.4183 17 9 17C4.58172 17 1 13.4183 1 9C1 4.58172 4.58172 1 9 1ZM16.7862 5.11382C17.2909 4.64277 17.3182 3.85179 16.8472 3.3471C16.3761 2.84241 15.5851 2.81514 15.0804 3.28618L9.07623 8.89014L7.18623 7.12614C6.68154 6.6551 5.89056 6.68237 5.41952 7.18706C4.94847 7.69175 4.97575 8.48273 5.48043 8.95378L8.22333 11.5138C8.70359 11.9621 9.44887 11.9621 9.92913 11.5138L16.7862 5.11382Z\" fill=\"%23444444\"/>%0D%0A</svg>%0D%0A') no-repeat center}.bim-pm-icon-processes.active{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 1C10.8231 1 12.5038 1.60982 13.8491 2.63662L12.3474 4.0198C11.3912 3.37585 10.2395 3 9 3C5.68629 3 3 5.68629 3 9C3 12.3137 5.68629 15 9 15C12.3137 15 15 12.3137 15 9C15 8.798 14.99 8.59832 14.9705 8.40145L16.6969 6.81133C16.8943 7.50694 17 8.24113 17 9C17 13.4183 13.4183 17 9 17C4.58172 17 1 13.4183 1 9C1 4.58172 4.58172 1 9 1ZM16.7862 5.11382C17.2909 4.64277 17.3182 3.85179 16.8472 3.3471C16.3761 2.84241 15.5851 2.81514 15.0804 3.28618L9.07623 8.89014L7.18623 7.12614C6.68154 6.6551 5.89056 6.68237 5.41952 7.18706C4.94847 7.69175 4.97575 8.48273 5.48043 8.95378L8.22333 11.5138C8.70359 11.9621 9.44887 11.9621 9.92913 11.5138L16.7862 5.11382Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A') no-repeat center}.bim-pm-icon-processes.disabled{background:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 1C10.8231 1 12.5038 1.60982 13.8491 2.63662L12.3474 4.0198C11.3912 3.37585 10.2395 3 9 3C5.68629 3 3 5.68629 3 9C3 12.3137 5.68629 15 9 15C12.3137 15 15 12.3137 15 9C15 8.798 14.99 8.59832 14.9705 8.40145L16.6969 6.81133C16.8943 7.50694 17 8.24113 17 9C17 13.4183 13.4183 17 9 17C4.58172 17 1 13.4183 1 9C1 4.58172 4.58172 1 9 1ZM16.7862 5.11382C17.2909 4.64277 17.3182 3.85179 16.8472 3.3471C16.3761 2.84241 15.5851 2.81514 15.0804 3.28618L9.07623 8.89014L7.18623 7.12614C