diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2578f37a5a..b587046bfd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -283,6 +283,7 @@ jobs: - fields-relationship - fields__collections__Array - fields__collections__Blocks + - fields__collections__Blocks#config.blockreferences.ts - fields__collections__Checkbox - fields__collections__Collapsible - fields__collections__ConditionalLogic @@ -293,6 +294,7 @@ jobs: - fields__collections__JSON - fields__collections__Lexical__e2e__main - fields__collections__Lexical__e2e__blocks + - fields__collections__Lexical__e2e__blocks#config.blockreferences.ts - fields__collections__Number - fields__collections__Point - fields__collections__Radio diff --git a/docs/fields/blocks.mdx b/docs/fields/blocks.mdx index eb35882f23..397ba6fcf5 100644 --- a/docs/fields/blocks.mdx +++ b/docs/fields/blocks.mdx @@ -295,6 +295,70 @@ export const CustomBlocksFieldLabelClient: BlocksFieldLabelClientComponent = ({ } ``` +## Block References + +If you have multiple blocks used in multiple places, your Payload Config can grow in size, potentially sending more data to the client and requiring more processing on the server. However, you can optimize performance by defining each block **once** in your Payload Config and then referencing its slug wherever it's used instead of passing the entire block config. + +To do this, define the block in the `blocks` array of the Payload Config. Then, in the Blocks Field, pass the block slug to the `blockReferences` array - leaving the `blocks` array empty for compatibility reasons. + +```ts +import { buildConfig } from 'payload' +import { lexicalEditor, BlocksFeature } from '@payloadcms/richtext-lexical' + +// Payload Config +const config = buildConfig({ + // Define the block once + blocks: [ + { + slug: 'TextBlock', + fields: [ + { + name: 'text', + type: 'text', + }, + ], + }, + ], + collections: [ + { + slug: 'collection1', + fields: [ + { + name: 'content', + type: 'blocks', + // Reference the block by slug + blockReferences: ['TextBlock'], + blocks: [], // Required to be empty, for compatibility reasons + }, + ], + }, + { + slug: 'collection2', + fields: [ + { + name: 'editor', + type: 'richText', + editor: lexicalEditor({ + BlocksFeature({ + // Same reference can be reused anywhere, even in the lexical editor, without incurred performance hit + blocks: ['TextBlock'], + }) + }) + }, + ], + }, + ], +}) +``` + + + **Reminder:** + Blocks referenced in the `blockReferences` array are treated as isolated from the collection / global config. This has the following implications: + + 1. The block config cannot be modified or extended in the collection config. It will be identical everywhere it's referenced. + 2. Access control for blocks referenced in the `blockReferences` are run only once - data from the collection will not be available in the block's access control. + + ## TypeScript As you build your own Block configs, you might want to store them in separate files but retain typing accordingly. To do so, you can import and use Payload's `Block` type: diff --git a/packages/db-mongodb/src/models/buildSchema.ts b/packages/db-mongodb/src/models/buildSchema.ts index 19b8ff86c0..08059892b0 100644 --- a/packages/db-mongodb/src/models/buildSchema.ts +++ b/packages/db-mongodb/src/models/buildSchema.ts @@ -3,7 +3,6 @@ import type { IndexOptions, Schema, SchemaOptions, SchemaTypeOptions } from 'mon import mongoose from 'mongoose' import { type ArrayField, - type Block, type BlocksField, type CheckboxField, type CodeField, @@ -193,11 +192,12 @@ const fieldToSchemaMap: Record = { schema.add({ [field.name]: localizeSchema(field, fieldSchema, payload.config.localization), }) - - field.blocks.forEach((blockItem: Block) => { + ;(field.blockReferences ?? field.blocks).forEach((blockItem) => { const blockSchema = new mongoose.Schema({}, { _id: false, id: false }) - blockItem.fields.forEach((blockField) => { + const block = typeof blockItem === 'string' ? payload.blocks[blockItem] : blockItem + + block.fields.forEach((blockField) => { const addFieldSchema: FieldSchemaGenerator = fieldToSchemaMap[blockField.type] if (addFieldSchema) { addFieldSchema(blockField, blockSchema, payload, buildSchemaOptions) @@ -207,11 +207,11 @@ const fieldToSchemaMap: Record = { if (field.localized && payload.config.localization) { payload.config.localization.localeCodes.forEach((localeCode) => { // @ts-expect-error Possible incorrect typing in mongoose types, this works - schema.path(`${field.name}.${localeCode}`).discriminator(blockItem.slug, blockSchema) + schema.path(`${field.name}.${localeCode}`).discriminator(block.slug, blockSchema) }) } else { // @ts-expect-error Possible incorrect typing in mongoose types, this works - schema.path(field.name).discriminator(blockItem.slug, blockSchema) + schema.path(field.name).discriminator(block.slug, blockSchema) } }) }, diff --git a/packages/db-mongodb/src/predefinedMigrations/migrateRelationshipsV2_V3.ts b/packages/db-mongodb/src/predefinedMigrations/migrateRelationshipsV2_V3.ts index 670262f7aa..926eaf3d08 100644 --- a/packages/db-mongodb/src/predefinedMigrations/migrateRelationshipsV2_V3.ts +++ b/packages/db-mongodb/src/predefinedMigrations/migrateRelationshipsV2_V3.ts @@ -80,6 +80,10 @@ const hasRelationshipOrUploadField = ({ fields }: { fields: Field[] }): boolean if ('blocks' in field) { for (const block of field.blocks) { + if (typeof block === 'string') { + // Skip - string blocks have been added in v3 and thus don't need to be migrated + continue + } if (hasRelationshipOrUploadField({ fields: block.fields })) { return true } diff --git a/packages/db-mongodb/src/queries/getLocalizedSortProperty.ts b/packages/db-mongodb/src/queries/getLocalizedSortProperty.ts index f7aec4bbd4..1fcf5a341d 100644 --- a/packages/db-mongodb/src/queries/getLocalizedSortProperty.ts +++ b/packages/db-mongodb/src/queries/getLocalizedSortProperty.ts @@ -65,18 +65,24 @@ export const getLocalizedSortProperty = ({ } if (matchedField.type === 'blocks') { - nextFields = matchedField.blocks.reduce((flattenedBlockFields, block) => { - return [ - ...flattenedBlockFields, - ...block.flattenedFields.filter( - (blockField) => - (fieldAffectsData(blockField) && - blockField.name !== 'blockType' && - blockField.name !== 'blockName') || - !fieldAffectsData(blockField), - ), - ] - }, []) + nextFields = (matchedField.blockReferences ?? matchedField.blocks).reduce( + (flattenedBlockFields, _block) => { + // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks + const block = + typeof _block === 'string' ? config.blocks.find((b) => b.slug === _block) : _block + return [ + ...flattenedBlockFields, + ...block.flattenedFields.filter( + (blockField) => + (fieldAffectsData(blockField) && + blockField.name !== 'blockType' && + blockField.name !== 'blockName') || + !fieldAffectsData(blockField), + ), + ] + }, + [], + ) } const result = incomingResult ? `${incomingResult}.${localizedSegment}` : localizedSegment diff --git a/packages/db-mongodb/src/queries/sanitizeQueryValue.ts b/packages/db-mongodb/src/queries/sanitizeQueryValue.ts index 219cbd2a44..60292c7cf7 100644 --- a/packages/db-mongodb/src/queries/sanitizeQueryValue.ts +++ b/packages/db-mongodb/src/queries/sanitizeQueryValue.ts @@ -1,4 +1,10 @@ -import type { FlattenedBlock, FlattenedField, Payload, RelationshipField } from 'payload' +import type { + FlattenedBlock, + FlattenedBlocksField, + FlattenedField, + Payload, + RelationshipField, +} from 'payload' import { Types } from 'mongoose' import { createArrayFromCommaDelineated } from 'payload' @@ -40,14 +46,18 @@ const buildExistsQuery = (formattedValue, path, treatEmptyString = true) => { // returns nestedField Field object from blocks.nestedField path because getLocalizedPaths splits them only for relationships const getFieldFromSegments = ({ field, + payload, segments, }: { field: FlattenedBlock | FlattenedField + payload: Payload segments: string[] }) => { - if ('blocks' in field) { - for (const block of field.blocks) { - const field = getFieldFromSegments({ field: block, segments }) + if ('blocks' in field || 'blockReferences' in field) { + const _field: FlattenedBlocksField = field as FlattenedBlocksField + for (const _block of _field.blockReferences ?? _field.blocks) { + const block: FlattenedBlock = typeof _block === 'string' ? payload.blocks[_block] : _block + const field = getFieldFromSegments({ field: block, payload, segments }) if (field) { return field } @@ -67,7 +77,7 @@ const getFieldFromSegments = ({ } segments.shift() - return getFieldFromSegments({ field: foundField, segments }) + return getFieldFromSegments({ field: foundField, payload, segments }) } } } @@ -91,7 +101,7 @@ export const sanitizeQueryValue = ({ if (['array', 'blocks', 'group', 'tab'].includes(field.type) && path.includes('.')) { const segments = path.split('.') segments.shift() - const foundField = getFieldFromSegments({ field, segments }) + const foundField = getFieldFromSegments({ field, payload, segments }) if (foundField) { field = foundField diff --git a/packages/db-mongodb/src/utilities/buildProjectionFromSelect.ts b/packages/db-mongodb/src/utilities/buildProjectionFromSelect.ts index 51215d7c6f..c7445cfaff 100644 --- a/packages/db-mongodb/src/utilities/buildProjectionFromSelect.ts +++ b/packages/db-mongodb/src/utilities/buildProjectionFromSelect.ts @@ -123,7 +123,8 @@ const traverseFields = ({ case 'blocks': { const blocksSelect = select[field.name] as SelectType - for (const block of field.blocks) { + for (const _block of field.blockReferences ?? field.blocks) { + const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block if ( (selectMode === 'include' && blocksSelect[block.slug] === true) || (selectMode === 'exclude' && typeof blocksSelect[block.slug] === 'undefined') diff --git a/packages/db-mongodb/src/utilities/sanitizeRelationshipIDs.ts b/packages/db-mongodb/src/utilities/sanitizeRelationshipIDs.ts index bdecaa4066..948b7b29b9 100644 --- a/packages/db-mongodb/src/utilities/sanitizeRelationshipIDs.ts +++ b/packages/db-mongodb/src/utilities/sanitizeRelationshipIDs.ts @@ -1,7 +1,7 @@ import type { CollectionConfig, Field, SanitizedConfig, TraverseFieldsCallback } from 'payload' import { Types } from 'mongoose' -import { APIError, traverseFields } from 'payload' +import { traverseFields } from 'payload' import { fieldAffectsData } from 'payload/shared' type Args = { @@ -150,7 +150,7 @@ export const sanitizeRelationshipIDs = ({ } } - traverseFields({ callback: sanitize, fields, fillEmpty: false, ref: data }) + traverseFields({ callback: sanitize, config, fields, fillEmpty: false, ref: data }) return data } diff --git a/packages/drizzle/src/find/traverseFields.ts b/packages/drizzle/src/find/traverseFields.ts index 3ed85d0c71..6a98b8c4ef 100644 --- a/packages/drizzle/src/find/traverseFields.ts +++ b/packages/drizzle/src/find/traverseFields.ts @@ -185,7 +185,8 @@ export const traverseFields = ({ } } - field.blocks.forEach((block) => { + ;(field.blockReferences ?? field.blocks).forEach((_block) => { + const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block const blockKey = `_blocks_${block.slug}` let blockSelect: boolean | SelectType | undefined diff --git a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.ts b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.ts index 8304c659be..4b9f6f1132 100644 --- a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.ts +++ b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.ts @@ -1,4 +1,4 @@ -import type { FlattenedField } from 'payload' +import type { FlattenedBlock, FlattenedField } from 'payload' type Args = { doc: Record @@ -51,7 +51,10 @@ export const traverseFields = ({ doc, fields, locale, path, rows }: Args) => { Object.entries(rowData).forEach(([locale, localeRows]) => { if (Array.isArray(localeRows)) { localeRows.forEach((row, i) => { - const matchedBlock = field.blocks.find((block) => block.slug === row.blockType) + // Can ignore string blocks, as those were added in v3 and don't need to be migrated + const matchedBlock = field.blocks.find( + (block) => typeof block !== 'string' && block.slug === row.blockType, + ) as FlattenedBlock | undefined if (matchedBlock) { return traverseFields({ @@ -69,7 +72,10 @@ export const traverseFields = ({ doc, fields, locale, path, rows }: Args) => { if (Array.isArray(rowData)) { rowData.forEach((row, i) => { - const matchedBlock = field.blocks.find((block) => block.slug === row.blockType) + // Can ignore string blocks, as those were added in v3 and don't need to be migrated + const matchedBlock = field.blocks.find( + (block) => typeof block !== 'string' && block.slug === row.blockType, + ) as FlattenedBlock | undefined if (matchedBlock) { return traverseFields({ diff --git a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/traverseFields.ts b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/traverseFields.ts index 1a6b6cea2c..9948644594 100644 --- a/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/traverseFields.ts +++ b/packages/drizzle/src/postgres/predefinedMigrations/v2-v3/traverseFields.ts @@ -42,6 +42,11 @@ export const traverseFields = (args: Args) => { case 'blocks': { return field.blocks.forEach((block) => { + // Can ignore string blocks, as those were added in v3 and don't need to be migrated + if (typeof block === 'string') { + return + } + const newTableName = args.adapter.tableNameMap.get( `${args.rootTableName}_blocks_${toSnakeCase(block.slug)}`, ) diff --git a/packages/drizzle/src/queries/getTableColumnFromPath.ts b/packages/drizzle/src/queries/getTableColumnFromPath.ts index bbd72fe56a..5717a6507e 100644 --- a/packages/drizzle/src/queries/getTableColumnFromPath.ts +++ b/packages/drizzle/src/queries/getTableColumnFromPath.ts @@ -1,6 +1,6 @@ import type { SQL } from 'drizzle-orm' import type { SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core' -import type { FlattenedField, NumberField, TextField } from 'payload' +import type { FlattenedBlock, FlattenedField, NumberField, TextField } from 'payload' import { and, eq, like, sql } from 'drizzle-orm' import { type PgTableWithColumns } from 'drizzle-orm/pg-core' @@ -176,7 +176,12 @@ export const getTableColumnFromPath = ({ // find the block config using the value const blockTypes = Array.isArray(value) ? value : [value] blockTypes.forEach((blockType) => { - const block = field.blocks.find((block) => block.slug === blockType) + const block = + adapter.payload.blocks[blockType] ?? + ((field.blockReferences ?? field.blocks).find( + (block) => typeof block !== 'string' && block.slug === blockType, + ) as FlattenedBlock | undefined) + newTableName = adapter.tableNameMap.get( `${tableName}_blocks_${toSnakeCase(block.slug)}`, ) @@ -201,11 +206,13 @@ export const getTableColumnFromPath = ({ } } - const hasBlockField = field.blocks.some((block) => { + const hasBlockField = (field.blockReferences ?? field.blocks).some((_block) => { + const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block + newTableName = adapter.tableNameMap.get(`${tableName}_blocks_${toSnakeCase(block.slug)}`) constraintPath = `${constraintPath}${field.name}.%.` - let result + let result: TableColumn const blockConstraints = [] const blockSelectFields = {} try { diff --git a/packages/drizzle/src/schema/traverseFields.ts b/packages/drizzle/src/schema/traverseFields.ts index 9cd8161cfc..67b8be7129 100644 --- a/packages/drizzle/src/schema/traverseFields.ts +++ b/packages/drizzle/src/schema/traverseFields.ts @@ -343,7 +343,9 @@ export const traverseFields = ({ case 'blocks': { const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull - field.blocks.forEach((block) => { + ;(field.blockReferences ?? field.blocks).forEach((_block) => { + const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block + const blockTableName = createTableName({ adapter, config: block, diff --git a/packages/drizzle/src/transform/read/traverseFields.ts b/packages/drizzle/src/transform/read/traverseFields.ts index 660d5c8259..d7078cc5f7 100644 --- a/packages/drizzle/src/transform/read/traverseFields.ts +++ b/packages/drizzle/src/transform/read/traverseFields.ts @@ -1,6 +1,6 @@ -import type { FlattenedField, JoinQuery, SanitizedConfig } from 'payload' +import type { FlattenedBlock, FlattenedField, JoinQuery, SanitizedConfig } from 'payload' -import { fieldAffectsData, fieldIsVirtual } from 'payload/shared' +import { fieldIsVirtual } from 'payload/shared' import type { DrizzleAdapter } from '../../types.js' import type { BlocksMap } from '../../utilities/createBlocksMap.js' @@ -216,7 +216,11 @@ export const traverseFields = >({ Object.entries(result[field.name]).forEach(([locale, localizedBlocks]) => { result[field.name][locale] = localizedBlocks.map((row) => { - const block = field.blocks.find(({ slug }) => slug === row.blockType) + const block = + adapter.payload.blocks[row.blockType] ?? + ((field.blockReferences ?? field.blocks).find( + (block) => typeof block !== 'string' && block.slug === row.blockType, + ) as FlattenedBlock | undefined) if (block) { const blockResult = traverseFields({ @@ -265,7 +269,16 @@ export const traverseFields = >({ row.id = row._uuid delete row._uuid } - const block = field.blocks.find(({ slug }) => slug === row.blockType) + + if (typeof row.blockType !== 'string') { + return acc + } + + const block = + adapter.payload.blocks[row.blockType] ?? + ((field.blockReferences ?? field.blocks).find( + (block) => typeof block !== 'string' && block.slug === row.blockType, + ) as FlattenedBlock | undefined) if (block) { if ( diff --git a/packages/drizzle/src/transform/write/blocks.ts b/packages/drizzle/src/transform/write/blocks.ts index 136eb7a38d..92e714d43f 100644 --- a/packages/drizzle/src/transform/write/blocks.ts +++ b/packages/drizzle/src/transform/write/blocks.ts @@ -1,4 +1,4 @@ -import type { FlattenedBlocksField } from 'payload' +import type { FlattenedBlock, FlattenedBlocksField } from 'payload' import toSnakeCase from 'to-snake-case' @@ -51,7 +51,13 @@ export const transformBlocks = ({ if (typeof blockRow.blockType !== 'string') { return } - const matchedBlock = field.blocks.find(({ slug }) => slug === blockRow.blockType) + + const matchedBlock = + adapter.payload.blocks[blockRow.blockType] ?? + ((field.blockReferences ?? field.blocks).find( + (block) => typeof block !== 'string' && block.slug === blockRow.blockType, + ) as FlattenedBlock | undefined) + if (!matchedBlock) { return } diff --git a/packages/drizzle/src/transform/write/traverseFields.ts b/packages/drizzle/src/transform/write/traverseFields.ts index f51e9cc2f6..ed011d82a5 100644 --- a/packages/drizzle/src/transform/write/traverseFields.ts +++ b/packages/drizzle/src/transform/write/traverseFields.ts @@ -168,8 +168,8 @@ export const traverseFields = ({ } if (field.type === 'blocks') { - field.blocks.forEach(({ slug }) => { - blocksToDelete.add(toSnakeCase(slug)) + ;(field.blockReferences ?? field.blocks).forEach((block) => { + blocksToDelete.add(toSnakeCase(typeof block === 'string' ? block : block.slug)) }) if (field.localized) { diff --git a/packages/graphql/src/schema/buildObjectType.ts b/packages/graphql/src/schema/buildObjectType.ts index f1753d8001..2b88c1ce3d 100644 --- a/packages/graphql/src/schema/buildObjectType.ts +++ b/packages/graphql/src/schema/buildObjectType.ts @@ -108,8 +108,15 @@ export function buildObjectType({ } }, blocks: (objectTypeConfig: ObjectTypeConfig, field: BlocksField) => { - const blockTypes: GraphQLObjectType[] = field.blocks.reduce((acc, block) => { - if (!graphqlResult.types.blockTypes[block.slug]) { + const blockTypes: GraphQLObjectType[] = ( + field.blockReferences ?? field.blocks + ).reduce((acc, _block) => { + const blockSlug = typeof _block === 'string' ? _block : _block.slug + if (!graphqlResult.types.blockTypes[blockSlug]) { + // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks + const block = + typeof _block === 'string' ? config.blocks.find((b) => b.slug === _block) : _block + const interfaceName = block?.interfaceName || block?.graphQL?.singularName || toWords(block.slug, true) @@ -133,8 +140,8 @@ export function buildObjectType({ } } - if (graphqlResult.types.blockTypes[block.slug]) { - acc.push(graphqlResult.types.blockTypes[block.slug]) + if (graphqlResult.types.blockTypes[blockSlug]) { + acc.push(graphqlResult.types.blockTypes[blockSlug]) } return acc diff --git a/packages/next/src/views/LivePreview/Context/index.tsx b/packages/next/src/views/LivePreview/Context/index.tsx index 58bed3d585..3ea06d3cb2 100644 --- a/packages/next/src/views/LivePreview/Context/index.tsx +++ b/packages/next/src/views/LivePreview/Context/index.tsx @@ -2,6 +2,7 @@ import type { ClientField, LivePreviewConfig } from 'payload' import { DndContext } from '@dnd-kit/core' +import { useConfig } from '@payloadcms/ui' import { fieldSchemaToJSON } from 'payload/shared' import React, { useCallback, useEffect, useState } from 'react' @@ -43,6 +44,7 @@ export const LivePreviewProvider: React.FC = ({ const iframeRef = React.useRef(null) const [iframeHasLoaded, setIframeHasLoaded] = useState(false) + const { config } = useConfig() const [zoom, setZoom] = useState(1) @@ -59,7 +61,7 @@ export const LivePreviewProvider: React.FC = ({ React.useState('responsive') const [fieldSchemaJSON] = useState(() => { - return fieldSchemaToJSON(fieldSchema) + return fieldSchemaToJSON(fieldSchema, config) }) // The toolbar needs to freely drag and drop around the page diff --git a/packages/next/src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx b/packages/next/src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx index 2c5a158e2a..81f58b6592 100644 --- a/packages/next/src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx +++ b/packages/next/src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx @@ -1,6 +1,7 @@ +'use client' import type { ClientField } from 'payload' -import { ChevronIcon, Pill, useTranslation } from '@payloadcms/ui' +import { ChevronIcon, Pill, useConfig, useTranslation } from '@payloadcms/ui' import { fieldIsArrayType, fieldIsBlockType } from 'payload/shared' import React, { useState } from 'react' @@ -49,6 +50,7 @@ export const DiffCollapser: React.FC = ({ }) => { const { t } = useTranslation() const [isCollapsed, setIsCollapsed] = useState(initCollapsed) + const { config } = useConfig() let changeCount = 0 @@ -69,6 +71,7 @@ export const DiffCollapser: React.FC = ({ changeCount = countChangedFieldsInRows({ comparisonRows, + config, field, locales, versionRows, @@ -76,6 +79,7 @@ export const DiffCollapser: React.FC = ({ } else { changeCount = countChangedFields({ comparison, + config, fields, locales, version, diff --git a/packages/next/src/views/Version/RenderFieldsToDiff/buildVersionFields.tsx b/packages/next/src/views/Version/RenderFieldsToDiff/buildVersionFields.tsx index daca26ab10..b6b54686f5 100644 --- a/packages/next/src/views/Version/RenderFieldsToDiff/buildVersionFields.tsx +++ b/packages/next/src/views/Version/RenderFieldsToDiff/buildVersionFields.tsx @@ -7,6 +7,7 @@ import type { FieldDiffClientProps, FieldDiffServerProps, FieldTypes, + FlattenedBlock, PayloadComponent, PayloadRequest, SanitizedFieldPermissions, @@ -332,14 +333,27 @@ const buildVersionField = ({ for (let i = 0; i < blocksValue.length; i++) { const comparisonRow = comparisonValue?.[i] || {} const versionRow = blocksValue[i] || {} - const versionBlock = field.blocks.find((block) => block.slug === versionRow.blockType) + + const blockSlugToMatch: string = versionRow.blockType + const versionBlock = + req.payload.blocks[blockSlugToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (block) => typeof block !== 'string' && block.slug === blockSlugToMatch, + ) as FlattenedBlock | undefined) let fields = [] if (versionRow.blockType === comparisonRow.blockType) { fields = versionBlock.fields } else { - const comparisonBlock = field.blocks.find((block) => block.slug === comparisonRow.blockType) + const comparisonBlockSlugToMatch: string = versionRow.blockType + + const comparisonBlock = + req.payload.blocks[comparisonBlockSlugToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (block) => typeof block !== 'string' && block.slug === comparisonBlockSlugToMatch, + ) as FlattenedBlock | undefined) + if (comparisonBlock) { fields = getUniqueListBy( [...versionBlock.fields, ...comparisonBlock.fields], diff --git a/packages/next/src/views/Version/RenderFieldsToDiff/fields/Iterable/index.tsx b/packages/next/src/views/Version/RenderFieldsToDiff/fields/Iterable/index.tsx index 6faccf83f7..24e8cdd054 100644 --- a/packages/next/src/views/Version/RenderFieldsToDiff/fields/Iterable/index.tsx +++ b/packages/next/src/views/Version/RenderFieldsToDiff/fields/Iterable/index.tsx @@ -3,7 +3,7 @@ import type { FieldDiffClientProps } from 'payload' import { getTranslation } from '@payloadcms/translations' -import { useTranslation } from '@payloadcms/ui' +import { useConfig, useTranslation } from '@payloadcms/ui' import './index.scss' @@ -26,6 +26,7 @@ export const Iterable: React.FC = ({ }) => { const { i18n } = useTranslation() const { selectedLocales } = useSelectedLocales() + const { config } = useConfig() const versionRowCount = Array.isArray(versionValue) ? versionValue.length : 0 const comparisonRowCount = Array.isArray(comparisonValue) ? comparisonValue.length : 0 @@ -63,6 +64,7 @@ export const Iterable: React.FC = ({ const { fields, versionFields } = getFieldsForRowComparison({ baseVersionField, comparisonRow, + config, field, row: i, versionRow, diff --git a/packages/next/src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts b/packages/next/src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts index 046c4bed4c..3470e25496 100644 --- a/packages/next/src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts +++ b/packages/next/src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts @@ -1,10 +1,11 @@ -import type { ArrayFieldClient, BlocksFieldClient, ClientField } from 'payload' +import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload' import { fieldHasChanges } from './fieldHasChanges.js' import { getFieldsForRowComparison } from './getFieldsForRowComparison.js' type Args = { comparison: unknown + config: ClientConfig fields: ClientField[] locales: string[] | undefined version: unknown @@ -14,7 +15,7 @@ type Args = { * Recursively counts the number of changed fields between comparison and * version data for a given set of fields. */ -export function countChangedFields({ comparison, fields, locales, version }: Args) { +export function countChangedFields({ comparison, config, fields, locales, version }: Args) { let count = 0 fields.forEach((field) => { @@ -32,12 +33,18 @@ export function countChangedFields({ comparison, fields, locales, version }: Arg locales.forEach((locale) => { const comparisonRows = comparison?.[field.name]?.[locale] ?? [] const versionRows = version?.[field.name]?.[locale] ?? [] - count += countChangedFieldsInRows({ comparisonRows, field, locales, versionRows }) + count += countChangedFieldsInRows({ + comparisonRows, + config, + field, + locales, + versionRows, + }) }) } else { const comparisonRows = comparison?.[field.name] ?? [] const versionRows = version?.[field.name] ?? [] - count += countChangedFieldsInRows({ comparisonRows, field, locales, versionRows }) + count += countChangedFieldsInRows({ comparisonRows, config, field, locales, versionRows }) } break } @@ -77,6 +84,7 @@ export function countChangedFields({ comparison, fields, locales, version }: Arg case 'row': { count += countChangedFields({ comparison, + config, fields: field.fields, locales, version, @@ -91,6 +99,7 @@ export function countChangedFields({ comparison, fields, locales, version }: Arg locales.forEach((locale) => { count += countChangedFields({ comparison: comparison?.[field.name]?.[locale], + config, fields: field.fields, locales, version: version?.[field.name]?.[locale], @@ -99,6 +108,7 @@ export function countChangedFields({ comparison, fields, locales, version }: Arg } else { count += countChangedFields({ comparison: comparison?.[field.name], + config, fields: field.fields, locales, version: version?.[field.name], @@ -116,6 +126,7 @@ export function countChangedFields({ comparison, fields, locales, version }: Arg locales.forEach((locale) => { count += countChangedFields({ comparison: comparison?.[tab.name]?.[locale], + config, fields: tab.fields, locales, version: version?.[tab.name]?.[locale], @@ -125,6 +136,7 @@ export function countChangedFields({ comparison, fields, locales, version }: Arg // Named tab count += countChangedFields({ comparison: comparison?.[tab.name], + config, fields: tab.fields, locales, version: version?.[tab.name], @@ -133,6 +145,7 @@ export function countChangedFields({ comparison, fields, locales, version }: Arg // Unnamed tab count += countChangedFields({ comparison, + config, fields: tab.fields, locales, version, @@ -160,6 +173,7 @@ export function countChangedFields({ comparison, fields, locales, version }: Arg type countChangedFieldsInRowsArgs = { comparisonRows: unknown[] + config: ClientConfig field: ArrayFieldClient | BlocksFieldClient locales: string[] | undefined versionRows: unknown[] @@ -167,6 +181,7 @@ type countChangedFieldsInRowsArgs = { export function countChangedFieldsInRows({ comparisonRows = [], + config, field, locales, versionRows = [], @@ -181,6 +196,7 @@ export function countChangedFieldsInRows({ const { fields: rowFields } = getFieldsForRowComparison({ baseVersionField: { type: 'text', fields: [], path: '', schemaPath: '' }, // Doesn't matter, as we don't need the versionFields output here comparisonRow, + config, field, row: i, versionRow, @@ -188,6 +204,7 @@ export function countChangedFieldsInRows({ count += countChangedFields({ comparison: comparisonRow, + config, fields: rowFields, locales, version: versionRow, diff --git a/packages/next/src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.ts b/packages/next/src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.ts index e8612ca758..13bf791b22 100644 --- a/packages/next/src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.ts +++ b/packages/next/src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.ts @@ -2,6 +2,8 @@ import type { ArrayFieldClient, BaseVersionField, BlocksFieldClient, + ClientBlock, + ClientConfig, ClientField, VersionField, } from 'payload' @@ -17,12 +19,14 @@ import { getUniqueListBy } from 'payload/shared' export function getFieldsForRowComparison({ baseVersionField, comparisonRow, + config, field, row, versionRow, }: { baseVersionField: BaseVersionField comparisonRow: any + config: ClientConfig field: ArrayFieldClient | BlocksFieldClient row: number versionRow: any @@ -37,24 +41,37 @@ export function getFieldsForRowComparison({ : baseVersionField.fields } else if (field.type === 'blocks') { if (versionRow?.blockType === comparisonRow?.blockType) { - const matchedBlock = ('blocks' in field && - field.blocks?.find((block) => block.slug === versionRow?.blockType)) || { - fields: [], - } + const matchedBlock: ClientBlock = + config?.blocksMap?.[versionRow?.blockType] ?? + (((('blocks' in field || 'blockReferences' in field) && + (field.blockReferences ?? field.blocks)?.find( + (block) => typeof block !== 'string' && block.slug === versionRow?.blockType, + )) || { + fields: [], + }) as ClientBlock) fields = matchedBlock.fields versionFields = baseVersionField.rows?.length ? baseVersionField.rows[row] : baseVersionField.fields } else { - const matchedVersionBlock = ('blocks' in field && - field.blocks?.find((block) => block.slug === versionRow?.blockType)) || { - fields: [], - } - const matchedComparisonBlock = ('blocks' in field && - field.blocks?.find((block) => block.slug === comparisonRow?.blockType)) || { - fields: [], - } + const matchedVersionBlock = + config?.blocksMap?.[versionRow?.blockType] ?? + (((('blocks' in field || 'blockReferences' in field) && + (field.blockReferences ?? field.blocks)?.find( + (block) => typeof block !== 'string' && block.slug === versionRow?.blockType, + )) || { + fields: [], + }) as ClientBlock) + + const matchedComparisonBlock = + config?.blocksMap?.[comparisonRow?.blockType] ?? + (((('blocks' in field || 'blockReferences' in field) && + (field.blockReferences ?? field.blocks)?.find( + (block) => typeof block !== 'string' && block.slug === comparisonRow?.blockType, + )) || { + fields: [], + }) as ClientBlock) fields = getUniqueListBy( [...matchedVersionBlock.fields, ...matchedComparisonBlock.fields], diff --git a/packages/payload/src/bin/generateImportMap/iterateConfig.ts b/packages/payload/src/bin/generateImportMap/iterateConfig.ts index 77c7af067f..9e93eeb718 100644 --- a/packages/payload/src/bin/generateImportMap/iterateConfig.ts +++ b/packages/payload/src/bin/generateImportMap/iterateConfig.ts @@ -1,10 +1,11 @@ // @ts-strict-ignore -/* eslint-disable @typescript-eslint/no-unused-expressions */ + import type { AdminViewConfig } from '../../admin/views/types.js' import type { SanitizedConfig } from '../../config/types.js' import type { AddToImportMap, Imports, InternalImportMap } from './index.js' import { iterateCollections } from './iterateCollections.js' +import { genImportMapIterateFields } from './iterateFields.js' import { iterateGlobals } from './iterateGlobals.js' export function iterateConfig({ @@ -38,6 +39,20 @@ export function iterateConfig({ imports, }) + if (config?.blocks) { + const blocks = Object.values(config.blocks) + if (blocks?.length) { + genImportMapIterateFields({ + addToImportMap, + baseDir, + config, + fields: blocks, + importMap, + imports, + }) + } + } + if (typeof config.admin?.avatar === 'object') { addToImportMap(config.admin?.avatar?.Component) } diff --git a/packages/payload/src/bin/generateImportMap/iterateFields.ts b/packages/payload/src/bin/generateImportMap/iterateFields.ts index 602782ef41..cd4b78c42f 100644 --- a/packages/payload/src/bin/generateImportMap/iterateFields.ts +++ b/packages/payload/src/bin/generateImportMap/iterateFields.ts @@ -47,7 +47,7 @@ export function genImportMapIterateFields({ addToImportMap, baseDir, config, - fields: field.blocks, + fields: field.blocks.filter((block) => typeof block !== 'string'), importMap, imports, }) diff --git a/packages/payload/src/collections/config/sanitize.ts b/packages/payload/src/collections/config/sanitize.ts index 30a7bb76ee..f42836b1e9 100644 --- a/packages/payload/src/collections/config/sanitize.ts +++ b/packages/payload/src/collections/config/sanitize.ts @@ -27,6 +27,7 @@ export const sanitizeCollection = async ( * so that you can sanitize them together, after the config has been sanitized. */ richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise>, + _validRelationships?: string[], ): Promise => { // ///////////////////////////////// // Make copy of collection config @@ -38,13 +39,8 @@ export const sanitizeCollection = async ( // Sanitize fields // ///////////////////////////////// - const validRelationships = (config.collections || []).reduce( - (acc, c) => { - acc.push(c.slug) - return acc - }, - [collection.slug], - ) + const validRelationships = _validRelationships ?? config.collections.map((c) => c.slug) ?? [] + const joins: SanitizedJoins = {} sanitized.fields = await sanitizeFields({ collectionConfig: sanitized, diff --git a/packages/payload/src/config/client.ts b/packages/payload/src/config/client.ts index 0befb3696f..16f615abbf 100644 --- a/packages/payload/src/config/client.ts +++ b/packages/payload/src/config/client.ts @@ -3,6 +3,8 @@ import type { I18nClient } from '@payloadcms/translations' import type { DeepPartial } from 'ts-essentials' import type { ImportMap } from '../bin/generateImportMap/index.js' +import type { ClientBlock } from '../fields/config/types.js' +import type { BlockSlug } from '../index.js' import type { LivePreviewConfig, SanitizedConfig, @@ -13,8 +15,8 @@ import { type ClientCollectionConfig, createClientCollectionConfigs, } from '../collections/config/client.js' +import { createClientBlocks } from '../fields/config/client.js' import { type ClientGlobalConfig, createClientGlobalConfigs } from '../globals/config/client.js' - export type ServerOnlyRootProperties = keyof Pick< SanitizedConfig, | 'bin' @@ -39,10 +41,22 @@ export type ServerOnlyRootProperties = keyof Pick< export type ServerOnlyRootAdminProperties = keyof Pick +export type UnsanitizedClientConfig = { + admin: { + livePreview?: Omit + } & Omit + blocks: ClientBlock[] + collections: ClientCollectionConfig[] + custom?: Record + globals: ClientGlobalConfig[] +} & Omit + export type ClientConfig = { admin: { livePreview?: Omit } & Omit + blocks: ClientBlock[] + blocksMap: Record collections: ClientCollectionConfig[] custom?: Record globals: ClientGlobalConfig[] @@ -109,6 +123,16 @@ export const createClientConfig = ({ } } break + case 'blocks': { + ;(clientConfig.blocks as ClientBlock[]) = createClientBlocks({ + blocks: config.blocks, + defaultIDType: config.db.defaultIDType, + i18n, + importMap, + }).filter((block) => typeof block !== 'string') as ClientBlock[] + + break + } case 'collections': ;(clientConfig.collections as ClientCollectionConfig[]) = createClientCollectionConfigs({ collections: config.collections, @@ -125,6 +149,7 @@ export const createClientConfig = ({ importMap, }) break + case 'localization': if (typeof config.localization === 'object' && config.localization) { clientConfig.localization = {} diff --git a/packages/payload/src/config/sanitize.ts b/packages/payload/src/config/sanitize.ts index 4a2961ea0f..b6232bb775 100644 --- a/packages/payload/src/config/sanitize.ts +++ b/packages/payload/src/config/sanitize.ts @@ -4,7 +4,6 @@ import type { AcceptedLanguages } from '@payloadcms/translations' import { en } from '@payloadcms/translations/languages/en' import { deepMergeSimple } from '@payloadcms/translations/utilities' -import type { CollectionSlug, GlobalSlug } from '../index.js' import type { Config, LocalizationConfigWithLabels, @@ -20,9 +19,17 @@ import { migrationsCollection } from '../database/migrations/migrationsCollectio import { DuplicateCollection, InvalidConfiguration } from '../errors/index.js' import { defaultTimezones } from '../fields/baseFields/timezone/defaultTimezones.js' import { sanitizeGlobal } from '../globals/config/sanitize.js' +import { + baseBlockFields, + type CollectionSlug, + formatLabels, + type GlobalSlug, + sanitizeFields, +} from '../index.js' import { getLockedDocumentsCollection } from '../lockedDocuments/lockedDocumentsCollection.js' import getPreferencesCollection from '../preferences/preferencesCollection.js' import { getDefaultJobsCollection } from '../queues/config/jobsCollection.js' +import { flattenBlock } from '../utilities/flattenAllFields.js' import { getSchedulePublishTask } from '../versions/schedule/job.js' import { defaults } from './defaults.js' @@ -217,6 +224,47 @@ export const sanitizeConfig = async (incomingConfig: Config): Promise() + const validRelationships = [ + ...(config.collections.map((c) => c.slug) ?? []), + 'payload-jobs', + 'payload-locked-documents', + 'payload-preferences', + ] + + /** + * Blocks sanitization needs to happen before collections, as collection/global join field sanitization needs config.blocks + * to be populated with the sanitized blocks + */ + config.blocks = [] + if (incomingConfig.blocks?.length) { + for (const block of incomingConfig.blocks) { + const sanitizedBlock = block + + if (sanitizedBlock._sanitized === true) { + continue + } + sanitizedBlock._sanitized = true + + sanitizedBlock.fields = sanitizedBlock.fields.concat(baseBlockFields) + + sanitizedBlock.labels = !sanitizedBlock.labels + ? formatLabels(sanitizedBlock.slug) + : sanitizedBlock.labels + sanitizedBlock.fields = await sanitizeFields({ + config: config as unknown as Config, + existingFieldNames: new Set(), + fields: sanitizedBlock.fields, + parentIsLocalized: false, + richTextSanitizationPromises, + validRelationships, + }) + + const flattenedSanitizedBlock = flattenBlock({ block }) + + config.blocks.push(flattenedSanitizedBlock) + } + } + for (let i = 0; i < config.collections.length; i++) { if (collectionSlugs.has(config.collections[i].slug)) { throw new DuplicateCollection('slug', config.collections[i].slug) @@ -234,6 +282,7 @@ export const sanitizeConfig = async (incomingConfig: Config): Promise - /** Pass in a database adapter for use on this project. */ db: DatabaseAdapterResult /** Enable to expose more detailed error information. */ @@ -1183,6 +1191,7 @@ export type SanitizedConfig = { admin: { timezones: SanitizedTimezoneConfig } & DeepRequired + blocks?: FlattenedBlock[] collections: SanitizedCollectionConfig[] /** Default richtext editor to use for richText fields */ editor?: RichTextAdapter @@ -1207,7 +1216,15 @@ export type SanitizedConfig = { // E.g. in packages/ui/src/graphics/Account/index.tsx in getComponent, if avatar.Component is casted to what it's supposed to be, // the result type is different DeepRequired, - 'admin' | 'collections' | 'editor' | 'endpoint' | 'globals' | 'i18n' | 'localization' | 'upload' + | 'admin' + | 'blocks' + | 'collections' + | 'editor' + | 'endpoint' + | 'globals' + | 'i18n' + | 'localization' + | 'upload' > export type EditConfig = EditConfigWithoutRoot | EditConfigWithRoot diff --git a/packages/payload/src/database/getLocalizedPaths.ts b/packages/payload/src/database/getLocalizedPaths.ts index 6a3e3001d5..b9d6f7f5a5 100644 --- a/packages/payload/src/database/getLocalizedPaths.ts +++ b/packages/payload/src/database/getLocalizedPaths.ts @@ -1,5 +1,5 @@ // @ts-strict-ignore -import type { Field, FlattenedField } from '../fields/config/types.js' +import type { Field, FlattenedBlock, FlattenedField } from '../fields/config/types.js' import type { Payload } from '../index.js' import type { PathToQuery } from './queryValidation/types.js' @@ -55,7 +55,15 @@ export function getLocalizedPaths({ type: 'text', } } else { - for (const block of lastIncompletePath.field.blocks) { + for (const _block of lastIncompletePath.field.blockReferences ?? + lastIncompletePath.field.blocks) { + let block: FlattenedBlock + if (typeof _block === 'string') { + block = payload?.blocks[_block] + } else { + block = _block + } + matchedField = block.flattenedFields.find((field) => field.name === segment) if (matchedField) { break diff --git a/packages/payload/src/database/queryValidation/validateSearchParams.ts b/packages/payload/src/database/queryValidation/validateSearchParams.ts index 1c9d5f3668..6fda8b6462 100644 --- a/packages/payload/src/database/queryValidation/validateSearchParams.ts +++ b/packages/payload/src/database/queryValidation/validateSearchParams.ts @@ -146,7 +146,10 @@ export async function validateSearchParam({ if (fieldAccess[segment]) { if ('fields' in fieldAccess[segment]) { fieldAccess = fieldAccess[segment].fields - } else if ('blocks' in fieldAccess[segment]) { + } else if ( + 'blocks' in fieldAccess[segment] || + 'blockReferences' in fieldAccess[segment] + ) { fieldAccess = fieldAccess[segment] } else { fieldAccess = fieldAccess[segment] diff --git a/packages/payload/src/fields/config/client.ts b/packages/payload/src/fields/config/client.ts index 32cd4822aa..5eea4c12ba 100644 --- a/packages/payload/src/fields/config/client.ts +++ b/packages/payload/src/fields/config/client.ts @@ -6,6 +6,7 @@ import type { I18nClient } from '@payloadcms/translations' import type { AdminClient, ArrayFieldClient, + Block, BlockJSX, BlocksFieldClient, ClientBlock, @@ -25,7 +26,6 @@ import { getFromImportMap } from '../../bin/generateImportMap/getFromImportMap.j import { MissingEditorProp } from '../../errors/MissingEditorProp.js' import { fieldAffectsData } from '../../fields/config/types.js' import { flattenTopLevelFields, type ImportMap } from '../../index.js' -import { removeUndefined } from '../../utilities/removeUndefined.js' // Should not be used - ClientField should be used instead. This is why we don't export ClientField, we don't want people // to accidentally use it instead of ClientField and get confused @@ -75,6 +75,83 @@ type FieldWithDescription = { admin: AdminClient } & ClientField +export const createClientBlocks = ({ + blocks, + defaultIDType, + i18n, + importMap, +}: { + blocks: (Block | string)[] + defaultIDType: Payload['config']['db']['defaultIDType'] + i18n: I18nClient + importMap: ImportMap +}): (ClientBlock | string)[] | ClientBlock[] => { + const clientBlocks: (ClientBlock | string)[] = [] + for (let i = 0; i < blocks.length; i++) { + const block = blocks[i] + + if (typeof block === 'string') { + // Do not process blocks that are just strings - they are processed once in the client config + clientBlocks.push(block) + continue + } + + const clientBlock: ClientBlock = { + slug: block.slug, + fields: [], + } + if (block.imageAltText) { + clientBlock.imageAltText = block.imageAltText + } + if (block.imageURL) { + clientBlock.imageURL = block.imageURL + } + + if (block.admin?.custom) { + clientBlock.admin = { + custom: block.admin.custom, + } + } + + if (block?.admin?.jsx) { + const jsxResolved = getFromImportMap({ + importMap, + PayloadComponent: block.admin.jsx, + schemaPath: '', + }) + clientBlock.jsx = jsxResolved + } + + if (block.labels) { + clientBlock.labels = {} as unknown as LabelsClient + + if (block.labels.singular) { + if (typeof block.labels.singular === 'function') { + clientBlock.labels.singular = block.labels.singular({ t: i18n.t }) + } else { + clientBlock.labels.singular = block.labels.singular + } + if (typeof block.labels.plural === 'function') { + clientBlock.labels.plural = block.labels.plural({ t: i18n.t }) + } else { + clientBlock.labels.plural = block.labels.plural + } + } + } + + clientBlock.fields = createClientFields({ + defaultIDType, + fields: block.fields, + i18n, + importMap, + }) + + clientBlocks.push(clientBlock) + } + + return clientBlocks +} + export const createClientField = ({ defaultIDType, field: incomingField, @@ -209,63 +286,22 @@ export const createClientField = ({ } } + if (incomingField.blockReferences?.length) { + field.blockReferences = createClientBlocks({ + blocks: incomingField.blockReferences, + defaultIDType, + i18n, + importMap, + }) + } + if (incomingField.blocks?.length) { - for (let i = 0; i < incomingField.blocks.length; i++) { - const block = incomingField.blocks[i] - - // prevent $undefined from being passed through the rsc requests - const clientBlock = removeUndefined({ - slug: block.slug, - fields: field.blocks?.[i]?.fields || [], - imageAltText: block.imageAltText, - imageURL: block.imageURL, - }) satisfies ClientBlock - - if (block.admin?.custom) { - clientBlock.admin = { - custom: block.admin.custom, - } - } - - if (block?.admin?.jsx) { - const jsxResolved = getFromImportMap({ - importMap, - PayloadComponent: block.admin.jsx, - schemaPath: '', - }) - clientBlock.jsx = jsxResolved - } - - if (block.labels) { - clientBlock.labels = {} as unknown as LabelsClient - - if (block.labels.singular) { - if (typeof block.labels.singular === 'function') { - clientBlock.labels.singular = block.labels.singular({ t: i18n.t }) - } else { - clientBlock.labels.singular = block.labels.singular - } - if (typeof block.labels.plural === 'function') { - clientBlock.labels.plural = block.labels.plural({ t: i18n.t }) - } else { - clientBlock.labels.plural = block.labels.plural - } - } - } - - clientBlock.fields = createClientFields({ - defaultIDType, - fields: block.fields, - i18n, - importMap, - }) - - if (!field.blocks) { - field.blocks = [] - } - - field.blocks[i] = clientBlock - } + field.blocks = createClientBlocks({ + blocks: incomingField.blocks, + defaultIDType, + i18n, + importMap, + }) as ClientBlock[] } break diff --git a/packages/payload/src/fields/config/sanitize.ts b/packages/payload/src/fields/config/sanitize.ts index 79df250ac5..f89c9ef409 100644 --- a/packages/payload/src/fields/config/sanitize.ts +++ b/packages/payload/src/fields/config/sanitize.ts @@ -224,7 +224,14 @@ export const sanitizeFields = async ({ } if (field.type === 'blocks' && field.blocks) { - for (const block of field.blocks) { + if (field.blockReferences && field.blocks?.length) { + throw new Error('You cannot have both blockReferences and blocks in the same blocks field') + } + + for (const block of field.blockReferences ?? field.blocks) { + if (typeof block === 'string') { + continue + } if (block._sanitized === true) { continue } diff --git a/packages/payload/src/fields/config/sanitizeJoinField.ts b/packages/payload/src/fields/config/sanitizeJoinField.ts index d851a81c63..6c1bdee457 100644 --- a/packages/payload/src/fields/config/sanitizeJoinField.ts +++ b/packages/payload/src/fields/config/sanitizeJoinField.ts @@ -1,6 +1,6 @@ // @ts-strict-ignore import type { SanitizedJoin, SanitizedJoins } from '../../collections/config/types.js' -import type { Config } from '../../config/types.js' +import type { Config, SanitizedConfig } from '../../config/types.js' import type { FlattenedJoinField, JoinField, RelationshipField, UploadField } from './types.js' import { APIError } from '../../errors/index.js' @@ -91,6 +91,7 @@ export const sanitizeJoinField = ({ return } }, + config: config as unknown as SanitizedConfig, fields: joinCollection.fields, }) diff --git a/packages/payload/src/fields/config/types.ts b/packages/payload/src/fields/config/types.ts index 9784e60b83..3c1452d711 100644 --- a/packages/payload/src/fields/config/types.ts +++ b/packages/payload/src/fields/config/types.ts @@ -121,6 +121,7 @@ import type { SanitizedGlobalConfig } from '../../globals/config/types.js' import type { ArrayFieldValidation, BlocksFieldValidation, + BlockSlug, CheckboxFieldValidation, CodeFieldValidation, CollectionSlug, @@ -1405,6 +1406,12 @@ export type BlocksField = { */ isSortable?: boolean } & Admin + /** + * Like `blocks`, but allows you to also pass strings that are slugs of blocks defined in `config.blocks`. + * + * @todo `blockReferences` will be merged with `blocks` in 4.0 + */ + blockReferences?: (Block | BlockSlug)[] blocks: Block[] defaultValue?: DefaultValue labels?: Labels @@ -1416,6 +1423,12 @@ export type BlocksField = { export type BlocksFieldClient = { admin?: AdminClient & Pick + /** + * Like `blocks`, but allows you to also pass strings that are slugs of blocks defined in `config.blocks`. + * + * @todo `blockReferences` will be merged with `blocks` in 4.0 + */ + blockReferences?: (ClientBlock | string)[] blocks: ClientBlock[] labels?: LabelsClient } & FieldBaseClient & @@ -1511,8 +1524,14 @@ export type FlattenedBlock = { } & Block export type FlattenedBlocksField = { + /** + * Like `blocks`, but allows you to also pass strings that are slugs of blocks defined in `config.blocks`. + * + * @todo `blockReferences` will be merged with `blocks` in 4.0 + */ + blockReferences?: (FlattenedBlock | string)[] blocks: FlattenedBlock[] -} & BlocksField +} & Omit export type FlattenedGroupField = { flattenedFields: FlattenedField[] diff --git a/packages/payload/src/fields/hooks/afterChange/promise.ts b/packages/payload/src/fields/hooks/afterChange/promise.ts index 20fbad922f..8d694db6f0 100644 --- a/packages/payload/src/fields/hooks/afterChange/promise.ts +++ b/packages/payload/src/fields/hooks/afterChange/promise.ts @@ -4,7 +4,7 @@ import type { SanitizedCollectionConfig } from '../../../collections/config/type import type { SanitizedGlobalConfig } from '../../../globals/config/types.js' import type { RequestContext } from '../../../index.js' import type { JsonObject, PayloadRequest } from '../../../types/index.js' -import type { Field, TabAsField } from '../../config/types.js' +import type { Block, Field, TabAsField } from '../../config/types.js' import { MissingEditorProp } from '../../../errors/index.js' import { fieldAffectsData, tabHasName } from '../../config/types.js' @@ -146,9 +146,13 @@ export const promise = async ({ const promises = [] rows.forEach((row, rowIndex) => { - const block = field.blocks.find( - (blockType) => blockType.slug === (row as JsonObject).blockType, - ) + const blockTypeToMatch = (row as JsonObject).blockType + + const block: Block | undefined = + req.payload.blocks[blockTypeToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (curBlock) => typeof curBlock !== 'string' && curBlock.slug === blockTypeToMatch, + ) as Block | undefined) if (block) { promises.push( diff --git a/packages/payload/src/fields/hooks/afterRead/promise.ts b/packages/payload/src/fields/hooks/afterRead/promise.ts index 2fca395a3f..81ecd5a2e2 100644 --- a/packages/payload/src/fields/hooks/afterRead/promise.ts +++ b/packages/payload/src/fields/hooks/afterRead/promise.ts @@ -10,7 +10,7 @@ import type { SelectMode, SelectType, } from '../../../types/index.js' -import type { Field, TabAsField } from '../../config/types.js' +import type { Block, Field, TabAsField } from '../../config/types.js' import { MissingEditorProp } from '../../../errors/index.js' import { fieldAffectsData, tabHasName } from '../../config/types.js' @@ -453,9 +453,13 @@ export const promise = async ({ if (Array.isArray(rows)) { rows.forEach((row, rowIndex) => { - const block = field.blocks.find( - (blockType) => blockType.slug === (row as JsonObject).blockType, - ) + const blockTypeToMatch = (row as JsonObject).blockType + + const block: Block | undefined = + req.payload.blocks[blockTypeToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (curBlock) => typeof curBlock !== 'string' && curBlock.slug === blockTypeToMatch, + ) as Block | undefined) let blockSelectMode = selectMode @@ -525,9 +529,13 @@ export const promise = async ({ Object.values(rows).forEach((localeRows) => { if (Array.isArray(localeRows)) { localeRows.forEach((row, rowIndex) => { - const block = field.blocks.find( - (blockType) => blockType.slug === (row as JsonObject).blockType, - ) + const blockTypeToMatch = row.blockType + + const block: Block | undefined = + req.payload.blocks[blockTypeToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (curBlock) => typeof curBlock !== 'string' && curBlock.slug === blockTypeToMatch, + ) as Block | undefined) if (block) { traverseFields({ diff --git a/packages/payload/src/fields/hooks/beforeChange/promise.ts b/packages/payload/src/fields/hooks/beforeChange/promise.ts index 1a12ea058c..e715b16cbf 100644 --- a/packages/payload/src/fields/hooks/beforeChange/promise.ts +++ b/packages/payload/src/fields/hooks/beforeChange/promise.ts @@ -5,7 +5,7 @@ import type { ValidationFieldError } from '../../../errors/index.js' import type { SanitizedGlobalConfig } from '../../../globals/config/types.js' import type { RequestContext } from '../../../index.js' import type { JsonObject, Operation, PayloadRequest } from '../../../types/index.js' -import type { Field, TabAsField, Validate } from '../../config/types.js' +import type { Block, Field, TabAsField, Validate } from '../../config/types.js' import { MissingEditorProp } from '../../../errors/index.js' import { deepMergeWithSourceArrays } from '../../../utilities/deepMerge.js' @@ -278,7 +278,12 @@ export const promise = async ({ ) const blockTypeToMatch = (row as JsonObject).blockType || rowSiblingDoc.blockType - const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch) + + const block: Block | undefined = + req.payload.blocks[blockTypeToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (curBlock) => typeof curBlock !== 'string' && curBlock.slug === blockTypeToMatch, + ) as Block | undefined) if (block) { promises.push( diff --git a/packages/payload/src/fields/hooks/beforeDuplicate/promise.ts b/packages/payload/src/fields/hooks/beforeDuplicate/promise.ts index 6beaf3ce05..d95aa0b962 100644 --- a/packages/payload/src/fields/hooks/beforeDuplicate/promise.ts +++ b/packages/payload/src/fields/hooks/beforeDuplicate/promise.ts @@ -2,7 +2,7 @@ import type { SanitizedCollectionConfig } from '../../../collections/config/types.js' import type { RequestContext } from '../../../index.js' import type { JsonObject, PayloadRequest } from '../../../types/index.js' -import type { Field, FieldHookArgs, TabAsField } from '../../config/types.js' +import type { Block, Field, FieldHookArgs, TabAsField } from '../../config/types.js' import { fieldAffectsData } from '../../config/types.js' import { getFieldPathsModified as getFieldPaths } from '../../getFieldPaths.js' @@ -183,9 +183,12 @@ export const promise = async ({ rows.forEach((row, rowIndex) => { const blockTypeToMatch = row.blockType - const block = field.blocks.find( - (blockType) => blockType.slug === blockTypeToMatch, - ) + const block: Block | undefined = + req.payload.blocks[blockTypeToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (curBlock) => + typeof curBlock !== 'string' && curBlock.slug === blockTypeToMatch, + ) as Block | undefined) promises.push( traverseFields({ @@ -278,7 +281,12 @@ export const promise = async ({ rows.forEach((row, rowIndex) => { const blockTypeToMatch = row.blockType - const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch) + + const block: Block | undefined = + req.payload.blocks[blockTypeToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (curBlock) => typeof curBlock !== 'string' && curBlock.slug === blockTypeToMatch, + ) as Block | undefined) if (block) { ;(row as JsonObject).blockType = blockTypeToMatch diff --git a/packages/payload/src/fields/hooks/beforeValidate/promise.ts b/packages/payload/src/fields/hooks/beforeValidate/promise.ts index 81bbc93d4c..1072775bcb 100644 --- a/packages/payload/src/fields/hooks/beforeValidate/promise.ts +++ b/packages/payload/src/fields/hooks/beforeValidate/promise.ts @@ -4,7 +4,7 @@ import type { SanitizedCollectionConfig, TypeWithID } from '../../../collections import type { SanitizedGlobalConfig } from '../../../globals/config/types.js' import type { RequestContext } from '../../../index.js' import type { JsonObject, JsonValue, PayloadRequest } from '../../../types/index.js' -import type { Field, TabAsField } from '../../config/types.js' +import type { Block, Field, TabAsField } from '../../config/types.js' import { MissingEditorProp } from '../../../errors/index.js' import { fieldAffectsData, tabHasName, valueIsValueWithRelation } from '../../config/types.js' @@ -378,7 +378,12 @@ export const promise = async ({ rows.forEach((row, rowIndex) => { const rowSiblingDoc = getExistingRowDoc(row as JsonObject, siblingDoc[field.name]) const blockTypeToMatch = (row as JsonObject).blockType || rowSiblingDoc.blockType - const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch) + + const block: Block | undefined = + req.payload.blocks[blockTypeToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (curBlock) => typeof curBlock !== 'string' && curBlock.slug === blockTypeToMatch, + ) as Block | undefined) if (block) { ;(row as JsonObject).blockType = blockTypeToMatch diff --git a/packages/payload/src/globals/config/sanitize.ts b/packages/payload/src/globals/config/sanitize.ts index 263b0c2472..289b2ae58b 100644 --- a/packages/payload/src/globals/config/sanitize.ts +++ b/packages/payload/src/globals/config/sanitize.ts @@ -20,6 +20,7 @@ export const sanitizeGlobal = async ( * so that you can sanitize them together, after the config has been sanitized. */ richTextSanitizationPromises?: Array<(config: SanitizedConfig) => Promise>, + _validRelationships?: string[], ): Promise => { const { collections } = config @@ -64,7 +65,8 @@ export const sanitizeGlobal = async ( } // Sanitize fields - const validRelationships = collections.map((c) => c.slug) || [] + const validRelationships = _validRelationships ?? config.collections.map((c) => c.slug) ?? [] + global.fields = await sanitizeFields({ config, fields: global.fields, diff --git a/packages/payload/src/index.ts b/packages/payload/src/index.ts index afd459066d..2249be3ba2 100644 --- a/packages/payload/src/index.ts +++ b/packages/payload/src/index.ts @@ -75,7 +75,7 @@ import { generateImportMap, type ImportMap } from './bin/generateImportMap/index import { checkPayloadDependencies } from './checkPayloadDependencies.js' import localOperations from './collections/operations/local/index.js' import { consoleEmailAdapter } from './email/consoleEmailAdapter.js' -import { fieldAffectsData } from './fields/config/types.js' +import { fieldAffectsData, type FlattenedBlock } from './fields/config/types.js' import localGlobalOperations from './globals/operations/local/index.js' import { getJobsLocalAPI } from './queues/localAPI.js' import { isNextBuild } from './utilities/isNextBuild.js' @@ -106,6 +106,9 @@ export interface GeneratedTypes { } } + blocksUntyped: { + [slug: string]: JsonObject + } collectionsJoinsUntyped: { [slug: string]: { [schemaPath: string]: CollectionSlug @@ -151,6 +154,11 @@ type ResolveCollectionType = 'collections' extends keyof T : // @ts-expect-error T['collectionsUntyped'] +type ResolveBlockType = 'blocks' extends keyof T + ? T['blocks'] + : // @ts-expect-error + T['blocksUntyped'] + type ResolveCollectionSelectType = 'collectionsSelect' extends keyof T ? T['collectionsSelect'] : // @ts-expect-error @@ -174,6 +182,8 @@ type ResolveGlobalSelectType = 'globalsSelect' extends keyof T // Applying helper types to GeneratedTypes export type TypedCollection = ResolveCollectionType +export type TypedBlock = ResolveBlockType + export type TypedUploadCollection = NonNever<{ [K in keyof TypedCollection]: | 'filename' @@ -198,6 +208,8 @@ export type StringKeyOf = Extract // Define the types for slugs using the appropriate collections and globals export type CollectionSlug = StringKeyOf +export type BlockSlug = StringKeyOf + export type UploadCollectionSlug = StringKeyOf type ResolveDbType = 'db' extends keyof T @@ -247,6 +259,8 @@ export class BasePayload { authStrategies: AuthStrategy[] + blocks: Record = {} + collections: Record = {} config: SanitizedConfig @@ -602,7 +616,7 @@ export class BasePayload { } } - traverseFields({ callback: findCustomID, fields: collection.fields }) + traverseFields({ callback: findCustomID, config: this.config, fields: collection.fields }) this.collections[collection.slug] = { config: collection, @@ -610,6 +624,11 @@ export class BasePayload { } } + this.blocks = this.config.blocks.reduce((blocks, block) => { + blocks[block.slug] = block + return blocks + }, {}) + // Generate types on startup if (process.env.NODE_ENV !== 'production' && this.config.typescript.autoGenerate !== false) { // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack. @@ -811,6 +830,11 @@ export const reload = async ( return collections }, {}) + payload.blocks = config.blocks.reduce((blocks, block) => { + blocks[block.slug] = block + return blocks + }, {}) + payload.globals = { config: config.globals, } @@ -1044,6 +1068,7 @@ export { createClientConfig, serverOnlyAdminConfigProperties, serverOnlyConfigProperties, + type UnsanitizedClientConfig, } from './config/client.js' export { defaults } from './config/defaults.js' diff --git a/packages/payload/src/utilities/configToJSONSchema.ts b/packages/payload/src/utilities/configToJSONSchema.ts index a4acbd69da..3460f7e83d 100644 --- a/packages/payload/src/utilities/configToJSONSchema.ts +++ b/packages/payload/src/utilities/configToJSONSchema.ts @@ -294,14 +294,22 @@ export function fieldsToJSONSchema( // Check for a case where no blocks are provided. // We need to generate an empty array for this case, note that JSON schema 4 doesn't support empty arrays // so the best we can get is `unknown[]` - const hasBlocks = Boolean(field.blocks.length) + const hasBlocks = Boolean( + field.blockReferences ? field.blockReferences.length : field.blocks.length, + ) fieldSchema = { ...baseFieldSchema, type: withNullableJSONSchemaType('array', isRequired), items: hasBlocks ? { - oneOf: field.blocks.map((block) => { + oneOf: (field.blockReferences ?? field.blocks).map((block) => { + if (typeof block === 'string') { + const resolvedBlock = config?.blocks?.find((b) => b.slug === block) + return { + $ref: `#/definitions/${resolvedBlock.interfaceName ?? resolvedBlock.slug}`, + } + } const blockFieldSchemas = fieldsToJSONSchema( collectionIDFieldTypes, block.flattenedFields, @@ -732,9 +740,11 @@ export function entityToJSONSchema( } export function fieldsToSelectJSONSchema({ + config, fields, interfaceNameDefinitions, }: { + config: SanitizedConfig fields: FlattenedField[] interfaceNameDefinitions: Map }): JSONSchema4 { @@ -750,6 +760,7 @@ export function fieldsToSelectJSONSchema({ case 'group': case 'tab': { let fieldSchema: JSONSchema4 = fieldsToSelectJSONSchema({ + config, fields: field.flattenedFields, interfaceNameDefinitions, }) @@ -782,8 +793,13 @@ export function fieldsToSelectJSONSchema({ properties: {}, } - for (const block of field.blocks) { + for (const block of field.blockReferences ?? field.blocks) { + if (typeof block === 'string') { + continue // TODO + } + let blockSchema = fieldsToSelectJSONSchema({ + config, fields: block.flattenedFields, interfaceNameDefinitions, }) @@ -1038,6 +1054,7 @@ export function configToJSONSchema( i18n, ) const select = fieldsToSelectJSONSchema({ + config, fields: entity.flattenedFields, interfaceNameDefinitions, }) @@ -1081,6 +1098,42 @@ export function configToJSONSchema( ) : {} + const blocksDefinition: JSONSchema4 = { + type: 'object', + additionalProperties: false, + properties: {}, + required: [], + } + for (const block of config.blocks) { + const blockFieldSchemas = fieldsToJSONSchema( + collectionIDFieldTypes, + block.flattenedFields, + interfaceNameDefinitions, + config, + i18n, + ) + + const blockSchema: JSONSchema4 = { + type: 'object', + additionalProperties: false, + properties: { + ...blockFieldSchemas.properties, + blockType: { + const: block.slug, + }, + }, + required: ['blockType', ...blockFieldSchemas.required], + } + + const interfaceName = block.interfaceName ?? block.slug + interfaceNameDefinitions.set(interfaceName, blockSchema) + + blocksDefinition.properties[block.slug] = { + $ref: `#/definitions/${interfaceName}`, + } + ;(blocksDefinition.required as string[]).push(block.slug) + } + let jsonSchema: JSONSchema4 = { additionalProperties: false, definitions: { @@ -1093,6 +1146,7 @@ export function configToJSONSchema( type: 'object', properties: { auth: generateAuthOperationSchemas(config.collections), + blocks: blocksDefinition, collections: generateEntitySchemas(config.collections || []), collectionsJoins: generateCollectionJoinsSchemas(config.collections || []), collectionsSelect: generateEntitySelectSchemas(config.collections || []), @@ -1113,6 +1167,7 @@ export function configToJSONSchema( 'auth', 'db', 'jobs', + 'blocks', ], title: 'Config', } diff --git a/packages/payload/src/utilities/fieldSchemaToJSON.ts b/packages/payload/src/utilities/fieldSchemaToJSON.ts index 534b4ac895..0b94e9f1eb 100644 --- a/packages/payload/src/utilities/fieldSchemaToJSON.ts +++ b/packages/payload/src/utilities/fieldSchemaToJSON.ts @@ -1,3 +1,4 @@ +import type { ClientConfig } from '../config/client.js' // @ts-strict-ignore import type { ClientField } from '../fields/config/client.js' import type { FieldTypes } from '../fields/config/types.js' @@ -12,7 +13,7 @@ export type FieldSchemaJSON = { type: FieldTypes }[] -export const fieldSchemaToJSON = (fields: ClientField[]): FieldSchemaJSON => { +export const fieldSchemaToJSON = (fields: ClientField[], config: ClientConfig): FieldSchemaJSON => { return fields.reduce((acc, field) => { let result = acc @@ -21,13 +22,16 @@ export const fieldSchemaToJSON = (fields: ClientField[]): FieldSchemaJSON => { acc.push({ name: field.name, type: field.type, - fields: fieldSchemaToJSON([ - ...field.fields, - { - name: 'id', - type: 'text', - }, - ]), + fields: fieldSchemaToJSON( + [ + ...field.fields, + { + name: 'id', + type: 'text', + }, + ], + config, + ), }) break @@ -36,15 +40,19 @@ export const fieldSchemaToJSON = (fields: ClientField[]): FieldSchemaJSON => { acc.push({ name: field.name, type: field.type, - blocks: field.blocks.reduce((acc, block) => { + blocks: (field.blockReferences ?? field.blocks).reduce((acc, _block) => { + const block = typeof _block === 'string' ? config.blocksMap[_block] : _block acc[block.slug] = { - fields: fieldSchemaToJSON([ - ...block.fields, - { - name: 'id', - type: 'text', - }, - ]), + fields: fieldSchemaToJSON( + [ + ...block.fields, + { + name: 'id', + type: 'text', + }, + ], + config, + ), } return acc @@ -55,14 +63,14 @@ export const fieldSchemaToJSON = (fields: ClientField[]): FieldSchemaJSON => { case 'collapsible': // eslint-disable no-fallthrough case 'row': - result = result.concat(fieldSchemaToJSON(field.fields)) + result = result.concat(fieldSchemaToJSON(field.fields, config)) break case 'group': acc.push({ name: field.name, type: field.type, - fields: fieldSchemaToJSON(field.fields), + fields: fieldSchemaToJSON(field.fields, config), }) break @@ -86,12 +94,12 @@ export const fieldSchemaToJSON = (fields: ClientField[]): FieldSchemaJSON => { tabFields.push({ name: tab.name, type: field.type, - fields: fieldSchemaToJSON(tab.fields), + fields: fieldSchemaToJSON(tab.fields, config), }) return } - tabFields = tabFields.concat(fieldSchemaToJSON(tab.fields)) + tabFields = tabFields.concat(fieldSchemaToJSON(tab.fields, config)) }) result = result.concat(tabFields) diff --git a/packages/payload/src/utilities/flattenAllFields.ts b/packages/payload/src/utilities/flattenAllFields.ts index 8815d511e8..e2b0c4ebfb 100644 --- a/packages/payload/src/utilities/flattenAllFields.ts +++ b/packages/payload/src/utilities/flattenAllFields.ts @@ -1,7 +1,21 @@ -import type { Field, FlattenedField, FlattenedJoinField } from '../fields/config/types.js' +import type { + Block, + Field, + FlattenedBlock, + FlattenedBlocksField, + FlattenedField, + FlattenedJoinField, +} from '../fields/config/types.js' import { tabHasName } from '../fields/config/types.js' +export const flattenBlock = ({ block }: { block: Block }): FlattenedBlock => { + return { + ...block, + flattenedFields: flattenAllFields({ fields: block.fields }), + } +} + export const flattenAllFields = ({ fields }: { fields: Field[] }): FlattenedField[] => { const result: FlattenedField[] = [] @@ -14,17 +28,34 @@ export const flattenAllFields = ({ fields }: { fields: Field[] }): FlattenedFiel } case 'blocks': { - const blocks = [] - for (const block of field.blocks) { - blocks.push({ - ...block, - flattenedFields: flattenAllFields({ fields: block.fields }), - }) + const blocks: FlattenedBlock[] = [] + let blockReferences: (FlattenedBlock | string)[] | undefined = undefined + if (field.blockReferences) { + blockReferences = [] + for (const block of field.blockReferences) { + if (typeof block === 'string') { + blockReferences.push(block) + continue + } + blockReferences.push(flattenBlock({ block })) + } + } else { + for (const block of field.blocks) { + if (typeof block === 'string') { + blocks.push(block) + continue + } + blocks.push(flattenBlock({ block })) + } } - result.push({ + + const resultField: FlattenedBlocksField = { ...field, + blockReferences, blocks, - }) + } + + result.push(resultField) break } diff --git a/packages/payload/src/utilities/getEntityPolicies.ts b/packages/payload/src/utilities/getEntityPolicies.ts index 48853a68a4..1233c1a85e 100644 --- a/packages/payload/src/utilities/getEntityPolicies.ts +++ b/packages/payload/src/utilities/getEntityPolicies.ts @@ -172,13 +172,18 @@ export async function getEntityPolicies(args: T): Promise { + (field.blockReferences ?? field.blocks).map(async (_block) => { + const block = typeof _block === 'string' ? payload.blocks[_block] : _block // TODO: Skip over string blocks + if (!mutablePolicies[field.name].blocks?.[block.slug]) { mutablePolicies[field.name].blocks[block.slug] = { fields: {}, diff --git a/packages/payload/src/utilities/traverseFields.ts b/packages/payload/src/utilities/traverseFields.ts index ae8b3b45a7..189e6f26a1 100644 --- a/packages/payload/src/utilities/traverseFields.ts +++ b/packages/payload/src/utilities/traverseFields.ts @@ -1,43 +1,86 @@ // @ts-strict-ignore -import type { ArrayField, BlocksField, Field, TabAsField } from '../fields/config/types.js' +import type { Config, SanitizedConfig } from '../config/types.js' +import type { ArrayField, Block, BlocksField, Field, TabAsField } from '../fields/config/types.js' import { fieldHasSubFields } from '../fields/config/types.js' const traverseArrayOrBlocksField = ({ callback, + callbackStack, + config, data, field, fillEmpty, + leavesFirst, parentRef, }: { callback: TraverseFieldsCallback + callbackStack: TraverseFieldsCallback[] + config: Config | SanitizedConfig data: Record[] field: ArrayField | BlocksField fillEmpty: boolean + leavesFirst: boolean parentRef?: unknown }) => { if (fillEmpty) { if (field.type === 'array') { - traverseFields({ callback, fields: field.fields, parentRef }) + traverseFields({ + callback, + callbackStack, + config, + fields: field.fields, + isTopLevel: false, + leavesFirst, + parentRef, + }) } if (field.type === 'blocks') { - field.blocks.forEach((block) => { - traverseFields({ callback, fields: block.fields, parentRef }) - }) + for (const _block of field.blockReferences ?? field.blocks) { + // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks + const block = + typeof _block === 'string' ? config.blocks.find((b) => b.slug === _block) : _block + traverseFields({ + callback, + callbackStack, + config, + fields: block.fields, + isTopLevel: false, + leavesFirst, + parentRef, + }) + } } return } for (const ref of data) { let fields: Field[] if (field.type === 'blocks' && typeof ref?.blockType === 'string') { - const block = field.blocks.find((block) => block.slug === ref.blockType) + // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks + const block = field.blockReferences + ? ((config.blocks.find((b) => b.slug === ref.blockType) ?? + field.blockReferences.find( + (b) => typeof b !== 'string' && b.slug === ref.blockType, + )) as Block) + : field.blocks.find((b) => b.slug === ref.blockType) + fields = block?.fields } else if (field.type === 'array') { fields = field.fields } if (fields) { - traverseFields({ callback, fields, fillEmpty, parentRef, ref }) + traverseFields({ + callback, + callbackStack, + config, + fields, + fillEmpty, + isTopLevel: false, + leavesFirst, + parentRef, + ref, + }) } } } @@ -63,8 +106,18 @@ export type TraverseFieldsCallback = (args: { type TraverseFieldsArgs = { callback: TraverseFieldsCallback + callbackStack?: TraverseFieldsCallback[] + config: Config | SanitizedConfig fields: (Field | TabAsField)[] fillEmpty?: boolean + isTopLevel?: boolean + /** + * @default false + * + * if this is `true`, the callback functions of the leaf fields will be called before the parent fields. + * The return value of the callback function will be ignored. + */ + leavesFirst?: boolean parentRef?: Record | unknown ref?: Record | unknown } @@ -80,12 +133,20 @@ type TraverseFieldsArgs = { */ export const traverseFields = ({ callback, + callbackStack: _callbackStack = [], + config, fields, fillEmpty = true, + isTopLevel = true, + leavesFirst = false, parentRef = {}, ref = {}, }: TraverseFieldsArgs): void => { fields.some((field) => { + let callbackStack: TraverseFieldsCallback[] = [] + if (!isTopLevel) { + callbackStack = _callbackStack + } let skip = false const next = () => { skip = true @@ -95,8 +156,10 @@ export const traverseFields = ({ return } - if (callback && callback({ field, next, parentRef, ref })) { + if (!leavesFirst && callback && callback({ field, next, parentRef, ref })) { return true + } else if (leavesFirst) { + callbackStack.push(callback) } if (skip) { @@ -130,6 +193,7 @@ export const traverseFields = ({ if ( callback && + !leavesFirst && callback({ field: { ...tab, type: 'tab' }, next, @@ -138,6 +202,8 @@ export const traverseFields = ({ }) ) { return true + } else if (leavesFirst) { + callbackStack.push(callback) } tabRef = tabRef[tab.name] @@ -147,8 +213,12 @@ export const traverseFields = ({ if (tabRef[key] && typeof tabRef[key] === 'object') { traverseFields({ callback, + callbackStack, + config, fields: tab.fields, fillEmpty, + isTopLevel: false, + leavesFirst, parentRef: currentParentRef, ref: tabRef[key], }) @@ -158,6 +228,7 @@ export const traverseFields = ({ } else { if ( callback && + !leavesFirst && callback({ field: { ...tab, type: 'tab' }, next, @@ -166,14 +237,20 @@ export const traverseFields = ({ }) ) { return true + } else if (leavesFirst) { + callbackStack.push(callback) } } if (!tab.localized) { traverseFields({ callback, + callbackStack, + config, fields: tab.fields, fillEmpty, + isTopLevel: false, + leavesFirst, parentRef: currentParentRef, ref: tabRef, }) @@ -226,8 +303,12 @@ export const traverseFields = ({ if (currentRef[key]) { traverseFields({ callback, + callbackStack, + config, fields: field.fields, fillEmpty, + isTopLevel: false, + leavesFirst, parentRef: currentParentRef, ref: currentRef[key], }) @@ -254,30 +335,46 @@ export const traverseFields = ({ traverseArrayOrBlocksField({ callback, + callbackStack, + config, data: localeData, field, fillEmpty, + leavesFirst, parentRef: currentParentRef, }) } } else if (Array.isArray(currentRef)) { traverseArrayOrBlocksField({ callback, + callbackStack, + config, data: currentRef as Record[], field, fillEmpty, + leavesFirst, parentRef: currentParentRef, }) } } else if (currentRef && typeof currentRef === 'object' && 'fields' in field) { traverseFields({ callback, + callbackStack, + config, fields: field.fields, fillEmpty, + isTopLevel: false, + leavesFirst, parentRef: currentParentRef, ref: currentRef, }) } } + + if (isTopLevel) { + callbackStack.reverse().forEach((cb) => { + cb({ field, next, parentRef, ref }) + }) + } }) } diff --git a/packages/plugin-multi-tenant/src/index.ts b/packages/plugin-multi-tenant/src/index.ts index 5ede4e2343..96d254a938 100644 --- a/packages/plugin-multi-tenant/src/index.ts +++ b/packages/plugin-multi-tenant/src/index.ts @@ -161,6 +161,7 @@ export const multiTenantPlugin = * Modify enabled collections */ addFilterOptionsToFields({ + config: incomingConfig, fields: collection.fields, tenantEnabledCollectionSlugs: collectionSlugs, tenantEnabledGlobalSlugs: globalCollectionSlugs, diff --git a/packages/plugin-multi-tenant/src/utilities/addFilterOptionsToFields.ts b/packages/plugin-multi-tenant/src/utilities/addFilterOptionsToFields.ts index 3800999921..9257c0ac59 100644 --- a/packages/plugin-multi-tenant/src/utilities/addFilterOptionsToFields.ts +++ b/packages/plugin-multi-tenant/src/utilities/addFilterOptionsToFields.ts @@ -1,9 +1,10 @@ -import type { Field, FilterOptionsProps, RelationshipField } from 'payload' +import type { Config, Field, FilterOptionsProps, RelationshipField, SanitizedConfig } from 'payload' import { getCollectionIDType } from './getCollectionIDType.js' import { getTenantFromCookie } from './getTenantFromCookie.js' type AddFilterOptionsToFieldsArgs = { + config: Config | SanitizedConfig fields: Field[] tenantEnabledCollectionSlugs: string[] tenantEnabledGlobalSlugs: string[] @@ -12,6 +13,7 @@ type AddFilterOptionsToFieldsArgs = { } export function addFilterOptionsToFields({ + config, fields, tenantEnabledCollectionSlugs, tenantEnabledGlobalSlugs, @@ -59,6 +61,7 @@ export function addFilterOptionsToFields({ field.type === 'group' ) { addFilterOptionsToFields({ + config, fields: field.fields, tenantEnabledCollectionSlugs, tenantEnabledGlobalSlugs, @@ -68,20 +71,30 @@ export function addFilterOptionsToFields({ } if (field.type === 'blocks') { - field.blocks.forEach((block) => { - addFilterOptionsToFields({ - fields: block.fields, - tenantEnabledCollectionSlugs, - tenantEnabledGlobalSlugs, - tenantFieldName, - tenantsCollectionSlug, - }) + ;(field.blockReferences ?? field.blocks).forEach((_block) => { + const block = + typeof _block === 'string' + ? // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks + config?.blocks?.find((b) => b.slug === _block) + : _block + + if (block?.fields) { + addFilterOptionsToFields({ + config, + fields: block.fields, + tenantEnabledCollectionSlugs, + tenantEnabledGlobalSlugs, + tenantFieldName, + tenantsCollectionSlug, + }) + } }) } if (field.type === 'tabs') { field.tabs.forEach((tab) => { addFilterOptionsToFields({ + config, fields: tab.fields, tenantEnabledCollectionSlugs, tenantEnabledGlobalSlugs, diff --git a/packages/richtext-lexical/src/features/blocks/client/component/index.tsx b/packages/richtext-lexical/src/features/blocks/client/component/index.tsx index 485bdbc2b2..a7348e12cc 100644 --- a/packages/richtext-lexical/src/features/blocks/client/component/index.tsx +++ b/packages/richtext-lexical/src/features/blocks/client/component/index.tsx @@ -12,6 +12,7 @@ import { Pill, RenderFields, SectionTitle, + useConfig, useDocumentForm, useDocumentInfo, useEditDepth, @@ -28,7 +29,12 @@ const baseClass = 'lexical-block' import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext' import { getTranslation } from '@payloadcms/translations' import { $getNodeByKey } from 'lexical' -import { type BlocksFieldClient, type CollapsedPreferences, type FormState } from 'payload' +import { + type BlocksFieldClient, + type ClientBlock, + type CollapsedPreferences, + type FormState, +} from 'payload' import { v4 as uuid } from 'uuid' import type { BlockFields } from '../../server/nodes/BlocksNode.js' @@ -72,6 +78,8 @@ export const BlockComponent: React.FC = (props) => { const editDepth = useEditDepth() const [errorCount, setErrorCount] = React.useState(0) + const { config } = useConfig() + const drawerSlug = formatDrawerSlug({ slug: `lexical-blocks-create-${uuidFromContext}-${formData.id}`, depth: editDepth, @@ -212,7 +220,11 @@ export const BlockComponent: React.FC = (props) => { componentMapRenderedBlockPath ]?.[0] as BlocksFieldClient - const clientBlock = blocksField?.blocks?.[0] + const clientBlock: ClientBlock | undefined = blocksField.blockReferences + ? typeof blocksField?.blockReferences?.[0] === 'string' + ? config.blocksMap[blocksField?.blockReferences?.[0]] + : blocksField?.blockReferences?.[0] + : blocksField?.blocks?.[0] const { i18n, t } = useTranslation() diff --git a/packages/richtext-lexical/src/features/blocks/client/componentInline/index.tsx b/packages/richtext-lexical/src/features/blocks/client/componentInline/index.tsx index 0d3170d7c9..10330ddb3c 100644 --- a/packages/richtext-lexical/src/features/blocks/client/componentInline/index.tsx +++ b/packages/richtext-lexical/src/features/blocks/client/componentInline/index.tsx @@ -3,7 +3,7 @@ import React, { createContext, useCallback, useEffect, useMemo, useRef } from 'react' const baseClass = 'inline-block' -import type { BlocksFieldClient, Data, FormState } from 'payload' +import type { BlocksFieldClient, ClientBlock, Data, FormState } from 'payload' import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext' import { getTranslation } from '@payloadcms/translations' @@ -16,6 +16,7 @@ import { FormSubmit, RenderFields, ShimmerEffect, + useConfig, useDocumentForm, useDocumentInfo, useEditDepth, @@ -120,6 +121,7 @@ export const InlineBlockComponent: React.FC = (props) => { const inlineBlockElemElemRef = useRef(null) const { id, collectionSlug, getDocPreferences, globalSlug } = useDocumentInfo() + const { config } = useConfig() const componentMapRenderedBlockPath = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks.${formData.blockType}` @@ -129,7 +131,11 @@ export const InlineBlockComponent: React.FC = (props) => { componentMapRenderedBlockPath ]?.[0] as BlocksFieldClient - const clientBlock = blocksField?.blocks?.[0] + const clientBlock: ClientBlock | undefined = blocksField.blockReferences + ? typeof blocksField?.blockReferences?.[0] === 'string' + ? config.blocksMap[blocksField?.blockReferences?.[0]] + : blocksField?.blockReferences?.[0] + : blocksField?.blocks?.[0] const clientBlockFields = clientBlock?.fields ?? [] diff --git a/packages/richtext-lexical/src/features/blocks/client/index.tsx b/packages/richtext-lexical/src/features/blocks/client/index.tsx index 5c41d248b3..6c632f6b7f 100644 --- a/packages/richtext-lexical/src/features/blocks/client/index.tsx +++ b/packages/richtext-lexical/src/features/blocks/client/index.tsx @@ -20,7 +20,7 @@ import { InlineBlockNode } from './nodes/InlineBlocksNode.js' import { INSERT_BLOCK_COMMAND, INSERT_INLINE_BLOCK_COMMAND } from './plugin/commands.js' import { BlocksPlugin } from './plugin/index.js' export const BlocksFeatureClient = createClientFeature( - ({ featureClientSchemaMap, props, schemaPath }) => { + ({ config, featureClientSchemaMap, props, schemaPath }) => { const schemaMapRenderedBlockPathPrefix = `${schemaPath}.lexical_internal_feature.blocks.lexical_blocks` const schemaMapRenderedInlineBlockPathPrefix = `${schemaPath}.lexical_internal_feature.blocks.lexical_inline_blocks` const clientSchema = featureClientSchemaMap['blocks'] @@ -47,13 +47,21 @@ export const BlocksFeatureClient = createClientFeature( const clientBlocks: ClientBlock[] = blocksFields .map((field) => { - return field.blocks[0] + return field.blockReferences + ? typeof field.blockReferences[0] === 'string' + ? config.blocksMap[field.blockReferences[0]] + : field.blockReferences[0] + : field.blocks[0] }) .filter((block) => block !== undefined) const clientInlineBlocks: ClientBlock[] = inlineBlocksFields .map((field) => { - return field.blocks[0] + return field.blockReferences + ? typeof field.blockReferences[0] === 'string' + ? config.blocksMap[field.blockReferences[0]] + : field.blockReferences[0] + : field.blocks[0] }) .filter((block) => block !== undefined) diff --git a/packages/richtext-lexical/src/features/blocks/server/index.ts b/packages/richtext-lexical/src/features/blocks/server/index.ts index efee6709ac..eabc53dc45 100644 --- a/packages/richtext-lexical/src/features/blocks/server/index.ts +++ b/packages/richtext-lexical/src/features/blocks/server/index.ts @@ -1,4 +1,11 @@ -import type { Block, BlocksField, Config, FieldSchemaMap, FlattenedBlocksField } from 'payload' +import type { + Block, + BlocksField, + BlockSlug, + Config, + FieldSchemaMap, + FlattenedBlocksField, +} from 'payload' import { fieldsToJSONSchema, flattenAllFields, sanitizeFields } from 'payload' @@ -12,12 +19,12 @@ import { ServerInlineBlockNode } from './nodes/InlineBlocksNode.js' import { blockValidationHOC } from './validate.js' export type BlocksFeatureProps = { - blocks?: Block[] - inlineBlocks?: Block[] + blocks?: (Block | BlockSlug)[] | Block[] + inlineBlocks?: (Block | BlockSlug)[] | Block[] } export const BlocksFeature = createServerFeature({ - feature: async ({ config: _config, isRoot, parentIsLocalized, props }) => { + feature: async ({ config: _config, isRoot, parentIsLocalized, props: _props }) => { const validRelationships = _config.collections.map((c) => c.slug) || [] const sanitized = await sanitizeFields({ @@ -26,12 +33,14 @@ export const BlocksFeature = createServerFeature b.slug === _block) : _block + if (!block) { + throw new Error( + `Block not found for slug: ${typeof _block === 'string' ? _block : _block?.slug}`, + ) + } + blockConfigs.push(block) + } + + const inlineBlockConfigs: Block[] = [] + for (const _block of (sanitized[1] as BlocksField).blockReferences ?? + (sanitized[1] as BlocksField).blocks) { + const block = + typeof _block === 'string' ? _config?.blocks?.find((b) => b.slug === _block) : _block + if (!block) { + throw new Error( + `Block not found for slug: ${typeof _block === 'string' ? _block : _block?.slug}`, + ) + } + inlineBlockConfigs.push(block) + } return { ClientFeature: '@payloadcms/richtext-lexical/client#BlocksFeatureClient', @@ -53,30 +85,34 @@ export const BlocksFeature = createServerFeature { - if (!props?.blocks?.length && !props?.inlineBlocks?.length) { + if (!blockConfigs?.length && !inlineBlockConfigs?.length) { return currentSchema } const fields: FlattenedBlocksField[] = [] - if (props?.blocks?.length) { + if (blockConfigs?.length) { fields.push({ name: field?.name + '_lexical_blocks', type: 'blocks', - blocks: props.blocks.map((block) => ({ - ...block, - flattenedFields: flattenAllFields({ fields: block.fields }), - })), + blocks: blockConfigs.map((block) => { + return { + ...block, + flattenedFields: flattenAllFields({ fields: block.fields }), + } + }), }) } - if (props?.inlineBlocks?.length) { + if (inlineBlockConfigs?.length) { fields.push({ name: field?.name + '_lexical_inline_blocks', type: 'blocks', - blocks: props.inlineBlocks.map((block) => ({ - ...block, - flattenedFields: flattenAllFields({ fields: block.fields }), - })), + blocks: inlineBlockConfigs.map((block) => { + return { + ...block, + flattenedFields: flattenAllFields({ fields: block.fields }), + } + }), }) } @@ -95,15 +131,15 @@ export const BlocksFeature = createServerFeature { + generateSchemaMap: ({ config }) => { /** * Add sub-fields to the schemaMap. E.g. if you have an array field as part of the block, and it runs addRow, it will request these * sub-fields from the component map. Thus, we need to put them in the component map here. */ const schemaMap: FieldSchemaMap = new Map() - if (props?.blocks?.length) { - for (const block of props.blocks) { + if (blockConfigs?.length) { + for (const block of blockConfigs) { const blockFields = [...block.fields] if (block?.admin?.components) { @@ -129,9 +165,9 @@ export const BlocksFeature = createServerFeature { if (!node) { - if (props?.blocks?.length) { + if (blockConfigs?.length) { return [ { name: 'lexical_blocks', type: 'blocks', - blocks: props.blocks, + blocks: blockConfigs, }, ] } @@ -186,26 +222,26 @@ export const BlocksFeature = createServerFeature block.slug === blockType) + const block = blockConfigs?.find((block) => block.slug === blockType) return block?.fields }, getSubFieldsData: ({ node }) => { return node?.fields }, - graphQLPopulationPromises: [blockPopulationPromiseHOC(props.blocks)], + graphQLPopulationPromises: [blockPopulationPromiseHOC(blockConfigs)], node: ServerBlockNode, - validations: [blockValidationHOC(props.blocks)], + validations: [blockValidationHOC(blockConfigs)], }), createNode({ // @ts-expect-error - TODO: fix this getSubFields: ({ node }) => { if (!node) { - if (props?.inlineBlocks?.length) { + if (inlineBlockConfigs?.length) { return [ { name: 'lexical_inline_blocks', type: 'blocks', - blocks: props.inlineBlocks, + blocks: inlineBlockConfigs, }, ] } @@ -214,18 +250,18 @@ export const BlocksFeature = createServerFeature block.slug === blockType) + const block = inlineBlockConfigs?.find((block) => block.slug === blockType) return block?.fields }, getSubFieldsData: ({ node }) => { return node?.fields }, - graphQLPopulationPromises: [blockPopulationPromiseHOC(props.inlineBlocks)], + graphQLPopulationPromises: [blockPopulationPromiseHOC(inlineBlockConfigs)], node: ServerInlineBlockNode, - validations: [blockValidationHOC(props.inlineBlocks)], + validations: [blockValidationHOC(inlineBlockConfigs)], }), ], - sanitizedServerFeatureProps: props, + sanitizedServerFeatureProps: _props, } }, key: 'blocks', diff --git a/packages/richtext-lexical/src/features/blocks/server/validate.ts b/packages/richtext-lexical/src/features/blocks/server/validate.ts index fe92573485..7adc71cee5 100644 --- a/packages/richtext-lexical/src/features/blocks/server/validate.ts +++ b/packages/richtext-lexical/src/features/blocks/server/validate.ts @@ -6,6 +6,11 @@ import type { NodeValidation } from '../../typesServer.js' import type { BlockFields, SerializedBlockNode } from './nodes/BlocksNode.js' import type { SerializedInlineBlockNode } from './nodes/InlineBlocksNode.js' +/** + * Runs validation for blocks. This function will determine if the rich text field itself is valid. It does not handle + * block field error paths - this is done by the `beforeChangeTraverseFields` call in the `beforeChange` hook, called from the + * rich text adapter. + */ export const blockValidationHOC = ( blocks: Block[], ): NodeValidation => { diff --git a/packages/richtext-lexical/src/features/converters/html/field/index.ts b/packages/richtext-lexical/src/features/converters/html/field/index.ts index 2aec842fcb..800e91a93f 100644 --- a/packages/richtext-lexical/src/features/converters/html/field/index.ts +++ b/packages/richtext-lexical/src/features/converters/html/field/index.ts @@ -1,5 +1,5 @@ import type { SerializedEditorState } from 'lexical' -import type { Field, FieldAffectingData, RichTextField } from 'payload' +import type { Field, FieldAffectingData, PayloadRequest, RichTextField } from 'payload' import type { SanitizedServerEditorConfig } from '../../../../lexical/config/types.js' import type { AdapterProps, LexicalRichTextAdapter } from '../../../../types.js' diff --git a/packages/richtext-lexical/src/index.ts b/packages/richtext-lexical/src/index.ts index b721c629da..53c8bca0ae 100644 --- a/packages/richtext-lexical/src/index.ts +++ b/packages/richtext-lexical/src/index.ts @@ -268,6 +268,7 @@ export function lexicalEditor(props?: LexicalEditorProps): LexicalRichTextAdapte originalNode: originalNodeIDMap[id], parentRichTextFieldPath: path, parentRichTextFieldSchemaPath: schemaPath, + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion previousNode: previousNodeIDMap[id]!, req, }) @@ -281,8 +282,10 @@ export function lexicalEditor(props?: LexicalEditorProps): LexicalRichTextAdapte if (subFieldFn && subFieldDataFn) { const subFields = subFieldFn({ node, req }) const nodeSiblingData = subFieldDataFn({ node, req }) ?? {} + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion const nodeSiblingDoc = subFieldDataFn({ node: originalNodeIDMap[id]!, req }) ?? {} const nodePreviousSiblingDoc = + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion subFieldDataFn({ node: previousNodeIDMap[id]!, req }) ?? {} if (subFields?.length) { @@ -540,6 +543,7 @@ export function lexicalEditor(props?: LexicalEditorProps): LexicalRichTextAdapte originalNodeWithLocales: originalNodeWithLocalesIDMap[id], parentRichTextFieldPath: path, parentRichTextFieldSchemaPath: schemaPath, + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion previousNode: previousNodeIDMap[id]!, req, skipValidation: skipValidation!, @@ -557,10 +561,12 @@ export function lexicalEditor(props?: LexicalEditorProps): LexicalRichTextAdapte const nodeSiblingData = subFieldDataFn({ node, req }) ?? {} const nodeSiblingDocWithLocales = subFieldDataFn({ + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion node: originalNodeWithLocalesIDMap[id]!, req, }) ?? {} const nodePreviousSiblingDoc = + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion subFieldDataFn({ node: previousNodeIDMap[id]!, req }) ?? {} if (subFields?.length) { @@ -756,6 +762,7 @@ export function lexicalEditor(props?: LexicalEditorProps): LexicalRichTextAdapte if (subFieldFn && subFieldDataFn) { const subFields = subFieldFn({ node, req }) const nodeSiblingData = subFieldDataFn({ node, req }) ?? {} + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion const nodeSiblingDoc = subFieldDataFn({ node: originalNodeIDMap[id]!, req }) ?? {} if (subFields?.length) { diff --git a/packages/richtext-lexical/src/utilities/migrateSlateToLexical/index.ts b/packages/richtext-lexical/src/utilities/migrateSlateToLexical/index.ts index 5440efa28e..8249fe31d1 100644 --- a/packages/richtext-lexical/src/utilities/migrateSlateToLexical/index.ts +++ b/packages/richtext-lexical/src/utilities/migrateSlateToLexical/index.ts @@ -75,6 +75,7 @@ async function migrateGlobal({ const found = migrateDocument({ document, fields: global.fields, + payload, }) if (found) { @@ -159,6 +160,7 @@ async function migrateCollection({ const found = migrateDocument({ document, fields: collection.fields, + payload, }) if (found) { @@ -189,13 +191,16 @@ async function migrateCollection({ function migrateDocument({ document, fields, + payload, }: { document: Record fields: Field[] + payload: Payload }): boolean { return !!migrateDocumentFieldsRecursively({ data: document, fields, found: 0, + payload, }) } diff --git a/packages/richtext-lexical/src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts b/packages/richtext-lexical/src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts index 6233f55c96..46a68c1001 100644 --- a/packages/richtext-lexical/src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts +++ b/packages/richtext-lexical/src/utilities/migrateSlateToLexical/migrateDocumentFieldsRecursively.ts @@ -1,4 +1,4 @@ -import type { Field } from 'payload' +import type { Field, FlattenedBlock, Payload } from 'payload' import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared' @@ -15,12 +15,14 @@ type NestedRichTextFieldsArgs = { fields: Field[] found: number + payload: Payload } export const migrateDocumentFieldsRecursively = ({ data, fields, found, + payload, }: NestedRichTextFieldsArgs): number => { for (const field of fields) { if (fieldHasSubFields(field) && !fieldIsArrayType(field)) { @@ -29,12 +31,14 @@ export const migrateDocumentFieldsRecursively = ({ data: data[field.name] as Record, fields: field.fields, found, + payload, }) } else { found += migrateDocumentFieldsRecursively({ data, fields: field.fields, found, + payload, }) } } else if (field.type === 'tabs') { @@ -43,17 +47,25 @@ export const migrateDocumentFieldsRecursively = ({ data: (tabHasName(tab) ? data[tab.name] : data) as Record, fields: tab.fields, found, + payload, }) }) } else if (Array.isArray(data[field.name])) { if (field.type === 'blocks') { ;(data[field.name] as Array>).forEach((row) => { - const block = field.blocks.find(({ slug }) => slug === row?.blockType) + const blockTypeToMatch: string = row?.blockType as string + const block = + payload?.blocks[blockTypeToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (block) => typeof block !== 'string' && block.slug === blockTypeToMatch, + ) as FlattenedBlock | undefined) + if (block) { found += migrateDocumentFieldsRecursively({ data: row, fields: block.fields, found, + payload, }) } }) @@ -65,6 +77,7 @@ export const migrateDocumentFieldsRecursively = ({ data: row, fields: field.fields, found, + payload, }) }) } diff --git a/packages/richtext-lexical/src/utilities/upgradeLexicalData/index.ts b/packages/richtext-lexical/src/utilities/upgradeLexicalData/index.ts index e1b137e8f6..52864a5546 100644 --- a/packages/richtext-lexical/src/utilities/upgradeLexicalData/index.ts +++ b/packages/richtext-lexical/src/utilities/upgradeLexicalData/index.ts @@ -57,6 +57,7 @@ async function upgradeGlobal({ const found = upgradeDocument({ document, fields: global.fields, + payload, }) if (found) { @@ -129,6 +130,7 @@ async function upgradeCollection({ const found = upgradeDocument({ document, fields: collection.fields, + payload, }) if (found) { @@ -148,13 +150,16 @@ async function upgradeCollection({ function upgradeDocument({ document, fields, + payload, }: { document: Record fields: Field[] + payload: Payload }): boolean { return !!upgradeDocumentFieldsRecursively({ data: document, fields, found: 0, + payload, }) } diff --git a/packages/richtext-lexical/src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts b/packages/richtext-lexical/src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts index 222aef77c4..a3253742ac 100644 --- a/packages/richtext-lexical/src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts +++ b/packages/richtext-lexical/src/utilities/upgradeLexicalData/upgradeDocumentFieldsRecursively.ts @@ -1,5 +1,5 @@ import type { SerializedEditorState } from 'lexical' -import type { Field } from 'payload' +import type { Field, FlattenedBlock, Payload } from 'payload' import { createHeadlessEditor } from '@lexical/headless' import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared' @@ -13,12 +13,14 @@ type NestedRichTextFieldsArgs = { fields: Field[] found: number + payload: Payload } export const upgradeDocumentFieldsRecursively = ({ data, fields, found, + payload, }: NestedRichTextFieldsArgs): number => { for (const field of fields) { if (fieldHasSubFields(field) && !fieldIsArrayType(field)) { @@ -27,12 +29,14 @@ export const upgradeDocumentFieldsRecursively = ({ data: data[field.name] as Record, fields: field.fields, found, + payload, }) } else { found += upgradeDocumentFieldsRecursively({ data, fields: field.fields, found, + payload, }) } } else if (field.type === 'tabs') { @@ -41,17 +45,26 @@ export const upgradeDocumentFieldsRecursively = ({ data: (tabHasName(tab) ? data[tab.name] : data) as Record, fields: tab.fields, found, + payload, }) }) } else if (Array.isArray(data[field.name])) { if (field.type === 'blocks') { ;(data[field.name] as Record[]).forEach((row) => { - const block = field.blocks.find(({ slug }) => slug === row?.blockType) + const blockTypeToMatch: string = row?.blockType as string + + const block = + payload.blocks[blockTypeToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (block) => typeof block !== 'string' && block.slug === blockTypeToMatch, + ) as FlattenedBlock | undefined) + if (block) { found += upgradeDocumentFieldsRecursively({ data: row, fields: block.fields, found, + payload, }) } }) @@ -63,6 +76,7 @@ export const upgradeDocumentFieldsRecursively = ({ data: row, fields: field.fields, found, + payload, }) }) } diff --git a/packages/richtext-slate/src/data/recurseNestedFields.ts b/packages/richtext-slate/src/data/recurseNestedFields.ts index cd92b5f76a..7ae2c4b71a 100644 --- a/packages/richtext-slate/src/data/recurseNestedFields.ts +++ b/packages/richtext-slate/src/data/recurseNestedFields.ts @@ -1,4 +1,4 @@ -import type { Field, PayloadRequest, PopulateType } from 'payload' +import type { Field, FlattenedBlock, PayloadRequest, PopulateType } from 'payload' import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType, tabHasName } from 'payload/shared' @@ -172,7 +172,11 @@ export const recurseNestedFields = ({ } else if (Array.isArray(data[field.name])) { if (field.type === 'blocks') { data[field.name].forEach((row, i) => { - const block = field.blocks.find(({ slug }) => slug === row?.blockType) + const block = + req.payload.blocks[row?.blockType] ?? + ((field.blockReferences ?? field.blocks).find( + (block) => typeof block !== 'string' && block.slug === row?.blockType, + ) as FlattenedBlock | undefined) if (block) { recurseNestedFields({ currentDepth, diff --git a/packages/ui/src/elements/Table/DefaultCell/fields/Blocks/index.tsx b/packages/ui/src/elements/Table/DefaultCell/fields/Blocks/index.tsx index 75e246f31c..7abf3430e5 100644 --- a/packages/ui/src/elements/Table/DefaultCell/fields/Blocks/index.tsx +++ b/packages/ui/src/elements/Table/DefaultCell/fields/Blocks/index.tsx @@ -4,19 +4,27 @@ import type { BlocksFieldClient, DefaultCellComponentProps } from 'payload' import { getTranslation } from '@payloadcms/translations' import React from 'react' +import { useConfig } from '../../../../../providers/Config/index.js' import { useTranslation } from '../../../../../providers/Translation/index.js' export interface BlocksCellProps extends DefaultCellComponentProps {} -export const BlocksCell: React.FC = ({ cellData, field: { blocks, labels } }) => { +export const BlocksCell: React.FC = ({ + cellData, + field: { blockReferences, blocks, labels }, +}) => { const { i18n } = useTranslation() + const { config } = useConfig() const selectedBlocks = Array.isArray(cellData) ? cellData.map(({ blockType }) => blockType) : [] - const translatedBlockLabels = blocks?.map((b) => ({ - slug: b.slug, - label: getTranslation(b.labels.singular, i18n), - })) + const translatedBlockLabels = (blockReferences ?? blocks)?.map((b) => { + const block = typeof b === 'string' ? config.blocksMap[b] : b + return { + slug: block.slug, + label: getTranslation(block.labels.singular, i18n), + } + }) let label = `0 ${getTranslation(labels?.plural, i18n)}` diff --git a/packages/ui/src/fields/Blocks/BlockRow.tsx b/packages/ui/src/fields/Blocks/BlockRow.tsx index f8cfbf0b0a..c3bdba4271 100644 --- a/packages/ui/src/fields/Blocks/BlockRow.tsx +++ b/packages/ui/src/fields/Blocks/BlockRow.tsx @@ -23,7 +23,7 @@ const baseClass = 'blocks-field' type BlocksFieldProps = { addRow: (rowIndex: number, blockType: string) => Promise | void block: ClientBlock - blocks: ClientBlock[] + blocks: (ClientBlock | string)[] | ClientBlock[] duplicateRow: (rowIndex: number) => void errorCount: number fields: ClientField[] diff --git a/packages/ui/src/fields/Blocks/BlocksDrawer/index.tsx b/packages/ui/src/fields/Blocks/BlocksDrawer/index.tsx index 895f54dc39..0414270815 100644 --- a/packages/ui/src/fields/Blocks/BlocksDrawer/index.tsx +++ b/packages/ui/src/fields/Blocks/BlocksDrawer/index.tsx @@ -9,14 +9,15 @@ import React, { useEffect, useState } from 'react' import { Drawer } from '../../../elements/Drawer/index.js' import { ThumbnailCard } from '../../../elements/ThumbnailCard/index.js' import { DefaultBlockImage } from '../../../graphics/DefaultBlockImage/index.js' +import { useConfig } from '../../../providers/Config/index.js' import { useTranslation } from '../../../providers/Translation/index.js' -import { BlockSearch } from './BlockSearch/index.js' import './index.scss' +import { BlockSearch } from './BlockSearch/index.js' export type Props = { readonly addRow: (index: number, blockType?: string) => Promise | void readonly addRowIndex: number - readonly blocks: ClientBlock[] + readonly blocks: (ClientBlock | string)[] readonly drawerSlug: string readonly labels: Labels } @@ -40,6 +41,7 @@ export const BlocksDrawer: React.FC = (props) => { const [filteredBlocks, setFilteredBlocks] = useState(blocks) const { closeModal, isModalOpen } = useModal() const { i18n, t } = useTranslation() + const { config } = useConfig() useEffect(() => { if (!isModalOpen(drawerSlug)) { @@ -50,7 +52,8 @@ export const BlocksDrawer: React.FC = (props) => { useEffect(() => { const searchTermToUse = searchTerm.toLowerCase() - const matchingBlocks = blocks?.reduce((matchedBlocks, block) => { + const matchingBlocks = blocks?.reduce((matchedBlocks, _block) => { + const block = typeof _block === 'string' ? config.blocksMap[_block] : _block const blockLabel = getBlockLabel(block, i18n) if (blockLabel.includes(searchTermToUse)) { matchedBlocks.push(block) @@ -59,7 +62,7 @@ export const BlocksDrawer: React.FC = (props) => { }, []) setFilteredBlocks(matchingBlocks) - }, [searchTerm, blocks, i18n]) + }, [searchTerm, blocks, i18n, config.blocksMap]) return ( = (props) => {
    - {filteredBlocks?.map((block, index) => { + {filteredBlocks?.map((_block, index) => { + const block = typeof _block === 'string' ? config.blocksMap[_block] : _block + const { slug, imageAltText, imageURL, labels: blockLabels } = block return ( diff --git a/packages/ui/src/fields/Blocks/RowActions.tsx b/packages/ui/src/fields/Blocks/RowActions.tsx index 0da6a1d605..9e996b7b35 100644 --- a/packages/ui/src/fields/Blocks/RowActions.tsx +++ b/packages/ui/src/fields/Blocks/RowActions.tsx @@ -10,7 +10,7 @@ import { BlocksDrawer } from './BlocksDrawer/index.js' export const RowActions: React.FC<{ readonly addRow: (rowIndex: number, blockType: string) => Promise | void - readonly blocks: ClientBlock[] + readonly blocks: (ClientBlock | string)[] readonly blockType: string readonly duplicateRow: (rowIndex: number, blockType: string) => void readonly fields: ClientField[] diff --git a/packages/ui/src/fields/Blocks/index.tsx b/packages/ui/src/fields/Blocks/index.tsx index 93f2c385b4..fe6de2e8c3 100644 --- a/packages/ui/src/fields/Blocks/index.tsx +++ b/packages/ui/src/fields/Blocks/index.tsx @@ -1,5 +1,5 @@ 'use client' -import type { BlocksFieldClientComponent } from 'payload' +import type { BlocksFieldClientComponent, ClientBlock } from 'payload' import { getTranslation } from '@payloadcms/translations' import React, { Fragment, useCallback } from 'react' @@ -39,6 +39,7 @@ const BlocksFieldComponent: BlocksFieldClientComponent = (props) => { field: { name, admin: { className, description, isSortable = true } = {}, + blockReferences, blocks, label, labels: labelsFromProps, @@ -62,6 +63,7 @@ const BlocksFieldComponent: BlocksFieldClientComponent = (props) => { const { code: locale } = useLocale() const { config: { localization }, + config, } = useConfig() const drawerSlug = useDrawerSlug('blocks-drawer') const submitted = useFormSubmitted() @@ -260,7 +262,11 @@ const BlocksFieldComponent: BlocksFieldClientComponent = (props) => { > {rows.map((row, i) => { const { blockType, isLoading } = row - const blockConfig = blocks.find((block) => block.slug === blockType) + const blockConfig: ClientBlock = + config.blocksMap[blockType] ?? + ((blockReferences ?? blocks).find( + (block) => typeof block !== 'string' && block.slug === blockType, + ) as ClientBlock) if (blockConfig) { const rowPath = `${path}.${i}` @@ -276,7 +282,7 @@ const BlocksFieldComponent: BlocksFieldClientComponent = (props) => { {...draggableSortableItemProps} addRow={addRow} block={blockConfig} - blocks={blocks} + blocks={blockReferences ?? blocks} duplicateRow={duplicateRow} errorCount={rowErrorCount} fields={blockConfig.fields} @@ -346,7 +352,7 @@ const BlocksFieldComponent: BlocksFieldClientComponent = (props) => { diff --git a/packages/ui/src/fields/Join/index.tsx b/packages/ui/src/fields/Join/index.tsx index 6f8c0000d7..d463f281a2 100644 --- a/packages/ui/src/fields/Join/index.tsx +++ b/packages/ui/src/fields/Join/index.tsx @@ -1,6 +1,7 @@ 'use client' import type { + ClientConfig, ClientField, JoinFieldClient, JoinFieldClientComponent, @@ -30,11 +31,13 @@ const ObjectId = (ObjectIdImport.default || */ const getInitialDrawerData = ({ collectionSlug, + config, docID, fields, segments, }: { collectionSlug: string + config: ClientConfig docID: number | string fields: ClientField[] segments: string[] @@ -68,6 +71,7 @@ const getInitialDrawerData = ({ return { [field.name]: getInitialDrawerData({ collectionSlug, + config, docID, fields: field.fields, segments: nextSegments, @@ -78,6 +82,7 @@ const getInitialDrawerData = ({ if (field.type === 'array') { const initialData = getInitialDrawerData({ collectionSlug, + config, docID, fields: field.fields, segments: nextSegments, @@ -91,9 +96,12 @@ const getInitialDrawerData = ({ } if (field.type === 'blocks') { - for (const block of field.blocks) { + for (const _block of field.blockReferences ?? field.blocks) { + const block = typeof _block === 'string' ? config.blocksMap[_block] : _block + const blockInitialData = getInitialDrawerData({ collectionSlug, + config, docID, fields: block.fields, segments: nextSegments, @@ -127,7 +135,7 @@ const JoinFieldComponent: JoinFieldClientComponent = (props) => { const { id: docID, docConfig } = useDocumentInfo() - const { getEntityConfig } = useConfig() + const { config, getEntityConfig } = useConfig() const { customComponents: { AfterInput, BeforeInput, Description, Label } = {}, value } = useField({ @@ -168,11 +176,12 @@ const JoinFieldComponent: JoinFieldClientComponent = (props) => { return getInitialDrawerData({ collectionSlug: docConfig?.slug, + config, docID, fields: relatedCollection.fields, segments: field.on.split('.'), }) - }, [getEntityConfig, field.collection, field.on, docConfig?.slug, docID]) + }, [getEntityConfig, field.collection, field.on, docConfig?.slug, docID, config]) if (!docConfig) { return null diff --git a/packages/ui/src/forms/fieldSchemasToFormState/addFieldStatePromise.ts b/packages/ui/src/forms/fieldSchemasToFormState/addFieldStatePromise.ts index 6289bf9ef4..309150cb63 100644 --- a/packages/ui/src/forms/fieldSchemasToFormState/addFieldStatePromise.ts +++ b/packages/ui/src/forms/fieldSchemasToFormState/addFieldStatePromise.ts @@ -5,6 +5,7 @@ import type { Field, FieldSchemaMap, FieldState, + FlattenedBlock, FormState, FormStateWithoutComponents, PayloadRequest, @@ -371,7 +372,13 @@ export const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Prom const { promises, rowMetadata } = blocksValue.reduce( (acc, row, i: number) => { - const block = field.blocks.find((blockType) => blockType.slug === row.blockType) + const blockTypeToMatch: string = row.blockType + const block = + req.payload.blocks[blockTypeToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch, + ) as FlattenedBlock | undefined) + if (!block) { throw new Error( `Block with type "${row.blockType}" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`, diff --git a/packages/ui/src/forms/fieldSchemasToFormState/calculateDefaultValues/promise.ts b/packages/ui/src/forms/fieldSchemasToFormState/calculateDefaultValues/promise.ts index d9507d247d..ec5c035855 100644 --- a/packages/ui/src/forms/fieldSchemasToFormState/calculateDefaultValues/promise.ts +++ b/packages/ui/src/forms/fieldSchemasToFormState/calculateDefaultValues/promise.ts @@ -1,4 +1,4 @@ -import type { Data, Field, PayloadRequest, TabAsField, User } from 'payload' +import type { Data, Field, FlattenedBlock, PayloadRequest, TabAsField, User } from 'payload' import { getDefaultValue } from 'payload' import { fieldAffectsData, tabHasName } from 'payload/shared' @@ -80,8 +80,12 @@ export const defaultValuePromise = async ({ if (Array.isArray(rows)) { const promises = [] rows.forEach((row) => { - const blockTypeToMatch = row.blockType - const block = field.blocks.find((blockType) => blockType.slug === blockTypeToMatch) + const blockTypeToMatch: string = row.blockType + const block = + req.payload.blocks[blockTypeToMatch] ?? + ((field.blockReferences ?? field.blocks).find( + (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch, + ) as FlattenedBlock | undefined) if (block) { row.blockType = blockTypeToMatch diff --git a/packages/ui/src/forms/fieldSchemasToFormState/renderField.tsx b/packages/ui/src/forms/fieldSchemasToFormState/renderField.tsx index 228fbc907a..c91378f56a 100644 --- a/packages/ui/src/forms/fieldSchemasToFormState/renderField.tsx +++ b/packages/ui/src/forms/fieldSchemasToFormState/renderField.tsx @@ -1,4 +1,10 @@ -import type { ClientComponentProps, ClientField, FieldPaths, ServerComponentProps } from 'payload' +import type { + ClientComponentProps, + ClientField, + FieldPaths, + FlattenedBlock, + ServerComponentProps, +} from 'payload' import { getTranslation } from '@payloadcms/translations' import { createClientField, MissingEditorProp } from 'payload' @@ -135,7 +141,12 @@ export const renderField: RenderFieldMethod = ({ case 'blocks': { fieldState?.rows?.forEach((row, rowIndex) => { - const blockConfig = fieldConfig.blocks.find((block) => block.slug === row.blockType) + const blockTypeToMatch: string = row.blockType + const blockConfig = + req.payload.blocks[blockTypeToMatch] ?? + ((fieldConfig.blockReferences ?? fieldConfig.blocks).find( + (block) => typeof block !== 'string' && block.slug === blockTypeToMatch, + ) as FlattenedBlock | undefined) if (blockConfig.admin?.components && 'Label' in blockConfig.admin.components) { if (!fieldState.customComponents) { diff --git a/packages/ui/src/providers/Config/index.tsx b/packages/ui/src/providers/Config/index.tsx index 8b30b9965c..1cc93820c3 100644 --- a/packages/ui/src/providers/Config/index.tsx +++ b/packages/ui/src/providers/Config/index.tsx @@ -6,6 +6,7 @@ import type { ClientGlobalConfig, CollectionSlug, GlobalSlug, + UnsanitizedClientConfig, } from 'payload' import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react' @@ -39,16 +40,34 @@ export type ClientConfigContext = { const RootConfigContext = createContext(undefined) +function sanitizeClientConfig( + unSanitizedConfig: ClientConfig | UnsanitizedClientConfig, +): ClientConfig { + if (!unSanitizedConfig?.blocks?.length || (unSanitizedConfig as ClientConfig).blocksMap) { + ;(unSanitizedConfig as ClientConfig).blocksMap = {} + return unSanitizedConfig as ClientConfig + } + const sanitizedConfig: ClientConfig = { ...unSanitizedConfig } as ClientConfig + + sanitizedConfig.blocksMap = {} + + for (const block of unSanitizedConfig.blocks) { + sanitizedConfig.blocksMap[block.slug] = block + } + + return sanitizedConfig +} + export const ConfigProvider: React.FC<{ readonly children: React.ReactNode - readonly config: ClientConfig + readonly config: ClientConfig | UnsanitizedClientConfig }> = ({ children, config: configFromProps }) => { - const [config, setConfig] = useState(configFromProps) + const [config, setConfig] = useState(() => sanitizeClientConfig(configFromProps)) // Need to update local config state if config from props changes, for HMR. // That way, config changes will be updated in the UI immediately without needing a refresh. useEffect(() => { - setConfig(configFromProps) + setConfig(sanitizeClientConfig(configFromProps)) }, [configFromProps]) // Build lookup maps for collections and globals so we can do O(1) lookups by slug diff --git a/packages/ui/src/utilities/buildClientFieldSchemaMap/traverseFields.ts b/packages/ui/src/utilities/buildClientFieldSchemaMap/traverseFields.ts index a238e1113e..f52a686def 100644 --- a/packages/ui/src/utilities/buildClientFieldSchemaMap/traverseFields.ts +++ b/packages/ui/src/utilities/buildClientFieldSchemaMap/traverseFields.ts @@ -1,6 +1,7 @@ import type { I18n } from '@payloadcms/translations' import { + type ClientBlock, type ClientConfig, type ClientField, type ClientFieldSchemaMap, @@ -60,7 +61,14 @@ export const traverseFields = ({ break case 'blocks': - field.blocks.map((block) => { + ;(field.blockReferences ?? field.blocks).map((_block) => { + const block = + typeof _block === 'string' + ? config.blocksMap + ? config.blocksMap[_block] + : config.blocks.find((block) => typeof block !== 'string' && block.slug === _block) + : _block + const blockSchemaPath = `${schemaPath}.${block.slug}` clientSchemaMap.set(blockSchemaPath, block) diff --git a/packages/ui/src/utilities/buildFieldSchemaMap/traverseFields.ts b/packages/ui/src/utilities/buildFieldSchemaMap/traverseFields.ts index cc620332d5..805faa011d 100644 --- a/packages/ui/src/utilities/buildFieldSchemaMap/traverseFields.ts +++ b/packages/ui/src/utilities/buildFieldSchemaMap/traverseFields.ts @@ -47,7 +47,11 @@ export const traverseFields = ({ break case 'blocks': - field.blocks.map((block) => { + ;(field.blockReferences ?? field.blocks).map((_block) => { + // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks + const block = + typeof _block === 'string' ? config.blocks.find((b) => b.slug === _block) : _block + const blockSchemaPath = `${schemaPath}.${block.slug}` schemaMap.set(blockSchemaPath, block) diff --git a/packages/ui/src/utilities/copyDataFromLocale.ts b/packages/ui/src/utilities/copyDataFromLocale.ts index 6eaa1980d3..2984c34f29 100644 --- a/packages/ui/src/utilities/copyDataFromLocale.ts +++ b/packages/ui/src/utilities/copyDataFromLocale.ts @@ -3,6 +3,7 @@ import { type CollectionSlug, type Data, type Field, + type FlattenedBlock, formatErrors, type PayloadRequest, } from 'payload' @@ -21,7 +22,12 @@ export type CopyDataFromLocaleArgs = { toLocale: string } -function iterateFields(fields: Field[], fromLocaleData: Data, toLocaleData: Data): void { +function iterateFields( + fields: Field[], + fromLocaleData: Data, + toLocaleData: Data, + req: PayloadRequest, +): void { fields.map((field) => { if (fieldAffectsData(field)) { switch (field.type) { @@ -46,7 +52,7 @@ function iterateFields(fields: Field[], fromLocaleData: Data, toLocaleData: Data toLocaleData[field.name][index].id = new ObjectId().toHexString() } - iterateFields(field.fields, fromLocaleData[field.name][index], item) + iterateFields(field.fields, fromLocaleData[field.name][index], item, req) } }) } @@ -67,17 +73,19 @@ function iterateFields(fields: Field[], fromLocaleData: Data, toLocaleData: Data // if the field has a value - loop over the data from target if (field.name in toLocaleData) { toLocaleData[field.name].map((blockData: Data, index: number) => { - const blockFields = field.blocks.find( - ({ slug }) => slug === blockData.blockType, - )?.fields + const block = + req.payload.blocks[blockData.blockType] ?? + ((field.blockReferences ?? field.blocks).find( + (block) => typeof block !== 'string' && block.slug === blockData.blockType, + ) as FlattenedBlock | undefined) // Generate new IDs if the field is localized to prevent errors with relational DBs. if (field.localized) { toLocaleData[field.name][index].id = new ObjectId().toHexString() } - if (blockFields?.length) { - iterateFields(blockFields, fromLocaleData[field.name][index], blockData) + if (block?.fields?.length) { + iterateFields(block?.fields, fromLocaleData[field.name][index], blockData, req) } }) } @@ -110,7 +118,7 @@ function iterateFields(fields: Field[], fromLocaleData: Data, toLocaleData: Data case 'group': { if (field.name in toLocaleData && fromLocaleData?.[field.name] !== undefined) { - iterateFields(field.fields, fromLocaleData[field.name], toLocaleData[field.name]) + iterateFields(field.fields, fromLocaleData[field.name], toLocaleData[field.name], req) } break } @@ -119,17 +127,17 @@ function iterateFields(fields: Field[], fromLocaleData: Data, toLocaleData: Data switch (field.type) { case 'collapsible': case 'row': - iterateFields(field.fields, fromLocaleData, toLocaleData) + iterateFields(field.fields, fromLocaleData, toLocaleData, req) break case 'tabs': field.tabs.map((tab) => { if (tabHasName(tab)) { if (tab.name in toLocaleData && fromLocaleData?.[tab.name] !== undefined) { - iterateFields(tab.fields, fromLocaleData[tab.name], toLocaleData[tab.name]) + iterateFields(tab.fields, fromLocaleData[tab.name], toLocaleData[tab.name], req) } } else { - iterateFields(tab.fields, fromLocaleData, toLocaleData) + iterateFields(tab.fields, fromLocaleData, toLocaleData, req) } }) break @@ -138,8 +146,13 @@ function iterateFields(fields: Field[], fromLocaleData: Data, toLocaleData: Data }) } -function mergeData(fromLocaleData: Data, toLocaleData: Data, fields: Field[]): Data { - iterateFields(fields, fromLocaleData, toLocaleData) +function mergeData( + fromLocaleData: Data, + toLocaleData: Data, + fields: Field[], + req: PayloadRequest, +): Data { + iterateFields(fields, fromLocaleData, toLocaleData, req) return toLocaleData } @@ -254,7 +267,12 @@ export const copyDataFromLocale = async (args: CopyDataFromLocaleArgs) => { slug: globalSlug, data: overrideData ? fromLocaleData.value - : mergeData(fromLocaleData.value, toLocaleData.value, globals[globalSlug].config.fields), + : mergeData( + fromLocaleData.value, + toLocaleData.value, + globals[globalSlug].config.fields, + req, + ), locale: toLocale, overrideAccess: false, req, @@ -269,6 +287,7 @@ export const copyDataFromLocale = async (args: CopyDataFromLocaleArgs) => { fromLocaleData.value, toLocaleData.value, collections[collectionSlug].config.fields, + req, ), locale: toLocale, overrideAccess: false, diff --git a/packages/ui/src/utilities/getClientConfig.ts b/packages/ui/src/utilities/getClientConfig.ts index 6d18a95d19..ae5629a868 100644 --- a/packages/ui/src/utilities/getClientConfig.ts +++ b/packages/ui/src/utilities/getClientConfig.ts @@ -4,7 +4,7 @@ import type { ClientConfig, ImportMap, SanitizedConfig } from 'payload' import { createClientConfig } from 'payload' import { cache } from 'react' -let cachedClientConfig = global._payload_clientConfig +let cachedClientConfig: ClientConfig | null = global._payload_clientConfig if (!cachedClientConfig) { cachedClientConfig = global._payload_clientConfig = null diff --git a/test/_community/collections/Posts/index.ts b/test/_community/collections/Posts/index.ts index b38b83d028..86a307b39c 100644 --- a/test/_community/collections/Posts/index.ts +++ b/test/_community/collections/Posts/index.ts @@ -22,7 +22,4 @@ export const PostsCollection: CollectionConfig = { }), }, ], - versions: { - drafts: true, - }, } diff --git a/test/_community/payload-types.ts b/test/_community/payload-types.ts index 54db4ec18f..4d682afd58 100644 --- a/test/_community/payload-types.ts +++ b/test/_community/payload-types.ts @@ -64,6 +64,7 @@ export interface Config { auth: { users: UserAuthOperations; }; + blocks: {}; collections: { posts: Post; media: Media; @@ -82,7 +83,7 @@ export interface Config { 'payload-migrations': PayloadMigrationsSelect | PayloadMigrationsSelect; }; db: { - defaultIDType: string; + defaultIDType: number; }; globals: { menu: Menu; @@ -122,7 +123,7 @@ export interface UserAuthOperations { * via the `definition` "posts". */ export interface Post { - id: string; + id: number; title?: string | null; content?: { root: { @@ -141,14 +142,13 @@ export interface Post { } | null; updatedAt: string; createdAt: string; - _status?: ('draft' | 'published') | null; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "media". */ export interface Media { - id: string; + id: number; updatedAt: string; createdAt: string; url?: string | null; @@ -192,7 +192,7 @@ export interface Media { * via the `definition` "users". */ export interface User { - id: string; + id: number; updatedAt: string; createdAt: string; email: string; @@ -209,24 +209,24 @@ export interface User { * via the `definition` "payload-locked-documents". */ export interface PayloadLockedDocument { - id: string; + id: number; document?: | ({ relationTo: 'posts'; - value: string | Post; + value: number | Post; } | null) | ({ relationTo: 'media'; - value: string | Media; + value: number | Media; } | null) | ({ relationTo: 'users'; - value: string | User; + value: number | User; } | null); globalSlug?: string | null; user: { relationTo: 'users'; - value: string | User; + value: number | User; }; updatedAt: string; createdAt: string; @@ -236,10 +236,10 @@ export interface PayloadLockedDocument { * via the `definition` "payload-preferences". */ export interface PayloadPreference { - id: string; + id: number; user: { relationTo: 'users'; - value: string | User; + value: number | User; }; key?: string | null; value?: @@ -259,7 +259,7 @@ export interface PayloadPreference { * via the `definition` "payload-migrations". */ export interface PayloadMigration { - id: string; + id: number; name?: string | null; batch?: number | null; updatedAt: string; @@ -274,7 +274,6 @@ export interface PostsSelect { content?: T; updatedAt?: T; createdAt?: T; - _status?: T; } /** * This interface was referenced by `Config`'s JSON-Schema @@ -379,7 +378,7 @@ export interface PayloadMigrationsSelect { * via the `definition` "menu". */ export interface Menu { - id: string; + id: number; globalText?: string | null; updatedAt?: string | null; createdAt?: string | null; diff --git a/test/admin/payload-types.ts b/test/admin/payload-types.ts index 55965db808..2574eaa861 100644 --- a/test/admin/payload-types.ts +++ b/test/admin/payload-types.ts @@ -64,6 +64,7 @@ export interface Config { auth: { users: UserAuthOperations; }; + blocks: {}; collections: { uploads: Upload; posts: Post; diff --git a/test/benchmark-blocks/.gitignore b/test/benchmark-blocks/.gitignore new file mode 100644 index 0000000000..cce01755f4 --- /dev/null +++ b/test/benchmark-blocks/.gitignore @@ -0,0 +1,2 @@ +/media +/media-gif diff --git a/test/benchmark-blocks/blocks/blocks.ts b/test/benchmark-blocks/blocks/blocks.ts new file mode 100644 index 0000000000..73e5fc51ab --- /dev/null +++ b/test/benchmark-blocks/blocks/blocks.ts @@ -0,0 +1,61 @@ +import type { Block, BlocksField, BlockSlug } from 'payload' + +export const generateBlocks = ( + blockCount: number, + useReferences?: boolean, +): (Block | BlockSlug)[] => { + const blocks: (Block | BlockSlug)[] = [] + + for (let i = 0; i < blockCount; i++) { + if (useReferences) { + blocks.push(`block_${i}` as BlockSlug) + } else { + blocks.push({ + slug: `block_${i}`, + fields: [ + { + name: 'field1', + type: 'text', + }, + { + name: 'field2', + type: 'text', + }, + { + name: 'field3', + type: 'text', + }, + { + name: 'field4', + type: 'number', + }, + ], + }) + } + } + + return blocks +} +export const generateBlockFields = ( + blockCount: number, + containerCount: number, + useReferences?: boolean, +): BlocksField[] => { + const fields: BlocksField[] = [] + for (let i = 0; i < containerCount; i++) { + const block: BlocksField = { + name: `blocksfield_${i}`, + type: 'blocks', + blocks: [], + } + + if (useReferences) { + block.blockReferences = generateBlocks(blockCount, true) + } else { + block.blocks = generateBlocks(blockCount) as any + } + fields.push(block) + } + + return fields +} diff --git a/test/benchmark-blocks/collections/Media/index.ts b/test/benchmark-blocks/collections/Media/index.ts new file mode 100644 index 0000000000..bb5edd0349 --- /dev/null +++ b/test/benchmark-blocks/collections/Media/index.ts @@ -0,0 +1,33 @@ +import type { CollectionConfig } from 'payload' + +export const mediaSlug = 'media' + +export const MediaCollection: CollectionConfig = { + slug: mediaSlug, + access: { + create: () => true, + read: () => true, + }, + fields: [], + upload: { + crop: true, + focalPoint: true, + imageSizes: [ + { + name: 'thumbnail', + height: 200, + width: 200, + }, + { + name: 'medium', + height: 800, + width: 800, + }, + { + name: 'large', + height: 1200, + width: 1200, + }, + ], + }, +} diff --git a/test/benchmark-blocks/collections/Posts/index.ts b/test/benchmark-blocks/collections/Posts/index.ts new file mode 100644 index 0000000000..b38b83d028 --- /dev/null +++ b/test/benchmark-blocks/collections/Posts/index.ts @@ -0,0 +1,28 @@ +import type { CollectionConfig } from 'payload' + +import { lexicalEditor } from '@payloadcms/richtext-lexical' + +export const postsSlug = 'posts' + +export const PostsCollection: CollectionConfig = { + slug: postsSlug, + admin: { + useAsTitle: 'title', + }, + fields: [ + { + name: 'title', + type: 'text', + }, + { + name: 'content', + type: 'richText', + editor: lexicalEditor({ + features: ({ defaultFeatures }) => [...defaultFeatures], + }), + }, + ], + versions: { + drafts: true, + }, +} diff --git a/test/benchmark-blocks/config.ts b/test/benchmark-blocks/config.ts new file mode 100644 index 0000000000..18b34be631 --- /dev/null +++ b/test/benchmark-blocks/config.ts @@ -0,0 +1,56 @@ +import { lexicalEditor } from '@payloadcms/richtext-lexical' +import { fileURLToPath } from 'node:url' +import path from 'path' + +import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js' +import { devUser } from '../credentials.js' +import { generateBlockFields, generateBlocks } from './blocks/blocks.js' +import { MediaCollection } from './collections/Media/index.js' +import { PostsCollection, postsSlug } from './collections/Posts/index.js' + +const filename = fileURLToPath(import.meta.url) +const dirname = path.dirname(filename) + +const USE_BLOCK_REFERENCES = true + +export default buildConfigWithDefaults({ + collections: [ + PostsCollection, + { + slug: 'pages', + access: { + create: () => true, + read: () => true, + }, + fields: generateBlockFields(40, 30 * 20, USE_BLOCK_REFERENCES), + }, + MediaCollection, + ], + admin: { + importMap: { + baseDir: path.resolve(dirname), + }, + }, + editor: lexicalEditor({}), + // @ts-expect-error + blocks: USE_BLOCK_REFERENCES ? generateBlocks(30 * 20, false) : undefined, + onInit: async (payload) => { + await payload.create({ + collection: 'users', + data: { + email: devUser.email, + password: devUser.password, + }, + }) + + await payload.create({ + collection: postsSlug, + data: { + title: 'example post', + }, + }) + }, + typescript: { + outputFile: path.resolve(dirname, 'payload-types.ts'), + }, +}) diff --git a/test/benchmark-blocks/eslint.config.js b/test/benchmark-blocks/eslint.config.js new file mode 100644 index 0000000000..f295df083f --- /dev/null +++ b/test/benchmark-blocks/eslint.config.js @@ -0,0 +1,19 @@ +import { rootParserOptions } from '../../eslint.config.js' +import { testEslintConfig } from '../eslint.config.js' + +/** @typedef {import('eslint').Linter.Config} Config */ + +/** @type {Config[]} */ +export const index = [ + ...testEslintConfig, + { + languageOptions: { + parserOptions: { + ...rootParserOptions, + tsconfigRootDir: import.meta.dirname, + }, + }, + }, +] + +export default index diff --git a/test/benchmark-blocks/payload-types.ts b/test/benchmark-blocks/payload-types.ts new file mode 100644 index 0000000000..715bcf26b9 --- /dev/null +++ b/test/benchmark-blocks/payload-types.ts @@ -0,0 +1,35810 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * This file was automatically generated by Payload. + * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, + * and re-run `payload generate:types` to regenerate this file. + */ + +/** + * Supported timezones in IANA format. + * + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "supportedTimezones". + */ +export type SupportedTimezones = + | 'Pacific/Midway' + | 'Pacific/Niue' + | 'Pacific/Honolulu' + | 'Pacific/Rarotonga' + | 'America/Anchorage' + | 'Pacific/Gambier' + | 'America/Los_Angeles' + | 'America/Tijuana' + | 'America/Denver' + | 'America/Phoenix' + | 'America/Chicago' + | 'America/Guatemala' + | 'America/New_York' + | 'America/Bogota' + | 'America/Caracas' + | 'America/Santiago' + | 'America/Buenos_Aires' + | 'America/Sao_Paulo' + | 'Atlantic/South_Georgia' + | 'Atlantic/Azores' + | 'Atlantic/Cape_Verde' + | 'Europe/London' + | 'Europe/Berlin' + | 'Africa/Lagos' + | 'Europe/Athens' + | 'Africa/Cairo' + | 'Europe/Moscow' + | 'Asia/Riyadh' + | 'Asia/Dubai' + | 'Asia/Baku' + | 'Asia/Karachi' + | 'Asia/Tashkent' + | 'Asia/Calcutta' + | 'Asia/Dhaka' + | 'Asia/Almaty' + | 'Asia/Jakarta' + | 'Asia/Bangkok' + | 'Asia/Shanghai' + | 'Asia/Singapore' + | 'Asia/Tokyo' + | 'Asia/Seoul' + | 'Australia/Sydney' + | 'Pacific/Guam' + | 'Pacific/Noumea' + | 'Pacific/Auckland' + | 'Pacific/Fiji'; + +export interface Config { + auth: { + users: UserAuthOperations; + }; + blocks: { + block_0: Block_0; + block_1: Block_1; + block_2: Block_2; + block_3: Block_3; + block_4: Block_4; + block_5: Block_5; + block_6: Block_6; + block_7: Block_7; + block_8: Block_8; + block_9: Block_9; + block_10: Block_10; + block_11: Block_11; + block_12: Block_12; + block_13: Block_13; + block_14: Block_14; + block_15: Block_15; + block_16: Block_16; + block_17: Block_17; + block_18: Block_18; + block_19: Block_19; + block_20: Block_20; + block_21: Block_21; + block_22: Block_22; + block_23: Block_23; + block_24: Block_24; + block_25: Block_25; + block_26: Block_26; + block_27: Block_27; + block_28: Block_28; + block_29: Block_29; + block_30: Block_30; + block_31: Block_31; + block_32: Block_32; + block_33: Block_33; + block_34: Block_34; + block_35: Block_35; + block_36: Block_36; + block_37: Block_37; + block_38: Block_38; + block_39: Block_39; + block_40: Block_40; + block_41: Block_41; + block_42: Block_42; + block_43: Block_43; + block_44: Block_44; + block_45: Block_45; + block_46: Block_46; + block_47: Block_47; + block_48: Block_48; + block_49: Block_49; + block_50: Block_50; + block_51: Block_51; + block_52: Block_52; + block_53: Block_53; + block_54: Block_54; + block_55: Block_55; + block_56: Block_56; + block_57: Block_57; + block_58: Block_58; + block_59: Block_59; + block_60: Block_60; + block_61: Block_61; + block_62: Block_62; + block_63: Block_63; + block_64: Block_64; + block_65: Block_65; + block_66: Block_66; + block_67: Block_67; + block_68: Block_68; + block_69: Block_69; + block_70: Block_70; + block_71: Block_71; + block_72: Block_72; + block_73: Block_73; + block_74: Block_74; + block_75: Block_75; + block_76: Block_76; + block_77: Block_77; + block_78: Block_78; + block_79: Block_79; + block_80: Block_80; + block_81: Block_81; + block_82: Block_82; + block_83: Block_83; + block_84: Block_84; + block_85: Block_85; + block_86: Block_86; + block_87: Block_87; + block_88: Block_88; + block_89: Block_89; + block_90: Block_90; + block_91: Block_91; + block_92: Block_92; + block_93: Block_93; + block_94: Block_94; + block_95: Block_95; + block_96: Block_96; + block_97: Block_97; + block_98: Block_98; + block_99: Block_99; + block_100: Block_100; + block_101: Block_101; + block_102: Block_102; + block_103: Block_103; + block_104: Block_104; + block_105: Block_105; + block_106: Block_106; + block_107: Block_107; + block_108: Block_108; + block_109: Block_109; + block_110: Block_110; + block_111: Block_111; + block_112: Block_112; + block_113: Block_113; + block_114: Block_114; + block_115: Block_115; + block_116: Block_116; + block_117: Block_117; + block_118: Block_118; + block_119: Block_119; + block_120: Block_120; + block_121: Block_121; + block_122: Block_122; + block_123: Block_123; + block_124: Block_124; + block_125: Block_125; + block_126: Block_126; + block_127: Block_127; + block_128: Block_128; + block_129: Block_129; + block_130: Block_130; + block_131: Block_131; + block_132: Block_132; + block_133: Block_133; + block_134: Block_134; + block_135: Block_135; + block_136: Block_136; + block_137: Block_137; + block_138: Block_138; + block_139: Block_139; + block_140: Block_140; + block_141: Block_141; + block_142: Block_142; + block_143: Block_143; + block_144: Block_144; + block_145: Block_145; + block_146: Block_146; + block_147: Block_147; + block_148: Block_148; + block_149: Block_149; + block_150: Block_150; + block_151: Block_151; + block_152: Block_152; + block_153: Block_153; + block_154: Block_154; + block_155: Block_155; + block_156: Block_156; + block_157: Block_157; + block_158: Block_158; + block_159: Block_159; + block_160: Block_160; + block_161: Block_161; + block_162: Block_162; + block_163: Block_163; + block_164: Block_164; + block_165: Block_165; + block_166: Block_166; + block_167: Block_167; + block_168: Block_168; + block_169: Block_169; + block_170: Block_170; + block_171: Block_171; + block_172: Block_172; + block_173: Block_173; + block_174: Block_174; + block_175: Block_175; + block_176: Block_176; + block_177: Block_177; + block_178: Block_178; + block_179: Block_179; + block_180: Block_180; + block_181: Block_181; + block_182: Block_182; + block_183: Block_183; + block_184: Block_184; + block_185: Block_185; + block_186: Block_186; + block_187: Block_187; + block_188: Block_188; + block_189: Block_189; + block_190: Block_190; + block_191: Block_191; + block_192: Block_192; + block_193: Block_193; + block_194: Block_194; + block_195: Block_195; + block_196: Block_196; + block_197: Block_197; + block_198: Block_198; + block_199: Block_199; + block_200: Block_200; + block_201: Block_201; + block_202: Block_202; + block_203: Block_203; + block_204: Block_204; + block_205: Block_205; + block_206: Block_206; + block_207: Block_207; + block_208: Block_208; + block_209: Block_209; + block_210: Block_210; + block_211: Block_211; + block_212: Block_212; + block_213: Block_213; + block_214: Block_214; + block_215: Block_215; + block_216: Block_216; + block_217: Block_217; + block_218: Block_218; + block_219: Block_219; + block_220: Block_220; + block_221: Block_221; + block_222: Block_222; + block_223: Block_223; + block_224: Block_224; + block_225: Block_225; + block_226: Block_226; + block_227: Block_227; + block_228: Block_228; + block_229: Block_229; + block_230: Block_230; + block_231: Block_231; + block_232: Block_232; + block_233: Block_233; + block_234: Block_234; + block_235: Block_235; + block_236: Block_236; + block_237: Block_237; + block_238: Block_238; + block_239: Block_239; + block_240: Block_240; + block_241: Block_241; + block_242: Block_242; + block_243: Block_243; + block_244: Block_244; + block_245: Block_245; + block_246: Block_246; + block_247: Block_247; + block_248: Block_248; + block_249: Block_249; + block_250: Block_250; + block_251: Block_251; + block_252: Block_252; + block_253: Block_253; + block_254: Block_254; + block_255: Block_255; + block_256: Block_256; + block_257: Block_257; + block_258: Block_258; + block_259: Block_259; + block_260: Block_260; + block_261: Block_261; + block_262: Block_262; + block_263: Block_263; + block_264: Block_264; + block_265: Block_265; + block_266: Block_266; + block_267: Block_267; + block_268: Block_268; + block_269: Block_269; + block_270: Block_270; + block_271: Block_271; + block_272: Block_272; + block_273: Block_273; + block_274: Block_274; + block_275: Block_275; + block_276: Block_276; + block_277: Block_277; + block_278: Block_278; + block_279: Block_279; + block_280: Block_280; + block_281: Block_281; + block_282: Block_282; + block_283: Block_283; + block_284: Block_284; + block_285: Block_285; + block_286: Block_286; + block_287: Block_287; + block_288: Block_288; + block_289: Block_289; + block_290: Block_290; + block_291: Block_291; + block_292: Block_292; + block_293: Block_293; + block_294: Block_294; + block_295: Block_295; + block_296: Block_296; + block_297: Block_297; + block_298: Block_298; + block_299: Block_299; + block_300: Block_300; + block_301: Block_301; + block_302: Block_302; + block_303: Block_303; + block_304: Block_304; + block_305: Block_305; + block_306: Block_306; + block_307: Block_307; + block_308: Block_308; + block_309: Block_309; + block_310: Block_310; + block_311: Block_311; + block_312: Block_312; + block_313: Block_313; + block_314: Block_314; + block_315: Block_315; + block_316: Block_316; + block_317: Block_317; + block_318: Block_318; + block_319: Block_319; + block_320: Block_320; + block_321: Block_321; + block_322: Block_322; + block_323: Block_323; + block_324: Block_324; + block_325: Block_325; + block_326: Block_326; + block_327: Block_327; + block_328: Block_328; + block_329: Block_329; + block_330: Block_330; + block_331: Block_331; + block_332: Block_332; + block_333: Block_333; + block_334: Block_334; + block_335: Block_335; + block_336: Block_336; + block_337: Block_337; + block_338: Block_338; + block_339: Block_339; + block_340: Block_340; + block_341: Block_341; + block_342: Block_342; + block_343: Block_343; + block_344: Block_344; + block_345: Block_345; + block_346: Block_346; + block_347: Block_347; + block_348: Block_348; + block_349: Block_349; + block_350: Block_350; + block_351: Block_351; + block_352: Block_352; + block_353: Block_353; + block_354: Block_354; + block_355: Block_355; + block_356: Block_356; + block_357: Block_357; + block_358: Block_358; + block_359: Block_359; + block_360: Block_360; + block_361: Block_361; + block_362: Block_362; + block_363: Block_363; + block_364: Block_364; + block_365: Block_365; + block_366: Block_366; + block_367: Block_367; + block_368: Block_368; + block_369: Block_369; + block_370: Block_370; + block_371: Block_371; + block_372: Block_372; + block_373: Block_373; + block_374: Block_374; + block_375: Block_375; + block_376: Block_376; + block_377: Block_377; + block_378: Block_378; + block_379: Block_379; + block_380: Block_380; + block_381: Block_381; + block_382: Block_382; + block_383: Block_383; + block_384: Block_384; + block_385: Block_385; + block_386: Block_386; + block_387: Block_387; + block_388: Block_388; + block_389: Block_389; + block_390: Block_390; + block_391: Block_391; + block_392: Block_392; + block_393: Block_393; + block_394: Block_394; + block_395: Block_395; + block_396: Block_396; + block_397: Block_397; + block_398: Block_398; + block_399: Block_399; + block_400: Block_400; + block_401: Block_401; + block_402: Block_402; + block_403: Block_403; + block_404: Block_404; + block_405: Block_405; + block_406: Block_406; + block_407: Block_407; + block_408: Block_408; + block_409: Block_409; + block_410: Block_410; + block_411: Block_411; + block_412: Block_412; + block_413: Block_413; + block_414: Block_414; + block_415: Block_415; + block_416: Block_416; + block_417: Block_417; + block_418: Block_418; + block_419: Block_419; + block_420: Block_420; + block_421: Block_421; + block_422: Block_422; + block_423: Block_423; + block_424: Block_424; + block_425: Block_425; + block_426: Block_426; + block_427: Block_427; + block_428: Block_428; + block_429: Block_429; + block_430: Block_430; + block_431: Block_431; + block_432: Block_432; + block_433: Block_433; + block_434: Block_434; + block_435: Block_435; + block_436: Block_436; + block_437: Block_437; + block_438: Block_438; + block_439: Block_439; + block_440: Block_440; + block_441: Block_441; + block_442: Block_442; + block_443: Block_443; + block_444: Block_444; + block_445: Block_445; + block_446: Block_446; + block_447: Block_447; + block_448: Block_448; + block_449: Block_449; + block_450: Block_450; + block_451: Block_451; + block_452: Block_452; + block_453: Block_453; + block_454: Block_454; + block_455: Block_455; + block_456: Block_456; + block_457: Block_457; + block_458: Block_458; + block_459: Block_459; + block_460: Block_460; + block_461: Block_461; + block_462: Block_462; + block_463: Block_463; + block_464: Block_464; + block_465: Block_465; + block_466: Block_466; + block_467: Block_467; + block_468: Block_468; + block_469: Block_469; + block_470: Block_470; + block_471: Block_471; + block_472: Block_472; + block_473: Block_473; + block_474: Block_474; + block_475: Block_475; + block_476: Block_476; + block_477: Block_477; + block_478: Block_478; + block_479: Block_479; + block_480: Block_480; + block_481: Block_481; + block_482: Block_482; + block_483: Block_483; + block_484: Block_484; + block_485: Block_485; + block_486: Block_486; + block_487: Block_487; + block_488: Block_488; + block_489: Block_489; + block_490: Block_490; + block_491: Block_491; + block_492: Block_492; + block_493: Block_493; + block_494: Block_494; + block_495: Block_495; + block_496: Block_496; + block_497: Block_497; + block_498: Block_498; + block_499: Block_499; + block_500: Block_500; + block_501: Block_501; + block_502: Block_502; + block_503: Block_503; + block_504: Block_504; + block_505: Block_505; + block_506: Block_506; + block_507: Block_507; + block_508: Block_508; + block_509: Block_509; + block_510: Block_510; + block_511: Block_511; + block_512: Block_512; + block_513: Block_513; + block_514: Block_514; + block_515: Block_515; + block_516: Block_516; + block_517: Block_517; + block_518: Block_518; + block_519: Block_519; + block_520: Block_520; + block_521: Block_521; + block_522: Block_522; + block_523: Block_523; + block_524: Block_524; + block_525: Block_525; + block_526: Block_526; + block_527: Block_527; + block_528: Block_528; + block_529: Block_529; + block_530: Block_530; + block_531: Block_531; + block_532: Block_532; + block_533: Block_533; + block_534: Block_534; + block_535: Block_535; + block_536: Block_536; + block_537: Block_537; + block_538: Block_538; + block_539: Block_539; + block_540: Block_540; + block_541: Block_541; + block_542: Block_542; + block_543: Block_543; + block_544: Block_544; + block_545: Block_545; + block_546: Block_546; + block_547: Block_547; + block_548: Block_548; + block_549: Block_549; + block_550: Block_550; + block_551: Block_551; + block_552: Block_552; + block_553: Block_553; + block_554: Block_554; + block_555: Block_555; + block_556: Block_556; + block_557: Block_557; + block_558: Block_558; + block_559: Block_559; + block_560: Block_560; + block_561: Block_561; + block_562: Block_562; + block_563: Block_563; + block_564: Block_564; + block_565: Block_565; + block_566: Block_566; + block_567: Block_567; + block_568: Block_568; + block_569: Block_569; + block_570: Block_570; + block_571: Block_571; + block_572: Block_572; + block_573: Block_573; + block_574: Block_574; + block_575: Block_575; + block_576: Block_576; + block_577: Block_577; + block_578: Block_578; + block_579: Block_579; + block_580: Block_580; + block_581: Block_581; + block_582: Block_582; + block_583: Block_583; + block_584: Block_584; + block_585: Block_585; + block_586: Block_586; + block_587: Block_587; + block_588: Block_588; + block_589: Block_589; + block_590: Block_590; + block_591: Block_591; + block_592: Block_592; + block_593: Block_593; + block_594: Block_594; + block_595: Block_595; + block_596: Block_596; + block_597: Block_597; + block_598: Block_598; + block_599: Block_599; + }; + collections: { + posts: Post; + pages: Page; + media: Media; + users: User; + 'payload-locked-documents': PayloadLockedDocument; + 'payload-preferences': PayloadPreference; + 'payload-migrations': PayloadMigration; + }; + collectionsJoins: {}; + collectionsSelect: { + posts: PostsSelect | PostsSelect; + pages: PagesSelect | PagesSelect; + media: MediaSelect | MediaSelect; + users: UsersSelect | UsersSelect; + 'payload-locked-documents': PayloadLockedDocumentsSelect | PayloadLockedDocumentsSelect; + 'payload-preferences': PayloadPreferencesSelect | PayloadPreferencesSelect; + 'payload-migrations': PayloadMigrationsSelect | PayloadMigrationsSelect; + }; + db: { + defaultIDType: string; + }; + globals: {}; + globalsSelect: {}; + locale: null; + user: User & { + collection: 'users'; + }; + jobs: { + tasks: unknown; + workflows: unknown; + }; +} +export interface UserAuthOperations { + forgotPassword: { + email: string; + password: string; + }; + login: { + email: string; + password: string; + }; + registerFirstUser: { + email: string; + password: string; + }; + unlock: { + email: string; + password: string; + }; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_0". + */ +export interface Block_0 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_0'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_1". + */ +export interface Block_1 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_1'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_2". + */ +export interface Block_2 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_2'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_3". + */ +export interface Block_3 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_3'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_4". + */ +export interface Block_4 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_4'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_5". + */ +export interface Block_5 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_5'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_6". + */ +export interface Block_6 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_6'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_7". + */ +export interface Block_7 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_7'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_8". + */ +export interface Block_8 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_8'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_9". + */ +export interface Block_9 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_9'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_10". + */ +export interface Block_10 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_10'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_11". + */ +export interface Block_11 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_11'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_12". + */ +export interface Block_12 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_12'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_13". + */ +export interface Block_13 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_13'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_14". + */ +export interface Block_14 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_14'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_15". + */ +export interface Block_15 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_15'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_16". + */ +export interface Block_16 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_16'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_17". + */ +export interface Block_17 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_17'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_18". + */ +export interface Block_18 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_18'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_19". + */ +export interface Block_19 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_19'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_20". + */ +export interface Block_20 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_20'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_21". + */ +export interface Block_21 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_21'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_22". + */ +export interface Block_22 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_22'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_23". + */ +export interface Block_23 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_23'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_24". + */ +export interface Block_24 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_24'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_25". + */ +export interface Block_25 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_25'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_26". + */ +export interface Block_26 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_26'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_27". + */ +export interface Block_27 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_27'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_28". + */ +export interface Block_28 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_28'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_29". + */ +export interface Block_29 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_29'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_30". + */ +export interface Block_30 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_30'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_31". + */ +export interface Block_31 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_31'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_32". + */ +export interface Block_32 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_32'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_33". + */ +export interface Block_33 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_33'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_34". + */ +export interface Block_34 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_34'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_35". + */ +export interface Block_35 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_35'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_36". + */ +export interface Block_36 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_36'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_37". + */ +export interface Block_37 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_37'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_38". + */ +export interface Block_38 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_38'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_39". + */ +export interface Block_39 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_39'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_40". + */ +export interface Block_40 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_40'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_41". + */ +export interface Block_41 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_41'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_42". + */ +export interface Block_42 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_42'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_43". + */ +export interface Block_43 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_43'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_44". + */ +export interface Block_44 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_44'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_45". + */ +export interface Block_45 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_45'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_46". + */ +export interface Block_46 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_46'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_47". + */ +export interface Block_47 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_47'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_48". + */ +export interface Block_48 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_48'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_49". + */ +export interface Block_49 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_49'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_50". + */ +export interface Block_50 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_50'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_51". + */ +export interface Block_51 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_51'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_52". + */ +export interface Block_52 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_52'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_53". + */ +export interface Block_53 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_53'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_54". + */ +export interface Block_54 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_54'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_55". + */ +export interface Block_55 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_55'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_56". + */ +export interface Block_56 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_56'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_57". + */ +export interface Block_57 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_57'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_58". + */ +export interface Block_58 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_58'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_59". + */ +export interface Block_59 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_59'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_60". + */ +export interface Block_60 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_60'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_61". + */ +export interface Block_61 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_61'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_62". + */ +export interface Block_62 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_62'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_63". + */ +export interface Block_63 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_63'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_64". + */ +export interface Block_64 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_64'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_65". + */ +export interface Block_65 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_65'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_66". + */ +export interface Block_66 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_66'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_67". + */ +export interface Block_67 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_67'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_68". + */ +export interface Block_68 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_68'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_69". + */ +export interface Block_69 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_69'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_70". + */ +export interface Block_70 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_70'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_71". + */ +export interface Block_71 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_71'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_72". + */ +export interface Block_72 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_72'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_73". + */ +export interface Block_73 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_73'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_74". + */ +export interface Block_74 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_74'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_75". + */ +export interface Block_75 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_75'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_76". + */ +export interface Block_76 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_76'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_77". + */ +export interface Block_77 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_77'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_78". + */ +export interface Block_78 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_78'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_79". + */ +export interface Block_79 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_79'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_80". + */ +export interface Block_80 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_80'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_81". + */ +export interface Block_81 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_81'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_82". + */ +export interface Block_82 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_82'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_83". + */ +export interface Block_83 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_83'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_84". + */ +export interface Block_84 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_84'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_85". + */ +export interface Block_85 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_85'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_86". + */ +export interface Block_86 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_86'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_87". + */ +export interface Block_87 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_87'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_88". + */ +export interface Block_88 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_88'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_89". + */ +export interface Block_89 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_89'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_90". + */ +export interface Block_90 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_90'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_91". + */ +export interface Block_91 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_91'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_92". + */ +export interface Block_92 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_92'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_93". + */ +export interface Block_93 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_93'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_94". + */ +export interface Block_94 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_94'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_95". + */ +export interface Block_95 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_95'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_96". + */ +export interface Block_96 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_96'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_97". + */ +export interface Block_97 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_97'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_98". + */ +export interface Block_98 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_98'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_99". + */ +export interface Block_99 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_99'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_100". + */ +export interface Block_100 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_100'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_101". + */ +export interface Block_101 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_101'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_102". + */ +export interface Block_102 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_102'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_103". + */ +export interface Block_103 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_103'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_104". + */ +export interface Block_104 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_104'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_105". + */ +export interface Block_105 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_105'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_106". + */ +export interface Block_106 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_106'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_107". + */ +export interface Block_107 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_107'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_108". + */ +export interface Block_108 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_108'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_109". + */ +export interface Block_109 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_109'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_110". + */ +export interface Block_110 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_110'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_111". + */ +export interface Block_111 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_111'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_112". + */ +export interface Block_112 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_112'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_113". + */ +export interface Block_113 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_113'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_114". + */ +export interface Block_114 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_114'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_115". + */ +export interface Block_115 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_115'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_116". + */ +export interface Block_116 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_116'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_117". + */ +export interface Block_117 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_117'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_118". + */ +export interface Block_118 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_118'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_119". + */ +export interface Block_119 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_119'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_120". + */ +export interface Block_120 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_120'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_121". + */ +export interface Block_121 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_121'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_122". + */ +export interface Block_122 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_122'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_123". + */ +export interface Block_123 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_123'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_124". + */ +export interface Block_124 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_124'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_125". + */ +export interface Block_125 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_125'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_126". + */ +export interface Block_126 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_126'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_127". + */ +export interface Block_127 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_127'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_128". + */ +export interface Block_128 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_128'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_129". + */ +export interface Block_129 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_129'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_130". + */ +export interface Block_130 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_130'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_131". + */ +export interface Block_131 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_131'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_132". + */ +export interface Block_132 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_132'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_133". + */ +export interface Block_133 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_133'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_134". + */ +export interface Block_134 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_134'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_135". + */ +export interface Block_135 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_135'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_136". + */ +export interface Block_136 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_136'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_137". + */ +export interface Block_137 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_137'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_138". + */ +export interface Block_138 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_138'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_139". + */ +export interface Block_139 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_139'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_140". + */ +export interface Block_140 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_140'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_141". + */ +export interface Block_141 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_141'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_142". + */ +export interface Block_142 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_142'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_143". + */ +export interface Block_143 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_143'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_144". + */ +export interface Block_144 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_144'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_145". + */ +export interface Block_145 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_145'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_146". + */ +export interface Block_146 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_146'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_147". + */ +export interface Block_147 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_147'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_148". + */ +export interface Block_148 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_148'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_149". + */ +export interface Block_149 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_149'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_150". + */ +export interface Block_150 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_150'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_151". + */ +export interface Block_151 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_151'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_152". + */ +export interface Block_152 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_152'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_153". + */ +export interface Block_153 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_153'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_154". + */ +export interface Block_154 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_154'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_155". + */ +export interface Block_155 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_155'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_156". + */ +export interface Block_156 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_156'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_157". + */ +export interface Block_157 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_157'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_158". + */ +export interface Block_158 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_158'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_159". + */ +export interface Block_159 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_159'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_160". + */ +export interface Block_160 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_160'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_161". + */ +export interface Block_161 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_161'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_162". + */ +export interface Block_162 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_162'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_163". + */ +export interface Block_163 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_163'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_164". + */ +export interface Block_164 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_164'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_165". + */ +export interface Block_165 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_165'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_166". + */ +export interface Block_166 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_166'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_167". + */ +export interface Block_167 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_167'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_168". + */ +export interface Block_168 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_168'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_169". + */ +export interface Block_169 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_169'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_170". + */ +export interface Block_170 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_170'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_171". + */ +export interface Block_171 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_171'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_172". + */ +export interface Block_172 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_172'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_173". + */ +export interface Block_173 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_173'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_174". + */ +export interface Block_174 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_174'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_175". + */ +export interface Block_175 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_175'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_176". + */ +export interface Block_176 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_176'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_177". + */ +export interface Block_177 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_177'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_178". + */ +export interface Block_178 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_178'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_179". + */ +export interface Block_179 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_179'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_180". + */ +export interface Block_180 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_180'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_181". + */ +export interface Block_181 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_181'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_182". + */ +export interface Block_182 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_182'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_183". + */ +export interface Block_183 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_183'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_184". + */ +export interface Block_184 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_184'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_185". + */ +export interface Block_185 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_185'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_186". + */ +export interface Block_186 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_186'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_187". + */ +export interface Block_187 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_187'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_188". + */ +export interface Block_188 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_188'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_189". + */ +export interface Block_189 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_189'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_190". + */ +export interface Block_190 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_190'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_191". + */ +export interface Block_191 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_191'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_192". + */ +export interface Block_192 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_192'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_193". + */ +export interface Block_193 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_193'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_194". + */ +export interface Block_194 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_194'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_195". + */ +export interface Block_195 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_195'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_196". + */ +export interface Block_196 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_196'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_197". + */ +export interface Block_197 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_197'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_198". + */ +export interface Block_198 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_198'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_199". + */ +export interface Block_199 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_199'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_200". + */ +export interface Block_200 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_200'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_201". + */ +export interface Block_201 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_201'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_202". + */ +export interface Block_202 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_202'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_203". + */ +export interface Block_203 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_203'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_204". + */ +export interface Block_204 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_204'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_205". + */ +export interface Block_205 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_205'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_206". + */ +export interface Block_206 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_206'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_207". + */ +export interface Block_207 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_207'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_208". + */ +export interface Block_208 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_208'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_209". + */ +export interface Block_209 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_209'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_210". + */ +export interface Block_210 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_210'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_211". + */ +export interface Block_211 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_211'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_212". + */ +export interface Block_212 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_212'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_213". + */ +export interface Block_213 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_213'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_214". + */ +export interface Block_214 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_214'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_215". + */ +export interface Block_215 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_215'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_216". + */ +export interface Block_216 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_216'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_217". + */ +export interface Block_217 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_217'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_218". + */ +export interface Block_218 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_218'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_219". + */ +export interface Block_219 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_219'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_220". + */ +export interface Block_220 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_220'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_221". + */ +export interface Block_221 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_221'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_222". + */ +export interface Block_222 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_222'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_223". + */ +export interface Block_223 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_223'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_224". + */ +export interface Block_224 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_224'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_225". + */ +export interface Block_225 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_225'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_226". + */ +export interface Block_226 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_226'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_227". + */ +export interface Block_227 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_227'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_228". + */ +export interface Block_228 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_228'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_229". + */ +export interface Block_229 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_229'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_230". + */ +export interface Block_230 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_230'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_231". + */ +export interface Block_231 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_231'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_232". + */ +export interface Block_232 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_232'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_233". + */ +export interface Block_233 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_233'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_234". + */ +export interface Block_234 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_234'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_235". + */ +export interface Block_235 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_235'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_236". + */ +export interface Block_236 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_236'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_237". + */ +export interface Block_237 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_237'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_238". + */ +export interface Block_238 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_238'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_239". + */ +export interface Block_239 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_239'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_240". + */ +export interface Block_240 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_240'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_241". + */ +export interface Block_241 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_241'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_242". + */ +export interface Block_242 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_242'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_243". + */ +export interface Block_243 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_243'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_244". + */ +export interface Block_244 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_244'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_245". + */ +export interface Block_245 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_245'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_246". + */ +export interface Block_246 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_246'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_247". + */ +export interface Block_247 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_247'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_248". + */ +export interface Block_248 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_248'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_249". + */ +export interface Block_249 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_249'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_250". + */ +export interface Block_250 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_250'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_251". + */ +export interface Block_251 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_251'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_252". + */ +export interface Block_252 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_252'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_253". + */ +export interface Block_253 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_253'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_254". + */ +export interface Block_254 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_254'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_255". + */ +export interface Block_255 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_255'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_256". + */ +export interface Block_256 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_256'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_257". + */ +export interface Block_257 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_257'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_258". + */ +export interface Block_258 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_258'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_259". + */ +export interface Block_259 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_259'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_260". + */ +export interface Block_260 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_260'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_261". + */ +export interface Block_261 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_261'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_262". + */ +export interface Block_262 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_262'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_263". + */ +export interface Block_263 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_263'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_264". + */ +export interface Block_264 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_264'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_265". + */ +export interface Block_265 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_265'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_266". + */ +export interface Block_266 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_266'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_267". + */ +export interface Block_267 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_267'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_268". + */ +export interface Block_268 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_268'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_269". + */ +export interface Block_269 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_269'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_270". + */ +export interface Block_270 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_270'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_271". + */ +export interface Block_271 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_271'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_272". + */ +export interface Block_272 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_272'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_273". + */ +export interface Block_273 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_273'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_274". + */ +export interface Block_274 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_274'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_275". + */ +export interface Block_275 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_275'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_276". + */ +export interface Block_276 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_276'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_277". + */ +export interface Block_277 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_277'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_278". + */ +export interface Block_278 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_278'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_279". + */ +export interface Block_279 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_279'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_280". + */ +export interface Block_280 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_280'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_281". + */ +export interface Block_281 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_281'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_282". + */ +export interface Block_282 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_282'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_283". + */ +export interface Block_283 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_283'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_284". + */ +export interface Block_284 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_284'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_285". + */ +export interface Block_285 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_285'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_286". + */ +export interface Block_286 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_286'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_287". + */ +export interface Block_287 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_287'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_288". + */ +export interface Block_288 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_288'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_289". + */ +export interface Block_289 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_289'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_290". + */ +export interface Block_290 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_290'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_291". + */ +export interface Block_291 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_291'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_292". + */ +export interface Block_292 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_292'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_293". + */ +export interface Block_293 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_293'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_294". + */ +export interface Block_294 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_294'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_295". + */ +export interface Block_295 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_295'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_296". + */ +export interface Block_296 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_296'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_297". + */ +export interface Block_297 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_297'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_298". + */ +export interface Block_298 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_298'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_299". + */ +export interface Block_299 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_299'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_300". + */ +export interface Block_300 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_300'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_301". + */ +export interface Block_301 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_301'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_302". + */ +export interface Block_302 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_302'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_303". + */ +export interface Block_303 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_303'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_304". + */ +export interface Block_304 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_304'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_305". + */ +export interface Block_305 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_305'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_306". + */ +export interface Block_306 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_306'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_307". + */ +export interface Block_307 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_307'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_308". + */ +export interface Block_308 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_308'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_309". + */ +export interface Block_309 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_309'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_310". + */ +export interface Block_310 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_310'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_311". + */ +export interface Block_311 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_311'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_312". + */ +export interface Block_312 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_312'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_313". + */ +export interface Block_313 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_313'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_314". + */ +export interface Block_314 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_314'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_315". + */ +export interface Block_315 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_315'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_316". + */ +export interface Block_316 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_316'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_317". + */ +export interface Block_317 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_317'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_318". + */ +export interface Block_318 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_318'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_319". + */ +export interface Block_319 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_319'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_320". + */ +export interface Block_320 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_320'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_321". + */ +export interface Block_321 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_321'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_322". + */ +export interface Block_322 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_322'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_323". + */ +export interface Block_323 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_323'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_324". + */ +export interface Block_324 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_324'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_325". + */ +export interface Block_325 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_325'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_326". + */ +export interface Block_326 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_326'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_327". + */ +export interface Block_327 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_327'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_328". + */ +export interface Block_328 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_328'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_329". + */ +export interface Block_329 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_329'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_330". + */ +export interface Block_330 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_330'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_331". + */ +export interface Block_331 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_331'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_332". + */ +export interface Block_332 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_332'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_333". + */ +export interface Block_333 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_333'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_334". + */ +export interface Block_334 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_334'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_335". + */ +export interface Block_335 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_335'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_336". + */ +export interface Block_336 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_336'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_337". + */ +export interface Block_337 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_337'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_338". + */ +export interface Block_338 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_338'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_339". + */ +export interface Block_339 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_339'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_340". + */ +export interface Block_340 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_340'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_341". + */ +export interface Block_341 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_341'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_342". + */ +export interface Block_342 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_342'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_343". + */ +export interface Block_343 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_343'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_344". + */ +export interface Block_344 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_344'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_345". + */ +export interface Block_345 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_345'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_346". + */ +export interface Block_346 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_346'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_347". + */ +export interface Block_347 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_347'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_348". + */ +export interface Block_348 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_348'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_349". + */ +export interface Block_349 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_349'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_350". + */ +export interface Block_350 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_350'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_351". + */ +export interface Block_351 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_351'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_352". + */ +export interface Block_352 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_352'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_353". + */ +export interface Block_353 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_353'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_354". + */ +export interface Block_354 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_354'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_355". + */ +export interface Block_355 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_355'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_356". + */ +export interface Block_356 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_356'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_357". + */ +export interface Block_357 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_357'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_358". + */ +export interface Block_358 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_358'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_359". + */ +export interface Block_359 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_359'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_360". + */ +export interface Block_360 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_360'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_361". + */ +export interface Block_361 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_361'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_362". + */ +export interface Block_362 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_362'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_363". + */ +export interface Block_363 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_363'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_364". + */ +export interface Block_364 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_364'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_365". + */ +export interface Block_365 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_365'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_366". + */ +export interface Block_366 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_366'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_367". + */ +export interface Block_367 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_367'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_368". + */ +export interface Block_368 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_368'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_369". + */ +export interface Block_369 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_369'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_370". + */ +export interface Block_370 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_370'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_371". + */ +export interface Block_371 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_371'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_372". + */ +export interface Block_372 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_372'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_373". + */ +export interface Block_373 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_373'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_374". + */ +export interface Block_374 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_374'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_375". + */ +export interface Block_375 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_375'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_376". + */ +export interface Block_376 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_376'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_377". + */ +export interface Block_377 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_377'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_378". + */ +export interface Block_378 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_378'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_379". + */ +export interface Block_379 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_379'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_380". + */ +export interface Block_380 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_380'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_381". + */ +export interface Block_381 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_381'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_382". + */ +export interface Block_382 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_382'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_383". + */ +export interface Block_383 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_383'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_384". + */ +export interface Block_384 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_384'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_385". + */ +export interface Block_385 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_385'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_386". + */ +export interface Block_386 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_386'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_387". + */ +export interface Block_387 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_387'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_388". + */ +export interface Block_388 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_388'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_389". + */ +export interface Block_389 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_389'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_390". + */ +export interface Block_390 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_390'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_391". + */ +export interface Block_391 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_391'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_392". + */ +export interface Block_392 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_392'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_393". + */ +export interface Block_393 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_393'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_394". + */ +export interface Block_394 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_394'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_395". + */ +export interface Block_395 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_395'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_396". + */ +export interface Block_396 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_396'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_397". + */ +export interface Block_397 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_397'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_398". + */ +export interface Block_398 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_398'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_399". + */ +export interface Block_399 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_399'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_400". + */ +export interface Block_400 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_400'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_401". + */ +export interface Block_401 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_401'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_402". + */ +export interface Block_402 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_402'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_403". + */ +export interface Block_403 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_403'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_404". + */ +export interface Block_404 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_404'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_405". + */ +export interface Block_405 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_405'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_406". + */ +export interface Block_406 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_406'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_407". + */ +export interface Block_407 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_407'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_408". + */ +export interface Block_408 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_408'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_409". + */ +export interface Block_409 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_409'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_410". + */ +export interface Block_410 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_410'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_411". + */ +export interface Block_411 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_411'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_412". + */ +export interface Block_412 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_412'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_413". + */ +export interface Block_413 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_413'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_414". + */ +export interface Block_414 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_414'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_415". + */ +export interface Block_415 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_415'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_416". + */ +export interface Block_416 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_416'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_417". + */ +export interface Block_417 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_417'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_418". + */ +export interface Block_418 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_418'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_419". + */ +export interface Block_419 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_419'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_420". + */ +export interface Block_420 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_420'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_421". + */ +export interface Block_421 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_421'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_422". + */ +export interface Block_422 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_422'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_423". + */ +export interface Block_423 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_423'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_424". + */ +export interface Block_424 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_424'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_425". + */ +export interface Block_425 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_425'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_426". + */ +export interface Block_426 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_426'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_427". + */ +export interface Block_427 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_427'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_428". + */ +export interface Block_428 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_428'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_429". + */ +export interface Block_429 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_429'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_430". + */ +export interface Block_430 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_430'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_431". + */ +export interface Block_431 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_431'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_432". + */ +export interface Block_432 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_432'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_433". + */ +export interface Block_433 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_433'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_434". + */ +export interface Block_434 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_434'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_435". + */ +export interface Block_435 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_435'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_436". + */ +export interface Block_436 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_436'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_437". + */ +export interface Block_437 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_437'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_438". + */ +export interface Block_438 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_438'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_439". + */ +export interface Block_439 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_439'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_440". + */ +export interface Block_440 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_440'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_441". + */ +export interface Block_441 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_441'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_442". + */ +export interface Block_442 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_442'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_443". + */ +export interface Block_443 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_443'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_444". + */ +export interface Block_444 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_444'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_445". + */ +export interface Block_445 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_445'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_446". + */ +export interface Block_446 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_446'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_447". + */ +export interface Block_447 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_447'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_448". + */ +export interface Block_448 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_448'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_449". + */ +export interface Block_449 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_449'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_450". + */ +export interface Block_450 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_450'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_451". + */ +export interface Block_451 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_451'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_452". + */ +export interface Block_452 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_452'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_453". + */ +export interface Block_453 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_453'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_454". + */ +export interface Block_454 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_454'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_455". + */ +export interface Block_455 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_455'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_456". + */ +export interface Block_456 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_456'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_457". + */ +export interface Block_457 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_457'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_458". + */ +export interface Block_458 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_458'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_459". + */ +export interface Block_459 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_459'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_460". + */ +export interface Block_460 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_460'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_461". + */ +export interface Block_461 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_461'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_462". + */ +export interface Block_462 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_462'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_463". + */ +export interface Block_463 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_463'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_464". + */ +export interface Block_464 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_464'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_465". + */ +export interface Block_465 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_465'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_466". + */ +export interface Block_466 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_466'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_467". + */ +export interface Block_467 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_467'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_468". + */ +export interface Block_468 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_468'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_469". + */ +export interface Block_469 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_469'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_470". + */ +export interface Block_470 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_470'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_471". + */ +export interface Block_471 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_471'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_472". + */ +export interface Block_472 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_472'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_473". + */ +export interface Block_473 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_473'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_474". + */ +export interface Block_474 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_474'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_475". + */ +export interface Block_475 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_475'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_476". + */ +export interface Block_476 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_476'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_477". + */ +export interface Block_477 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_477'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_478". + */ +export interface Block_478 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_478'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_479". + */ +export interface Block_479 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_479'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_480". + */ +export interface Block_480 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_480'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_481". + */ +export interface Block_481 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_481'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_482". + */ +export interface Block_482 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_482'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_483". + */ +export interface Block_483 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_483'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_484". + */ +export interface Block_484 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_484'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_485". + */ +export interface Block_485 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_485'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_486". + */ +export interface Block_486 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_486'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_487". + */ +export interface Block_487 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_487'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_488". + */ +export interface Block_488 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_488'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_489". + */ +export interface Block_489 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_489'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_490". + */ +export interface Block_490 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_490'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_491". + */ +export interface Block_491 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_491'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_492". + */ +export interface Block_492 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_492'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_493". + */ +export interface Block_493 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_493'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_494". + */ +export interface Block_494 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_494'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_495". + */ +export interface Block_495 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_495'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_496". + */ +export interface Block_496 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_496'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_497". + */ +export interface Block_497 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_497'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_498". + */ +export interface Block_498 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_498'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_499". + */ +export interface Block_499 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_499'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_500". + */ +export interface Block_500 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_500'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_501". + */ +export interface Block_501 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_501'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_502". + */ +export interface Block_502 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_502'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_503". + */ +export interface Block_503 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_503'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_504". + */ +export interface Block_504 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_504'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_505". + */ +export interface Block_505 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_505'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_506". + */ +export interface Block_506 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_506'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_507". + */ +export interface Block_507 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_507'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_508". + */ +export interface Block_508 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_508'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_509". + */ +export interface Block_509 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_509'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_510". + */ +export interface Block_510 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_510'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_511". + */ +export interface Block_511 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_511'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_512". + */ +export interface Block_512 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_512'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_513". + */ +export interface Block_513 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_513'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_514". + */ +export interface Block_514 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_514'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_515". + */ +export interface Block_515 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_515'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_516". + */ +export interface Block_516 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_516'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_517". + */ +export interface Block_517 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_517'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_518". + */ +export interface Block_518 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_518'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_519". + */ +export interface Block_519 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_519'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_520". + */ +export interface Block_520 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_520'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_521". + */ +export interface Block_521 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_521'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_522". + */ +export interface Block_522 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_522'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_523". + */ +export interface Block_523 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_523'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_524". + */ +export interface Block_524 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_524'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_525". + */ +export interface Block_525 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_525'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_526". + */ +export interface Block_526 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_526'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_527". + */ +export interface Block_527 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_527'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_528". + */ +export interface Block_528 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_528'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_529". + */ +export interface Block_529 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_529'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_530". + */ +export interface Block_530 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_530'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_531". + */ +export interface Block_531 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_531'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_532". + */ +export interface Block_532 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_532'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_533". + */ +export interface Block_533 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_533'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_534". + */ +export interface Block_534 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_534'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_535". + */ +export interface Block_535 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_535'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_536". + */ +export interface Block_536 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_536'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_537". + */ +export interface Block_537 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_537'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_538". + */ +export interface Block_538 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_538'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_539". + */ +export interface Block_539 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_539'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_540". + */ +export interface Block_540 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_540'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_541". + */ +export interface Block_541 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_541'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_542". + */ +export interface Block_542 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_542'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_543". + */ +export interface Block_543 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_543'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_544". + */ +export interface Block_544 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_544'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_545". + */ +export interface Block_545 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_545'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_546". + */ +export interface Block_546 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_546'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_547". + */ +export interface Block_547 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_547'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_548". + */ +export interface Block_548 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_548'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_549". + */ +export interface Block_549 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_549'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_550". + */ +export interface Block_550 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_550'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_551". + */ +export interface Block_551 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_551'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_552". + */ +export interface Block_552 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_552'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_553". + */ +export interface Block_553 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_553'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_554". + */ +export interface Block_554 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_554'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_555". + */ +export interface Block_555 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_555'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_556". + */ +export interface Block_556 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_556'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_557". + */ +export interface Block_557 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_557'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_558". + */ +export interface Block_558 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_558'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_559". + */ +export interface Block_559 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_559'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_560". + */ +export interface Block_560 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_560'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_561". + */ +export interface Block_561 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_561'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_562". + */ +export interface Block_562 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_562'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_563". + */ +export interface Block_563 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_563'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_564". + */ +export interface Block_564 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_564'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_565". + */ +export interface Block_565 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_565'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_566". + */ +export interface Block_566 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_566'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_567". + */ +export interface Block_567 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_567'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_568". + */ +export interface Block_568 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_568'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_569". + */ +export interface Block_569 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_569'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_570". + */ +export interface Block_570 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_570'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_571". + */ +export interface Block_571 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_571'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_572". + */ +export interface Block_572 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_572'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_573". + */ +export interface Block_573 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_573'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_574". + */ +export interface Block_574 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_574'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_575". + */ +export interface Block_575 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_575'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_576". + */ +export interface Block_576 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_576'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_577". + */ +export interface Block_577 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_577'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_578". + */ +export interface Block_578 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_578'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_579". + */ +export interface Block_579 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_579'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_580". + */ +export interface Block_580 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_580'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_581". + */ +export interface Block_581 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_581'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_582". + */ +export interface Block_582 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_582'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_583". + */ +export interface Block_583 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_583'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_584". + */ +export interface Block_584 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_584'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_585". + */ +export interface Block_585 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_585'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_586". + */ +export interface Block_586 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_586'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_587". + */ +export interface Block_587 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_587'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_588". + */ +export interface Block_588 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_588'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_589". + */ +export interface Block_589 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_589'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_590". + */ +export interface Block_590 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_590'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_591". + */ +export interface Block_591 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_591'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_592". + */ +export interface Block_592 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_592'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_593". + */ +export interface Block_593 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_593'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_594". + */ +export interface Block_594 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_594'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_595". + */ +export interface Block_595 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_595'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_596". + */ +export interface Block_596 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_596'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_597". + */ +export interface Block_597 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_597'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_598". + */ +export interface Block_598 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_598'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block_599". + */ +export interface Block_599 { + field1?: string | null; + field2?: string | null; + field3?: string | null; + field4?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'block_599'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "posts". + */ +export interface Post { + id: string; + title?: string | null; + content?: { + root: { + type: string; + children: { + type: string; + version: number; + [k: string]: unknown; + }[]; + direction: ('ltr' | 'rtl') | null; + format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; + indent: number; + version: number; + }; + [k: string]: unknown; + } | null; + updatedAt: string; + createdAt: string; + _status?: ('draft' | 'published') | null; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "pages". + */ +export interface Page { + id: string; + blocksfield_0?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_1?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_2?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_3?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_4?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_5?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_6?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_7?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_8?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_9?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_10?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_11?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_12?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_13?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_14?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_15?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_16?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_17?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_18?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_19?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_20?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_21?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_22?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_23?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_24?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_25?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_26?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_27?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_28?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_29?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_30?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_31?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_32?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_33?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_34?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_35?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_36?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_37?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_38?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_39?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_40?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_41?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_42?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_43?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_44?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_45?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_46?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_47?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_48?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_49?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_50?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_51?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_52?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_53?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_54?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_55?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_56?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_57?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_58?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_59?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_60?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_61?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_62?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_63?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_64?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_65?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_66?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_67?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_68?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_69?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_70?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_71?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_72?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_73?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_74?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_75?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_76?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_77?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_78?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_79?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_80?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_81?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_82?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_83?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_84?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_85?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_86?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_87?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_88?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_89?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_90?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_91?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_92?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_93?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_94?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_95?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_96?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_97?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_98?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_99?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_100?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_101?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_102?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_103?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_104?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_105?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_106?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_107?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_108?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_109?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_110?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_111?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_112?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_113?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_114?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_115?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_116?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_117?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_118?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_119?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_120?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_121?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_122?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_123?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_124?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_125?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_126?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_127?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_128?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_129?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_130?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_131?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_132?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_133?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_134?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_135?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_136?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_137?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_138?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_139?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_140?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_141?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_142?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_143?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_144?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_145?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_146?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_147?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_148?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_149?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_150?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_151?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_152?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_153?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_154?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_155?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_156?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_157?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_158?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_159?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_160?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_161?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_162?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_163?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_164?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_165?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_166?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_167?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_168?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_169?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_170?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_171?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_172?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_173?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_174?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_175?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_176?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_177?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_178?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_179?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_180?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_181?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_182?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_183?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_184?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_185?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_186?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_187?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_188?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_189?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_190?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_191?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_192?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_193?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_194?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_195?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_196?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_197?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_198?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_199?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_200?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_201?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_202?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_203?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_204?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_205?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_206?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_207?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_208?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_209?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_210?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_211?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_212?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_213?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_214?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_215?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_216?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_217?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_218?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_219?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_220?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_221?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_222?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_223?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_224?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_225?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_226?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_227?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_228?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_229?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_230?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_231?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_232?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_233?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_234?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_235?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_236?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_237?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_238?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_239?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_240?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_241?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_242?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_243?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_244?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_245?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_246?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_247?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_248?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_249?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_250?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_251?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_252?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_253?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_254?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_255?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_256?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_257?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_258?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_259?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_260?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_261?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_262?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_263?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_264?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_265?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_266?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_267?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_268?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_269?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_270?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_271?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_272?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_273?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_274?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_275?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_276?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_277?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_278?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_279?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_280?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_281?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_282?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_283?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_284?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_285?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_286?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_287?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_288?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_289?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_290?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_291?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_292?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_293?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_294?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_295?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_296?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_297?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_298?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_299?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_300?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_301?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_302?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_303?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_304?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_305?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_306?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_307?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_308?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_309?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_310?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_311?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_312?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_313?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_314?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_315?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_316?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_317?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_318?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_319?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_320?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_321?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_322?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_323?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_324?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_325?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_326?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_327?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_328?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_329?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_330?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_331?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_332?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_333?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_334?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_335?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_336?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_337?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_338?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_339?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_340?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_341?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_342?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_343?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_344?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_345?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_346?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_347?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_348?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_349?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_350?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_351?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_352?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_353?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_354?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_355?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_356?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_357?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_358?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_359?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_360?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_361?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_362?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_363?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_364?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_365?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_366?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_367?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_368?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_369?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_370?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_371?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_372?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_373?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_374?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_375?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_376?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_377?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_378?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_379?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_380?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_381?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_382?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_383?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_384?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_385?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_386?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_387?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_388?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_389?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_390?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_391?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_392?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_393?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_394?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_395?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_396?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_397?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_398?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_399?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_400?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_401?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_402?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_403?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_404?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_405?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_406?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_407?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_408?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_409?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_410?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_411?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_412?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_413?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_414?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_415?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_416?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_417?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_418?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_419?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_420?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_421?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_422?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_423?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_424?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_425?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_426?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_427?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_428?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_429?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_430?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_431?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_432?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_433?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_434?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_435?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_436?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_437?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_438?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_439?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_440?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_441?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_442?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_443?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_444?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_445?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_446?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_447?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_448?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_449?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_450?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_451?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_452?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_453?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_454?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_455?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_456?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_457?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_458?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_459?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_460?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_461?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_462?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_463?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_464?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_465?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_466?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_467?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_468?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_469?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_470?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_471?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_472?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_473?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_474?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_475?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_476?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_477?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_478?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_479?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_480?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_481?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_482?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_483?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_484?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_485?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_486?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_487?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_488?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_489?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_490?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_491?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_492?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_493?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_494?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_495?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_496?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_497?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_498?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_499?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_500?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_501?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_502?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_503?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_504?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_505?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_506?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_507?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_508?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_509?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_510?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_511?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_512?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_513?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_514?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_515?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_516?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_517?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_518?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_519?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_520?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_521?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_522?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_523?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_524?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_525?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_526?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_527?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_528?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_529?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_530?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_531?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_532?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_533?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_534?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_535?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_536?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_537?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_538?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_539?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_540?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_541?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_542?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_543?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_544?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_545?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_546?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_547?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_548?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_549?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_550?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_551?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_552?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_553?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_554?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_555?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_556?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_557?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_558?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_559?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_560?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_561?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_562?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_563?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_564?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_565?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_566?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_567?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_568?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_569?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_570?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_571?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_572?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_573?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_574?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_575?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_576?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_577?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_578?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_579?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_580?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_581?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_582?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_583?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_584?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_585?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_586?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_587?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_588?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_589?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_590?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_591?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_592?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_593?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_594?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_595?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_596?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_597?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_598?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + blocksfield_599?: + | ( + | Block_0 + | Block_1 + | Block_2 + | Block_3 + | Block_4 + | Block_5 + | Block_6 + | Block_7 + | Block_8 + | Block_9 + | Block_10 + | Block_11 + | Block_12 + | Block_13 + | Block_14 + | Block_15 + | Block_16 + | Block_17 + | Block_18 + | Block_19 + | Block_20 + | Block_21 + | Block_22 + | Block_23 + | Block_24 + | Block_25 + | Block_26 + | Block_27 + | Block_28 + | Block_29 + | Block_30 + | Block_31 + | Block_32 + | Block_33 + | Block_34 + | Block_35 + | Block_36 + | Block_37 + | Block_38 + | Block_39 + )[] + | null; + updatedAt: string; + createdAt: string; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "media". + */ +export interface Media { + id: string; + updatedAt: string; + createdAt: string; + url?: string | null; + thumbnailURL?: string | null; + filename?: string | null; + mimeType?: string | null; + filesize?: number | null; + width?: number | null; + height?: number | null; + focalX?: number | null; + focalY?: number | null; + sizes?: { + thumbnail?: { + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; + }; + medium?: { + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; + }; + large?: { + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; + }; + }; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "users". + */ +export interface User { + id: string; + updatedAt: string; + createdAt: string; + email: string; + resetPasswordToken?: string | null; + resetPasswordExpiration?: string | null; + salt?: string | null; + hash?: string | null; + loginAttempts?: number | null; + lockUntil?: string | null; + password?: string | null; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-locked-documents". + */ +export interface PayloadLockedDocument { + id: string; + document?: + | ({ + relationTo: 'posts'; + value: string | Post; + } | null) + | ({ + relationTo: 'pages'; + value: string | Page; + } | null) + | ({ + relationTo: 'media'; + value: string | Media; + } | null) + | ({ + relationTo: 'users'; + value: string | User; + } | null); + globalSlug?: string | null; + user: { + relationTo: 'users'; + value: string | User; + }; + updatedAt: string; + createdAt: string; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-preferences". + */ +export interface PayloadPreference { + id: string; + user: { + relationTo: 'users'; + value: string | User; + }; + key?: string | null; + value?: + | { + [k: string]: unknown; + } + | unknown[] + | string + | number + | boolean + | null; + updatedAt: string; + createdAt: string; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-migrations". + */ +export interface PayloadMigration { + id: string; + name?: string | null; + batch?: number | null; + updatedAt: string; + createdAt: string; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "posts_select". + */ +export interface PostsSelect { + title?: T; + content?: T; + updatedAt?: T; + createdAt?: T; + _status?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "pages_select". + */ +export interface PagesSelect { + blocksfield_0?: T | {}; + blocksfield_1?: T | {}; + blocksfield_2?: T | {}; + blocksfield_3?: T | {}; + blocksfield_4?: T | {}; + blocksfield_5?: T | {}; + blocksfield_6?: T | {}; + blocksfield_7?: T | {}; + blocksfield_8?: T | {}; + blocksfield_9?: T | {}; + blocksfield_10?: T | {}; + blocksfield_11?: T | {}; + blocksfield_12?: T | {}; + blocksfield_13?: T | {}; + blocksfield_14?: T | {}; + blocksfield_15?: T | {}; + blocksfield_16?: T | {}; + blocksfield_17?: T | {}; + blocksfield_18?: T | {}; + blocksfield_19?: T | {}; + blocksfield_20?: T | {}; + blocksfield_21?: T | {}; + blocksfield_22?: T | {}; + blocksfield_23?: T | {}; + blocksfield_24?: T | {}; + blocksfield_25?: T | {}; + blocksfield_26?: T | {}; + blocksfield_27?: T | {}; + blocksfield_28?: T | {}; + blocksfield_29?: T | {}; + blocksfield_30?: T | {}; + blocksfield_31?: T | {}; + blocksfield_32?: T | {}; + blocksfield_33?: T | {}; + blocksfield_34?: T | {}; + blocksfield_35?: T | {}; + blocksfield_36?: T | {}; + blocksfield_37?: T | {}; + blocksfield_38?: T | {}; + blocksfield_39?: T | {}; + blocksfield_40?: T | {}; + blocksfield_41?: T | {}; + blocksfield_42?: T | {}; + blocksfield_43?: T | {}; + blocksfield_44?: T | {}; + blocksfield_45?: T | {}; + blocksfield_46?: T | {}; + blocksfield_47?: T | {}; + blocksfield_48?: T | {}; + blocksfield_49?: T | {}; + blocksfield_50?: T | {}; + blocksfield_51?: T | {}; + blocksfield_52?: T | {}; + blocksfield_53?: T | {}; + blocksfield_54?: T | {}; + blocksfield_55?: T | {}; + blocksfield_56?: T | {}; + blocksfield_57?: T | {}; + blocksfield_58?: T | {}; + blocksfield_59?: T | {}; + blocksfield_60?: T | {}; + blocksfield_61?: T | {}; + blocksfield_62?: T | {}; + blocksfield_63?: T | {}; + blocksfield_64?: T | {}; + blocksfield_65?: T | {}; + blocksfield_66?: T | {}; + blocksfield_67?: T | {}; + blocksfield_68?: T | {}; + blocksfield_69?: T | {}; + blocksfield_70?: T | {}; + blocksfield_71?: T | {}; + blocksfield_72?: T | {}; + blocksfield_73?: T | {}; + blocksfield_74?: T | {}; + blocksfield_75?: T | {}; + blocksfield_76?: T | {}; + blocksfield_77?: T | {}; + blocksfield_78?: T | {}; + blocksfield_79?: T | {}; + blocksfield_80?: T | {}; + blocksfield_81?: T | {}; + blocksfield_82?: T | {}; + blocksfield_83?: T | {}; + blocksfield_84?: T | {}; + blocksfield_85?: T | {}; + blocksfield_86?: T | {}; + blocksfield_87?: T | {}; + blocksfield_88?: T | {}; + blocksfield_89?: T | {}; + blocksfield_90?: T | {}; + blocksfield_91?: T | {}; + blocksfield_92?: T | {}; + blocksfield_93?: T | {}; + blocksfield_94?: T | {}; + blocksfield_95?: T | {}; + blocksfield_96?: T | {}; + blocksfield_97?: T | {}; + blocksfield_98?: T | {}; + blocksfield_99?: T | {}; + blocksfield_100?: T | {}; + blocksfield_101?: T | {}; + blocksfield_102?: T | {}; + blocksfield_103?: T | {}; + blocksfield_104?: T | {}; + blocksfield_105?: T | {}; + blocksfield_106?: T | {}; + blocksfield_107?: T | {}; + blocksfield_108?: T | {}; + blocksfield_109?: T | {}; + blocksfield_110?: T | {}; + blocksfield_111?: T | {}; + blocksfield_112?: T | {}; + blocksfield_113?: T | {}; + blocksfield_114?: T | {}; + blocksfield_115?: T | {}; + blocksfield_116?: T | {}; + blocksfield_117?: T | {}; + blocksfield_118?: T | {}; + blocksfield_119?: T | {}; + blocksfield_120?: T | {}; + blocksfield_121?: T | {}; + blocksfield_122?: T | {}; + blocksfield_123?: T | {}; + blocksfield_124?: T | {}; + blocksfield_125?: T | {}; + blocksfield_126?: T | {}; + blocksfield_127?: T | {}; + blocksfield_128?: T | {}; + blocksfield_129?: T | {}; + blocksfield_130?: T | {}; + blocksfield_131?: T | {}; + blocksfield_132?: T | {}; + blocksfield_133?: T | {}; + blocksfield_134?: T | {}; + blocksfield_135?: T | {}; + blocksfield_136?: T | {}; + blocksfield_137?: T | {}; + blocksfield_138?: T | {}; + blocksfield_139?: T | {}; + blocksfield_140?: T | {}; + blocksfield_141?: T | {}; + blocksfield_142?: T | {}; + blocksfield_143?: T | {}; + blocksfield_144?: T | {}; + blocksfield_145?: T | {}; + blocksfield_146?: T | {}; + blocksfield_147?: T | {}; + blocksfield_148?: T | {}; + blocksfield_149?: T | {}; + blocksfield_150?: T | {}; + blocksfield_151?: T | {}; + blocksfield_152?: T | {}; + blocksfield_153?: T | {}; + blocksfield_154?: T | {}; + blocksfield_155?: T | {}; + blocksfield_156?: T | {}; + blocksfield_157?: T | {}; + blocksfield_158?: T | {}; + blocksfield_159?: T | {}; + blocksfield_160?: T | {}; + blocksfield_161?: T | {}; + blocksfield_162?: T | {}; + blocksfield_163?: T | {}; + blocksfield_164?: T | {}; + blocksfield_165?: T | {}; + blocksfield_166?: T | {}; + blocksfield_167?: T | {}; + blocksfield_168?: T | {}; + blocksfield_169?: T | {}; + blocksfield_170?: T | {}; + blocksfield_171?: T | {}; + blocksfield_172?: T | {}; + blocksfield_173?: T | {}; + blocksfield_174?: T | {}; + blocksfield_175?: T | {}; + blocksfield_176?: T | {}; + blocksfield_177?: T | {}; + blocksfield_178?: T | {}; + blocksfield_179?: T | {}; + blocksfield_180?: T | {}; + blocksfield_181?: T | {}; + blocksfield_182?: T | {}; + blocksfield_183?: T | {}; + blocksfield_184?: T | {}; + blocksfield_185?: T | {}; + blocksfield_186?: T | {}; + blocksfield_187?: T | {}; + blocksfield_188?: T | {}; + blocksfield_189?: T | {}; + blocksfield_190?: T | {}; + blocksfield_191?: T | {}; + blocksfield_192?: T | {}; + blocksfield_193?: T | {}; + blocksfield_194?: T | {}; + blocksfield_195?: T | {}; + blocksfield_196?: T | {}; + blocksfield_197?: T | {}; + blocksfield_198?: T | {}; + blocksfield_199?: T | {}; + blocksfield_200?: T | {}; + blocksfield_201?: T | {}; + blocksfield_202?: T | {}; + blocksfield_203?: T | {}; + blocksfield_204?: T | {}; + blocksfield_205?: T | {}; + blocksfield_206?: T | {}; + blocksfield_207?: T | {}; + blocksfield_208?: T | {}; + blocksfield_209?: T | {}; + blocksfield_210?: T | {}; + blocksfield_211?: T | {}; + blocksfield_212?: T | {}; + blocksfield_213?: T | {}; + blocksfield_214?: T | {}; + blocksfield_215?: T | {}; + blocksfield_216?: T | {}; + blocksfield_217?: T | {}; + blocksfield_218?: T | {}; + blocksfield_219?: T | {}; + blocksfield_220?: T | {}; + blocksfield_221?: T | {}; + blocksfield_222?: T | {}; + blocksfield_223?: T | {}; + blocksfield_224?: T | {}; + blocksfield_225?: T | {}; + blocksfield_226?: T | {}; + blocksfield_227?: T | {}; + blocksfield_228?: T | {}; + blocksfield_229?: T | {}; + blocksfield_230?: T | {}; + blocksfield_231?: T | {}; + blocksfield_232?: T | {}; + blocksfield_233?: T | {}; + blocksfield_234?: T | {}; + blocksfield_235?: T | {}; + blocksfield_236?: T | {}; + blocksfield_237?: T | {}; + blocksfield_238?: T | {}; + blocksfield_239?: T | {}; + blocksfield_240?: T | {}; + blocksfield_241?: T | {}; + blocksfield_242?: T | {}; + blocksfield_243?: T | {}; + blocksfield_244?: T | {}; + blocksfield_245?: T | {}; + blocksfield_246?: T | {}; + blocksfield_247?: T | {}; + blocksfield_248?: T | {}; + blocksfield_249?: T | {}; + blocksfield_250?: T | {}; + blocksfield_251?: T | {}; + blocksfield_252?: T | {}; + blocksfield_253?: T | {}; + blocksfield_254?: T | {}; + blocksfield_255?: T | {}; + blocksfield_256?: T | {}; + blocksfield_257?: T | {}; + blocksfield_258?: T | {}; + blocksfield_259?: T | {}; + blocksfield_260?: T | {}; + blocksfield_261?: T | {}; + blocksfield_262?: T | {}; + blocksfield_263?: T | {}; + blocksfield_264?: T | {}; + blocksfield_265?: T | {}; + blocksfield_266?: T | {}; + blocksfield_267?: T | {}; + blocksfield_268?: T | {}; + blocksfield_269?: T | {}; + blocksfield_270?: T | {}; + blocksfield_271?: T | {}; + blocksfield_272?: T | {}; + blocksfield_273?: T | {}; + blocksfield_274?: T | {}; + blocksfield_275?: T | {}; + blocksfield_276?: T | {}; + blocksfield_277?: T | {}; + blocksfield_278?: T | {}; + blocksfield_279?: T | {}; + blocksfield_280?: T | {}; + blocksfield_281?: T | {}; + blocksfield_282?: T | {}; + blocksfield_283?: T | {}; + blocksfield_284?: T | {}; + blocksfield_285?: T | {}; + blocksfield_286?: T | {}; + blocksfield_287?: T | {}; + blocksfield_288?: T | {}; + blocksfield_289?: T | {}; + blocksfield_290?: T | {}; + blocksfield_291?: T | {}; + blocksfield_292?: T | {}; + blocksfield_293?: T | {}; + blocksfield_294?: T | {}; + blocksfield_295?: T | {}; + blocksfield_296?: T | {}; + blocksfield_297?: T | {}; + blocksfield_298?: T | {}; + blocksfield_299?: T | {}; + blocksfield_300?: T | {}; + blocksfield_301?: T | {}; + blocksfield_302?: T | {}; + blocksfield_303?: T | {}; + blocksfield_304?: T | {}; + blocksfield_305?: T | {}; + blocksfield_306?: T | {}; + blocksfield_307?: T | {}; + blocksfield_308?: T | {}; + blocksfield_309?: T | {}; + blocksfield_310?: T | {}; + blocksfield_311?: T | {}; + blocksfield_312?: T | {}; + blocksfield_313?: T | {}; + blocksfield_314?: T | {}; + blocksfield_315?: T | {}; + blocksfield_316?: T | {}; + blocksfield_317?: T | {}; + blocksfield_318?: T | {}; + blocksfield_319?: T | {}; + blocksfield_320?: T | {}; + blocksfield_321?: T | {}; + blocksfield_322?: T | {}; + blocksfield_323?: T | {}; + blocksfield_324?: T | {}; + blocksfield_325?: T | {}; + blocksfield_326?: T | {}; + blocksfield_327?: T | {}; + blocksfield_328?: T | {}; + blocksfield_329?: T | {}; + blocksfield_330?: T | {}; + blocksfield_331?: T | {}; + blocksfield_332?: T | {}; + blocksfield_333?: T | {}; + blocksfield_334?: T | {}; + blocksfield_335?: T | {}; + blocksfield_336?: T | {}; + blocksfield_337?: T | {}; + blocksfield_338?: T | {}; + blocksfield_339?: T | {}; + blocksfield_340?: T | {}; + blocksfield_341?: T | {}; + blocksfield_342?: T | {}; + blocksfield_343?: T | {}; + blocksfield_344?: T | {}; + blocksfield_345?: T | {}; + blocksfield_346?: T | {}; + blocksfield_347?: T | {}; + blocksfield_348?: T | {}; + blocksfield_349?: T | {}; + blocksfield_350?: T | {}; + blocksfield_351?: T | {}; + blocksfield_352?: T | {}; + blocksfield_353?: T | {}; + blocksfield_354?: T | {}; + blocksfield_355?: T | {}; + blocksfield_356?: T | {}; + blocksfield_357?: T | {}; + blocksfield_358?: T | {}; + blocksfield_359?: T | {}; + blocksfield_360?: T | {}; + blocksfield_361?: T | {}; + blocksfield_362?: T | {}; + blocksfield_363?: T | {}; + blocksfield_364?: T | {}; + blocksfield_365?: T | {}; + blocksfield_366?: T | {}; + blocksfield_367?: T | {}; + blocksfield_368?: T | {}; + blocksfield_369?: T | {}; + blocksfield_370?: T | {}; + blocksfield_371?: T | {}; + blocksfield_372?: T | {}; + blocksfield_373?: T | {}; + blocksfield_374?: T | {}; + blocksfield_375?: T | {}; + blocksfield_376?: T | {}; + blocksfield_377?: T | {}; + blocksfield_378?: T | {}; + blocksfield_379?: T | {}; + blocksfield_380?: T | {}; + blocksfield_381?: T | {}; + blocksfield_382?: T | {}; + blocksfield_383?: T | {}; + blocksfield_384?: T | {}; + blocksfield_385?: T | {}; + blocksfield_386?: T | {}; + blocksfield_387?: T | {}; + blocksfield_388?: T | {}; + blocksfield_389?: T | {}; + blocksfield_390?: T | {}; + blocksfield_391?: T | {}; + blocksfield_392?: T | {}; + blocksfield_393?: T | {}; + blocksfield_394?: T | {}; + blocksfield_395?: T | {}; + blocksfield_396?: T | {}; + blocksfield_397?: T | {}; + blocksfield_398?: T | {}; + blocksfield_399?: T | {}; + blocksfield_400?: T | {}; + blocksfield_401?: T | {}; + blocksfield_402?: T | {}; + blocksfield_403?: T | {}; + blocksfield_404?: T | {}; + blocksfield_405?: T | {}; + blocksfield_406?: T | {}; + blocksfield_407?: T | {}; + blocksfield_408?: T | {}; + blocksfield_409?: T | {}; + blocksfield_410?: T | {}; + blocksfield_411?: T | {}; + blocksfield_412?: T | {}; + blocksfield_413?: T | {}; + blocksfield_414?: T | {}; + blocksfield_415?: T | {}; + blocksfield_416?: T | {}; + blocksfield_417?: T | {}; + blocksfield_418?: T | {}; + blocksfield_419?: T | {}; + blocksfield_420?: T | {}; + blocksfield_421?: T | {}; + blocksfield_422?: T | {}; + blocksfield_423?: T | {}; + blocksfield_424?: T | {}; + blocksfield_425?: T | {}; + blocksfield_426?: T | {}; + blocksfield_427?: T | {}; + blocksfield_428?: T | {}; + blocksfield_429?: T | {}; + blocksfield_430?: T | {}; + blocksfield_431?: T | {}; + blocksfield_432?: T | {}; + blocksfield_433?: T | {}; + blocksfield_434?: T | {}; + blocksfield_435?: T | {}; + blocksfield_436?: T | {}; + blocksfield_437?: T | {}; + blocksfield_438?: T | {}; + blocksfield_439?: T | {}; + blocksfield_440?: T | {}; + blocksfield_441?: T | {}; + blocksfield_442?: T | {}; + blocksfield_443?: T | {}; + blocksfield_444?: T | {}; + blocksfield_445?: T | {}; + blocksfield_446?: T | {}; + blocksfield_447?: T | {}; + blocksfield_448?: T | {}; + blocksfield_449?: T | {}; + blocksfield_450?: T | {}; + blocksfield_451?: T | {}; + blocksfield_452?: T | {}; + blocksfield_453?: T | {}; + blocksfield_454?: T | {}; + blocksfield_455?: T | {}; + blocksfield_456?: T | {}; + blocksfield_457?: T | {}; + blocksfield_458?: T | {}; + blocksfield_459?: T | {}; + blocksfield_460?: T | {}; + blocksfield_461?: T | {}; + blocksfield_462?: T | {}; + blocksfield_463?: T | {}; + blocksfield_464?: T | {}; + blocksfield_465?: T | {}; + blocksfield_466?: T | {}; + blocksfield_467?: T | {}; + blocksfield_468?: T | {}; + blocksfield_469?: T | {}; + blocksfield_470?: T | {}; + blocksfield_471?: T | {}; + blocksfield_472?: T | {}; + blocksfield_473?: T | {}; + blocksfield_474?: T | {}; + blocksfield_475?: T | {}; + blocksfield_476?: T | {}; + blocksfield_477?: T | {}; + blocksfield_478?: T | {}; + blocksfield_479?: T | {}; + blocksfield_480?: T | {}; + blocksfield_481?: T | {}; + blocksfield_482?: T | {}; + blocksfield_483?: T | {}; + blocksfield_484?: T | {}; + blocksfield_485?: T | {}; + blocksfield_486?: T | {}; + blocksfield_487?: T | {}; + blocksfield_488?: T | {}; + blocksfield_489?: T | {}; + blocksfield_490?: T | {}; + blocksfield_491?: T | {}; + blocksfield_492?: T | {}; + blocksfield_493?: T | {}; + blocksfield_494?: T | {}; + blocksfield_495?: T | {}; + blocksfield_496?: T | {}; + blocksfield_497?: T | {}; + blocksfield_498?: T | {}; + blocksfield_499?: T | {}; + blocksfield_500?: T | {}; + blocksfield_501?: T | {}; + blocksfield_502?: T | {}; + blocksfield_503?: T | {}; + blocksfield_504?: T | {}; + blocksfield_505?: T | {}; + blocksfield_506?: T | {}; + blocksfield_507?: T | {}; + blocksfield_508?: T | {}; + blocksfield_509?: T | {}; + blocksfield_510?: T | {}; + blocksfield_511?: T | {}; + blocksfield_512?: T | {}; + blocksfield_513?: T | {}; + blocksfield_514?: T | {}; + blocksfield_515?: T | {}; + blocksfield_516?: T | {}; + blocksfield_517?: T | {}; + blocksfield_518?: T | {}; + blocksfield_519?: T | {}; + blocksfield_520?: T | {}; + blocksfield_521?: T | {}; + blocksfield_522?: T | {}; + blocksfield_523?: T | {}; + blocksfield_524?: T | {}; + blocksfield_525?: T | {}; + blocksfield_526?: T | {}; + blocksfield_527?: T | {}; + blocksfield_528?: T | {}; + blocksfield_529?: T | {}; + blocksfield_530?: T | {}; + blocksfield_531?: T | {}; + blocksfield_532?: T | {}; + blocksfield_533?: T | {}; + blocksfield_534?: T | {}; + blocksfield_535?: T | {}; + blocksfield_536?: T | {}; + blocksfield_537?: T | {}; + blocksfield_538?: T | {}; + blocksfield_539?: T | {}; + blocksfield_540?: T | {}; + blocksfield_541?: T | {}; + blocksfield_542?: T | {}; + blocksfield_543?: T | {}; + blocksfield_544?: T | {}; + blocksfield_545?: T | {}; + blocksfield_546?: T | {}; + blocksfield_547?: T | {}; + blocksfield_548?: T | {}; + blocksfield_549?: T | {}; + blocksfield_550?: T | {}; + blocksfield_551?: T | {}; + blocksfield_552?: T | {}; + blocksfield_553?: T | {}; + blocksfield_554?: T | {}; + blocksfield_555?: T | {}; + blocksfield_556?: T | {}; + blocksfield_557?: T | {}; + blocksfield_558?: T | {}; + blocksfield_559?: T | {}; + blocksfield_560?: T | {}; + blocksfield_561?: T | {}; + blocksfield_562?: T | {}; + blocksfield_563?: T | {}; + blocksfield_564?: T | {}; + blocksfield_565?: T | {}; + blocksfield_566?: T | {}; + blocksfield_567?: T | {}; + blocksfield_568?: T | {}; + blocksfield_569?: T | {}; + blocksfield_570?: T | {}; + blocksfield_571?: T | {}; + blocksfield_572?: T | {}; + blocksfield_573?: T | {}; + blocksfield_574?: T | {}; + blocksfield_575?: T | {}; + blocksfield_576?: T | {}; + blocksfield_577?: T | {}; + blocksfield_578?: T | {}; + blocksfield_579?: T | {}; + blocksfield_580?: T | {}; + blocksfield_581?: T | {}; + blocksfield_582?: T | {}; + blocksfield_583?: T | {}; + blocksfield_584?: T | {}; + blocksfield_585?: T | {}; + blocksfield_586?: T | {}; + blocksfield_587?: T | {}; + blocksfield_588?: T | {}; + blocksfield_589?: T | {}; + blocksfield_590?: T | {}; + blocksfield_591?: T | {}; + blocksfield_592?: T | {}; + blocksfield_593?: T | {}; + blocksfield_594?: T | {}; + blocksfield_595?: T | {}; + blocksfield_596?: T | {}; + blocksfield_597?: T | {}; + blocksfield_598?: T | {}; + blocksfield_599?: T | {}; + updatedAt?: T; + createdAt?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "media_select". + */ +export interface MediaSelect { + updatedAt?: T; + createdAt?: T; + url?: T; + thumbnailURL?: T; + filename?: T; + mimeType?: T; + filesize?: T; + width?: T; + height?: T; + focalX?: T; + focalY?: T; + sizes?: + | T + | { + thumbnail?: + | T + | { + url?: T; + width?: T; + height?: T; + mimeType?: T; + filesize?: T; + filename?: T; + }; + medium?: + | T + | { + url?: T; + width?: T; + height?: T; + mimeType?: T; + filesize?: T; + filename?: T; + }; + large?: + | T + | { + url?: T; + width?: T; + height?: T; + mimeType?: T; + filesize?: T; + filename?: T; + }; + }; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "users_select". + */ +export interface UsersSelect { + updatedAt?: T; + createdAt?: T; + email?: T; + resetPasswordToken?: T; + resetPasswordExpiration?: T; + salt?: T; + hash?: T; + loginAttempts?: T; + lockUntil?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-locked-documents_select". + */ +export interface PayloadLockedDocumentsSelect { + document?: T; + globalSlug?: T; + user?: T; + updatedAt?: T; + createdAt?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-preferences_select". + */ +export interface PayloadPreferencesSelect { + user?: T; + key?: T; + value?: T; + updatedAt?: T; + createdAt?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "payload-migrations_select". + */ +export interface PayloadMigrationsSelect { + name?: T; + batch?: T; + updatedAt?: T; + createdAt?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "auth". + */ +export interface Auth { + [k: string]: unknown; +} + + +declare module 'payload' { + // @ts-ignore + export interface GeneratedTypes extends Config {} +} \ No newline at end of file diff --git a/test/benchmark-blocks/schema.graphql b/test/benchmark-blocks/schema.graphql new file mode 100644 index 0000000000..1038d843d6 --- /dev/null +++ b/test/benchmark-blocks/schema.graphql @@ -0,0 +1,1902 @@ +type Query { + Post(id: String!, draft: Boolean): Post + Posts(draft: Boolean, where: Post_where, limit: Int, page: Int, sort: String): Posts + countPosts(draft: Boolean, where: Post_where): countPosts + docAccessPost(id: String!): postsDocAccess + versionPost(id: String): PostVersion + versionsPosts(where: versionsPost_where, limit: Int, page: Int, sort: String): versionsPosts + User(id: String!, draft: Boolean): User + Users(draft: Boolean, where: User_where, limit: Int, page: Int, sort: String): Users + countUsers(draft: Boolean, where: User_where): countUsers + docAccessUser(id: String!): usersDocAccess + meUser: usersMe + initializedUser: Boolean + PayloadPreference(id: String!, draft: Boolean): PayloadPreference + PayloadPreferences( + draft: Boolean + where: PayloadPreference_where + limit: Int + page: Int + sort: String + ): PayloadPreferences + countPayloadPreferences(draft: Boolean, where: PayloadPreference_where): countPayloadPreferences + docAccessPayloadPreference(id: String!): payload_preferencesDocAccess + Menu(draft: Boolean): Menu + docAccessMenu: menuDocAccess + Access: Access +} + +type Post { + id: String + text: String + richText(depth: Int): JSON + richText2(depth: Int): JSON + updatedAt: DateTime + createdAt: DateTime + _status: Post__status +} + +""" +The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). +""" +scalar JSON + @specifiedBy(url: "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf") + +""" +A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. +""" +scalar DateTime + +enum Post__status { + draft + published +} + +type Posts { + docs: [Post] + hasNextPage: Boolean + hasPrevPage: Boolean + limit: Int + nextPage: Int + offset: Int + page: Int + pagingCounter: Int + prevPage: Int + totalDocs: Int + totalPages: Int +} + +input Post_where { + text: Post_text_operator + richText: Post_richText_operator + richText2: Post_richText2_operator + updatedAt: Post_updatedAt_operator + createdAt: Post_createdAt_operator + _status: Post__status_operator + id: Post_id_operator + AND: [Post_where_and] + OR: [Post_where_or] +} + +input Post_text_operator { + equals: String + not_equals: String + like: String + contains: String + in: [String] + not_in: [String] + all: [String] + exists: Boolean +} + +input Post_richText_operator { + equals: JSON + not_equals: JSON + like: JSON + contains: JSON + exists: Boolean +} + +input Post_richText2_operator { + equals: JSON + not_equals: JSON + like: JSON + contains: JSON + exists: Boolean +} + +input Post_updatedAt_operator { + equals: DateTime + not_equals: DateTime + greater_than_equal: DateTime + greater_than: DateTime + less_than_equal: DateTime + less_than: DateTime + like: DateTime + exists: Boolean +} + +input Post_createdAt_operator { + equals: DateTime + not_equals: DateTime + greater_than_equal: DateTime + greater_than: DateTime + less_than_equal: DateTime + less_than: DateTime + like: DateTime + exists: Boolean +} + +input Post__status_operator { + equals: Post__status_Input + not_equals: Post__status_Input + in: [Post__status_Input] + not_in: [Post__status_Input] + all: [Post__status_Input] + exists: Boolean +} + +enum Post__status_Input { + draft + published +} + +input Post_id_operator { + equals: String + not_equals: String + like: String + contains: String + in: [String] + not_in: [String] + all: [String] + exists: Boolean +} + +input Post_where_and { + text: Post_text_operator + richText: Post_richText_operator + richText2: Post_richText2_operator + updatedAt: Post_updatedAt_operator + createdAt: Post_createdAt_operator + _status: Post__status_operator + id: Post_id_operator + AND: [Post_where_and] + OR: [Post_where_or] +} + +input Post_where_or { + text: Post_text_operator + richText: Post_richText_operator + richText2: Post_richText2_operator + updatedAt: Post_updatedAt_operator + createdAt: Post_createdAt_operator + _status: Post__status_operator + id: Post_id_operator + AND: [Post_where_and] + OR: [Post_where_or] +} + +type countPosts { + totalDocs: Int +} + +type postsDocAccess { + fields: PostsDocAccessFields + create: PostsCreateDocAccess + read: PostsReadDocAccess + update: PostsUpdateDocAccess + delete: PostsDeleteDocAccess + readVersions: PostsReadVersionsDocAccess +} + +type PostsDocAccessFields { + text: PostsDocAccessFields_text + richText: PostsDocAccessFields_richText + richText2: PostsDocAccessFields_richText2 + updatedAt: PostsDocAccessFields_updatedAt + createdAt: PostsDocAccessFields_createdAt + _status: PostsDocAccessFields__status +} + +type PostsDocAccessFields_text { + create: PostsDocAccessFields_text_Create + read: PostsDocAccessFields_text_Read + update: PostsDocAccessFields_text_Update + delete: PostsDocAccessFields_text_Delete +} + +type PostsDocAccessFields_text_Create { + permission: Boolean! +} + +type PostsDocAccessFields_text_Read { + permission: Boolean! +} + +type PostsDocAccessFields_text_Update { + permission: Boolean! +} + +type PostsDocAccessFields_text_Delete { + permission: Boolean! +} + +type PostsDocAccessFields_richText { + create: PostsDocAccessFields_richText_Create + read: PostsDocAccessFields_richText_Read + update: PostsDocAccessFields_richText_Update + delete: PostsDocAccessFields_richText_Delete +} + +type PostsDocAccessFields_richText_Create { + permission: Boolean! +} + +type PostsDocAccessFields_richText_Read { + permission: Boolean! +} + +type PostsDocAccessFields_richText_Update { + permission: Boolean! +} + +type PostsDocAccessFields_richText_Delete { + permission: Boolean! +} + +type PostsDocAccessFields_richText2 { + create: PostsDocAccessFields_richText2_Create + read: PostsDocAccessFields_richText2_Read + update: PostsDocAccessFields_richText2_Update + delete: PostsDocAccessFields_richText2_Delete +} + +type PostsDocAccessFields_richText2_Create { + permission: Boolean! +} + +type PostsDocAccessFields_richText2_Read { + permission: Boolean! +} + +type PostsDocAccessFields_richText2_Update { + permission: Boolean! +} + +type PostsDocAccessFields_richText2_Delete { + permission: Boolean! +} + +type PostsDocAccessFields_updatedAt { + create: PostsDocAccessFields_updatedAt_Create + read: PostsDocAccessFields_updatedAt_Read + update: PostsDocAccessFields_updatedAt_Update + delete: PostsDocAccessFields_updatedAt_Delete +} + +type PostsDocAccessFields_updatedAt_Create { + permission: Boolean! +} + +type PostsDocAccessFields_updatedAt_Read { + permission: Boolean! +} + +type PostsDocAccessFields_updatedAt_Update { + permission: Boolean! +} + +type PostsDocAccessFields_updatedAt_Delete { + permission: Boolean! +} + +type PostsDocAccessFields_createdAt { + create: PostsDocAccessFields_createdAt_Create + read: PostsDocAccessFields_createdAt_Read + update: PostsDocAccessFields_createdAt_Update + delete: PostsDocAccessFields_createdAt_Delete +} + +type PostsDocAccessFields_createdAt_Create { + permission: Boolean! +} + +type PostsDocAccessFields_createdAt_Read { + permission: Boolean! +} + +type PostsDocAccessFields_createdAt_Update { + permission: Boolean! +} + +type PostsDocAccessFields_createdAt_Delete { + permission: Boolean! +} + +type PostsDocAccessFields__status { + create: PostsDocAccessFields__status_Create + read: PostsDocAccessFields__status_Read + update: PostsDocAccessFields__status_Update + delete: PostsDocAccessFields__status_Delete +} + +type PostsDocAccessFields__status_Create { + permission: Boolean! +} + +type PostsDocAccessFields__status_Read { + permission: Boolean! +} + +type PostsDocAccessFields__status_Update { + permission: Boolean! +} + +type PostsDocAccessFields__status_Delete { + permission: Boolean! +} + +type PostsCreateDocAccess { + permission: Boolean! + where: JSONObject +} + +""" +The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). +""" +scalar JSONObject + @specifiedBy(url: "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf") + +type PostsReadDocAccess { + permission: Boolean! + where: JSONObject +} + +type PostsUpdateDocAccess { + permission: Boolean! + where: JSONObject +} + +type PostsDeleteDocAccess { + permission: Boolean! + where: JSONObject +} + +type PostsReadVersionsDocAccess { + permission: Boolean! + where: JSONObject +} + +type PostVersion { + parent(draft: Boolean): Post + version: PostVersion_Version + createdAt: DateTime + updatedAt: DateTime + latest: Boolean + id: String +} + +type PostVersion_Version { + text: String + richText(depth: Int): JSON + richText2(depth: Int): JSON + updatedAt: DateTime + createdAt: DateTime + _status: PostVersion_Version__status +} + +enum PostVersion_Version__status { + draft + published +} + +type versionsPosts { + docs: [PostVersion] + hasNextPage: Boolean + hasPrevPage: Boolean + limit: Int + nextPage: Int + offset: Int + page: Int + pagingCounter: Int + prevPage: Int + totalDocs: Int + totalPages: Int +} + +input versionsPost_where { + parent: versionsPost_parent_operator + version__text: versionsPost_version__text_operator + version__richText: versionsPost_version__richText_operator + version__richText2: versionsPost_version__richText2_operator + version__updatedAt: versionsPost_version__updatedAt_operator + version__createdAt: versionsPost_version__createdAt_operator + version___status: versionsPost_version___status_operator + createdAt: versionsPost_createdAt_operator + updatedAt: versionsPost_updatedAt_operator + latest: versionsPost_latest_operator + id: versionsPost_id_operator + AND: [versionsPost_where_and] + OR: [versionsPost_where_or] +} + +input versionsPost_parent_operator { + equals: JSON + not_equals: JSON + in: [JSON] + not_in: [JSON] + all: [JSON] + exists: Boolean +} + +input versionsPost_version__text_operator { + equals: String + not_equals: String + like: String + contains: String + in: [String] + not_in: [String] + all: [String] + exists: Boolean +} + +input versionsPost_version__richText_operator { + equals: JSON + not_equals: JSON + like: JSON + contains: JSON + exists: Boolean +} + +input versionsPost_version__richText2_operator { + equals: JSON + not_equals: JSON + like: JSON + contains: JSON + exists: Boolean +} + +input versionsPost_version__updatedAt_operator { + equals: DateTime + not_equals: DateTime + greater_than_equal: DateTime + greater_than: DateTime + less_than_equal: DateTime + less_than: DateTime + like: DateTime + exists: Boolean +} + +input versionsPost_version__createdAt_operator { + equals: DateTime + not_equals: DateTime + greater_than_equal: DateTime + greater_than: DateTime + less_than_equal: DateTime + less_than: DateTime + like: DateTime + exists: Boolean +} + +input versionsPost_version___status_operator { + equals: versionsPost_version___status_Input + not_equals: versionsPost_version___status_Input + in: [versionsPost_version___status_Input] + not_in: [versionsPost_version___status_Input] + all: [versionsPost_version___status_Input] + exists: Boolean +} + +enum versionsPost_version___status_Input { + draft + published +} + +input versionsPost_createdAt_operator { + equals: DateTime + not_equals: DateTime + greater_than_equal: DateTime + greater_than: DateTime + less_than_equal: DateTime + less_than: DateTime + like: DateTime + exists: Boolean +} + +input versionsPost_updatedAt_operator { + equals: DateTime + not_equals: DateTime + greater_than_equal: DateTime + greater_than: DateTime + less_than_equal: DateTime + less_than: DateTime + like: DateTime + exists: Boolean +} + +input versionsPost_latest_operator { + equals: Boolean + not_equals: Boolean + exists: Boolean +} + +input versionsPost_id_operator { + equals: String + not_equals: String + like: String + contains: String + in: [String] + not_in: [String] + all: [String] + exists: Boolean +} + +input versionsPost_where_and { + parent: versionsPost_parent_operator + version__text: versionsPost_version__text_operator + version__richText: versionsPost_version__richText_operator + version__richText2: versionsPost_version__richText2_operator + version__updatedAt: versionsPost_version__updatedAt_operator + version__createdAt: versionsPost_version__createdAt_operator + version___status: versionsPost_version___status_operator + createdAt: versionsPost_createdAt_operator + updatedAt: versionsPost_updatedAt_operator + latest: versionsPost_latest_operator + id: versionsPost_id_operator + AND: [versionsPost_where_and] + OR: [versionsPost_where_or] +} + +input versionsPost_where_or { + parent: versionsPost_parent_operator + version__text: versionsPost_version__text_operator + version__richText: versionsPost_version__richText_operator + version__richText2: versionsPost_version__richText2_operator + version__updatedAt: versionsPost_version__updatedAt_operator + version__createdAt: versionsPost_version__createdAt_operator + version___status: versionsPost_version___status_operator + createdAt: versionsPost_createdAt_operator + updatedAt: versionsPost_updatedAt_operator + latest: versionsPost_latest_operator + id: versionsPost_id_operator + AND: [versionsPost_where_and] + OR: [versionsPost_where_or] +} + +type User { + id: String + updatedAt: DateTime + createdAt: DateTime + email: EmailAddress! + resetPasswordToken: String + resetPasswordExpiration: DateTime + salt: String + hash: String + loginAttempts: Float + lockUntil: DateTime + password: String! +} + +""" +A field whose value conforms to the standard internet email address format as specified in HTML Spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address. +""" +scalar EmailAddress + @specifiedBy(url: "https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address") + +type Users { + docs: [User] + hasNextPage: Boolean + hasPrevPage: Boolean + limit: Int + nextPage: Int + offset: Int + page: Int + pagingCounter: Int + prevPage: Int + totalDocs: Int + totalPages: Int +} + +input User_where { + updatedAt: User_updatedAt_operator + createdAt: User_createdAt_operator + email: User_email_operator + id: User_id_operator + AND: [User_where_and] + OR: [User_where_or] +} + +input User_updatedAt_operator { + equals: DateTime + not_equals: DateTime + greater_than_equal: DateTime + greater_than: DateTime + less_than_equal: DateTime + less_than: DateTime + like: DateTime + exists: Boolean +} + +input User_createdAt_operator { + equals: DateTime + not_equals: DateTime + greater_than_equal: DateTime + greater_than: DateTime + less_than_equal: DateTime + less_than: DateTime + like: DateTime + exists: Boolean +} + +input User_email_operator { + equals: EmailAddress + not_equals: EmailAddress + like: EmailAddress + contains: EmailAddress + in: [EmailAddress] + not_in: [EmailAddress] + all: [EmailAddress] +} + +input User_id_operator { + equals: String + not_equals: String + like: String + contains: String + in: [String] + not_in: [String] + all: [String] + exists: Boolean +} + +input User_where_and { + updatedAt: User_updatedAt_operator + createdAt: User_createdAt_operator + email: User_email_operator + id: User_id_operator + AND: [User_where_and] + OR: [User_where_or] +} + +input User_where_or { + updatedAt: User_updatedAt_operator + createdAt: User_createdAt_operator + email: User_email_operator + id: User_id_operator + AND: [User_where_and] + OR: [User_where_or] +} + +type countUsers { + totalDocs: Int +} + +type usersDocAccess { + fields: UsersDocAccessFields + create: UsersCreateDocAccess + read: UsersReadDocAccess + update: UsersUpdateDocAccess + delete: UsersDeleteDocAccess + unlock: UsersUnlockDocAccess +} + +type UsersDocAccessFields { + updatedAt: UsersDocAccessFields_updatedAt + createdAt: UsersDocAccessFields_createdAt + email: UsersDocAccessFields_email + password: UsersDocAccessFields_password +} + +type UsersDocAccessFields_updatedAt { + create: UsersDocAccessFields_updatedAt_Create + read: UsersDocAccessFields_updatedAt_Read + update: UsersDocAccessFields_updatedAt_Update + delete: UsersDocAccessFields_updatedAt_Delete +} + +type UsersDocAccessFields_updatedAt_Create { + permission: Boolean! +} + +type UsersDocAccessFields_updatedAt_Read { + permission: Boolean! +} + +type UsersDocAccessFields_updatedAt_Update { + permission: Boolean! +} + +type UsersDocAccessFields_updatedAt_Delete { + permission: Boolean! +} + +type UsersDocAccessFields_createdAt { + create: UsersDocAccessFields_createdAt_Create + read: UsersDocAccessFields_createdAt_Read + update: UsersDocAccessFields_createdAt_Update + delete: UsersDocAccessFields_createdAt_Delete +} + +type UsersDocAccessFields_createdAt_Create { + permission: Boolean! +} + +type UsersDocAccessFields_createdAt_Read { + permission: Boolean! +} + +type UsersDocAccessFields_createdAt_Update { + permission: Boolean! +} + +type UsersDocAccessFields_createdAt_Delete { + permission: Boolean! +} + +type UsersDocAccessFields_email { + create: UsersDocAccessFields_email_Create + read: UsersDocAccessFields_email_Read + update: UsersDocAccessFields_email_Update + delete: UsersDocAccessFields_email_Delete +} + +type UsersDocAccessFields_email_Create { + permission: Boolean! +} + +type UsersDocAccessFields_email_Read { + permission: Boolean! +} + +type UsersDocAccessFields_email_Update { + permission: Boolean! +} + +type UsersDocAccessFields_email_Delete { + permission: Boolean! +} + +type UsersDocAccessFields_password { + create: UsersDocAccessFields_password_Create + read: UsersDocAccessFields_password_Read + update: UsersDocAccessFields_password_Update + delete: UsersDocAccessFields_password_Delete +} + +type UsersDocAccessFields_password_Create { + permission: Boolean! +} + +type UsersDocAccessFields_password_Read { + permission: Boolean! +} + +type UsersDocAccessFields_password_Update { + permission: Boolean! +} + +type UsersDocAccessFields_password_Delete { + permission: Boolean! +} + +type UsersCreateDocAccess { + permission: Boolean! + where: JSONObject +} + +type UsersReadDocAccess { + permission: Boolean! + where: JSONObject +} + +type UsersUpdateDocAccess { + permission: Boolean! + where: JSONObject +} + +type UsersDeleteDocAccess { + permission: Boolean! + where: JSONObject +} + +type UsersUnlockDocAccess { + permission: Boolean! + where: JSONObject +} + +type usersMe { + collection: String + exp: Int + token: String + user: User +} + +type PayloadPreference { + id: String + user: PayloadPreference_User_Relationship! + key: String + value: JSON + updatedAt: DateTime + createdAt: DateTime +} + +type PayloadPreference_User_Relationship { + relationTo: PayloadPreference_User_RelationTo + value: PayloadPreference_User +} + +enum PayloadPreference_User_RelationTo { + users +} + +union PayloadPreference_User = User + +type PayloadPreferences { + docs: [PayloadPreference] + hasNextPage: Boolean + hasPrevPage: Boolean + limit: Int + nextPage: Int + offset: Int + page: Int + pagingCounter: Int + prevPage: Int + totalDocs: Int + totalPages: Int +} + +input PayloadPreference_where { + user: PayloadPreference_user_Relation + key: PayloadPreference_key_operator + value: PayloadPreference_value_operator + updatedAt: PayloadPreference_updatedAt_operator + createdAt: PayloadPreference_createdAt_operator + id: PayloadPreference_id_operator + AND: [PayloadPreference_where_and] + OR: [PayloadPreference_where_or] +} + +input PayloadPreference_user_Relation { + relationTo: PayloadPreference_user_Relation_RelationTo + value: JSON +} + +enum PayloadPreference_user_Relation_RelationTo { + users +} + +input PayloadPreference_key_operator { + equals: String + not_equals: String + like: String + contains: String + in: [String] + not_in: [String] + all: [String] + exists: Boolean +} + +input PayloadPreference_value_operator { + equals: JSON + not_equals: JSON + like: JSON + contains: JSON + within: JSON + intersects: JSON + exists: Boolean +} + +input PayloadPreference_updatedAt_operator { + equals: DateTime + not_equals: DateTime + greater_than_equal: DateTime + greater_than: DateTime + less_than_equal: DateTime + less_than: DateTime + like: DateTime + exists: Boolean +} + +input PayloadPreference_createdAt_operator { + equals: DateTime + not_equals: DateTime + greater_than_equal: DateTime + greater_than: DateTime + less_than_equal: DateTime + less_than: DateTime + like: DateTime + exists: Boolean +} + +input PayloadPreference_id_operator { + equals: String + not_equals: String + like: String + contains: String + in: [String] + not_in: [String] + all: [String] + exists: Boolean +} + +input PayloadPreference_where_and { + user: PayloadPreference_user_Relation + key: PayloadPreference_key_operator + value: PayloadPreference_value_operator + updatedAt: PayloadPreference_updatedAt_operator + createdAt: PayloadPreference_createdAt_operator + id: PayloadPreference_id_operator + AND: [PayloadPreference_where_and] + OR: [PayloadPreference_where_or] +} + +input PayloadPreference_where_or { + user: PayloadPreference_user_Relation + key: PayloadPreference_key_operator + value: PayloadPreference_value_operator + updatedAt: PayloadPreference_updatedAt_operator + createdAt: PayloadPreference_createdAt_operator + id: PayloadPreference_id_operator + AND: [PayloadPreference_where_and] + OR: [PayloadPreference_where_or] +} + +type countPayloadPreferences { + totalDocs: Int +} + +type payload_preferencesDocAccess { + fields: PayloadPreferencesDocAccessFields + create: PayloadPreferencesCreateDocAccess + read: PayloadPreferencesReadDocAccess + update: PayloadPreferencesUpdateDocAccess + delete: PayloadPreferencesDeleteDocAccess +} + +type PayloadPreferencesDocAccessFields { + user: PayloadPreferencesDocAccessFields_user + key: PayloadPreferencesDocAccessFields_key + value: PayloadPreferencesDocAccessFields_value + updatedAt: PayloadPreferencesDocAccessFields_updatedAt + createdAt: PayloadPreferencesDocAccessFields_createdAt +} + +type PayloadPreferencesDocAccessFields_user { + create: PayloadPreferencesDocAccessFields_user_Create + read: PayloadPreferencesDocAccessFields_user_Read + update: PayloadPreferencesDocAccessFields_user_Update + delete: PayloadPreferencesDocAccessFields_user_Delete +} + +type PayloadPreferencesDocAccessFields_user_Create { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_user_Read { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_user_Update { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_user_Delete { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_key { + create: PayloadPreferencesDocAccessFields_key_Create + read: PayloadPreferencesDocAccessFields_key_Read + update: PayloadPreferencesDocAccessFields_key_Update + delete: PayloadPreferencesDocAccessFields_key_Delete +} + +type PayloadPreferencesDocAccessFields_key_Create { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_key_Read { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_key_Update { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_key_Delete { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_value { + create: PayloadPreferencesDocAccessFields_value_Create + read: PayloadPreferencesDocAccessFields_value_Read + update: PayloadPreferencesDocAccessFields_value_Update + delete: PayloadPreferencesDocAccessFields_value_Delete +} + +type PayloadPreferencesDocAccessFields_value_Create { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_value_Read { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_value_Update { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_value_Delete { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_updatedAt { + create: PayloadPreferencesDocAccessFields_updatedAt_Create + read: PayloadPreferencesDocAccessFields_updatedAt_Read + update: PayloadPreferencesDocAccessFields_updatedAt_Update + delete: PayloadPreferencesDocAccessFields_updatedAt_Delete +} + +type PayloadPreferencesDocAccessFields_updatedAt_Create { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_updatedAt_Read { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_updatedAt_Update { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_updatedAt_Delete { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_createdAt { + create: PayloadPreferencesDocAccessFields_createdAt_Create + read: PayloadPreferencesDocAccessFields_createdAt_Read + update: PayloadPreferencesDocAccessFields_createdAt_Update + delete: PayloadPreferencesDocAccessFields_createdAt_Delete +} + +type PayloadPreferencesDocAccessFields_createdAt_Create { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_createdAt_Read { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_createdAt_Update { + permission: Boolean! +} + +type PayloadPreferencesDocAccessFields_createdAt_Delete { + permission: Boolean! +} + +type PayloadPreferencesCreateDocAccess { + permission: Boolean! + where: JSONObject +} + +type PayloadPreferencesReadDocAccess { + permission: Boolean! + where: JSONObject +} + +type PayloadPreferencesUpdateDocAccess { + permission: Boolean! + where: JSONObject +} + +type PayloadPreferencesDeleteDocAccess { + permission: Boolean! + where: JSONObject +} + +type Menu { + globalText: String + updatedAt: DateTime + createdAt: DateTime +} + +type menuDocAccess { + fields: MenuDocAccessFields + read: MenuReadDocAccess + update: MenuUpdateDocAccess +} + +type MenuDocAccessFields { + globalText: MenuDocAccessFields_globalText + updatedAt: MenuDocAccessFields_updatedAt + createdAt: MenuDocAccessFields_createdAt +} + +type MenuDocAccessFields_globalText { + create: MenuDocAccessFields_globalText_Create + read: MenuDocAccessFields_globalText_Read + update: MenuDocAccessFields_globalText_Update + delete: MenuDocAccessFields_globalText_Delete +} + +type MenuDocAccessFields_globalText_Create { + permission: Boolean! +} + +type MenuDocAccessFields_globalText_Read { + permission: Boolean! +} + +type MenuDocAccessFields_globalText_Update { + permission: Boolean! +} + +type MenuDocAccessFields_globalText_Delete { + permission: Boolean! +} + +type MenuDocAccessFields_updatedAt { + create: MenuDocAccessFields_updatedAt_Create + read: MenuDocAccessFields_updatedAt_Read + update: MenuDocAccessFields_updatedAt_Update + delete: MenuDocAccessFields_updatedAt_Delete +} + +type MenuDocAccessFields_updatedAt_Create { + permission: Boolean! +} + +type MenuDocAccessFields_updatedAt_Read { + permission: Boolean! +} + +type MenuDocAccessFields_updatedAt_Update { + permission: Boolean! +} + +type MenuDocAccessFields_updatedAt_Delete { + permission: Boolean! +} + +type MenuDocAccessFields_createdAt { + create: MenuDocAccessFields_createdAt_Create + read: MenuDocAccessFields_createdAt_Read + update: MenuDocAccessFields_createdAt_Update + delete: MenuDocAccessFields_createdAt_Delete +} + +type MenuDocAccessFields_createdAt_Create { + permission: Boolean! +} + +type MenuDocAccessFields_createdAt_Read { + permission: Boolean! +} + +type MenuDocAccessFields_createdAt_Update { + permission: Boolean! +} + +type MenuDocAccessFields_createdAt_Delete { + permission: Boolean! +} + +type MenuReadDocAccess { + permission: Boolean! + where: JSONObject +} + +type MenuUpdateDocAccess { + permission: Boolean! + where: JSONObject +} + +type Access { + canAccessAdmin: Boolean! + posts: postsAccess + users: usersAccess + payload_preferences: payload_preferencesAccess + menu: menuAccess +} + +type postsAccess { + fields: PostsFields + create: PostsCreateAccess + read: PostsReadAccess + update: PostsUpdateAccess + delete: PostsDeleteAccess + readVersions: PostsReadVersionsAccess +} + +type PostsFields { + text: PostsFields_text + richText: PostsFields_richText + richText2: PostsFields_richText2 + updatedAt: PostsFields_updatedAt + createdAt: PostsFields_createdAt + _status: PostsFields__status +} + +type PostsFields_text { + create: PostsFields_text_Create + read: PostsFields_text_Read + update: PostsFields_text_Update + delete: PostsFields_text_Delete +} + +type PostsFields_text_Create { + permission: Boolean! +} + +type PostsFields_text_Read { + permission: Boolean! +} + +type PostsFields_text_Update { + permission: Boolean! +} + +type PostsFields_text_Delete { + permission: Boolean! +} + +type PostsFields_richText { + create: PostsFields_richText_Create + read: PostsFields_richText_Read + update: PostsFields_richText_Update + delete: PostsFields_richText_Delete +} + +type PostsFields_richText_Create { + permission: Boolean! +} + +type PostsFields_richText_Read { + permission: Boolean! +} + +type PostsFields_richText_Update { + permission: Boolean! +} + +type PostsFields_richText_Delete { + permission: Boolean! +} + +type PostsFields_richText2 { + create: PostsFields_richText2_Create + read: PostsFields_richText2_Read + update: PostsFields_richText2_Update + delete: PostsFields_richText2_Delete +} + +type PostsFields_richText2_Create { + permission: Boolean! +} + +type PostsFields_richText2_Read { + permission: Boolean! +} + +type PostsFields_richText2_Update { + permission: Boolean! +} + +type PostsFields_richText2_Delete { + permission: Boolean! +} + +type PostsFields_updatedAt { + create: PostsFields_updatedAt_Create + read: PostsFields_updatedAt_Read + update: PostsFields_updatedAt_Update + delete: PostsFields_updatedAt_Delete +} + +type PostsFields_updatedAt_Create { + permission: Boolean! +} + +type PostsFields_updatedAt_Read { + permission: Boolean! +} + +type PostsFields_updatedAt_Update { + permission: Boolean! +} + +type PostsFields_updatedAt_Delete { + permission: Boolean! +} + +type PostsFields_createdAt { + create: PostsFields_createdAt_Create + read: PostsFields_createdAt_Read + update: PostsFields_createdAt_Update + delete: PostsFields_createdAt_Delete +} + +type PostsFields_createdAt_Create { + permission: Boolean! +} + +type PostsFields_createdAt_Read { + permission: Boolean! +} + +type PostsFields_createdAt_Update { + permission: Boolean! +} + +type PostsFields_createdAt_Delete { + permission: Boolean! +} + +type PostsFields__status { + create: PostsFields__status_Create + read: PostsFields__status_Read + update: PostsFields__status_Update + delete: PostsFields__status_Delete +} + +type PostsFields__status_Create { + permission: Boolean! +} + +type PostsFields__status_Read { + permission: Boolean! +} + +type PostsFields__status_Update { + permission: Boolean! +} + +type PostsFields__status_Delete { + permission: Boolean! +} + +type PostsCreateAccess { + permission: Boolean! + where: JSONObject +} + +type PostsReadAccess { + permission: Boolean! + where: JSONObject +} + +type PostsUpdateAccess { + permission: Boolean! + where: JSONObject +} + +type PostsDeleteAccess { + permission: Boolean! + where: JSONObject +} + +type PostsReadVersionsAccess { + permission: Boolean! + where: JSONObject +} + +type usersAccess { + fields: UsersFields + create: UsersCreateAccess + read: UsersReadAccess + update: UsersUpdateAccess + delete: UsersDeleteAccess + unlock: UsersUnlockAccess +} + +type UsersFields { + updatedAt: UsersFields_updatedAt + createdAt: UsersFields_createdAt + email: UsersFields_email + password: UsersFields_password +} + +type UsersFields_updatedAt { + create: UsersFields_updatedAt_Create + read: UsersFields_updatedAt_Read + update: UsersFields_updatedAt_Update + delete: UsersFields_updatedAt_Delete +} + +type UsersFields_updatedAt_Create { + permission: Boolean! +} + +type UsersFields_updatedAt_Read { + permission: Boolean! +} + +type UsersFields_updatedAt_Update { + permission: Boolean! +} + +type UsersFields_updatedAt_Delete { + permission: Boolean! +} + +type UsersFields_createdAt { + create: UsersFields_createdAt_Create + read: UsersFields_createdAt_Read + update: UsersFields_createdAt_Update + delete: UsersFields_createdAt_Delete +} + +type UsersFields_createdAt_Create { + permission: Boolean! +} + +type UsersFields_createdAt_Read { + permission: Boolean! +} + +type UsersFields_createdAt_Update { + permission: Boolean! +} + +type UsersFields_createdAt_Delete { + permission: Boolean! +} + +type UsersFields_email { + create: UsersFields_email_Create + read: UsersFields_email_Read + update: UsersFields_email_Update + delete: UsersFields_email_Delete +} + +type UsersFields_email_Create { + permission: Boolean! +} + +type UsersFields_email_Read { + permission: Boolean! +} + +type UsersFields_email_Update { + permission: Boolean! +} + +type UsersFields_email_Delete { + permission: Boolean! +} + +type UsersFields_password { + create: UsersFields_password_Create + read: UsersFields_password_Read + update: UsersFields_password_Update + delete: UsersFields_password_Delete +} + +type UsersFields_password_Create { + permission: Boolean! +} + +type UsersFields_password_Read { + permission: Boolean! +} + +type UsersFields_password_Update { + permission: Boolean! +} + +type UsersFields_password_Delete { + permission: Boolean! +} + +type UsersCreateAccess { + permission: Boolean! + where: JSONObject +} + +type UsersReadAccess { + permission: Boolean! + where: JSONObject +} + +type UsersUpdateAccess { + permission: Boolean! + where: JSONObject +} + +type UsersDeleteAccess { + permission: Boolean! + where: JSONObject +} + +type UsersUnlockAccess { + permission: Boolean! + where: JSONObject +} + +type payload_preferencesAccess { + fields: PayloadPreferencesFields + create: PayloadPreferencesCreateAccess + read: PayloadPreferencesReadAccess + update: PayloadPreferencesUpdateAccess + delete: PayloadPreferencesDeleteAccess +} + +type PayloadPreferencesFields { + user: PayloadPreferencesFields_user + key: PayloadPreferencesFields_key + value: PayloadPreferencesFields_value + updatedAt: PayloadPreferencesFields_updatedAt + createdAt: PayloadPreferencesFields_createdAt +} + +type PayloadPreferencesFields_user { + create: PayloadPreferencesFields_user_Create + read: PayloadPreferencesFields_user_Read + update: PayloadPreferencesFields_user_Update + delete: PayloadPreferencesFields_user_Delete +} + +type PayloadPreferencesFields_user_Create { + permission: Boolean! +} + +type PayloadPreferencesFields_user_Read { + permission: Boolean! +} + +type PayloadPreferencesFields_user_Update { + permission: Boolean! +} + +type PayloadPreferencesFields_user_Delete { + permission: Boolean! +} + +type PayloadPreferencesFields_key { + create: PayloadPreferencesFields_key_Create + read: PayloadPreferencesFields_key_Read + update: PayloadPreferencesFields_key_Update + delete: PayloadPreferencesFields_key_Delete +} + +type PayloadPreferencesFields_key_Create { + permission: Boolean! +} + +type PayloadPreferencesFields_key_Read { + permission: Boolean! +} + +type PayloadPreferencesFields_key_Update { + permission: Boolean! +} + +type PayloadPreferencesFields_key_Delete { + permission: Boolean! +} + +type PayloadPreferencesFields_value { + create: PayloadPreferencesFields_value_Create + read: PayloadPreferencesFields_value_Read + update: PayloadPreferencesFields_value_Update + delete: PayloadPreferencesFields_value_Delete +} + +type PayloadPreferencesFields_value_Create { + permission: Boolean! +} + +type PayloadPreferencesFields_value_Read { + permission: Boolean! +} + +type PayloadPreferencesFields_value_Update { + permission: Boolean! +} + +type PayloadPreferencesFields_value_Delete { + permission: Boolean! +} + +type PayloadPreferencesFields_updatedAt { + create: PayloadPreferencesFields_updatedAt_Create + read: PayloadPreferencesFields_updatedAt_Read + update: PayloadPreferencesFields_updatedAt_Update + delete: PayloadPreferencesFields_updatedAt_Delete +} + +type PayloadPreferencesFields_updatedAt_Create { + permission: Boolean! +} + +type PayloadPreferencesFields_updatedAt_Read { + permission: Boolean! +} + +type PayloadPreferencesFields_updatedAt_Update { + permission: Boolean! +} + +type PayloadPreferencesFields_updatedAt_Delete { + permission: Boolean! +} + +type PayloadPreferencesFields_createdAt { + create: PayloadPreferencesFields_createdAt_Create + read: PayloadPreferencesFields_createdAt_Read + update: PayloadPreferencesFields_createdAt_Update + delete: PayloadPreferencesFields_createdAt_Delete +} + +type PayloadPreferencesFields_createdAt_Create { + permission: Boolean! +} + +type PayloadPreferencesFields_createdAt_Read { + permission: Boolean! +} + +type PayloadPreferencesFields_createdAt_Update { + permission: Boolean! +} + +type PayloadPreferencesFields_createdAt_Delete { + permission: Boolean! +} + +type PayloadPreferencesCreateAccess { + permission: Boolean! + where: JSONObject +} + +type PayloadPreferencesReadAccess { + permission: Boolean! + where: JSONObject +} + +type PayloadPreferencesUpdateAccess { + permission: Boolean! + where: JSONObject +} + +type PayloadPreferencesDeleteAccess { + permission: Boolean! + where: JSONObject +} + +type menuAccess { + fields: MenuFields + read: MenuReadAccess + update: MenuUpdateAccess +} + +type MenuFields { + globalText: MenuFields_globalText + updatedAt: MenuFields_updatedAt + createdAt: MenuFields_createdAt +} + +type MenuFields_globalText { + create: MenuFields_globalText_Create + read: MenuFields_globalText_Read + update: MenuFields_globalText_Update + delete: MenuFields_globalText_Delete +} + +type MenuFields_globalText_Create { + permission: Boolean! +} + +type MenuFields_globalText_Read { + permission: Boolean! +} + +type MenuFields_globalText_Update { + permission: Boolean! +} + +type MenuFields_globalText_Delete { + permission: Boolean! +} + +type MenuFields_updatedAt { + create: MenuFields_updatedAt_Create + read: MenuFields_updatedAt_Read + update: MenuFields_updatedAt_Update + delete: MenuFields_updatedAt_Delete +} + +type MenuFields_updatedAt_Create { + permission: Boolean! +} + +type MenuFields_updatedAt_Read { + permission: Boolean! +} + +type MenuFields_updatedAt_Update { + permission: Boolean! +} + +type MenuFields_updatedAt_Delete { + permission: Boolean! +} + +type MenuFields_createdAt { + create: MenuFields_createdAt_Create + read: MenuFields_createdAt_Read + update: MenuFields_createdAt_Update + delete: MenuFields_createdAt_Delete +} + +type MenuFields_createdAt_Create { + permission: Boolean! +} + +type MenuFields_createdAt_Read { + permission: Boolean! +} + +type MenuFields_createdAt_Update { + permission: Boolean! +} + +type MenuFields_createdAt_Delete { + permission: Boolean! +} + +type MenuReadAccess { + permission: Boolean! + where: JSONObject +} + +type MenuUpdateAccess { + permission: Boolean! + where: JSONObject +} + +type Mutation { + createPost(data: mutationPostInput!, draft: Boolean): Post + updatePost(id: String!, autosave: Boolean, data: mutationPostUpdateInput!, draft: Boolean): Post + deletePost(id: String!): Post + duplicatePost(id: String!): Post + restoreVersionPost(id: String): Post + createUser(data: mutationUserInput!, draft: Boolean): User + updateUser(id: String!, autosave: Boolean, data: mutationUserUpdateInput!, draft: Boolean): User + deleteUser(id: String!): User + refreshTokenUser(token: String): usersRefreshedUser + logoutUser: String + unlockUser(email: String!): Boolean! + loginUser(email: String, password: String): usersLoginResult + forgotPasswordUser(disableEmail: Boolean, email: String!, expiration: Int): Boolean! + resetPasswordUser(password: String, token: String): usersResetPassword + verifyEmailUser(token: String): Boolean + createPayloadPreference(data: mutationPayloadPreferenceInput!, draft: Boolean): PayloadPreference + updatePayloadPreference( + id: String! + autosave: Boolean + data: mutationPayloadPreferenceUpdateInput! + draft: Boolean + ): PayloadPreference + deletePayloadPreference(id: String!): PayloadPreference + duplicatePayloadPreference(id: String!): PayloadPreference + updateMenu(data: mutationMenuInput!, draft: Boolean): Menu +} + +input mutationPostInput { + text: String + richText: JSON + richText2: JSON + updatedAt: String + createdAt: String + _status: Post__status_MutationInput +} + +enum Post__status_MutationInput { + draft + published +} + +input mutationPostUpdateInput { + text: String + richText: JSON + richText2: JSON + updatedAt: String + createdAt: String + _status: PostUpdate__status_MutationInput +} + +enum PostUpdate__status_MutationInput { + draft + published +} + +input mutationUserInput { + updatedAt: String + createdAt: String + email: String! + resetPasswordToken: String + resetPasswordExpiration: String + salt: String + hash: String + loginAttempts: Float + lockUntil: String + password: String! +} + +input mutationUserUpdateInput { + updatedAt: String + createdAt: String + email: String + resetPasswordToken: String + resetPasswordExpiration: String + salt: String + hash: String + loginAttempts: Float + lockUntil: String + password: String +} + +type usersRefreshedUser { + exp: Int + refreshedToken: String + user: usersJWT +} + +type usersJWT { + email: EmailAddress! + collection: String! +} + +type usersLoginResult { + exp: Int + token: String + user: User +} + +type usersResetPassword { + token: String + user: User +} + +input mutationPayloadPreferenceInput { + user: PayloadPreference_UserRelationshipInput + key: String + value: JSON + updatedAt: String + createdAt: String +} + +input PayloadPreference_UserRelationshipInput { + relationTo: PayloadPreference_UserRelationshipInputRelationTo + value: JSON +} + +enum PayloadPreference_UserRelationshipInputRelationTo { + users +} + +input mutationPayloadPreferenceUpdateInput { + user: PayloadPreferenceUpdate_UserRelationshipInput + key: String + value: JSON + updatedAt: String + createdAt: String +} + +input PayloadPreferenceUpdate_UserRelationshipInput { + relationTo: PayloadPreferenceUpdate_UserRelationshipInputRelationTo + value: JSON +} + +enum PayloadPreferenceUpdate_UserRelationshipInputRelationTo { + users +} + +input mutationMenuInput { + globalText: String + updatedAt: String + createdAt: String +} diff --git a/test/benchmark-blocks/tsconfig.eslint.json b/test/benchmark-blocks/tsconfig.eslint.json new file mode 100644 index 0000000000..b34cc7afbb --- /dev/null +++ b/test/benchmark-blocks/tsconfig.eslint.json @@ -0,0 +1,13 @@ +{ + // extend your base config to share compilerOptions, etc + //"extends": "./tsconfig.json", + "compilerOptions": { + // ensure that nobody can accidentally use this config for a build + "noEmit": true + }, + "include": [ + // whatever paths you intend to lint + "./**/*.ts", + "./**/*.tsx" + ] +} diff --git a/test/benchmark-blocks/tsconfig.json b/test/benchmark-blocks/tsconfig.json new file mode 100644 index 0000000000..48610a17ff --- /dev/null +++ b/test/benchmark-blocks/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../tsconfig.json", +} diff --git a/test/benchmark-blocks/types.d.ts b/test/benchmark-blocks/types.d.ts new file mode 100644 index 0000000000..8d5bd7d65c --- /dev/null +++ b/test/benchmark-blocks/types.d.ts @@ -0,0 +1,9 @@ +import type { RequestContext as OriginalRequestContext } from 'payload' + +declare module 'payload' { + // Create a new interface that merges your additional fields with the original one + export interface RequestContext extends OriginalRequestContext { + myObject?: string + // ... + } +} diff --git a/test/dev.ts b/test/dev.ts index 957f9fd5b7..578fd8e5e6 100644 --- a/test/dev.ts +++ b/test/dev.ts @@ -35,10 +35,18 @@ const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) const { - _: [testSuiteArg = '_community'], + _: [_testSuiteArg = '_community'], ...args } = minimist(process.argv.slice(2)) +let testSuiteArg: string | undefined +let testSuiteConfigOverride: string | undefined +if (_testSuiteArg.includes('#')) { + ;[testSuiteArg, testSuiteConfigOverride] = _testSuiteArg.split('#') +} else { + testSuiteArg = _testSuiteArg +} + if (!testSuiteArg || !fs.existsSync(path.resolve(dirname, testSuiteArg))) { console.log(chalk.red(`ERROR: The test folder "${testSuiteArg}" does not exist`)) process.exit(0) @@ -50,7 +58,7 @@ if (args.turbo === true) { process.env.TURBOPACK = '1' } -const { beforeTest } = await createTestHooks(testSuiteArg) +const { beforeTest } = await createTestHooks(testSuiteArg, testSuiteConfigOverride) await beforeTest() const { rootDir, adminRoute } = getNextRootDir(testSuiteArg) diff --git a/test/fields/baseConfig.ts b/test/fields/baseConfig.ts new file mode 100644 index 0000000000..7d2db0db4d --- /dev/null +++ b/test/fields/baseConfig.ts @@ -0,0 +1,171 @@ +import type { CollectionConfig, Config } from 'payload' + +import { fileURLToPath } from 'node:url' +import path from 'path' + +const filename = fileURLToPath(import.meta.url) +const dirname = path.dirname(filename) + +import ArrayFields from './collections/Array/index.js' +import BlockFields from './collections/Blocks/index.js' +import CheckboxFields from './collections/Checkbox/index.js' +import CodeFields from './collections/Code/index.js' +import CollapsibleFields from './collections/Collapsible/index.js' +import ConditionalLogic from './collections/ConditionalLogic/index.js' +import { CustomRowID } from './collections/CustomID/CustomRowID.js' +import { CustomTabID } from './collections/CustomID/CustomTabID.js' +import { CustomID } from './collections/CustomID/index.js' +import DateFields from './collections/Date/index.js' +import EmailFields from './collections/Email/index.js' +import GroupFields from './collections/Group/index.js' +import IndexedFields from './collections/Indexed/index.js' +import JSONFields from './collections/JSON/index.js' +import { + getLexicalFieldsCollection, + lexicalBlocks, + lexicalInlineBlocks, +} from './collections/Lexical/index.js' +import { LexicalAccessControl } from './collections/LexicalAccessControl/index.js' +import { LexicalInBlock } from './collections/LexicalInBlock/index.js' +import { LexicalLocalizedFields } from './collections/LexicalLocalized/index.js' +import { LexicalMigrateFields } from './collections/LexicalMigrate/index.js' +import { LexicalObjectReferenceBugCollection } from './collections/LexicalObjectReferenceBug/index.js' +import { LexicalRelationshipsFields } from './collections/LexicalRelationships/index.js' +import NumberFields from './collections/Number/index.js' +import PointFields from './collections/Point/index.js' +import RadioFields from './collections/Radio/index.js' +import RelationshipFields from './collections/Relationship/index.js' +import RichTextFields from './collections/RichText/index.js' +import RowFields from './collections/Row/index.js' +import SelectFields from './collections/Select/index.js' +import SelectVersionsFields from './collections/SelectVersions/index.js' +import TabsFields from './collections/Tabs/index.js' +import { TabsFields2 } from './collections/Tabs2/index.js' +import TextFields from './collections/Text/index.js' +import UIFields from './collections/UI/index.js' +import Uploads from './collections/Upload/index.js' +import Uploads2 from './collections/Upload2/index.js' +import UploadsMulti from './collections/UploadMulti/index.js' +import UploadsMultiPoly from './collections/UploadMultiPoly/index.js' +import UploadsPoly from './collections/UploadPoly/index.js' +import UploadRestricted from './collections/UploadRestricted/index.js' +import Uploads3 from './collections/Uploads3/index.js' +import TabsWithRichText from './globals/TabsWithRichText.js' +import { clearAndSeedEverything } from './seed.js' + +export const collectionSlugs: CollectionConfig[] = [ + getLexicalFieldsCollection({ + blocks: lexicalBlocks, + inlineBlocks: lexicalInlineBlocks, + }), + LexicalMigrateFields, + LexicalLocalizedFields, + LexicalObjectReferenceBugCollection, + { + slug: 'users', + admin: { + useAsTitle: 'email', + }, + auth: true, + fields: [ + { + name: 'canViewConditionalField', + type: 'checkbox', + defaultValue: true, + }, + ], + }, + LexicalInBlock, + LexicalAccessControl, + SelectVersionsFields, + ArrayFields, + BlockFields, + CheckboxFields, + CodeFields, + CollapsibleFields, + ConditionalLogic, + CustomID, + CustomTabID, + CustomRowID, + DateFields, + EmailFields, + RadioFields, + GroupFields, + RowFields, + IndexedFields, + JSONFields, + NumberFields, + PointFields, + RelationshipFields, + LexicalRelationshipsFields, + RichTextFields, + SelectFields, + TabsFields2, + TabsFields, + TextFields, + Uploads, + Uploads2, + Uploads3, + UploadsMulti, + UploadsPoly, + UploadsMultiPoly, + UploadRestricted, + UIFields, +] + +export const baseConfig: Partial = { + collections: collectionSlugs, + globals: [TabsWithRichText], + blocks: [ + { + slug: 'ConfigBlockTest', + fields: [ + { + name: 'deduplicatedText', + type: 'text', + }, + ], + }, + ], + custom: { + client: { + 'new-value': 'client available', + }, + server: { + 'new-server-value': 'only available on server', + }, + }, + admin: { + importMap: { + baseDir: path.resolve(dirname), + }, + components: { + afterNavLinks: ['/components/AfterNavLinks.js#AfterNavLinks'], + }, + custom: { + client: { + 'new-value': 'client available', + }, + }, + timezones: { + supportedTimezones: ({ defaultTimezones }) => [ + ...defaultTimezones, + { label: '(GMT-6) Monterrey, Nuevo Leon', value: 'America/Monterrey' }, + ], + defaultTimezone: 'America/Monterrey', + }, + }, + localization: { + defaultLocale: 'en', + fallback: true, + locales: ['en', 'es'], + }, + onInit: async (payload) => { + if (process.env.SEED_IN_CONFIG_ONINIT !== 'false') { + await clearAndSeedEverything(payload) + } + }, + typescript: { + outputFile: path.resolve(dirname, 'payload-types.ts'), + }, +} diff --git a/test/fields/collections/Blocks/e2e.spec.ts b/test/fields/collections/Blocks/e2e.spec.ts index 050f5aeac9..66019c0b89 100644 --- a/test/fields/collections/Blocks/e2e.spec.ts +++ b/test/fields/collections/Blocks/e2e.spec.ts @@ -196,7 +196,9 @@ describe('Block fields', () => { // ensure the block was appended to the rows const firstRow = page.locator('#field-i18nBlocks .blocks-field__row').first() await expect(firstRow).toBeVisible() - await expect(firstRow.locator('.blocks-field__block-pill-text')).toContainText('Text en') + await expect(firstRow.locator('.blocks-field__block-pill-textInI18nBlock')).toContainText( + 'Text en', + ) }) test('should render custom block row label', async () => { diff --git a/test/fields/collections/Blocks/index.ts b/test/fields/collections/Blocks/index.ts index 3936cb80fd..af8fdac104 100644 --- a/test/fields/collections/Blocks/index.ts +++ b/test/fields/collections/Blocks/index.ts @@ -53,7 +53,7 @@ export const getBlocksField = (prefix?: string): BlocksField => ({ type: 'blocks', blocks: [ { - slug: 'text', + slug: 'textRequired', fields: [ { name: 'text', @@ -64,6 +64,7 @@ export const getBlocksField = (prefix?: string): BlocksField => ({ }, { slug: 'number', + interfaceName: 'NumberBlock', fields: [ { name: 'number', @@ -155,7 +156,7 @@ const BlockFields: CollectionConfig = { type: 'blocks', blocks: [ { - slug: 'text', + slug: 'textInI18nBlock', fields: [ { name: 'text', @@ -313,7 +314,7 @@ const BlockFields: CollectionConfig = { type: 'blocks', blocks: [ { - slug: 'block', + slug: 'blockWithMinRows', fields: [ { name: 'blockTitle', @@ -396,6 +397,18 @@ const BlockFields: CollectionConfig = { }, ], }, + { + name: 'deduplicatedBlocks', + type: 'blocks', + blockReferences: ['ConfigBlockTest'], + blocks: [], + }, + { + name: 'deduplicatedBlocks2', + type: 'blocks', + blockReferences: ['ConfigBlockTest'], + blocks: [], + }, ], } diff --git a/test/fields/collections/Blocks/shared.ts b/test/fields/collections/Blocks/shared.ts index 52fe330b32..da6431e5a5 100644 --- a/test/fields/collections/Blocks/shared.ts +++ b/test/fields/collections/Blocks/shared.ts @@ -27,7 +27,7 @@ export const getBlocksFieldSeedData = (prefix?: string): any => [ }, { blockName: 'Second sub block', - blockType: 'text', + blockType: 'textRequired', text: 'second sub block', }, ], @@ -40,11 +40,11 @@ export const blocksDoc: Partial = { blocksWithMinRows: [ { blockTitle: 'first row', - blockType: 'block', + blockType: 'blockWithMinRows', }, { blockTitle: 'second row', - blockType: 'block', + blockType: 'blockWithMinRows', }, ], } diff --git a/test/fields/collections/Lexical/blocks.ts b/test/fields/collections/Lexical/blocks.ts index 5210a1e826..28611c5148 100644 --- a/test/fields/collections/Lexical/blocks.ts +++ b/test/fields/collections/Lexical/blocks.ts @@ -234,7 +234,7 @@ export const TextBlock: Block = { required: true, }, ], - slug: 'text', + slug: 'textRequired', } export const RadioButtonsBlock: Block = { @@ -371,10 +371,10 @@ export const SelectFieldBlock: Block = { } export const SubBlockBlock: Block = { - slug: 'subBlock', + slug: 'subBlockLexical', fields: [ { - name: 'subBlocks', + name: 'subBlocksLexical', type: 'blocks', blocks: [ { diff --git a/test/fields/collections/Lexical/e2e/blocks/e2e.spec.ts b/test/fields/collections/Lexical/e2e/blocks/e2e.spec.ts index 94e55ee9a7..2fc74922ab 100644 --- a/test/fields/collections/Lexical/e2e/blocks/e2e.spec.ts +++ b/test/fields/collections/Lexical/e2e/blocks/e2e.spec.ts @@ -24,13 +24,13 @@ import { saveDocAndAssert, } from '../../../../../helpers.js' import { AdminUrlUtil } from '../../../../../helpers/adminUrlUtil.js' +import { trackNetworkRequests } from '../../../../../helpers/e2e/trackNetworkRequests.js' import { initPayloadE2ENoConfig } from '../../../../../helpers/initPayloadE2ENoConfig.js' import { reInitializeDB } from '../../../../../helpers/reInitializeDB.js' import { RESTClient } from '../../../../../helpers/rest.js' import { POLL_TOPASS_TIMEOUT, TEST_TIMEOUT_LONG } from '../../../../../playwright.config.js' import { lexicalFieldsSlug } from '../../../../slugs.js' import { lexicalDocData } from '../../data.js' -import { trackNetworkRequests } from '../../../../../helpers/e2e/trackNetworkRequests.js' const filename = fileURLToPath(import.meta.url) const currentFolder = path.dirname(filename) @@ -106,7 +106,7 @@ async function createInlineBlock({ */ await page.keyboard.press(' ') await page.keyboard.press('/') - await page.keyboard.type(name.includes(' ') ? name.split(' ')[0] : name) + await page.keyboard.type(name.includes(' ') ? (name.split(' ')?.[0] ?? name) : name) // Create Rich Text Block const slashMenuPopover = page.locator('#slash-menu .slash-menu-popup') @@ -163,8 +163,8 @@ async function createInlineBlock({ } async function assertLexicalDoc({ - fn, depth = 0, + fn, }: { depth?: number fn: (args: { @@ -299,7 +299,7 @@ describe('lexicalBlocks', () => { // Check if the API result is correct await assertLexicalDoc({ - fn: async ({ lexicalWithBlocks }) => { + fn: ({ lexicalWithBlocks }) => { const rscBlock: SerializedBlockNode = lexicalWithBlocks.root .children[14] as SerializedBlockNode const paragraphNode: SerializedParagraphNode = lexicalWithBlocks.root @@ -360,13 +360,15 @@ describe('lexicalBlocks', () => { const dependsOnSiblingData = newBlock.locator('#field-group__dependsOnSiblingData').first() const dependsOnBlockData = newBlock.locator('#field-group__dependsOnBlockData').first() + await expect(page.locator('.payload-toast-container .payload-toast-item')).toBeHidden() + return { - topLevelDocTextField, - blockTextField, blockGroupTextField, + blockTextField, dependsOnDocData, - dependsOnSiblingData, dependsOnBlockData, + dependsOnSiblingData, + topLevelDocTextField, newBlock, } } @@ -549,14 +551,15 @@ describe('lexicalBlocks', () => { .locator('#field-group__textDependsOnSiblingData') .first() const dependsOnBlockData = newBlock.locator('#field-group__textDependsOnBlockData').first() + await expect(page.locator('.payload-toast-container .payload-toast-item')).toBeHidden() return { - topLevelDocTextField, - blockTextField, blockGroupTextField, + blockTextField, dependsOnDocData, dependsOnSiblingData, dependsOnBlockData, + topLevelDocTextField, newBlock, } } @@ -570,7 +573,7 @@ describe('lexicalBlocks', () => { await expect(page.locator('.payload-toast-container')).toHaveText( 'The following fields are invalid: Lexical With Blocks, LexicalWithBlocks > Group > Text Depends On Doc Data', ) - await expect(page.locator('.payload-toast-container')).not.toBeVisible() + await expect(page.locator('.payload-toast-container .payload-toast-item')).toBeHidden() await trackNetworkRequests( page, @@ -593,7 +596,7 @@ describe('lexicalBlocks', () => { await expect(page.locator('.payload-toast-container')).toHaveText( 'The following fields are invalid: Lexical With Blocks, LexicalWithBlocks > Group > Text Depends On Sibling Data', ) - await expect(page.locator('.payload-toast-container')).not.toBeVisible() + await expect(page.locator('.payload-toast-container .payload-toast-item')).toBeHidden() await trackNetworkRequests( page, @@ -617,7 +620,7 @@ describe('lexicalBlocks', () => { 'The following fields are invalid: Lexical With Blocks, LexicalWithBlocks > Group > Text Depends On Block Data', ) - await expect(page.locator('.payload-toast-container')).not.toBeVisible() + await expect(page.locator('.payload-toast-container .payload-toast-item')).toBeHidden() await trackNetworkRequests( page, @@ -701,7 +704,7 @@ describe('lexicalBlocks', () => { await saveDocAndAssert(page) await assertLexicalDoc({ - fn: async ({ lexicalWithBlocks }) => { + fn: ({ lexicalWithBlocks }) => { const blockNode: SerializedBlockNode = lexicalWithBlocks.root .children[4] as SerializedBlockNode @@ -761,7 +764,7 @@ describe('lexicalBlocks', () => { await saveDocAndAssert(page) await assertLexicalDoc({ - fn: async ({ lexicalWithBlocks }) => { + fn: ({ lexicalWithBlocks }) => { const blockNode: SerializedBlockNode = lexicalWithBlocks.root .children[4] as SerializedBlockNode const paragraphNodeInBlockNodeRichText = blockNode.fields.richTextField.root.children[1] @@ -836,7 +839,7 @@ describe('lexicalBlocks', () => { // Make sure it's being returned from the API as well await assertLexicalDoc({ - fn: async ({ lexicalWithBlocks }) => { + fn: ({ lexicalWithBlocks }) => { expect( ( (lexicalWithBlocks.root.children[0] as SerializedParagraphNode) @@ -888,13 +891,17 @@ describe('lexicalBlocks', () => { .first() await expect(popoverHeading2Button).toBeVisible() + // scroll slash menu down + await popoverHeading2Button.hover() + await page.mouse.wheel(0, 250) + await expect(async () => { // Make sure that, even though it's "visible", it's not actually covered by something else due to z-index issues const popoverHeading2ButtonBoundingBox = await popoverHeading2Button.boundingBox() expect(popoverHeading2ButtonBoundingBox).not.toBeNull() expect(popoverHeading2ButtonBoundingBox).not.toBeUndefined() - expect(popoverHeading2ButtonBoundingBox.height).toBeGreaterThan(0) - expect(popoverHeading2ButtonBoundingBox.width).toBeGreaterThan(0) + expect(popoverHeading2ButtonBoundingBox?.height).toBeGreaterThan(0) + expect(popoverHeading2ButtonBoundingBox?.width).toBeGreaterThan(0) // Now click the button to see if it actually works. Simulate an actual mouse click instead of using .click() // by using page.mouse and the correct coordinates @@ -903,8 +910,8 @@ describe('lexicalBlocks', () => { // This is why we use page.mouse.click() here. It's the most effective way of detecting such a z-index issue // and usually the only method which works. - const x = popoverHeading2ButtonBoundingBox.x - const y = popoverHeading2ButtonBoundingBox.y + const x = popoverHeading2ButtonBoundingBox?.x ?? 0 + const y = popoverHeading2ButtonBoundingBox?.y ?? 0 await page.mouse.click(x, y, { button: 'left' }) @@ -954,13 +961,16 @@ describe('lexicalBlocks', () => { await page.keyboard.type('text123') await expect(newContentTextArea).toHaveText('text123') + await wait(1000) + await saveDocAndAssert(page) await assertLexicalDoc({ - fn: async ({ lexicalWithBlocks }) => { + fn: ({ lexicalWithBlocks }) => { const blockNode: SerializedBlockNode = lexicalWithBlocks.root .children[5] as SerializedBlockNode - const subBlocks = blockNode.fields.subBlocks + + const subBlocks = blockNode.fields.subBlocksLexical expect(subBlocks).toHaveLength(2) @@ -1200,7 +1210,7 @@ describe('lexicalBlocks', () => { await saveDocAndAssert(page) await assertLexicalDoc({ - fn: async ({ lexicalWithBlocks }) => { + fn: ({ lexicalWithBlocks }) => { const radio1: SerializedBlockNode = lexicalWithBlocks.root .children[8] as SerializedBlockNode const radio2: SerializedBlockNode = lexicalWithBlocks.root @@ -1437,7 +1447,7 @@ describe('lexicalBlocks', () => { await expect(tab2Text1Field).toHaveValue('Some text2 changed') await assertLexicalDoc({ - fn: async ({ lexicalWithBlocks }) => { + fn: ({ lexicalWithBlocks }) => { const tabBlockData: SerializedBlockNode = lexicalWithBlocks.root .children[13] as SerializedBlockNode @@ -1455,7 +1465,7 @@ describe('lexicalBlocks', () => { await codeEditor.scrollIntoViewIfNeeded() await expect(codeEditor).toBeVisible() - const height = (await codeEditor.boundingBox()).height + const height = (await codeEditor.boundingBox())?.height await expect(() => { expect(height).toBe(56) @@ -1463,7 +1473,7 @@ describe('lexicalBlocks', () => { await codeEditor.click() await page.keyboard.press('Enter') - const height2 = (await codeEditor.boundingBox()).height + const height2 = (await codeEditor.boundingBox())?.height await expect(() => { expect(height2).toBe(74) }).toPass() @@ -1494,8 +1504,8 @@ describe('lexicalBlocks', () => { test('ensure inline blocks can be created and its values can be mutated from outside their form', async () => { const { richTextField } = await navigateToLexicalFields() const { inlineBlockDrawer, saveDrawer } = await createInlineBlock({ - richTextField, name: 'My Inline Block', + richTextField, }) // Click on react select in drawer, select 'value1' @@ -1510,7 +1520,7 @@ describe('lexicalBlocks', () => { await saveDocAndAssert(page) // Check if the API result is correct await assertLexicalDoc({ - fn: async ({ lexicalWithBlocks }) => { + fn: ({ lexicalWithBlocks }) => { const firstParagraph: SerializedParagraphNode = lexicalWithBlocks.root .children[0] as SerializedParagraphNode const inlineBlock: SerializedInlineBlockNode = firstParagraph @@ -1548,13 +1558,13 @@ describe('lexicalBlocks', () => { // Save and check api result await saveDocAndAssert(page) await assertLexicalDoc({ - fn: async ({ lexicalWithBlocks }) => { + fn: ({ lexicalWithBlocks }) => { const firstParagraph: SerializedParagraphNode = lexicalWithBlocks.root .children[0] as SerializedParagraphNode const inlineBlock: SerializedInlineBlockNode = firstParagraph .children[1] as SerializedInlineBlockNode - await expect(inlineBlock.fields.key).toBe('value2') + expect(inlineBlock.fields.key).toBe('value2') }, }) }) @@ -1562,8 +1572,8 @@ describe('lexicalBlocks', () => { test('ensure upload fields within inline blocks store and populate correctly', async () => { const { richTextField } = await navigateToLexicalFields() const { inlineBlockDrawer, saveDrawer } = await createInlineBlock({ - richTextField, name: 'Avatar Group', + richTextField, }) // Click button that says Add Avatar diff --git a/test/fields/collections/Lexical/generateLexicalRichText.ts b/test/fields/collections/Lexical/generateLexicalRichText.ts index 98ecc47e40..b4e804600a 100644 --- a/test/fields/collections/Lexical/generateLexicalRichText.ts +++ b/test/fields/collections/Lexical/generateLexicalRichText.ts @@ -165,8 +165,8 @@ export function generateLexicalRichText(): TypedEditorState< fields: { id: '65298b2bdb4ef8c744a7faac', blockName: 'Block Node, with Blocks Field, With RichText Field, With Relationship Node', - blockType: 'subBlock', - subBlocks: [ + blockType: 'subBlockLexical', + subBlocksLexical: [ { id: '65298b2edb4ef8c744a7faad', richText: { diff --git a/test/fields/collections/Lexical/index.ts b/test/fields/collections/Lexical/index.ts index 97e3360f4a..122c7ee416 100644 --- a/test/fields/collections/Lexical/index.ts +++ b/test/fields/collections/Lexical/index.ts @@ -1,6 +1,6 @@ import type { ServerEditorConfig } from '@payloadcms/richtext-lexical' import type { SerializedEditorState } from '@payloadcms/richtext-lexical/lexical' -import type { CollectionConfig } from 'payload' +import type { Block, BlockSlug, CollectionConfig } from 'payload' import { BlocksFeature, @@ -37,364 +37,372 @@ import { } from './blocks.js' import { ModifyInlineBlockFeature } from './ModifyInlineBlockFeature/feature.server.js' -const editorConfig: ServerEditorConfig = { - features: [ - ...defaultEditorFeatures, - //TestRecorderFeature(), - TreeViewFeature(), - //HTMLConverterFeature(), - FixedToolbarFeature(), - LinkFeature({ - fields: ({ defaultFields }) => [ - ...defaultFields, - { - name: 'rel', - type: 'select', - admin: { - description: - 'The rel attribute defines the relationship between a linked resource and the current document. This is a custom link field.', - }, - hasMany: true, - label: 'Rel Attribute', - options: ['noopener', 'noreferrer', 'nofollow'], - }, - ], - }), - UploadFeature({ - collections: { - uploads: { - fields: [ - { - name: 'caption', - type: 'richText', - editor: lexicalEditor(), - }, - ], +export const lexicalBlocks: (Block | BlockSlug)[] = [ + ValidationBlock, + FilterOptionsBlock, + AsyncHooksBlock, + RichTextBlock, + TextBlock, + UploadAndRichTextBlock, + SelectFieldBlock, + RelationshipBlock, + RelationshipHasManyBlock, + SubBlockBlock, + RadioButtonsBlock, + ConditionalLayoutBlock, + TabBlock, + CodeBlock, + { + slug: 'myBlock', + admin: { + components: {}, + }, + fields: [ + { + name: 'key', + label: () => { + return 'Key' }, + type: 'select', + options: ['value1', 'value2', 'value3'], }, - }), - ModifyInlineBlockFeature(), - BlocksFeature({ - blocks: [ - ValidationBlock, - FilterOptionsBlock, - AsyncHooksBlock, - RichTextBlock, - TextBlock, - UploadAndRichTextBlock, - SelectFieldBlock, - RelationshipBlock, - RelationshipHasManyBlock, - SubBlockBlock, - RadioButtonsBlock, - ConditionalLayoutBlock, - TabBlock, - CodeBlock, - { - slug: 'myBlock', - admin: { - components: {}, - }, - fields: [ - { - name: 'key', - label: () => { - return 'Key' - }, - type: 'select', - options: ['value1', 'value2', 'value3'], - }, - ], - }, - { - slug: 'myBlockWithLabel', - admin: { - components: { - Label: '/collections/Lexical/blockComponents/LabelComponent.js#LabelComponent', - }, - }, - fields: [ - { - name: 'key', - label: () => { - return 'Key' - }, - type: 'select', - options: ['value1', 'value2', 'value3'], - }, - ], - }, - { - slug: 'myBlockWithBlock', - admin: { - components: { - Block: '/collections/Lexical/blockComponents/BlockComponent.js#BlockComponent', - }, - }, - fields: [ - { - name: 'key', - label: () => { - return 'Key' - }, - type: 'select', - options: ['value1', 'value2', 'value3'], - }, - ], - }, - { - slug: 'BlockRSC', - - admin: { - components: { - Block: '/collections/Lexical/blockComponents/BlockComponentRSC.js#BlockComponentRSC', - }, - }, - fields: [ - { - name: 'key', - label: () => { - return 'Key' - }, - type: 'select', - options: ['value1', 'value2', 'value3'], - }, - ], - }, - { - slug: 'myBlockWithBlockAndLabel', - admin: { - components: { - Block: '/collections/Lexical/blockComponents/BlockComponent.js#BlockComponent', - Label: '/collections/Lexical/blockComponents/LabelComponent.js#LabelComponent', - }, - }, - fields: [ - { - name: 'key', - label: () => { - return 'Key' - }, - type: 'select', - options: ['value1', 'value2', 'value3'], - }, - ], - }, - ], - inlineBlocks: [ - { - slug: 'AvatarGroup', - interfaceName: 'AvatarGroupBlock', - fields: [ - { - name: 'avatars', - type: 'array', - minRows: 1, - maxRows: 6, - fields: [ - { - name: 'image', - type: 'upload', - relationTo: 'uploads', - }, - ], - }, - ], - }, - { - slug: 'myInlineBlock', - admin: { - components: {}, - }, - fields: [ - { - name: 'key', - label: () => { - return 'Key' - }, - type: 'select', - options: ['value1', 'value2', 'value3'], - }, - ], - }, - { - slug: 'myInlineBlockWithLabel', - admin: { - components: { - Label: '/collections/Lexical/inlineBlockComponents/LabelComponent.js#LabelComponent', - }, - }, - fields: [ - { - name: 'key', - label: () => { - return 'Key' - }, - type: 'select', - options: ['value1', 'value2', 'value3'], - }, - ], - }, - { - slug: 'myInlineBlockWithBlock', - admin: { - components: { - Block: '/collections/Lexical/inlineBlockComponents/BlockComponent.js#BlockComponent', - }, - }, - fields: [ - { - name: 'key', - label: () => { - return 'Key' - }, - type: 'select', - options: ['value1', 'value2', 'value3'], - }, - ], - }, - { - slug: 'myInlineBlockWithBlockAndLabel', - admin: { - components: { - Block: '/collections/Lexical/inlineBlockComponents/BlockComponent.js#BlockComponent', - Label: '/collections/Lexical/inlineBlockComponents/LabelComponent.js#LabelComponent', - }, - }, - fields: [ - { - name: 'key', - label: () => { - return 'Key' - }, - type: 'select', - options: ['value1', 'value2', 'value3'], - }, - ], - }, - ], - }), - EXPERIMENTAL_TableFeature(), - ], -} - -export const LexicalFields: CollectionConfig = { - slug: lexicalFieldsSlug, - access: { - read: () => true, + ], }, - admin: { - listSearchableFields: ['title', 'richTextLexicalCustomFields'], - useAsTitle: 'title', + { + slug: 'myBlockWithLabel', + admin: { + components: { + Label: '/collections/Lexical/blockComponents/LabelComponent.js#LabelComponent', + }, + }, + fields: [ + { + name: 'key', + label: () => { + return 'Key' + }, + type: 'select', + options: ['value1', 'value2', 'value3'], + }, + ], }, - fields: [ - { - name: 'title', - type: 'text', - required: true, + { + slug: 'myBlockWithBlock', + admin: { + components: { + Block: '/collections/Lexical/blockComponents/BlockComponent.js#BlockComponent', + }, }, - { - name: 'lexicalRootEditor', - type: 'richText', + fields: [ + { + name: 'key', + label: () => { + return 'Key' + }, + type: 'select', + options: ['value1', 'value2', 'value3'], + }, + ], + }, + { + slug: 'BlockRSC', + + admin: { + components: { + Block: '/collections/Lexical/blockComponents/BlockComponentRSC.js#BlockComponentRSC', + }, }, - { - name: 'lexicalSimple', - type: 'richText', - editor: lexicalEditor({ - features: ({ defaultFeatures }) => [ - //TestRecorderFeature(), - TreeViewFeature(), - BlocksFeature({ - blocks: [ - RichTextBlock, - TextBlock, - UploadAndRichTextBlock, - SelectFieldBlock, - RelationshipBlock, - RelationshipHasManyBlock, - SubBlockBlock, - RadioButtonsBlock, - ConditionalLayoutBlock, + fields: [ + { + name: 'key', + label: () => { + return 'Key' + }, + type: 'select', + options: ['value1', 'value2', 'value3'], + }, + ], + }, + { + slug: 'myBlockWithBlockAndLabel', + admin: { + components: { + Block: '/collections/Lexical/blockComponents/BlockComponent.js#BlockComponent', + Label: '/collections/Lexical/blockComponents/LabelComponent.js#LabelComponent', + }, + }, + fields: [ + { + name: 'key', + label: () => { + return 'Key' + }, + type: 'select', + options: ['value1', 'value2', 'value3'], + }, + ], + }, +] + +export const lexicalInlineBlocks: (Block | BlockSlug)[] = [ + { + slug: 'AvatarGroup', + interfaceName: 'AvatarGroupBlock', + fields: [ + { + name: 'avatars', + type: 'array', + minRows: 1, + maxRows: 6, + fields: [ + { + name: 'image', + type: 'upload', + relationTo: 'uploads', + }, + ], + }, + ], + }, + { + slug: 'myInlineBlock', + admin: { + components: {}, + }, + fields: [ + { + name: 'key', + label: () => { + return 'Key' + }, + type: 'select', + options: ['value1', 'value2', 'value3'], + }, + ], + }, + { + slug: 'myInlineBlockWithLabel', + admin: { + components: { + Label: '/collections/Lexical/inlineBlockComponents/LabelComponent.js#LabelComponent', + }, + }, + fields: [ + { + name: 'key', + label: () => { + return 'Key' + }, + type: 'select', + options: ['value1', 'value2', 'value3'], + }, + ], + }, + { + slug: 'myInlineBlockWithBlock', + admin: { + components: { + Block: '/collections/Lexical/inlineBlockComponents/BlockComponent.js#BlockComponent', + }, + }, + fields: [ + { + name: 'key', + label: () => { + return 'Key' + }, + type: 'select', + options: ['value1', 'value2', 'value3'], + }, + ], + }, + { + slug: 'myInlineBlockWithBlockAndLabel', + admin: { + components: { + Block: '/collections/Lexical/inlineBlockComponents/BlockComponent.js#BlockComponent', + Label: '/collections/Lexical/inlineBlockComponents/LabelComponent.js#LabelComponent', + }, + }, + fields: [ + { + name: 'key', + label: () => { + return 'Key' + }, + type: 'select', + options: ['value1', 'value2', 'value3'], + }, + ], + }, +] + +export const getLexicalFieldsCollection: (args: { + blocks: (Block | BlockSlug)[] + inlineBlocks: (Block | BlockSlug)[] +}) => CollectionConfig = ({ blocks, inlineBlocks }) => { + const editorConfig: ServerEditorConfig = { + features: [ + ...defaultEditorFeatures, + //TestRecorderFeature(), + TreeViewFeature(), + //HTMLConverterFeature(), + FixedToolbarFeature(), + LinkFeature({ + fields: ({ defaultFields }) => [ + ...defaultFields, + { + name: 'rel', + type: 'select', + admin: { + description: + 'The rel attribute defines the relationship between a linked resource and the current document. This is a custom link field.', + }, + hasMany: true, + label: 'Rel Attribute', + options: ['noopener', 'noreferrer', 'nofollow'], + }, + ], + }), + UploadFeature({ + collections: { + uploads: { + fields: [ + { + name: 'caption', + type: 'richText', + editor: lexicalEditor(), + }, ], - }), - HeadingFeature({ enabledHeadingSizes: ['h2', 'h4'] }), - ], + }, + }, }), + ModifyInlineBlockFeature(), + BlocksFeature({ + blocks, + inlineBlocks, + }), + EXPERIMENTAL_TableFeature(), + ], + } + return { + slug: lexicalFieldsSlug, + access: { + read: () => true, }, - { - type: 'ui', - name: 'clearLexicalState', - admin: { - components: { - Field: { - path: '/collections/Lexical/components/ClearState.js#ClearState', - clientProps: { - fieldName: 'lexicalSimple', + admin: { + listSearchableFields: ['title', 'richTextLexicalCustomFields'], + useAsTitle: 'title', + }, + fields: [ + { + name: 'title', + type: 'text', + required: true, + }, + { + name: 'lexicalRootEditor', + type: 'richText', + }, + { + name: 'lexicalSimple', + type: 'richText', + editor: lexicalEditor({ + features: ({ defaultFeatures }) => [ + //TestRecorderFeature(), + TreeViewFeature(), + BlocksFeature({ + blocks: [ + RichTextBlock, + TextBlock, + UploadAndRichTextBlock, + SelectFieldBlock, + RelationshipBlock, + RelationshipHasManyBlock, + SubBlockBlock, + RadioButtonsBlock, + ConditionalLayoutBlock, + ], + }), + HeadingFeature({ enabledHeadingSizes: ['h2', 'h4'] }), + ], + }), + }, + { + type: 'ui', + name: 'clearLexicalState', + admin: { + components: { + Field: { + path: '/collections/Lexical/components/ClearState.js#ClearState', + clientProps: { + fieldName: 'lexicalSimple', + }, }, }, }, }, - }, - { - name: 'lexicalWithBlocks', - type: 'richText', - editor: lexicalEditor({ - admin: { - hideGutter: false, - }, - features: editorConfig.features, - }), - required: true, - }, - //{ - // name: 'rendered', - // type: 'ui', - // admin: { - // components: { - // Field: './collections/Lexical/LexicalRendered.js#LexicalRendered', - // }, - // }, - //}, - { - name: 'lexicalWithBlocks_markdown', - type: 'textarea', - hooks: { - afterRead: [ - async ({ data, req, siblingData }) => { - const yourSanitizedEditorConfig = await sanitizeServerEditorConfig( - editorConfig, - req.payload.config, - ) - - const headlessEditor = createHeadlessEditor({ - nodes: getEnabledNodes({ - editorConfig: yourSanitizedEditorConfig, - }), - }) - - const yourEditorState: SerializedEditorState = siblingData.lexicalWithBlocks - try { - headlessEditor.update( - () => { - headlessEditor.setEditorState(headlessEditor.parseEditorState(yourEditorState)) - }, - { discrete: true }, - ) - } catch (e) { - /* empty */ - } - - // Export to markdown - let markdown: string = '' - headlessEditor.getEditorState().read(() => { - markdown = $convertToMarkdownString( - yourSanitizedEditorConfig?.features?.markdownTransformers, - ) - }) - return markdown + { + name: 'lexicalWithBlocks', + type: 'richText', + editor: lexicalEditor({ + admin: { + hideGutter: false, }, - ], + features: editorConfig.features, + }), + required: true, }, - }, - ], + //{ + // name: 'rendered', + // type: 'ui', + // admin: { + // components: { + // Field: './collections/Lexical/LexicalRendered.js#LexicalRendered', + // }, + // }, + //}, + { + name: 'lexicalWithBlocks_markdown', + type: 'textarea', + hooks: { + afterRead: [ + async ({ data, req, siblingData }) => { + const yourSanitizedEditorConfig = await sanitizeServerEditorConfig( + editorConfig, + req.payload.config, + ) + + const headlessEditor = createHeadlessEditor({ + nodes: getEnabledNodes({ + editorConfig: yourSanitizedEditorConfig, + }), + }) + + const yourEditorState: SerializedEditorState = siblingData.lexicalWithBlocks + try { + headlessEditor.update( + () => { + headlessEditor.setEditorState(headlessEditor.parseEditorState(yourEditorState)) + }, + { discrete: true }, + ) + } catch (e) { + /* empty */ + } + + // Export to markdown + let markdown: string = '' + headlessEditor.getEditorState().read(() => { + markdown = $convertToMarkdownString( + yourSanitizedEditorConfig?.features?.markdownTransformers, + ) + }) + return markdown + }, + ], + }, + }, + ], + } } diff --git a/test/fields/collections/LexicalLocalized/generateLexicalRichText.ts b/test/fields/collections/LexicalLocalized/generateLexicalRichText.ts index 8d0fae35a6..e42e75a4e8 100644 --- a/test/fields/collections/LexicalLocalized/generateLexicalRichText.ts +++ b/test/fields/collections/LexicalLocalized/generateLexicalRichText.ts @@ -34,7 +34,7 @@ export function generateLexicalLocalizedRichText(text1: string, text2: string, b blockName: '', textLocalized: text2, counter: 1, - blockType: 'block', + blockType: 'blockLexicalLocalized', }, }, ], diff --git a/test/fields/collections/LexicalLocalized/index.ts b/test/fields/collections/LexicalLocalized/index.ts index e680416d6e..0f6edea165 100644 --- a/test/fields/collections/LexicalLocalized/index.ts +++ b/test/fields/collections/LexicalLocalized/index.ts @@ -32,7 +32,7 @@ export const LexicalLocalizedFields: CollectionConfig = { BlocksFeature({ blocks: [ { - slug: 'block', + slug: 'blockLexicalLocalized', fields: [ { name: 'textLocalized', @@ -80,7 +80,7 @@ export const LexicalLocalizedFields: CollectionConfig = { BlocksFeature({ blocks: [ { - slug: 'block', + slug: 'blockLexicalLocalized2', fields: [ { name: 'textLocalized', diff --git a/test/fields/collections/Number/index.ts b/test/fields/collections/Number/index.ts index be81b643c7..dff496c201 100644 --- a/test/fields/collections/Number/index.ts +++ b/test/fields/collections/Number/index.ts @@ -95,7 +95,7 @@ const NumberFields: CollectionConfig = { type: 'blocks', blocks: [ { - slug: 'block', + slug: 'blockWithNumber', fields: [ { name: 'numbers', diff --git a/test/fields/collections/RichText/blocks.ts b/test/fields/collections/RichText/blocks.ts index 8b3aee2f1c..b0437cca81 100644 --- a/test/fields/collections/RichText/blocks.ts +++ b/test/fields/collections/RichText/blocks.ts @@ -10,7 +10,7 @@ export const TextBlock: Block = { required: true, }, ], - slug: 'text', + slug: 'textRequired', } export const UploadAndRichTextBlock: Block = { diff --git a/test/fields/collections/RichText/data.ts b/test/fields/collections/RichText/data.ts index 9be85d7030..9bc9a32093 100644 --- a/test/fields/collections/RichText/data.ts +++ b/test/fields/collections/RichText/data.ts @@ -7,7 +7,7 @@ export const richTextBlocks = [ text: 'Regular text', }, { - blockType: 'richTextBlock', + blockType: 'richTextBlockSlate', text: [ { children: [ diff --git a/test/fields/collections/RichText/index.ts b/test/fields/collections/RichText/index.ts index 2c3ece562d..d64377a46b 100644 --- a/test/fields/collections/RichText/index.ts +++ b/test/fields/collections/RichText/index.ts @@ -307,7 +307,7 @@ const RichTextFields: CollectionConfig = { ], }, { - slug: 'richTextBlock', + slug: 'richTextBlockSlate', fields: [ { editor: slateEditor({}), diff --git a/test/fields/collections/Text/index.ts b/test/fields/collections/Text/index.ts index fb22b46538..4d1d5f8726 100644 --- a/test/fields/collections/Text/index.ts +++ b/test/fields/collections/Text/index.ts @@ -183,7 +183,7 @@ const TextFields: CollectionConfig = { type: 'blocks', blocks: [ { - slug: 'block', + slug: 'blockWithText', fields: [ { name: 'texts', diff --git a/test/fields/config.blockreferences.ts b/test/fields/config.blockreferences.ts new file mode 100644 index 0000000000..1eb221dafb --- /dev/null +++ b/test/fields/config.blockreferences.ts @@ -0,0 +1,35 @@ +/* eslint-disable no-restricted-exports */ +import type { BlockSlug } from 'payload' + +import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js' +import { autoDedupeBlocksPlugin } from '../helpers/autoDedupeBlocksPlugin/index.js' +import { baseConfig } from './baseConfig.js' +import { + getLexicalFieldsCollection, + lexicalBlocks, + lexicalInlineBlocks, +} from './collections/Lexical/index.js' +import { lexicalFieldsSlug } from './slugs.js' + +export default buildConfigWithDefaults({ + ...baseConfig, + blocks: [ + ...(baseConfig.blocks ?? []), + ...lexicalBlocks.filter((block) => typeof block !== 'string'), + ...lexicalInlineBlocks.filter((block) => typeof block !== 'string'), + ], + collections: baseConfig.collections?.map((collection) => { + if (collection.slug === lexicalFieldsSlug) { + return getLexicalFieldsCollection({ + blocks: lexicalBlocks.map((block) => + typeof block === 'string' ? block : block.slug, + ) as BlockSlug[], + inlineBlocks: lexicalInlineBlocks.map((block) => + typeof block === 'string' ? block : block.slug, + ) as BlockSlug[], + }) + } + return collection + }), + plugins: [autoDedupeBlocksPlugin({ silent: true })], +}) diff --git a/test/fields/config.ts b/test/fields/config.ts index 28a5929b81..cf53ea4bb7 100644 --- a/test/fields/config.ts +++ b/test/fields/config.ts @@ -1,154 +1,6 @@ -import type { CollectionConfig } from 'payload' - -import { fileURLToPath } from 'node:url' -import path from 'path' - -const filename = fileURLToPath(import.meta.url) -const dirname = path.dirname(filename) - import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js' -import ArrayFields from './collections/Array/index.js' -import BlockFields from './collections/Blocks/index.js' -import CheckboxFields from './collections/Checkbox/index.js' -import CodeFields from './collections/Code/index.js' -import CollapsibleFields from './collections/Collapsible/index.js' -import ConditionalLogic from './collections/ConditionalLogic/index.js' -import { CustomRowID } from './collections/CustomID/CustomRowID.js' -import { CustomTabID } from './collections/CustomID/CustomTabID.js' -import { CustomID } from './collections/CustomID/index.js' -import DateFields from './collections/Date/index.js' -import EmailFields from './collections/Email/index.js' -import GroupFields from './collections/Group/index.js' -import IndexedFields from './collections/Indexed/index.js' -import JSONFields from './collections/JSON/index.js' -import { LexicalFields } from './collections/Lexical/index.js' -import { LexicalAccessControl } from './collections/LexicalAccessControl/index.js' -import { LexicalInBlock } from './collections/LexicalInBlock/index.js' -import { LexicalLocalizedFields } from './collections/LexicalLocalized/index.js' -import { LexicalMigrateFields } from './collections/LexicalMigrate/index.js' -import { LexicalObjectReferenceBugCollection } from './collections/LexicalObjectReferenceBug/index.js' -import { LexicalRelationshipsFields } from './collections/LexicalRelationships/index.js' -import NumberFields from './collections/Number/index.js' -import PointFields from './collections/Point/index.js' -import RadioFields from './collections/Radio/index.js' -import RelationshipFields from './collections/Relationship/index.js' -import RichTextFields from './collections/RichText/index.js' -import RowFields from './collections/Row/index.js' -import SelectFields from './collections/Select/index.js' -import SelectVersionsFields from './collections/SelectVersions/index.js' -import TabsFields from './collections/Tabs/index.js' -import { TabsFields2 } from './collections/Tabs2/index.js' -import TextFields from './collections/Text/index.js' -import UIFields from './collections/UI/index.js' -import Uploads from './collections/Upload/index.js' -import Uploads2 from './collections/Upload2/index.js' -import UploadsMulti from './collections/UploadMulti/index.js' -import UploadsMultiPoly from './collections/UploadMultiPoly/index.js' -import UploadsPoly from './collections/UploadPoly/index.js' -import UploadRestricted from './collections/UploadRestricted/index.js' -import Uploads3 from './collections/Uploads3/index.js' -import TabsWithRichText from './globals/TabsWithRichText.js' -import { clearAndSeedEverything } from './seed.js' +import { baseConfig } from './baseConfig.js' -export const collectionSlugs: CollectionConfig[] = [ - LexicalFields, - LexicalMigrateFields, - LexicalLocalizedFields, - LexicalObjectReferenceBugCollection, - { - slug: 'users', - admin: { - useAsTitle: 'email', - }, - auth: true, - fields: [ - { - name: 'canViewConditionalField', - type: 'checkbox', - defaultValue: true, - }, - ], - }, - LexicalInBlock, - LexicalAccessControl, - SelectVersionsFields, - ArrayFields, - BlockFields, - CheckboxFields, - CodeFields, - CollapsibleFields, - ConditionalLogic, - CustomID, - CustomTabID, - CustomRowID, - DateFields, - EmailFields, - RadioFields, - GroupFields, - RowFields, - IndexedFields, - JSONFields, - NumberFields, - PointFields, - RelationshipFields, - LexicalRelationshipsFields, - RichTextFields, - SelectFields, - TabsFields2, - TabsFields, - TextFields, - Uploads, - Uploads2, - Uploads3, - UploadsMulti, - UploadsPoly, - UploadsMultiPoly, - UploadRestricted, - UIFields, -] +export default buildConfigWithDefaults(baseConfig) -export default buildConfigWithDefaults({ - collections: collectionSlugs, - globals: [TabsWithRichText], - custom: { - client: { - 'new-value': 'client available', - }, - server: { - 'new-server-value': 'only available on server', - }, - }, - admin: { - importMap: { - baseDir: path.resolve(dirname), - }, - components: { - afterNavLinks: ['/components/AfterNavLinks.js#AfterNavLinks'], - }, - custom: { - client: { - 'new-value': 'client available', - }, - }, - timezones: { - supportedTimezones: ({ defaultTimezones }) => [ - ...defaultTimezones, - { label: '(GMT-6) Monterrey, Nuevo Leon', value: 'America/Monterrey' }, - ], - defaultTimezone: 'America/Monterrey', - }, - }, - localization: { - defaultLocale: 'en', - fallback: true, - locales: ['en', 'es'], - }, - onInit: async (payload) => { - if (process.env.SEED_IN_CONFIG_ONINIT !== 'false') { - await clearAndSeedEverything(payload) - } - }, - typescript: { - outputFile: path.resolve(dirname, 'payload-types.ts'), - }, -}) +export { collectionSlugs } from './baseConfig.js' diff --git a/test/fields/int.spec.ts b/test/fields/int.spec.ts index 5a8b1fef3e..b1bc3849f4 100644 --- a/test/fields/int.spec.ts +++ b/test/fields/int.spec.ts @@ -258,7 +258,7 @@ describe('Fields', () => { text: 'required', blocks: [ { - blockType: 'block', + blockType: 'blockWithText', texts: ['text_1', 'text_2'], }, ], @@ -271,7 +271,7 @@ describe('Fields', () => { text: 'required', blocks: [ { - blockType: 'block', + blockType: 'blockWithText', texts: ['text_other', 'text_2'], }, ], @@ -703,7 +703,7 @@ describe('Fields', () => { expect(block.blocks[0]?.hasManyBlocks).toStrictEqual(['a', 'b']) }) - it('should work with autosave ', async () => { + it('should work with autosave', async () => { let data = await payload.create({ collection: 'select-versions-fields', data: { hasMany: ['a', 'b', 'c'] }, @@ -975,7 +975,7 @@ describe('Fields', () => { data: { blocks: [ { - blockType: 'block', + blockType: 'blockWithNumber', numbers: [10, 30], }, ], @@ -987,7 +987,7 @@ describe('Fields', () => { data: { blocks: [ { - blockType: 'block', + blockType: 'blockWithNumber', numbers: [10, 40], }, ], diff --git a/test/fields/payload-types.ts b/test/fields/payload-types.ts index 742fb0d015..3ef2257488 100644 --- a/test/fields/payload-types.ts +++ b/test/fields/payload-types.ts @@ -6,6 +6,22 @@ * and re-run `payload generate:types` to regenerate this file. */ +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "BlockColumns". + */ +export type BlockColumns = + | { + text?: string | null; + subArray?: + | { + requiredText: string; + id?: string | null; + }[] + | null; + id?: string | null; + }[] + | null; /** * Supported timezones in IANA format. * @@ -60,27 +76,64 @@ export type SupportedTimezones = | 'Pacific/Auckland' | 'Pacific/Fiji' | 'America/Monterrey'; -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "BlockColumns". - */ -export type BlockColumns = - | { - text?: string | null; - subArray?: - | { - requiredText: string; - id?: string | null; - }[] - | null; - id?: string | null; - }[] - | null; export interface Config { auth: { users: UserAuthOperations; }; + blocks: { + ConfigBlockTest: ConfigBlockTest; + validationBlock: ValidationBlock; + filterOptionsBlock: FilterOptionsBlock; + asyncHooksBlock: AsyncHooksBlock; + richTextBlock: RichTextBlock; + textRequired: TextRequired; + uploadAndRichText: UploadAndRichText; + select: Select; + relationshipBlock: RelationshipBlock; + relationshipHasManyBlock: RelationshipHasManyBlock; + subBlockLexical: SubBlockLexical; + radioButtons: LexicalBlocksRadioButtonsBlock; + conditionalLayout: ConditionalLayout; + tabBlock: TabBlock; + code: Code; + myBlock: MyBlock; + myBlockWithLabel: MyBlockWithLabel; + myBlockWithBlock: MyBlockWithBlock; + BlockRSC: BlockRSC; + myBlockWithBlockAndLabel: MyBlockWithBlockAndLabel; + AvatarGroup: AvatarGroupBlock; + myInlineBlock: MyInlineBlock; + myInlineBlockWithLabel: MyInlineBlockWithLabel; + myInlineBlockWithBlock: MyInlineBlockWithBlock; + myInlineBlockWithBlockAndLabel: MyInlineBlockWithBlockAndLabel; + lexicalInBlock2: LexicalInBlock2; + block: Block; + content: ContentBlock; + number: NumberBlock; + subBlocks: SubBlocksBlock; + tabs: TabsBlock; + localizedContent: LocalizedContentBlock; + localizedNumber: LocalizedNumberBlock; + localizedSubBlocks: LocalizedSubBlocksBlock; + localizedTabs: LocalizedTabsBlock; + textInI18nBlock: TextInI18NBlock; + localizedArray: LocalizedArray; + 'block-a': BlockA; + 'block-b': BlockB; + 'group-block': GroupBlock; + blockWithMinRows: BlockWithMinRows; + 'block-1': Block1; + 'block-2': Block2; + relationships: Relationships; + text: Text; + blockWithConditionalField: BlockWithConditionalField; + dateBlock: DateBlock; + blockWithNumber: BlockWithNumber; + textBlock: TextBlock; + richTextBlockSlate: RichTextBlockSlate; + blockWithText: BlockWithText; + }; collections: { 'lexical-fields': LexicalField; 'lexical-migrate-fields': LexicalMigrateField; @@ -210,6 +263,749 @@ export interface UserAuthOperations { password: string; }; } +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "ConfigBlockTest". + */ +export interface ConfigBlockTest { + deduplicatedText?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'ConfigBlockTest'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "validationBlock". + */ +export interface ValidationBlock { + text?: string | null; + group?: { + groupText?: string | null; + textDependsOnDocData?: string | null; + textDependsOnSiblingData?: string | null; + textDependsOnBlockData?: string | null; + }; + id?: string | null; + blockName?: string | null; + blockType: 'validationBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "filterOptionsBlock". + */ +export interface FilterOptionsBlock { + text?: string | null; + group?: { + groupText?: string | null; + dependsOnDocData?: (string | null) | TextField; + dependsOnSiblingData?: (string | null) | TextField; + dependsOnBlockData?: (string | null) | TextField; + }; + id?: string | null; + blockName?: string | null; + blockType: 'filterOptionsBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "text-fields". + */ +export interface TextField { + id: string; + text: string; + hiddenTextField?: string | null; + /** + * This field should be hidden + */ + adminHiddenTextField?: string | null; + /** + * This field should be disabled + */ + disabledTextField?: string | null; + localizedText?: string | null; + /** + * en description + */ + i18nText?: string | null; + defaultString?: string | null; + defaultEmptyString?: string | null; + defaultFunction?: string | null; + defaultAsync?: string | null; + overrideLength?: string | null; + fieldWithDefaultValue?: string | null; + dependentOnFieldWithDefaultValue?: string | null; + hasMany?: string[] | null; + readOnlyHasMany?: string[] | null; + validatesHasMany?: string[] | null; + localizedHasMany?: string[] | null; + withMinRows?: string[] | null; + withMaxRows?: string[] | null; + defaultValueFromReq?: string | null; + array?: + | { + texts?: string[] | null; + id?: string | null; + }[] + | null; + blocks?: BlockWithText[] | null; + updatedAt: string; + createdAt: string; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "blockWithText". + */ +export interface BlockWithText { + texts?: string[] | null; + id?: string | null; + blockName?: string | null; + blockType: 'blockWithText'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "asyncHooksBlock". + */ +export interface AsyncHooksBlock { + test1?: string | null; + test2?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'asyncHooksBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "richTextBlock". + */ +export interface RichTextBlock { + richTextField?: { + root: { + type: string; + children: { + type: string; + version: number; + [k: string]: unknown; + }[]; + direction: ('ltr' | 'rtl') | null; + format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; + indent: number; + version: number; + }; + [k: string]: unknown; + } | null; + id?: string | null; + blockName?: string | null; + blockType: 'richTextBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "textRequired". + */ +export interface TextRequired { + text: string; + id?: string | null; + blockName?: string | null; + blockType: 'textRequired'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "uploadAndRichText". + */ +export interface UploadAndRichText { + upload: string | Upload; + richText?: { + root: { + type: string; + children: { + type: string; + version: number; + [k: string]: unknown; + }[]; + direction: ('ltr' | 'rtl') | null; + format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; + indent: number; + version: number; + }; + [k: string]: unknown; + } | null; + id?: string | null; + blockName?: string | null; + blockType: 'uploadAndRichText'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "uploads". + */ +export interface Upload { + id: string; + text?: string | null; + media?: (string | null) | Upload; + updatedAt: string; + createdAt: string; + url?: string | null; + thumbnailURL?: string | null; + filename?: string | null; + mimeType?: string | null; + filesize?: number | null; + width?: number | null; + height?: number | null; + focalX?: number | null; + focalY?: number | null; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "select". + */ +export interface Select { + select?: ('option1' | 'option2' | 'option3' | 'option4' | 'option5') | null; + id?: string | null; + blockName?: string | null; + blockType: 'select'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "relationshipBlock". + */ +export interface RelationshipBlock { + rel: string | Upload; + id?: string | null; + blockName?: string | null; + blockType: 'relationshipBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "relationshipHasManyBlock". + */ +export interface RelationshipHasManyBlock { + rel: ( + | { + relationTo: 'text-fields'; + value: string | TextField; + } + | { + relationTo: 'uploads'; + value: string | Upload; + } + )[]; + id?: string | null; + blockName?: string | null; + blockType: 'relationshipHasManyBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "subBlockLexical". + */ +export interface SubBlockLexical { + subBlocksLexical?: + | ( + | { + richText: { + root: { + type: string; + children: { + type: string; + version: number; + [k: string]: unknown; + }[]; + direction: ('ltr' | 'rtl') | null; + format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; + indent: number; + version: number; + }; + [k: string]: unknown; + }; + id?: string | null; + blockName?: string | null; + blockType: 'contentBlock'; + } + | { + content: string; + id?: string | null; + blockName?: string | null; + blockType: 'textArea'; + } + | { + select?: ('option1' | 'option2' | 'option3' | 'option4' | 'option5') | null; + id?: string | null; + blockName?: string | null; + blockType: 'select'; + } + )[] + | null; + id?: string | null; + blockName?: string | null; + blockType: 'subBlockLexical'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "LexicalBlocksRadioButtonsBlock". + */ +export interface LexicalBlocksRadioButtonsBlock { + radioButtons?: ('option1' | 'option2' | 'option3') | null; + id?: string | null; + blockName?: string | null; + blockType: 'radioButtons'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "conditionalLayout". + */ +export interface ConditionalLayout { + layout: '1' | '2' | '3'; + columns?: BlockColumns; + columns2?: BlockColumns; + columns3?: BlockColumns; + id?: string | null; + blockName?: string | null; + blockType: 'conditionalLayout'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "tabBlock". + */ +export interface TabBlock { + tab1?: { + text1?: string | null; + }; + tab2?: { + text2?: string | null; + }; + id?: string | null; + blockName?: string | null; + blockType: 'tabBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "code". + */ +export interface Code { + code?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'code'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "myBlock". + */ +export interface MyBlock { + key?: ('value1' | 'value2' | 'value3') | null; + id?: string | null; + blockName?: string | null; + blockType: 'myBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "myBlockWithLabel". + */ +export interface MyBlockWithLabel { + key?: ('value1' | 'value2' | 'value3') | null; + id?: string | null; + blockName?: string | null; + blockType: 'myBlockWithLabel'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "myBlockWithBlock". + */ +export interface MyBlockWithBlock { + key?: ('value1' | 'value2' | 'value3') | null; + id?: string | null; + blockName?: string | null; + blockType: 'myBlockWithBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "BlockRSC". + */ +export interface BlockRSC { + key?: ('value1' | 'value2' | 'value3') | null; + id?: string | null; + blockName?: string | null; + blockType: 'BlockRSC'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "myBlockWithBlockAndLabel". + */ +export interface MyBlockWithBlockAndLabel { + key?: ('value1' | 'value2' | 'value3') | null; + id?: string | null; + blockName?: string | null; + blockType: 'myBlockWithBlockAndLabel'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "AvatarGroupBlock". + */ +export interface AvatarGroupBlock { + avatars?: + | { + image?: (string | null) | Upload; + id?: string | null; + }[] + | null; + id?: string | null; + blockName?: string | null; + blockType: 'AvatarGroup'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "myInlineBlock". + */ +export interface MyInlineBlock { + key?: ('value1' | 'value2' | 'value3') | null; + id?: string | null; + blockName?: string | null; + blockType: 'myInlineBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "myInlineBlockWithLabel". + */ +export interface MyInlineBlockWithLabel { + key?: ('value1' | 'value2' | 'value3') | null; + id?: string | null; + blockName?: string | null; + blockType: 'myInlineBlockWithLabel'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "myInlineBlockWithBlock". + */ +export interface MyInlineBlockWithBlock { + key?: ('value1' | 'value2' | 'value3') | null; + id?: string | null; + blockName?: string | null; + blockType: 'myInlineBlockWithBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "myInlineBlockWithBlockAndLabel". + */ +export interface MyInlineBlockWithBlockAndLabel { + key?: ('value1' | 'value2' | 'value3') | null; + id?: string | null; + blockName?: string | null; + blockType: 'myInlineBlockWithBlockAndLabel'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "lexicalInBlock2". + */ +export interface LexicalInBlock2 { + lexical?: { + root: { + type: string; + children: { + type: string; + version: number; + [k: string]: unknown; + }[]; + direction: ('ltr' | 'rtl') | null; + format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; + indent: number; + version: number; + }; + [k: string]: unknown; + } | null; + id?: string | null; + blockName?: string | null; + blockType: 'lexicalInBlock2'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block". + */ +export interface Block { + hasManyBlocks?: ('a' | 'b' | 'c')[] | null; + id?: string | null; + blockName?: string | null; + blockType: 'block'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "ContentBlock". + */ +export interface ContentBlock { + text: string; + richText?: + | { + [k: string]: unknown; + }[] + | null; + id?: string | null; + blockName?: string | null; + blockType: 'content'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "NumberBlock". + */ +export interface NumberBlock { + number: number; + id?: string | null; + blockName?: string | null; + blockType: 'number'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "SubBlocksBlock". + */ +export interface SubBlocksBlock { + subBlocks?: + | ( + | { + text: string; + id?: string | null; + blockName?: string | null; + blockType: 'textRequired'; + } + | NumberBlock + )[] + | null; + id?: string | null; + blockName?: string | null; + blockType: 'subBlocks'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "TabsBlock". + */ +export interface TabsBlock { + textInCollapsible?: string | null; + textInRow?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'tabs'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "localizedContentBlock". + */ +export interface LocalizedContentBlock { + text: string; + richText?: + | { + [k: string]: unknown; + }[] + | null; + id?: string | null; + blockName?: string | null; + blockType: 'localizedContent'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "localizedNumberBlock". + */ +export interface LocalizedNumberBlock { + number: number; + id?: string | null; + blockName?: string | null; + blockType: 'localizedNumber'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "localizedSubBlocksBlock". + */ +export interface LocalizedSubBlocksBlock { + subBlocks?: + | ( + | { + text: string; + id?: string | null; + blockName?: string | null; + blockType: 'textRequired'; + } + | NumberBlock + )[] + | null; + id?: string | null; + blockName?: string | null; + blockType: 'localizedSubBlocks'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "localizedTabsBlock". + */ +export interface LocalizedTabsBlock { + textInCollapsible?: string | null; + textInRow?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'localizedTabs'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "textInI18nBlock". + */ +export interface TextInI18NBlock { + text?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'textInI18nBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "localizedArray". + */ +export interface LocalizedArray { + array?: + | { + text?: string | null; + id?: string | null; + }[] + | null; + id?: string | null; + blockName?: string | null; + blockType: 'localizedArray'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block-a". + */ +export interface BlockA { + items?: + | { + title: string; + id?: string | null; + }[] + | null; + id?: string | null; + blockName?: string | null; + blockType: 'block-a'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block-b". + */ +export interface BlockB { + items?: + | { + title2: string; + id?: string | null; + }[] + | null; + id?: string | null; + blockName?: string | null; + blockType: 'block-b'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "group-block". + */ +export interface GroupBlock { + group?: { + text?: string | null; + }; + id?: string | null; + blockName?: string | null; + blockType: 'group-block'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "blockWithMinRows". + */ +export interface BlockWithMinRows { + blockTitle?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'blockWithMinRows'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block-1". + */ +export interface Block1 { + block1Title?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'block-1'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "block-2". + */ +export interface Block2 { + block2Title?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'block-2'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "relationships". + */ +export interface Relationships { + relationship?: (string | null) | TextField; + id?: string | null; + blockName?: string | null; + blockType: 'relationships'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "text". + */ +export interface Text { + text?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'text'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "blockWithConditionalField". + */ +export interface BlockWithConditionalField { + text?: string | null; + textWithCondition?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'blockWithConditionalField'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "dateBlock". + */ +export interface DateBlock { + dayAndTime?: string | null; + dayAndTime_tz?: SupportedTimezones; + id?: string | null; + blockName?: string | null; + blockType: 'dateBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "blockWithNumber". + */ +export interface BlockWithNumber { + numbers?: number[] | null; + id?: string | null; + blockName?: string | null; + blockType: 'blockWithNumber'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "textBlock". + */ +export interface TextBlock { + text?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'textBlock'; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "richTextBlockSlate". + */ +export interface RichTextBlockSlate { + text?: + | { + [k: string]: unknown; + }[] + | null; + id?: string | null; + blockName?: string | null; + blockType: 'richTextBlockSlate'; +} /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "lexical-fields". @@ -485,28 +1281,7 @@ export interface LexicalInBlock { }; [k: string]: unknown; } | null; - blocks?: - | { - lexical?: { - root: { - type: string; - children: { - type: string; - version: number; - [k: string]: unknown; - }[]; - direction: ('ltr' | 'rtl') | null; - format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; - indent: number; - version: number; - }; - [k: string]: unknown; - } | null; - id?: string | null; - blockName?: string | null; - blockType: 'lexicalInBlock2'; - }[] - | null; + blocks?: LexicalInBlock2[] | null; updatedAt: string; createdAt: string; } @@ -548,14 +1323,7 @@ export interface SelectVersionsField { id?: string | null; }[] | null; - blocks?: - | { - hasManyBlocks?: ('a' | 'b' | 'c')[] | null; - id?: string | null; - blockName?: string | null; - blockType: 'block'; - }[] - | null; + blocks?: Block[] | null; updatedAt: string; createdAt: string; _status?: ('draft' | 'published') | null; @@ -674,301 +1442,19 @@ export interface BlockField { )[]; disableSort: (LocalizedContentBlock | LocalizedNumberBlock | LocalizedSubBlocksBlock | LocalizedTabsBlock)[]; localizedBlocks: (LocalizedContentBlock | LocalizedNumberBlock | LocalizedSubBlocksBlock | LocalizedTabsBlock)[]; - i18nBlocks?: - | { - text?: string | null; - id?: string | null; - blockName?: string | null; - blockType: 'text'; - }[] - | null; - blocksWithLocalizedArray?: - | { - array?: - | { - text?: string | null; - id?: string | null; - }[] - | null; - id?: string | null; - blockName?: string | null; - blockType: 'localizedArray'; - }[] - | null; - blocksWithSimilarConfigs?: - | ( - | { - items?: - | { - title: string; - id?: string | null; - }[] - | null; - id?: string | null; - blockName?: string | null; - blockType: 'block-a'; - } - | { - items?: - | { - title2: string; - id?: string | null; - }[] - | null; - id?: string | null; - blockName?: string | null; - blockType: 'block-b'; - } - | { - group?: { - text?: string | null; - }; - id?: string | null; - blockName?: string | null; - blockType: 'group-block'; - } - )[] - | null; + i18nBlocks?: TextInI18NBlock[] | null; + blocksWithLocalizedArray?: LocalizedArray[] | null; + blocksWithSimilarConfigs?: (BlockA | BlockB | GroupBlock)[] | null; /** * The purpose of this field is to test validateExistingBlockIsIdentical works with similar blocks with group fields */ - blocksWithSimilarGroup?: - | ( - | { - group?: { - text?: string | null; - }; - id?: string | null; - blockName?: string | null; - blockType: 'group-block'; - } - | { - items?: - | { - title2: string; - id?: string | null; - }[] - | null; - id?: string | null; - blockName?: string | null; - blockType: 'block-b'; - } - )[] - | null; - blocksWithMinRows?: - | { - blockTitle?: string | null; - id?: string | null; - blockName?: string | null; - blockType: 'block'; - }[] - | null; - customBlocks?: - | ( - | { - block1Title?: string | null; - id?: string | null; - blockName?: string | null; - blockType: 'block-1'; - } - | { - block2Title?: string | null; - id?: string | null; - blockName?: string | null; - blockType: 'block-2'; - } - )[] - | null; - relationshipBlocks?: - | { - relationship?: (string | null) | TextField; - id?: string | null; - blockName?: string | null; - blockType: 'relationships'; - }[] - | null; - blockWithLabels?: - | { - text?: string | null; - id?: string | null; - blockName?: string | null; - blockType: 'text'; - }[] - | null; - updatedAt: string; - createdAt: string; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "ContentBlock". - */ -export interface ContentBlock { - text: string; - richText?: - | { - [k: string]: unknown; - }[] - | null; - id?: string | null; - blockName?: string | null; - blockType: 'content'; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "NumberBlock". - */ -export interface NumberBlock { - number: number; - id?: string | null; - blockName?: string | null; - blockType: 'number'; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "SubBlocksBlock". - */ -export interface SubBlocksBlock { - subBlocks?: - | ( - | { - text: string; - id?: string | null; - blockName?: string | null; - blockType: 'text'; - } - | { - number: number; - id?: string | null; - blockName?: string | null; - blockType: 'number'; - } - )[] - | null; - id?: string | null; - blockName?: string | null; - blockType: 'subBlocks'; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "TabsBlock". - */ -export interface TabsBlock { - textInCollapsible?: string | null; - textInRow?: string | null; - id?: string | null; - blockName?: string | null; - blockType: 'tabs'; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "localizedContentBlock". - */ -export interface LocalizedContentBlock { - text: string; - richText?: - | { - [k: string]: unknown; - }[] - | null; - id?: string | null; - blockName?: string | null; - blockType: 'localizedContent'; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "localizedNumberBlock". - */ -export interface LocalizedNumberBlock { - number: number; - id?: string | null; - blockName?: string | null; - blockType: 'localizedNumber'; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "localizedSubBlocksBlock". - */ -export interface LocalizedSubBlocksBlock { - subBlocks?: - | ( - | { - text: string; - id?: string | null; - blockName?: string | null; - blockType: 'text'; - } - | { - number: number; - id?: string | null; - blockName?: string | null; - blockType: 'number'; - } - )[] - | null; - id?: string | null; - blockName?: string | null; - blockType: 'localizedSubBlocks'; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "localizedTabsBlock". - */ -export interface LocalizedTabsBlock { - textInCollapsible?: string | null; - textInRow?: string | null; - id?: string | null; - blockName?: string | null; - blockType: 'localizedTabs'; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "text-fields". - */ -export interface TextField { - id: string; - text: string; - hiddenTextField?: string | null; - /** - * This field should be hidden - */ - adminHiddenTextField?: string | null; - /** - * This field should be disabled - */ - disabledTextField?: string | null; - localizedText?: string | null; - /** - * en description - */ - i18nText?: string | null; - defaultString?: string | null; - defaultEmptyString?: string | null; - defaultFunction?: string | null; - defaultAsync?: string | null; - overrideLength?: string | null; - fieldWithDefaultValue?: string | null; - dependentOnFieldWithDefaultValue?: string | null; - hasMany?: string[] | null; - readOnlyHasMany?: string[] | null; - validatesHasMany?: string[] | null; - localizedHasMany?: string[] | null; - withMinRows?: string[] | null; - withMaxRows?: string[] | null; - defaultValueFromReq?: string | null; - array?: - | { - texts?: string[] | null; - id?: string | null; - }[] - | null; - blocks?: - | { - texts?: string[] | null; - id?: string | null; - blockName?: string | null; - blockType: 'block'; - }[] - | null; + blocksWithSimilarGroup?: (GroupBlock | BlockB)[] | null; + blocksWithMinRows?: BlockWithMinRows[] | null; + customBlocks?: (Block1 | Block2)[] | null; + relationshipBlocks?: Relationships[] | null; + blockWithLabels?: Text[] | null; + deduplicatedBlocks?: ConfigBlockTest[] | null; + deduplicatedBlocks2?: ConfigBlockTest[] | null; updatedAt: string; createdAt: string; } @@ -1084,15 +1570,7 @@ export interface ConditionalLogic { id?: string | null; }[] | null; - blocksWithConditionalField?: - | { - text?: string | null; - textWithCondition?: string | null; - id?: string | null; - blockName?: string | null; - blockType: 'blockWithConditionalField'; - }[] - | null; + blocksWithConditionalField?: BlockWithConditionalField[] | null; updatedAt: string; createdAt: string; } @@ -1142,15 +1620,7 @@ export interface DateField { */ dayAndTimeWithTimezone: string; dayAndTimeWithTimezone_tz: SupportedTimezones; - timezoneBlocks?: - | { - dayAndTime?: string | null; - dayAndTime_tz?: SupportedTimezones; - id?: string | null; - blockName?: string | null; - blockType: 'dateBlock'; - }[] - | null; + timezoneBlocks?: DateBlock[] | null; timezoneArray?: | { dayAndTime?: string | null; @@ -1441,14 +1911,7 @@ export interface NumberField { id?: string | null; }[] | null; - blocks?: - | { - numbers?: number[] | null; - id?: string | null; - blockName?: string | null; - blockType: 'block'; - }[] - | null; + blocks?: BlockWithNumber[] | null; updatedAt: string; createdAt: string; } @@ -1632,26 +2095,7 @@ export interface RichTextField { [k: string]: unknown; }[] | null; - blocks?: - | ( - | { - text?: string | null; - id?: string | null; - blockName?: string | null; - blockType: 'textBlock'; - } - | { - text?: - | { - [k: string]: unknown; - }[] - | null; - id?: string | null; - blockName?: string | null; - blockType: 'richTextBlock'; - } - )[] - | null; + blocks?: (TextBlock | RichTextBlockSlate)[] | null; updatedAt: string; createdAt: string; } @@ -1785,26 +2229,6 @@ export interface TabWithName { }[] | null; } -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "uploads". - */ -export interface Upload { - id: string; - text?: string | null; - media?: (string | null) | Upload; - updatedAt: string; - createdAt: string; - url?: string | null; - thumbnailURL?: string | null; - filename?: string | null; - mimeType?: string | null; - filesize?: number | null; - width?: number | null; - height?: number | null; - focalX?: number | null; - focalY?: number | null; -} /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "uploads2". @@ -2214,17 +2638,7 @@ export interface UsersSelect { */ export interface LexicalInBlockSelect { content?: T; - blocks?: - | T - | { - lexicalInBlock2?: - | T - | { - lexical?: T; - id?: T; - blockName?: T; - }; - }; + blocks?: T | {}; updatedAt?: T; createdAt?: T; } @@ -2250,17 +2664,7 @@ export interface SelectVersionsFieldsSelect { hasManyArr?: T; id?: T; }; - blocks?: - | T - | { - block?: - | T - | { - hasManyBlocks?: T; - id?: T; - blockName?: T; - }; - }; + blocks?: T | {}; updatedAt?: T; createdAt?: T; _status?: T; @@ -2370,30 +2774,9 @@ export interface ArrayFieldsSelect { * via the `definition` "block-fields_select". */ export interface BlockFieldsSelect { - blocks?: - | T - | { - content?: T | ContentBlockSelect; - number?: T | NumberBlockSelect; - subBlocks?: T | SubBlocksBlockSelect; - tabs?: T | TabsBlockSelect; - }; - duplicate?: - | T - | { - content?: T | ContentBlockSelect; - number?: T | NumberBlockSelect; - subBlocks?: T | SubBlocksBlockSelect; - tabs?: T | TabsBlockSelect; - }; - collapsedByDefaultBlocks?: - | T - | { - localizedContent?: T | LocalizedContentBlockSelect; - localizedNumber?: T | LocalizedNumberBlockSelect; - localizedSubBlocks?: T | LocalizedSubBlocksBlockSelect; - localizedTabs?: T | LocalizedTabsBlockSelect; - }; + blocks?: T | {}; + duplicate?: T | {}; + collapsedByDefaultBlocks?: T | {}; disableSort?: | T | { @@ -2402,216 +2785,20 @@ export interface BlockFieldsSelect { localizedSubBlocks?: T | LocalizedSubBlocksBlockSelect; localizedTabs?: T | LocalizedTabsBlockSelect; }; - localizedBlocks?: - | T - | { - localizedContent?: T | LocalizedContentBlockSelect; - localizedNumber?: T | LocalizedNumberBlockSelect; - localizedSubBlocks?: T | LocalizedSubBlocksBlockSelect; - localizedTabs?: T | LocalizedTabsBlockSelect; - }; - i18nBlocks?: - | T - | { - text?: - | T - | { - text?: T; - id?: T; - blockName?: T; - }; - }; - blocksWithLocalizedArray?: - | T - | { - localizedArray?: - | T - | { - array?: - | T - | { - text?: T; - id?: T; - }; - id?: T; - blockName?: T; - }; - }; - blocksWithSimilarConfigs?: - | T - | { - 'block-a'?: - | T - | { - items?: - | T - | { - title?: T; - id?: T; - }; - id?: T; - blockName?: T; - }; - 'block-b'?: - | T - | { - items?: - | T - | { - title2?: T; - id?: T; - }; - id?: T; - blockName?: T; - }; - 'group-block'?: - | T - | { - group?: - | T - | { - text?: T; - }; - id?: T; - blockName?: T; - }; - }; - blocksWithSimilarGroup?: - | T - | { - 'group-block'?: - | T - | { - group?: - | T - | { - text?: T; - }; - id?: T; - blockName?: T; - }; - 'block-b'?: - | T - | { - items?: - | T - | { - title2?: T; - id?: T; - }; - id?: T; - blockName?: T; - }; - }; - blocksWithMinRows?: - | T - | { - block?: - | T - | { - blockTitle?: T; - id?: T; - blockName?: T; - }; - }; - customBlocks?: - | T - | { - 'block-1'?: - | T - | { - block1Title?: T; - id?: T; - blockName?: T; - }; - 'block-2'?: - | T - | { - block2Title?: T; - id?: T; - blockName?: T; - }; - }; - relationshipBlocks?: - | T - | { - relationships?: - | T - | { - relationship?: T; - id?: T; - blockName?: T; - }; - }; - blockWithLabels?: - | T - | { - text?: - | T - | { - text?: T; - id?: T; - blockName?: T; - }; - }; + localizedBlocks?: T | {}; + i18nBlocks?: T | {}; + blocksWithLocalizedArray?: T | {}; + blocksWithSimilarConfigs?: T | {}; + blocksWithSimilarGroup?: T | {}; + blocksWithMinRows?: T | {}; + customBlocks?: T | {}; + relationshipBlocks?: T | {}; + blockWithLabels?: T | {}; + deduplicatedBlocks?: T | {}; + deduplicatedBlocks2?: T | {}; updatedAt?: T; createdAt?: T; } -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "ContentBlock_select". - */ -export interface ContentBlockSelect { - text?: T; - richText?: T; - id?: T; - blockName?: T; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "NumberBlock_select". - */ -export interface NumberBlockSelect { - number?: T; - id?: T; - blockName?: T; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "SubBlocksBlock_select". - */ -export interface SubBlocksBlockSelect { - subBlocks?: - | T - | { - text?: - | T - | { - text?: T; - id?: T; - blockName?: T; - }; - number?: - | T - | { - number?: T; - id?: T; - blockName?: T; - }; - }; - id?: T; - blockName?: T; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "TabsBlock_select". - */ -export interface TabsBlockSelect { - textInCollapsible?: T; - textInRow?: T; - id?: T; - blockName?: T; -} /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "localizedContentBlock_select". @@ -2639,24 +2826,27 @@ export interface LocalizedSubBlocksBlockSelect { subBlocks?: | T | { - text?: + textRequired?: | T | { text?: T; id?: T; blockName?: T; }; - number?: - | T - | { - number?: T; - id?: T; - blockName?: T; - }; + number?: T | NumberBlockSelect; }; id?: T; blockName?: T; } +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "NumberBlock_select". + */ +export interface NumberBlockSelect { + number?: T; + id?: T; + blockName?: T; +} /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "localizedTabsBlock_select". @@ -2769,18 +2959,7 @@ export interface ConditionalLogicSelect { textWithCondition?: T; id?: T; }; - blocksWithConditionalField?: - | T - | { - blockWithConditionalField?: - | T - | { - text?: T; - textWithCondition?: T; - id?: T; - blockName?: T; - }; - }; + blocksWithConditionalField?: T | {}; updatedAt?: T; createdAt?: T; } @@ -2826,18 +3005,7 @@ export interface DateFieldsSelect { defaultWithTimezone_tz?: T; dayAndTimeWithTimezone?: T; dayAndTimeWithTimezone_tz?: T; - timezoneBlocks?: - | T - | { - dateBlock?: - | T - | { - dayAndTime?: T; - dayAndTime_tz?: T; - id?: T; - blockName?: T; - }; - }; + timezoneBlocks?: T | {}; timezoneArray?: | T | { @@ -3107,17 +3275,7 @@ export interface NumberFieldsSelect { numbers?: T; id?: T; }; - blocks?: - | T - | { - block?: - | T - | { - numbers?: T; - id?: T; - blockName?: T; - }; - }; + blocks?: T | {}; updatedAt?: T; createdAt?: T; } @@ -3188,24 +3346,7 @@ export interface RichTextFieldsSelect { richText?: T; richTextCustomFields?: T; richTextReadOnly?: T; - blocks?: - | T - | { - textBlock?: - | T - | { - text?: T; - id?: T; - blockName?: T; - }; - richTextBlock?: - | T - | { - text?: T; - id?: T; - blockName?: T; - }; - }; + blocks?: T | {}; updatedAt?: T; createdAt?: T; } @@ -3336,6 +3477,46 @@ export interface TabsFieldsSelect { updatedAt?: T; createdAt?: T; } +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "ContentBlock_select". + */ +export interface ContentBlockSelect { + text?: T; + richText?: T; + id?: T; + blockName?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "SubBlocksBlock_select". + */ +export interface SubBlocksBlockSelect { + subBlocks?: + | T + | { + textRequired?: + | T + | { + text?: T; + id?: T; + blockName?: T; + }; + number?: T | NumberBlockSelect; + }; + id?: T; + blockName?: T; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "TabsBlock_select". + */ +export interface TabsBlockSelect { + textInCollapsible?: T; + textInRow?: T; + id?: T; + blockName?: T; +} /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "TabWithName_select". @@ -3387,17 +3568,7 @@ export interface TextFieldsSelect { texts?: T; id?: T; }; - blocks?: - | T - | { - block?: - | T - | { - texts?: T; - id?: T; - blockName?: T; - }; - }; + blocks?: T | {}; updatedAt?: T; createdAt?: T; } @@ -3602,31 +3773,6 @@ export interface TabsWithRichTextSelect { createdAt?: T; globalType?: T; } -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "LexicalBlocksRadioButtonsBlock". - */ -export interface LexicalBlocksRadioButtonsBlock { - radioButtons?: ('option1' | 'option2' | 'option3') | null; - id?: string | null; - blockName?: string | null; - blockType: 'radioButtons'; -} -/** - * This interface was referenced by `Config`'s JSON-Schema - * via the `definition` "AvatarGroupBlock". - */ -export interface AvatarGroupBlock { - avatars?: - | { - image?: (string | null) | Upload; - id?: string | null; - }[] - | null; - id?: string | null; - blockName?: string | null; - blockType: 'AvatarGroup'; -} /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "auth". diff --git a/test/helpers/autoDedupeBlocksPlugin/index.ts b/test/helpers/autoDedupeBlocksPlugin/index.ts new file mode 100644 index 0000000000..992a40924a --- /dev/null +++ b/test/helpers/autoDedupeBlocksPlugin/index.ts @@ -0,0 +1,104 @@ +import { type Block, type BlockSlug, type Config, traverseFields } from 'payload' + +export const autoDedupeBlocksPlugin = + (args?: { debug?: boolean; disabled?: boolean; silent?: boolean }) => + (config: Config): Config => { + if (!args) { + args = {} + } + const { disabled = false, debug = false, silent = false } = args + + if (disabled) { + return config + } + + traverseFields({ + config, + leavesFirst: true, + isTopLevel: true, + fields: [ + ...(config.collections?.length + ? config.collections.map((collection) => collection.fields).flat() + : []), + ...(config.globals?.length ? config.globals.map((global) => global.fields).flat() : []), + ], + callback: ({ field }) => { + if (field.type === 'blocks') { + if (field?.blocks?.length) { + field.blockReferences = new Array(field.blocks.length) + for (let i = 0; i < field.blocks.length; i++) { + const block = field.blocks[i] + if (!block) { + continue + } + deduplicateBlock({ block, config, silent }) + field.blockReferences[i] = block.slug as BlockSlug + } + field.blocks = [] + } + + if (debug && !silent) { + console.log('migrated field', field) + } + } + }, + }) + return config + } + +export const deduplicateBlock = ({ + block: dedupedBlock, + config, + silent, +}: { + block: Block + config: Config + silent?: boolean +}) => { + /** + * Will be true if a block with the same slug is found. + */ + let alreadyDeduplicated = false + + if (config?.blocks?.length) { + for (const existingBlock of config.blocks) { + if (existingBlock.slug === dedupedBlock.slug) { + alreadyDeduplicated = true + + // Check if the fields are the same + const jsonExistingBlock = JSON.stringify(existingBlock, null, 2) + const jsonBlockToDeduplicate = JSON.stringify(dedupedBlock, null, 2) + if (jsonExistingBlock !== jsonBlockToDeduplicate) { + console.error('Block with the same slug but different fields found', { + slug: dedupedBlock.slug, + existingBlock: jsonExistingBlock, + dedupedBlock: jsonBlockToDeduplicate, + }) + throw new Error('Block with the same slug but different fields found') + } + if ( + // Object reference check for just the block fields - it's more likely that top-level block keys have been spread + !Object.is(existingBlock.fields, dedupedBlock.fields) && + !silent + ) { + // only throw warning: + console.warn( + 'Block with the same slug but different fields found. JSON is different, but object references are equal. Please manually verify that things like functions passed to the blocks behave the same way.', + { + slug: dedupedBlock.slug, + existingBlock: JSON.stringify(existingBlock, null, 2), + dedupedBlock: JSON.stringify(dedupedBlock, null, 2), + }, + ) + } + break + } + } + } + if (!alreadyDeduplicated) { + if (!config.blocks) { + config.blocks = [] + } + config.blocks.push(dedupedBlock) + } +} diff --git a/test/live-preview/int.spec.ts b/test/live-preview/int.spec.ts index d9826fd8de..5fe0109cce 100644 --- a/test/live-preview/int.spec.ts +++ b/test/live-preview/int.spec.ts @@ -13,6 +13,7 @@ import { fileURLToPath } from 'url' import type { NextRESTClient } from '../helpers/NextRESTClient.js' import type { Media, Page, Post, Tenant } from './payload-types.js' +import config from './config.js' import { Pages } from './collections/Pages.js' import { postsSlug, tenantsSlug } from './shared.js' @@ -20,7 +21,7 @@ import { postsSlug, tenantsSlug } from './shared.js' const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) -const schemaJSON = fieldSchemaToJSON(Pages.fields) +const schemaJSON = fieldSchemaToJSON(Pages.fields, config) let payload: Payload let restClient: NextRESTClient diff --git a/test/runE2E.ts b/test/runE2E.ts index efae78188f..f6b41bf82e 100644 --- a/test/runE2E.ts +++ b/test/runE2E.ts @@ -35,7 +35,7 @@ if (!suiteName) { throw new Error('part must be in the format of "1/2"') } - const [partToRun, totalParts] = part.split('/').map((n) => parseInt(n)) + const [partToRun, totalParts] = part.split('/').map((n: string) => parseInt(n)) if (partToRun > totalParts) { throw new Error('part cannot be greater than totalParts') @@ -56,15 +56,37 @@ if (!suiteName) { for (const file of files) { clearWebpackCache() - const baseTestFolder = file.split('/test/')[1].split('/')[0] - await executePlaywright(file, baseTestFolder, bail) + + const baseTestFolder = file?.split('/test/')?.[1]?.split('/')?.[0] + if (!baseTestFolder) { + throw new Error(`No base test folder found for ${file}`) + } + executePlaywright(file, baseTestFolder, bail) } } else { + let inputSuitePath: string | undefined = suiteName + let suiteConfigPath: string | undefined = 'config.ts' + if (suiteName.includes('#')) { + ;[inputSuitePath, suiteConfigPath] = suiteName.split('#') + } + + if (!inputSuitePath) { + throw new Error(`No test suite found for ${suiteName}`) + } + // Run specific suite clearWebpackCache() - const suitePath = path.resolve(dirname, suiteName, 'e2e.spec.ts').replaceAll('__', '/') - const baseTestFolder = suiteName.split('__')[0] - await executePlaywright(suitePath, baseTestFolder) + const suitePath: string | undefined = path + .resolve(dirname, inputSuitePath, 'e2e.spec.ts') + .replaceAll('__', '/') + + const baseTestFolder = inputSuitePath.split('__')[0] + + if (!suitePath || !baseTestFolder) { + throw new Error(`No test suite found for ${suiteName}`) + } + + executePlaywright(suitePath, baseTestFolder, false, suiteConfigPath) } console.log('\nRESULTS:') @@ -76,14 +98,23 @@ console.log('\n') // baseTestFolder is the most top level folder of the test suite, that contains the payload config. // We need this because pnpm dev for a given test suite will always be run from the top level test folder, // not from a nested suite folder. -async function executePlaywright(suitePath: string, baseTestFolder: string, bail = false) { +function executePlaywright( + suitePath: string, + baseTestFolder: string, + bail = false, + suiteConfigPath?: string, +) { console.log(`Executing ${suitePath}...`) const playwrightCfg = path.resolve( dirname, `${bail ? 'playwright.bail.config.ts' : 'playwright.config.ts'}`, ) - const spawnDevArgs: string[] = ['dev', baseTestFolder, '--start-memory-db'] + const spawnDevArgs: string[] = [ + 'dev', + suiteConfigPath ? `${baseTestFolder}#${suiteConfigPath}` : baseTestFolder, + '--start-memory-db', + ] if (prod) { spawnDevArgs.push('--prod') } diff --git a/test/testHooks.ts b/test/testHooks.ts index 4d3ef59443..47e1f844a0 100644 --- a/test/testHooks.ts +++ b/test/testHooks.ts @@ -9,7 +9,10 @@ const { readFile, writeFile, rm } = promises const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) -export const createTestHooks = async (testSuiteName = '_community') => { +export const createTestHooks = async ( + testSuiteName = '_community', + testSuiteConfig = 'config.ts', +) => { const rootDir = getNextRootDir().rootDir const tsConfigBasePath = path.resolve(rootDir, './tsconfig.base.json') const tsConfigPath = existsSync(tsConfigBasePath) @@ -35,12 +38,12 @@ export const createTestHooks = async (testSuiteName = '_community') => { // @ts-expect-error tsConfig.compilerOptions.paths['@payload-config'] = [ process.env.PAYLOAD_TEST_PROD === 'true' - ? `./${testSuiteName}/config.ts` - : `./test/${testSuiteName}/config.ts`, + ? `./${testSuiteName}/${testSuiteConfig}` + : `./test/${testSuiteName}/${testSuiteConfig}`, ] await writeFile(tsConfigPath, stringify(tsConfig, null, 2) + '\n') - process.env.PAYLOAD_CONFIG_PATH = path.resolve(dirname, testSuiteName, 'config.ts') + process.env.PAYLOAD_CONFIG_PATH = path.resolve(dirname, testSuiteName, testSuiteConfig) }, } }