@alfresco/adf-content-services
Version:
Alfresco ADF content services
81 lines • 14.5 kB
JavaScript
/*!
* @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.
*/
import { Injectable } from '@angular/core';
import { TreeNodeType, TreeService } from '../../tree';
import { CategoryService } from './category.service';
import { from } from 'rxjs';
import { map, mergeMap, toArray } from 'rxjs/operators';
import * as i0 from "@angular/core";
import * as i1 from "./category.service";
export class CategoryTreeDatasourceService extends TreeService {
constructor(categoryService) {
super();
this.categoryService = categoryService;
}
getSubNodes(parentNodeId, skipCount, maxItems, name) {
return !name
? this.categoryService.getSubcategories(parentNodeId, skipCount, maxItems).pipe(map((response) => {
const parentNode = this.getParentNode(parentNodeId);
const nodesList = response.list.entries.map((entry) => ({
id: entry.entry.id,
nodeName: entry.entry.name,
parentId: entry.entry.parentId,
hasChildren: entry.entry.hasChildren,
level: parentNode ? parentNode.level + 1 : 0,
isLoading: false,
nodeType: TreeNodeType.RegularNode
}));
if (response.list.pagination.hasMoreItems && parentNode) {
const loadMoreNode = {
id: 'loadMore',
nodeName: '',
parentId: parentNode.id,
hasChildren: false,
level: parentNode.level + 1,
isLoading: false,
nodeType: TreeNodeType.LoadMoreNode
};
nodesList.push(loadMoreNode);
}
const treeResponse = { entries: nodesList, pagination: response.list.pagination };
return treeResponse;
}))
: this.categoryService.searchCategories(name, skipCount, maxItems).pipe(mergeMap((pagingResult) => {
const nextAfterGeneralPathPartIndex = 3;
const pathSeparator = '/';
return from(pagingResult.list.entries).pipe(mergeMap((category) => {
const path = category.entry.path.name.split(pathSeparator).slice(nextAfterGeneralPathPartIndex).join(pathSeparator);
return this.categoryService.getCategory(category.entry.id).pipe(map((res) => ({
id: category.entry.id,
nodeName: path ? `${path}/${category.entry.name}` : category.entry.name,
parentId: category.entry.parentId,
level: 0,
nodeType: TreeNodeType.RegularNode,
hasChildren: res.entry.hasChildren,
isLoading: false
})));
}), toArray(), map((res) => ({ entries: res, pagination: pagingResult.list.pagination })));
}));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CategoryTreeDatasourceService, deps: [{ token: i1.CategoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CategoryTreeDatasourceService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CategoryTreeDatasourceService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: () => [{ type: i1.CategoryService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktdHJlZS1kYXRhc291cmNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2NhdGVnb3J5L3NlcnZpY2VzL2NhdGVnb3J5LXRyZWUtZGF0YXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBZ0IsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHeEQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLFdBQXlCO0lBQ3hFLFlBQW9CLGVBQWdDO1FBQ2hELEtBQUssRUFBRSxDQUFDO1FBRFEsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBRXBELENBQUM7SUFFTSxXQUFXLENBQUMsWUFBb0IsRUFBRSxTQUFrQixFQUFFLFFBQWlCLEVBQUUsSUFBYTtRQUN6RixPQUFPLENBQUMsSUFBSTtZQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUN6RSxHQUFHLENBQUMsQ0FBQyxRQUF3QixFQUFFLEVBQUU7Z0JBQzdCLE1BQU0sVUFBVSxHQUFpQixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNsRSxNQUFNLFNBQVMsR0FBbUIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMs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QyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FDN0UsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDWixDQUFDOzhHQTVEUSw2QkFBNkI7a0hBQTdCLDZCQUE2QixjQURoQixNQUFNOzsyRkFDbkIsNkJBQTZCO2tCQUR6QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJlZU5vZGVUeXBlLCBUcmVlUmVzcG9uc2UsIFRyZWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdHJlZSc7XG5pbXBvcnQgeyBDYXRlZ29yeU5vZGUgfSBmcm9tICcuLi9tb2RlbHMvY2F0ZWdvcnktbm9kZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi9jYXRlZ29yeS5zZXJ2aWNlJztcbmltcG9ydCB7IENhdGVnb3J5RW50cnksIENhdGVnb3J5UGFnaW5nIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwLCB0b0FycmF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIENhdGVnb3J5VHJlZURhdGFzb3VyY2VTZXJ2aWNlIGV4dGVuZHMgVHJlZVNlcnZpY2U8Q2F0ZWdvcnlOb2RlPiB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdWJOb2RlcyhwYXJlbnROb2RlSWQ6IHN0cmluZywgc2tpcENvdW50PzogbnVtYmVyLCBtYXhJdGVtcz86IG51bWJlciwgbmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8VHJlZVJlc3BvbnNlPENhdGVnb3J5Tm9kZT4+IHtcbiAgICAgICAgcmV0dXJuICFuYW1lXG4gICAgICAgICAgICA/IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmdldFN1YmNhdGVnb3JpZXMocGFyZW50Tm9kZUlkLCBza2lwQ291bnQsIG1heEl0ZW1zKS5waXBlKFxuICAgICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZTogQ2F0ZWdvcnlQYWdpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlOiBDYXRlZ29yeU5vZGUgPSB0aGlzLmdldFBhcmVudE5vZGUocGFyZW50Tm9kZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub2Rlc0xpc3Q6IENhdGVnb3J5Tm9kZVtdID0gcmVzcG9uc2UubGlzdC5lbnRyaWVzLm1hcCgoZW50cnk6IENhdGVnb3J5RW50cnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBlbnRyeS5lbnRyeS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZU5hbWU6IGVudHJ5LmVudHJ5Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiBlbnRyeS5lbnRyeS5wYXJlbnRJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzQ2hpbGRyZW46IGVudHJ5LmVudHJ5Lmhhc0NoaWxkcmVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbDogcGFyZW50Tm9kZSA/IHBhcmVudE5vZGUubGV2ZWwgKyAxIDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZVR5cGU6IFRyZWVOb2RlVHlwZS5SZWd1bGFyTm9kZVxuICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UubGlzdC5wYWdpbmF0aW9uLmhhc01vcmVJdGVtcyAmJiBwYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvYWRNb3JlTm9kZTogQ2F0ZWdvcnlOb2RlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdsb2FkTW9yZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlTmFtZTogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50Tm9kZS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0NoaWxkcmVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsOiBwYXJlbnROb2RlLmxldmVsICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlVHlwZTogVHJlZU5vZGVUeXBlLkxvYWRNb3JlTm9kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBub2Rlc0xpc3QucHVzaChsb2FkTW9yZU5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmVlUmVzcG9uc2U6IFRyZWVSZXNwb25zZTxDYXRlZ29yeU5vZGU+ID0geyBlbnRyaWVzOiBub2Rlc0xpc3QsIHBhZ2luYXRpb246IHJlc3BvbnNlLmxpc3QucGFnaW5hdGlvbiB9O1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cmVlUmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLnNlYXJjaENhdGVnb3JpZXMobmFtZSwgc2tpcENvdW50LCBtYXhJdGVtcykucGlwZShcbiAgICAgICAgICAgICAgICAgIG1lcmdlTWFwKChwYWdpbmdSZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0QWZ0ZXJHZW5lcmFsUGF0aFBhcnRJbmRleCA9IDM7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aFNlcGFyYXRvciA9ICcvJztcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbShwYWdpbmdSZXN1bHQubGlzdC5lbnRyaWVzKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZU1hcCgoY2F0ZWdvcnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBjYXRlZ29yeS5lbnRyeS5wYXRoLm5hbWUuc3BsaXQocGF0aFNlcGFyYXRvcikuc2xpY2UobmV4dEFmdGVyR2VuZXJhbFBhdGhQYXJ0SW5kZXgpLmpvaW4ocGF0aFNlcGFyYXRvcik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yeShjYXRlZ29yeS5lbnRyeS5pZCkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoKHJlcykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGNhdGVnb3J5LmVudHJ5LmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlTmFtZTogcGF0aCA/IGAke3BhdGh9LyR7Y2F0ZWdvcnkuZW50cnkubmFtZX1gIDogY2F0ZWdvcnkuZW50cnkubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IGNhdGVnb3J5LmVudHJ5LnBhcmVudElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZVR5cGU6IFRyZWVOb2RlVHlwZS5SZWd1bGFyTm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzQ2hpbGRyZW46IHJlcy5lbnRyeS5oYXNDaGlsZHJlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRvQXJyYXkoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChyZXMpID0+ICh7IGVudHJpZXM6IHJlcywgcGFnaW5hdGlvbjogcGFnaW5nUmVzdWx0Lmxpc3QucGFnaW5hdGlvbiB9KSlcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=