@alfresco/adf-content-services
Version:
Alfresco ADF content services
76 lines • 9.55 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 { AppConfigService, LogService } from '@alfresco/adf-core';
import { AspectOrientedConfigService } from './aspect-oriented-config.service';
import { IndifferentConfigService } from './indifferent-config.service';
import { LayoutOrientedConfigService } from './layout-oriented-config.service';
import * as i0 from "@angular/core";
import * as i1 from "@alfresco/adf-core";
const INDIFFERENT_PRESET = '*';
const DEFAULT_PRESET_NAME = 'default';
export class ContentMetadataConfigFactory {
constructor(appConfigService, logService) {
this.appConfigService = appConfigService;
this.logService = logService;
}
get(presetName = 'default') {
let presetConfig;
try {
presetConfig = this.appConfigService.config['content-metadata'].presets[presetName];
}
catch {
if (presetName !== DEFAULT_PRESET_NAME) {
this.logService.error(`No content-metadata preset for: ${presetName}`);
}
presetConfig = INDIFFERENT_PRESET;
}
return this.createConfig(presetConfig);
}
createConfig(presetConfig) {
let config;
if (this.isLayoutOrientedPreset(presetConfig)) {
config = new LayoutOrientedConfigService(presetConfig);
}
else if (this.isAspectOrientedPreset(presetConfig)) {
config = new AspectOrientedConfigService(presetConfig);
}
else {
config = new IndifferentConfigService();
}
Object.freeze(config);
return config;
}
isAspectOrientedPreset(presetConfig) {
return this.isObject(presetConfig);
}
isLayoutOrientedPreset(presetConfig) {
return Array.isArray(presetConfig);
}
isObject(x) {
return x != null && typeof x === 'object';
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ContentMetadataConfigFactory, deps: [{ token: i1.AppConfigService }, { token: i1.LogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ContentMetadataConfigFactory, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ContentMetadataConfigFactory, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i1.AppConfigService }, { type: i1.LogService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1tZXRhZGF0YS1jb25maWcuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvY29udGVudC1tZXRhZGF0YS9zZXJ2aWNlcy9jb25maWcvY29udGVudC1tZXRhZGF0YS1jb25maWcuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBRy9FLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0FBS3RDLE1BQU0sT0FBTyw0QkFBNEI7SUFDckMsWUFBb0IsZ0JBQWtDLEVBQVUsVUFBc0I7UUFBbEUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRyxDQUFDO0lBRW5GLEdBQUcsQ0FBQyxhQUFxQixTQUFTO1FBQ3JDLElBQUksWUFBMEIsQ0FBQztRQUMvQixJQUFJLENBQUM7WUFDRCxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ0wsSUFBSSxVQUFVLEtBQUssbUJBQW1CLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsbUNBQW1DLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDM0UsQ0FBQztZQUNELFlBQVksR0FBRyxrQkFBa0IsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxZQUFZLENBQUMsWUFBMEI7UUFDMUMsSUFBSSxNQUE2QixDQUFDO1FBRWxDLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDNUMsTUFBTSxHQUFHLElBQUksMkJBQTJCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxHQUFHLElBQUksMkJBQTJCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBQzVDLENBQUM7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxZQUEwQjtRQUNyRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFlBQTBCO1FBQ3JELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sUUFBUSxDQUFDLENBQU07UUFDbkIsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztJQUM5QyxDQUFDOzhHQTFDUSw0QkFBNEI7a0hBQTVCLDRCQUE0QixjQUZ6QixNQUFNOzsyRkFFVCw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlLCBMb2dTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFzcGVjdE9yaWVudGVkQ29uZmlnU2VydmljZSB9IGZyb20gJy4vYXNwZWN0LW9yaWVudGVkLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEluZGlmZmVyZW50Q29uZmlnU2VydmljZSB9IGZyb20gJy4vaW5kaWZmZXJlbnQtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0T3JpZW50ZWRDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9sYXlvdXQtb3JpZW50ZWQtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlc2V0Q29uZmlnLCBDb250ZW50TWV0YWRhdGFDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NvbnRlbnQtbWV0YWRhdGEuaW50ZXJmYWNlcyc7XG5cbmNvbnN0IElORElGRkVSRU5UX1BSRVNFVCA9ICcqJztcbmNvbnN0IERFRkFVTFRfUFJFU0VUX05BTUUgPSAnZGVmYXVsdCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudE1ldGFkYXRhQ29uZmlnRmFjdG9yeSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLCBwcml2YXRlIGxvZ1NlcnZpY2U6IExvZ1NlcnZpY2UpIHt9XG5cbiAgICBwdWJsaWMgZ2V0KHByZXNldE5hbWU6IHN0cmluZyA9ICdkZWZhdWx0Jyk6IENvbnRlbnRNZXRhZGF0YUNvbmZpZyB7XG4gICAgICAgIGxldCBwcmVzZXRDb25maWc6IFByZXNldENvbmZpZztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHByZXNldENvbmZpZyA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5jb25maWdbJ2NvbnRlbnQtbWV0YWRhdGEnXS5wcmVzZXRzW3ByZXNldE5hbWVdO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIGlmIChwcmVzZXROYW1lICE9PSBERUZBVUxUX1BSRVNFVF9OQU1FKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dTZXJ2aWNlLmVycm9yKGBObyBjb250ZW50LW1ldGFkYXRhIHByZXNldCBmb3I6ICR7cHJlc2V0TmFtZX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByZXNldENvbmZpZyA9IElORElGRkVSRU5UX1BSRVNFVDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvbmZpZyhwcmVzZXRDb25maWcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjcmVhdGVDb25maWcocHJlc2V0Q29uZmlnOiBQcmVzZXRDb25maWcpOiBDb250ZW50TWV0YWRhdGFDb25maWcge1xuICAgICAgICBsZXQgY29uZmlnOiBDb250ZW50TWV0YWRhdGFDb25maWc7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNMYXlvdXRPcmllbnRlZFByZXNldChwcmVzZXRDb25maWcpKSB7XG4gICAgICAgICAgICBjb25maWcgPSBuZXcgTGF5b3V0T3JpZW50ZWRDb25maWdTZXJ2aWNlKHByZXNldENvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0FzcGVjdE9yaWVudGVkUHJlc2V0KHByZXNldENvbmZpZykpIHtcbiAgICAgICAgICAgIGNvbmZpZyA9IG5ldyBBc3BlY3RPcmllbnRlZENvbmZpZ1NlcnZpY2UocHJlc2V0Q29uZmlnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbmZpZyA9IG5ldyBJbmRpZmZlcmVudENvbmZpZ1NlcnZpY2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5mcmVlemUoY29uZmlnKTtcbiAgICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQXNwZWN0T3JpZW50ZWRQcmVzZXQocHJlc2V0Q29uZmlnOiBQcmVzZXRDb25maWcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPYmplY3QocHJlc2V0Q29uZmlnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTGF5b3V0T3JpZW50ZWRQcmVzZXQocHJlc2V0Q29uZmlnOiBQcmVzZXRDb25maWcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocHJlc2V0Q29uZmlnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzT2JqZWN0KHg6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4geCAhPSBudWxsICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JztcbiAgICB9XG59XG4iXX0=