UNPKG

@adobe/cq-angular-editable-components

Version:

* [API](#api) * [Documentation](#documentation) * [Changelog](#changelog)

67 lines 7.42 kB
/* * 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=