UNPKG

@alfresco/adf-content-services

Version:

Alfresco ADF content services

1,204 lines (1,153 loc) 457 kB
import * as i0 from '@angular/core'; import { AfterViewInit, ElementRef, OnInit, OnChanges, AfterContentInit, EventEmitter, SimpleChanges, OnDestroy, InjectionToken, ViewContainerRef, ComponentRef, TemplateRef, QueryList, AfterViewChecked, Type, NgZone, ModuleWithProviders } from '@angular/core'; import { Node, Site, FavoritesApi, SitesApi, SiteEntry, NodeEntry, DeletedNodeEntry, TrashcanApi, NodesApi, PathInfo, ContentApi, VersionEntry, TagEntry, TagsApi, TagPaging, TagBody, RequestHighlight, AlfrescoApi, AlfrescoApiConfig, SearchApi, ResultSetPaging, RequestScope, SearchRequest, RequestSortDefinitionInner, RequestFacetFields, NodePaging, NodePagingList, QueriesApi, Pagination, PeopleApi, SharedlinksApi, FavoritePaging, SiteMemberPaging, SitePaging, DeletedNodesPaging, SharedLinkPaging, ChildAssociationBody, AssociationBody, DiscoveryApi, AboutApi, SystemPropertiesApi, RepositoryInfo, BpmProductVersionModel, SystemPropertiesRepresentation, UploadApi, VersionsApi, PathElement, ContentPagingQuery, Version, Category, ClassesApi, Definition, Property as Property$1, PermissionElement, Capabilities, Group, GroupsApi, GroupMemberPaging, SharedLinkBodyCreate, SharedLinkEntry, GroupEntry, ContentIncludeQuery, AspectEntry, AspectPaging, AspectsApi, ListAspectsOpts, TypesApi, TypeEntry, CommentsApi, NodeChildAssociation, VersionInfo, SiteBodyCreate, SiteMembershipRequestWithPersonPaging, SiteMembershipBodyCreate, SiteMemberEntry, SiteMembershipBodyUpdate, SiteGroupPaging, SiteGroupEntry, RenditionsApi, RenditionEntry, NodesIncludeQuery, NodeAssignedHold, JobIdBodyEntry, SizeDetailsEntry, NodeAssociationPaging, PersonBodyCreate, PersonBodyUpdate, ContentFieldsQuery, PreferenceEntry, CategoriesApi, CategoryPaging, CategoryEntry, CategoryBody, CategoryLinkBody, SecurityGroup, SecurityMark, SecurityGroupsApi, SecurityMarksApi, AuthorityClearanceApi, SecurityGroupBody, SecurityGroupEntry, SecurityMarkBody, SecurityMarkPaging, SecurityMarkEntry, AuthorityClearanceGroupPaging, NodeSecurityMarkBody, LegalHoldApi, Hold, HoldEntry, HoldPaging, HoldBody, RequestQuery, BulkAssignHoldResponseEntry, HoldBulkStatusEntry } from '@alfresco/js-api'; import * as rxjs from 'rxjs'; import { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs'; import { ErrorStateMatcher } from '@angular/material/core'; import { PaginationModel, Chip, AppConfigService, StorageService, OpenidConfiguration, DataColumn, SearchComponentInterface, AuthenticationService, SearchTextInputComponent, DataSorting, DataRow, ThumbnailService, DataTableAdapter, BaseEvent, DataTableSchema, PaginatedComponent, DataColumnListComponent, CustomLoadingContentTemplateDirective, CustomNoPermissionTemplateDirective, CustomEmptyContentTemplateDirective, ShowHeaderMode, DataTableComponent, DataCellEvent, DataRowActionEvent, RequestPaginationModel, TranslationService, FileInfo, HighlightDirective, InfinitePaginationComponent, CardViewItem, CardViewTextItemModel, CardViewDateItemModel, ObjectDataRow, User, CommentModel, CommentsService, UpdateNotification, CardViewBaseItemModel, Track, ViewerComponent, ViewerToolbarComponent, ViewerSidebarComponent, ViewerToolbarActionsComponent, ViewerMoreActionsComponent, ViewerOpenWithComponent, CloseButtonPosition } from '@alfresco/adf-core'; import * as _angular_forms from '@angular/forms'; import { FormControl, UntypedFormControl, FormGroupDirective, NgForm, FormGroup, UntypedFormGroup, Validators } from '@angular/forms'; import { MatDialog, MatDialogRef, MatDialogConfig } from '@angular/material/dialog'; import { MatCheckboxChange, MatCheckbox } from '@angular/material/checkbox'; import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete'; import { MatChipInputEvent } from '@angular/material/chips'; import * as i1 from '@mat-datetimepicker/core'; import { MatDatetimepickerInputEvent } from '@mat-datetimepicker/core'; import { ConfigurableFocusTrap } from '@angular/cdk/a11y'; import { MatMenuTrigger } from '@angular/material/menu'; import { MatRadioChange } from '@angular/material/radio'; import { MatSelect, MatSelectChange } from '@angular/material/select'; import { DataSource, CollectionViewer, SelectionModel } from '@angular/cdk/collections'; import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; import { MatSlideToggleChange } from '@angular/material/slide-toggle'; import { MatSelectionList } from '@angular/material/list'; import { FlatTreeControl } from '@angular/cdk/tree'; declare class AlfrescoIconComponent { static ɵfac: i0.ɵɵFactoryDeclaration<AlfrescoIconComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<AlfrescoIconComponent, "adf-alfresco-icon", never, {}, {}, never, never, true, never>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare class NodeLockDirective implements AfterViewInit { element: ElementRef<any>; private readonly renderer; private readonly contentService; private readonly contentNodeDialogService; /** Node to lock/unlock. */ node: Node; onClick(event: any): void; ngAfterViewInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration<NodeLockDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<NodeLockDirective, "[adf-node-lock]", never, { "node": { "alias": "adf-node-lock"; "required": false; }; }, {}, never, never, true, never>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare class NodeCounterDirective implements OnInit, OnChanges { private readonly viewContainerRef; /** Number to display in the counter badge */ counter: number; componentRef: NodeCounterComponent; ngOnInit(): void; ngOnChanges(): void; static ɵfac: i0.ɵɵFactoryDeclaration<NodeCounterDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<NodeCounterDirective, "[adf-node-counter]", never, { "counter": { "alias": "adf-node-counter"; "required": false; }; }, {}, never, never, true, never>; } declare class NodeCounterComponent { counter: number; static ɵfac: i0.ɵɵFactoryDeclaration<NodeCounterComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<NodeCounterComponent, "adf-node-counter", never, {}, {}, never, never, true, never>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare class AutoFocusDirective implements AfterContentInit { private readonly el; ngAfterContentInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration<AutoFocusDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<AutoFocusDirective, "[adf-auto-focus]", never, {}, {}, never, never, true, never>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface LibraryEntity { entry: Site; isLibrary: boolean; isFavorite: boolean; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare class LibraryFavoriteDirective implements OnChanges { private readonly alfrescoApiService; private readonly notificationService; library: LibraryEntity; toggle: EventEmitter<any>; error: EventEmitter<any>; private targetLibrary; readonly favoritesApi: FavoritesApi; onClick(): void; ngOnChanges(changes: SimpleChanges): void; isFavorite(): boolean; private markFavoriteLibrary; private addFavorite; private removeFavorite; static ɵfac: i0.ɵɵFactoryDeclaration<LibraryFavoriteDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<LibraryFavoriteDirective, "[adf-favorite-library]", ["favoriteLibrary"], { "library": { "alias": "adf-favorite-library"; "required": false; }; }, { "toggle": "toggle"; "error": "error"; }, never, never, true, never>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface LibraryMembershipToggleEvent { updatedEntry?: any; shouldReload: boolean; i18nKey: string; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface LibraryMembershipErrorEvent { error: any; i18nKey: string; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare class LibraryMembershipDirective implements OnChanges { private readonly alfrescoApiService; private readonly sitesService; private readonly versionCompatibilityService; targetSite: any; isJoinRequested: BehaviorSubject<boolean>; readonly sitesApi: SitesApi; /** Site for which to toggle the membership request. */ selection: SiteEntry; /** Site for which to toggle the membership request. */ isAdmin: boolean; toggle: EventEmitter<LibraryMembershipToggleEvent>; error: EventEmitter<LibraryMembershipErrorEvent>; onClick(): void; ngOnChanges(changes: SimpleChanges): void; toggleMembershipRequest(): void; markMembershipRequest(): void; private joinLibraryRequest; private joinLibrary; private cancelJoinRequest; private getMembershipRequest; static ɵfac: i0.ɵɵFactoryDeclaration<LibraryMembershipDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<LibraryMembershipDirective, "[adf-library-membership]", ["libraryMembership"], { "selection": { "alias": "adf-library-membership"; "required": false; }; "isAdmin": { "alias": "isAdmin"; "required": false; }; }, { "toggle": "toggle"; "error": "error"; }, never, never, true, never>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare class NodeDeleteDirective implements OnChanges { private readonly alfrescoApiService; private readonly translation; private readonly elementRef; /** Array of nodes to delete. */ selection: NodeEntry[] | DeletedNodeEntry[]; /** If true then the nodes are deleted immediately rather than being put in the trash */ permanent: boolean; /** Emitted when the nodes have been deleted. */ delete: EventEmitter<any>; readonly trashcanApi: TrashcanApi; readonly nodesApi: NodesApi; onClick(): void; ngOnChanges(): void; private setDisableAttribute; private process; private getDeleteNodesBatch; private deleteNode; private processStatus; private getMessage; static ɵfac: i0.ɵɵFactoryDeclaration<NodeDeleteDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<NodeDeleteDirective, "[adf-delete]", never, { "selection": { "alias": "adf-delete"; "required": false; }; "permanent": { "alias": "permanent"; "required": false; }; }, { "delete": "delete"; }, never, never, true, never>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare class NodeFavoriteDirective implements OnChanges { private readonly alfrescoApiService; private readonly notificationService; favorites: any[]; readonly favoritesApi: FavoritesApi; /** Array of nodes to toggle as favorites. */ selection: NodeEntry[]; /** Emitted when the favorite setting is complete. */ toggle: EventEmitter<any>; /** Emitted when the favorite setting fails. */ error: EventEmitter<any>; onClick(): void; ngOnChanges(changes: SimpleChanges): void; toggleFavorite(): void; markFavoritesNodes(selection: NodeEntry[]): void; hasFavorites(): boolean; private getProcessBatch; private getFavorite; private createFavoriteBody; private getNodeType; private diff; private reduce; static ɵfac: i0.ɵɵFactoryDeclaration<NodeFavoriteDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<NodeFavoriteDirective, "[adf-node-favorite]", ["adfFavorite"], { "selection": { "alias": "adf-node-favorite"; "required": false; }; }, { "toggle": "toggle"; "error": "error"; }, never, never, true, never>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare class RestoreMessageModel { message: string; path: PathInfo; action: string; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare class NodeRestoreDirective { private readonly alfrescoApiService; private readonly translation; private readonly restoreProcessStatus; readonly trashcanApi: TrashcanApi; /** Array of deleted nodes to restore. */ selection: DeletedNodeEntry[]; /** Emitted when restoration is complete. */ restore: EventEmitter<RestoreMessageModel>; onClick(): void; constructor(); private recover; private restoreNodesBatch; private getNodesWithPath; private getDeletedNodes; private restoreNode; private diff; private processStatus; private getRestoreMessage; private notification; private reset; static ɵfac: i0.ɵɵFactoryDeclaration<NodeRestoreDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<NodeRestoreDirective, "[adf-restore]", never, { "selection": { "alias": "adf-restore"; "required": false; }; }, { "restore": "restore"; }, never, never, true, never>; } /** * Directive selectors without adf- prefix will be deprecated on 3.0.0 */ declare class NodeDownloadDirective { private readonly apiService; private readonly downloadService; private readonly dialog; readonly contentApi: ContentApi; /** Nodes to download. */ nodes: NodeEntry | NodeEntry[]; /** Node's version to download. */ version: VersionEntry; onClick(): void; /** * Downloads multiple selected nodes. * Packs result into a .ZIP archive if there is more than one node selected. * * @param selection Multiple selected nodes to download */ downloadNodes(selection: NodeEntry | Array<NodeEntry>): void; /** * Downloads a single node. * Packs result into a .ZIP archive is the node is a Folder. * * @param node Node to download */ downloadNode(node: NodeEntry): void; private isSelectionValid; private downloadFile; private downloadZip; static ɵfac: i0.ɵɵFactoryDeclaration<NodeDownloadDirective, never>; static ɵdir: i0.ɵɵDirectiveDeclaration<NodeDownloadDirective, "[adfNodeDownload]", never, { "nodes": { "alias": "adfNodeDownload"; "required": false; }; "version": { "alias": "version"; "required": false; }; }, {}, never, never, true, never>; } declare const CONTENT_DIRECTIVES: (typeof NodeDownloadDirective | typeof NodeCounterComponent | typeof AutoFocusDirective | typeof NodeLockDirective | typeof LibraryFavoriteDirective | typeof LibraryMembershipDirective | typeof NodeDeleteDirective | typeof NodeFavoriteDirective | typeof NodeRestoreDirective)[]; /** @deprecated import standalone directives instead */ declare class ContentDirectiveModule { static ɵfac: i0.ɵɵFactoryDeclaration<ContentDirectiveModule, never>; static ɵmod: i0.ɵɵNgModuleDeclaration<ContentDirectiveModule, never, [typeof NodeLockDirective, typeof NodeCounterDirective, typeof NodeCounterComponent, typeof AutoFocusDirective, typeof LibraryFavoriteDirective, typeof LibraryMembershipDirective, typeof NodeDeleteDirective, typeof NodeFavoriteDirective, typeof NodeRestoreDirective, typeof NodeDownloadDirective], [typeof NodeLockDirective, typeof NodeCounterDirective, typeof NodeCounterComponent, typeof AutoFocusDirective, typeof LibraryFavoriteDirective, typeof LibraryMembershipDirective, typeof NodeDeleteDirective, typeof NodeFavoriteDirective, typeof NodeRestoreDirective, typeof NodeDownloadDirective]>; static ɵinj: i0.ɵɵInjectorDeclaration<ContentDirectiveModule>; } /** * * This component, provide a list of the tags relative a node with actions button to add or remove new tag */ declare class TagActionsComponent implements OnChanges, OnInit { private readonly tagService; private readonly translateService; /** The identifier of a node. */ nodeId: string; /** Emitted when a tag is added successfully. */ successAdd: EventEmitter<any>; /** Emitted when an error occurs. */ error: EventEmitter<any>; /** Emitted when an action is chosen. */ result: EventEmitter<any>; newTagName: string; tagsEntries: any; errorMsg: string; disableAddTag: boolean; tagErrorStateMatcher: ErrorStateMatcher; private readonly destroyRef; ngOnInit(): void; ngOnChanges(): void; refreshTag(): void; addTag(): void; searchTag(searchTagName: string): any; cleanErrorMsg(): void; removeTag(tag: string): void; static ɵfac: i0.ɵɵFactoryDeclaration<TagActionsComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<TagActionsComponent, "adf-tag-node-actions-list", never, { "nodeId": { "alias": "nodeId"; "required": true; }; }, { "successAdd": "successAdd"; "error": "error"; "result": "result"; }, never, never, true, never>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * This component provide a list of all the tag inside the ECM */ declare class TagListComponent implements OnInit { private readonly tagService; /** Emitted when a tag is selected. */ result: EventEmitter<any>; /** * Array of tags that are displayed */ tagsEntries: TagEntry[]; /** * Number of items per iteration */ size: number; defaultPagination: PaginationModel; pagination: PaginationModel; isLoading: boolean; isSizeMinimum: boolean; constructor(); ngOnInit(): void; refreshTag(opts?: any): void; loadMoreTags(): void; loadLessTags(): void; static ɵfac: i0.ɵɵFactoryDeclaration<TagListComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<TagListComponent, "adf-tag-list", never, {}, { "result": "result"; }, never, never, true, never>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * * This component, ShowNodeTag a list of the tag on relative a node */ declare class TagNodeListComponent implements OnChanges, OnInit { private readonly tagService; /** The identifier of a node. */ nodeId: string; /** Show delete button */ showDelete: boolean; /** Should limit number of tags displayed */ limitTagsDisplayed: boolean; /** Emitted when a tag is selected. */ results: EventEmitter<TagEntry[]>; private _tagChips; get tagChips(): Chip[]; private readonly destroyRef; ngOnChanges(): void; ngOnInit(): void; refreshTag(): void; removeTag(tag: string): void; static ɵfac: i0.ɵɵFactoryDeclaration<TagNodeListComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<TagNodeListComponent, "adf-tag-node-list", never, { "nodeId": { "alias": "nodeId"; "required": true; }; "showDelete": { "alias": "showDelete"; "required": false; }; "limitTagsDisplayed": { "alias": "limitTagsDisplayed"; "required": false; }; }, { "results": "results"; }, never, never, true, never>; } declare class TagService { private readonly apiService; private readonly userPreferencesService; private readonly appConfigService; readonly tagsApi: TagsApi; /** Emitted when tag information is updated. */ refresh: EventEmitter<any>; /** * Gets a list of tags added to a node. * * @param nodeId ID of the target node * @returns TagPaging object (defined in JS-API) containing the tags */ getTagsByNodeId(nodeId: string): Observable<TagPaging>; /** * Gets a list of all the tags already defined in the repository. * * @param opts Options supported by JS-API * @param includedCounts True if count field should be included in response object for each tag, false otherwise. * @returns TagPaging object (defined in JS-API) containing the tags */ getAllTheTags(opts?: any, includedCounts?: boolean): Observable<TagPaging>; /** * Adds a tag to a node. * * @param nodeId ID of the target node * @param tagName Name of the tag to add * @returns TagEntry object (defined in JS-API) with details of the new tag */ addTag(nodeId: string, tagName: string): Observable<TagEntry>; /** * Removes a tag from a node. * * @param nodeId ID of the target node * @param tag Name of the tag to remove * @returns Null object when the operation completes */ removeTag(nodeId: string, tag: string): Observable<void>; /** * Creates tags. * * @param tags list of tags to create. * @returns Created tags. */ createTags(tags: TagBody[]): Observable<TagEntry | TagPaging>; /** * Update a tag * * @param tagId The identifier of a tag. * @param tagBody The updated tag. * @returns Updated tag. */ updateTag(tagId: string, tagBody: TagBody): Observable<TagEntry>; /** * Find tags which name contains searched name. * * @param name Value for name which should be used during searching tags. * @param sorting Object which configures sorting. OrderBy field specifies field used for sorting, direction specified ascending or descending direction. * Default sorting is ascending by tag field. * @param includedCounts True if count field should be included in response object for each tag, false otherwise. * @param skipCount Specify how many first results should be skipped. Default 0. * @param maxItems Specify max number of returned tags. Default is specified by UserPreferencesService. * @returns Found tags which name contains searched name. */ searchTags(name: string, sorting?: { orderBy: string; direction: string; }, includedCounts?: boolean, skipCount?: number, maxItems?: number): Observable<TagPaging>; /** * Find tag which name matches exactly to passed name. * * @param name Value for name which should be used during finding exact tag. * @returns Found tag which name matches exactly to passed name. */ findTagByName(name: string): Observable<TagEntry>; /** * Deletes a tag with tagId. * This will cause the tag to be removed from all nodes. * You must have admin rights to delete a tag. * * @param tagId of the tag to be deleted * @returns Null object when the operation completes */ deleteTag(tagId: string): Observable<void>; /** * Assign tags to node. If tag is new then tag is also created additionally, if tag already exists then it is just assigned. * * @param nodeId Id of node to which tags should be assigned. * @param tags List of tags to create and assign or just assign if they already exist. * @returns Just linked tags to node or single tag if linked only one tag. */ assignTagsToNode(nodeId: string, tags: TagBody[]): Observable<TagPaging | TagEntry>; /** * Checks if tags plugin is enabled. * * @returns boolean true if tags plugin is enabled, false otherwise. */ areTagsEnabled(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration<TagService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<TagService>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Available modes for tags creator. * Create mode allows only for creating completely new tags. * Create and Assign mode allows for both - creation of new tags and selection of existing tags. */ declare const TagsCreatorMode: { readonly CREATE: "CREATE"; readonly CREATE_AND_ASSIGN: "CREATE_AND_ASSIGN"; }; type TagsCreatorMode = (typeof TagsCreatorMode)[keyof typeof TagsCreatorMode]; /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface TagNameControlErrors { duplicatedExistingTag?: boolean; duplicatedAddedTag?: boolean; emptyTag?: boolean; specialCharacters?: boolean; } /** * Allows to create multiple tags. That component contains input and two lists. Top list is all created tags, bottom list is searched tags based on input's value. */ declare class TagsCreatorComponent implements OnInit, OnDestroy { private readonly tagService; private readonly notificationService; /** * Mode for component. * In Create mode we can't select existing tags, we can only create them. * In Create and Assign mode we can both - create tags and select existing tags. */ mode: TagsCreatorMode; /** * False if tags can be removed from top list, true otherwise. */ disabledTagsRemoving: boolean; /** * Default top list. * * @param tags tags which should be displayed as default tags for top list. */ set tags(tags: string[]); get tags(): string[]; /** * Decides if input for tags creation/searching should be visible. When input is hidden then panel of existing tags is hidden as well. * * @param tagNameControlVisible true if input should be visible, false otherwise. */ set tagNameControlVisible(tagNameControlVisible: boolean); get tagNameControlVisible(): boolean; /** * Emitted when bottom list is showing or hiding. */ existingTagsPanelVisibilityChange: EventEmitter<boolean>; /** * Emitted when tags in top list are changed. */ tagsChange: EventEmitter<string[]>; tagsToDisplay: Chip[]; readonly nameErrorMessagesByErrors: Map<keyof TagNameControlErrors, string>; private readonly existingTagsListLimit; private readonly exactTagSet$; private _tags; private readonly _tagNameControl; private _tagNameControlVisible; private _existingTags; private _initialExistingTags; private _tagNameErrorMessageKey; private _spinnerVisible; private _typing; private _tagsListScrollbarVisible; private readonly cancelExistingTagsLoading$; private existingExactTag; private _existingTagsPanelVisible; private readonly tagsListElement; private readonly tagNameInputElement; private readonly dynamicChipList; private readonly destroyRef; ngOnInit(): void; ngOnDestroy(): void; get hostClass(): boolean; get tagNameControl(): FormControl<string>; get showEmptyTagMessage(): boolean; get existingTags(): TagEntry[]; get tagNameErrorMessageKey(): string; get spinnerVisible(): boolean; get typing(): boolean; get tagsListScrollbarVisible(): boolean; get existingTagsPanelVisible(): boolean; /** * Add tags to top list using value which is set in input. Adding tag is not allowed when value in input is invalid * or if user is still typing what means that validation for input is not called yet. */ addTag(): void; /** * Remove tag from top list. In case that tag was part of search result then that tag is moved to bottom list * (list of existing tags) after removing so user can reselect it again later. * * @param tag tag's name which should be removed from top list. */ removeTag(tag: string): void; /** * Called when user selects any tag from list of existing tags. It moves tag from existing tags list to top list. * * @param selectedTag changes */ addExistingTagToTagsToAssign(selectedTag: TagEntry): void; /** * Checks if component is in Create mode. * * @returns `true` if `Create` mode, `false` otherwise. */ isOnlyCreateMode(): boolean; private onTagNameControlValueChange; private loadTags; private removeExactTagFromSearchedResult; private validateIfNotExistingTag; private validateIfNotAlreadyAdded; private compareTags; private validateEmptyTag; private validateSpecialCharacters; private setTagNameControlErrorMessageKey; private checkScrollbarVisibility; private removeTagFromArray; private updateExistingTagsListOnRemoveFromTagsToConfirm; private sortExistingTags; private excludeAlreadyAddedTags; private clearTagNameInput; private focusAfterRemoval; static ɵfac: i0.ɵɵFactoryDeclaration<TagsCreatorComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<TagsCreatorComponent, "adf-tags-creator", never, { "mode": { "alias": "mode"; "required": true; }; "disabledTagsRemoving": { "alias": "disabledTagsRemoving"; "required": false; }; "tags": { "alias": "tags"; "required": false; }; "tagNameControlVisible": { "alias": "tagNameControlVisible"; "required": false; }; }, { "existingTagsPanelVisibilityChange": "existingTagsPanelVisibilityChange"; "tagsChange": "tagsChange"; }, never, never, true, never>; } declare const CONTENT_TAG_DIRECTIVES: readonly [typeof TagsCreatorComponent, typeof TagActionsComponent, typeof TagListComponent, typeof TagNodeListComponent]; /** @deprecated use `...CONTENT_TAG_DIRECTIVES` instead or import standalone components directly */ declare class TagModule { static ɵfac: i0.ɵɵFactoryDeclaration<TagModule, never>; static ɵmod: i0.ɵɵNgModuleDeclaration<TagModule, never, [typeof TagsCreatorComponent, typeof TagActionsComponent, typeof TagListComponent, typeof TagNodeListComponent], [typeof TagsCreatorComponent, typeof TagActionsComponent, typeof TagListComponent, typeof TagNodeListComponent]>; static ɵinj: i0.ɵɵInjectorDeclaration<TagModule>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface AutocompleteOption { value: string; id?: string; fullPath?: string; query?: string; } declare const AutocompleteField: { readonly TAG: "TAG"; readonly CATEGORIES: "cm:categories"; readonly LOCATION: "SITE"; }; type AutocompleteField = (typeof AutocompleteField)[keyof typeof AutocompleteField]; /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface SearchWidgetSettings { field: string; allowUpdateOnChange?: boolean; hideDefaultAction?: boolean; unit?: string; format?: string; allowOnlyPredefinedValues?: boolean; autocompleteOptions?: AutocompleteOption[]; [indexer: string]: any; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface FilterQuery { query: string; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface FacetQuery { label: string; query: string; checked?: boolean; count?: number; group?: string; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare class SearchFilterList<T> implements Iterable<T> { private filteredItems; private _filterText; items: T[]; pageSize: number; currentPageSize: number; get filterText(): string; set filterText(value: string); private _filter; get filter(): (item: T) => boolean; set filter(value: (item: T) => boolean); private applyFilter; /** * Returns visible portion of the items. * * @returns list of items */ get visibleItems(): T[]; /** * Get items length * * @returns entire collection length including items not displayed on the page */ get length(): number; /** * Detect whether more items can be displayed. * * @returns `true` if can show more items, otherwise `false` */ get canShowMoreItems(): boolean; /** * Detect whether less items can be displayed. * * @returns `true` if can show less items, otherwise `false` */ get canShowLessItems(): boolean; /** * Detect whether content fits single page. * * @returns `true` if content fits single page, otherwise `false`. */ get fitsPage(): boolean; constructor(items?: T[], pageSize?: number); /** Display more items. */ showMoreItems(): void; /** Display less items. */ showLessItems(): void; /** Reset entire collection and page settings. */ clear(): void; addItem(item: T): void; deleteItem(item: T): void; [Symbol.iterator](): Iterator<T>; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface FacetFieldBucket { count: number; display?: string; label: string; filterQuery: string; checked?: boolean; field?: string; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface FacetField { field: string; label: string; mincount?: number; limit?: number; offset?: number; prefix?: string; buckets?: SearchFilterList<FacetFieldBucket>; pageSize?: number; currentPageSize?: number; checked?: boolean; type?: string; settings?: FacetFieldSettings; [propName: string]: any; } interface FacetFieldSettings { allowUpdateOnChange?: boolean; hideDefaultAction?: boolean; facetOrder?: number; bucketSortBy?: FacetBucketSortBy; bucketSortDirection?: FacetBucketSortDirection; } declare const FacetBucketSortBy: { readonly LABEL: "LABEL"; readonly COUNT: "COUNT"; }; type FacetBucketSortBy = (typeof FacetBucketSortBy)[keyof typeof FacetBucketSortBy]; declare const FacetBucketSortDirection: { readonly ASCENDING: "ASCENDING"; readonly DESCENDING: "DESCENDING"; }; type FacetBucketSortDirection = (typeof FacetBucketSortDirection)[keyof typeof FacetBucketSortDirection]; /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface SearchCategory { id: string; name: string; columnKey?: string; enabled: boolean; expanded: boolean; component: { selector: string; settings: SearchWidgetSettings; }; rules?: { visible: string; }; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface SearchSortingDefinition { key: string; label: string; type: string; field: string; ascending: boolean; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ interface SearchConfiguration { id: string; include?: string[]; fields?: string[]; categories?: SearchCategory[]; filterQueries?: FilterQuery[]; filterWithContains?: boolean; resetButton?: boolean; facetQueries?: { label?: string; pageSize?: number; expanded?: boolean; mincount?: number; queries: FacetQuery[]; settings?: FacetFieldSettings; }; facetFields?: { expanded?: boolean; fields: FacetField[]; }; facetIntervals?: { expanded?: boolean; intervals: FacetField[]; }; sorting?: { options: SearchSortingDefinition[]; defaults: SearchSortingDefinition[]; }; highlight?: RequestHighlight; name?: string; default?: boolean; } /*! * @license * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *