@eo-sdk/client 7.16.6 → 7.16.7

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.
@@ -34,6 +34,8 @@ export declare class SettingsComponent extends UnsubscribeOnDestroy implements A
34
34
  LockSettings: typeof LockSettings;
35
35
  agentLockSettings: LockSettings;
36
36
  useAgentControl: FormControl;
37
+ showAgentConfig: boolean;
38
+ defaultLockSetting: boolean;
37
39
  cache: {
38
40
  system: boolean;
39
41
  history: boolean;
@@ -1,7 +1,7 @@
1
1
  import { OnInit, ChangeDetectorRef } from '@angular/core';
2
2
  import { AreaState, LayoutService } from '../../../../eo-framework-core/layout/layout.service';
3
3
  import { UnsubscribeOnDestroy } from '../../../util/unsubscribe/unsubscribe.component';
4
- import { PendingChangesService } from '../../../../eo-framework-core';
4
+ import { PendingChangesService } from '../../../../eo-framework-core/pending-changes/pending-changes.service';
5
5
  export declare class AppLayoutComponent extends UnsubscribeOnDestroy implements OnInit {
6
6
  private cd;
7
7
  private layoutService;
@@ -1,8 +1,20 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
- import { AppCacheService, BackendService, DmsObject, Logger, NotificationsService, SystemService, UserService, TranslateService } from '@eo-sdk/core';
2
+ import { AppCacheService, BackendService, DmsObject, Logger, NotificationsService, SystemService, TranslateService, UserService } from '@eo-sdk/core';
3
3
  import { Observable } from 'rxjs';
4
4
  import { TreeNode } from '../../eo-framework/tree/tree.component';
5
+ import { LockSettings } from './../../eo-client/settings/agent-lock-settings.enum';
5
6
  import { CustomEmail } from './agent.interface';
7
+ export declare enum agentConfigKeys {
8
+ AUTOCONNECT = "autoconnect",
9
+ LOCKSETTINGS = "locksettings"
10
+ }
11
+ export interface ExtendedConfig {
12
+ agent: {
13
+ [agentConfigKeys.AUTOCONNECT]?: boolean;
14
+ [agentConfigKeys.LOCKSETTINGS]?: LockSettings;
15
+ };
16
+ }
17
+ export declare type AgentConnectionConfig = ExtendedConfig['agent'];
6
18
  export declare class AgentService {
7
19
  private logger;
8
20
  private http;
@@ -21,8 +33,11 @@ export declare class AgentService {
21
33
  private _isConnected;
22
34
  private isConnectedSource;
23
35
  isConnected$: Observable<boolean>;
36
+ private agentConfig;
37
+ agentConfig$: Observable<AgentConnectionConfig>;
24
38
  constructor(logger: Logger, http: HttpClient, systemService: SystemService, backendService: BackendService, userService: UserService, translate: TranslateService, notifications: NotificationsService, appCacheService: AppCacheService);
25
39
  private getAgentConnectionStatus;
40
+ getAgentConfig(): Observable<AgentConnectionConfig>;
26
41
  set isConnected(isConnected: boolean);
27
42
  get isConnected(): boolean;
28
43
  setAgentStatus(connectagent: any): Observable<boolean>;
@@ -1,5 +1,6 @@
1
1
  {
2
- "agent":{
3
- "autoconnect":false
2
+ "agent": {
3
+ "autoconnect": true,
4
+ "locksettings": "never"
4
5
  }
5
6
  }
@@ -756,6 +756,10 @@
756
756
  { type: i1.SystemService }
757
757
  ]; };
758
758
 
759
+ (function (agentConfigKeys) {
760
+ agentConfigKeys["AUTOCONNECT"] = "autoconnect";
761
+ agentConfigKeys["LOCKSETTINGS"] = "locksettings";
762
+ })(exports.agentConfigKeys || (exports.agentConfigKeys = {}));
759
763
  var AgentService = /** @class */ (function () {
760
764
  function AgentService(logger, http, systemService, backendService, userService, translate, notifications, appCacheService) {
761
765
  this.logger = logger;
@@ -775,18 +779,22 @@
775
779
  this._isConnected = false;
776
780
  this.isConnectedSource = new rxjs.ReplaySubject(1);
777
781
  this.isConnected$ = this.isConnectedSource.asObservable();
782
+ this.agentConfig = new rxjs.BehaviorSubject(null);
783
+ this.agentConfig$ = this.agentConfig.asObservable();
778
784
  this.getAgentConnectionStatus();
779
785
  }
780
786
  AgentService.prototype.getAgentConnectionStatus = function () {
781
787
  var _this = this;
782
- var agentStorage = this.appCacheService.getItem('eo.agent.connected');
783
- var agentConfig = this.http.get('assets/_default/config/extend.json').pipe(operators.map(function (config) { return config.agent; }));
784
- rxjs.forkJoin(agentStorage, agentConfig)
788
+ rxjs.forkJoin([this.appCacheService.getItem('eo.agent.connected'), this.getAgentConfig()])
785
789
  .pipe(operators.tap(function (_a) {
786
790
  var _b = __read(_a, 2), storage = _b[0], config = _b[1];
787
- return _this.isConnected = storage !== null ? storage : (config && config.hasOwnProperty('autoconnect') ? config.autoconnect : null);
791
+ return _this.isConnected = (config && config.hasOwnProperty(exports.agentConfigKeys.AUTOCONNECT) ? config.autoconnect : storage !== null ? storage : null);
788
792
  })).subscribe();
789
793
  };
794
+ AgentService.prototype.getAgentConfig = function () {
795
+ var _this = this;
796
+ return this.http.get('assets/_default/config/extend.json').pipe(operators.catchError(function () { return rxjs.of(null); }), operators.tap(function (config) { return _this.agentConfig.next(Object.assign({}, config === null || config === void 0 ? void 0 : config.agent)); }), operators.map(function (config) { return config === null || config === void 0 ? void 0 : config.agent; }));
797
+ };
790
798
  Object.defineProperty(AgentService.prototype, "isConnected", {
791
799
  get: function () {
792
800
  return this._isConnected;
@@ -19298,7 +19306,7 @@
19298
19306
  { type: i0.Component, args: [{
19299
19307
  selector: 'eo-tab-view-nav',
19300
19308
  template: "<div cdkDropList cdkDropListOrientation=\"horizontal\" [cdkDropListData]=\"tabs\" (cdkDropListDropped)=\"onHeaderDrop.emit($event)\">\r\n <ng-template ngFor let-tab [ngForOf]=\"tabs\">\r\n <li cdkDrag [cdkDragData]=\"tab\" [cdkDragDisabled]=\"!dndEnabled\" [class]=\"getDefaultHeaderClass(tab)\" [ngStyle]=\"tab.headerStyle\" role=\"presentation\"\r\n [ngClass]=\"{'ui-tabview-selected ui-state-active': tab.selected, 'ui-state-disabled': tab.disabled}\"\r\n (click)=\"clickTab($event,tab)\" *ngIf=\"!tab.closed\">\r\n <a [attr.id]=\"tab.id + '-label'\" href=\"#\" role=\"tab\" [attr.aria-selected]=\"tab.selected\" [attr.aria-controls]=\"tab.id\">\r\n <span class=\"ui-tabview-left-icon fa\" [ngClass]=\"tab.leftIcon\" *ngIf=\"tab.leftIcon\"></span>\r\n <span class=\"ui-tabview-title\">{{tab.header}}</span>\r\n <span class=\"ui-tabview-right-icon fa\" [ngClass]=\"tab.rightIcon\" *ngIf=\"tab.rightIcon\"></span>\r\n </a>\r\n <span *ngIf=\"tab.closable\" class=\"ui-tabview-close pi pi-times\" (click)=\"clickClose($event,tab)\"></span>\r\n </li>\r\n </ng-template>\r\n</div>",
19301
- styles: [".cdk-drop-list{display:flex;flex-wrap:nowrap;margin-right:30px;overflow:auto hidden;width:100%}.cdk-drop-list::-webkit-scrollbar{height:0}.cdk-drag{cursor:pointer}.cdk-drag a{pointer-events:none}.cdk-drag-preview{border:none;list-style:none;opacity:.3}.cdk-drag-placeholder{border:none;list-style:none;opacity:.7}.cdk-drop-list-dragging .cdk-drag{cursor:move;transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}"]
19309
+ styles: [".cdk-drop-list{display:flex;flex-wrap:wrap;margin-right:30px;overflow:auto hidden;width:100%}.cdk-drop-list::-webkit-scrollbar{height:0}.cdk-drag{cursor:pointer}.cdk-drag a{pointer-events:none}.cdk-drag-preview{border:none;list-style:none;opacity:.3}.cdk-drag-placeholder{border:none;list-style:none;opacity:.7}.cdk-drop-list-dragging .cdk-drag{cursor:move;transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}"]
19302
19310
  },] }
19303
19311
  ];
19304
19312
  TabViewNavComponent.propDecorators = {
@@ -23732,6 +23740,8 @@
23732
23740
  _this.storageService = storageService;
23733
23741
  _this.translate = translate;
23734
23742
  _this.LockSettings = exports.LockSettings;
23743
+ _this.showAgentConfig = true;
23744
+ _this.defaultLockSetting = false;
23735
23745
  _this.cache = {
23736
23746
  system: true,
23737
23747
  history: true,
@@ -23743,8 +23753,17 @@
23743
23753
  _this.getSchemaLocales();
23744
23754
  _this.getUserData();
23745
23755
  _this.agentLockSettings = userService.getCurrentUser().userSettings.alwayslock;
23746
- _this.agentService.isConnected$.pipe(operators.take(1)).subscribe(function (isConnected) {
23756
+ _this.agentService.isConnected$.pipe(operators.take(1), operators.withLatestFrom(_this.agentService.agentConfig$)).subscribe(function (_a) {
23757
+ var _b = __read(_a, 2), isConnected = _b[0], config = _b[1];
23747
23758
  _this.useAgentControl = _this.fb.control(isConnected);
23759
+ if (config.hasOwnProperty(exports.agentConfigKeys.AUTOCONNECT)) {
23760
+ _this.showAgentConfig = config[exports.agentConfigKeys.AUTOCONNECT];
23761
+ _this.useAgentControl.disable();
23762
+ }
23763
+ if (config.hasOwnProperty(exports.agentConfigKeys.LOCKSETTINGS) && Object.values(exports.LockSettings).includes(config[exports.agentConfigKeys.LOCKSETTINGS])) {
23764
+ _this.defaultLockSetting = true;
23765
+ _this.agentLockSettings = config[exports.agentConfigKeys.LOCKSETTINGS];
23766
+ }
23748
23767
  _this.useAgentControl.valueChanges.pipe(operators.takeUntil(_this.componentDestroyed$)).subscribe(function () { return _this.agentService.isConnected = _this.useAgentControl.value; });
23749
23768
  });
23750
23769
  return _this;
@@ -23848,8 +23867,8 @@
23848
23867
  SettingsComponent.decorators = [
23849
23868
  { type: i0.Component, args: [{
23850
23869
  selector: 'eo-settings',
23851
- template: "<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\r\n\r\n <div class=\"header\">\r\n\r\n <div #header class=\"bg\"></div>\r\n <div class=\"fill\">\r\n <div class=\"meta username\">{{user.name}}</div>\r\n <h1>{{user.firstname}} {{user.lastname}}</h1>\r\n <div class=\"meta email\">{{user.email}}</div>\r\n\r\n <div class=\"presence\" *ngIf=\"capabilities.inbox\">\r\n <button class=\"toggle dark present\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\" translate>eo.state.settings.presence.present</button>\r\n <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" [ngClass]=\"{active: !user.present}\" translate>eo.state.settings.presence.absent</button>\r\n </div>\r\n </div>\r\n <eo-user-avatar class=\"userImage\"></eo-user-avatar>\r\n\r\n </div>\r\n\r\n <div class=\"body\">\r\n\r\n <div class=\"body-wrap\">\r\n\r\n <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\r\n <h3 translate>eo.state.settings.deputies</h3>\r\n\r\n <!-- deputies -->\r\n <div class=\"entry\">\r\n <div class=\"label\" translate>eo.state.settings.deputies.label</div>\r\n <div class=\"values\">\r\n <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\r\n <eo-organization name=\"deputies\"\r\n [dataMeta]=\"deputies.dataMeta\"\r\n [filterObject]=\"{type: 'USER'}\"\r\n [exceptions]=\"[user.name]\"\r\n [multiselect]=\"true\"\r\n [(ngModel)]=\"deputies.data\"\r\n ></eo-organization>\r\n <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\r\n <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.state.settings.deputies.cancel</button>\r\n <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n\r\n <!-- substitute of -->\r\n <div class=\"entry substitute\">\r\n <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\r\n <div class=\"values\">\r\n <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\r\n <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\" [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\r\n <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\r\n <span>{{sub.title}} ({{sub.name}})</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- password -->\r\n <section *ngIf=\"!isCloud && !isSSO || !isCloud && isSSO\" class=\"section section-password\">\r\n <div class=\"entry\">\r\n <div class=\"label\" translate>eo.password.reset</div>\r\n <div class=\"values\">\r\n <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\" [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\r\n\r\n <eo-change-password-form (onFormSumbit)=\"simpleAcc.onTabClose()\"></eo-change-password-form>\r\n </eo-simple-accordion>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <!-- language -->\r\n <div class=\"section section-lang\">\r\n <h3 translate>eo.state.settings.language</h3>\r\n <div class=\"entry lang-app\">\r\n <div class=\"label\" translate>eo.state.settings.language.client</div>\r\n <div class=\"values\">\r\n <button class=\"toggle\" (click)=\"changeClientLocale(locale.iso)\"\r\n [ngClass]=\"{active: translate.currentLang === locale.iso}\"\r\n *ngFor=\"let locale of clientLocales\">{{locale.label}}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"entry lang-def\">\r\n <div class=\"label\" translate>eo.state.settings.language.schema</div>\r\n <div class=\"values\">\r\n <button class=\"toggle\" (click)=\"changeSchemaLocale(locale.code)\"\r\n [ngClass]=\"{active: activeSchema === locale.code}\"\r\n *ngFor=\"let locale of schemaLocales\">{{locale.displayname}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- permissions -->\r\n <div class=\"section section-perm\">\r\n <h3 translate>eo.state.settings.permission</h3>\r\n <div class=\"entry perm-roles\">\r\n <div class=\"label\" translate>eo.state.settings.roles</div>\r\n <div class=\"values roles\">\r\n <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\r\n <eo-permissions [roles]=\"user.roles\"></eo-permissions>\r\n </eo-simple-accordion>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- agent -->\r\n <div class=\"section section-others\" *ngIf=\"!isCloud\">\r\n <h3 translate>eo.state.settings.others</h3>\r\n\r\n <div class=\"entry\">\r\n <div class=\"label\" translate>eo.state.settings.agent</div>\r\n <div class=\"values\">\r\n <div class=\"use-agent\">\r\n <eo-checkbox [formControl]=\"useAgentControl\" *ngIf=\"useAgentControl\"></eo-checkbox>\r\n <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\r\n <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\r\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\r\n </a> -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\r\n <div class=\"label\" translate>eo.state.settings.lock</div>\r\n <div class=\"values\">\r\n <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\r\n [ngClass]=\"{active: agentLockSettings === LockSettings.always}\"\r\n translate>eo.state.settings.lock.enable</button>\r\n <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\r\n [ngClass]=\"{active: agentLockSettings === LockSettings.never}\"\r\n translate>eo.state.settings.lock.disable</button>\r\n <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\r\n [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\"\r\n translate>eo.state.settings.lock.ask</button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"entry\">\r\n <div class=\"label\" translate>eo.state.settings.cache</div>\r\n <div class=\"values\">\r\n <div class=\"flex-row\">\r\n <button translate (click)=\"clearCache()\">eo.state.settings.cache.clear</button>\r\n <div class=\"cache\">\r\n <eo-form-input class=\"checkbox\" [skipToggle]=\"true\" [label]=\"'eo.state.settings.config.cache.system' | translate\">\r\n <eo-checkbox [(ngModel)]=\"cache.system\" [ngModelOptions]=\"{ standalone: true }\"></eo-checkbox>\r\n </eo-form-input>\r\n <eo-form-input class=\"checkbox\" [skipToggle]=\"true\" [label]=\"'eo.state.settings.config.cache.history' | translate\">\r\n <eo-checkbox [(ngModel)]=\"cache.history\" [ngModelOptions]=\"{ standalone: true }\"></eo-checkbox>\r\n </eo-form-input>\r\n <eo-form-input class=\"checkbox\" [skipToggle]=\"true\" [label]=\"'eo.state.settings.config.cache.layout' | translate\">\r\n <eo-checkbox [(ngModel)]=\"cache.layout\" [ngModelOptions]=\"{ standalone: true }\"></eo-checkbox>\r\n </eo-form-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n",
23852
- styles: [":host{bottom:0;justify-content:center;left:0;position:absolute;right:0;top:0}:host,:host .cache{display:flex;flex-flow:row}:host .cache{margin:0 var(--app-pane-padding)}.eo-settings{background:var(--color-white);box-shadow:0 2px 5px 0 rgba(0,0,0,.2);box-sizing:border-box;display:flex;flex-flow:column;margin:var(--app-pane-padding);width:800px}@media (max-width:832px){.eo-settings{margin:0;min-width:inherit;width:100%}}.eo-settings .header{flex:1 1;max-height:300px;min-height:200px;position:relative}@media (max-width:480px){.eo-settings .header{min-height:210px}}.eo-settings .header h1{font-size:var(--font-display);font-weight:var(--font-weight-light);line-height:1em;margin:0;padding:0}.eo-settings .header .meta{margin:calc(var(--app-pane-padding)/2) 0}.eo-settings .header .presence{margin-top:calc(var(--app-pane-padding)*2)}.eo-settings .header .bg{background-position:50%;background-size:cover;bottom:0;filter:grayscale(1);left:0;position:absolute;right:0;top:0}.eo-settings .header .fill{background:rgba(var(--color-primary-rgb),.85);bottom:0;color:var(--color-white);left:0;padding:var(--app-pane-padding);position:absolute;right:0;top:0}.eo-settings .header .userImage{background-position:50%;background-size:cover;border:4px solid var(--color-white);bottom:calc(var(--app-pane-padding)*-1);box-shadow:0 2px 5px 0 rgba(var(--color-black-rgb),.26);height:150px;position:absolute;right:var(--app-pane-padding);width:150px;z-index:1}@media (max-width:480px){.eo-settings .header .userImage{height:105px;width:105px}}.eo-settings .body{flex:1 1 auto;position:relative}.eo-settings .body .body-wrap{bottom:0;box-sizing:border-box;left:0;overflow-y:auto;padding:var(--app-pane-padding);position:absolute;right:0;top:0}.eo-settings .body .section{margin-top:var(--app-pane-padding)}.eo-settings .body .section.section-deputies form{border-radius:2px}.eo-settings .body .section.section-deputies form .actions{display:flex;justify-content:flex-end;padding-top:calc(var(--app-pane-padding)/4)}.eo-settings .body .section.section-deputies form .actions button{border-radius:2px;padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)}.eo-settings .body .section.section-deputies form.dirty{background-color:rgba(var(--color-black-rgb),.06);padding:2px}.eo-settings .body .section.section-deputies .entry.substitute .values{display:flex;flex-flow:row wrap}.eo-settings .body .section.section-deputies .entry.substitute .values .chip{align-items:center;display:flex;font-size:.9em;padding:2px 4px}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute{border:0;border-radius:4px;color:var(--color-white);height:calc(var(--app-pane-padding)*0.6);width:calc(var(--app-pane-padding)*0.75)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--present{background-color:var(--color-success)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--away{background-color:var(--color-error)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip>span{margin:0 calc(var(--app-pane-padding)/2)}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-default{background-color:var(--color-white);border-color:rgba(var(--color-black-rgb),.1);border-radius:2px;min-height:27px;padding:0 0 2px 2px}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-disabled{border-color:transparent;opacity:1}.eo-settings .body .section p{line-height:1.7em}.eo-settings .body .section h3{color:var(--text-color-caption);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);margin:0;padding:0 0 0 150px}@media (max-width:480px){.eo-settings .body .section h3{padding:0}}.eo-settings .body .section .entry{display:flex;flex-flow:row nowrap;padding:var(--app-pane-padding) 0 0 0}.eo-settings .body .section .entry.lock-settings{height:0;opacity:0;overflow:hidden;transition:all .5s ease-in-out}.eo-settings .body .section .entry.lock-settings--show{height:100%;opacity:1}@media (max-width:480px){.eo-settings .body .section .entry{flex-flow:column}}.eo-settings .body .section .entry .label{color:var(--text-color-caption);flex:0 0 150px}@media (max-width:480px){.eo-settings .body .section .entry .label{flex:0 0 auto;margin-bottom:calc(var(--app-pane-padding)/2)}}.eo-settings .body .section .entry .values{flex:1 1 auto}.eo-settings .body .section .entry .values button{cursor:pointer;margin:0 4px 4px 0}.eo-settings .body .section .entry .values button.active{cursor:default}.eo-settings .body .section .entry .use-agent{align-items:center;display:flex}.eo-settings .body .section .entry .use-agent .use-agent-label{color:var(--text-color-caption);margin:0 calc(var(--app-pane-padding)/2)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon{border-radius:50%;box-sizing:border-box;color:var(--text-color-caption);margin:0;padding:3px}.eo-settings .body .section .entry .use-agent eo-icon.info-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body .section .values.roles{align-items:flex-start;display:flex;flex-flow:column}.eo-settings .body .section .values.roles .role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding)/2);word-break:break-all}.eo-settings .body .section .values.roles .role eo-icon{color:var(--text-color-hint);height:18px;width:18px}.eo-settings .body .section .values.roles .role>div{padding:0 calc(var(--app-pane-padding)/2)}.eo-settings .body .section .values.roles .role>div .description{color:var(--text-color-caption);font-size:var(--font-caption)}.eo-settings .body .toggle-btn{-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.1);border-radius:2px;color:var(--text-color-caption);cursor:pointer;display:inline-block;margin-right:3px;padding:2px 5px;text-decoration:none}.eo-settings.rtl .header .userImage{left:var(--app-pane-padding);right:auto}.eo-settings.rtl .body .section h3{padding:0 150px 0 0}"]
23870
+ template: "<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\r\n\r\n <div class=\"header\">\r\n\r\n <div #header class=\"bg\"></div>\r\n <div class=\"fill\">\r\n <div class=\"meta username\">{{user.name}}</div>\r\n <h1>{{user.firstname}} {{user.lastname}}</h1>\r\n <div class=\"meta email\">{{user.email}}</div>\r\n\r\n <div class=\"presence\" *ngIf=\"capabilities.inbox\">\r\n <button class=\"toggle dark present\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\"\r\n translate>eo.state.settings.presence.present</button>\r\n <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" [ngClass]=\"{active: !user.present}\"\r\n translate>eo.state.settings.presence.absent</button>\r\n </div>\r\n </div>\r\n <eo-user-avatar class=\"userImage\"></eo-user-avatar>\r\n\r\n </div>\r\n\r\n <div class=\"body\">\r\n\r\n <div class=\"body-wrap\">\r\n\r\n <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\r\n <h3 translate>eo.state.settings.deputies</h3>\r\n\r\n <!-- deputies -->\r\n <div class=\"entry\">\r\n <div class=\"label\" translate>eo.state.settings.deputies.label</div>\r\n <div class=\"values\">\r\n <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\r\n <eo-organization name=\"deputies\" [dataMeta]=\"deputies.dataMeta\" [filterObject]=\"{type: 'USER'}\"\r\n [exceptions]=\"[user.name]\" [multiselect]=\"true\" [(ngModel)]=\"deputies.data\"></eo-organization>\r\n <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\r\n <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.state.settings.deputies.cancel</button>\r\n <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n\r\n <!-- substitute of -->\r\n <div class=\"entry substitute\">\r\n <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\r\n <div class=\"values\">\r\n <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\r\n <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\"\r\n [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\r\n <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\"\r\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\r\n <span>{{sub.title}} ({{sub.name}})</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- password -->\r\n <section *ngIf=\"!isCloud && !isSSO || !isCloud && isSSO\" class=\"section section-password\">\r\n <div class=\"entry\">\r\n <div class=\"label\" translate>eo.password.reset</div>\r\n <div class=\"values\">\r\n <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\"\r\n [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\r\n\r\n <eo-change-password-form (onFormSumbit)=\"simpleAcc.onTabClose()\"></eo-change-password-form>\r\n </eo-simple-accordion>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <!-- language -->\r\n <div class=\"section section-lang\">\r\n <h3 translate>eo.state.settings.language</h3>\r\n <div class=\"entry lang-app\">\r\n <div class=\"label\" translate>eo.state.settings.language.client</div>\r\n <div class=\"values\">\r\n <button class=\"toggle\" (click)=\"changeClientLocale(locale.iso)\"\r\n [ngClass]=\"{active: translate.currentLang === locale.iso}\"\r\n *ngFor=\"let locale of clientLocales\">{{locale.label}}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"entry lang-def\">\r\n <div class=\"label\" translate>eo.state.settings.language.schema</div>\r\n <div class=\"values\">\r\n <button class=\"toggle\" (click)=\"changeSchemaLocale(locale.code)\"\r\n [ngClass]=\"{active: activeSchema === locale.code}\"\r\n *ngFor=\"let locale of schemaLocales\">{{locale.displayname}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- permissions -->\r\n <div class=\"section section-perm\">\r\n <h3 translate>eo.state.settings.permission</h3>\r\n <div class=\"entry perm-roles\">\r\n <div class=\"label\" translate>eo.state.settings.roles</div>\r\n <div class=\"values roles\">\r\n <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\r\n <eo-permissions [roles]=\"user.roles\"></eo-permissions>\r\n </eo-simple-accordion>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- agent -->\r\n <div class=\"section section-others\" *ngIf=\"!isCloud\">\r\n <h3 translate>eo.state.settings.others</h3>\r\n <ng-container *ngIf=\"showAgentConfig\">\r\n <div class=\"entry\">\r\n <div class=\"label\" translate>eo.state.settings.agent</div>\r\n <div class=\"values\">\r\n <div class=\"use-agent\">\r\n <eo-checkbox [formControl]=\"useAgentControl\" [readonly]=\"useAgentControl.disabled\"\r\n *ngIf=\"useAgentControl\"></eo-checkbox>\r\n <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\r\n <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\r\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\r\n </a> -->\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\r\n <div class=\"label\" translate>eo.state.settings.lock</div>\r\n <div class=\"values\">\r\n <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\r\n [ngClass]=\"{active: agentLockSettings === LockSettings.always}\" [disabled]=\"defaultLockSetting\"\r\n translate>eo.state.settings.lock.enable</button>\r\n <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\r\n [ngClass]=\"{active: agentLockSettings === LockSettings.never}\" [disabled]=\"defaultLockSetting\"\r\n translate>eo.state.settings.lock.disable</button>\r\n <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\r\n [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\" [disabled]=\"defaultLockSetting\"\r\n translate>eo.state.settings.lock.ask</button>\r\n </div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n\r\n <div class=\"entry\">\r\n <div class=\"label\" translate>eo.state.settings.cache</div>\r\n <div class=\"values\">\r\n <div class=\"flex-row\">\r\n <button translate (click)=\"clearCache()\">eo.state.settings.cache.clear</button>\r\n <div class=\"cache\">\r\n <eo-form-input class=\"checkbox\" [skipToggle]=\"true\"\r\n [label]=\"'eo.state.settings.config.cache.system' | translate\">\r\n <eo-checkbox [(ngModel)]=\"cache.system\" [ngModelOptions]=\"{ standalone: true }\"></eo-checkbox>\r\n </eo-form-input>\r\n <eo-form-input class=\"checkbox\" [skipToggle]=\"true\"\r\n [label]=\"'eo.state.settings.config.cache.history' | translate\">\r\n <eo-checkbox [(ngModel)]=\"cache.history\" [ngModelOptions]=\"{ standalone: true }\"></eo-checkbox>\r\n </eo-form-input>\r\n <eo-form-input class=\"checkbox\" [skipToggle]=\"true\"\r\n [label]=\"'eo.state.settings.config.cache.layout' | translate\">\r\n <eo-checkbox [(ngModel)]=\"cache.layout\" [ngModelOptions]=\"{ standalone: true }\"></eo-checkbox>\r\n </eo-form-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>",
23871
+ styles: [":host{bottom:0;justify-content:center;left:0;position:absolute;right:0;top:0}:host,:host .cache{display:flex;flex-flow:row}:host .cache{margin:0 var(--app-pane-padding)}.eo-settings{background:var(--color-white);box-shadow:0 2px 5px 0 rgba(0,0,0,.2);box-sizing:border-box;display:flex;flex-flow:column;margin:var(--app-pane-padding);width:800px}@media (max-width:832px){.eo-settings{margin:0;min-width:inherit;width:100%}}.eo-settings .header{flex:1 1;max-height:300px;min-height:200px;position:relative}@media (max-width:480px){.eo-settings .header{min-height:210px}}.eo-settings .header h1{font-size:var(--font-display);font-weight:var(--font-weight-light);line-height:1em;margin:0;padding:0}.eo-settings .header .meta{margin:calc(var(--app-pane-padding)/2) 0}.eo-settings .header .presence{margin-top:calc(var(--app-pane-padding)*2)}.eo-settings .header .bg{background-position:50%;background-size:cover;bottom:0;filter:grayscale(1);left:0;position:absolute;right:0;top:0}.eo-settings .header .fill{background:rgba(var(--color-primary-rgb),.85);bottom:0;color:var(--color-white);left:0;padding:var(--app-pane-padding);position:absolute;right:0;top:0}.eo-settings .header .userImage{background-position:50%;background-size:cover;border:4px solid var(--color-white);bottom:calc(var(--app-pane-padding)*-1);box-shadow:0 2px 5px 0 rgba(var(--color-black-rgb),.26);height:150px;position:absolute;right:var(--app-pane-padding);width:150px;z-index:1}@media (max-width:480px){.eo-settings .header .userImage{height:105px;width:105px}}.eo-settings .body{flex:1 1 auto;position:relative}.eo-settings .body .body-wrap{bottom:0;box-sizing:border-box;left:0;overflow-y:auto;padding:var(--app-pane-padding);position:absolute;right:0;top:0}.eo-settings .body .section{margin-top:var(--app-pane-padding)}.eo-settings .body .section.section-deputies form{border-radius:2px}.eo-settings .body .section.section-deputies form .actions{display:flex;justify-content:flex-end;padding-top:calc(var(--app-pane-padding)/4)}.eo-settings .body .section.section-deputies form .actions button{border-radius:2px;padding:calc(var(--app-pane-padding)/4) calc(var(--app-pane-padding)/2)}.eo-settings .body .section.section-deputies form.dirty{background-color:rgba(var(--color-black-rgb),.06);padding:2px}.eo-settings .body .section.section-deputies .entry.substitute .values{display:flex;flex-flow:row wrap}.eo-settings .body .section.section-deputies .entry.substitute .values .chip{align-items:center;display:flex;font-size:.9em;padding:2px 4px}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute{border:0;border-radius:4px;color:var(--color-white);height:calc(var(--app-pane-padding)*0.6);width:calc(var(--app-pane-padding)*0.75)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--present{background-color:var(--color-success)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--away{background-color:var(--color-error)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip>span{margin:0 calc(var(--app-pane-padding)/2)}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-default{background-color:var(--color-white);border-color:rgba(var(--color-black-rgb),.1);border-radius:2px;min-height:27px;padding:0 0 2px 2px}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-disabled{border-color:transparent;opacity:1}.eo-settings .body .section p{line-height:1.7em}.eo-settings .body .section h3{color:var(--text-color-caption);font-size:var(--font-subhead);font-weight:var(--font-weight-normal);margin:0;padding:0 0 0 150px}@media (max-width:480px){.eo-settings .body .section h3{padding:0}}.eo-settings .body .section .entry{display:flex;flex-flow:row nowrap;padding:var(--app-pane-padding) 0 0 0}.eo-settings .body .section .entry.lock-settings{height:0;opacity:0;overflow:hidden;transition:all .5s ease-in-out}.eo-settings .body .section .entry.lock-settings--show{height:100%;opacity:1}@media (max-width:480px){.eo-settings .body .section .entry{flex-flow:column}}.eo-settings .body .section .entry .label{color:var(--text-color-caption);flex:0 0 150px}@media (max-width:480px){.eo-settings .body .section .entry .label{flex:0 0 auto;margin-bottom:calc(var(--app-pane-padding)/2)}}.eo-settings .body .section .entry .values{flex:1 1 auto}.eo-settings .body .section .entry .values button{cursor:pointer;margin:0 4px 4px 0}.eo-settings .body .section .entry .values button.active,.eo-settings .body .section .entry .values button.toggle:disabled{cursor:default}.eo-settings .body .section .entry .use-agent{align-items:center;display:flex}.eo-settings .body .section .entry .use-agent .use-agent-label{color:var(--text-color-caption);margin:0 calc(var(--app-pane-padding)/2)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon{border-radius:50%;box-sizing:border-box;color:var(--text-color-caption);margin:0;padding:3px}.eo-settings .body .section .entry .use-agent eo-icon.info-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body .section .values.roles{align-items:flex-start;display:flex;flex-flow:column}.eo-settings .body .section .values.roles .role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding)/2);word-break:break-all}.eo-settings .body .section .values.roles .role eo-icon{color:var(--text-color-hint);height:18px;width:18px}.eo-settings .body .section .values.roles .role>div{padding:0 calc(var(--app-pane-padding)/2)}.eo-settings .body .section .values.roles .role>div .description{color:var(--text-color-caption);font-size:var(--font-caption)}.eo-settings .body .toggle-btn{-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.1);border-radius:2px;color:var(--text-color-caption);cursor:pointer;display:inline-block;margin-right:3px;padding:2px 5px;text-decoration:none}.eo-settings.rtl .header .userImage{left:var(--app-pane-padding);right:auto}.eo-settings.rtl .body .section h3{padding:0 150px 0 0}"]
23853
23872
  },] }
23854
23873
  ];
23855
23874
  SettingsComponent.ctorParameters = function () { return [
@@ -24158,10 +24177,10 @@
24158
24177
  this.http = http;
24159
24178
  this.userService = userService;
24160
24179
  this.config = config;
24161
- this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "22.1.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "22.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/common", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/core", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/forms", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/router", "version": "11.2.0", "license": "MIT" }, { "name": "@eo-sdk/core", "version": "7.16.6", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "11.1.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "13.0.0", "license": "MIT" }, { "name": "@types/lodash", "version": "4.14.88", "license": "MIT" }, { "name": "core-js", "version": "2.5.7", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "keyboardevent-key-polyfill", "version": "1.1.0", "license": "CC0-1.0" }, { "name": "keycode-js", "version": "0.0.4", "license": "MIT" }, { "name": "mobile-drag-drop", "version": "2.2.0", "license": "MIT" }, { "name": "moment", "version": "2.22.2", "license": "MIT" }, { "name": "ngx-toastr", "version": "13.2.0", "license": "MIT" }, { "name": "primeicons", "version": "1.0.0-beta.6", "license": "MIT" }, { "name": "primeng", "version": "6.0.0-beta.1", "license": "MIT" }, { "name": "reflect-metadata", "version": "0.1.10", "license": "Apache-2.0" }, { "name": "rxjs", "version": "6.6.3", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.1.0", "license": "0BSD" }, { "name": "zone.js", "version": "0.10.3", "license": "MIT" }];
24180
+ this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "22.1.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "22.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/common", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/core", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/forms", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/router", "version": "11.2.0", "license": "MIT" }, { "name": "@eo-sdk/core", "version": "7.16.7", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "11.1.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "13.0.0", "license": "MIT" }, { "name": "@types/lodash", "version": "4.14.88", "license": "MIT" }, { "name": "core-js", "version": "2.5.7", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "keyboardevent-key-polyfill", "version": "1.1.0", "license": "CC0-1.0" }, { "name": "keycode-js", "version": "0.0.4", "license": "MIT" }, { "name": "mobile-drag-drop", "version": "2.2.0", "license": "MIT" }, { "name": "moment", "version": "2.22.2", "license": "MIT" }, { "name": "ngx-toastr", "version": "13.2.0", "license": "MIT" }, { "name": "primeicons", "version": "1.0.0-beta.6", "license": "MIT" }, { "name": "primeng", "version": "6.0.0-beta.1", "license": "MIT" }, { "name": "reflect-metadata", "version": "0.1.10", "license": "Apache-2.0" }, { "name": "rxjs", "version": "6.6.3", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.1.0", "license": "0BSD" }, { "name": "zone.js", "version": "0.10.3", "license": "MIT" }];
24162
24181
  this.ctrl = {
24163
24182
  productName: 'yuuvis® RAD client',
24164
- clientVersion: '7.16.6'
24183
+ clientVersion: '7.16.7'
24165
24184
  };
24166
24185
  this.licenses = {
24167
24186
  'MIT': {
@@ -26247,15 +26266,14 @@
26247
26266
  exports.ɵcf = UnlockActionComponent;
26248
26267
  exports.ɵcg = SimpleWorkflowActionComponent;
26249
26268
  exports.ɵch = PreventDoubleClickDirective;
26250
- exports.ɵci = PendingChangesService;
26251
- exports.ɵcj = EditIconComponent;
26252
- exports.ɵck = DuetimeInfoComponent;
26253
- exports.ɵcl = PrepareContentExistsInfoComponent;
26254
- exports.ɵcm = ObjectStateRoutingModule;
26255
- exports.ɵcn = InboxStateRoutingModule;
26256
- exports.ɵco = PrepareStateRoutingModule;
26257
- exports.ɵcp = EoClientRoutingModule;
26258
- exports.ɵcq = ProcessStateComponent;
26269
+ exports.ɵci = EditIconComponent;
26270
+ exports.ɵcj = DuetimeInfoComponent;
26271
+ exports.ɵck = PrepareContentExistsInfoComponent;
26272
+ exports.ɵcl = ObjectStateRoutingModule;
26273
+ exports.ɵcm = InboxStateRoutingModule;
26274
+ exports.ɵcn = PrepareStateRoutingModule;
26275
+ exports.ɵco = EoClientRoutingModule;
26276
+ exports.ɵcp = ProcessStateComponent;
26259
26277
  exports.ɵd = AppProcessComponent;
26260
26278
  exports.ɵe = PipesModule;
26261
26279
  exports.ɵf = QueryScopeSelectComponent;