@alfresco/aca-content 5.2.0 → 5.3.0-11955434723
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/esm2022/folder-rules/manage-rules/manage-rules.smart-component.mjs +13 -17
- package/esm2022/folder-rules/rule-details/actions/rule-action.ui-component.mjs +9 -12
- package/esm2022/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.mjs +8 -12
- package/esm2022/folder-rules/rule-details/rule-details.ui-component.mjs +8 -12
- package/esm2022/folder-rules/rule-list/rule-list/rule-list.ui-component.mjs +5 -7
- package/esm2022/folder-rules/rule-set-picker/rule-set-picker.smart-component.mjs +7 -10
- package/esm2022/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.mjs +8 -11
- package/esm2022/lib/components/common/toggle-shared/toggle-shared.component.mjs +6 -11
- package/esm2022/lib/components/context-menu/context-menu-outside-event.directive.mjs +7 -12
- package/esm2022/lib/components/context-menu/context-menu.component.mjs +2 -2
- package/esm2022/lib/components/details/details.component.mjs +4 -3
- package/esm2022/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.mjs +5 -10
- package/esm2022/lib/components/dl-custom-components/name-column/name-column.component.mjs +8 -12
- package/esm2022/lib/components/files/files.component.mjs +9 -8
- package/esm2022/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.mjs +12 -15
- package/esm2022/lib/components/info-drawer/metadata-tab/metadata-tab.component.mjs +12 -16
- package/esm2022/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.mjs +7 -10
- package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.mjs +6 -11
- package/esm2022/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.mjs +5 -8
- package/esm2022/lib/components/search/search-input/search-input.component.mjs +6 -9
- package/esm2022/lib/components/search/search-input-control/search-input-control.component.mjs +2 -8
- package/esm2022/lib/components/search/search-libraries-results/search-libraries-results.component.mjs +3 -3
- package/esm2022/lib/components/search/search-results/search-results.component.mjs +2 -3
- package/esm2022/lib/components/search/search-results-row/search-results-row.component.mjs +7 -11
- package/esm2022/lib/components/search/search-save/sidenav/save-search-sidenav.component.mjs +5 -10
- package/esm2022/lib/components/shared-link-view/shared-link-view.component.mjs +8 -11
- package/esm2022/lib/components/sidenav/components/sidenav-header.component.mjs +5 -10
- package/esm2022/lib/components/sidenav/directives/active-link.directive.mjs +6 -6
- package/esm2022/lib/components/sidenav/directives/expansion-panel.directive.mjs +7 -11
- package/esm2022/lib/components/sidenav/directives/menu-panel.directive.mjs +7 -11
- package/esm2022/lib/components/sidenav/sidenav.component.mjs +9 -13
- package/esm2022/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.mjs +6 -10
- package/esm2022/lib/components/upload-files-dialog/upload-files-dialog.component.mjs +4 -9
- package/esm2022/lib/components/view-profile/view-profile.component.mjs +4 -9
- package/esm2022/lib/directives/document-list.directive.mjs +8 -12
- package/esm2022/viewer/lib/components/preview/preview.component.mjs +9 -11
- package/esm2022/viewer/lib/components/viewer/viewer.component.mjs +15 -16
- package/fesm2022/alfresco-aca-content-folder-rules.mjs +27 -49
- package/fesm2022/alfresco-aca-content-folder-rules.mjs.map +1 -1
- package/fesm2022/alfresco-aca-content-viewer.mjs +16 -20
- package/fesm2022/alfresco-aca-content-viewer.mjs.map +1 -1
- package/fesm2022/alfresco-aca-content.mjs +73 -168
- package/fesm2022/alfresco-aca-content.mjs.map +1 -1
- package/folder-rules/manage-rules/manage-rules.smart-component.d.ts +3 -5
- package/folder-rules/rule-details/actions/rule-action.ui-component.d.ts +4 -5
- package/folder-rules/rule-details/conditions/rule-simple-condition.ui-component.d.ts +3 -4
- package/folder-rules/rule-details/rule-details.ui-component.d.ts +4 -5
- package/folder-rules/rule-list/rule-list/rule-list.ui-component.d.ts +3 -4
- package/folder-rules/rule-set-picker/rule-set-picker.smart-component.d.ts +3 -5
- package/lib/components/bulk-actions-dropdown/bulk-actions-dropdown.component.d.ts +3 -4
- package/lib/components/common/toggle-shared/toggle-shared.component.d.ts +4 -5
- package/lib/components/context-menu/context-menu-outside-event.directive.d.ts +3 -4
- package/lib/components/context-menu/context-menu.component.d.ts +1 -1
- package/lib/components/details/details.component.d.ts +1 -2
- package/lib/components/dl-custom-components/datatable-cell-badges/datatable-cell-badges.component.d.ts +3 -4
- package/lib/components/dl-custom-components/name-column/name-column.component.d.ts +3 -4
- package/lib/components/files/files.component.d.ts +1 -1
- package/lib/components/info-drawer/library-metadata-tab/library-metadata-form.component.d.ts +4 -6
- package/lib/components/info-drawer/metadata-tab/metadata-tab.component.d.ts +6 -7
- package/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.d.ts +3 -4
- package/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.d.ts +3 -4
- package/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.d.ts +2 -3
- package/lib/components/search/search-input/search-input.component.d.ts +1 -2
- package/lib/components/search/search-input-control/search-input-control.component.d.ts +2 -5
- package/lib/components/search/search-results/search-results.component.d.ts +0 -1
- package/lib/components/search/search-results-row/search-results-row.component.d.ts +3 -4
- package/lib/components/search/search-save/sidenav/save-search-sidenav.component.d.ts +3 -5
- package/lib/components/shared-link-view/shared-link-view.component.d.ts +4 -5
- package/lib/components/sidenav/components/sidenav-header.component.d.ts +3 -4
- package/lib/components/sidenav/directives/active-link.directive.d.ts +1 -1
- package/lib/components/sidenav/directives/expansion-panel.directive.d.ts +3 -4
- package/lib/components/sidenav/directives/menu-panel.directive.d.ts +3 -4
- package/lib/components/sidenav/sidenav.component.d.ts +3 -4
- package/lib/components/toolbar/toggle-favorite-library/toggle-favorite-library.component.d.ts +3 -4
- package/lib/components/upload-files-dialog/upload-files-dialog.component.d.ts +1 -27
- package/lib/components/view-profile/view-profile.component.d.ts +2 -4
- package/lib/directives/document-list.directive.d.ts +3 -5
- package/package.json +5 -5
- package/viewer/lib/components/preview/preview.component.d.ts +3 -4
- package/viewer/lib/components/viewer/viewer.component.d.ts +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DomSanitizer, HammerModule } from '@angular/platform-browser';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, Injectable, SecurityContext, NgZone, RendererFactory2, Component, ViewEncapsulation, Inject, InjectionToken, Input, EventEmitter, Directive, Output, ViewChild, HostListener,
|
|
3
|
+
import { inject, Injectable, SecurityContext, NgZone, RendererFactory2, Component, ViewEncapsulation, Inject, InjectionToken, Input, EventEmitter, DestroyRef, Directive, Output, ViewChild, HostListener, Injector, NgModule, APP_INITIALIZER, Optional, ContentChildren, ChangeDetectionStrategy } from '@angular/core';
|
|
4
4
|
import * as i7 from '@angular/forms';
|
|
5
5
|
import { Validators, ReactiveFormsModule, UntypedFormGroup, UntypedFormControl, FormsModule, FormControl, FormGroup } from '@angular/forms';
|
|
6
6
|
import * as i2 from '@alfresco/adf-core';
|
|
@@ -18,7 +18,7 @@ import * as i2$3 from '@ngrx/router-store';
|
|
|
18
18
|
import { StoreRouterConnectingModule, FullRouterStateSerializer } from '@ngrx/router-store';
|
|
19
19
|
import * as i3 from '@ngrx/effects';
|
|
20
20
|
import { Actions, createEffect, ofType, EffectsModule } from '@ngrx/effects';
|
|
21
|
-
import { map, mergeMap, catchError, take, tap, first, switchMap, debounceTime, filter,
|
|
21
|
+
import { map, mergeMap, catchError, take, tap, first, switchMap, debounceTime, filter, distinctUntilChanged, takeUntil, retryWhen, finalize, skipWhile, delay, concatMap } from 'rxjs/operators';
|
|
22
22
|
import * as i1$3 from '@angular/material/dialog';
|
|
23
23
|
import { MatDialog, MAT_DIALOG_DATA, MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
|
|
24
24
|
import { of, Subject, zip, from, forkJoin, fromEvent, BehaviorSubject, Observable, combineLatest, map as map$1, catchError as catchError$1, merge, throwError } from 'rxjs';
|
|
@@ -3461,18 +3461,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
3461
3461
|
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
3462
3462
|
*/
|
|
3463
3463
|
class OutsideEventDirective {
|
|
3464
|
-
subscriptions = [];
|
|
3465
3464
|
clickOutside = new EventEmitter();
|
|
3465
|
+
destroyRef = inject(DestroyRef);
|
|
3466
3466
|
ngOnInit() {
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
.subscribe(() => this.clickOutside.next())
|
|
3471
|
-
]);
|
|
3472
|
-
}
|
|
3473
|
-
ngOnDestroy() {
|
|
3474
|
-
this.subscriptions.forEach((subscription) => subscription.unsubscribe());
|
|
3475
|
-
this.subscriptions = [];
|
|
3467
|
+
fromEvent(document.body, 'click')
|
|
3468
|
+
.pipe(filter((event) => !this.findAncestor(event.target)), takeUntilDestroyed(this.destroyRef))
|
|
3469
|
+
.subscribe(() => this.clickOutside.next());
|
|
3476
3470
|
}
|
|
3477
3471
|
findAncestor(el) {
|
|
3478
3472
|
const className = 'aca-context-menu';
|
|
@@ -4249,7 +4243,6 @@ class MetadataTabComponent {
|
|
|
4249
4243
|
tagService;
|
|
4250
4244
|
categoryService;
|
|
4251
4245
|
store;
|
|
4252
|
-
onDestroy$ = new Subject();
|
|
4253
4246
|
_displayCategories = true;
|
|
4254
4247
|
_displayTags = true;
|
|
4255
4248
|
node;
|
|
@@ -4262,6 +4255,7 @@ class MetadataTabComponent {
|
|
|
4262
4255
|
get displayTags() {
|
|
4263
4256
|
return this._displayTags;
|
|
4264
4257
|
}
|
|
4258
|
+
destroyRef = inject(DestroyRef);
|
|
4265
4259
|
constructor(permission, extensions, appConfig, notificationService, contentMetadataService, actions$, tagService, categoryService, store) {
|
|
4266
4260
|
this.permission = permission;
|
|
4267
4261
|
this.extensions = extensions;
|
|
@@ -4279,12 +4273,12 @@ class MetadataTabComponent {
|
|
|
4279
4273
|
ngOnInit() {
|
|
4280
4274
|
this._displayTags = this.tagService.areTagsEnabled();
|
|
4281
4275
|
this._displayCategories = this.categoryService.areCategoriesEnabled();
|
|
4282
|
-
this.contentMetadataService.error.pipe(
|
|
4276
|
+
this.contentMetadataService.error.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((err) => {
|
|
4283
4277
|
this.notificationService.showError(err.message);
|
|
4284
4278
|
});
|
|
4285
4279
|
this.checkIfNodeIsUpdatable(this.node);
|
|
4286
4280
|
this.actions$
|
|
4287
|
-
.pipe(ofType(NodeActionTypes.EditOffline), filter((updatedNode) => this.node.id === updatedNode.payload.entry.id),
|
|
4281
|
+
.pipe(ofType(NodeActionTypes.EditOffline), filter((updatedNode) => this.node.id === updatedNode.payload.entry.id), takeUntilDestroyed(this.destroyRef))
|
|
4288
4282
|
.subscribe((updatedNode) => {
|
|
4289
4283
|
this.checkIfNodeIsUpdatable(updatedNode?.payload.entry);
|
|
4290
4284
|
});
|
|
@@ -4292,16 +4286,12 @@ class MetadataTabComponent {
|
|
|
4292
4286
|
return panels.map((panel) => {
|
|
4293
4287
|
return { panelTitle: panel.title, component: panel.component };
|
|
4294
4288
|
});
|
|
4295
|
-
}),
|
|
4289
|
+
}), takeUntilDestroyed(this.destroyRef));
|
|
4296
4290
|
this.store
|
|
4297
4291
|
.select(infoDrawerMetadataAspect)
|
|
4298
|
-
.pipe(
|
|
4292
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
4299
4293
|
.subscribe((metadataAspect) => (this.metadataAspect = metadataAspect));
|
|
4300
4294
|
}
|
|
4301
|
-
ngOnDestroy() {
|
|
4302
|
-
this.onDestroy$.next(true);
|
|
4303
|
-
this.onDestroy$.complete();
|
|
4304
|
-
}
|
|
4305
4295
|
checkIfNodeIsUpdatable(node) {
|
|
4306
4296
|
this.readOnly = !(node && !isLocked({ entry: node }) ? this.permission.check(node, ['update']) : false);
|
|
4307
4297
|
}
|
|
@@ -4400,7 +4390,7 @@ class LibraryMetadataFormComponent {
|
|
|
4400
4390
|
matcher = new InstantErrorStateMatcher();
|
|
4401
4391
|
canUpdateLibrary = false;
|
|
4402
4392
|
isAdmin = false;
|
|
4403
|
-
|
|
4393
|
+
destroyRef = inject(DestroyRef);
|
|
4404
4394
|
constructor(alfrescoApiService, store, actions$) {
|
|
4405
4395
|
this.alfrescoApiService = alfrescoApiService;
|
|
4406
4396
|
this.store = store;
|
|
@@ -4428,12 +4418,12 @@ class LibraryMetadataFormComponent {
|
|
|
4428
4418
|
this.toggleEdit();
|
|
4429
4419
|
this.updateForm(this.node);
|
|
4430
4420
|
this.form.controls.title.statusChanges
|
|
4431
|
-
.pipe(
|
|
4421
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
4432
4422
|
.subscribe(() => (this._titleErrorTranslationKey = this.form.controls.title.errors?.empty
|
|
4433
4423
|
? 'LIBRARY.ERRORS.ONLY_SPACES'
|
|
4434
4424
|
: 'LIBRARY.ERRORS.TITLE_TOO_LONG_OR_MISSING'));
|
|
4435
4425
|
this.form.controls['title'].valueChanges
|
|
4436
|
-
.pipe(debounceTime(300), mergeMap((title) => this.findLibraryByTitle(title)),
|
|
4426
|
+
.pipe(debounceTime(300), mergeMap((title) => this.findLibraryByTitle(title)), takeUntilDestroyed(this.destroyRef))
|
|
4437
4427
|
.subscribe((result) => {
|
|
4438
4428
|
const { entries } = result.list;
|
|
4439
4429
|
if (entries.length) {
|
|
@@ -4450,7 +4440,7 @@ class LibraryMetadataFormComponent {
|
|
|
4450
4440
|
});
|
|
4451
4441
|
this.store
|
|
4452
4442
|
.select(isAdmin)
|
|
4453
|
-
.pipe(
|
|
4443
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
4454
4444
|
.subscribe((value) => {
|
|
4455
4445
|
this.isAdmin = value;
|
|
4456
4446
|
});
|
|
@@ -4458,10 +4448,6 @@ class LibraryMetadataFormComponent {
|
|
|
4458
4448
|
this.handleUpdatingEvent(SnackbarActionTypes.Info, 'LIBRARY.SUCCESS.LIBRARY_UPDATED', () => Object.assign(this.node.entry, this.form.value));
|
|
4459
4449
|
this.handleUpdatingEvent(SnackbarActionTypes.Error, 'LIBRARY.ERRORS.LIBRARY_UPDATE_ERROR', () => this.form.markAsDirty());
|
|
4460
4450
|
}
|
|
4461
|
-
ngOnDestroy() {
|
|
4462
|
-
this.onDestroy$.next(true);
|
|
4463
|
-
this.onDestroy$.complete();
|
|
4464
|
-
}
|
|
4465
4451
|
ngOnChanges() {
|
|
4466
4452
|
this.updateForm(this.node);
|
|
4467
4453
|
this.canUpdateLibrary = this.node?.entry?.role === 'SiteManager' || this.isAdmin;
|
|
@@ -4494,7 +4480,7 @@ class LibraryMetadataFormComponent {
|
|
|
4494
4480
|
}
|
|
4495
4481
|
handleUpdatingEvent(actionType, payload, handle) {
|
|
4496
4482
|
this.actions$
|
|
4497
|
-
.pipe(ofType(actionType), filter((action) => action.payload === payload),
|
|
4483
|
+
.pipe(ofType(actionType), filter((action) => action.payload === payload), takeUntilDestroyed(this.destroyRef))
|
|
4498
4484
|
.subscribe(handle);
|
|
4499
4485
|
}
|
|
4500
4486
|
validateEmptyName(control) {
|
|
@@ -5044,7 +5030,7 @@ class ToggleFavoriteLibraryComponent {
|
|
|
5044
5030
|
appHookService;
|
|
5045
5031
|
router;
|
|
5046
5032
|
library;
|
|
5047
|
-
|
|
5033
|
+
destroyRef = inject(DestroyRef);
|
|
5048
5034
|
constructor(store, appHookService, router) {
|
|
5049
5035
|
this.store = store;
|
|
5050
5036
|
this.appHookService = appHookService;
|
|
@@ -5054,7 +5040,7 @@ class ToggleFavoriteLibraryComponent {
|
|
|
5054
5040
|
const isFavoriteLibraries = this.router.url.startsWith('/favorite/libraries');
|
|
5055
5041
|
this.store
|
|
5056
5042
|
.select(getAppSelection)
|
|
5057
|
-
.pipe(distinctUntilChanged(),
|
|
5043
|
+
.pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))
|
|
5058
5044
|
.subscribe((selection) => {
|
|
5059
5045
|
this.library = { ...selection.library };
|
|
5060
5046
|
// favorite libraries list should already be marked as favorite
|
|
@@ -5063,10 +5049,6 @@ class ToggleFavoriteLibraryComponent {
|
|
|
5063
5049
|
}
|
|
5064
5050
|
});
|
|
5065
5051
|
}
|
|
5066
|
-
ngOnDestroy() {
|
|
5067
|
-
this.onDestroy$.next();
|
|
5068
|
-
this.onDestroy$.complete();
|
|
5069
|
-
}
|
|
5070
5052
|
onToggleEvent() {
|
|
5071
5053
|
this.appHookService.favoriteLibraryToggle.next();
|
|
5072
5054
|
}
|
|
@@ -5399,7 +5381,6 @@ class ExpansionPanelDirective {
|
|
|
5399
5381
|
expansionPanel;
|
|
5400
5382
|
acaExpansionPanel;
|
|
5401
5383
|
hasActiveChildren = false;
|
|
5402
|
-
onDestroy$ = new Subject();
|
|
5403
5384
|
onClick() {
|
|
5404
5385
|
if (this.expansionPanel.expanded && !this.hasActiveLinks() && !this.acaExpansionPanel.data?.canBeInactive) {
|
|
5405
5386
|
const firstChild = this.acaExpansionPanel.children[0];
|
|
@@ -5414,6 +5395,7 @@ class ExpansionPanelDirective {
|
|
|
5414
5395
|
}
|
|
5415
5396
|
}
|
|
5416
5397
|
}
|
|
5398
|
+
destroyRef = inject(DestroyRef);
|
|
5417
5399
|
constructor(store, router, expansionPanel) {
|
|
5418
5400
|
this.store = store;
|
|
5419
5401
|
this.router = router;
|
|
@@ -5428,15 +5410,11 @@ class ExpansionPanelDirective {
|
|
|
5428
5410
|
ngOnInit() {
|
|
5429
5411
|
this.hasActiveChildren = this.hasActiveLinks();
|
|
5430
5412
|
this.router.events
|
|
5431
|
-
.pipe(filter((event) => event instanceof NavigationEnd),
|
|
5413
|
+
.pipe(filter((event) => event instanceof NavigationEnd), takeUntilDestroyed(this.destroyRef))
|
|
5432
5414
|
.subscribe(() => {
|
|
5433
5415
|
this.hasActiveChildren = this.hasActiveLinks();
|
|
5434
5416
|
});
|
|
5435
5417
|
}
|
|
5436
|
-
ngOnDestroy() {
|
|
5437
|
-
this.onDestroy$.next(true);
|
|
5438
|
-
this.onDestroy$.complete();
|
|
5439
|
-
}
|
|
5440
5418
|
getNavigationCommands(url) {
|
|
5441
5419
|
const urlTree = this.router.parseUrl(url);
|
|
5442
5420
|
const urlSegmentGroup = urlTree.root.children[PRIMARY_OUTLET];
|
|
@@ -5494,7 +5472,6 @@ class MenuPanelDirective {
|
|
|
5494
5472
|
router;
|
|
5495
5473
|
acaMenuPanel;
|
|
5496
5474
|
hasActiveChildren = false;
|
|
5497
|
-
onDestroy$ = new Subject();
|
|
5498
5475
|
menuOpened() {
|
|
5499
5476
|
if (this.acaMenuPanel.children && !this.hasActiveLinks()) {
|
|
5500
5477
|
const firstChild = this.acaMenuPanel.children[0];
|
|
@@ -5509,6 +5486,7 @@ class MenuPanelDirective {
|
|
|
5509
5486
|
}
|
|
5510
5487
|
}
|
|
5511
5488
|
}
|
|
5489
|
+
destroyRef = inject(DestroyRef);
|
|
5512
5490
|
constructor(store, router) {
|
|
5513
5491
|
this.store = store;
|
|
5514
5492
|
this.router = router;
|
|
@@ -5522,15 +5500,11 @@ class MenuPanelDirective {
|
|
|
5522
5500
|
ngOnInit() {
|
|
5523
5501
|
this.hasActiveChildren = this.hasActiveLinks();
|
|
5524
5502
|
this.router.events
|
|
5525
|
-
.pipe(filter((event) => event instanceof NavigationEnd),
|
|
5503
|
+
.pipe(filter((event) => event instanceof NavigationEnd), takeUntilDestroyed(this.destroyRef))
|
|
5526
5504
|
.subscribe(() => {
|
|
5527
5505
|
this.hasActiveChildren = this.hasActiveLinks();
|
|
5528
5506
|
});
|
|
5529
5507
|
}
|
|
5530
|
-
ngOnDestroy() {
|
|
5531
|
-
this.onDestroy$.next(true);
|
|
5532
|
-
this.onDestroy$.complete();
|
|
5533
|
-
}
|
|
5534
5508
|
getNavigationCommands(url) {
|
|
5535
5509
|
const urlTree = this.router.parseUrl(url);
|
|
5536
5510
|
const urlSegmentGroup = urlTree.root.children[PRIMARY_OUTLET];
|
|
@@ -5584,9 +5558,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5584
5558
|
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
5585
5559
|
*/
|
|
5586
5560
|
class SidenavHeaderComponent {
|
|
5587
|
-
onDestroy$ = new Subject();
|
|
5588
5561
|
appSettings = inject(AppSettingsService);
|
|
5589
5562
|
appExtensions = inject(AppExtensionService);
|
|
5563
|
+
destroyRef = inject(DestroyRef);
|
|
5590
5564
|
appName = this.appSettings.appName;
|
|
5591
5565
|
logoUrl = this.appSettings.appLogoUrl;
|
|
5592
5566
|
landingPage = this.appSettings.landingPage;
|
|
@@ -5595,15 +5569,11 @@ class SidenavHeaderComponent {
|
|
|
5595
5569
|
ngOnInit() {
|
|
5596
5570
|
this.appExtensions
|
|
5597
5571
|
.getHeaderActions()
|
|
5598
|
-
.pipe(
|
|
5572
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
5599
5573
|
.subscribe((actions) => {
|
|
5600
5574
|
this.actions = actions;
|
|
5601
5575
|
});
|
|
5602
5576
|
}
|
|
5603
|
-
ngOnDestroy() {
|
|
5604
|
-
this.onDestroy$.next(true);
|
|
5605
|
-
this.onDestroy$.complete();
|
|
5606
|
-
}
|
|
5607
5577
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SidenavHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5608
5578
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SidenavHeaderComponent, isStandalone: true, selector: "app-sidenav-header", outputs: { toggleNavBar: "toggleNavBar" }, host: { classAttribute: "app-sidenav-header" }, ngImport: i0, template: "<div class=\"aca-sidenav-header\" data-automation-id=\"app-sidenav-header\">\n <div class=\"aca-sidenav-header-title\" data-automation-id=\"app-sidenav-header-title\">\n <div class=\"aca-sidenav-header-title-logo\"\n tabindex=0\n data-automation-id=\"app-sidenav-header-title-logo\"\n (click)=\"toggleNavBar.emit()\"\n (keypress)=\"toggleNavBar.emit()\">\n <img\n src=\"{{ logoUrl }}\"\n title=\"{{'APP.TOOLTIPS.COLLAPSE_NAVIGATION' | translate}}\"\n alt=\"{{ 'CORE.HEADER.LOGO_ARIA' | translate }}\" />\n </div>\n\n <div\n class=\"aca-sidenav-header-title-text\"\n data-automation-id=\"app-sidenav-header-title-text\"\n [routerLink]=\"landingPage\">\n {{ appName | translate }}\n </div>\n\n <aca-toolbar [items]=\"actions\" />\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: ToolbarComponent, selector: "aca-toolbar", inputs: ["items"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
5609
5579
|
}
|
|
@@ -5724,7 +5694,7 @@ class ActiveLinkDirective {
|
|
|
5724
5694
|
acaActiveLink;
|
|
5725
5695
|
links;
|
|
5726
5696
|
isLinkActive = false;
|
|
5727
|
-
|
|
5697
|
+
destroyRef = inject(DestroyRef);
|
|
5728
5698
|
constructor(router, element, renderer, action) {
|
|
5729
5699
|
this.router = router;
|
|
5730
5700
|
this.element = element;
|
|
@@ -5733,7 +5703,7 @@ class ActiveLinkDirective {
|
|
|
5733
5703
|
}
|
|
5734
5704
|
ngOnInit() {
|
|
5735
5705
|
this.router.events
|
|
5736
|
-
.pipe(filter((event) => event instanceof NavigationEnd),
|
|
5706
|
+
.pipe(filter((event) => event instanceof NavigationEnd), takeUntilDestroyed(this.destroyRef))
|
|
5737
5707
|
.subscribe((event) => {
|
|
5738
5708
|
this.update(event.urlAfterRedirects);
|
|
5739
5709
|
});
|
|
@@ -5871,7 +5841,7 @@ class SidenavComponent {
|
|
|
5871
5841
|
navigationHistoryService;
|
|
5872
5842
|
data = {};
|
|
5873
5843
|
groups = [];
|
|
5874
|
-
|
|
5844
|
+
destroyRef = inject(DestroyRef);
|
|
5875
5845
|
constructor(store, extensions, appService, navigationHistoryService) {
|
|
5876
5846
|
this.store = store;
|
|
5877
5847
|
this.extensions = extensions;
|
|
@@ -5881,16 +5851,16 @@ class SidenavComponent {
|
|
|
5881
5851
|
ngOnInit() {
|
|
5882
5852
|
this.store
|
|
5883
5853
|
.select(getSideNavState)
|
|
5884
|
-
.pipe(debounceTime(300), distinctUntilChanged(),
|
|
5854
|
+
.pipe(debounceTime(300), distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))
|
|
5885
5855
|
.subscribe(() => {
|
|
5886
5856
|
this.groups = this.extensions.getApplicationNavigation(this.extensions.navbar);
|
|
5887
5857
|
});
|
|
5888
5858
|
this.appService.setAppNavbarMode(this.data.mode);
|
|
5889
|
-
this.appService.toggleAppNavBar$.pipe(
|
|
5890
|
-
this.data.layout.expanded.pipe(
|
|
5859
|
+
this.appService.toggleAppNavBar$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.toggleNavBar());
|
|
5860
|
+
this.data.layout.expanded.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.setNavBarMode());
|
|
5891
5861
|
this.navigationHistoryService
|
|
5892
5862
|
.listenToRouteChanges()
|
|
5893
|
-
.pipe(
|
|
5863
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
5894
5864
|
.subscribe((event) => {
|
|
5895
5865
|
this.navigationHistoryService.setHistory(event, 3);
|
|
5896
5866
|
});
|
|
@@ -5911,10 +5881,6 @@ class SidenavComponent {
|
|
|
5911
5881
|
this.data.layout.toggleMenu();
|
|
5912
5882
|
this.setNavBarMode();
|
|
5913
5883
|
}
|
|
5914
|
-
ngOnDestroy() {
|
|
5915
|
-
this.onDestroy$.next(true);
|
|
5916
|
-
this.onDestroy$.complete();
|
|
5917
|
-
}
|
|
5918
5884
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SidenavComponent, deps: [{ token: i1.Store }, { token: i1$1.AppExtensionService }, { token: i1$1.AppService }, { token: i1$1.NavigationHistoryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5919
5885
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SidenavComponent, isStandalone: true, selector: "app-sidenav", inputs: { data: "data" }, host: { classAttribute: "app-sidenav" }, ngImport: i0, template: "<div class=\"aca-sidenav\">\n <app-sidenav-header (toggleNavBar)=\"toggleClick()\" />\n\n <div class=\"aca-sidenav__section\">\n <div *ngFor=\"let group of groups; trackBy: trackByGroupId\" class=\"aca-sidenav__section__actions\">\n <mat-list-item class=\"aca-sidenav__section__actions__item\" *ngFor=\"let item of group.items; trackBy: trackByLinkId\">\n <ng-container *ngIf=\"!item.component\">\n <app-expand-menu [item]=\"item\" />\n </ng-container>\n <ng-container *ngIf=\"item.component\">\n <adf-dynamic-component [data]=\"{ item: item, state: 'expanded' }\" [id]=\"item.component\" />\n </ng-container>\n </mat-list-item>\n </div>\n </div>\n</div>\n", styles: [".aca-sidenav{display:flex;flex:1;flex-direction:column;height:100%;overflow-y:hidden;background:var(--theme-sidenav-background-color)}.aca-sidenav-header{padding:32px 0}.aca-sidenav-header-title{display:flex;flex-direction:row;align-items:center;height:32px;padding:0 24px}.aca-sidenav-header-title-logo img{cursor:pointer;height:28px;vertical-align:middle;transform:scale(.7)}.aca-sidenav-header-title-text{flex:1;color:var(--theme-sidenav-text-color);padding-left:12px;letter-spacing:.25px;font-style:normal;font-weight:400;font-size:var(--theme-body-1-font-size);cursor:pointer}.aca-sidenav__section{overflow-y:auto}.aca-sidenav__section .aca-expansion-panel{width:100%;background-color:unset;box-shadow:none;border-radius:0}.aca-sidenav__section .aca-expansion-panel-header{padding:0 32px 0 0;display:flex;align-items:center;border:none}.aca-sidenav__section .aca-expansion-panel-header span:after{transform:rotate(226deg)}.aca-sidenav__section .aca-expansion-panel-header-title{display:flex;flex-direction:row}.aca-sidenav__section .aca-expansion-panel-header-title .aca-action-button__label{font-size:var(--theme-caption-font-size)}.aca-sidenav__section .aca-expansion-panel .aca-expansion-panel-header:hover{background:var(--adf-theme-background-hover-color)}.aca-sidenav__section .aca-expansion-panel-item{flex-direction:row;display:flex;align-items:center;text-decoration:none;width:100%;-webkit-user-select:none;user-select:none}.aca-sidenav__section .aca-expansion-panel-item .aca-action-button__label{color:var(--theme-action-button-text-color)}.aca-sidenav__section .aca-expansion-panel-item:hover .aca-action-button__label{color:var(--theme-sidenav-active-text-color)}.aca-sidenav__section .aca-expansion-panel-body{margin:0 -24px 16px;font-size:var(--theme-body-1-font-size)}.aca-sidenav__section .aca-expansion-panel-body button{line-height:32px;align-items:center}.aca-sidenav__section .aca-action-button{cursor:pointer;color:var(--theme-action-button-text-color);height:32px;padding:0 24px;border-radius:0;line-height:32px;justify-content:start}.aca-sidenav__section .aca-action-button--active{color:var(--theme-sidenav-active-text-color);background:var(--theme-selected-background-color)}.aca-sidenav__section .aca-full-width{display:flex;width:100%}.aca-sidenav__section__actions__item:has(span){padding:0}.aca-sidenav__section__actions__item:has(span) span{pointer-events:auto}.aca-sidenav__section__actions:last-child{border-bottom:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SidenavHeaderComponent, selector: "app-sidenav-header", outputs: ["toggleNavBar"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i7$3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: ExpandMenuComponent, selector: "app-expand-menu", inputs: ["item"], outputs: ["actionClicked"] }, { kind: "component", type: DynamicExtensionComponent, selector: "adf-dynamic-component", inputs: ["id", "data"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
5920
5886
|
}
|
|
@@ -6253,13 +6219,13 @@ class ToggleSharedComponent {
|
|
|
6253
6219
|
selectionState;
|
|
6254
6220
|
selectionLabel = '';
|
|
6255
6221
|
isShared = false;
|
|
6256
|
-
|
|
6222
|
+
destroyRef = inject(DestroyRef);
|
|
6257
6223
|
constructor(store) {
|
|
6258
6224
|
this.store = store;
|
|
6259
6225
|
}
|
|
6260
6226
|
ngOnInit() {
|
|
6261
6227
|
this.selection$ = this.store.select(getAppSelection);
|
|
6262
|
-
this.selection$.pipe(
|
|
6228
|
+
this.selection$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((selectionState) => {
|
|
6263
6229
|
this.selectionState = selectionState;
|
|
6264
6230
|
this.isShared =
|
|
6265
6231
|
(this.selectionState?.first?.entry && this.selectionState.first.entry.sharedByUser) ||
|
|
@@ -6267,10 +6233,6 @@ class ToggleSharedComponent {
|
|
|
6267
6233
|
this.selectionLabel = this.isShared ? 'APP.ACTIONS.SHARE_EDIT' : 'APP.ACTIONS.SHARE';
|
|
6268
6234
|
});
|
|
6269
6235
|
}
|
|
6270
|
-
ngOnDestroy() {
|
|
6271
|
-
this.onDestroy$.next();
|
|
6272
|
-
this.onDestroy$.complete();
|
|
6273
|
-
}
|
|
6274
6236
|
editSharedNode(selection, focusedElementOnCloseSelector) {
|
|
6275
6237
|
this.store.dispatch(new ShareNodeAction(selection.first, {
|
|
6276
6238
|
focusedElementOnCloseSelector
|
|
@@ -6621,7 +6583,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
6621
6583
|
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
|
6622
6584
|
*/
|
|
6623
6585
|
class SearchInputControlComponent {
|
|
6624
|
-
onDestroy$ = new Subject();
|
|
6625
6586
|
/** Type of the input field to render, e.g. "search" or "text" (default). */
|
|
6626
6587
|
inputType = 'text';
|
|
6627
6588
|
/** Emitted when the search is submitted pressing ENTER button.
|
|
@@ -6637,10 +6598,6 @@ class SearchInputControlComponent {
|
|
|
6637
6598
|
searchChange = new EventEmitter();
|
|
6638
6599
|
searchInput;
|
|
6639
6600
|
searchTerm = '';
|
|
6640
|
-
ngOnDestroy() {
|
|
6641
|
-
this.onDestroy$.next(true);
|
|
6642
|
-
this.onDestroy$.complete();
|
|
6643
|
-
}
|
|
6644
6601
|
searchSubmit(event) {
|
|
6645
6602
|
this.submit.emit(event);
|
|
6646
6603
|
}
|
|
@@ -6707,7 +6664,6 @@ class SearchInputComponent {
|
|
|
6707
6664
|
appService;
|
|
6708
6665
|
searchInputService;
|
|
6709
6666
|
notificationService = inject(NotificationService);
|
|
6710
|
-
onDestroy$ = new Subject();
|
|
6711
6667
|
has400LibraryError = false;
|
|
6712
6668
|
hasLibrariesConstraint = false;
|
|
6713
6669
|
searchOnChange;
|
|
@@ -6734,6 +6690,7 @@ class SearchInputComponent {
|
|
|
6734
6690
|
];
|
|
6735
6691
|
searchInputControl;
|
|
6736
6692
|
trigger;
|
|
6693
|
+
destroyRef = inject(DestroyRef);
|
|
6737
6694
|
constructor(queryBuilder, queryLibrariesBuilder, config, router, route, store, appHookService, appService, searchInputService) {
|
|
6738
6695
|
this.queryBuilder = queryBuilder;
|
|
6739
6696
|
this.queryLibrariesBuilder = queryLibrariesBuilder;
|
|
@@ -6748,14 +6705,14 @@ class SearchInputComponent {
|
|
|
6748
6705
|
}
|
|
6749
6706
|
ngOnInit() {
|
|
6750
6707
|
this.showInputValue();
|
|
6751
|
-
this.route.queryParams.pipe(
|
|
6708
|
+
this.route.queryParams.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((params) => {
|
|
6752
6709
|
const encodedQuery = params['q'];
|
|
6753
6710
|
if (encodedQuery && this.searchInputControl) {
|
|
6754
6711
|
this.searchedWord = extractSearchedWordFromEncodedQuery(encodedQuery);
|
|
6755
6712
|
this.searchInputControl.searchTerm = this.searchedWord;
|
|
6756
6713
|
}
|
|
6757
6714
|
});
|
|
6758
|
-
this.appHookService.library400Error.pipe(
|
|
6715
|
+
this.appHookService.library400Error.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
6759
6716
|
this.has400LibraryError = true;
|
|
6760
6717
|
this.hasLibrariesConstraint = this.evaluateLibrariesConstraint();
|
|
6761
6718
|
});
|
|
@@ -6774,8 +6731,6 @@ class SearchInputComponent {
|
|
|
6774
6731
|
}
|
|
6775
6732
|
ngOnDestroy() {
|
|
6776
6733
|
this.appService.setAppNavbarMode('expanded');
|
|
6777
|
-
this.onDestroy$.next(true);
|
|
6778
|
-
this.onDestroy$.complete();
|
|
6779
6734
|
this.removeContentFilters();
|
|
6780
6735
|
}
|
|
6781
6736
|
onMenuOpened() {
|
|
@@ -6960,10 +6915,10 @@ class DocumentListDirective {
|
|
|
6960
6915
|
documentListService;
|
|
6961
6916
|
isLibrary = false;
|
|
6962
6917
|
selectedNode;
|
|
6963
|
-
onDestroy$ = new Subject();
|
|
6964
6918
|
get sortingPreferenceKey() {
|
|
6965
6919
|
return this.route.snapshot.data.sortingPreferenceKey;
|
|
6966
6920
|
}
|
|
6921
|
+
destroyRef = inject(DestroyRef);
|
|
6967
6922
|
constructor(store, documentList, preferences, route, router, documentListService) {
|
|
6968
6923
|
this.store = store;
|
|
6969
6924
|
this.documentList = documentList;
|
|
@@ -6997,19 +6952,15 @@ class DocumentListDirective {
|
|
|
6997
6952
|
}
|
|
6998
6953
|
}
|
|
6999
6954
|
this.documentList.ready
|
|
7000
|
-
.pipe(filter(() => !this.router.url.includes('viewer:view')),
|
|
6955
|
+
.pipe(filter(() => !this.router.url.includes('viewer:view')), takeUntilDestroyed(this.destroyRef))
|
|
7001
6956
|
.subscribe(() => this.onReady());
|
|
7002
|
-
this.documentListService.reload$.pipe(
|
|
6957
|
+
this.documentListService.reload$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
7003
6958
|
this.reload();
|
|
7004
6959
|
});
|
|
7005
|
-
this.documentListService.resetSelection$.pipe(
|
|
6960
|
+
this.documentListService.resetSelection$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
7006
6961
|
this.reset();
|
|
7007
6962
|
});
|
|
7008
6963
|
}
|
|
7009
|
-
ngOnDestroy() {
|
|
7010
|
-
this.onDestroy$.next(true);
|
|
7011
|
-
this.onDestroy$.complete();
|
|
7012
|
-
}
|
|
7013
6964
|
onSortingChanged(event) {
|
|
7014
6965
|
if (this.sortingPreferenceKey) {
|
|
7015
6966
|
if (this.documentList.sortingMode === 'client') {
|
|
@@ -7186,7 +7137,7 @@ class SearchLibrariesResultsComponent extends PageComponent {
|
|
|
7186
7137
|
catch (e) { }
|
|
7187
7138
|
}));
|
|
7188
7139
|
if (this.route) {
|
|
7189
|
-
this.route.queryParams.pipe(
|
|
7140
|
+
this.route.queryParams.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((params) => {
|
|
7190
7141
|
const encodedQuery = params[this.queryParamName] || null;
|
|
7191
7142
|
this.searchedWord = extractSearchedWordFromEncodedQuery(encodedQuery);
|
|
7192
7143
|
if (this.searchedWord?.length > 1) {
|
|
@@ -7398,22 +7349,18 @@ class DatatableCellBadgesComponent {
|
|
|
7398
7349
|
appExtensionService;
|
|
7399
7350
|
node;
|
|
7400
7351
|
badges;
|
|
7401
|
-
|
|
7352
|
+
destroyRef = inject(DestroyRef);
|
|
7402
7353
|
constructor(appExtensionService) {
|
|
7403
7354
|
this.appExtensionService = appExtensionService;
|
|
7404
7355
|
}
|
|
7405
7356
|
ngOnInit() {
|
|
7406
7357
|
this.appExtensionService
|
|
7407
7358
|
.getBadges(this.node)
|
|
7408
|
-
.pipe(
|
|
7359
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
7409
7360
|
.subscribe((badges) => {
|
|
7410
7361
|
this.badges = badges;
|
|
7411
7362
|
});
|
|
7412
7363
|
}
|
|
7413
|
-
ngOnDestroy() {
|
|
7414
|
-
this.onDestroy$.next(true);
|
|
7415
|
-
this.onDestroy$.complete();
|
|
7416
|
-
}
|
|
7417
7364
|
onBadgeClick(badge) {
|
|
7418
7365
|
if (badge.actions?.click) {
|
|
7419
7366
|
this.appExtensionService.runActionById(badge.actions?.click, this.node);
|
|
@@ -7464,7 +7411,6 @@ class SearchResultsRowComponent {
|
|
|
7464
7411
|
highlightPrefix = "<span class='aca-highlight'>";
|
|
7465
7412
|
highlightPostfix = '</span>';
|
|
7466
7413
|
node;
|
|
7467
|
-
onDestroy$ = new Subject();
|
|
7468
7414
|
context;
|
|
7469
7415
|
name$ = new BehaviorSubject('');
|
|
7470
7416
|
title$ = new BehaviorSubject('');
|
|
@@ -7475,6 +7421,7 @@ class SearchResultsRowComponent {
|
|
|
7475
7421
|
descriptionStripped = '';
|
|
7476
7422
|
contentStripped = '';
|
|
7477
7423
|
isFile = false;
|
|
7424
|
+
destroyRef = inject(DestroyRef);
|
|
7478
7425
|
constructor(store, nodesApiService, router, autoDownloadService) {
|
|
7479
7426
|
this.store = store;
|
|
7480
7427
|
this.nodesApiService = nodesApiService;
|
|
@@ -7483,7 +7430,7 @@ class SearchResultsRowComponent {
|
|
|
7483
7430
|
}
|
|
7484
7431
|
ngOnInit() {
|
|
7485
7432
|
this.updateValues();
|
|
7486
|
-
this.nodesApiService.nodeUpdated.pipe(
|
|
7433
|
+
this.nodesApiService.nodeUpdated.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((node) => {
|
|
7487
7434
|
const row = this.context.row;
|
|
7488
7435
|
if (row) {
|
|
7489
7436
|
const { entry } = row.node;
|
|
@@ -7533,10 +7480,6 @@ class SearchResultsRowComponent {
|
|
|
7533
7480
|
this.titleStripped = this.stripHighlighting(title);
|
|
7534
7481
|
}
|
|
7535
7482
|
}
|
|
7536
|
-
ngOnDestroy() {
|
|
7537
|
-
this.onDestroy$.next(true);
|
|
7538
|
-
this.onDestroy$.complete();
|
|
7539
|
-
}
|
|
7540
7483
|
showPreview(event) {
|
|
7541
7484
|
event.stopPropagation();
|
|
7542
7485
|
if (!this.settings.autoDownloadEnabled || !this.autoDownloadService.tryDownload(this.node, this.settings.authDownloadThreshold)) {
|
|
@@ -7570,7 +7513,7 @@ class BulkActionsDropdownComponent {
|
|
|
7570
7513
|
store = inject(Store);
|
|
7571
7514
|
translationService = inject(TranslationService);
|
|
7572
7515
|
extensions = inject(AppExtensionService);
|
|
7573
|
-
|
|
7516
|
+
destroyRef = inject(DestroyRef);
|
|
7574
7517
|
totalItems$ = this.store.select(getSearchItemsTotalCount);
|
|
7575
7518
|
ngOnInit() {
|
|
7576
7519
|
this.totalItems$
|
|
@@ -7589,19 +7532,15 @@ class BulkActionsDropdownComponent {
|
|
|
7589
7532
|
this.translationService.get('SEARCH.BULK_ACTIONS_DROPDOWN.BULK_NOT_AVAILABLE_TOOLTIP')
|
|
7590
7533
|
]);
|
|
7591
7534
|
}
|
|
7592
|
-
}),
|
|
7535
|
+
}), takeUntilDestroyed(this.destroyRef))
|
|
7593
7536
|
.subscribe(([placeholder, title]) => {
|
|
7594
7537
|
this.tooltip = title;
|
|
7595
7538
|
this.placeholder = placeholder;
|
|
7596
7539
|
});
|
|
7597
|
-
this.extensions.bulkActionExecuted$.pipe(
|
|
7540
|
+
this.extensions.bulkActionExecuted$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
7598
7541
|
this.bulkSelectControl.setValue(null);
|
|
7599
7542
|
});
|
|
7600
7543
|
}
|
|
7601
|
-
ngOnDestroy() {
|
|
7602
|
-
this.onDestroy$.next(true);
|
|
7603
|
-
this.onDestroy$.complete();
|
|
7604
|
-
}
|
|
7605
7544
|
runAction(actionOption) {
|
|
7606
7545
|
this.extensions.runActionById(actionOption.actions.click, {
|
|
7607
7546
|
focusedElementOnCloseSelector: '.adf-context-menu-source'
|
|
@@ -7726,7 +7665,6 @@ class SearchAiInputComponent {
|
|
|
7726
7665
|
storedNodesKey = 'knowledgeRetrievalNodes';
|
|
7727
7666
|
_agentControl = new FormControl(null);
|
|
7728
7667
|
_agents = [];
|
|
7729
|
-
onDestroy$ = new Subject();
|
|
7730
7668
|
selectedNodesState;
|
|
7731
7669
|
_queryControl = new FormControl('');
|
|
7732
7670
|
_initialsByAgentId = {};
|
|
@@ -7742,6 +7680,7 @@ class SearchAiInputComponent {
|
|
|
7742
7680
|
get initialsByAgentId() {
|
|
7743
7681
|
return this._initialsByAgentId;
|
|
7744
7682
|
}
|
|
7683
|
+
destroyRef = inject(DestroyRef);
|
|
7745
7684
|
constructor(store, searchAiService, notificationService, agentService, userPreferencesService, translateService, modalAiService) {
|
|
7746
7685
|
this.store = store;
|
|
7747
7686
|
this.searchAiService = searchAiService;
|
|
@@ -7757,7 +7696,7 @@ class SearchAiInputComponent {
|
|
|
7757
7696
|
if (!this.usedInAiResultsPage) {
|
|
7758
7697
|
this.store
|
|
7759
7698
|
.select(getAppSelection)
|
|
7760
|
-
.pipe(
|
|
7699
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
7761
7700
|
.subscribe((selection) => {
|
|
7762
7701
|
this.selectedNodesState = selection;
|
|
7763
7702
|
});
|
|
@@ -7767,7 +7706,7 @@ class SearchAiInputComponent {
|
|
|
7767
7706
|
}
|
|
7768
7707
|
this.agentService
|
|
7769
7708
|
.getAgents()
|
|
7770
|
-
.pipe(
|
|
7709
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
7771
7710
|
.subscribe((agents) => {
|
|
7772
7711
|
this._agents = agents;
|
|
7773
7712
|
this.agentControl.setValue(this._agents.find((agent) => agent.id === this.agentId));
|
|
@@ -7778,10 +7717,6 @@ class SearchAiInputComponent {
|
|
|
7778
7717
|
}, {});
|
|
7779
7718
|
}, () => this.notificationService.showError(this.translateService.instant('KNOWLEDGE_RETRIEVAL.SEARCH.ERRORS.AGENTS_FETCHING')));
|
|
7780
7719
|
}
|
|
7781
|
-
ngOnDestroy() {
|
|
7782
|
-
this.onDestroy$.next();
|
|
7783
|
-
this.onDestroy$.complete();
|
|
7784
|
-
}
|
|
7785
7720
|
onSearchSubmit() {
|
|
7786
7721
|
this.modalAiService.openUnsavedChangesModal(() => this.search());
|
|
7787
7722
|
}
|
|
@@ -8122,7 +8057,6 @@ class SearchResultsComponent extends PageComponent {
|
|
|
8122
8057
|
encodedQuery;
|
|
8123
8058
|
searchConfig;
|
|
8124
8059
|
loadedFilters$ = new Subject();
|
|
8125
|
-
destroyRef = inject(DestroyRef);
|
|
8126
8060
|
constructor(tagsService, queryBuilder, changeDetectorRef, route, translationService, savedSearchesService) {
|
|
8127
8061
|
super();
|
|
8128
8062
|
this.queryBuilder = queryBuilder;
|
|
@@ -8378,9 +8312,9 @@ class CustomNameColumnComponent extends NameColumnComponent {
|
|
|
8378
8312
|
cd;
|
|
8379
8313
|
actions$;
|
|
8380
8314
|
nodesService;
|
|
8381
|
-
onDestroy$$ = new Subject();
|
|
8382
8315
|
isFile;
|
|
8383
8316
|
isFileWriteLocked;
|
|
8317
|
+
destroy = inject(DestroyRef);
|
|
8384
8318
|
constructor(element, cd, actions$, nodesService) {
|
|
8385
8319
|
super(element, nodesService);
|
|
8386
8320
|
this.cd = cd;
|
|
@@ -8391,7 +8325,7 @@ class CustomNameColumnComponent extends NameColumnComponent {
|
|
|
8391
8325
|
this.updateValue();
|
|
8392
8326
|
this.isFile = this.node?.entry && !this.node.entry.isFolder;
|
|
8393
8327
|
this.isFileWriteLocked = isLocked(this.node);
|
|
8394
|
-
this.nodesService.nodeUpdated.pipe(
|
|
8328
|
+
this.nodesService.nodeUpdated.pipe(takeUntilDestroyed(this.destroy)).subscribe((node) => {
|
|
8395
8329
|
const row = this.context.row;
|
|
8396
8330
|
if (row) {
|
|
8397
8331
|
const { entry } = row.node;
|
|
@@ -8407,7 +8341,7 @@ class CustomNameColumnComponent extends NameColumnComponent {
|
|
|
8407
8341
|
}
|
|
8408
8342
|
});
|
|
8409
8343
|
this.actions$
|
|
8410
|
-
.pipe(ofType(NodeActionTypes.EditOffline), filter((val) => this.node.entry.id === val.payload.entry.id),
|
|
8344
|
+
.pipe(ofType(NodeActionTypes.EditOffline), filter((val) => this.node.entry.id === val.payload.entry.id), takeUntilDestroyed(this.destroy))
|
|
8411
8345
|
.subscribe(() => {
|
|
8412
8346
|
this.isFileWriteLocked = isLocked(this.node);
|
|
8413
8347
|
this.cd.detectChanges();
|
|
@@ -8417,10 +8351,6 @@ class CustomNameColumnComponent extends NameColumnComponent {
|
|
|
8417
8351
|
event.stopPropagation();
|
|
8418
8352
|
this.onClick();
|
|
8419
8353
|
}
|
|
8420
|
-
ngOnDestroy() {
|
|
8421
|
-
this.onDestroy$$.next(true);
|
|
8422
|
-
this.onDestroy$$.complete();
|
|
8423
|
-
}
|
|
8424
8354
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CustomNameColumnComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i3.Actions }, { token: i1$2.NodesApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
8425
8355
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CustomNameColumnComponent, isStandalone: true, selector: "aca-custom-name-column", host: { classAttribute: "adf-datatable-content-cell adf-datatable-link adf-name-column aca-custom-name-column" }, usesInheritance: true, ngImport: i0, template: "<div class=\"aca-custom-name-column\">\n <div class=\"aca-name-column-container\">\n <span\n role=\"link\"\n tabindex=\"0\"\n [attr.aria-label]=\"\n (isFile ? 'CUSTOM_NAME_COLUMN.ACCESSIBILITY.FILE_LINK_ARIA_LABEL' : 'CUSTOM_NAME_COLUMN.ACCESSIBILITY.FOLDER_LINK_ARIA_LABEL')\n | translate : { name: displayText$ | async }\n \"\n class=\"adf-datatable-cell-value\"\n title=\"{{ node | adfNodeNameTooltip }}\"\n (click)=\"onLinkClick($event)\"\n (keyup.enter)=\"onLinkClick($event)\"\n >\n {{ displayText$ | async }}\n </span>\n\n <ng-container *ngIf=\"isFile && isFileWriteLocked\">\n <aca-locked-by [node]=\"context.row.node\" />\n </ng-container>\n </div>\n <aca-datatable-cell-badges [node]=\"node\" />\n</div>\n", styles: [".aca-custom-name-column{display:flex;align-items:center;justify-content:space-between;width:100%}.aca-custom-name-column .aca-name-column-container{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aca-custom-name-column .aca-name-column-container .aca-locked-by{display:flex;align-items:center;color:#0000008a;max-width:100%;padding-right:10px}.aca-custom-name-column .aca-name-column-container .aca-locked-by--name{overflow:hidden;text-overflow:ellipsis}.adf-datatable-content-cell.adf-name-column.aca-custom-name-column{position:unset}.adf-datatable-list .adf-datatable-link:hover .aca-datatable-cell-badges{color:var(--adf-theme-foreground-text-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "component", type: LockedByComponent, selector: "aca-locked-by", inputs: ["node"] }, { kind: "pipe", type: NodeNameTooltipPipe, name: "adfNodeNameTooltip" }, { kind: "component", type: DatatableCellBadgesComponent, selector: "aca-datatable-cell-badges", inputs: ["node"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
8426
8356
|
}
|
|
@@ -8484,14 +8414,14 @@ class FilesComponent extends PageComponent {
|
|
|
8484
8414
|
super.ngOnInit();
|
|
8485
8415
|
const { data } = this.route.snapshot;
|
|
8486
8416
|
this.title = data.title;
|
|
8487
|
-
this.route.queryParamMap.pipe(
|
|
8417
|
+
this.route.queryParamMap.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((queryMap) => {
|
|
8488
8418
|
this.queryParams = queryMap.params;
|
|
8489
8419
|
});
|
|
8490
|
-
this.route.params.pipe(
|
|
8420
|
+
this.route.params.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(({ folderId }) => {
|
|
8491
8421
|
const nodeId = folderId || data.defaultNodeId;
|
|
8492
8422
|
this.contentApi
|
|
8493
8423
|
.getNode(nodeId)
|
|
8494
|
-
.pipe(
|
|
8424
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
8495
8425
|
.subscribe((node) => {
|
|
8496
8426
|
this.isValidPath = true;
|
|
8497
8427
|
if (node?.entry?.isFolder) {
|
|
@@ -8511,11 +8441,11 @@ class FilesComponent extends PageComponent {
|
|
|
8511
8441
|
]);
|
|
8512
8442
|
this.store
|
|
8513
8443
|
.select(isAdmin)
|
|
8514
|
-
.pipe(
|
|
8444
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
8515
8445
|
.subscribe((value) => {
|
|
8516
8446
|
this.isAdmin = value;
|
|
8517
8447
|
});
|
|
8518
|
-
this.extensions.filesDocumentListPreset$.pipe(
|
|
8448
|
+
this.extensions.filesDocumentListPreset$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((preset) => {
|
|
8519
8449
|
this.columns = preset;
|
|
8520
8450
|
});
|
|
8521
8451
|
if (this.queryParams && Object.keys(this.queryParams).length > 0) {
|
|
@@ -9179,11 +9109,11 @@ class DetailsComponent extends PageComponent {
|
|
|
9179
9109
|
contentService;
|
|
9180
9110
|
nodeId;
|
|
9181
9111
|
isLoading;
|
|
9182
|
-
onDestroy$ = new Subject();
|
|
9183
9112
|
activeTab = 1;
|
|
9184
9113
|
aspectActions = [];
|
|
9185
9114
|
nodeIcon;
|
|
9186
9115
|
canManagePermissions = true;
|
|
9116
|
+
onDestroy$ = new Subject();
|
|
9187
9117
|
constructor(route, contentApi, contentService) {
|
|
9188
9118
|
super();
|
|
9189
9119
|
this.route = route;
|
|
@@ -9243,9 +9173,10 @@ class DetailsComponent extends PageComponent {
|
|
|
9243
9173
|
this.store.dispatch(new NavigateToFolder({ entry: path }));
|
|
9244
9174
|
}
|
|
9245
9175
|
ngOnDestroy() {
|
|
9246
|
-
this.store.dispatch(new SetSelectedNodesAction([]));
|
|
9247
9176
|
this.onDestroy$.next();
|
|
9248
9177
|
this.onDestroy$.complete();
|
|
9178
|
+
this.store.dispatch(new SetSelectedNodesAction([]));
|
|
9179
|
+
super.ngOnDestroy();
|
|
9249
9180
|
}
|
|
9250
9181
|
isSmartFolder() {
|
|
9251
9182
|
if (!this.node?.isFolder) {
|
|
@@ -9355,12 +9286,11 @@ class ViewProfileComponent {
|
|
|
9355
9286
|
contactSectionDropdown = false;
|
|
9356
9287
|
contactSectionButtonsToggle = true;
|
|
9357
9288
|
appNavNarMode$;
|
|
9358
|
-
onDestroy$ = new Subject();
|
|
9359
9289
|
constructor(router, apiService, appService) {
|
|
9360
9290
|
this.router = router;
|
|
9361
9291
|
this.appService = appService;
|
|
9362
9292
|
this.peopleApi = new PeopleApi(apiService.getInstance());
|
|
9363
|
-
this.appNavNarMode$ = appService.appNavNarMode$.pipe(
|
|
9293
|
+
this.appNavNarMode$ = appService.appNavNarMode$.pipe(takeUntilDestroyed());
|
|
9364
9294
|
}
|
|
9365
9295
|
ngOnInit() {
|
|
9366
9296
|
this.populateForm(this.personDetails);
|
|
@@ -9480,10 +9410,6 @@ class ViewProfileComponent {
|
|
|
9480
9410
|
isSaveButtonDisabled() {
|
|
9481
9411
|
return this.profileForm.invalid;
|
|
9482
9412
|
}
|
|
9483
|
-
ngOnDestroy() {
|
|
9484
|
-
this.onDestroy$.next(true);
|
|
9485
|
-
this.onDestroy$.complete();
|
|
9486
|
-
}
|
|
9487
9413
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ViewProfileComponent, deps: [{ token: i2$1.Router }, { token: i1$2.AlfrescoApiService }, { token: i1$1.AppService }], target: i0.ɵɵFactoryTarget.Component });
|
|
9488
9414
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ViewProfileComponent, isStandalone: true, selector: "app-view-profile", ngImport: i0, template: "<div class=\"app-profile-container\">\n <div class=\"app-profile-row\">\n <div class=\"app-profile-title\">\n <button *ngIf=\"(appNavNarMode$ | async) === 'collapsed'\" mat-icon-button (click)=\"toggleClick()\"\n title=\"{{'APP.TOOLTIPS.EXPAND_NAVIGATION' | translate}}\">\n <mat-icon>menu</mat-icon>\n </button>\n <mat-icon class=\"app-profile-icon\" (click)=\"navigateToPersonalFiles()\" id=\"backButton\">arrow_back</mat-icon>\n <h3 class=\"app-profile\">{{'APP.EDIT_PROFILE.MY_PROFILE' | translate}}</h3>\n </div>\n </div>\n <div class=\"app-profile-general-row\" [formGroup]=\"profileForm\">\n <div class=\"app-profile-general\">\n <div class=\"app-profile-general-section\">\n <mat-icon class=\"app-profile-general-icon\" (click)=\"toggleGeneralDropdown()\" id=\"toggle-general-dropdown\">\n {{ generalSectionDropdown ? 'expand_more' : 'chevron_right'}}</mat-icon>\n <h4 class=\"app-general-title\">{{'APP.EDIT_PROFILE.GENERAL' | translate}}</h4>\n </div>\n <div class=\"app-general-edit-btn\" *ngIf=\"generalSectionButtonsToggle\">\n <button mat-raised-button (click)=\"toggleGeneralButtons()\" id=\"general-edit-button\"\n class=\"app-general-edit\">{{'APP.EDIT_PROFILE.EDIT' | translate}}</button>\n </div>\n <div class=\"app-general-edit-btn\" *ngIf=\"!generalSectionButtonsToggle\">\n <button mat-raised-button class=\"app-general-cancel-btn\" id=\"general-cancel-button\"\n (click)=\"toggleGeneralButtons()\">{{'APP.EDIT_PROFILE.CANCEL' | translate}}</button>\n <button mat-raised-button class=\"app-general-save-btn\" id=\"general-save-button\" [disabled]=\"profileForm.invalid\"\n (click)=\"onSaveGeneralData(profileForm)\">{{'APP.EDIT_PROFILE.SAVE' | translate}}</button>\n </div>\n </div>\n <mat-divider class=\"app-divider\" *ngIf=\"generalSectionDropdown\" />\n <div *ngIf=\"generalSectionDropdown\">\n <div class=\"app-general-dropdown\">\n <div class=\"app-general-dropdown-details\">\n <h4 class=\"app-profile-general-dropdown-heading\">{{'APP.EDIT_PROFILE.FIRST_NAME' | translate}}</h4>\n <p class=\"app-profile-general-dropdown-details\">{{personDetails?.firstName}}</p>\n </div>\n <mat-divider class=\"app-general-dropdown-divider\" />\n <div class=\"app-general-dropdown-details\">\n <h4 class=\"app-profile-general-dropdown-heading\">{{'APP.EDIT_PROFILE.LAST_NAME' | translate}}</h4>\n <p class=\"app-profile-general-dropdown-details\">{{personDetails?.lastName}}</p>\n </div>\n <mat-divider class=\"app-general-dropdown-divider\" />\n <div class=\"app-general-dropdown-details\">\n <h4 class=\"app-profile-general-dropdown-heading\">{{'APP.EDIT_PROFILE.JOB_TITLE' | translate}}</h4>\n <p class=\"app-profile-general-dropdown-details\" *ngIf=\"generalSectionButtonsToggle\">{{personDetails?.jobTitle}}</p>\n <input type=\"text\" value=\"\" formControlName=\"jobTitle\" *ngIf=\"!generalSectionButtonsToggle\"\n class=\"app-profile-general-dropdown-input-details app-selected\">\n </div>\n <mat-divider class=\"app-general-dropdown-divider\" />\n <div class=\"app-general-dropdown-details\">\n <h4 class=\"app-profile-general-dropdown-heading\">{{'APP.EDIT_PROFILE.LOCATION' | translate}}</h4>\n <p class=\"app-profile-general-dropdown-details\" *ngIf=\"generalSectionButtonsToggle\">{{personDetails?.location}}</p>\n <input type=\"text\" value=\"\" formControlName=\"location\" *ngIf=\"!generalSectionButtonsToggle\"\n class=\"app-profile-general-dropdown-input-details app-selected\">\n </div>\n <mat-divider class=\"app-general-dropdown-divider\" />\n <div class=\"app-general-dropdown-details\">\n <h4 class=\"app-profile-general-dropdown-heading\">{{'APP.EDIT_PROFILE.TELEPHONE' | translate}}</h4>\n <p class=\"app-profile-general-dropdown-details\" *ngIf=\"generalSectionButtonsToggle\">{{personDetails?.telephone}}</p>\n <input type=\"tel\" name=\"Telephone\" value=\"\" formControlName=\"telephone\" *ngIf=\"!generalSectionButtonsToggle\"\n class=\"app-profile-general-dropdown-input-details app-selected\">\n <mat-error class=\"app-error-message\" *ngIf=\"profileForm.get('telephone').invalid\">\n {{ 'APP.EDIT_PROFILE.INVALID_INPUT' | translate }}\n </mat-error>\n </div>\n <mat-divider class=\"app-general-dropdown-divider\" />\n <div class=\"app-general-dropdown-details\">\n <h4 class=\"app-profile-general-dropdown-heading\">{{'APP.EDIT_PROFILE.MOBILE' | translate}}</h4>\n <p class=\"app-profile-general-dropdown-details\" *ngIf=\"generalSectionButtonsToggle\">{{personDetails?.mobile}}</p>\n <input type=\"tel\" value=\"\" formControlName=\"mobile\" *ngIf=\"!generalSectionButtonsToggle\"\n class=\"app-profile-general-dropdown-input-details app-selected\">\n <mat-error class=\"app-error-message\" *ngIf=\"profileForm.get('mobile').invalid\">\n {{ 'APP.EDIT_PROFILE.INVALID_INPUT' | translate }}\n </mat-error>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"app-profile-contact-row\" [formGroup]=\"profileForm\">\n <div class=\"app-profile-general profile-general-bottom-radius\">\n <div class=\"app-profile-general-section\">\n <mat-icon class=\"app-profile-general-icon\" (click)=\"toggleContactDropdown()\" id=\"toggle-contact-dropdown\">\n {{ contactSectionDropdown ? 'expand_more' : 'chevron_right'}}</mat-icon>\n <h4 class=\"app-general-title\">{{'APP.EDIT_PROFILE.COMPANY_DETAILS' | translate}}</h4>\n </div>\n\n <div class=\"app-general-edit-btn\" *ngIf=\"contactSectionButtonsToggle\">\n <button mat-raised-button class=\"app-general-edit\" id=\"contact-edit-button\"\n (click)=\"toggleContactButtons()\">{{'APP.EDIT_PROFILE.EDIT' | translate}}</button>\n </div>\n <div class=\"app-general-edit-btn\" *ngIf=\"!contactSectionButtonsToggle\">\n <button mat-raised-button class=\"app-general-cancel-btn\" id=\"contact-cancel-button\"\n (click)=\"toggleContactButtons()\">{{'APP.EDIT_PROFILE.CANCEL' | translate}}</button>\n <button mat-raised-button class=\"app-general-save-btn\" id=\"contact-save-button\" [disabled]=\"profileForm.invalid\"\n (click)=\"onSaveCompanyData(profileForm)\">{{'APP.EDIT_PROFILE.SAVE' | translate}}</button>\n </div>\n </div>\n <mat-divider class=\"app-divider\" *ngIf=\"contactSectionDropdown\" />\n <div *ngIf=\"contactSectionDropdown\">\n <div class=\"app-general-dropdown\">\n <div class=\"app-general-dropdown-details\">\n <h4 class=\"app-profile-general-dropdown-heading\">{{'APP.EDIT_PROFILE.NAME' | translate}}</h4>\n <p class=\"app-profile-general-dropdown-details\" *ngIf=\"contactSectionButtonsToggle\">{{personDetails?.company?.organization}}</p>\n <input type=\"text\" value=\"\" *ngIf=\"!contactSectionButtonsToggle\" formControlName=\"companyName\"\n class=\"app-profile-general-dropdown-input-details app-selected\">\n </div>\n <mat-divider class=\"app-general-dropdown-divider\" />\n <div class=\"app-general-dropdown-details\">\n <h4 class=\"app-profile-general-dropdown-heading\">{{'APP.EDIT_PROFILE.ADDRESS' | translate}}</h4>\n <p class=\"app-profile-general-dropdown-details\" *ngIf=\"contactSectionButtonsToggle\">{{personDetails?.company?.address1}}</p>\n <input type=\"text\" value=\"\" *ngIf=\"!contactSectionButtonsToggle\" formControlName=\"companyAddress\"\n class=\"app-profile-general-dropdown-input-details app-selected\">\n </div>\n <mat-divider class=\"app-general-dropdown-divider\" />\n <div class=\"app-general-dropdown-details\">\n <h4 class=\"app-profile-general-dropdown-heading\">{{'APP.EDIT_PROFILE.POSTCODE' | translate}}</h4>\n <p class=\"app-profile-general-dropdown-details\" *ngIf=\"contactSectionButtonsToggle\">{{personDetails?.company?.postcode}}</p>\n <input type=\"text\" value=\"\" *ngIf=\"!contactSectionButtonsToggle\" formControlName=\"companyPostCode\"\n class=\"app-profile-general-dropdown-input-details app-selected\">\n </div>\n <mat-divider class=\"app-general-dropdown-divider\" />\n <div class=\"app-general-dropdown-details\">\n <h4 class=\"app-profile-general-dropdown-heading\">{{'APP.EDIT_PROFILE.TELEPHONE' | translate}}</h4>\n <p class=\"app-profile-general-dropdown-details\" *ngIf=\"contactSectionButtonsToggle\">{{personDetails?.company?.telephone}}</p>\n <input type=\"tel\" value=\"\" *ngIf=\"!contactSectionButtonsToggle\" formControlName=\"companyTelephone\"\n class=\"app-profile-general-dropdown-input-details app-selected\">\n <mat-error class=\"app-error-message\" *ngIf=\"profileForm.get('companyTelephone').invalid\">\n {{ 'APP.EDIT_PROFILE.INVALID_INPUT' | translate }}\n </mat-error>\n </div>\n <mat-divider class=\"app-general-dropdown-divider\" />\n <div class=\"app-general-dropdown-details\">\n <h4 class=\"app-profile-general-dropdown-heading\">{{'APP.EDIT_PROFILE.EMAIL' | translate}}</h4>\n <p class=\"app-profile-general-dropdown-details\" *ngIf=\"contactSectionButtonsToggle\">{{personDetails?.company?.email}}</p>\n <input type=\"text\" value=\"\" *ngIf=\"!contactSectionButtonsToggle\" formControlName=\"companyEmail\"\n class=\"app-profile-general-dropdown-input-details app-selected\">\n <mat-error class=\"app-error-message\" *ngIf=\"profileForm.get('companyEmail').invalid\">\n {{ 'APP.EDIT_PROFILE.INVALID_INPUT' | translate }}\n </mat-error>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["app-view-profile{letter-spacing:.5px}app-view-profile .app-profile-container{overflow:scroll;height:100%;width:100%}app-view-profile .app-profile-row{width:100%;height:32px;padding:32px 0;border-bottom:1px solid var(--theme-about-panel-border-color)}app-view-profile .app-profile-title{display:flex;flex-direction:row;align-items:center;height:32px;padding:0 24px}app-view-profile .app-profile{cursor:pointer;margin-top:1rem}app-view-profile .app-profile-general-row{margin:2rem 0 0 2rem;width:70%;border:1px solid var(--theme-grey-background-color);border-radius:1rem}app-view-profile .app-profile-icon{margin-right:1rem;cursor:pointer}app-view-profile .app-profile-general-icon{cursor:pointer}app-view-profile .app-profile-text{letter-spacing:.5px}app-view-profile .app-profile-general{display:flex;padding-left:1rem}app-view-profile .app-profile-general-bottom-radius{border-bottom-left-radius:0;border-bottom-right-radius:0}app-view-profile .app-profile-general-section{display:flex;width:60%;padding-top:1rem;cursor:pointer}app-view-profile .app-general-title{margin-left:.6rem;margin-top:4px;letter-spacing:.5px}app-view-profile .app-general-edit-btn{width:60%;text-align:end}app-view-profile .app-general-edit-btn .app-general-edit{background:var(--theme-grey-text-background-color);height:30px;margin:1rem}app-view-profile .app-general-edit-btn .app-general-cancel-btn{height:30px;margin:1rem 1rem 1rem .5rem;background-color:var(--theme-grey-text-background-color);padding-top:.25px}app-view-profile .app-general-edit-btn .app-general-save-btn{width:75px;height:30px;margin:1rem 1rem 1rem .5rem;color:#fff;background-color:var(--theme-blue-button-color);font-weight:600}app-view-profile .app-divider{border-top-width:2px;border-top-color:var(--theme-grey-background-color);padding-left:-1px;padding-right:1px}app-view-profile .app-selected:focus{border:2px solid var(--theme-blue-button-color);border-radius:6px;outline:none;box-shadow:0 0 2px var(--theme-blue-button-color)}app-view-profile .app-general-edit:hover{background:var(--theme-grey-hover-background-color)}app-view-profile .app-general-dropdown-divider{border-top-color:var(--theme-grey-divider-color)}app-view-profile .app-general-dropdown{padding:0 1rem}app-view-profile .app-general-dropdown-details{display:flex}app-view-profile .app-profile-general-dropdown-heading{color:var(--theme-heading-color);width:20%;font-weight:400;letter-spacing:.5px}app-view-profile .app-profile-general-dropdown-details{margin-top:1.3rem;letter-spacing:.5px}app-view-profile .app-profile-general-dropdown-input-details{width:24%;height:25px;border:none;margin-top:1.3rem;background-color:var(--theme-dropdown-color)}app-view-profile .app-profile-login-row{margin:2rem 0 0 2rem;width:70%;border:1px solid var(--theme-grey-background-color);border-radius:1rem}app-view-profile .app-profile-login{display:flex;padding-left:1rem}app-view-profile .app-profile-login-dropdown-details{width:24%;height:25px;border:none;margin-top:1.3rem;background-color:var(--theme-dropdown-color)}app-view-profile .app-profile-login-dropdown-heading-forgot{margin-top:1.3rem;color:var(--theme-heading-color);margin-left:16rem}app-view-profile .app-profile-company-row{margin-top:2rem}app-view-profile .app-profile-contact-row{margin:2rem 0 5rem 2rem;width:70%;border:1px solid var(--theme-grey-background-color);border-radius:1rem}app-view-profile .app-error-message{padding-top:2rem;padding-left:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i7$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i7$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
9489
9415
|
}
|
|
@@ -9552,10 +9478,10 @@ class SharedLinkViewComponent {
|
|
|
9552
9478
|
extensions;
|
|
9553
9479
|
alfrescoApiService;
|
|
9554
9480
|
appService;
|
|
9555
|
-
onDestroy$ = new Subject();
|
|
9556
|
-
sharedLinksApi;
|
|
9557
9481
|
sharedLinkId = null;
|
|
9558
9482
|
viewerToolbarActions = [];
|
|
9483
|
+
sharedLinksApi;
|
|
9484
|
+
destroyRef = inject(DestroyRef);
|
|
9559
9485
|
constructor(route, store, extensions, alfrescoApiService, appService) {
|
|
9560
9486
|
this.route = route;
|
|
9561
9487
|
this.store = store;
|
|
@@ -9576,15 +9502,11 @@ class SharedLinkViewComponent {
|
|
|
9576
9502
|
});
|
|
9577
9503
|
this.extensions
|
|
9578
9504
|
.getSharedLinkViewerToolbarActions()
|
|
9579
|
-
.pipe(
|
|
9505
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
9580
9506
|
.subscribe((actions) => {
|
|
9581
9507
|
this.viewerToolbarActions = actions;
|
|
9582
9508
|
});
|
|
9583
9509
|
}
|
|
9584
|
-
ngOnDestroy() {
|
|
9585
|
-
this.onDestroy$.next(true);
|
|
9586
|
-
this.onDestroy$.complete();
|
|
9587
|
-
}
|
|
9588
9510
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SharedLinkViewComponent, deps: [{ token: i2$1.ActivatedRoute }, { token: i1.Store }, { token: i1$1.AppExtensionService }, { token: i1$2.AlfrescoApiService }, { token: i1$1.AppService }], target: i0.ɵɵFactoryTarget.Component });
|
|
9589
9511
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SharedLinkViewComponent, isStandalone: true, selector: "app-shared-link-view", host: { classAttribute: "app-shared-link-view" }, ngImport: i0, template: "<ng-container *ngIf=\"sharedLinkId\">\n <adf-alfresco-viewer [allowPrint]=\"false\" [allowDownload]=\"false\" [allowFullScreen]=\"false\" [sharedLinkId]=\"sharedLinkId\" [allowGoBack]=\"false\">\n <adf-viewer-toolbar-actions>\n <aca-toolbar [items]=\"viewerToolbarActions\" />\n </adf-viewer-toolbar-actions>\n </adf-alfresco-viewer>\n</ng-container>\n", styles: [".app-shared-link-view{width:100%;height:100%}.app-shared-link-view .adf-alfresco-viewer .adf-viewer{position:relative}.app-shared-link-view .adf-viewer-toolbar .adf-toolbar-divider{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ViewerModule }, { kind: "component", type: i2.ViewerToolbarActionsComponent, selector: "adf-viewer-toolbar-actions" }, { kind: "ngmodule", type: AlfrescoViewerModule }, { kind: "component", type: i1$2.AlfrescoViewerComponent, selector: "adf-alfresco-viewer", inputs: ["nodeId", "versionId", "sharedLinkId", "showViewer", "maxRetries", "allowGoBack", "showToolbar", "overlayMode", "allowNavigate", "canNavigateBefore", "canNavigateNext", "allowLeftSidebar", "allowRightSidebar", "showRightSidebar", "showLeftSidebar", "allowDownload", "allowPrint", "allowFullScreen", "hideInfoButton", "closeButtonPosition", "sidebarRightTemplate", "sidebarLeftTemplate"], outputs: ["invalidSharedLink", "navigateBefore", "navigateNext", "showViewerChange"] }, { kind: "component", type: ToolbarComponent, selector: "aca-toolbar", inputs: ["items"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
9590
9512
|
}
|
|
@@ -9729,7 +9651,7 @@ class SearchAiResultsComponent extends PageComponent {
|
|
|
9729
9651
|
const openedViewerPreviously = this.openedViewer;
|
|
9730
9652
|
this.openedViewer = !!params.location;
|
|
9731
9653
|
return !this.openedViewer && (!openedViewerPreviously || !this.queryAnswer);
|
|
9732
|
-
}),
|
|
9654
|
+
}), takeUntilDestroyed(this.destroyRef))
|
|
9733
9655
|
.subscribe((params) => {
|
|
9734
9656
|
this._agentId = params.agentId;
|
|
9735
9657
|
this._searchQuery = params.query ? decodeURIComponent(params.query) : '';
|
|
@@ -9749,10 +9671,6 @@ class SearchAiResultsComponent extends PageComponent {
|
|
|
9749
9671
|
headerText: 'KNOWLEDGE_RETRIEVAL.SEARCH.DISCARD_CHANGES.WARNING'
|
|
9750
9672
|
};
|
|
9751
9673
|
}
|
|
9752
|
-
ngOnDestroy() {
|
|
9753
|
-
this.onDestroy$.next();
|
|
9754
|
-
this.onDestroy$.complete();
|
|
9755
|
-
}
|
|
9756
9674
|
copyResponseToClipboard() {
|
|
9757
9675
|
this.clipboardService.copyContentToClipboard(this.queryAnswer.answer, this.translateService.instant('KNOWLEDGE_RETRIEVAL.SEARCH.RESULTS_PAGE.COPY_MESSAGE'));
|
|
9758
9676
|
}
|
|
@@ -9773,7 +9691,7 @@ class SearchAiResultsComponent extends PageComponent {
|
|
|
9773
9691
|
}
|
|
9774
9692
|
this._queryAnswer = response.entry;
|
|
9775
9693
|
return forkJoin(this.queryAnswer.references.map((reference) => this.nodesApiService.getNode(reference.referenceId)));
|
|
9776
|
-
}), retryWhen((errors) => this.aiSearchRetryWhen(errors)), finalize(() => (this._loading = false)),
|
|
9694
|
+
}), retryWhen((errors) => this.aiSearchRetryWhen(errors)), finalize(() => (this._loading = false)), takeUntilDestroyed(this.destroyRef))
|
|
9777
9695
|
.subscribe((nodes) => {
|
|
9778
9696
|
nodes.forEach((node) => {
|
|
9779
9697
|
this._mimeTypeIconsByNodeId[node.id] = this.thumbnailService.getMimeTypeIcon(node.content?.mimeType);
|
|
@@ -10623,14 +10541,9 @@ const CONTENT_LAYOUT_ROUTES = {
|
|
|
10623
10541
|
class UploadFilesDialogComponent {
|
|
10624
10542
|
store;
|
|
10625
10543
|
showFileUploadingDialog$;
|
|
10626
|
-
onDestroy$ = new Subject();
|
|
10627
10544
|
constructor(store) {
|
|
10628
10545
|
this.store = store;
|
|
10629
|
-
this.showFileUploadingDialog$ = this.store.select(getFileUploadingDialog).pipe(delay(0),
|
|
10630
|
-
}
|
|
10631
|
-
ngOnDestroy() {
|
|
10632
|
-
this.onDestroy$.next(true);
|
|
10633
|
-
this.onDestroy$.complete();
|
|
10546
|
+
this.showFileUploadingDialog$ = this.store.select(getFileUploadingDialog).pipe(delay(0), takeUntilDestroyed());
|
|
10634
10547
|
}
|
|
10635
10548
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UploadFilesDialogComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component });
|
|
10636
10549
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: UploadFilesDialogComponent, isStandalone: true, selector: "aca-upload-files-dialog", ngImport: i0, template: "<adf-file-uploading-dialog *ngIf=\"showFileUploadingDialog$ | async\" position=\"left\" />", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: UploadModule }, { kind: "component", type: i1$2.FileUploadingDialogComponent, selector: "adf-file-uploading-dialog", inputs: ["position", "alwaysVisible"], outputs: ["error"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
@@ -10673,7 +10586,6 @@ class AgentsButtonComponent {
|
|
|
10673
10586
|
data;
|
|
10674
10587
|
selectedNodesState;
|
|
10675
10588
|
_agents = [];
|
|
10676
|
-
onDestroy$ = new Subject();
|
|
10677
10589
|
_disabled = true;
|
|
10678
10590
|
_initialsByAgentId = {};
|
|
10679
10591
|
_hxInsightUrl;
|
|
@@ -10689,6 +10601,7 @@ class AgentsButtonComponent {
|
|
|
10689
10601
|
get hxInsightUrl() {
|
|
10690
10602
|
return this._hxInsightUrl;
|
|
10691
10603
|
}
|
|
10604
|
+
destroyRef = inject(DestroyRef);
|
|
10692
10605
|
constructor(store, notificationService, searchAiService, agentService, translateService, cd) {
|
|
10693
10606
|
this.store = store;
|
|
10694
10607
|
this.notificationService = notificationService;
|
|
@@ -10700,7 +10613,7 @@ class AgentsButtonComponent {
|
|
|
10700
10613
|
ngOnInit() {
|
|
10701
10614
|
this.store
|
|
10702
10615
|
.select(getAppSelection)
|
|
10703
|
-
.pipe(
|
|
10616
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
10704
10617
|
.subscribe((selection) => {
|
|
10705
10618
|
this.selectedNodesState = selection;
|
|
10706
10619
|
});
|
|
@@ -10720,10 +10633,6 @@ class AgentsButtonComponent {
|
|
|
10720
10633
|
}
|
|
10721
10634
|
}, (error) => this.notificationService.showError(this.translateService.instant(error)));
|
|
10722
10635
|
}
|
|
10723
|
-
ngOnDestroy() {
|
|
10724
|
-
this.onDestroy$.next();
|
|
10725
|
-
this.onDestroy$.complete();
|
|
10726
|
-
}
|
|
10727
10636
|
onClick() {
|
|
10728
10637
|
if (!this.selectedNodesState.isEmpty) {
|
|
10729
10638
|
const message = this.searchAiService.checkSearchAvailability(this.selectedNodesState);
|
|
@@ -10780,22 +10689,18 @@ class SaveSearchSidenavComponent {
|
|
|
10780
10689
|
savedSearchesService = inject(SavedSearchesService);
|
|
10781
10690
|
appService = inject(AppService);
|
|
10782
10691
|
translationService = inject(TranslationService);
|
|
10783
|
-
destroy$ = new Subject();
|
|
10784
10692
|
item;
|
|
10785
10693
|
manageSearchesId = 'manage-saved-searches';
|
|
10694
|
+
destroyRef = inject(DestroyRef);
|
|
10786
10695
|
ngOnInit() {
|
|
10787
10696
|
this.savedSearchesService.innit();
|
|
10788
10697
|
this.savedSearchesService.savedSearches$
|
|
10789
10698
|
.asObservable()
|
|
10790
|
-
.pipe(
|
|
10699
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
10791
10700
|
.subscribe((savedSearches) => {
|
|
10792
10701
|
this.item = this.createNavBarLinkRef(savedSearches);
|
|
10793
10702
|
});
|
|
10794
10703
|
}
|
|
10795
|
-
ngOnDestroy() {
|
|
10796
|
-
this.destroy$.next();
|
|
10797
|
-
this.destroy$.complete();
|
|
10798
|
-
}
|
|
10799
10704
|
onActionClick(el) {
|
|
10800
10705
|
if (el.id !== this.manageSearchesId) {
|
|
10801
10706
|
this.appService.appNavNarMode$.next('collapsed');
|