{"version":3,"file":"fields.cjs","sources":["../../../src/graphql/fields.ts"],"sourcesContent":["export const LinkType = {\n\tDocument: \"Link.document\",\n\tFile: \"Link.file\",\n\tImage: \"Link.image\",\n\tWeb: \"Link.web\",\n} as const;\n\n/**\n * Represents a link field without a value.\n */\nexport type EmptyLinkField = null;\n\n/**\n * Link that point to Documents\n */\nexport interface FilledMinimalLinkToDocumentField {\n\t_linkType: typeof LinkType.Document | string;\n}\n\n/**\n * Link that points to external website\n */\nexport interface FilledMinimalLinkToWebField {\n\t_linkType: typeof LinkType.Web | string;\n\turl: string;\n}\n\n/**\n * Link that points to media (images, PDFs, or any file in the Media Library)\n */\nexport interface FilledMinimalLinkToMediaField {\n\t_linkType: typeof LinkType.File | typeof LinkType.Image | string;\n\turl: string;\n}\n\n/**\n * Field for related documents\n */\nexport type RelationField<\n\tExtendedLinkToDocumentField extends FilledMinimalLinkToWebField = FilledMinimalLinkToWebField,\n\tIsEmpty extends boolean = boolean,\n> = IsEmpty extends true ? EmptyLinkField : ExtendedLinkToDocumentField;\n\n/**\n * Link Field\n */\nexport type LinkField<\n\tExtendedLinkToDocumentField extends FilledMinimalLinkToDocumentField = FilledMinimalLinkToDocumentField,\n\tExtendedLinkToWebField extends FilledMinimalLinkToWebField = FilledMinimalLinkToWebField,\n\tExtendedLinkToMediaField extends FilledMinimalLinkToMediaField = FilledMinimalLinkToMediaField,\n\tIsEmpty extends boolean = boolean,\n> = IsEmpty extends true\n\t? EmptyLinkField\n\t:\n\t\t\t| ExtendedLinkToDocumentField\n\t\t\t| ExtendedLinkToWebField\n\t\t\t| ExtendedLinkToMediaField;\n\n/**\n * Link field that points to media\n */\nexport type LinkToMediaField<\n\tExtendedLinkToMediaField extends FilledMinimalLinkToMediaField = FilledMinimalLinkToMediaField,\n\tIsEmpty extends boolean = boolean,\n> = IsEmpty extends true ? EmptyLinkField : ExtendedLinkToMediaField;\n"],"names":[],"mappings":";;AAAO,MAAM,WAAW;AAAA,EACvB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;;;"}