Source

admin-bro/src/backend/decorators/property-json.interface.ts

export enum PropertyPlace {
  show = 'show',
  list = 'list',
  edit = 'edit',
  filter = 'filter',
}

/**
 * JSON representation of a Property.
 */
export default interface PropertyJSON {
  /**
   * If given property should be treated as a title
   */
  isTitle: boolean;
  /**
   * If given property should be treated as a Id field
   */
  isId: boolean;
  /**
   * Property position on a list
   */
  position: number;
  /**
   * If property is sortable
   */
  isSortable: boolean;
  /**
   * If property has restricted number of values
   */
  availableValues: Array<{label: string; value: string}> | null;
  /**
   * Property uniq name/path
   */
  name: string;
  /**
   * Property label
   */
  label: string;
  /**
   * Property type
   */
  type: string;
  /**
   * Has a name of a resource to which it is a reference.
   * For instance property `userId` will have here `Users`
   */
  reference: string | null;
  /**
   * Indicates if property is an array of properties
   */
  isArray: boolean;
  /**
   * Contain list of all sub properties
   */
  subProperties: Array<PropertyJSON>;
  /**
   * All components overridden by the user in PropertyOptions
   */
  components?: {
    show?: string;
    edit?: string;
    filter?: string;
    list?: string;
  };

  /**
   * Custom parameters passed from the {@link PropertyOptions.custom}
   */
  custom: {
    [key: string]: boolean | string | number | Date;
  };

  /**
   * Whether the field should be disabled in edition
   */
  isDisabled: boolean;
}