@alfresco/adf-content-services
Version:
Alfresco ADF content services
83 lines • 12.8 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 { AlfrescoApiService } from '../../services/alfresco-api.service';
import { AppConfigService } from '@alfresco/adf-core';
import { from, of, zip } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
import { AspectsApi } from '@alfresco/js-api';
import * as i0 from "@angular/core";
import * as i1 from "../../services/alfresco-api.service";
import * as i2 from "@alfresco/adf-core";
export class AspectListService {
get aspectsApi() {
this._aspectsApi = this._aspectsApi ?? new AspectsApi(this.alfrescoApiService.getInstance());
return this._aspectsApi;
}
constructor(alfrescoApiService, appConfigService) {
this.alfrescoApiService = alfrescoApiService;
this.appConfigService = appConfigService;
}
getAspects() {
const visibleAspectList = this.getVisibleAspects();
const standardAspects$ = this.getStandardAspects(visibleAspectList);
const customAspects$ = this.getCustomAspects(visibleAspectList);
return zip(standardAspects$, customAspects$).pipe(map(([standardAspectList, customAspectList]) => [...standardAspectList, ...customAspectList]));
}
getStandardAspects(whiteList) {
const where = `(modelId in ('cm:contentmodel', 'emailserver:emailserverModel', 'smf:smartFolder', 'app:applicationmodel' ))`;
const opts = {
where,
include: ['properties']
};
return from(this.aspectsApi.listAspects(opts)).pipe(map((result) => this.filterAspectByConfig(whiteList, result?.list?.entries)), catchError(() => of([])));
}
getCustomAspects(whiteList) {
const where = `(not namespaceUri matches('http://www.alfresco.*'))`;
const opts = {
where,
include: ['properties']
};
return from(this.aspectsApi.listAspects(opts)).pipe(map((result) => this.filterAspectByConfig(whiteList, result?.list?.entries)), catchError(() => of([])));
}
filterAspectByConfig(visibleAspectList, aspectEntries) {
let result = aspectEntries ? aspectEntries : [];
if (visibleAspectList?.length > 0 && aspectEntries) {
result = aspectEntries.filter((value) => visibleAspectList.includes(value?.entry?.id));
}
return result;
}
getVisibleAspects() {
let visibleAspectList = [];
const aspectVisibleConfig = this.appConfigService.get('aspect-visible');
if (aspectVisibleConfig) {
for (const aspectGroup of Object.keys(aspectVisibleConfig)) {
visibleAspectList = visibleAspectList.concat(aspectVisibleConfig[aspectGroup]);
}
}
return visibleAspectList;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AspectListService, deps: [{ token: i1.AlfrescoApiService }, { token: i2.AppConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AspectListService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AspectListService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i1.AlfrescoApiService }, { type: i2.AppConfigService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNwZWN0LWxpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvYXNwZWN0LWxpc3Qvc2VydmljZXMvYXNwZWN0LWxpc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBNkIsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFLekUsTUFBTSxPQUFPLGlCQUFpQjtJQUUxQixJQUFJLFVBQVU7UUFDVixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDN0YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFvQixrQkFBc0MsRUFBVSxnQkFBa0M7UUFBbEYsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRTFHLFVBQVU7UUFDTixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ25ELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlC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QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxmcmVzY28tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgemlwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBc3BlY3RFbnRyeSwgQXNwZWN0UGFnaW5nLCBBc3BlY3RzQXBpIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXNwZWN0TGlzdFNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2FzcGVjdHNBcGk6IEFzcGVjdHNBcGk7XG4gICAgZ2V0IGFzcGVjdHNBcGkoKTogQXNwZWN0c0FwaSB7XG4gICAgICAgIHRoaXMuX2FzcGVjdHNBcGkgPSB0aGlzLl9hc3BlY3RzQXBpID8/IG5ldyBBc3BlY3RzQXBpKHRoaXMuYWxmcmVzY29BcGlTZXJ2aWNlLmdldEluc3RhbmNlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5fYXNwZWN0c0FwaTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFsZnJlc2NvQXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlLCBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UpIHt9XG5cbiAgICBnZXRBc3BlY3RzKCk6IE9ic2VydmFibGU8QXNwZWN0RW50cnlbXT4ge1xuICAgICAgICBjb25zdCB2aXNpYmxlQXNwZWN0TGlzdCA9IHRoaXMuZ2V0VmlzaWJsZUFzcGVjdHMoKTtcbiAgICAgICAgY29uc3Qgc3RhbmRhcmRBc3BlY3RzJCA9IHRoaXMuZ2V0U3RhbmRhcmRBc3BlY3RzKHZpc2libGVBc3BlY3RMaXN0KTtcbiAgICAgICAgY29uc3QgY3VzdG9tQXNwZWN0cyQgPSB0aGlzLmdldEN1c3RvbUFzcGVjdHModmlzaWJsZUFzcGVjdExpc3QpO1xuICAgICAgICByZXR1cm4gemlwKHN0YW5kYXJkQXNwZWN0cyQsIGN1c3RvbUFzcGVjdHMkKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbc3RhbmRhcmRBc3BlY3RMaXN0LCBjdXN0b21Bc3BlY3RMaXN0XSkgPT4gWy4uLnN0YW5kYXJkQXNwZWN0TGlzdCwgLi4uY3VzdG9tQXNwZWN0TGlzdF0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0U3RhbmRhcmRBc3BlY3RzKHdoaXRlTGlzdDogc3RyaW5nW10pOiBPYnNlcnZhYmxlPEFzcGVjdEVudHJ5W10+IHtcbiAgICAgICAgY29uc3Qgd2hlcmUgPSBgKG1vZGVsSWQgaW4gKCdjbTpjb250ZW50bW9kZWwnLCAnZW1haWxzZXJ2ZXI6ZW1haWxzZXJ2ZXJNb2RlbCcsICdzbWY6c21hcnRGb2xkZXInLCAnYXBwOmFwcGxpY2F0aW9ubW9kZWwnICkpYDtcbiAgICAgICAgY29uc3Qgb3B0czogYW55ID0ge1xuICAgICAgICAgICAgd2hlcmUsXG4gICAgICAgICAgICBpbmNsdWRlOiBbJ3Byb3BlcnRpZXMnXVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuYXNwZWN0c0FwaS5saXN0QXNwZWN0cyhvcHRzKSkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzdWx0OiBBc3BlY3RQYWdpbmcpID0+IHRoaXMuZmlsdGVyQXNwZWN0QnlDb25maWcod2hpdGVMaXN0LCByZXN1bHQ/Lmxpc3Q/LmVudHJpZXMpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldEN1c3RvbUFzcGVjdHMod2hpdGVMaXN0Pzogc3RyaW5nW10pOiBPYnNlcnZhYmxlPEFzcGVjdEVudHJ5W10+IHtcbiAgICAgICAgY29uc3Qgd2hlcmUgPSBgKG5vdCBuYW1lc3BhY2VVcmkgbWF0Y2hlcygnaHR0cDovL3d3dy5hbGZyZXNjby4qJykpYDtcbiAgICAgICAgY29uc3Qgb3B0czogYW55ID0ge1xuICAgICAgICAgICAgd2hlcmUsXG4gICAgICAgICAgICBpbmNsdWRlOiBbJ3Byb3BlcnRpZXMnXVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLmFzcGVjdHNBcGkubGlzdEFzcGVjdHMob3B0cykpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3VsdDogQXNwZWN0UGFnaW5nKSA9PiB0aGlzLmZpbHRlckFzcGVjdEJ5Q29uZmlnKHdoaXRlTGlzdCwgcmVzdWx0Py5saXN0Py5lbnRyaWVzKSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKFtdKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlckFzcGVjdEJ5Q29uZmlnKHZpc2libGVBc3BlY3RMaXN0OiBzdHJpbmdbXSwgYXNwZWN0RW50cmllczogQXNwZWN0RW50cnlbXSk6IEFzcGVjdEVudHJ5W10ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXNwZWN0RW50cmllcyA/IGFzcGVjdEVudHJpZXMgOiBbXTtcbiAgICAgICAgaWYgKHZpc2libGVBc3BlY3RMaXN0Py5sZW5ndGggPiAwICYmIGFzcGVjdEVudHJpZXMpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGFzcGVjdEVudHJpZXMuZmlsdGVyKCh2YWx1ZSkgPT4gdmlzaWJsZUFzcGVjdExpc3QuaW5jbHVkZXModmFsdWU/LmVudHJ5Py5pZCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgZ2V0VmlzaWJsZUFzcGVjdHMoKTogc3RyaW5nW10ge1xuICAgICAgICBsZXQgdmlzaWJsZUFzcGVjdExpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGNvbnN0IGFzcGVjdFZpc2libGVDb25maWcgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0KCdhc3BlY3QtdmlzaWJsZScpO1xuICAgICAgICBpZiAoYXNwZWN0VmlzaWJsZUNvbmZpZykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBhc3BlY3RHcm91cCBvZiBPYmplY3Qua2V5cyhhc3BlY3RWaXNpYmxlQ29uZmlnKSkge1xuICAgICAgICAgICAgICAgIHZpc2libGVBc3BlY3RMaXN0ID0gdmlzaWJsZUFzcGVjdExpc3QuY29uY2F0KGFzcGVjdFZpc2libGVDb25maWdbYXNwZWN0R3JvdXBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmlzaWJsZUFzcGVjdExpc3Q7XG4gICAgfVxufVxuIl19