@sassoftware/vi-api
Version:
Types used in the SAS Visual Investigator API
44 lines (43 loc) • 1.68 kB
TypeScript
import { FieldType, NumberDataType } from "./data-types";
export interface MaskedFieldRestriction {
masked?: {
currentUserIsAuthorizedToReveal: boolean;
revealUrl?: string;
};
}
export interface RequirableRestriction extends MaskedFieldRestriction {
required: boolean;
}
export interface FieldRestrictions extends RequirableRestriction {
readOnly: boolean;
systemReserved: boolean;
dataType: FieldType;
}
export interface StringRestrictions extends FieldRestrictions {
dataType: "STRING";
maxLength?: number;
}
export interface NumericRestrictions extends FieldRestrictions {
fieldDataType: "NUMERIC";
scale?: number;
precision?: number;
}
export interface NumberRestrictions extends FieldRestrictions {
fieldDataType: NumberDataType;
precision?: number;
}
export interface ReferenceDataRestrictions extends FieldRestrictions {
constrainingListName: string;
cascadingReferenceDataName?: string;
cascadingReferenceDataFilterByCode?: string;
cascadingReferenceDataFilterByField?: string;
}
export type UserGroupStrategy = "USERS" | "GROUPS" | "USERS_AND_GROUPS";
export interface UserGroupRestrictions extends FieldRestrictions {
allowMultipleSelections: boolean;
userSelectionStrategy: UserGroupStrategy;
}
export interface FileRestrictions extends RequirableRestriction {
allowMultipleFiles: boolean;
}
export type FieldTypeToRestrictions<Type extends FieldType> = Type extends "STRING" ? StringRestrictions : Type extends "NUMERIC" ? NumericRestrictions : Type extends "REFERENCEDATA" ? ReferenceDataRestrictions : Type extends "USER_GROUP" ? UserGroupRestrictions : FieldRestrictions;