define([], function () {
'use strict';
/**
* Defines the <b>format</b> of extension manifest.
*
* @AbcsExtension stable
* @typedef extensions.dt/js/spi/ExtensionManager~ExtensionManifestFormat
* @version 16.3.1
* @property {string} id - The extension ID. Needs to be unique - so ideally w/ a namespace.
* @property {string} displayName - Human readable name of the extension.
* @property {string} description - Human readable description of the extension.
* @property {string} type - Defines type of the extension. Types are defined in {@link extensions.dt/js/spi/ExtensionManager~ExtensionType ExtensionType} .
* @property {string} package - The AMD modules package.
* <p>All the AMD modules which makes the extension needs to use this package
* to refer to each other. The designer is responsible for configuring
* the requirejs packages appropriately in both DT and RT.</p>
* <p>The package also needs to be unique</p>
* @property {string} extensionManager - Path of an AMD module which returns object used to control the extension in design time.
* The path must begin with the value of 'package' key.
* <p>The returned object needs to "implement" (contain its methods) the {@link extensions.dt/js/spi/ExtensionManager} module.</p>
* @property {string} runtime - Runtime section of the manifest.
* @property {string} resources - Contains a list of resources which needs to be exported to the generated
* application artefact (for runtime).
* <p>Please note that these are resource files references (no module names)
* so the paths needs to contain extensions even for javascript files.</p>
* @property {string} dependencies - Contains an array of dependencies descriptions of the extension.
*
* @example <caption>An example manifest</caption>
* {
* "id": "com.mycompany.myComponent",
* "displayName": "My Component",
* "description": "My First UI Custom Component",
* "type": "uicomponent",
* "package": "com.mycompany.myComponent",
* "extensionManager": "com.mycompany.myComponent/js/ExtensionManager",
* "runtime": {
* "resources": [
* "js/Constants.js",
* "js/Initialiser.js",
* "templates/blackbox.html",
* "images/oracle.gif"
* ]
* },
* "dependencies": [
* {
* sourceType: 'application',
* sourceId: 'myApplication-1.0',
* extensionId: 'com.mycomp.abcs.extensions.myTwitterBOP'
* }
* ]
* }
*/
function ExtensionManifestFormat() {
AbcsLib.throwStaticClassError();
}
/**
* The extension ID. Needs to be unique - so ideally w/ a namespace
*
* @type {String}
*
* @example <caption>An ID</caption>
* com.mycompany.abcs.extensions.myGreatExt
*/
ExtensionManifestFormat.id = 'id';
/**
* Human readable name of the extension.
*
* @version 16.3.1
* @type {String}
*/
ExtensionManifestFormat.displayName = 'displayName';
/**
* Human readable description of the extension.
*
* @type {String}
*/
ExtensionManifestFormat.description = 'description';
/**
* Defines type of the extension. Types are defined in {@link extensions.dt/js/spi/ExtensionManager~ExtensionType ExtensionType}
*
* @type {String}
*/
ExtensionManifestFormat.type = 'type';
/**
* The AMD modules package.
*
* <p>All the AMD modules which makes the extension needs to use this package
* to refer to each other. The designer is responsible for configuring
* the requirejs packages appropriately in both DT and RT.</p>
*
* <p>The package also needs to be unique</p>
*
* @type {String}
*
* @example <caption>A FQN package</caption>
* com.mycompany.abcs.extensions.myGreatExt
*/
ExtensionManifestFormat.package = 'package';
/**
* Path of the module used to control the extension in design time.
*
* The path must begin with the value of {@link extensions.dt/js/api/ExtensionManifestFormat.package ExtensionManifestFormat.package} key.
*
* <p>The module needs to implement (contain its methods) the {@link extensions.dt/js/spi/ExtensionManager} module.</p>
*
* @type {String}
*/
ExtensionManifestFormat.extensionManager = 'extensionManager';
/**
* Path to an image representing the extension. Can be used for either a preview (especially
* useful for Theme extensions) or an icon (e.g. a Twitter icon for a Twitter BOP) or does not
* have to be specified at all.
*
* @type {String}
*/
ExtensionManifestFormat.image = 'image';
/**
* Runtime section of the manifest.
*
* @type {String}
*/
ExtensionManifestFormat.runtime = 'runtime';
/**
* Contains a list of resources which needs to be exported to the generated
* application artefact (for runtime).
*
* <p>Please note that these are resource files references (no module names)
* so the paths needs to contain extensions even for javascript files.</p>
*
* @type {String}
*/
ExtensionManifestFormat.resources = 'resources';
/**
* Contains an array of dependencies descriptions of the extension.
*
* @type {String}
*/
ExtensionManifestFormat.dependencies = 'dependencies';
return ExtensionManifestFormat;
});