| Current Path : /home/rtorresani/www/vendor/magento/module-catalog/view/adminhtml/web/js/form/element/ |
| Current File : //home/rtorresani/www/vendor/magento/module-catalog/view/adminhtml/web/js/form/element/input.js |
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
define([
'underscore',
'Magento_Ui/js/form/element/abstract'
], function (_, Abstract) {
'use strict';
return Abstract.extend({
defaults: {
prefixName: '',
prefixElementName: '',
elementName: '',
suffixName: ''
},
/**
* Parses options and merges the result with instance
*
* @returns {Object} Chainable.
*/
initConfig: function () {
this._super();
this.configureDataScope();
return this;
},
/**
* Configure data scope.
*/
configureDataScope: function () {
var recordId,
prefixName,
suffixName;
// Get recordId
recordId = this.parentName.split('.').last();
prefixName = this.dataScopeToHtmlArray(this.prefixName);
this.elementName = this.prefixElementName + recordId;
suffixName = '';
if (!_.isEmpty(this.suffixName) || _.isNumber(this.suffixName)) {
suffixName = '[' + this.suffixName + ']';
}
this.inputName = prefixName + '[' + this.elementName + ']' + suffixName;
suffixName = '';
if (!_.isEmpty(this.suffixName) || _.isNumber(this.suffixName)) {
suffixName = '.' + this.suffixName;
}
this.exportDataLink = 'data.' + this.prefixName + '.' + this.elementName + suffixName;
this.exports.value = this.provider + ':' + this.exportDataLink;
},
/** @inheritdoc */
destroy: function () {
this._super();
this.source.remove(this.exportDataLink);
},
/**
* Get HTML array from data scope.
*
* @param {String} dataScopeString
* @returns {String}
*/
dataScopeToHtmlArray: function (dataScopeString) {
var dataScopeArray, dataScope, reduceFunction;
/**
* Add new level of nesting.
*
* @param {String} prev
* @param {String} curr
* @returns {String}
*/
reduceFunction = function (prev, curr) {
return prev + '[' + curr + ']';
};
dataScopeArray = dataScopeString.split('.');
dataScope = dataScopeArray.shift();
dataScope += dataScopeArray.reduce(reduceFunction, '');
return dataScope;
}
});
});