@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.
- package/README.md +26 -23
- package/fesm2022/skysoftware-co-bayan-core-widgets-ui.mjs +155 -61
- package/fesm2022/skysoftware-co-bayan-core-widgets-ui.mjs.map +1 -1
- package/lib/top-menu-widget/components/global-search-widget/global-search-widget.component.d.ts +5 -3
- package/lib/top-menu-widget/components/global-search-widget/global-search-widget.component.d.ts.map +1 -1
- package/lib/top-menu-widget/components/item-widget/item-widget.component.d.ts +5 -3
- package/lib/top-menu-widget/components/item-widget/item-widget.component.d.ts.map +1 -1
- package/lib/top-menu-widget/components/settings-widget/settings-widget.component.d.ts +5 -3
- package/lib/top-menu-widget/components/settings-widget/settings-widget.component.d.ts.map +1 -1
- package/lib/top-menu-widget/components/user-panel-widget/user-panel-widget.component.d.ts +28 -14
- package/lib/top-menu-widget/components/user-panel-widget/user-panel-widget.component.d.ts.map +1 -1
- package/lib/top-menu-widget/top-menu-widget.component.d.ts +10 -7
- package/lib/top-menu-widget/top-menu-widget.component.d.ts.map +1 -1
- package/lib/top-menu-widget/top-menu-widget.models.d.ts +0 -13
- package/lib/top-menu-widget/top-menu-widget.models.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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: {
|
|
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
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
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
|
-
|
|
664
|
+
userPanel = signal(null);
|
|
620
665
|
badge = computed(() => ({
|
|
621
|
-
EmployeePhotoKey: this.
|
|
666
|
+
EmployeePhotoKey: this.userPanel()?.PhotoPath ?? null,
|
|
622
667
|
EmployeePhotoFailed: false,
|
|
623
|
-
EmployeeNameInitials: this.
|
|
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.
|
|
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.
|
|
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",
|
|
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\">▼</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\">►</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
|
|
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\">▼</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\">►</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
|
-
}],
|
|
738
|
+
}], wrapperClass: [{
|
|
676
739
|
type: Input
|
|
677
|
-
}],
|
|
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
|
-
}],
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
795
|
-
|
|
796
|
-
|
|
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
|
-
}],
|
|
996
|
+
}], propertyChanged: [{
|
|
903
997
|
type: Output
|
|
904
998
|
}], signOutClick: [{
|
|
905
999
|
type: Output
|