UIParam Dictionary - SmartJSONEditor/PublicDocuments GitHub Wiki

Dictionary UI Parameter

Dictionary parameter is suitable for Key / Value / enabled user values. User can freely create or remove several items.

Note, dictionary UI Parameter returns Array of objects, you should filter it by enabled value and create a key:value object that is suitable in other scripting inputs.

this.parameters = function () {
		
    var dictionaryUIParameter = { 
        name: "myDictionaryParam",
	type: "Dictionary", 
	displayName: "Dictionary Parameter",
	description: "Press + button to create an item", 
	defaultValue: [{ key:"Key", value: "Value", enabled: true }],
        userInfo: { keyPlaceholder: "Parameter Name", valuePlaceholder: "Parameter Value" }
    };

    return [dictionaryUIParameter];
}
    
this.environments = function (parameters, info) {
    // returns [ { key: "Key", value: "value", enabled: true } ... ] values
    var dictionaryArrayParameterValue = parameters.myDictionaryParam; // Array of objects
    var keyValueDictionary = convertDictionaryParameter(dictionaryParameterValue); // Dictionary type object
};

// Returns { key : value } object
function convertDictionaryParameter(dictionary) {
        
    // Dictionary UI parameter returns { key: "key", value: "value", enabled:true } elements in array.
    // Filter not enabled and convert them to single key:value dictionary
    if (dictionary === undefined) { return {} }
        
    var keyValue = {};
    for(var i=0; i< dictionary.length;i++) {
        var item = dictionary[i];
        if (item.enabled === true) { keyValue[item.key] = item.value; }
    }
    return keyValue;
}

All UI parameters are Javascript Objects.

name (*Required)

Name property identifies the parameter name and also returns the value in functions that receives the parameters input. Access the value using the parameters.name property.

type (*Required)

Dictionary, set the type as "Dictionary"

displayName

Interface display name.

description

Interface detail text

defaultValue

Array of objects [ { key: "key", value: "value", enabled: true }, ...]