import {type AdminContextKey, type Plugin} from '@myparcel-pdk/common'; import {type FormInstance} from '@myparcel/vue-form-builder'; import {type OneOrMore, type Replace} from '@myparcel/ts-utils'; import {type AdminInstanceContextKey, type AdminModalKey} from '../data'; import {type BackendPdkEndpointObject} from './endpoints.types'; export type AdminContextObject = Replace & Partial; export type GlobalAdminContext = Replace; export type AnyAdminContext = AdminContext; export type AdminContext = T extends keyof AdminContextObject ? AdminContextObject[T] : never; export type AdminInstanceContext = { [AdminInstanceContextKey.OrderIdentifier]: Plugin.ModelContextOrderDataContext['externalIdentifier']; [AdminInstanceContextKey.ProductIdentifier]: Plugin.ModelContextProductDataContext['externalIdentifier']; }; type BaseModalContext = {form?: FormInstance}; export type AdminModalContext = | (BaseModalContext & (T extends AdminModalKey.ShipmentOptions ? {orderIds?: OneOrMore} : unknown)) | null;