/** * @class Ext.mixin.Mashup * @extend Ext.Mixin * * This mixin allows users to easily require external scripts in their classes. This load * process delays application launch (`Ext.onReady`) until all such scripts are loaded * ensuring that your class will have access to its required scripts from the start. * * For example: * * Ext.define('Feed', { * mixins: 'Ext.mixin.Mashup', * * requiredScripts: [ * '//www.foo.com/code/bar.js' // preserve http/s * ], * * // The code in "bar.js" will be available at application launch * }); * * If your required script needs to be dynamic, for example it contains a key for an API, you can * use the {@link Ext.Manifest#mashup mashup} object. * * @since 5.0.0 */ /** * @cfg {String/String[]} requiredScripts * Scripts that are required to be loaded in order for your Mashup to work. * These scripts can also use {@link Ext.Template template} syntax if there is data in the * {@link Ext.Manifest#mashup mashup} object for the class `xtype`. * * For example, `Ext.ux.google.Map` needs an API key and so its `requiredScripts` looks * like this: * * requiredScripts: { * '//maps.googleapis.com/maps/api/js?key={key}' * } * * The `key` property is provided in `app.json` or directly in `Ext.manifest`: * * "mashup": { * "map": { // the xtype * "key": "[GOOGLE_MAPS_KEY]" * } * } */ /** * @cfg {Object} mashup * An object that allows developers to pass values into templates used to populate * {@link Ext.Mashup#requiredScripts requiredScripts}. * * Here is an example of passing a key along to `Ext.ux.google.Map`. * * "mashup": { * "map": { // the xtype * "key": "[GOOGLE_MAPS_KEY]" * } * } * * @member Ext.Manifest */