@skysoftware-co/bayan-core-widgets-ui 0.0.1 → 0.0.2

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.
@@ -1,3 +1,4 @@
1
+ import * as i1$2 from '@angular/common';
1
2
  import { CommonModule, DOCUMENT } from '@angular/common';
2
3
  import * as i0 from '@angular/core';
3
4
  import { EventEmitter, Output, Input, ChangeDetectionStrategy, Component, signal, ViewChild, inject, HostListener, Injectable, computed } from '@angular/core';
@@ -202,6 +203,7 @@ class BayanCoreGlobalSearchWidgetComponent {
202
203
  router = inject(Router);
203
204
  searchAutoComplete;
204
205
  baseUrl = '';
206
+ ActivePropertyChanged = false;
205
207
  placeholder = 'TopMenu.SearchPlaceholder';
206
208
  dataSource = [];
207
209
  search = new EventEmitter();
@@ -214,6 +216,13 @@ class BayanCoreGlobalSearchWidgetComponent {
214
216
  swapIcon = faRightLeft;
215
217
  medalIcon = faMedal;
216
218
  graduateIcon = faGraduationCap;
219
+ ngOnChanges(changes) {
220
+ if (changes['ActivePropertyChanged']
221
+ && !changes['ActivePropertyChanged'].firstChange
222
+ && changes['ActivePropertyChanged'].previousValue !== changes['ActivePropertyChanged'].currentValue) {
223
+ this.reset();
224
+ }
225
+ }
217
226
  onInput(event) {
218
227
  const searchTerm = event.event?.target?.value;
219
228
  if (typeof searchTerm === 'string' && searchTerm.startsWith(' ')) {
@@ -262,7 +271,7 @@ class BayanCoreGlobalSearchWidgetComponent {
262
271
  void this.router.navigateByUrl(resolvedUrl);
263
272
  }
264
273
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BayanCoreGlobalSearchWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
265
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BayanCoreGlobalSearchWidgetComponent, isStandalone: true, selector: "bayan-core-global-search-widget", inputs: { baseUrl: "baseUrl", placeholder: "placeholder", dataSource: "dataSource" }, outputs: { search: "search", itemNavigate: "itemNavigate" }, viewQueries: [{ propertyName: "searchAutoComplete", first: true, predicate: ["searchAutoComplete"], descendants: true }], ngImport: i0, template: "<div class=\"top-menu-widget__search\">\r\n <dx-autocomplete\r\n #searchAutoComplete\r\n [placeholder]=\"placeholder | translate\"\r\n [dataSource]=\"dataSource\"\r\n valueExpr=\"menuSubTitle\"\r\n [searchExpr]=\"['menuSubTitle']\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"false\"\r\n searchMode=\"contains\"\r\n [width]=\"'100%'\"\r\n stylingMode=\"filled\"\r\n [wrapItemText]=\"true\"\r\n [searchTimeout]=\"100\"\r\n (onInput)=\"onInput($event)\"\r\n (onEnterKey)=\"onEnterKey($event)\">\r\n <div class=\"w-100\" *dxTemplate=\"let item of 'item'\">\r\n @if (hasNavigationUrl(item.menuUrl)) {\r\n <a\r\n class=\"top-menu-widget__search-item\"\r\n (click)=\"onItemSelected($event, item)\">\r\n <div class=\"top-menu-widget__search-item-title\">\r\n @if (item.iconClass === 'icon icon-tools') {\r\n <fa-icon [icon]=\"toolsIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-grid') {\r\n <fa-icon [icon]=\"gridIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-credit') {\r\n <fa-icon [icon]=\"creditIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-users') {\r\n <fa-icon [icon]=\"usersIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-clock') {\r\n <fa-icon [icon]=\"clockIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-swap') {\r\n <fa-icon [icon]=\"swapIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-medal') {\r\n <fa-icon [icon]=\"medalIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-graduation-cap') {\r\n <fa-icon [icon]=\"graduateIcon\"></fa-icon>\r\n }\r\n\r\n @if (item.isTranslatable) {\r\n {{ item.menuTitle | translate }}\r\n } @else {\r\n {{ item.menuTitle }}\r\n }\r\n </div>\r\n\r\n <div class=\"top-menu-widget__search-item-subtitle\">\r\n @if (item.isTranslatable) {\r\n {{ item.menuSubTitle | translate }}\r\n } @else {\r\n {{ item.menuSubTitle }}\r\n }\r\n </div>\r\n </a>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n class=\"top-menu-widget__search-item\"\r\n (click)=\"onItemSelected($event, item)\">\r\n <div class=\"top-menu-widget__search-item-title\">\r\n @if (item.iconClass === 'icon icon-tools') {\r\n <fa-icon [icon]=\"toolsIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-grid') {\r\n <fa-icon [icon]=\"gridIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-credit') {\r\n <fa-icon [icon]=\"creditIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-users') {\r\n <fa-icon [icon]=\"usersIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-clock') {\r\n <fa-icon [icon]=\"clockIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-swap') {\r\n <fa-icon [icon]=\"swapIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-medal') {\r\n <fa-icon [icon]=\"medalIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-graduation-cap') {\r\n <fa-icon [icon]=\"graduateIcon\"></fa-icon>\r\n }\r\n\r\n @if (item.isTranslatable) {\r\n {{ item.menuTitle | translate }}\r\n } @else {\r\n {{ item.menuTitle }}\r\n }\r\n </div>\r\n\r\n <div class=\"top-menu-widget__search-item-subtitle\">\r\n @if (item.isTranslatable) {\r\n {{ item.menuSubTitle | translate }}\r\n } @else {\r\n {{ item.menuSubTitle }}\r\n }\r\n </div>\r\n </button>\r\n }\r\n </div>\r\n </dx-autocomplete>\r\n</div>\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DxAutocompleteModule }, { kind: "component", type: i1$1.DxAutocompleteComponent, selector: "dx-autocomplete", inputs: ["accessKey", "activeStateEnabled", "buttons", "dataSource", "deferRendering", "disabled", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "items", "itemTemplate", "label", "labelMode", "maxItemCount", "maxLength", "minSearchLength", "name", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDropDownButton", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxItemCountChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDropDownButtonChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "directive", type: i2.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
274
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BayanCoreGlobalSearchWidgetComponent, isStandalone: true, selector: "bayan-core-global-search-widget", inputs: { baseUrl: "baseUrl", ActivePropertyChanged: "ActivePropertyChanged", placeholder: "placeholder", dataSource: "dataSource" }, outputs: { search: "search", itemNavigate: "itemNavigate" }, viewQueries: [{ propertyName: "searchAutoComplete", first: true, predicate: ["searchAutoComplete"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"top-menu-widget__search\">\r\n <dx-autocomplete\r\n #searchAutoComplete\r\n [placeholder]=\"placeholder | translate\"\r\n [dataSource]=\"dataSource\"\r\n valueExpr=\"menuSubTitle\"\r\n [searchExpr]=\"['menuSubTitle']\"\r\n [showClearButton]=\"false\"\r\n [showDropDownButton]=\"false\"\r\n searchMode=\"contains\"\r\n [width]=\"'100%'\"\r\n stylingMode=\"filled\"\r\n [wrapItemText]=\"true\"\r\n [searchTimeout]=\"100\"\r\n (onInput)=\"onInput($event)\"\r\n (onEnterKey)=\"onEnterKey($event)\">\r\n <div class=\"w-100\" *dxTemplate=\"let item of 'item'\">\r\n @if (hasNavigationUrl(item.menuUrl)) {\r\n <a\r\n class=\"top-menu-widget__search-item\"\r\n (click)=\"onItemSelected($event, item)\">\r\n <div class=\"top-menu-widget__search-item-title\">\r\n @if (item.iconClass === 'icon icon-tools') {\r\n <fa-icon [icon]=\"toolsIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-grid') {\r\n <fa-icon [icon]=\"gridIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-credit') {\r\n <fa-icon [icon]=\"creditIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-users') {\r\n <fa-icon [icon]=\"usersIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-clock') {\r\n <fa-icon [icon]=\"clockIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-swap') {\r\n <fa-icon [icon]=\"swapIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-medal') {\r\n <fa-icon [icon]=\"medalIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-graduation-cap') {\r\n <fa-icon [icon]=\"graduateIcon\"></fa-icon>\r\n }\r\n\r\n @if (item.isTranslatable) {\r\n {{ item.menuTitle | translate }}\r\n } @else {\r\n {{ item.menuTitle }}\r\n }\r\n </div>\r\n\r\n <div class=\"top-menu-widget__search-item-subtitle\">\r\n @if (item.isTranslatable) {\r\n {{ item.menuSubTitle | translate }}\r\n } @else {\r\n {{ item.menuSubTitle }}\r\n }\r\n </div>\r\n </a>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n class=\"top-menu-widget__search-item\"\r\n (click)=\"onItemSelected($event, item)\">\r\n <div class=\"top-menu-widget__search-item-title\">\r\n @if (item.iconClass === 'icon icon-tools') {\r\n <fa-icon [icon]=\"toolsIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-grid') {\r\n <fa-icon [icon]=\"gridIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-credit') {\r\n <fa-icon [icon]=\"creditIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-users') {\r\n <fa-icon [icon]=\"usersIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-clock') {\r\n <fa-icon [icon]=\"clockIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-swap') {\r\n <fa-icon [icon]=\"swapIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-medal') {\r\n <fa-icon [icon]=\"medalIcon\"></fa-icon>\r\n }\r\n @if (item.iconClass === 'icon icon-graduation-cap') {\r\n <fa-icon [icon]=\"graduateIcon\"></fa-icon>\r\n }\r\n\r\n @if (item.isTranslatable) {\r\n {{ item.menuTitle | translate }}\r\n } @else {\r\n {{ item.menuTitle }}\r\n }\r\n </div>\r\n\r\n <div class=\"top-menu-widget__search-item-subtitle\">\r\n @if (item.isTranslatable) {\r\n {{ item.menuSubTitle | translate }}\r\n } @else {\r\n {{ item.menuSubTitle }}\r\n }\r\n </div>\r\n </button>\r\n }\r\n </div>\r\n </dx-autocomplete>\r\n</div>\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DxAutocompleteModule }, { kind: "component", type: i1$1.DxAutocompleteComponent, selector: "dx-autocomplete", inputs: ["accessKey", "activeStateEnabled", "buttons", "dataSource", "deferRendering", "disabled", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "items", "itemTemplate", "label", "labelMode", "maxItemCount", "maxLength", "minSearchLength", "name", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDropDownButton", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxItemCountChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDropDownButtonChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "directive", type: i2.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
266
275
  }
267
276
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BayanCoreGlobalSearchWidgetComponent, decorators: [{
268
277
  type: Component,
@@ -272,6 +281,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
272
281
  args: ['searchAutoComplete']
273
282
  }], baseUrl: [{
274
283
  type: Input
284
+ }], ActivePropertyChanged: [{
285
+ type: Input
275
286
  }], placeholder: [{
276
287
  type: Input
277
288
  }], dataSource: [{
@@ -287,12 +298,20 @@ class BayanCoreItemWidgetComponent {
287
298
  document = inject(DOCUMENT);
288
299
  router = inject(Router);
289
300
  baseUrl = '';
301
+ ActivePropertyChanged = false;
290
302
  item;
291
303
  itemClick = new EventEmitter();
292
304
  open = signal(false);
293
305
  constructor(elementRef) {
294
306
  this.elementRef = elementRef;
295
307
  }
308
+ ngOnChanges(changes) {
309
+ if (changes['ActivePropertyChanged']
310
+ && !changes['ActivePropertyChanged'].firstChange
311
+ && changes['ActivePropertyChanged'].previousValue !== changes['ActivePropertyChanged'].currentValue) {
312
+ this.open.set(false);
313
+ }
314
+ }
296
315
  onDocumentClick(event) {
297
316
  const target = event.target;
298
317
  if (target && !this.elementRef.nativeElement.contains(target)) {
@@ -334,13 +353,15 @@ class BayanCoreItemWidgetComponent {
334
353
  void this.router.navigateByUrl(resolvedUrl);
335
354
  }
336
355
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BayanCoreItemWidgetComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
337
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BayanCoreItemWidgetComponent, isStandalone: true, selector: "bayan-core-item-widget", inputs: { baseUrl: "baseUrl", item: "item" }, outputs: { itemClick: "itemClick" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "@if (!hasChildren()) {\r\n <li class=\"nav-item\">\r\n @if (hasNavigationUrl(item.menuUrl)) {\r\n <a\r\n class=\"nav-link\"\r\n (click)=\"onItemActivated($event)\">\r\n {{ item.menuName | translate }}\r\n </a>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n class=\"nav-link\"\r\n (click)=\"onItemActivated($event)\">\r\n {{ item.menuName | translate }}\r\n </button>\r\n }\r\n </li>\r\n}\r\n\r\n@if (hasChildren()) {\r\n <li class=\"nav-item dropdown\" [class.open]=\"open()\">\r\n <button type=\"button\" class=\"nav-link dropdown-toggle\" (click)=\"onItemActivated($event)\">\r\n {{ item.menuName | translate }} <span class=\"caret\"></span>\r\n </button>\r\n\r\n @if (open()) {\r\n <ul class=\"dropdown-menu menu-dropdown-panel\">\r\n @for (child of item.children; track child.id ?? child.menuName) {\r\n <bayan-core-item-widget\r\n [baseUrl]=\"baseUrl\"\r\n [item]=\"child\"\r\n (itemClick)=\"onChildItemClick($event)\">\r\n </bayan-core-item-widget>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n}\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"], dependencies: [{ kind: "component", type: BayanCoreItemWidgetComponent, selector: "bayan-core-item-widget", inputs: ["baseUrl", "item"], outputs: ["itemClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
356
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BayanCoreItemWidgetComponent, isStandalone: true, selector: "bayan-core-item-widget", inputs: { baseUrl: "baseUrl", ActivePropertyChanged: "ActivePropertyChanged", item: "item" }, outputs: { itemClick: "itemClick" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "@if (!hasChildren()) {\r\n <li class=\"nav-item\">\r\n @if (hasNavigationUrl(item.menuUrl)) {\r\n <a\r\n class=\"nav-link\"\r\n (click)=\"onItemActivated($event)\">\r\n {{ item.menuName | translate }}\r\n </a>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n class=\"nav-link\"\r\n (click)=\"onItemActivated($event)\">\r\n {{ item.menuName | translate }}\r\n </button>\r\n }\r\n </li>\r\n}\r\n\r\n@if (hasChildren()) {\r\n <li class=\"nav-item dropdown\" [class.open]=\"open()\">\r\n <button type=\"button\" class=\"nav-link dropdown-toggle\" (click)=\"onItemActivated($event)\">\r\n {{ item.menuName | translate }} <span class=\"caret\"></span>\r\n </button>\r\n\r\n @if (open()) {\r\n <ul class=\"dropdown-menu menu-dropdown-panel\">\r\n @for (child of item.children; track child.id ?? child.menuName) {\r\n <bayan-core-item-widget\r\n [baseUrl]=\"baseUrl\"\r\n [ActivePropertyChanged]=\"ActivePropertyChanged\"\r\n [item]=\"child\"\r\n (itemClick)=\"onChildItemClick($event)\">\r\n </bayan-core-item-widget>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n}\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"], dependencies: [{ kind: "component", type: BayanCoreItemWidgetComponent, selector: "bayan-core-item-widget", inputs: ["baseUrl", "ActivePropertyChanged", "item"], outputs: ["itemClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
338
357
  }
339
358
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BayanCoreItemWidgetComponent, decorators: [{
340
359
  type: Component,
341
- args: [{ selector: 'bayan-core-item-widget', standalone: true, imports: [CommonModule, TranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!hasChildren()) {\r\n <li class=\"nav-item\">\r\n @if (hasNavigationUrl(item.menuUrl)) {\r\n <a\r\n class=\"nav-link\"\r\n (click)=\"onItemActivated($event)\">\r\n {{ item.menuName | translate }}\r\n </a>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n class=\"nav-link\"\r\n (click)=\"onItemActivated($event)\">\r\n {{ item.menuName | translate }}\r\n </button>\r\n }\r\n </li>\r\n}\r\n\r\n@if (hasChildren()) {\r\n <li class=\"nav-item dropdown\" [class.open]=\"open()\">\r\n <button type=\"button\" class=\"nav-link dropdown-toggle\" (click)=\"onItemActivated($event)\">\r\n {{ item.menuName | translate }} <span class=\"caret\"></span>\r\n </button>\r\n\r\n @if (open()) {\r\n <ul class=\"dropdown-menu menu-dropdown-panel\">\r\n @for (child of item.children; track child.id ?? child.menuName) {\r\n <bayan-core-item-widget\r\n [baseUrl]=\"baseUrl\"\r\n [item]=\"child\"\r\n (itemClick)=\"onChildItemClick($event)\">\r\n </bayan-core-item-widget>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n}\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"] }]
360
+ args: [{ selector: 'bayan-core-item-widget', standalone: true, imports: [CommonModule, TranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!hasChildren()) {\r\n <li class=\"nav-item\">\r\n @if (hasNavigationUrl(item.menuUrl)) {\r\n <a\r\n class=\"nav-link\"\r\n (click)=\"onItemActivated($event)\">\r\n {{ item.menuName | translate }}\r\n </a>\r\n } @else {\r\n <button\r\n type=\"button\"\r\n class=\"nav-link\"\r\n (click)=\"onItemActivated($event)\">\r\n {{ item.menuName | translate }}\r\n </button>\r\n }\r\n </li>\r\n}\r\n\r\n@if (hasChildren()) {\r\n <li class=\"nav-item dropdown\" [class.open]=\"open()\">\r\n <button type=\"button\" class=\"nav-link dropdown-toggle\" (click)=\"onItemActivated($event)\">\r\n {{ item.menuName | translate }} <span class=\"caret\"></span>\r\n </button>\r\n\r\n @if (open()) {\r\n <ul class=\"dropdown-menu menu-dropdown-panel\">\r\n @for (child of item.children; track child.id ?? child.menuName) {\r\n <bayan-core-item-widget\r\n [baseUrl]=\"baseUrl\"\r\n [ActivePropertyChanged]=\"ActivePropertyChanged\"\r\n [item]=\"child\"\r\n (itemClick)=\"onChildItemClick($event)\">\r\n </bayan-core-item-widget>\r\n }\r\n </ul>\r\n }\r\n </li>\r\n}\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"] }]
342
361
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { baseUrl: [{
343
362
  type: Input
363
+ }], ActivePropertyChanged: [{
364
+ type: Input
344
365
  }], item: [{
345
366
  type: Input,
346
367
  args: [{ required: true }]
@@ -362,7 +383,7 @@ class BayanCoreTopMenuService {
362
383
  }), catchError((error) => throwError(() => error)));
363
384
  }
364
385
  getBaseUrl(baseUrl) {
365
- return `${baseUrl.replace(/\/$/, '')}/api/app-frame`;
386
+ return `${baseUrl.replace(/\/$/, '')}/${baseUrl.replace('/api', '')}/api/app-frame`;
366
387
  }
367
388
  getMicroserviceMenusByProperty(baseUrl, propertyId, systemModule) {
368
389
  const params = new HttpParams()
@@ -509,6 +530,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
509
530
 
510
531
  class BayanCoreSettingsWidgetComponent {
511
532
  elementRef;
533
+ ActivePropertyChanged = false;
512
534
  useAlternateNames = false;
513
535
  displayAlternateNames = false;
514
536
  hrBlocked = false;
@@ -532,6 +554,13 @@ class BayanCoreSettingsWidgetComponent {
532
554
  constructor(elementRef) {
533
555
  this.elementRef = elementRef;
534
556
  }
557
+ ngOnChanges(changes) {
558
+ if (changes['ActivePropertyChanged']
559
+ && !changes['ActivePropertyChanged'].firstChange
560
+ && changes['ActivePropertyChanged'].previousValue !== changes['ActivePropertyChanged'].currentValue) {
561
+ this.dropdownOpen.set(false);
562
+ }
563
+ }
535
564
  onDocumentClick(event) {
536
565
  const target = event.target;
537
566
  if (target && !this.elementRef.nativeElement.contains(target)) {
@@ -563,12 +592,14 @@ class BayanCoreSettingsWidgetComponent {
563
592
  emitter.emit();
564
593
  }
565
594
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BayanCoreSettingsWidgetComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
566
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BayanCoreSettingsWidgetComponent, isStandalone: true, selector: "bayan-core-settings-widget", inputs: { useAlternateNames: "useAlternateNames", displayAlternateNames: "displayAlternateNames", hrBlocked: "hrBlocked", hrCanBlock: "hrCanBlock", tkBlocked: "tkBlocked", tkCanBlock: "tkCanBlock", nameModeItems: "nameModeItems", settingsEnabled: "settingsEnabled" }, outputs: { alternateNamesChange: "alternateNamesChange", nameModeChange: "nameModeChange", blockHrClick: "blockHrClick", releaseHrClick: "releaseHrClick", blockTkClick: "blockTkClick", releaseTkClick: "releaseTkClick", changePasswordClick: "changePasswordClick", openAboutClick: "openAboutClick" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"dropdown menu-dropdown-host\" [class.open]=\"dropdownOpen()\">\r\n <button type=\"button\" class=\"settings-toggle menu-icon-btn\" (click)=\"toggleDropdown($event)\" [title]=\"'Settings' | translate\">\r\n <fa-icon [icon]=\"cogIcon\" class=\"fs-6\"></fa-icon>\r\n </button>\r\n\r\n @if (dropdownOpen()) {\r\n <ul class=\"settings-menu menu-dropdown-panel\">\r\n @if (useAlternateNames) {\r\n <li>\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" [disabled]=\"!settingsEnabled\" [class.disabled]=\"!settingsEnabled\" (click)=\"onAlternateNamesClick($event)\">\r\n @if (displayAlternateNames) {\r\n <fa-icon class=\"menu-indicator menu-indicator-active\" [icon]=\"checkIcon\"></fa-icon>\r\n } @else {\r\n <fa-icon class=\"menu-indicator invisible\" [icon]=\"checkIcon\"></fa-icon>\r\n }\r\n {{ 'DisplayAlternateNames' | translate }}\r\n </button>\r\n </li>\r\n <li><hr class=\"dropdown-divider\"></li>\r\n }\r\n\r\n @if (hrCanBlock) {\r\n <li>\r\n @if (hrBlocked) {\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, releaseHrClick)\">\r\n <fa-icon class=\"menu-indicator menu-indicator-active\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'ReleaseHR' | translate }}\r\n </button>\r\n } @else {\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, blockHrClick)\">\r\n <fa-icon class=\"menu-indicator invisible\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'BlockHR' | translate }}\r\n </button>\r\n }\r\n </li>\r\n }\r\n\r\n @if (tkCanBlock) {\r\n <li>\r\n @if (tkBlocked) {\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, releaseTkClick)\">\r\n <fa-icon class=\"menu-indicator menu-indicator-active\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'ReleaseTK' | translate }}\r\n </button>\r\n } @else {\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, blockTkClick)\">\r\n <fa-icon class=\"menu-indicator invisible\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'BlockTK' | translate }}\r\n </button>\r\n }\r\n </li>\r\n }\r\n\r\n @if (hrCanBlock || tkCanBlock) {\r\n <li><hr class=\"dropdown-divider\"></li>\r\n }\r\n\r\n @if (nameModeItems.length > 0) {\r\n <li>\r\n <span class=\"menu-section-label\">{{ 'EmployeeNamesMode' | translate }}</span>\r\n </li>\r\n\r\n @for (item of nameModeItems; track item.id; let index = $index) {\r\n <li>\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" [disabled]=\"!settingsEnabled\" [class.disabled]=\"!settingsEnabled\" (click)=\"onNameModeClick(index, $event)\">\r\n @if (item.selected) {\r\n <fa-icon class=\"menu-indicator menu-indicator-active\" [icon]=\"checkIcon\"></fa-icon>\r\n } @else {\r\n <fa-icon class=\"menu-indicator invisible\" [icon]=\"checkIcon\"></fa-icon>\r\n }\r\n {{ item.text }}\r\n </button>\r\n </li>\r\n }\r\n\r\n <li><hr class=\"dropdown-divider\"></li>\r\n }\r\n\r\n <li>\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, changePasswordClick)\">\r\n <span class=\"menu-indicator\"></span>\r\n {{ 'ChangePassword' | translate }}\r\n </button>\r\n </li>\r\n\r\n <li><hr class=\"dropdown-divider\"></li>\r\n\r\n <li>\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, openAboutClick)\">\r\n <fa-icon class=\"menu-indicator\" [icon]=\"infoIcon\"></fa-icon>\r\n {{ 'About' | translate }}\r\n </button>\r\n </li>\r\n </ul>\r\n }\r\n</div>\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
595
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BayanCoreSettingsWidgetComponent, isStandalone: true, selector: "bayan-core-settings-widget", inputs: { ActivePropertyChanged: "ActivePropertyChanged", useAlternateNames: "useAlternateNames", displayAlternateNames: "displayAlternateNames", hrBlocked: "hrBlocked", hrCanBlock: "hrCanBlock", tkBlocked: "tkBlocked", tkCanBlock: "tkCanBlock", nameModeItems: "nameModeItems", settingsEnabled: "settingsEnabled" }, outputs: { alternateNamesChange: "alternateNamesChange", nameModeChange: "nameModeChange", blockHrClick: "blockHrClick", releaseHrClick: "releaseHrClick", blockTkClick: "blockTkClick", releaseTkClick: "releaseTkClick", changePasswordClick: "changePasswordClick", openAboutClick: "openAboutClick" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown menu-dropdown-host\" [class.open]=\"dropdownOpen()\">\r\n <button type=\"button\" class=\"settings-toggle menu-icon-btn\" (click)=\"toggleDropdown($event)\" [title]=\"'Settings' | translate\">\r\n <fa-icon [icon]=\"cogIcon\" class=\"fs-6\"></fa-icon>\r\n </button>\r\n\r\n @if (dropdownOpen()) {\r\n <ul class=\"settings-menu menu-dropdown-panel\">\r\n @if (useAlternateNames) {\r\n <li>\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" [disabled]=\"!settingsEnabled\" [class.disabled]=\"!settingsEnabled\" (click)=\"onAlternateNamesClick($event)\">\r\n @if (displayAlternateNames) {\r\n <fa-icon class=\"menu-indicator menu-indicator-active\" [icon]=\"checkIcon\"></fa-icon>\r\n } @else {\r\n <fa-icon class=\"menu-indicator invisible\" [icon]=\"checkIcon\"></fa-icon>\r\n }\r\n {{ 'DisplayAlternateNames' | translate }}\r\n </button>\r\n </li>\r\n <li><hr class=\"dropdown-divider\"></li>\r\n }\r\n\r\n @if (hrCanBlock) {\r\n <li>\r\n @if (hrBlocked) {\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, releaseHrClick)\">\r\n <fa-icon class=\"menu-indicator menu-indicator-active\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'ReleaseHR' | translate }}\r\n </button>\r\n } @else {\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, blockHrClick)\">\r\n <fa-icon class=\"menu-indicator invisible\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'BlockHR' | translate }}\r\n </button>\r\n }\r\n </li>\r\n }\r\n\r\n @if (tkCanBlock) {\r\n <li>\r\n @if (tkBlocked) {\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, releaseTkClick)\">\r\n <fa-icon class=\"menu-indicator menu-indicator-active\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'ReleaseTK' | translate }}\r\n </button>\r\n } @else {\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, blockTkClick)\">\r\n <fa-icon class=\"menu-indicator invisible\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'BlockTK' | translate }}\r\n </button>\r\n }\r\n </li>\r\n }\r\n\r\n @if (hrCanBlock || tkCanBlock) {\r\n <li><hr class=\"dropdown-divider\"></li>\r\n }\r\n\r\n @if (nameModeItems.length > 0) {\r\n <li>\r\n <span class=\"menu-section-label\">{{ 'EmployeeNamesMode' | translate }}</span>\r\n </li>\r\n\r\n @for (item of nameModeItems; track item.id; let index = $index) {\r\n <li>\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" [disabled]=\"!settingsEnabled\" [class.disabled]=\"!settingsEnabled\" (click)=\"onNameModeClick(index, $event)\">\r\n @if (item.selected) {\r\n <fa-icon class=\"menu-indicator menu-indicator-active\" [icon]=\"checkIcon\"></fa-icon>\r\n } @else {\r\n <fa-icon class=\"menu-indicator invisible\" [icon]=\"checkIcon\"></fa-icon>\r\n }\r\n {{ item.text }}\r\n </button>\r\n </li>\r\n }\r\n\r\n <li><hr class=\"dropdown-divider\"></li>\r\n }\r\n\r\n <li>\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, changePasswordClick)\">\r\n <span class=\"menu-indicator\"></span>\r\n {{ 'ChangePassword' | translate }}\r\n </button>\r\n </li>\r\n\r\n <li><hr class=\"dropdown-divider\"></li>\r\n\r\n <li>\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, openAboutClick)\">\r\n <fa-icon class=\"menu-indicator\" [icon]=\"infoIcon\"></fa-icon>\r\n {{ 'About' | translate }}\r\n </button>\r\n </li>\r\n </ul>\r\n }\r\n</div>\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
567
596
  }
568
597
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BayanCoreSettingsWidgetComponent, decorators: [{
569
598
  type: Component,
570
599
  args: [{ selector: 'bayan-core-settings-widget', standalone: true, imports: [CommonModule, FontAwesomeModule, TranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dropdown menu-dropdown-host\" [class.open]=\"dropdownOpen()\">\r\n <button type=\"button\" class=\"settings-toggle menu-icon-btn\" (click)=\"toggleDropdown($event)\" [title]=\"'Settings' | translate\">\r\n <fa-icon [icon]=\"cogIcon\" class=\"fs-6\"></fa-icon>\r\n </button>\r\n\r\n @if (dropdownOpen()) {\r\n <ul class=\"settings-menu menu-dropdown-panel\">\r\n @if (useAlternateNames) {\r\n <li>\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" [disabled]=\"!settingsEnabled\" [class.disabled]=\"!settingsEnabled\" (click)=\"onAlternateNamesClick($event)\">\r\n @if (displayAlternateNames) {\r\n <fa-icon class=\"menu-indicator menu-indicator-active\" [icon]=\"checkIcon\"></fa-icon>\r\n } @else {\r\n <fa-icon class=\"menu-indicator invisible\" [icon]=\"checkIcon\"></fa-icon>\r\n }\r\n {{ 'DisplayAlternateNames' | translate }}\r\n </button>\r\n </li>\r\n <li><hr class=\"dropdown-divider\"></li>\r\n }\r\n\r\n @if (hrCanBlock) {\r\n <li>\r\n @if (hrBlocked) {\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, releaseHrClick)\">\r\n <fa-icon class=\"menu-indicator menu-indicator-active\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'ReleaseHR' | translate }}\r\n </button>\r\n } @else {\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, blockHrClick)\">\r\n <fa-icon class=\"menu-indicator invisible\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'BlockHR' | translate }}\r\n </button>\r\n }\r\n </li>\r\n }\r\n\r\n @if (tkCanBlock) {\r\n <li>\r\n @if (tkBlocked) {\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, releaseTkClick)\">\r\n <fa-icon class=\"menu-indicator menu-indicator-active\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'ReleaseTK' | translate }}\r\n </button>\r\n } @else {\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, blockTkClick)\">\r\n <fa-icon class=\"menu-indicator invisible\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'BlockTK' | translate }}\r\n </button>\r\n }\r\n </li>\r\n }\r\n\r\n @if (hrCanBlock || tkCanBlock) {\r\n <li><hr class=\"dropdown-divider\"></li>\r\n }\r\n\r\n @if (nameModeItems.length > 0) {\r\n <li>\r\n <span class=\"menu-section-label\">{{ 'EmployeeNamesMode' | translate }}</span>\r\n </li>\r\n\r\n @for (item of nameModeItems; track item.id; let index = $index) {\r\n <li>\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" [disabled]=\"!settingsEnabled\" [class.disabled]=\"!settingsEnabled\" (click)=\"onNameModeClick(index, $event)\">\r\n @if (item.selected) {\r\n <fa-icon class=\"menu-indicator menu-indicator-active\" [icon]=\"checkIcon\"></fa-icon>\r\n } @else {\r\n <fa-icon class=\"menu-indicator invisible\" [icon]=\"checkIcon\"></fa-icon>\r\n }\r\n {{ item.text }}\r\n </button>\r\n </li>\r\n }\r\n\r\n <li><hr class=\"dropdown-divider\"></li>\r\n }\r\n\r\n <li>\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, changePasswordClick)\">\r\n <span class=\"menu-indicator\"></span>\r\n {{ 'ChangePassword' | translate }}\r\n </button>\r\n </li>\r\n\r\n <li><hr class=\"dropdown-divider\"></li>\r\n\r\n <li>\r\n <button type=\"button\" class=\"header-dropdown-item menu-row\" (click)=\"emitAndClose($event, openAboutClick)\">\r\n <fa-icon class=\"menu-indicator\" [icon]=\"infoIcon\"></fa-icon>\r\n {{ 'About' | translate }}\r\n </button>\r\n </li>\r\n </ul>\r\n }\r\n</div>\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"] }]
571
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { useAlternateNames: [{
600
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { ActivePropertyChanged: [{
601
+ type: Input
602
+ }], useAlternateNames: [{
572
603
  type: Input
573
604
  }], displayAlternateNames: [{
574
605
  type: Input
@@ -607,76 +638,138 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
607
638
 
608
639
  class BayanCoreUserPanelWidgetComponent {
609
640
  elementRef;
641
+ topMenuService = inject(BayanCoreTopMenuService);
610
642
  baseUrl = '';
611
- set userPanel(value) {
612
- this.userPanelState.set(value);
613
- }
614
- isSsoLogin = false;
615
- propertyChange = new EventEmitter();
643
+ wrapperClass = 'menu-dropdown-host';
644
+ dropdownOpenClass = 'open';
645
+ toggleButtonClass = 'employee-toggle';
646
+ employeeInfoClass = 'employee-info';
647
+ userNameClass = 'user-name';
648
+ propertyNameClass = 'property-name';
649
+ caretClass = 'employee-caret';
650
+ menuClass = 'employee-menu menu-dropdown-panel';
651
+ sectionLabelClass = 'menu-section-label';
652
+ menuItemClass = 'menu-item';
653
+ menuItemActiveClass = 'menu-item-active';
654
+ indicatorClass = 'menu-indicator';
655
+ invisibleIndicatorClass = 'invisible';
656
+ dividerClass = 'menu-divider';
657
+ signOutButtonClass = 'menu-item menu-item-signout';
658
+ showSignOutIcon = true;
659
+ signOutIconClass = 'mx-2';
660
+ propertyChanged = new EventEmitter();
616
661
  signOutClick = new EventEmitter();
617
662
  signOutIcon = faPersonRunning;
618
663
  dropdownOpen = signal(false);
619
- userPanelState = signal(null);
664
+ userPanel = signal(null);
620
665
  badge = computed(() => ({
621
- EmployeePhotoKey: this.userPanelState()?.photoPath ?? null,
666
+ EmployeePhotoKey: this.userPanel()?.PhotoPath ?? null,
622
667
  EmployeePhotoFailed: false,
623
- EmployeeNameInitials: this.userPanelState()?.nameInitials ?? '',
668
+ EmployeeNameInitials: this.userPanel()?.NameInitials ?? '',
624
669
  }));
625
670
  constructor(elementRef) {
626
671
  this.elementRef = elementRef;
627
672
  }
673
+ ngOnInit() {
674
+ this.loadUserPanel();
675
+ }
676
+ ngOnChanges(changes) {
677
+ if (changes['baseUrl'] && !changes['baseUrl'].firstChange) {
678
+ this.loadUserPanel();
679
+ }
680
+ }
628
681
  onDocumentClick(event) {
629
682
  const target = event.target;
630
683
  if (target && !this.elementRef.nativeElement.contains(target)) {
631
684
  this.dropdownOpen.set(false);
632
685
  }
633
686
  }
634
- displayName() {
635
- return this.userPanelState()?.userDisplayName ?? '';
636
- }
637
- activePropertyName() {
638
- return this.userPanelState()?.activePropertyName ?? '';
639
- }
640
- activePropertyId() {
641
- return this.userPanelState()?.activePropertyId ?? null;
642
- }
643
- propertyList() {
644
- return this.userPanelState()?.properties ?? [];
645
- }
646
- showSignOut() {
647
- return !(this.userPanelState()?.isSsoLogin ?? this.isSsoLogin);
648
- }
649
687
  toggleDropdown(event) {
650
688
  event.preventDefault();
651
689
  this.dropdownOpen.update((value) => !value);
652
690
  }
653
691
  selectProperty(event, property) {
654
692
  event.preventDefault();
655
- if (property.propertyId === this.activePropertyId()) {
693
+ if (property.PropertyId === this.userPanel()?.ActivePropertyId) {
656
694
  this.dropdownOpen.set(false);
657
695
  return;
658
696
  }
659
697
  this.dropdownOpen.set(false);
660
- this.propertyChange.emit(property);
698
+ this.topMenuService
699
+ .switchProperty(this.baseUrl, { PropertyId: property.PropertyId })
700
+ .subscribe({
701
+ next: () => {
702
+ this.topMenuService.getUserPanel(this.baseUrl).subscribe({
703
+ next: (userPanel) => {
704
+ this.userPanel.set(userPanel);
705
+ this.propertyChanged.emit(property);
706
+ },
707
+ });
708
+ },
709
+ });
661
710
  }
662
711
  signOut(event) {
663
712
  event.preventDefault();
664
713
  this.dropdownOpen.set(false);
665
714
  this.signOutClick.emit();
666
715
  }
716
+ loadUserPanel() {
717
+ if (!this.baseUrl) {
718
+ this.userPanel.set(null);
719
+ return;
720
+ }
721
+ this.topMenuService.getUserPanel(this.baseUrl).subscribe({
722
+ next: (userPanel) => {
723
+ this.userPanel.set(userPanel);
724
+ },
725
+ error: () => {
726
+ this.userPanel.set(null);
727
+ },
728
+ });
729
+ }
667
730
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BayanCoreUserPanelWidgetComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
668
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BayanCoreUserPanelWidgetComponent, isStandalone: true, selector: "bayan-core-user-panel-widget", inputs: { baseUrl: "baseUrl", userPanel: "userPanel", isSsoLogin: "isSsoLogin" }, outputs: { propertyChange: "propertyChange", signOutClick: "signOutClick" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"menu-dropdown-host\" [class.open]=\"dropdownOpen()\">\r\n <button type=\"button\" class=\"employee-toggle\" (click)=\"toggleDropdown($event)\">\r\n <bayan-employee-badge [badge]=\"badge()\" width=\"34px\" height=\"34px\"></bayan-employee-badge>\r\n\r\n <div class=\"employee-info\">\r\n <span class=\"user-name\">{{ displayName() }}</span>\r\n\r\n @if (activePropertyName()) {\r\n <span class=\"property-name\">{{ activePropertyName() }}</span>\r\n }\r\n </div>\r\n\r\n <span class=\"employee-caret\">&#9660;</span>\r\n </button>\r\n\r\n @if (dropdownOpen()) {\r\n <ul class=\"employee-menu menu-dropdown-panel\">\r\n @if (propertyList().length > 0) {\r\n <li class=\"menu-section-label\">{{ 'Properties' | translate }}</li>\r\n\r\n @for (property of propertyList(); track property.propertyId) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n class=\"menu-item\"\r\n [class.menu-item-active]=\"property.propertyId === activePropertyId()\"\r\n (click)=\"selectProperty($event, property)\">\r\n @if (property.propertyId === activePropertyId()) {\r\n <span class=\"menu-indicator\">&#9658;</span>\r\n } @else {\r\n <span class=\"menu-indicator invisible\"></span>\r\n }\r\n\r\n {{ property.propertyName }}\r\n </button>\r\n </li>\r\n }\r\n\r\n <li><hr class=\"menu-divider\"></li>\r\n }\r\n\r\n @if (showSignOut()) {\r\n <li>\r\n <button type=\"button\" class=\"menu-item menu-item-signout\" (click)=\"signOut($event)\">\r\n <fa-icon class=\"mx-2\" [icon]=\"signOutIcon\"></fa-icon>{{ 'SignOut' | translate }}\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</div>\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: BayanEmployeeBadgeComponent, selector: "bayan-employee-badge", inputs: ["badge", "width", "height", "imageClass", "badgeClass"], outputs: ["employeePhotoError"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
731
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BayanCoreUserPanelWidgetComponent, isStandalone: true, selector: "bayan-core-user-panel-widget", inputs: { baseUrl: "baseUrl", wrapperClass: "wrapperClass", dropdownOpenClass: "dropdownOpenClass", toggleButtonClass: "toggleButtonClass", employeeInfoClass: "employeeInfoClass", userNameClass: "userNameClass", propertyNameClass: "propertyNameClass", caretClass: "caretClass", menuClass: "menuClass", sectionLabelClass: "sectionLabelClass", menuItemClass: "menuItemClass", menuItemActiveClass: "menuItemActiveClass", indicatorClass: "indicatorClass", invisibleIndicatorClass: "invisibleIndicatorClass", dividerClass: "dividerClass", signOutButtonClass: "signOutButtonClass", showSignOutIcon: "showSignOutIcon", signOutIconClass: "signOutIconClass" }, outputs: { propertyChanged: "propertyChanged", signOutClick: "signOutClick" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"[wrapperClass, dropdownOpen() ? dropdownOpenClass : '']\">\r\n <button type=\"button\" [class]=\"toggleButtonClass\" (click)=\"toggleDropdown($event)\">\r\n <bayan-employee-badge [badge]=\"badge()\" width=\"34px\" height=\"34px\"></bayan-employee-badge>\r\n\r\n <div [class]=\"employeeInfoClass\">\r\n <span [class]=\"userNameClass\">{{ userPanel()?.UserDisplayName || '' }}</span>\r\n\r\n @if (userPanel()?.ActivePropertyName) {\r\n <span [class]=\"propertyNameClass\">{{ userPanel()?.ActivePropertyName }}</span>\r\n }\r\n </div>\r\n\r\n <span [class]=\"caretClass\">&#9660;</span>\r\n </button>\r\n\r\n @if (dropdownOpen()) {\r\n <ul [class]=\"menuClass\">\r\n @if ((userPanel()?.Properties?.length || 0) > 0) {\r\n <li [class]=\"sectionLabelClass\">{{ 'Properties' | translate }}</li>\r\n\r\n @for (property of userPanel()?.Properties ?? []; track property.PropertyId) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n [ngClass]=\"[menuItemClass, property.PropertyId === userPanel()?.ActivePropertyId ? menuItemActiveClass : '']\"\r\n (click)=\"selectProperty($event, property)\">\r\n @if (property.PropertyId === userPanel()?.ActivePropertyId) {\r\n <span [class]=\"indicatorClass\">&#9658;</span>\r\n } @else {\r\n <span [class]=\"indicatorClass + ' ' + invisibleIndicatorClass\"></span>\r\n }\r\n\r\n {{ property.PropertyName }}\r\n </button>\r\n </li>\r\n }\r\n\r\n <li><hr [class]=\"dividerClass\"></li>\r\n }\r\n\r\n @if (!userPanel()?.IsSSOLogin) {\r\n <li>\r\n <button type=\"button\" [class]=\"signOutButtonClass\" (click)=\"signOut($event)\">\r\n @if (showSignOutIcon) {\r\n <fa-icon [class]=\"signOutIconClass\" [icon]=\"signOutIcon\"></fa-icon>\r\n }\r\n {{ 'SignOut' | translate }}\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</div>\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: BayanEmployeeBadgeComponent, selector: "bayan-employee-badge", inputs: ["badge", "width", "height", "imageClass", "badgeClass"], outputs: ["employeePhotoError"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
669
732
  }
670
733
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BayanCoreUserPanelWidgetComponent, decorators: [{
671
734
  type: Component,
672
- args: [{ selector: 'bayan-core-user-panel-widget', standalone: true, imports: [CommonModule, FontAwesomeModule, BayanEmployeeBadgeComponent, TranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"menu-dropdown-host\" [class.open]=\"dropdownOpen()\">\r\n <button type=\"button\" class=\"employee-toggle\" (click)=\"toggleDropdown($event)\">\r\n <bayan-employee-badge [badge]=\"badge()\" width=\"34px\" height=\"34px\"></bayan-employee-badge>\r\n\r\n <div class=\"employee-info\">\r\n <span class=\"user-name\">{{ displayName() }}</span>\r\n\r\n @if (activePropertyName()) {\r\n <span class=\"property-name\">{{ activePropertyName() }}</span>\r\n }\r\n </div>\r\n\r\n <span class=\"employee-caret\">&#9660;</span>\r\n </button>\r\n\r\n @if (dropdownOpen()) {\r\n <ul class=\"employee-menu menu-dropdown-panel\">\r\n @if (propertyList().length > 0) {\r\n <li class=\"menu-section-label\">{{ 'Properties' | translate }}</li>\r\n\r\n @for (property of propertyList(); track property.propertyId) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n class=\"menu-item\"\r\n [class.menu-item-active]=\"property.propertyId === activePropertyId()\"\r\n (click)=\"selectProperty($event, property)\">\r\n @if (property.propertyId === activePropertyId()) {\r\n <span class=\"menu-indicator\">&#9658;</span>\r\n } @else {\r\n <span class=\"menu-indicator invisible\"></span>\r\n }\r\n\r\n {{ property.propertyName }}\r\n </button>\r\n </li>\r\n }\r\n\r\n <li><hr class=\"menu-divider\"></li>\r\n }\r\n\r\n @if (showSignOut()) {\r\n <li>\r\n <button type=\"button\" class=\"menu-item menu-item-signout\" (click)=\"signOut($event)\">\r\n <fa-icon class=\"mx-2\" [icon]=\"signOutIcon\"></fa-icon>{{ 'SignOut' | translate }}\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</div>\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"] }]
735
+ args: [{ selector: 'bayan-core-user-panel-widget', standalone: true, imports: [CommonModule, FontAwesomeModule, BayanEmployeeBadgeComponent, TranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"[wrapperClass, dropdownOpen() ? dropdownOpenClass : '']\">\r\n <button type=\"button\" [class]=\"toggleButtonClass\" (click)=\"toggleDropdown($event)\">\r\n <bayan-employee-badge [badge]=\"badge()\" width=\"34px\" height=\"34px\"></bayan-employee-badge>\r\n\r\n <div [class]=\"employeeInfoClass\">\r\n <span [class]=\"userNameClass\">{{ userPanel()?.UserDisplayName || '' }}</span>\r\n\r\n @if (userPanel()?.ActivePropertyName) {\r\n <span [class]=\"propertyNameClass\">{{ userPanel()?.ActivePropertyName }}</span>\r\n }\r\n </div>\r\n\r\n <span [class]=\"caretClass\">&#9660;</span>\r\n </button>\r\n\r\n @if (dropdownOpen()) {\r\n <ul [class]=\"menuClass\">\r\n @if ((userPanel()?.Properties?.length || 0) > 0) {\r\n <li [class]=\"sectionLabelClass\">{{ 'Properties' | translate }}</li>\r\n\r\n @for (property of userPanel()?.Properties ?? []; track property.PropertyId) {\r\n <li>\r\n <button\r\n type=\"button\"\r\n [ngClass]=\"[menuItemClass, property.PropertyId === userPanel()?.ActivePropertyId ? menuItemActiveClass : '']\"\r\n (click)=\"selectProperty($event, property)\">\r\n @if (property.PropertyId === userPanel()?.ActivePropertyId) {\r\n <span [class]=\"indicatorClass\">&#9658;</span>\r\n } @else {\r\n <span [class]=\"indicatorClass + ' ' + invisibleIndicatorClass\"></span>\r\n }\r\n\r\n {{ property.PropertyName }}\r\n </button>\r\n </li>\r\n }\r\n\r\n <li><hr [class]=\"dividerClass\"></li>\r\n }\r\n\r\n @if (!userPanel()?.IsSSOLogin) {\r\n <li>\r\n <button type=\"button\" [class]=\"signOutButtonClass\" (click)=\"signOut($event)\">\r\n @if (showSignOutIcon) {\r\n <fa-icon [class]=\"signOutIconClass\" [icon]=\"signOutIcon\"></fa-icon>\r\n }\r\n {{ 'SignOut' | translate }}\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</div>\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"] }]
673
736
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { baseUrl: [{
674
737
  type: Input
675
- }], userPanel: [{
738
+ }], wrapperClass: [{
676
739
  type: Input
677
- }], isSsoLogin: [{
740
+ }], dropdownOpenClass: [{
741
+ type: Input
742
+ }], toggleButtonClass: [{
743
+ type: Input
744
+ }], employeeInfoClass: [{
745
+ type: Input
746
+ }], userNameClass: [{
747
+ type: Input
748
+ }], propertyNameClass: [{
749
+ type: Input
750
+ }], caretClass: [{
751
+ type: Input
752
+ }], menuClass: [{
753
+ type: Input
754
+ }], sectionLabelClass: [{
678
755
  type: Input
679
- }], propertyChange: [{
756
+ }], menuItemClass: [{
757
+ type: Input
758
+ }], menuItemActiveClass: [{
759
+ type: Input
760
+ }], indicatorClass: [{
761
+ type: Input
762
+ }], invisibleIndicatorClass: [{
763
+ type: Input
764
+ }], dividerClass: [{
765
+ type: Input
766
+ }], signOutButtonClass: [{
767
+ type: Input
768
+ }], showSignOutIcon: [{
769
+ type: Input
770
+ }], signOutIconClass: [{
771
+ type: Input
772
+ }], propertyChanged: [{
680
773
  type: Output
681
774
  }], signOutClick: [{
682
775
  type: Output
@@ -689,6 +782,7 @@ class BayanCoreTopMenuWidgetComponent {
689
782
  document = inject(DOCUMENT);
690
783
  router = inject(Router);
691
784
  baseUrl = '';
785
+ systemModule = null;
692
786
  sidebarCollapsed = false;
693
787
  homeUrl = null;
694
788
  logoUrl = 'https://cdn-dev.skysoftware.cloud/bayan/images/logo-enterprise-dark.png';
@@ -697,7 +791,6 @@ class BayanCoreTopMenuWidgetComponent {
697
791
  searchPlaceholder = 'TopMenu.SearchPlaceholder';
698
792
  menuItems = [];
699
793
  searchItems = [];
700
- userPanel = null;
701
794
  isSsoLogin = false;
702
795
  useAlternateNames = false;
703
796
  displayAlternateNames = false;
@@ -718,7 +811,7 @@ class BayanCoreTopMenuWidgetComponent {
718
811
  };
719
812
  aboutDialog = {
720
813
  title: 'Sky Bayan Human Resources Management',
721
- logoUrl: '',
814
+ logoUrl: 'https://cdn-dev.skysoftware.cloud/bayan/images/logo-enterprise.png',
722
815
  version: '',
723
816
  versionLabel: 'Version',
724
817
  copyright: `Copyright 2026, Sky Software Co LLC All Rights Reserved
@@ -730,13 +823,13 @@ Sky Bayan and Sky Bayan Logo are registered trademarks of Sky Software`,
730
823
  closeButtonLabel: 'Close',
731
824
  };
732
825
  showGlobalSearch = false;
733
- showUserPanel = false;
826
+ showUserPanel = true;
734
827
  showSettings = false;
735
828
  showNotifications = true;
736
829
  notificationsTitle = 'Notifications';
737
830
  showHelp = true;
738
831
  helpTitle = 'Help';
739
- helpUrl = null;
832
+ helpUrl = 'https://docs.bayan.solutions/Bayan/index.html';
740
833
  helpIcon = faQuestionCircle;
741
834
  helpAnchorClass = 'menu-icon-btn top-menu-widget__help-link';
742
835
  helpUrlTarget = '_blank';
@@ -744,7 +837,7 @@ Sky Bayan and Sky Bayan Logo are registered trademarks of Sky Software`,
744
837
  menuItemClick = new EventEmitter();
745
838
  searchSubmit = new EventEmitter();
746
839
  searchItemNavigate = new EventEmitter();
747
- propertyChange = new EventEmitter();
840
+ propertyChanged = new EventEmitter();
748
841
  signOutClick = new EventEmitter();
749
842
  alternateNamesChange = new EventEmitter();
750
843
  nameModeChange = new EventEmitter();
@@ -760,6 +853,11 @@ Sky Bayan and Sky Bayan Logo are registered trademarks of Sky Software`,
760
853
  submitPasswordChange = new EventEmitter();
761
854
  aboutVisible = signal(false);
762
855
  changePasswordVisible = signal(false);
856
+ ActivePropertyChanged = false;
857
+ ngOnInit() {
858
+ if (this.systemModule) {
859
+ }
860
+ }
763
861
  hasNavigationUrl(url) {
764
862
  return !!resolveUrl(this.baseUrl, url);
765
863
  }
@@ -771,13 +869,19 @@ Sky Bayan and Sky Bayan Logo are registered trademarks of Sky Software`,
771
869
  }
772
870
  onLogoClicked(event) {
773
871
  event?.preventDefault();
872
+ if (this.homeUrl) {
873
+ window.location.href = this.homeUrl;
874
+ return;
875
+ }
774
876
  this.logoClick.emit();
775
- this.navigateToUrl(this.homeUrl);
776
877
  }
777
878
  onHelpClicked(event) {
778
879
  event?.preventDefault();
880
+ if (this.helpUrl) {
881
+ window.location.href = this.helpUrl;
882
+ return;
883
+ }
779
884
  this.helpClick.emit();
780
- this.navigateToUrl(this.helpUrl);
781
885
  }
782
886
  onChangePasswordRequested() {
783
887
  this.changePasswordClick.emit();
@@ -791,22 +895,12 @@ Sky Bayan and Sky Bayan Logo are registered trademarks of Sky Software`,
791
895
  this.aboutVisible.set(true);
792
896
  }
793
897
  }
794
- navigateToUrl(url) {
795
- if (!url) {
796
- return;
797
- }
798
- const resolvedUrl = resolveUrl(this.baseUrl, url);
799
- if (!resolvedUrl) {
800
- return;
801
- }
802
- if (isExternalNavigation(this.baseUrl, url)) {
803
- this.document.location.assign(resolvedUrl);
804
- return;
805
- }
806
- void this.router.navigateByUrl(resolvedUrl);
898
+ onPropertyChanged(property) {
899
+ this.ActivePropertyChanged = !this.ActivePropertyChanged;
900
+ this.propertyChanged.emit(property);
807
901
  }
808
902
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BayanCoreTopMenuWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
809
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BayanCoreTopMenuWidgetComponent, isStandalone: true, selector: "bayan-core-top-menu-widget", inputs: { baseUrl: "baseUrl", sidebarCollapsed: "sidebarCollapsed", homeUrl: "homeUrl", logoUrl: "logoUrl", collapsedLogoUrl: "collapsedLogoUrl", searchPlaceholder: "searchPlaceholder", menuItems: "menuItems", searchItems: "searchItems", userPanel: "userPanel", isSsoLogin: "isSsoLogin", useAlternateNames: "useAlternateNames", displayAlternateNames: "displayAlternateNames", hrBlocked: "hrBlocked", hrCanBlock: "hrCanBlock", tkBlocked: "tkBlocked", tkCanBlock: "tkCanBlock", nameModeItems: "nameModeItems", settingsEnabled: "settingsEnabled", useInternalDialogs: "useInternalDialogs", changePasswordLoading: "changePasswordLoading", changePasswordDialog: "changePasswordDialog", aboutDialog: "aboutDialog", showGlobalSearch: "showGlobalSearch", showUserPanel: "showUserPanel", showSettings: "showSettings", showNotifications: "showNotifications", notificationsTitle: "notificationsTitle", showHelp: "showHelp", helpTitle: "helpTitle", helpUrl: "helpUrl", helpIcon: "helpIcon", helpAnchorClass: "helpAnchorClass", helpUrlTarget: "helpUrlTarget" }, outputs: { logoClick: "logoClick", helpClick: "helpClick", menuItemClick: "menuItemClick", searchSubmit: "searchSubmit", searchItemNavigate: "searchItemNavigate", propertyChange: "propertyChange", signOutClick: "signOutClick", alternateNamesChange: "alternateNamesChange", nameModeChange: "nameModeChange", blockHrClick: "blockHrClick", releaseHrClick: "releaseHrClick", blockTkClick: "blockTkClick", releaseTkClick: "releaseTkClick", changePasswordClick: "changePasswordClick", openAboutClick: "openAboutClick", aboutLicenseClick: "aboutLicenseClick", aboutReleaseNotesClick: "aboutReleaseNotesClick", aboutSupportClick: "aboutSupportClick", submitPasswordChange: "submitPasswordChange" }, ngImport: i0, template: "<header class=\"top-menu-widget__header shadow-sm w-100 sticky-top\">\r\n <dx-toolbar class=\"top-menu-widget__toolbar px-4\">\r\n <dxi-item location=\"before\">\r\n <div *dxTemplate>\r\n <a\r\n class=\"top-menu-widget__brand\"\r\n [class.top-menu-widget__brand--collapsed]=\"sidebarCollapsed\"\r\n (click)=\"onLogoClicked($event)\">\r\n <img\r\n [src]=\"getLogoSrc()\"\r\n alt=\"\"\r\n class=\"top-menu-widget__logo\"\r\n [class.top-menu-widget__logo--collapsed]=\"sidebarCollapsed && !!collapsedLogoUrl\">\r\n </a>\r\n </div>\r\n </dxi-item>\r\n\r\n <dxi-item location=\"before\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <ul class=\"top-menu-widget__nav\">\r\n @for (item of menuItems; track item.id ?? item.menuName) {\r\n <bayan-core-item-widget [item]=\"item\" [baseUrl]=\"baseUrl\" (itemClick)=\"menuItemClick.emit($event)\"></bayan-core-item-widget>\r\n }\r\n </ul>\r\n </div>\r\n </dxi-item>\r\n\r\n @if (showGlobalSearch) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-global-search-widget\r\n [baseUrl]=\"baseUrl\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [dataSource]=\"searchItems\"\r\n (search)=\"searchSubmit.emit($event)\"\r\n (itemNavigate)=\"searchItemNavigate.emit($event)\">\r\n </bayan-core-global-search-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showUserPanel) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-user-panel-widget\r\n [baseUrl]=\"baseUrl\"\r\n [userPanel]=\"userPanel\"\r\n [isSsoLogin]=\"isSsoLogin\"\r\n (propertyChange)=\"propertyChange.emit($event)\"\r\n (signOutClick)=\"signOutClick.emit()\">\r\n </bayan-core-user-panel-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showSettings) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-settings-widget\r\n [useAlternateNames]=\"useAlternateNames\"\r\n [displayAlternateNames]=\"displayAlternateNames\"\r\n [hrBlocked]=\"hrBlocked\"\r\n [hrCanBlock]=\"hrCanBlock\"\r\n [tkBlocked]=\"tkBlocked\"\r\n [tkCanBlock]=\"tkCanBlock\"\r\n [nameModeItems]=\"nameModeItems\"\r\n [settingsEnabled]=\"settingsEnabled\"\r\n (alternateNamesChange)=\"alternateNamesChange.emit()\"\r\n (nameModeChange)=\"nameModeChange.emit($event)\"\r\n (blockHrClick)=\"blockHrClick.emit()\"\r\n (releaseHrClick)=\"releaseHrClick.emit()\"\r\n (blockTkClick)=\"blockTkClick.emit()\"\r\n (releaseTkClick)=\"releaseTkClick.emit()\"\r\n (changePasswordClick)=\"onChangePasswordRequested()\"\r\n (openAboutClick)=\"onAboutRequested()\">\r\n </bayan-core-settings-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showNotifications) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-notifications-widget [baseUrl]=\"baseUrl\"\r\n [title]=\"notificationsTitle | translate\" >\r\n </bayan-core-notifications-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showHelp) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <a\r\n [class]=\"helpAnchorClass\"\r\n [title]=\"helpTitle | translate\"\r\n [target]=\"helpUrlTarget\"\r\n (click)=\"onHelpClicked($event)\">\r\n <fa-icon [icon]=\"helpIcon\" class=\"fs-6\"></fa-icon>\r\n </a>\r\n </div>\r\n </dxi-item>\r\n }\r\n </dx-toolbar>\r\n</header>\r\n\r\n@if (useInternalDialogs) {\r\n <bayan-core-about-dialog-widget\r\n [baseUrl]=\"baseUrl\"\r\n [visible]=\"aboutVisible()\"\r\n [config]=\"aboutDialog\"\r\n (visibleChange)=\"aboutVisible.set($event)\"\r\n (licenseClick)=\"aboutLicenseClick.emit()\"\r\n (releaseNotesClick)=\"aboutReleaseNotesClick.emit()\"\r\n (supportClick)=\"aboutSupportClick.emit()\">\r\n </bayan-core-about-dialog-widget>\r\n\r\n <bayan-core-change-password-widget\r\n [baseUrl]=\"baseUrl\"\r\n [visible]=\"changePasswordVisible()\"\r\n [config]=\"changePasswordDialog\"\r\n [isSubmitting]=\"changePasswordLoading\"\r\n (visibleChange)=\"changePasswordVisible.set($event)\"\r\n (submitPasswordChange)=\"submitPasswordChange.emit($event)\">\r\n </bayan-core-change-password-widget>\r\n}\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DxToolbarModule }, { kind: "component", type: i1$1.DxToolbarComponent, selector: "dx-toolbar", inputs: ["dataSource", "disabled", "elementAttr", "hint", "hoverStateEnabled", "itemHoldTimeout", "items", "itemTemplate", "menuItemTemplate", "multiline", "noDataText", "rtlEnabled", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onItemClick", "onItemContextMenu", "onItemHold", "onItemRendered", "onOptionChanged", "dataSourceChange", "disabledChange", "elementAttrChange", "hintChange", "hoverStateEnabledChange", "itemHoldTimeoutChange", "itemsChange", "itemTemplateChange", "menuItemTemplateChange", "multilineChange", "noDataTextChange", "rtlEnabledChange", "visibleChange", "widthChange"] }, { kind: "component", type: i3.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "author", "id", "timestamp", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "captionTemplate", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "collapsed", "collapsedSize", "collapsible", "maxSize", "minSize", "resizable", "size", "splitter", "heightRatio", "widthRatio", "expanded", "hasItems", "parentId"] }, { kind: "directive", type: i2.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: BayanCoreItemWidgetComponent, selector: "bayan-core-item-widget", inputs: ["baseUrl", "item"], outputs: ["itemClick"] }, { kind: "component", type: BayanCoreGlobalSearchWidgetComponent, selector: "bayan-core-global-search-widget", inputs: ["baseUrl", "placeholder", "dataSource"], outputs: ["search", "itemNavigate"] }, { kind: "component", type: BayanCoreUserPanelWidgetComponent, selector: "bayan-core-user-panel-widget", inputs: ["baseUrl", "userPanel", "isSsoLogin"], outputs: ["propertyChange", "signOutClick"] }, { kind: "component", type: BayanCoreSettingsWidgetComponent, selector: "bayan-core-settings-widget", inputs: ["useAlternateNames", "displayAlternateNames", "hrBlocked", "hrCanBlock", "tkBlocked", "tkCanBlock", "nameModeItems", "settingsEnabled"], outputs: ["alternateNamesChange", "nameModeChange", "blockHrClick", "releaseHrClick", "blockTkClick", "releaseTkClick", "changePasswordClick", "openAboutClick"] }, { kind: "component", type: BayanCoreAboutDialogWidgetComponent, selector: "bayan-core-about-dialog-widget", inputs: ["baseUrl", "visible", "config"], outputs: ["visibleChange", "licenseClick", "releaseNotesClick", "supportClick"] }, { kind: "component", type: BayanCoreChangePasswordWidgetComponent, selector: "bayan-core-change-password-widget", inputs: ["baseUrl", "visible", "config", "isSubmitting"], outputs: ["visibleChange", "submitPasswordChange"] }, { kind: "component", type: BayanCoreNotificationsWidgetComponent, selector: "bayan-core-notifications-widget", inputs: ["baseUrl", "title", "wrapperClass", "linkClass", "iconClass", "badgeClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
903
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: BayanCoreTopMenuWidgetComponent, isStandalone: true, selector: "bayan-core-top-menu-widget", inputs: { baseUrl: "baseUrl", systemModule: "systemModule", sidebarCollapsed: "sidebarCollapsed", homeUrl: "homeUrl", logoUrl: "logoUrl", collapsedLogoUrl: "collapsedLogoUrl", searchPlaceholder: "searchPlaceholder", menuItems: "menuItems", searchItems: "searchItems", isSsoLogin: "isSsoLogin", useAlternateNames: "useAlternateNames", displayAlternateNames: "displayAlternateNames", hrBlocked: "hrBlocked", hrCanBlock: "hrCanBlock", tkBlocked: "tkBlocked", tkCanBlock: "tkCanBlock", nameModeItems: "nameModeItems", settingsEnabled: "settingsEnabled", useInternalDialogs: "useInternalDialogs", changePasswordLoading: "changePasswordLoading", changePasswordDialog: "changePasswordDialog", aboutDialog: "aboutDialog", showGlobalSearch: "showGlobalSearch", showUserPanel: "showUserPanel", showSettings: "showSettings", showNotifications: "showNotifications", notificationsTitle: "notificationsTitle", showHelp: "showHelp", helpTitle: "helpTitle", helpUrl: "helpUrl", helpIcon: "helpIcon", helpAnchorClass: "helpAnchorClass", helpUrlTarget: "helpUrlTarget" }, outputs: { logoClick: "logoClick", helpClick: "helpClick", menuItemClick: "menuItemClick", searchSubmit: "searchSubmit", searchItemNavigate: "searchItemNavigate", propertyChanged: "propertyChanged", signOutClick: "signOutClick", alternateNamesChange: "alternateNamesChange", nameModeChange: "nameModeChange", blockHrClick: "blockHrClick", releaseHrClick: "releaseHrClick", blockTkClick: "blockTkClick", releaseTkClick: "releaseTkClick", changePasswordClick: "changePasswordClick", openAboutClick: "openAboutClick", aboutLicenseClick: "aboutLicenseClick", aboutReleaseNotesClick: "aboutReleaseNotesClick", aboutSupportClick: "aboutSupportClick", submitPasswordChange: "submitPasswordChange" }, ngImport: i0, template: "<header class=\"top-menu-widget__header shadow-sm w-100 sticky-top\">\r\n <dx-toolbar class=\"top-menu-widget__toolbar px-4\">\r\n <dxi-item location=\"before\">\r\n <div *dxTemplate>\r\n <a\r\n class=\"top-menu-widget__brand\" href=\"#\"\r\n [class.top-menu-widget__brand--collapsed]=\"sidebarCollapsed\"\r\n (click)=\"onLogoClicked($event)\">\r\n <img\r\n [src]=\"getLogoSrc()\"\r\n alt=\"\"\r\n class=\"top-menu-widget__logo\"\r\n [class.top-menu-widget__logo--collapsed]=\"sidebarCollapsed && !!collapsedLogoUrl\">\r\n </a>\r\n </div>\r\n </dxi-item>\r\n\r\n <dxi-item location=\"before\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <ul class=\"top-menu-widget__nav\">\r\n @for (item of menuItems; track item.id ?? item.menuName) {\r\n <bayan-core-item-widget [item]=\"item\" [baseUrl]=\"baseUrl\" [ActivePropertyChanged]=\"ActivePropertyChanged\" (itemClick)=\"menuItemClick.emit($event)\"></bayan-core-item-widget>\r\n }\r\n </ul>\r\n </div>\r\n </dxi-item>\r\n\r\n @if (showGlobalSearch) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-global-search-widget\r\n [baseUrl]=\"baseUrl\"\r\n [ActivePropertyChanged]=\"ActivePropertyChanged\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [dataSource]=\"searchItems\"\r\n (search)=\"searchSubmit.emit($event)\"\r\n (itemNavigate)=\"searchItemNavigate.emit($event)\">\r\n </bayan-core-global-search-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showUserPanel) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-user-panel-widget\r\n [baseUrl]=\"baseUrl\"\r\n (propertyChanged)=\"onPropertyChanged($event)\"\r\n (signOutClick)=\"signOutClick.emit()\">\r\n </bayan-core-user-panel-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showSettings) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-settings-widget\r\n [ActivePropertyChanged]=\"ActivePropertyChanged\"\r\n [useAlternateNames]=\"useAlternateNames\"\r\n [displayAlternateNames]=\"displayAlternateNames\"\r\n [hrBlocked]=\"hrBlocked\"\r\n [hrCanBlock]=\"hrCanBlock\"\r\n [tkBlocked]=\"tkBlocked\"\r\n [tkCanBlock]=\"tkCanBlock\"\r\n [nameModeItems]=\"nameModeItems\"\r\n [settingsEnabled]=\"settingsEnabled\"\r\n (alternateNamesChange)=\"alternateNamesChange.emit()\"\r\n (nameModeChange)=\"nameModeChange.emit($event)\"\r\n (blockHrClick)=\"blockHrClick.emit()\"\r\n (releaseHrClick)=\"releaseHrClick.emit()\"\r\n (blockTkClick)=\"blockTkClick.emit()\"\r\n (releaseTkClick)=\"releaseTkClick.emit()\"\r\n (changePasswordClick)=\"onChangePasswordRequested()\"\r\n (openAboutClick)=\"onAboutRequested()\">\r\n </bayan-core-settings-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showNotifications) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-notifications-widget [baseUrl]=\"baseUrl\"\r\n [title]=\"notificationsTitle | translate\" >\r\n </bayan-core-notifications-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showHelp) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <a\r\n [class]=\"helpAnchorClass\"\r\n [title]=\"helpTitle | translate\"\r\n [target]=\"helpUrlTarget\"\r\n href=\"#\"\r\n (click)=\"onHelpClicked($event)\">\r\n <fa-icon [icon]=\"helpIcon\" class=\"fs-6\"></fa-icon>\r\n </a>\r\n </div>\r\n </dxi-item>\r\n }\r\n </dx-toolbar>\r\n</header>\r\n\r\n@if (useInternalDialogs) {\r\n <bayan-core-about-dialog-widget\r\n [baseUrl]=\"baseUrl\"\r\n [visible]=\"aboutVisible()\"\r\n [config]=\"aboutDialog\"\r\n (visibleChange)=\"aboutVisible.set($event)\"\r\n (licenseClick)=\"aboutLicenseClick.emit()\"\r\n (releaseNotesClick)=\"aboutReleaseNotesClick.emit()\"\r\n (supportClick)=\"aboutSupportClick.emit()\">\r\n </bayan-core-about-dialog-widget>\r\n\r\n <bayan-core-change-password-widget\r\n [baseUrl]=\"baseUrl\"\r\n [visible]=\"changePasswordVisible()\"\r\n [config]=\"changePasswordDialog\"\r\n [isSubmitting]=\"changePasswordLoading\"\r\n (visibleChange)=\"changePasswordVisible.set($event)\"\r\n (submitPasswordChange)=\"submitPasswordChange.emit($event)\">\r\n </bayan-core-change-password-widget>\r\n}\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DxToolbarModule }, { kind: "component", type: i1$1.DxToolbarComponent, selector: "dx-toolbar", inputs: ["dataSource", "disabled", "elementAttr", "hint", "hoverStateEnabled", "itemHoldTimeout", "items", "itemTemplate", "menuItemTemplate", "multiline", "noDataText", "rtlEnabled", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onItemClick", "onItemContextMenu", "onItemHold", "onItemRendered", "onOptionChanged", "dataSourceChange", "disabledChange", "elementAttrChange", "hintChange", "hoverStateEnabledChange", "itemHoldTimeoutChange", "itemsChange", "itemTemplateChange", "menuItemTemplateChange", "multilineChange", "noDataTextChange", "rtlEnabledChange", "visibleChange", "widthChange"] }, { kind: "component", type: i3.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "author", "id", "timestamp", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "captionTemplate", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "collapsed", "collapsedSize", "collapsible", "maxSize", "minSize", "resizable", "size", "splitter", "heightRatio", "widthRatio", "expanded", "hasItems", "parentId"] }, { kind: "directive", type: i2.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: BayanCoreItemWidgetComponent, selector: "bayan-core-item-widget", inputs: ["baseUrl", "ActivePropertyChanged", "item"], outputs: ["itemClick"] }, { kind: "component", type: BayanCoreGlobalSearchWidgetComponent, selector: "bayan-core-global-search-widget", inputs: ["baseUrl", "ActivePropertyChanged", "placeholder", "dataSource"], outputs: ["search", "itemNavigate"] }, { kind: "component", type: BayanCoreUserPanelWidgetComponent, selector: "bayan-core-user-panel-widget", inputs: ["baseUrl", "wrapperClass", "dropdownOpenClass", "toggleButtonClass", "employeeInfoClass", "userNameClass", "propertyNameClass", "caretClass", "menuClass", "sectionLabelClass", "menuItemClass", "menuItemActiveClass", "indicatorClass", "invisibleIndicatorClass", "dividerClass", "signOutButtonClass", "showSignOutIcon", "signOutIconClass"], outputs: ["propertyChanged", "signOutClick"] }, { kind: "component", type: BayanCoreSettingsWidgetComponent, selector: "bayan-core-settings-widget", inputs: ["ActivePropertyChanged", "useAlternateNames", "displayAlternateNames", "hrBlocked", "hrCanBlock", "tkBlocked", "tkCanBlock", "nameModeItems", "settingsEnabled"], outputs: ["alternateNamesChange", "nameModeChange", "blockHrClick", "releaseHrClick", "blockTkClick", "releaseTkClick", "changePasswordClick", "openAboutClick"] }, { kind: "component", type: BayanCoreAboutDialogWidgetComponent, selector: "bayan-core-about-dialog-widget", inputs: ["baseUrl", "visible", "config"], outputs: ["visibleChange", "licenseClick", "releaseNotesClick", "supportClick"] }, { kind: "component", type: BayanCoreChangePasswordWidgetComponent, selector: "bayan-core-change-password-widget", inputs: ["baseUrl", "visible", "config", "isSubmitting"], outputs: ["visibleChange", "submitPasswordChange"] }, { kind: "component", type: BayanCoreNotificationsWidgetComponent, selector: "bayan-core-notifications-widget", inputs: ["baseUrl", "title", "wrapperClass", "linkClass", "iconClass", "badgeClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
810
904
  }
811
905
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: BayanCoreTopMenuWidgetComponent, decorators: [{
812
906
  type: Component,
@@ -822,9 +916,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
822
916
  BayanCoreAboutDialogWidgetComponent,
823
917
  BayanCoreChangePasswordWidgetComponent,
824
918
  BayanCoreNotificationsWidgetComponent,
825
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"top-menu-widget__header shadow-sm w-100 sticky-top\">\r\n <dx-toolbar class=\"top-menu-widget__toolbar px-4\">\r\n <dxi-item location=\"before\">\r\n <div *dxTemplate>\r\n <a\r\n class=\"top-menu-widget__brand\"\r\n [class.top-menu-widget__brand--collapsed]=\"sidebarCollapsed\"\r\n (click)=\"onLogoClicked($event)\">\r\n <img\r\n [src]=\"getLogoSrc()\"\r\n alt=\"\"\r\n class=\"top-menu-widget__logo\"\r\n [class.top-menu-widget__logo--collapsed]=\"sidebarCollapsed && !!collapsedLogoUrl\">\r\n </a>\r\n </div>\r\n </dxi-item>\r\n\r\n <dxi-item location=\"before\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <ul class=\"top-menu-widget__nav\">\r\n @for (item of menuItems; track item.id ?? item.menuName) {\r\n <bayan-core-item-widget [item]=\"item\" [baseUrl]=\"baseUrl\" (itemClick)=\"menuItemClick.emit($event)\"></bayan-core-item-widget>\r\n }\r\n </ul>\r\n </div>\r\n </dxi-item>\r\n\r\n @if (showGlobalSearch) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-global-search-widget\r\n [baseUrl]=\"baseUrl\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [dataSource]=\"searchItems\"\r\n (search)=\"searchSubmit.emit($event)\"\r\n (itemNavigate)=\"searchItemNavigate.emit($event)\">\r\n </bayan-core-global-search-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showUserPanel) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-user-panel-widget\r\n [baseUrl]=\"baseUrl\"\r\n [userPanel]=\"userPanel\"\r\n [isSsoLogin]=\"isSsoLogin\"\r\n (propertyChange)=\"propertyChange.emit($event)\"\r\n (signOutClick)=\"signOutClick.emit()\">\r\n </bayan-core-user-panel-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showSettings) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-settings-widget\r\n [useAlternateNames]=\"useAlternateNames\"\r\n [displayAlternateNames]=\"displayAlternateNames\"\r\n [hrBlocked]=\"hrBlocked\"\r\n [hrCanBlock]=\"hrCanBlock\"\r\n [tkBlocked]=\"tkBlocked\"\r\n [tkCanBlock]=\"tkCanBlock\"\r\n [nameModeItems]=\"nameModeItems\"\r\n [settingsEnabled]=\"settingsEnabled\"\r\n (alternateNamesChange)=\"alternateNamesChange.emit()\"\r\n (nameModeChange)=\"nameModeChange.emit($event)\"\r\n (blockHrClick)=\"blockHrClick.emit()\"\r\n (releaseHrClick)=\"releaseHrClick.emit()\"\r\n (blockTkClick)=\"blockTkClick.emit()\"\r\n (releaseTkClick)=\"releaseTkClick.emit()\"\r\n (changePasswordClick)=\"onChangePasswordRequested()\"\r\n (openAboutClick)=\"onAboutRequested()\">\r\n </bayan-core-settings-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showNotifications) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-notifications-widget [baseUrl]=\"baseUrl\"\r\n [title]=\"notificationsTitle | translate\" >\r\n </bayan-core-notifications-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showHelp) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <a\r\n [class]=\"helpAnchorClass\"\r\n [title]=\"helpTitle | translate\"\r\n [target]=\"helpUrlTarget\"\r\n (click)=\"onHelpClicked($event)\">\r\n <fa-icon [icon]=\"helpIcon\" class=\"fs-6\"></fa-icon>\r\n </a>\r\n </div>\r\n </dxi-item>\r\n }\r\n </dx-toolbar>\r\n</header>\r\n\r\n@if (useInternalDialogs) {\r\n <bayan-core-about-dialog-widget\r\n [baseUrl]=\"baseUrl\"\r\n [visible]=\"aboutVisible()\"\r\n [config]=\"aboutDialog\"\r\n (visibleChange)=\"aboutVisible.set($event)\"\r\n (licenseClick)=\"aboutLicenseClick.emit()\"\r\n (releaseNotesClick)=\"aboutReleaseNotesClick.emit()\"\r\n (supportClick)=\"aboutSupportClick.emit()\">\r\n </bayan-core-about-dialog-widget>\r\n\r\n <bayan-core-change-password-widget\r\n [baseUrl]=\"baseUrl\"\r\n [visible]=\"changePasswordVisible()\"\r\n [config]=\"changePasswordDialog\"\r\n [isSubmitting]=\"changePasswordLoading\"\r\n (visibleChange)=\"changePasswordVisible.set($event)\"\r\n (submitPasswordChange)=\"submitPasswordChange.emit($event)\">\r\n </bayan-core-change-password-widget>\r\n}\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"] }]
919
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"top-menu-widget__header shadow-sm w-100 sticky-top\">\r\n <dx-toolbar class=\"top-menu-widget__toolbar px-4\">\r\n <dxi-item location=\"before\">\r\n <div *dxTemplate>\r\n <a\r\n class=\"top-menu-widget__brand\" href=\"#\"\r\n [class.top-menu-widget__brand--collapsed]=\"sidebarCollapsed\"\r\n (click)=\"onLogoClicked($event)\">\r\n <img\r\n [src]=\"getLogoSrc()\"\r\n alt=\"\"\r\n class=\"top-menu-widget__logo\"\r\n [class.top-menu-widget__logo--collapsed]=\"sidebarCollapsed && !!collapsedLogoUrl\">\r\n </a>\r\n </div>\r\n </dxi-item>\r\n\r\n <dxi-item location=\"before\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <ul class=\"top-menu-widget__nav\">\r\n @for (item of menuItems; track item.id ?? item.menuName) {\r\n <bayan-core-item-widget [item]=\"item\" [baseUrl]=\"baseUrl\" [ActivePropertyChanged]=\"ActivePropertyChanged\" (itemClick)=\"menuItemClick.emit($event)\"></bayan-core-item-widget>\r\n }\r\n </ul>\r\n </div>\r\n </dxi-item>\r\n\r\n @if (showGlobalSearch) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-global-search-widget\r\n [baseUrl]=\"baseUrl\"\r\n [ActivePropertyChanged]=\"ActivePropertyChanged\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [dataSource]=\"searchItems\"\r\n (search)=\"searchSubmit.emit($event)\"\r\n (itemNavigate)=\"searchItemNavigate.emit($event)\">\r\n </bayan-core-global-search-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showUserPanel) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-user-panel-widget\r\n [baseUrl]=\"baseUrl\"\r\n (propertyChanged)=\"onPropertyChanged($event)\"\r\n (signOutClick)=\"signOutClick.emit()\">\r\n </bayan-core-user-panel-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showSettings) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-settings-widget\r\n [ActivePropertyChanged]=\"ActivePropertyChanged\"\r\n [useAlternateNames]=\"useAlternateNames\"\r\n [displayAlternateNames]=\"displayAlternateNames\"\r\n [hrBlocked]=\"hrBlocked\"\r\n [hrCanBlock]=\"hrCanBlock\"\r\n [tkBlocked]=\"tkBlocked\"\r\n [tkCanBlock]=\"tkCanBlock\"\r\n [nameModeItems]=\"nameModeItems\"\r\n [settingsEnabled]=\"settingsEnabled\"\r\n (alternateNamesChange)=\"alternateNamesChange.emit()\"\r\n (nameModeChange)=\"nameModeChange.emit($event)\"\r\n (blockHrClick)=\"blockHrClick.emit()\"\r\n (releaseHrClick)=\"releaseHrClick.emit()\"\r\n (blockTkClick)=\"blockTkClick.emit()\"\r\n (releaseTkClick)=\"releaseTkClick.emit()\"\r\n (changePasswordClick)=\"onChangePasswordRequested()\"\r\n (openAboutClick)=\"onAboutRequested()\">\r\n </bayan-core-settings-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showNotifications) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-notifications-widget [baseUrl]=\"baseUrl\"\r\n [title]=\"notificationsTitle | translate\" >\r\n </bayan-core-notifications-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showHelp) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <a\r\n [class]=\"helpAnchorClass\"\r\n [title]=\"helpTitle | translate\"\r\n [target]=\"helpUrlTarget\"\r\n href=\"#\"\r\n (click)=\"onHelpClicked($event)\">\r\n <fa-icon [icon]=\"helpIcon\" class=\"fs-6\"></fa-icon>\r\n </a>\r\n </div>\r\n </dxi-item>\r\n }\r\n </dx-toolbar>\r\n</header>\r\n\r\n@if (useInternalDialogs) {\r\n <bayan-core-about-dialog-widget\r\n [baseUrl]=\"baseUrl\"\r\n [visible]=\"aboutVisible()\"\r\n [config]=\"aboutDialog\"\r\n (visibleChange)=\"aboutVisible.set($event)\"\r\n (licenseClick)=\"aboutLicenseClick.emit()\"\r\n (releaseNotesClick)=\"aboutReleaseNotesClick.emit()\"\r\n (supportClick)=\"aboutSupportClick.emit()\">\r\n </bayan-core-about-dialog-widget>\r\n\r\n <bayan-core-change-password-widget\r\n [baseUrl]=\"baseUrl\"\r\n [visible]=\"changePasswordVisible()\"\r\n [config]=\"changePasswordDialog\"\r\n [isSubmitting]=\"changePasswordLoading\"\r\n (visibleChange)=\"changePasswordVisible.set($event)\"\r\n (submitPasswordChange)=\"submitPasswordChange.emit($event)\">\r\n </bayan-core-change-password-widget>\r\n}\r\n", styles: [":host{display:flex}.top-menu-widget__header{width:100%;background:#222;color:#fff}.top-menu-widget__toolbar{width:100%}::ng-deep .top-menu-widget__header .dx-toolbar{padding:0!important;height:56px!important;background:#222}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-items-container,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-before,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-center,::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item.dx-toolbar-item,::ng-deep .top-menu-widget__header .dx-toolbar .dx-item-content.dx-toolbar-item-content{height:56px!important;display:flex!important;align-items:center!important}::ng-deep .top-menu-widget__header .dx-toolbar .dx-toolbar-after{padding:0 20px!important;gap:4px}.top-menu-widget__brand{display:flex;align-items:center;text-decoration:none;background:transparent;border:0;cursor:pointer;font:inherit;width:235px;min-width:235px;overflow:hidden;transition:width .3s ease,min-width .3s ease}.top-menu-widget__brand--collapsed{width:60px;min-width:60px}.top-menu-widget__logo{height:38px;object-fit:contain}.top-menu-widget__logo--collapsed{height:32px;object-fit:contain}.top-menu-widget__nav{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0}.menu-dropdown-host{position:relative;display:flex;align-items:center}.menu-icon-btn,.employee-toggle,.nav-link{background:transparent;border:0;color:#999!important;font:inherit;text-align:inherit;text-decoration:none;transition:color .2s ease,background .2s ease}.menu-icon-btn:hover,.employee-toggle:hover,.nav-link:hover,.nav-item.dropdown.open>.nav-link{color:#fff!important}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:56px;cursor:pointer}.menu-dropdown-panel{position:absolute;top:100%;background:#fff;color:#333;border:1px solid #dee2e6;box-shadow:0 4px 12px #0000001f;z-index:1050;padding:4px 0;list-style:none;border-radius:4px;margin:0}.menu-section-label{font-size:12px;color:#888;padding:4px 16px 6px;letter-spacing:.03em;display:block}.menu-row{display:flex;align-items:center;gap:6px}.menu-divider,.dropdown-divider{border:none;border-top:1px solid rgba(0,0,0,.15);margin:4px 0}.menu-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;flex-shrink:0;font-size:12px;padding-top:2px}.menu-indicator-active{color:#f18206}.employee-toggle{display:flex;align-items:center;height:56px;padding:0 6px;cursor:pointer}.employee-info{display:flex;flex-direction:column;justify-content:center;margin-left:8px;margin-right:4px}.user-name{font-size:13px;font-weight:500;color:#fff;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.property-name,.employee-caret{font-size:11px;color:#999}.employee-menu,.settings-menu,.notifications-menu{right:0}.employee-menu{min-width:200px}.settings-menu{min-width:240px}.menu-item,.header-dropdown-item{display:flex;align-items:center;width:100%;background:transparent;border:0;padding:7px 16px;font-size:14px;font:inherit;color:#333;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover,.menu-item:focus,.header-dropdown-item:hover,.header-dropdown-item:focus{background:#f5f5f5;color:#333!important}.menu-item-active{font-weight:600}.menu-item-signout:hover,.menu-item-signout:focus{background:#6c757d!important;color:#fff!important}.nav-item{position:relative}.nav-link{display:flex;align-items:center;justify-content:flex-start;height:56px;padding:0 14px;font-size:13px;font-weight:500;white-space:nowrap;background:#222}.caret{margin-left:4px;font-size:10px}.dropdown-menu{left:0;min-width:220px;padding:0;overflow:hidden}.dropdown-menu .nav-link{height:44px;padding:0 22px;background:#fff;color:#333!important;font-weight:400}.dropdown-menu .nav-link:hover,.dropdown-menu .nav-item.dropdown.open>.nav-link{background:#f5f6f8;color:#222!important}.top-menu-widget__search{width:280px;display:flex;align-items:center}::ng-deep .top-menu-widget__search .dx-texteditor{border-radius:6px}::ng-deep .top-menu-widget__search .dx-texteditor-input{color:#333}.top-menu-widget__search-item{display:flex;flex-direction:column;text-decoration:none}.top-menu-widget__search-item-title{display:flex;align-items:center;gap:4px;color:#666;font-size:11px;margin-bottom:4px}.top-menu-widget__search-item-subtitle{color:#222;font-size:13px;margin-left:18px}.top-menu-widget__notification-btn{position:relative}.top-menu-widget__notification-badge{position:absolute;top:8px;right:4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;text-align:center;background:#f18206;color:#fff}.top-menu-widget__help-link{display:inline-flex}.invisible{visibility:hidden}.disabled{opacity:.5;pointer-events:none}.about-backdrop{position:fixed;inset:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center}.about-modal{background:#fff;border-radius:6px;width:560px;max-width:95vw;box-shadow:0 5px 30px #00000040;overflow:hidden}.about-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #e5e5e5}.about-modal-title{margin:0;font-size:18px;font-weight:600}.about-close-btn{border:0;background:transparent;font-size:24px;line-height:1;color:#666}.about-modal-body{padding:20px}.about-logo{max-height:80px;object-fit:contain}.about-product-name{font-size:20px;font-weight:600;margin-bottom:8px}.about-version-text,.about-copyright{color:#555}.about-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 20px 20px}.about-action-btn{border:1px solid #d0d0d0;border-radius:6px;background:#fff;color:#333;padding:8px 12px}\n"] }]
826
920
  }], propDecorators: { baseUrl: [{
827
921
  type: Input
922
+ }], systemModule: [{
923
+ type: Input
828
924
  }], sidebarCollapsed: [{
829
925
  type: Input
830
926
  }], homeUrl: [{
@@ -841,8 +937,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
841
937
  type: Input
842
938
  }], searchItems: [{
843
939
  type: Input
844
- }], userPanel: [{
845
- type: Input
846
940
  }], isSsoLogin: [{
847
941
  type: Input
848
942
  }], useAlternateNames: [{
@@ -899,7 +993,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
899
993
  type: Output
900
994
  }], searchItemNavigate: [{
901
995
  type: Output
902
- }], propertyChange: [{
996
+ }], propertyChanged: [{
903
997
  type: Output
904
998
  }], signOutClick: [{
905
999
  type: Output