Name
sn_uibtk_api.Preset
Description
No description available
Script
var Preset = Class.create();
Preset.prototype = Object.extendsObject(BuilderToolkitAPIBase, {
TABLE: 'sys_ux_component_preset',
FIELDS: ['name', 'component', 'controller', 'description', 'properties', 'event_handlers', 'hide_component', 'is_repeater', 'is_repeated_element', 'parent_repeater_preset', 'repeat_with', 'repeated_item_meta'],
/**
* @param fields {string[]}
*/
initialize: function(fields) {
BuilderToolkitAPIBase.prototype.initialize.call(this, this.TABLE, fields || this.FIELDS);
},
/**
* Overrides parent class function to inject special fields
* @param acc {object} the accumulator object
* @param field {GlideElement} the field element we are currently working on
*/
getFieldValues: function(acc, field) {
if (field.nil()) {
return acc;
}
acc = BuilderToolkitAPIBase.prototype.getFieldValues.call(this, acc, field);
const fieldName = field.getName();
if (fieldName === 'properties') {
const properties = this.parseJSON(field, {
sysId: acc.sysId,
field: 'properties'
});
acc['properties'] = Object.entries(properties).reduce(function(propsAcc, [key, value]) {
if (value.type === 'CLIENT_TRANSFORM_SCRIPT') {
const scriptSysId = value?.script?.scriptSysId;
const clientScript = new ClientScript(['script']).getRecordById(scriptSysId, true);
if (clientScript) {
value = {
...value,
script: {
...value.script,
scriptSysId: '',
inlineScript: clientScript.getValue('script')
}
};
}
}
propsAcc[key] = value;
return propsAcc;
}, {});
}
return acc;
},
/**
* @param presetArray {array} converts an array of presets into object by component ID
*/
convertPresetDefinitions: function(presetArray) {
return presetArray.reduce(function(acc, preset) {
const componentId = preset.isRepeater ? BuilderToolkitConstants.REPEATER : preset.component
if (!acc[componentId]) {
acc[componentId] = [];
}
acc[componentId].push(preset);
return acc;
}, {});
},
type: 'Preset'
});
Sys ID
8fafc6ab1cfa111003e45b7517caa309