UNPKG

@sassoftware/vi-api

Version:
44 lines (43 loc) 1.68 kB
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;