Source: classes/advanced/arrayClassVariable.js

/*global require */
'use strict';

var _ = require('lodash'),
    utils = require('./../../build-utils'),
    OutputBloq = require('./../../outputBloq');

/**
 * Bloq name: arrayClassVariable
 *
 * Bloq type: Output
 *
 * Description: It returns an specific element of an array-type variable,
 *              selectable from a first drop-down, of an object, selectable
 *              from a second drop-down.
 *
 * Return type: element's type of the array variable
 */

var arrayClassVariable = _.merge(_.clone(OutputBloq, true), {

    name: 'arrayClassVariable',
    bloqClass: 'bloq-array-class-variable',
    content: [
        [{
            alias: 'text',
            value: 'bloq-array-class-variable-variable'
        }, {
            id: 'VAR',
            alias: 'dynamicDropdown',
            options: 'softwareVars'
        }, {
            alias: 'text',
            value: '['
        }, {
            id: 'POSITION',
            alias: 'numberInput',
            value: 0
        }, {
            alias: 'text',
            value: ']'
        }, {
            alias: 'text',
            value: 'bloq-invoke-class-function-class'
        }, {
            id: 'CLASS',
            alias: 'dynamicDropdown',
            options: 'objects'
        }]
    ],
    code: '{CLASS}.{VAR}[{POSITION}]',
    returnType: {
        type: 'fromDynamicDropdown',
        idDropdown: 'VAR',
        pointer: 'true',
        options: 'softwareVars'
    }
});

utils.generateBloqInputConnectors(arrayClassVariable);

module.exports = arrayClassVariable;