61 lines
1.7 KiB
Plaintext
61 lines
1.7 KiB
Plaintext
const FootageInterface = (function () {
|
|
var outlineInterfaceFactory = (function (elem) {
|
|
var currentPropertyName = '';
|
|
var currentProperty = elem.getFootageData();
|
|
function init() {
|
|
currentPropertyName = '';
|
|
currentProperty = elem.getFootageData();
|
|
return searchProperty;
|
|
}
|
|
function searchProperty(value) {
|
|
if (currentProperty[value]) {
|
|
currentPropertyName = value;
|
|
currentProperty = currentProperty[value];
|
|
if (typeof currentProperty === 'object') {
|
|
return searchProperty;
|
|
}
|
|
return currentProperty;
|
|
}
|
|
var propertyNameIndex = value.indexOf(currentPropertyName);
|
|
if (propertyNameIndex !== -1) {
|
|
var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);
|
|
currentProperty = currentProperty[index];
|
|
if (typeof currentProperty === 'object') {
|
|
return searchProperty;
|
|
}
|
|
return currentProperty;
|
|
}
|
|
return '';
|
|
}
|
|
return init;
|
|
});
|
|
|
|
var dataInterfaceFactory = function (elem) {
|
|
function interfaceFunction(value) {
|
|
if (value === 'Outline') {
|
|
return interfaceFunction.outlineInterface();
|
|
}
|
|
return null;
|
|
}
|
|
|
|
interfaceFunction._name = 'Outline';
|
|
interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);
|
|
return interfaceFunction;
|
|
};
|
|
|
|
return function (elem) {
|
|
function _interfaceFunction(value) {
|
|
if (value === 'Data') {
|
|
return _interfaceFunction.dataInterface;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
_interfaceFunction._name = 'Data';
|
|
_interfaceFunction.dataInterface = dataInterfaceFactory(elem);
|
|
return _interfaceFunction;
|
|
};
|
|
}());
|
|
|
|
export default FootageInterface;
|