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

Offical Documentation

Official Docs: