@adobe/cq-angular-editable-components
Version:
* [API](#api) * [Documentation](#documentation) * [Changelog](#changelog)
67 lines • 7.42 kB
JavaScript
/*
* ADOBE CONFIDENTIAL
*
* Copyright 2018 Adobe Systems Incorporated
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe Systems Incorporated and its suppliers,
* if any. The intellectual and technical concepts contained
* herein are proprietary to Adobe Systems Incorporated and its
* suppliers and may be covered by U.S. and Foreign Patents,
* patents in process, and are protected by trade secret or copyright law.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe Systems Incorporated.
*/
import { ComponentMapping as SPAComponentMapping } from '@adobe/cq-spa-component-mapping';
/**
* The current class extends the @adobe/cq-spa-component-mapping#Mapto library and features with Angular specifics such as
*
* - Storing the editing configurations for each resource type
*/
export class ComponentMappingWithConfig {
constructor(spaMapping) {
this.spaMapping = spaMapping;
/**
* Store of EditConfig structures
*/
this.editConfigMap = {};
}
/**
* Stores a component class for the given resource types and also allows to provide an EditConfig object
* @param resourceTypes - List of resource types
* @param clazz - Component class to be stored
* @param [editConfig] - Edit configuration to be stored for the given resource types
*/
map(resourceTypes, clazz, editConfig = null) {
let innerClass = clazz;
if (editConfig) {
this.editConfigMap[resourceTypes] = editConfig;
}
this.spaMapping.map(resourceTypes, innerClass);
}
;
/**
* Returns the component class for the given resourceType
* @param resourceType - Resource type for which the component class has been stored
*/
get(resourceType) {
return this.spaMapping.get(resourceType);
}
/**
* Returns the EditConfig structure for the given type
* @param resourceType - Resource type for which the configuration has been stored
*/
getEditConfig(resourceType) {
return this.editConfigMap[resourceType];
}
}
let componentMapping = new ComponentMappingWithConfig(SPAComponentMapping);
function MapTo(resourceTypes) {
return (clazz, editConfig = null) => {
return componentMapping.map(resourceTypes, clazz, editConfig);
};
}
export { componentMapping as ComponentMapping, MapTo };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW1hcHBpbmcuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRvYmUvY3EtYW5ndWxhci1lZGl0YWJsZS1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2xheW91dC9jb21wb25lbnQtbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLElBQUksbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRjs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLDBCQUEwQjtJQU1yQyxZQUFvQixVQUE4QjtRQUE5QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUxsRDs7V0FFRztRQUNLLGtCQUFhLEdBQUcsRUFBRSxDQUFDO0lBRTBCLENBQUM7SUFFdEQ7Ozs7O09BS0c7SUFDSCxHQUFHLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxVQUFVLEdBQUcsSUFBSTtRQUN2QyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFFdkIsSUFBSSxVQUFVLEVBQUU7WUFDWixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxHQUFHLFVBQVUsQ0FBQztTQUNsRDtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQUEsQ0FBQztJQUVGOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLFlBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQUVELElBQUksZ0JBQWdCLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBRTNFLFNBQVMsS0FBSyxDQUFDLGFBQWE7SUFDeEIsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFVLEdBQUcsSUFBSSxFQUFFLEVBQUU7UUFDaEMsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNsRSxDQUFDLENBQUM7QUFDTixDQUFDO0FBR0QsT0FBTyxFQUFFLGdCQUFnQixJQUFJLGdCQUFnQixFQUFFLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIEFET0JFIENPTkZJREVOVElBTFxuICpcbiAqIENvcHlyaWdodCAyMDE4IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkXG4gKiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIE5PVElDRTogIEFsbCBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGlzLCBhbmQgcmVtYWluc1xuICogdGhlIHByb3BlcnR5IG9mIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkIGFuZCBpdHMgc3VwcGxpZXJzLFxuICogaWYgYW55LiAgVGhlIGludGVsbGVjdHVhbCBhbmQgdGVjaG5pY2FsIGNvbmNlcHRzIGNvbnRhaW5lZFxuICogaGVyZWluIGFyZSBwcm9wcmlldGFyeSB0byBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZCBhbmQgaXRzXG4gKiBzdXBwbGllcnMgYW5kIG1heSBiZSBjb3ZlcmVkIGJ5IFUuUy4gYW5kIEZvcmVpZ24gUGF0ZW50cyxcbiAqIHBhdGVudHMgaW4gcHJvY2VzcywgYW5kIGFyZSBwcm90ZWN0ZWQgYnkgdHJhZGUgc2VjcmV0IG9yIGNvcHlyaWdodCBsYXcuXG4gKiBEaXNzZW1pbmF0aW9uIG9mIHRoaXMgaW5mb3JtYXRpb24gb3IgcmVwcm9kdWN0aW9uIG9mIHRoaXMgbWF0ZXJpYWxcbiAqIGlzIHN0cmljdGx5IGZvcmJpZGRlbiB1bmxlc3MgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uIGlzIG9idGFpbmVkXG4gKiBmcm9tIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudE1hcHBpbmcgYXMgU1BBQ29tcG9uZW50TWFwcGluZyB9IGZyb20gJ0BhZG9iZS9jcS1zcGEtY29tcG9uZW50LW1hcHBpbmcnO1xuXG4vKipcbiAqIFRoZSBjdXJyZW50IGNsYXNzIGV4dGVuZHMgdGhlIEBhZG9iZS9jcS1zcGEtY29tcG9uZW50LW1hcHBpbmcjTWFwdG8gbGlicmFyeSBhbmQgZmVhdHVyZXMgd2l0aCBBbmd1bGFyIHNwZWNpZmljcyBzdWNoIGFzXG4gKlxuICogLSBTdG9yaW5nIHRoZSBlZGl0aW5nIGNvbmZpZ3VyYXRpb25zIGZvciBlYWNoIHJlc291cmNlIHR5cGVcbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBvbmVudE1hcHBpbmdXaXRoQ29uZmlnIHtcbiAgLyoqXG4gICAqIFN0b3JlIG9mIEVkaXRDb25maWcgc3RydWN0dXJlc1xuICAgKi9cbiAgcHJpdmF0ZSBlZGl0Q29uZmlnTWFwID0ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzcGFNYXBwaW5nOlNQQUNvbXBvbmVudE1hcHBpbmcpIHt9XG5cbiAgLyoqXG4gICAqIFN0b3JlcyBhIGNvbXBvbmVudCBjbGFzcyBmb3IgdGhlIGdpdmVuIHJlc291cmNlIHR5cGVzIGFuZCBhbHNvIGFsbG93cyB0byBwcm92aWRlIGFuIEVkaXRDb25maWcgb2JqZWN0XG4gICAqIEBwYXJhbSByZXNvdXJjZVR5cGVzIC0gTGlzdCBvZiByZXNvdXJjZSB0eXBlc1xuICAgKiBAcGFyYW0gY2xhenogLSBDb21wb25lbnQgY2xhc3MgdG8gYmUgc3RvcmVkXG4gICAqIEBwYXJhbSBbZWRpdENvbmZpZ10gLSBFZGl0IGNvbmZpZ3VyYXRpb24gdG8gYmUgc3RvcmVkIGZvciB0aGUgZ2l2ZW4gcmVzb3VyY2UgdHlwZXNcbiAgICovXG4gIG1hcChyZXNvdXJjZVR5cGVzLCBjbGF6eiwgZWRpdENvbmZpZyA9IG51bGwpIHtcbiAgICAgIGxldCBpbm5lckNsYXNzID0gY2xheno7XG5cbiAgICAgIGlmIChlZGl0Q29uZmlnKSB7XG4gICAgICAgICAgdGhpcy5lZGl0Q29uZmlnTWFwW3Jlc291cmNlVHlwZXNdID0gZWRpdENvbmZpZztcbiAgICAgIH1cbiAgICAgIHRoaXMuc3BhTWFwcGluZy5tYXAocmVzb3VyY2VUeXBlcywgaW5uZXJDbGFzcyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvbXBvbmVudCBjbGFzcyBmb3IgdGhlIGdpdmVuIHJlc291cmNlVHlwZVxuICAgKiBAcGFyYW0gcmVzb3VyY2VUeXBlIC0gUmVzb3VyY2UgdHlwZSBmb3Igd2hpY2ggdGhlIGNvbXBvbmVudCBjbGFzcyBoYXMgYmVlbiBzdG9yZWRcbiAgICovXG4gIGdldChyZXNvdXJjZVR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5zcGFNYXBwaW5nLmdldChyZXNvdXJjZVR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIEVkaXRDb25maWcgc3RydWN0dXJlIGZvciB0aGUgZ2l2ZW4gdHlwZVxuICAgKiBAcGFyYW0gcmVzb3VyY2VUeXBlIC0gUmVzb3VyY2UgdHlwZSBmb3Igd2hpY2ggdGhlIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gc3RvcmVkXG4gICAqL1xuICBnZXRFZGl0Q29uZmlnKHJlc291cmNlVHlwZSkge1xuICAgIHJldHVybiB0aGlzLmVkaXRDb25maWdNYXBbcmVzb3VyY2VUeXBlXTtcbiAgfVxufVxuXG5sZXQgY29tcG9uZW50TWFwcGluZyA9IG5ldyBDb21wb25lbnRNYXBwaW5nV2l0aENvbmZpZyhTUEFDb21wb25lbnRNYXBwaW5nKTtcblxuZnVuY3Rpb24gTWFwVG8ocmVzb3VyY2VUeXBlcykge1xuICAgIHJldHVybiAoY2xhenosIGVkaXRDb25maWcgPSBudWxsKSA9PiB7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRNYXBwaW5nLm1hcChyZXNvdXJjZVR5cGVzLCBjbGF6eiwgZWRpdENvbmZpZyk7XG4gICAgfTtcbn1cblxuXG5leHBvcnQgeyBjb21wb25lbnRNYXBwaW5nIGFzIENvbXBvbmVudE1hcHBpbmcsIE1hcFRvIH07XG4iXX0=