import { ReferenceFieldAPI } from '@core/typings/api/reference-fields.typing'; import { TokenGroup } from '@core/typings/ckeditor.typing'; import { ReferenceFieldsUI } from '@core/typings/ui/reference-fields.typing'; import { SimpleNumberMap, SimpleStringMap, TypeaheadSelectOption } from '@yourcause/common'; import { BaseYcState, RegisterYCState } from '@yourcause/common/state'; @RegisterYCState() export class ReferenceFieldsState extends BaseYcState { readonly allReferenceFields: ReferenceFieldAPI.ReferenceFieldDisplayModel[]; readonly referenceFieldMap: SimpleStringMap = {}; readonly referenceFieldMapById: SimpleNumberMap = {}; readonly categories: ReferenceFieldAPI.Category[]; readonly categoryNameMap: SimpleStringMap = {}; readonly categoryOptions: TypeaheadSelectOption[]; readonly categoryTokenGroups: TokenGroup[]; readonly allTypes: ReferenceFieldsUI.TypeForFormio[]; readonly invalidFormFieldText: string; readonly currentFormRefFields: ReferenceFieldAPI.ReferenceFieldDisplayModel[]; readonly parentPicklistValueMap: SimpleStringMap = {}; readonly isParentRefFieldMap: Record = {}; readonly tableColumnsMap: Record = {}; readonly dataPointsMap: Record = {}; /* This tracks the most current rows in a table on a particular application form so we can do change tracking on save */ /* Left side of map is ApplicationFormId_TableId */ readonly applicationFormTableRowsMap: Record = {}; }