{"version":3,"file":"App-DQHRytET.mjs","sources":["../../admin/src/components/GeneratedDataTable/MediaCell.tsx","../../admin/src/pages/HomePage/types.ts","../../admin/src/components/GeneratedDataTable/GeneratedDataTable.tsx","../../admin/src/utils/axiosInstance.ts","../../admin/src/components/Upload/Upload.tsx","../../admin/src/constants.ts","../../admin/src/components/Generate/Generate.tsx","../../admin/src/components/attributeTypeComponents/IntegerInputs/IntegerInputs.tsx","../../admin/src/components/attributeTypeComponents/Email/Email.tsx","../../admin/src/components/attributeTypeComponents/StringInput/StringInput.tsx","../../admin/src/components/attributeTypeComponents/DateInputs/DateInputs.tsx","../../admin/src/components/attributeTypeComponents/MediaInputs/MediaInputs.tsx","../../admin/src/components/attributeTypeComponents/BooleanInput/BooleanInput.tsx","../../admin/src/components/attributeTypeComponents/EnumerationInput/EnumerationInput.tsx","../../admin/src/components/attributeTypeComponents/PasswordInput/PasswordInput.tsx","../../admin/src/components/attributeTypeComponents/UIDInput/UIDInput.tsx","../../admin/src/components/attributeTypeComponents/DecimalInputs/DecimalInputs.tsx","../../admin/src/components/attributeTypeComponents/RelationInput/RelationInput.tsx","../../admin/src/components/attributeTypeComponents/JSONInput/JSONInput.tsx","../../admin/src/pages/HomePage/config.tsx","../../admin/src/pages/HomePage/index.tsx","../../admin/src/pages/App.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n\tCarouselInput,\n\tCarouselSlide,\n\tCarouselImage,\n\tTypography,\n\tBox\n} from '@strapi/design-system';\n\ninterface Props {\n\tdata: string[];\n}\n\nconst MediaCell = ({ data }: Props) => {\n\tconst [selectedIndex, setSelectedIndex] = useState<number>(0);\n\n\tuseEffect(() => {\n\t\tsetSelectedIndex(0);\n\t}, [data]);\n\n\tlet type: 'images' | 'videos' | 'audios' | 'files' = 'images';\n\n\tif (data[0] && data[0].includes('mp4')) {\n\t\ttype = 'videos';\n\t} else if (data[0] && data[0].includes('wav')) {\n\t\ttype = 'audios';\n\t} else if (data[0] && data[0].includes('json')) {\n\t\ttype = 'files';\n\t}\n\n\tconst handleNext = () => {\n\t\tsetSelectedIndex((current) => (current < data.length - 1 ? current + 1 : 0));\n\t};\n\n\tconst handlePrevious = () => {\n\t\tsetSelectedIndex((current) => (current > 0 ? current - 1 : data.length - 1));\n\t};\n\n\tconst renderCarouselSlideContent = (url: string) => ({\n\t\timages: <CarouselImage src={url} alt={url} />,\n\t\tvideos: <video loop autoPlay width={200} src={url}></video>,\n\t\taudios: <audio controls src={url}></audio>,\n\t\tfiles: <Typography>{url.split('/').reverse()[0]}</Typography>\n\t});\n\treturn (\n\t\t<Box width=\"200px\">\n\t\t\t<CarouselInput\n\t\t\t\tselectedSlide={selectedIndex}\n\t\t\t\tlabel={`Carousel (${selectedIndex + 1}/${data.length})`}\n\t\t\t\tonNext={handleNext}\n\t\t\t\tonPrevious={handlePrevious}\n\t\t\t\tpreviousLabel=\"Previous slide\"\n\t\t\t\tnextLabel=\"Next slide\"\n\t\t\t>\n\t\t\t\t{data.map((url, index) => (\n\t\t\t\t\t<CarouselSlide label={url} key={url + index}>\n\t\t\t\t\t\t{renderCarouselSlideContent(url)[type]}\n\t\t\t\t\t</CarouselSlide>\n\t\t\t\t))}\n\t\t\t</CarouselInput>\n\t\t</Box>\n\t);\n};\n\nexport default MediaCell;\n","export enum AttributeType {\n\tInteger = 'integer',\n\tString = 'string',\n\tText = 'text',\n\tRichtext = 'richtext',\n\tEmail = 'email',\n\tDate = 'date',\n\tMedia = 'media',\n\tBoolean = 'boolean',\n\tEnumeration = 'enumeration',\n\tPassword = 'password',\n\tUID = 'uid',\n\tDecimal = 'decimal',\n\tRelation = 'relation',\n\tJSON = 'json'\n}\n\nexport type Values = {\n\t[key: string]:\n\t\t| { width: number; height: number }\n\t\t| { min: number; max: number }\n\t\t| { minSymbols: number; maxSymbols: number }\n\t\t| { from: Date; to: Date }\n\t\t| { pageCount: number }\n\t\t| { value: 'random' | true | false }\n\t\t| {};\n};\n\nexport type AllowedTypes = 'images' | 'videos' | 'files' | 'audios';\n\nexport type Attribute = {\n\ttype: AttributeType;\n\ttargetField: string;\n\ttarget: string;\n\tenum: string[];\n\tmin: number;\n\tmax: number;\n\tminSymbols: number;\n\tmaxSymbols: number;\n\tmultiple: boolean;\n\tallowedTypes: AllowedTypes[];\n\tregex?: string;\n};\n\nexport type GeneratedData = { [key: string]: any };\n","import { useState, useEffect } from 'react';\nimport {\n\tTable,\n\tThead,\n\tTbody,\n\tTr,\n\tTd,\n\tTh,\n\tButton,\n\tFlex,\n\tPagination,\n\tTypography\n} from '@strapi/design-system';\nimport MediaCell from './MediaCell';\nimport { AttributeType } from '../../pages/HomePage/types';\n\ninterface Props {\n\tdata: any[];\n\tattributes: any;\n\tcheckedAttributes: string[];\n}\n\nconst COUNT_PAGINATION_ROWS = 25;\n\nconst GeneratedDataTable = ({ data, attributes, checkedAttributes }: Props) => {\n\tconst [activePage, setActivePage] = useState<number>(1);\n\n\tuseEffect(() => {\n\t\tsetActivePage(1);\n\t}, [data.length]);\n\n\tconst handleChangePagination = (page: number) => () => {\n\t\tsetActivePage(page);\n\t};\n\n\tconst pageCount = Math.ceil(data.length / COUNT_PAGINATION_ROWS);\n\n\tconst headKeys = Object.keys(data[0]).filter((key) => checkedAttributes.includes(key));\n\n\tconst renderCell = (item: any, index: number) => {\n\t\tif (attributes[headKeys[index]].type === AttributeType.Media) {\n\t\t\treturn <MediaCell data={item} />;\n\t\t}\n\n\t\tif (attributes[headKeys[index]].type === AttributeType.JSON) {\n\t\t\treturn (\n\t\t\t\t<pre style={{ maxHeight: 200, overflowY: 'auto' }}>\n\t\t\t\t\t{JSON.stringify(item, undefined, 2)}\n\t\t\t\t</pre>\n\t\t\t);\n\t\t}\n\n\t\treturn <Typography>{item.toString()}</Typography>;\n\t};\n\n\treturn (\n\t\t<Table\n\t\t\tcolCount={headKeys.length + 1}\n\t\t\trowCount={data.length}\n\t\t\tfooter={\n\t\t\t\t<Flex justifyContent=\"center\" padding={[2, 2]}>\n\t\t\t\t\t<Pagination activePage={activePage} pageCount={pageCount}>\n\t\t\t\t\t\t{new Array(pageCount).fill(null).map((item, index) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tonClick={handleChangePagination(index + 1)}\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{index + 1}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Pagination>\n\t\t\t\t</Flex>\n\t\t\t}\n\t\t>\n\t\t\t<Thead>\n\t\t\t\t<Tr>\n\t\t\t\t\t<Th>\n\t\t\t\t\t\t<Typography textColor=\"neutral600\" variant=\"sigma\">\n\t\t\t\t\t\t\tROW\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</Th>\n\t\t\t\t\t{headKeys.map((key) => (\n\t\t\t\t\t\t<Th key={key}>\n\t\t\t\t\t\t\t<Typography textColor=\"neutral600\" variant=\"sigma\">\n\t\t\t\t\t\t\t\t{attributes[key].type === AttributeType.Relation\n\t\t\t\t\t\t\t\t\t? `${key} (ID)`\n\t\t\t\t\t\t\t\t\t: key}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</Th>\n\t\t\t\t\t))}\n\t\t\t\t</Tr>\n\t\t\t</Thead>\n\t\t\t<Tbody>\n\t\t\t\t{data\n\t\t\t\t\t.slice(\n\t\t\t\t\t\t(activePage - 1) * COUNT_PAGINATION_ROWS,\n\t\t\t\t\t\tCOUNT_PAGINATION_ROWS * activePage\n\t\t\t\t\t)\n\t\t\t\t\t.map((item, index) => (\n\t\t\t\t\t\t<Tr key={index}>\n\t\t\t\t\t\t\t<Td>{index + 1 + (activePage - 1) * COUNT_PAGINATION_ROWS}</Td>\n\t\t\t\t\t\t\t{headKeys.map((key, i) => (\n\t\t\t\t\t\t\t\t<Td key={key}>{renderCell(item[key], i)}</Td>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</Tr>\n\t\t\t\t\t))}\n\t\t\t</Tbody>\n\t\t</Table>\n\t);\n};\n\nexport default GeneratedDataTable;\n","/**\n * axios with a custom config.\n */\n\nimport axios from 'axios';\n\nconst instance = axios.create({\n\tbaseURL: process.env.STRAPI_ADMIN_BACKEND_URL\n});\n\nexport default instance;\n","import { Button } from '@strapi/design-system';\nimport axios from '../../utils/axiosInstance';\nimport { AttributeType, GeneratedData } from '../../pages/HomePage/types';\n\nconst COUNT_UPLOADED_DATA_ONCE = 25;\n\ninterface Props {\n\tisUploadingData: boolean;\n\tattributes: any;\n\tselectedType: any;\n\tisFlushedPreviousData: boolean;\n\tisPublished: boolean;\n\tcheckedAttributes: string[];\n\tgeneratedData: GeneratedData[];\n\tonChangeIsUploadingData: (value: boolean) => void;\n\tonChangeShowAlert: (value: boolean) => void;\n\tonChangeUploadedError: (value: boolean) => void;\n}\n\nconst Upload = ({\n\tisUploadingData,\n\tattributes,\n\tisFlushedPreviousData,\n\tselectedType,\n\tisPublished,\n\tcheckedAttributes,\n\tgeneratedData,\n\tonChangeIsUploadingData,\n\tonChangeShowAlert,\n\tonChangeUploadedError\n}: Props) => {\n\tconst handleUploadData = async () => {\n\t\tonChangeIsUploadingData(true);\n\t\tonChangeShowAlert(false);\n\t\tonChangeUploadedError(false);\n\t\tconst mediaKeys = Object.keys(attributes).filter(\n\t\t\t(key) => attributes[key].type === AttributeType.Media && checkedAttributes.includes(key)\n\t\t);\n\n\t\tif (selectedType) {\n\t\t\ttry {\n\t\t\t\tif (isFlushedPreviousData) {\n\t\t\t\t\tawait axios.post(`/generate-data/flush/${selectedType.uid}`);\n\t\t\t\t}\n\t\t\t\tlet uploadData = async (data: GeneratedData[]) => {\n\t\t\t\t\tif (!data.length) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tlet dataByCount = data.slice(0, COUNT_UPLOADED_DATA_ONCE);\n\t\t\t\t\tlet uploadedMediaData: { [key: string]: any[] } = {};\n\n\t\t\t\t\tif (mediaKeys.length) {\n\t\t\t\t\t\tconst mediaData = mediaKeys.reduce((prev, key) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t\t[key]: dataByCount.map((item) => item[key])\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}, {});\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst response = await axios.post<{ data: any }>(\n\t\t\t\t\t\t\t\t'/generate-data/upload',\n\t\t\t\t\t\t\t\tmediaData\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tuploadedMediaData = response.data;\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\tonChangeUploadedError(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst transformedData = Object.keys(uploadedMediaData).length\n\t\t\t\t\t\t? dataByCount.map((item, index) => {\n\t\t\t\t\t\t\t\tlet newItem: { [key: string]: any } = {};\n\t\t\t\t\t\t\t\tObject.keys(uploadedMediaData).forEach((key) => {\n\t\t\t\t\t\t\t\t\tnewItem[key] =\n\t\t\t\t\t\t\t\t\t\tuploadedMediaData[key][index].map(\n\t\t\t\t\t\t\t\t\t\t\t(uploadedItem: any) => uploadedItem.id\n\t\t\t\t\t\t\t\t\t\t) || item[key];\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\treturn { ...item, ...newItem };\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: dataByCount;\n\n\t\t\t\t\tawait axios.post(`/generate-data/create/${selectedType.uid}`, {\n\t\t\t\t\t\tdata: transformedData,\n\t\t\t\t\t\tstatus: isPublished ? 'published' : 'draft'\n\t\t\t\t\t});\n\n\t\t\t\t\treturn uploadData(data.slice(COUNT_UPLOADED_DATA_ONCE));\n\t\t\t\t};\n\t\t\t\tawait uploadData(generatedData);\n\t\t\t} catch (err) {\n\t\t\t\tonChangeUploadedError(true);\n\t\t\t}\n\t\t}\n\t\tonChangeIsUploadingData(false);\n\t\tonChangeShowAlert(true);\n\t};\n\treturn (\n\t\t<Button variant=\"secondary\" loading={isUploadingData} onClick={handleUploadData}>\n\t\t\tUpload data\n\t\t</Button>\n\t);\n};\n\nexport default Upload;\n","import { en, de, ru, fr, ja, ko, ar, pl, nl, tr, LocaleDefinition } from '@faker-js/faker';\nimport { Locale } from './types';\n\nexport const LOCALES: Record<Locale, LocaleDefinition> = {\n\ten,\n\tde,\n\tru,\n\tfr,\n\tja,\n\tko,\n\tar,\n\tpl,\n\tnl,\n\ttr\n} as const;\nconsole.log(LOCALES);\n\nexport const LOCALE_NAMES: Record<Locale, string> = {\n\ten: 'English',\n\tde: 'German',\n\tru: 'Russian',\n\tfr: 'French',\n\tja: 'Japanese',\n\tko: 'Korean',\n\tar: 'Arabic',\n\tpl: 'Polish',\n\tnl: 'Dutch',\n\ttr: 'Turkish'\n} as const;\n","import { faker, Faker, base, en, LocaleDefinition } from '@faker-js/faker';\nimport { Button } from '@strapi/design-system';\nimport { ArrowClockwise as RefreshIcon } from '@strapi/icons';\nimport qs from 'qs';\nimport slugify from 'slugify';\nimport { Attribute, AttributeType, Values } from '../../pages/HomePage/types';\nimport axios from '../../utils/axiosInstance';\nimport { LOCALES } from '../../constants';\nimport { Locale } from '../../types';\n\nconst COUNT_VIDEOS = 10;\nconst COUNT_AUDIOS = 5;\nconst COUNT_FILES = 5;\n\ninterface Props {\n\tattributes: { [key: string]: Attribute };\n\tcheckedAttributes: string[];\n\tvalues: Values;\n\tcount: number;\n\tlocale: Locale;\n\tonChangeGenerateData: (data: any[]) => void;\n}\n\nconst Generate = ({\n\tattributes,\n\tcheckedAttributes,\n\tvalues,\n\tcount,\n\tlocale,\n\tonChangeGenerateData\n}: Props) => {\n\tconst capitalizeFirstLetter = (str: string): string => {\n\t\treturn str.charAt(0).toUpperCase() + str.slice(1);\n\t};\n\n\tconst getValueByIntegerType = (key: string): number => {\n\t\tlet { min, max } = values[key] as {\n\t\t\tmin: number;\n\t\t\tmax: number;\n\t\t};\n\t\treturn faker.number.int({ min, max });\n\t};\n\n\tconst getValueByDecimalType = (key: string): number => {\n\t\tlet { min, max } = values[key] as {\n\t\t\tmin: number;\n\t\t\tmax: number;\n\t\t};\n\t\treturn faker.number.float({ min, max });\n\t};\n\n\tconst getValueByStringAndRichtextType = (\n\t\tkey: string,\n\t\trelationArray: number[],\n\t\tlocaleFaker: Faker,\n\t\tregex?: string\n\t): string => {\n\t\tif (regex) {\n\t\t\treturn localeFaker.helpers.fromRegExp(regex);\n\t\t}\n\t\tlet { min, max, minSymbols, maxSymbols } = values[key] as {\n\t\t\tmin: number;\n\t\t\tmax: number;\n\t\t\tminSymbols: number;\n\t\t\tmaxSymbols: number;\n\t\t};\n\n\t\tif (!min && !max) return localeFaker.lorem.words();\n\t\tconsole.log(localeFaker);\n\t\tif (min === 1 && max === 1)\n\t\t\treturn capitalizeFirstLetter(\n\t\t\t\tlocaleFaker.lorem.word({ length: { max: maxSymbols, min: minSymbols } })\n\t\t\t);\n\t\treturn localeFaker.lorem\n\t\t\t.words({ min, max })\n\t\t\t.split(' ')\n\t\t\t.map((item: string) => {\n\t\t\t\tlet randomIndex = localeFaker.number.int({\n\t\t\t\t\tmin: minSymbols,\n\t\t\t\t\tmax: maxSymbols\n\t\t\t\t});\n\t\t\t\treturn item.slice(0, randomIndex);\n\t\t\t})\n\t\t\t.join(' ');\n\t};\n\tconst getValueByEmailType = (): string => {\n\t\treturn faker.internet.email().toLowerCase();\n\t};\n\tconst getValueByDateType = (key: string): Date => {\n\t\tlet { from, to } = values[key] as {\n\t\t\tfrom: Date;\n\t\t\tto: Date;\n\t\t};\n\t\treturn faker.date.between({ from, to });\n\t};\n\n\tconst getValueByMediaTypeImages = (arrValues: null[], width: number, height: number) =>\n\t\tarrValues.map(() => faker.image.urlLoremFlickr({ height, width }));\n\n\tconst getValueByMediaTypeVideos = (arrValues: null[]) =>\n\t\tarrValues.map(\n\t\t\t() =>\n\t\t\t\tlocation.origin +\n\t\t\t\t`/generate-data/videos/${faker.number.int({\n\t\t\t\t\tmin: 1,\n\t\t\t\t\tmax: COUNT_VIDEOS\n\t\t\t\t})}.mp4`\n\t\t);\n\n\tconst getValueByMediaTypeAudios = (arrValues: null[]) =>\n\t\tarrValues.map(\n\t\t\t() =>\n\t\t\t\tlocation.origin +\n\t\t\t\t`/generate-data/audios/${faker.number.int({\n\t\t\t\t\tmin: 1,\n\t\t\t\t\tmax: COUNT_AUDIOS\n\t\t\t\t})}.wav`\n\t\t);\n\n\tconst getValueByMediaTypeFiles = (arrValues: null[]) =>\n\t\tarrValues.map(\n\t\t\t() =>\n\t\t\t\tlocation.origin +\n\t\t\t\t`/generate-data/audios/${faker.number.int({\n\t\t\t\t\tmin: 1,\n\t\t\t\t\tmax: COUNT_FILES\n\t\t\t\t})}.json`\n\t\t);\n\n\tconst getValueByMediaType = (key: string): string[] => {\n\t\tlet attribute = attributes[key];\n\t\tlet allowedType =\n\t\t\tattribute.allowedTypes[\n\t\t\t\tfaker.number.int({\n\t\t\t\t\tmin: 0,\n\t\t\t\t\tmax: attribute.allowedTypes.length - 1\n\t\t\t\t})\n\t\t\t];\n\n\t\tlet value: string[] = [];\n\t\tlet { width, height, min, max } = values[key] as {\n\t\t\twidth: number;\n\t\t\theight: number;\n\t\t\tmin: number;\n\t\t\tmax: number;\n\t\t};\n\t\tlet multiple = min && max;\n\t\tlet arrValues: null[] = new Array(multiple ? faker.number.int({ min, max }) : 1).fill(null);\n\n\t\tlet getValues = {\n\t\t\timages: getValueByMediaTypeImages(arrValues, width, height),\n\t\t\tvideos: getValueByMediaTypeVideos(arrValues),\n\t\t\taudios: getValueByMediaTypeAudios(arrValues),\n\t\t\tfiles: getValueByMediaTypeFiles(arrValues)\n\t\t};\n\n\t\tvalue.push(...getValues[allowedType]);\n\n\t\treturn value;\n\t};\n\n\tconst getValueByBooleanType = (key: string): boolean => {\n\t\tlet { value } = values[key] as {\n\t\t\tvalue: 'random' | true | false;\n\t\t};\n\t\tif (value === 'random') {\n\t\t\treturn faker.datatype.boolean();\n\t\t}\n\t\treturn value;\n\t};\n\n\tconst getValueByEnumerationType = (key: string): string => {\n\t\tconst enumValues = attributes[key].enum;\n\t\tlet randomIndex = faker.number.int({\n\t\t\tmin: 0,\n\t\t\tmax: enumValues.length - 1\n\t\t});\n\t\treturn enumValues[randomIndex];\n\t};\n\n\tconst getValueByPasswordType = (): string => {\n\t\treturn faker.internet.password();\n\t};\n\n\tconst getValueByUIDType = (): string => {\n\t\treturn faker.string.uuid();\n\t};\n\n\tconst getValueByRelationType = (key: string, relationArray: number[]): number => {\n\t\treturn relationArray[faker.number.int({ min: 0, max: relationArray.length - 1 })];\n\t};\n\n\tconst getValueByJSONType = (key: string) => {\n\t\tlet { min, max } = values[key] as {\n\t\t\tmin: number;\n\t\t\tmax: number;\n\t\t};\n\t\tlet countFields = faker.number.int({ min, max });\n\t\treturn new Array(countFields).fill(null).reduce(\n\t\t\t(accum) => ({\n\t\t\t\t...accum,\n\t\t\t\t[faker.word.words()]: faker.word.words()\n\t\t\t}),\n\t\t\t{}\n\t\t);\n\t};\n\n\tconst getGeneratedDataByType = (\n\t\ttype: AttributeType,\n\t\tkey: string,\n\t\trelationArray: { [key: string]: number[] },\n\t\tlocaleFaker: Faker,\n\t\tregex?: string\n\t): any => {\n\t\tlet obj = {\n\t\t\t[AttributeType.Integer]: getValueByIntegerType,\n\t\t\t[AttributeType.String]: getValueByStringAndRichtextType,\n\t\t\t[AttributeType.Text]: getValueByStringAndRichtextType,\n\t\t\t[AttributeType.Richtext]: getValueByStringAndRichtextType,\n\t\t\t[AttributeType.Email]: getValueByEmailType,\n\t\t\t[AttributeType.Date]: getValueByDateType,\n\t\t\t[AttributeType.Media]: getValueByMediaType,\n\t\t\t[AttributeType.Boolean]: (key: string) => getValueByBooleanType(key),\n\t\t\t[AttributeType.Enumeration]: getValueByEnumerationType,\n\t\t\t[AttributeType.Password]: getValueByPasswordType,\n\t\t\t[AttributeType.UID]: getValueByUIDType,\n\t\t\t[AttributeType.Decimal]: getValueByDecimalType,\n\t\t\t[AttributeType.Relation]: getValueByRelationType,\n\t\t\t[AttributeType.JSON]: getValueByJSONType\n\t\t};\n\n\t\treturn obj[type](key, relationArray[key], localeFaker, regex);\n\t};\n\n\tconst handleClickGenerate = async () => {\n\t\tlet data: { [key: string]: string | string[] }[] = [];\n\t\tconst selectedLocale: LocaleDefinition = LOCALES[locale] || en;\n\t\tconst localeFaker = new Faker({ locale: [selectedLocale, base] });\n\t\tif (attributes && values) {\n\t\t\tlet relationData: { [key: string]: any } = {};\n\t\t\tconst relationKeys = Object.keys(attributes)\n\t\t\t\t.filter((key) => checkedAttributes.includes(key))\n\t\t\t\t.filter((key) => attributes[key].type === AttributeType.Relation);\n\n\t\t\tawait Promise.all(\n\t\t\t\trelationKeys.map(async (key) => {\n\t\t\t\t\tconst { data } = await axios(\n\t\t\t\t\t\t`/generate-data/collection-types/${attributes[key].target}?${qs.stringify(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfields: ['id'],\n\t\t\t\t\t\t\t\tpage: faker.number.int({\n\t\t\t\t\t\t\t\t\tmin: 1,\n\t\t\t\t\t\t\t\t\tmax: 1\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{ encodeValuesOnly: true }\n\t\t\t\t\t\t)}`\n\t\t\t\t\t);\n\t\t\t\t\trelationData[key] = data.results.map((item: any) => item.id);\n\t\t\t\t})\n\t\t\t);\n\n\t\t\tfor (let i = 0; i < count; i++) {\n\t\t\t\tlet obj: { [key: string]: string | string[] } = {};\n\t\t\t\tlet UIDsWithTargetField: [string, Attribute][] = [];\n\t\t\t\tconst checkedKeys = Object.keys(attributes).filter((key) =>\n\t\t\t\t\tcheckedAttributes.includes(key)\n\t\t\t\t);\n\t\t\t\tcheckedKeys.forEach(async (key) => {\n\t\t\t\t\tif (attributes[key].type === AttributeType.UID && attributes[key].targetField) {\n\t\t\t\t\t\tUIDsWithTargetField.push([key, attributes[key]]);\n\t\t\t\t\t}\n\t\t\t\t\tif (\n\t\t\t\t\t\t(attributes[key].type === AttributeType.String ||\n\t\t\t\t\t\t\tAttributeType.Text ||\n\t\t\t\t\t\t\tAttributeType.Richtext) &&\n\t\t\t\t\t\tattributes[key].regex\n\t\t\t\t\t) {\n\t\t\t\t\t\tobj[key] = getGeneratedDataByType(\n\t\t\t\t\t\t\tattributes[key].type,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\trelationData,\n\t\t\t\t\t\t\tlocaleFaker,\n\t\t\t\t\t\t\tattributes[key].regex\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj[key] = getGeneratedDataByType(\n\t\t\t\t\t\t\tattributes[key].type,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\trelationData,\n\t\t\t\t\t\t\tlocaleFaker\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tUIDsWithTargetField.forEach(([key, attr]) => {\n\t\t\t\t\tlet field = obj[attr.targetField];\n\t\t\t\t\tif (typeof field === 'string') {\n\t\t\t\t\t\tobj[key] = slugify(field, '-') + '-' + obj[key];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tdata.push(obj);\n\t\t\t}\n\t\t}\n\t\tonChangeGenerateData(data);\n\t};\n\treturn (\n\t\t<Button startIcon={<RefreshIcon></RefreshIcon>} onClick={handleClickGenerate}>\n\t\t\tGenerate\n\t\t</Button>\n\t);\n};\n\nexport default Generate;\n","import React from 'react';\nimport { Box, Grid, Flex, Checkbox, NumberInput } from '@strapi/design-system';\nimport { GeneralProps } from '../types';\nimport { Typography } from '@strapi/design-system';\n\ninterface Props extends GeneralProps {\n\tvalues: { min: number; max: number };\n\tonChangeValue: (key: string, field: string) => (value: number) => void;\n}\n\nconst IntegerInputs = ({\n\tonChangeCheck,\n\tattribute,\n\tattributeKey,\n\tchecked,\n\tdisabled,\n\trequired,\n\tunique,\n\tvalues,\n\tonChangeValue\n}: Props) => {\n\treturn (\n\t\t<Grid.Item col={12}>\n\t\t\t<Box marginBottom=\"8px\">\n\t\t\t\t<Box marginBottom=\"12px\">\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tonCheckedChange={() => onChangeCheck(attributeKey)}\n\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t>\n\t\t\t\t\t\t{`${attributeKey} (Field type: Integer)`}\n\t\t\t\t\t\t{required && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t; <strong>Required</strong>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{unique && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t; <strong>Unique</strong>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Checkbox>\n\t\t\t\t</Box>\n\t\t\t\t<Flex gap=\"16px\">\n\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t<Typography>max {attribute.min ? attribute.min : ''}</Typography>\n\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'min')(value || 1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={values.min}\n\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t</Box>\n\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t<Typography>max {attribute.max ? attribute.max : ''}</Typography>\n\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'max')(value || 1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={values.max}\n\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t</Box>\n\t\t\t\t</Flex>\n\t\t\t</Box>\n\t\t</Grid.Item>\n\t);\n};\n\nexport default IntegerInputs;\n","import React, { ReactElement } from 'react';\nimport { Box, Grid, Checkbox, Typography } from '@strapi/design-system';\nimport { GeneralProps } from '../types';\n\nconst Email = ({\n\tattribute,\n\tattributeKey,\n\tchecked,\n\tdisabled,\n\trequired,\n\tunique,\n\tonChangeCheck\n}: GeneralProps): ReactElement => (\n\t<Grid.Item col={6}>\n\t\t<Box marginBottom=\"8px\">\n\t\t\t<Checkbox\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonCheckedChange={() => onChangeCheck(attributeKey)}\n\t\t\t\tchecked={checked}\n\t\t\t>\n\t\t\t\t{`${attributeKey} (Field type: Email)`}\n\t\t\t\t{required && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t; <strong>Required</strong>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t{unique && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t; <strong>Unique</strong>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Checkbox>\n\t\t</Box>\n\t</Grid.Item>\n);\n\nexport default Email;\n","import React from 'react';\nimport { Box, Grid, Flex, NumberInput, Checkbox } from '@strapi/design-system';\nimport { GeneralProps } from '../types';\nimport { AttributeType } from '../../../pages/HomePage/types';\nimport { Typography } from '@strapi/design-system';\n\ninterface Props extends GeneralProps {\n\tvalues: { min: number; max: number; minSymbols: number; maxSymbols: number };\n\tonChangeValue: (key: string, field: string) => (value: number) => void;\n}\n\nconst StringInput = ({\n\tattribute,\n\tattributeKey,\n\tchecked,\n\tdisabled,\n\trequired,\n\tunique,\n\tvalues,\n\tonChangeCheck,\n\tonChangeValue\n}: Props) => {\n\treturn (\n\t\t<Grid.Item col={6}>\n\t\t\t<Box marginBottom=\"8px\">\n\t\t\t\t<Box marginBottom=\"12px\">\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tonCheckedChange={() => {\n\t\t\t\t\t\t\tonChangeCheck(attributeKey);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t>\n\t\t\t\t\t\t{`${attributeKey} (Field type: ${\n\t\t\t\t\t\t\tattribute.type === AttributeType.String ||\n\t\t\t\t\t\t\tattribute.type == AttributeType.Text\n\t\t\t\t\t\t\t\t? 'String'\n\t\t\t\t\t\t\t\t: 'Richtext'\n\t\t\t\t\t\t})`}\n\t\t\t\t\t\t{required && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t; <strong>Required</strong>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{unique && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t; <strong>Unique</strong>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Checkbox>\n\t\t\t\t</Box>\n\t\t\t\t<Flex gap=\"16px\">\n\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t<Typography>min count words</Typography>\n\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'min')(value || 1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={values.min}\n\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t</Box>\n\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t<Typography>max count words</Typography>\n\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'max')(value || 1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={values.max}\n\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t</Box>\n\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t<Typography>min count symbols</Typography>\n\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'minSymbols')(value || 1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={values.minSymbols}\n\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t</Box>\n\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t<Typography>max count symbols</Typography>\n\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'maxSymbols')(value || 1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={values.maxSymbols}\n\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t</Box>\n\t\t\t\t</Flex>\n\t\t\t</Box>\n\t\t</Grid.Item>\n\t);\n};\n\nexport default StringInput;\n","import { DatePicker, Box, Grid, Flex, Checkbox, Typography } from '@strapi/design-system';\nimport { GeneralProps } from '../types';\n\ninterface Props extends GeneralProps {\n\tvalues: { to: Date; from: Date };\n\tonChangeValue: (key: string, field: string) => (date: Date) => void;\n}\n\nconst DateInputs = ({\n\tattribute,\n\tattributeKey,\n\tchecked,\n\tdisabled,\n\trequired,\n\tunique,\n\tvalues,\n\tonChangeValue,\n\tonChangeCheck\n}: Props) => {\n\treturn (\n\t\t<Grid.Item col={12}>\n\t\t\t<Box marginBottom=\"8px\">\n\t\t\t\t<Box marginBottom=\"12px\">\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tonCheckedChange={() => onChangeCheck(attributeKey)}\n\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t>\n\t\t\t\t\t\t{`${attributeKey} (Field type: Date)`}\n\t\t\t\t\t\t{required && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t; <strong>Required</strong>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{unique && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t; <strong>Unique</strong>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Checkbox>\n\t\t\t\t</Box>\n\t\t\t\t<Flex gap=\"16px\">\n\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t<DatePicker\n\t\t\t\t\t\t\tonChange={(date) =>\n\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'from')(date || new Date())\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={values.from}\n\t\t\t\t\t\t></DatePicker>\n\t\t\t\t\t</Box>\n\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t<DatePicker\n\t\t\t\t\t\t\tonChange={(date) =>\n\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'to')(date || new Date())\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={values.to}\n\t\t\t\t\t\t></DatePicker>\n\t\t\t\t\t</Box>\n\t\t\t\t</Flex>\n\t\t\t</Box>\n\t\t</Grid.Item>\n\t);\n};\n\nexport default DateInputs;\n","import React from 'react';\nimport { Box, Grid, Flex, Checkbox, NumberInput, Typography } from '@strapi/design-system';\nimport { GeneralProps } from '../types';\ninterface Props extends GeneralProps {\n\tonChangeValue: (key: string, field: string) => (value: number) => void;\n\tvalues: { width: number; height: number; min: number; max: number };\n}\n\nconst MediaInputs = ({\n\tattribute,\n\tattributeKey,\n\tchecked,\n\tdisabled,\n\trequired,\n\tunique,\n\tvalues,\n\tonChangeCheck,\n\tonChangeValue\n}: Props) => {\n\tconst allowedImages = attribute.allowedTypes.includes('images');\n\treturn (\n\t\t<Grid.Item col={12}>\n\t\t\t<Box marginBottom=\"8px\">\n\t\t\t\t<Box marginBottom=\"12px\">\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tonCheckedChange={() => onChangeCheck(attributeKey)}\n\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t>\n\t\t\t\t\t\t{`${attributeKey} (Field type: Media) Allowed types: ${attribute.allowedTypes.join(\n\t\t\t\t\t\t\t', '\n\t\t\t\t\t\t)}`}\n\t\t\t\t\t\t{required && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t; <strong>Required</strong>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{unique && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t; <strong>Unique</strong>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Checkbox>\n\t\t\t\t</Box>\n\t\t\t\t{allowedImages && (\n\t\t\t\t\t<Flex gap=\"16px\">\n\t\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t\t<Typography>width (px) for images</Typography>\n\t\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'width')(value || 1)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue={values.width}\n\t\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t\t<Typography>height (px) for images</Typography>\n\t\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'height')(value || 1)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue={values.height}\n\t\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t</Flex>\n\t\t\t\t)}\n\t\t\t\t{attribute.multiple && (\n\t\t\t\t\t<Flex marginTop=\"12px\" gap=\"16px\">\n\t\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t\t<Typography>Count min</Typography>\n\t\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'min')(value || 1)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue={values.min}\n\t\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t\t<Typography>Count max</Typography>\n\t\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'max')(value || 1)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue={values.max}\n\t\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t</Flex>\n\t\t\t\t)}\n\t\t\t</Box>\n\t\t</Grid.Item>\n\t);\n};\nexport default MediaInputs;\n","import { ReactElement } from 'react';\nimport {\n\tBox,\n\tGrid,\n\tCheckbox,\n\tSingleSelect,\n\tSingleSelectOption,\n\tTypography\n} from '@strapi/design-system';\nimport { GeneralProps } from '../types';\n\ninterface Props extends GeneralProps {\n\tvalues: { value: 'random' | true | false };\n\tonChangeValue: (key: string, field: string) => (value: 'random' | boolean) => void;\n}\n\nconst BooleanInput = ({\n\tattribute,\n\tattributeKey,\n\tchecked,\n\tdisabled,\n\trequired,\n\tunique,\n\tonChangeCheck,\n\tvalues,\n\tonChangeValue\n}: Props): ReactElement => {\n\treturn (\n\t\t<Grid.Item col={6}>\n\t\t\t<Box marginBottom=\"8px\">\n\t\t\t\t<Box marginBottom=\"12px\">\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tonCheckedChange={() => onChangeCheck(attributeKey)}\n\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t{`${attributeKey} (Field type: Boolean)`}\n\t\t\t\t\t\t{required && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t; <strong>Required</strong>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{unique && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t; <strong>Unique</strong>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Checkbox>\n\t\t\t\t</Box>\n\t\t\t\t<Box>\n\t\t\t\t\t<Typography>Value</Typography>\n\t\t\t\t\t<SingleSelect\n\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\tvalues.value === true\n\t\t\t\t\t\t\t\t? 'true'\n\t\t\t\t\t\t\t\t: values.value === false\n\t\t\t\t\t\t\t\t\t? 'false'\n\t\t\t\t\t\t\t\t\t: 'random'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={(value) => {\n\t\t\t\t\t\t\tif (value === 'random') {\n\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'value')('random');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'value')(value === 'true');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SingleSelectOption value=\"random\">Random</SingleSelectOption>\n\t\t\t\t\t\t<SingleSelectOption value=\"true\">True</SingleSelectOption>\n\t\t\t\t\t\t<SingleSelectOption value=\"false\">False</SingleSelectOption>\n\t\t\t\t\t</SingleSelect>\n\t\t\t\t</Box>\n\t\t\t</Box>\n\t\t</Grid.Item>\n\t);\n};\n\nexport default BooleanInput;\n","import React, { ReactElement } from 'react';\nimport { Box, Grid, Checkbox, Typography } from '@strapi/design-system';\nimport { GeneralProps } from '../types';\n\nconst EnumerationInput = ({\n\tattribute,\n\tattributeKey,\n\tchecked,\n\tdisabled,\n\trequired,\n\tunique,\n\tonChangeCheck\n}: GeneralProps): ReactElement => (\n\t<Grid.Item col={6}>\n\t\t<Box marginBottom=\"8px\">\n\t\t\t<Checkbox\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonCheckedChange={() => onChangeCheck(attributeKey)}\n\t\t\t\tchecked={checked}\n\t\t\t>\n\t\t\t\t{`${attributeKey} (field type: Enumeration)`}\n\t\t\t\t{required && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t; <strong>Required</strong>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t{unique && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t; <strong>Unique</strong>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Checkbox>\n\t\t</Box>\n\t</Grid.Item>\n);\n\nexport default EnumerationInput;\n","import React, { ReactElement } from 'react';\nimport { Box, Grid, Checkbox, Typography } from '@strapi/design-system';\nimport { GeneralProps } from '../types';\n\nconst PasswordInput = ({\n\tattribute,\n\tattributeKey,\n\tchecked,\n\tdisabled,\n\trequired,\n\tunique,\n\tonChangeCheck\n}: GeneralProps): ReactElement => {\n\treturn (\n\t\t<Grid.Item alignItems=\"start\" col={6}>\n\t\t\t<Box marginBottom=\"8px\">\n\t\t\t\t<Checkbox\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonCheckedChange={() => onChangeCheck(attributeKey)}\n\t\t\t\t\tchecked={checked}\n\t\t\t\t>\n\t\t\t\t\t{`${attributeKey} (Field type: Password)`}\n\t\t\t\t\t{required && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t; <strong>Required</strong>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\t{unique && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t; <strong>Unique</strong>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</Checkbox>\n\t\t\t</Box>\n\t\t</Grid.Item>\n\t);\n};\n\nexport default PasswordInput;\n","import React, { ReactElement } from 'react';\nimport { Box, Grid, Typography, Checkbox } from '@strapi/design-system';\nimport { GeneralProps } from '../types';\n\nconst UIDInput = ({\n\tattribute,\n\tattributeKey,\n\tchecked,\n\tdisabled,\n\trequired,\n\tunique,\n\tonChangeCheck\n}: GeneralProps): ReactElement => {\n\treturn (\n\t\t<Grid.Item col={6}>\n\t\t\t<Box marginBottom=\"8px\">\n\t\t\t\t<Checkbox\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonCheckedChange={() => onChangeCheck(attributeKey)}\n\t\t\t\t\tchecked={checked}\n\t\t\t\t>\n\t\t\t\t\t{attribute.targetField ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{`${attributeKey} (Field type: UID); `}\n\t\t\t\t\t\t\t{'Target field: '}\n\t\t\t\t\t\t\t<Typography fontWeight=\"bold\">{attribute.targetField}</Typography>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t`${attributeKey} (Field type: UID)`\n\t\t\t\t\t)}\n\t\t\t\t\t{required && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t; <strong>Required</strong>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\t{unique && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t; <strong>Unique</strong>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</Checkbox>\n\t\t\t</Box>\n\t\t</Grid.Item>\n\t);\n};\n\nexport default UIDInput;\n","import React from 'react';\nimport { Box, Grid, Flex, Checkbox, NumberInput } from '@strapi/design-system';\nimport { GeneralProps } from '../types';\nimport { Typography } from '@strapi/design-system';\n\ninterface Props extends GeneralProps {\n\tvalues: { min: number; max: number };\n\tonChangeValue: (key: string, field: string) => (value: number) => void;\n}\n\nconst DecimalInputs = ({\n\tonChangeCheck,\n\tattribute,\n\tattributeKey,\n\tchecked,\n\tdisabled,\n\trequired,\n\tunique,\n\tvalues,\n\tonChangeValue\n}: Props) => {\n\treturn (\n\t\t<Grid.Item col={12}>\n\t\t\t<Box marginBottom=\"8px\">\n\t\t\t\t<Box marginBottom=\"12px\">\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tonCheckedChange={() => onChangeCheck(attributeKey)}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t>\n\t\t\t\t\t\t{`${attributeKey} (Field type: Decimal)`}\n\t\t\t\t\t\t{required && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t; <strong>Required</strong>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{unique && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t; <strong>Unique</strong>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Checkbox>\n\t\t\t\t</Box>\n\t\t\t\t<Flex gap=\"16px\">\n\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t<Typography>max {attribute.min ? attribute.min : ''}</Typography>\n\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'min')(value || 1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={values.min}\n\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t</Box>\n\t\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t\t<Typography>max {attribute.max ? attribute.max : ''}</Typography>\n\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\t\tonChangeValue(attributeKey, 'max')(value || 1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={values.max}\n\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t</Box>\n\t\t\t\t</Flex>\n\t\t\t</Box>\n\t\t</Grid.Item>\n\t);\n};\n\nexport default DecimalInputs;\n","import React, { ReactElement } from 'react';\nimport { Box, Grid, Checkbox, Typography } from '@strapi/design-system';\nimport { GeneralProps } from '../types';\n\ninterface Props extends GeneralProps {\n\tvalues: { pageCount: number };\n}\n\nconst RelationInput = ({\n\tattribute,\n\tattributeKey,\n\tchecked,\n\tdisabled,\n\trequired,\n\tunique,\n\tvalues,\n\tonChangeCheck\n}: Props): ReactElement => {\n\treturn (\n\t\t<Grid.Item col={6}>\n\t\t\t<Box marginBottom=\"8px\">\n\t\t\t\t<Checkbox\n\t\t\t\t\tdisabled={disabled || values.pageCount === 0}\n\t\t\t\t\tonCheckedChange={() => onChangeCheck(attributeKey)}\n\t\t\t\t\tchecked={checked}\n\t\t\t\t>\n\t\t\t\t\t{`${attributeKey} (Field type: Relation)`}\n\t\t\t\t\t{required && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t; <strong>Required</strong>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\t{unique && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t; <strong>Unique</strong>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\t{values.pageCount === 0 && (\n\t\t\t\t\t\t<Typography textColor=\"warning500\" variant=\"delta\">\n\t\t\t\t\t\t\tGenerate or add data for the type\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t)}\n\t\t\t\t</Checkbox>\n\t\t\t</Box>\n\t\t</Grid.Item>\n\t);\n};\n\nexport default RelationInput;\n","import React, { ReactElement } from 'react';\nimport { Box, Grid, Checkbox, NumberInput, Flex } from '@strapi/design-system';\nimport { GeneralProps } from '../types';\nimport { Typography } from '@strapi/design-system';\n\ninterface Props extends GeneralProps {\n\tvalues: { min: number; max: number };\n\tonChangeValue: (key: string, field: string) => (value: number) => void;\n}\n\nconst JSONInput = ({\n\tattribute,\n\tvalues,\n\tattributeKey,\n\tchecked,\n\tdisabled,\n\trequired,\n\tunique,\n\tonChangeValue,\n\tonChangeCheck\n}: Props): ReactElement => (\n\t<Grid.Item col={6}>\n\t\t<Box marginBottom=\"8px\">\n\t\t\t<Box marginBottom=\"12px\">\n\t\t\t\t<Checkbox\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonCheckedChange={() => onChangeCheck(attributeKey)}\n\t\t\t\t\tchecked={checked}\n\t\t\t\t>\n\t\t\t\t\t{`${attributeKey} (Field type: JSON)`}\n\t\t\t\t\t{required && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t; <strong>Required</strong>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\t{unique && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t; <strong>Unique</strong>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</Checkbox>\n\t\t\t</Box>\n\t\t\t<Flex gap=\"16px\">\n\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t<Typography>min fields</Typography>\n\t\t\t\t\t<NumberInput\n\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\tonValueChange={(value) => onChangeValue(attributeKey, 'min')(value || 1)}\n\t\t\t\t\t\tvalue={values.min}\n\t\t\t\t\t></NumberInput>\n\t\t\t\t</Box>\n\t\t\t\t<Box flex=\"1\">\n\t\t\t\t\t<Typography>max fields</Typography>\n\t\t\t\t\t<NumberInput\n\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\tdisabled={!checked}\n\t\t\t\t\t\tonValueChange={(value) => onChangeValue(attributeKey, 'max')(value || 1)}\n\t\t\t\t\t\tvalue={values.max}\n\t\t\t\t\t></NumberInput>\n\t\t\t\t</Box>\n\t\t\t</Flex>\n\t\t</Box>\n\t</Grid.Item>\n);\n\nexport default JSONInput;\n","import React from 'react';\nimport IntegerInputs from '../../components/attributeTypeComponents/IntegerInputs';\nimport Email from '../../components/attributeTypeComponents/Email';\nimport StringInput from '../../components/attributeTypeComponents/StringInput';\nimport DateInputs from '../../components/attributeTypeComponents/DateInputs';\nimport MediaInputs from '../../components/attributeTypeComponents/MediaInputs';\nimport { AttributeType, Values } from './types';\nimport BooleanInput from '../../components/attributeTypeComponents/BooleanInput';\nimport EnumerationInput from '../../components/attributeTypeComponents/EnumerationInput';\nimport PasswordInput from '../../components/attributeTypeComponents/PasswordInput';\nimport UIDInput from '../../components/attributeTypeComponents/UIDInput';\nimport DecimalInputs from '../../components/attributeTypeComponents/DecimalInputs';\nimport RelationInput from '../../components/attributeTypeComponents/RelationInput';\nimport JSONInput from '../../components/attributeTypeComponents/JSONInput';\n\nlet getStringInput = ({\n\tkey,\n\tattribute,\n\tonChangeCheck,\n\tonChangeValue,\n\tchecked,\n\tdisabled,\n\tvalues\n}: {\n\tkey: string;\n\tattribute: any;\n\tvalues: Values;\n\tonChangeCheck: (key: string) => void;\n\tonChangeValue: (\n\t\tkey: string,\n\t\tfield: string\n\t) => (value: number | Date | boolean | 'random') => void;\n\tdisabled: boolean;\n\tchecked: boolean;\n}) => (\n\t<StringInput\n\t\tkey={key}\n\t\tdisabled={disabled}\n\t\trequired={attribute.required}\n\t\tunique={attribute.unique}\n\t\tattribute={attribute}\n\t\tattributeKey={key}\n\t\tvalues={values[key] as { min: number; max: number; maxSymbols: number; minSymbols: number }}\n\t\tchecked={checked}\n\t\tonChangeCheck={onChangeCheck}\n\t\tonChangeValue={onChangeValue}\n\t></StringInput>\n);\n\nexport const getAttributeInputs = ({\n\tkey,\n\tattribute,\n\tattributes,\n\tonChangeCheck,\n\tonChangeValue,\n\tvalues,\n\tcheckedAttributes\n}: {\n\tkey: string;\n\tattribute: any;\n\tvalues: Values;\n\tonChangeCheck: (key: string) => void;\n\tonChangeValue: (\n\t\tkey: string,\n\t\tfield: string\n\t) => (value: number | Date | boolean | 'random') => void;\n\tcheckedAttributes: string[];\n\tattributes: any;\n}) => {\n\tlet sourceAttributeKey = Object.keys(attributes).find(\n\t\t(attrKey) => attributes[attrKey].targetField === key\n\t);\n\n\tlet disabled =\n\t\t(sourceAttributeKey && checkedAttributes.includes(sourceAttributeKey)) ||\n\t\tattribute.required;\n\tconst checked = checkedAttributes.includes(key);\n\tconst stringInput = getStringInput({\n\t\tkey,\n\t\tattribute,\n\t\tonChangeCheck,\n\t\tonChangeValue,\n\t\tchecked,\n\t\tdisabled,\n\t\tvalues\n\t});\n\n\treturn {\n\t\t[AttributeType.Integer]: (\n\t\t\t<IntegerInputs\n\t\t\t\tkey={key}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={attribute.required}\n\t\t\t\tunique={attribute.unique}\n\t\t\t\tattribute={attribute}\n\t\t\t\tattributeKey={key}\n\t\t\t\tvalues={values[key] as { min: number; max: number }}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChangeCheck={onChangeCheck}\n\t\t\t\tonChangeValue={onChangeValue}\n\t\t\t></IntegerInputs>\n\t\t),\n\t\t[AttributeType.Richtext]: stringInput,\n\t\t[AttributeType.String]: stringInput,\n\t\t[AttributeType.Text]: stringInput,\n\t\t[AttributeType.Email]: (\n\t\t\t<Email\n\t\t\t\tkey={key}\n\t\t\t\tattribute={attribute}\n\t\t\t\tattributeKey={key}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={attribute.required}\n\t\t\t\tunique={attribute.unique}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChangeCheck={onChangeCheck}\n\t\t\t></Email>\n\t\t),\n\t\t[AttributeType.Date]: (\n\t\t\t<DateInputs\n\t\t\t\tkey={key}\n\t\t\t\tattribute={attribute}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={attribute.required}\n\t\t\t\tunique={attribute.unique}\n\t\t\t\tattributeKey={key}\n\t\t\t\tvalues={values[key] as { from: Date; to: Date }}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChangeValue={onChangeValue}\n\t\t\t\tonChangeCheck={onChangeCheck}\n\t\t\t></DateInputs>\n\t\t),\n\t\t[AttributeType.Media]: (\n\t\t\t<MediaInputs\n\t\t\t\tkey={key}\n\t\t\t\tattribute={attribute}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={attribute.required}\n\t\t\t\tunique={attribute.unique}\n\t\t\t\tattributeKey={key}\n\t\t\t\tchecked={checked}\n\t\t\t\tvalues={\n\t\t\t\t\tvalues[key] as {\n\t\t\t\t\t\twidth: number;\n\t\t\t\t\t\theight: number;\n\t\t\t\t\t\tmin: number;\n\t\t\t\t\t\tmax: number;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tonChangeCheck={onChangeCheck}\n\t\t\t\tonChangeValue={onChangeValue}\n\t\t\t></MediaInputs>\n\t\t),\n\t\t[AttributeType.Boolean]: (\n\t\t\t<BooleanInput\n\t\t\t\tkey={key}\n\t\t\t\tattribute={attribute}\n\t\t\t\tattributeKey={key}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={attribute.required}\n\t\t\t\tunique={attribute.unique}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChangeCheck={onChangeCheck}\n\t\t\t\tvalues={values[key] as { value: 'random' | true | false }}\n\t\t\t\tonChangeValue={onChangeValue}\n\t\t\t></BooleanInput>\n\t\t),\n\t\t[AttributeType.Enumeration]: (\n\t\t\t<EnumerationInput\n\t\t\t\tkey={key}\n\t\t\t\tattribute={attribute}\n\t\t\t\tattributeKey={key}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={attribute.required}\n\t\t\t\tunique={attribute.unique}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChangeCheck={onChangeCheck}\n\t\t\t></EnumerationInput>\n\t\t),\n\t\t[AttributeType.Password]: (\n\t\t\t<PasswordInput\n\t\t\t\tkey={key}\n\t\t\t\tattribute={attribute}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={attribute.required}\n\t\t\t\tunique={attribute.unique}\n\t\t\t\tattributeKey={key}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChangeCheck={onChangeCheck}\n\t\t\t></PasswordInput>\n\t\t),\n\t\t[AttributeType.UID]: (\n\t\t\t<UIDInput\n\t\t\t\tkey={key}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={attribute.required}\n\t\t\t\tattribute={attribute}\n\t\t\t\tattributeKey={key}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChangeCheck={onChangeCheck}\n\t\t\t></UIDInput>\n\t\t),\n\t\t[AttributeType.Decimal]: (\n\t\t\t<DecimalInputs\n\t\t\t\tkey={key}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={attribute.required}\n\t\t\t\tattribute={attribute}\n\t\t\t\tattributeKey={key}\n\t\t\t\tvalues={values[key] as { min: number; max: number }}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChangeCheck={onChangeCheck}\n\t\t\t\tonChangeValue={onChangeValue}\n\t\t\t></DecimalInputs>\n\t\t),\n\t\t[AttributeType.Relation]: (\n\t\t\t<RelationInput\n\t\t\t\tkey={key}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={attribute.required}\n\t\t\t\tunique={attribute.unique}\n\t\t\t\tvalues={values[key] as { pageCount: number }}\n\t\t\t\tattribute={attribute}\n\t\t\t\tattributeKey={key}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChangeCheck={onChangeCheck}\n\t\t\t></RelationInput>\n\t\t),\n\t\t[AttributeType.JSON]: (\n\t\t\t<JSONInput\n\t\t\t\tkey={key}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={attribute.required}\n\t\t\t\tunique={attribute.unique}\n\t\t\t\tattribute={attribute}\n\t\t\t\tattributeKey={key}\n\t\t\t\tchecked={checked}\n\t\t\t\tonChangeCheck={onChangeCheck}\n\t\t\t\tonChangeValue={onChangeValue}\n\t\t\t\tvalues={values[key] as { min: number; max: number }}\n\t\t\t></JSONInput>\n\t\t)\n\t};\n};\n","import React, { useState, useEffect, useMemo } from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport {\n\tSingleSelect,\n\tSingleSelectOption,\n\tBox,\n\tGrid,\n\tFlex,\n\tNumberInput,\n\tCheckbox,\n\tAlert,\n\tButton\n} from '@strapi/design-system';\nimport { ChevronDown, ChevronUp } from '@strapi/icons';\nimport GeneratedDataTable from '../../components/GeneratedDataTable';\nimport Upload from '../../components/Upload';\nimport Generate from '../../components/Generate';\nimport axios from '../../utils/axiosInstance';\nimport { getAttributeInputs } from './config';\nimport { Attribute, AttributeType, GeneratedData, Values } from './types';\nimport { Typography } from '@strapi/design-system';\nimport { LOCALE_NAMES, LOCALES } from '../../constants';\nimport { Locale } from '../../types';\n\ninterface ContentType {\n\tapiID: string;\n\tuid: string;\n\tschema: {\n\t\tattributes: { [key: string]: Attribute };\n\t\tdraftAndPublish: boolean;\n\t};\n}\n\nconst includeTypes = Object.values(AttributeType);\n\nconst COUNT_RELATION_DATA_PER_PAGE = 25;\n\nconst HomePage: React.FC = () => {\n\tconst [contentTypes, setContentTypes] = useState<ContentType[]>([]);\n\tconst [isUploadingData, setIsUploadingData] = useState<boolean>(false);\n\tconst [isPublished, setIsPublished] = useState<boolean>(false);\n\tconst [showAlert, setShowAlert] = useState<boolean>(false);\n\tconst [uploadedError, setUploadedError] = useState<boolean>(false);\n\tconst [values, setValues] = useState<Values | null>(null);\n\tconst [count, setCount] = useState<number>(10);\n\tconst [checkedAttributes, setCheckedAttributes] = useState<string[]>([]);\n\tconst [generatedData, setGeneratedData] = useState<GeneratedData[]>([]);\n\tconst [isFlushedPreviousData, setIsFlashedPreviousData] = useState<boolean>(false);\n\tconst [isCollapsed, setIsCollapsed] = useState<boolean>(false);\n\tconst [locale, setLocale] = useState<Locale>('en');\n\n\tconst { search } = useLocation();\n\tconst navigate = useNavigate();\n\tconst query = new URLSearchParams(search);\n\tconst selectedTypeUID = query.get('typeUID') || null;\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst {\n\t\t\t\tdata: { data }\n\t\t\t} = await axios.get<{ data: ContentType[] }>('/generate-data/content-types');\n\t\t\tsetContentTypes(data);\n\t\t})();\n\t}, []);\n\n\tconst selectedType = contentTypes.find(\n\t\t(item) => item.uid === selectedTypeUID\n\t) as unknown as ContentType;\n\n\tlet draftAndPublish = selectedType?.schema.draftAndPublish || false;\n\n\tconst attributes = useMemo(\n\t\t(): { [key: string]: Attribute } | null =>\n\t\t\tselectedType\n\t\t\t\t? Object.keys(selectedType.schema.attributes).reduce((prev, key) => {\n\t\t\t\t\t\treturn includeTypes.includes(selectedType.schema.attributes[key].type)\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t\t\t[key]: selectedType.schema.attributes[key]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: prev;\n\t\t\t\t\t}, {})\n\t\t\t\t: null,\n\t\t[selectedType]\n\t);\n\n\tuseEffect(() => {\n\t\tif (attributes && !values) {\n\t\t\tlet obj: Values = {};\n\t\t\tlet newCheckedAttributes: string[] = [];\n\t\t\tconst stringTypes = [AttributeType.String, AttributeType.Text, AttributeType.Richtext];\n\t\t\tconst createValues = async () => {\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tObject.keys(attributes).map(async (key) => {\n\t\t\t\t\t\tlet type = attributes[key].type;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tAttributeType.Integer,\n\t\t\t\t\t\t\t\tAttributeType.Decimal,\n\t\t\t\t\t\t\t\tAttributeType.JSON,\n\t\t\t\t\t\t\t\t...stringTypes\n\t\t\t\t\t\t\t].includes(type)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tobj[key] = {\n\t\t\t\t\t\t\t\tmin: attributes[key].min || 1,\n\t\t\t\t\t\t\t\tmax: attributes[key].max || 1,\n\t\t\t\t\t\t\t\t...(stringTypes.includes(type)\n\t\t\t\t\t\t\t\t\t? { minSymbols: 1, maxSymbols: 10 }\n\t\t\t\t\t\t\t\t\t: {})\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (type === AttributeType.Date) {\n\t\t\t\t\t\t\tobj[key] = { from: new Date(), to: new Date() };\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (attributes[key].type === AttributeType.Media) {\n\t\t\t\t\t\t\tobj[key] = {\n\t\t\t\t\t\t\t\twidth: 640,\n\t\t\t\t\t\t\t\theight: 480,\n\t\t\t\t\t\t\t\t...(attributes[key].multiple ? { min: 1, max: 3 } : {})\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (type === AttributeType.Relation) {\n\t\t\t\t\t\t\tconst { data } = await axios(\n\t\t\t\t\t\t\t\t`/generate-data/collection-types/${attributes[key].target}`\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tlet pageCount = Math.ceil(\n\t\t\t\t\t\t\t\tdata.meta.pagination.total / COUNT_RELATION_DATA_PER_PAGE\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tobj[key] = {\n\t\t\t\t\t\t\t\tpageCount\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tif (pageCount === 0) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (type === AttributeType.Boolean) {\n\t\t\t\t\t\t\tobj[key] = { value: 'random' };\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tAttributeType.Email,\n\t\t\t\t\t\t\t\tAttributeType.Enumeration,\n\t\t\t\t\t\t\t\tAttributeType.UID,\n\t\t\t\t\t\t\t\tAttributeType.Password\n\t\t\t\t\t\t\t].includes(type)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tobj[key] = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnewCheckedAttributes.push(key);\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t\tsetCheckedAttributes(newCheckedAttributes);\n\t\t\t\tsetValues(obj);\n\t\t\t};\n\t\t\tcreateValues();\n\t\t}\n\t}, [attributes, values]);\n\n\tconst handleChangeSelect = (newTypeUID: string) => {\n\t\tconst params = new URLSearchParams();\n\t\tparams.append('typeUID', newTypeUID);\n\t\tnavigate({ search: params.toString() });\n\t\tsetValues(null);\n\t\tsetGeneratedData([]);\n\t\tsetShowAlert(false);\n\t};\n\n\tconst handleChangeValue =\n\t\t(key: string, field: string) => (value: number | Date | boolean | 'random') => {\n\t\t\tif (attributes && values) {\n\t\t\t\tconst { min, max } = attributes[key];\n\t\t\t\tif (min || max) {\n\t\t\t\t\tlet { min: currentMin, max: currentMax } = values[key] as {\n\t\t\t\t\t\tmin: number;\n\t\t\t\t\t\tmax: number;\n\t\t\t\t\t};\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof value === 'number' &&\n\t\t\t\t\t\t(value < min ||\n\t\t\t\t\t\t\tvalue > max ||\n\t\t\t\t\t\t\t(field === 'min' && value > currentMax) ||\n\t\t\t\t\t\t\t(field === 'max' && value < currentMin))\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (field === 'from' || field === 'to') {\n\t\t\t\t\tlet { from, to } = values[key] as {\n\t\t\t\t\t\tfrom: Date;\n\t\t\t\t\t\tto: Date;\n\t\t\t\t\t};\n\t\t\t\t\tif ((field === 'from' && value > to) || (field === 'to' && value < from)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t(typeof value === 'number' && value > 0) ||\n\t\t\t\t\tvalue instanceof Date ||\n\t\t\t\t\ttypeof value === 'boolean' ||\n\t\t\t\t\tvalue === 'random'\n\t\t\t\t) {\n\t\t\t\t\tsetValues({\n\t\t\t\t\t\t...values,\n\t\t\t\t\t\t[key]: { ...values[key], [field]: value }\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\tconst handleChangeCheck = (key: string) => {\n\t\tif (attributes) {\n\t\t\tif (checkedAttributes.includes(key)) {\n\t\t\t\tsetCheckedAttributes(checkedAttributes.filter((item) => item !== key));\n\t\t\t} else {\n\t\t\t\tif (attributes[key].targetField) {\n\t\t\t\t\tif (checkedAttributes.includes(attributes[key].targetField)) {\n\t\t\t\t\t\tsetCheckedAttributes([...checkedAttributes, key]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetCheckedAttributes([\n\t\t\t\t\t\t\t...checkedAttributes,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tattributes[key].targetField\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsetCheckedAttributes([...checkedAttributes, key]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleChangeIsFlushedPreviousData = () => {\n\t\tsetIsFlashedPreviousData(!isFlushedPreviousData);\n\t};\n\n\tconst handleCloseAlert = () => {\n\t\tsetShowAlert(false);\n\t};\n\n\tconst handleChangeIsPublished = () => {\n\t\tsetIsPublished(!isPublished);\n\t};\n\n\tconst handleChangeGenerateData = (data: GeneratedData[]): void => {\n\t\tsetGeneratedData(data);\n\t};\n\n\treturn (\n\t\t<Box padding=\"35px\">\n\t\t\t<Box display=\"flex\" marginBottom=\"10px\" style={{ justifyContent: 'space-between' }}>\n\t\t\t\t<Box>\n\t\t\t\t\t<Typography fontSize=\"24px\" fontWeight=\"bold\" tag=\"div\">\n\t\t\t\t\t\tGenerate data\n\t\t\t\t\t</Typography>\n\t\t\t\t\t<Typography>Generate data for your content types</Typography>\n\t\t\t\t</Box>\n\t\t\t\t{attributes && values && (\n\t\t\t\t\t<Generate\n\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\tattributes={attributes}\n\t\t\t\t\t\tcheckedAttributes={checkedAttributes}\n\t\t\t\t\t\tcount={count}\n\t\t\t\t\t\tonChangeGenerateData={handleChangeGenerateData}\n\t\t\t\t\t\tvalues={values}\n\t\t\t\t\t></Generate>\n\t\t\t\t)}\n\t\t\t</Box>\n\t\t\t<Box>\n\t\t\t\t<Box\n\t\t\t\t\tshadow=\"filterShadow\"\n\t\t\t\t\tpadding={6}\n\t\t\t\t\tborderRadius=\"4px\"\n\t\t\t\t\tmarginBottom=\"24px\"\n\t\t\t\t\tbackground=\"neutral0\"\n\t\t\t\t>\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tjustifyContent=\"space-between\"\n\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\tgap=\"16px\"\n\t\t\t\t\t\tmarginBottom={isCollapsed ? 0 : 4}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Typography fontSize=\"16px\" flex=\"1\" fontWeight=\"semiBold\">\n\t\t\t\t\t\t\tConfiguration\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t<Flex alignItems=\"center\" gap=\"16px\">\n\t\t\t\t\t\t\t<Typography fontSize=\"16px\" fontWeight=\"semiBold\">\n\t\t\t\t\t\t\t\tData Locale:\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t<SingleSelect\n\t\t\t\t\t\t\t\tsize=\"S\"\n\t\t\t\t\t\t\t\tvalue={locale}\n\t\t\t\t\t\t\t\tonChange={(value) => setLocale(value as Locale)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{Object.keys(LOCALES).map((locale) => (\n\t\t\t\t\t\t\t\t\t<SingleSelectOption key={locale} value={locale}>\n\t\t\t\t\t\t\t\t\t\t{LOCALE_NAMES[locale as Locale]}\n\t\t\t\t\t\t\t\t\t</SingleSelectOption>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SingleSelect>{' '}\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tsize=\"S\"\n\t\t\t\t\t\t\tonClick={() => setIsCollapsed(!isCollapsed)}\n\t\t\t\t\t\t\tstartIcon={isCollapsed ? <ChevronDown /> : <ChevronUp />}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{isCollapsed ? 'Expand' : 'Collapse'}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{!isCollapsed && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Flex gap=\"16px\">\n\t\t\t\t\t\t\t\t<Box flex=\"1\" marginBottom=\"24px\">\n\t\t\t\t\t\t\t\t\t<SingleSelect\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"Select your content type\"\n\t\t\t\t\t\t\t\t\t\tvalue={selectedTypeUID}\n\t\t\t\t\t\t\t\t\t\tonChange={(value) => handleChangeSelect(value.toString())}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{contentTypes.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t<SingleSelectOption key={item.uid} value={item.uid}>\n\t\t\t\t\t\t\t\t\t\t\t\t{item.apiID}\n\t\t\t\t\t\t\t\t\t\t\t</SingleSelectOption>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</SingleSelect>\n\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t<Box flex=\"1\"></Box>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t<Grid.Root gap={4}>\n\t\t\t\t\t\t\t\t{attributes &&\n\t\t\t\t\t\t\t\t\tvalues &&\n\t\t\t\t\t\t\t\t\tObject.keys(attributes).map((key) => (\n\t\t\t\t\t\t\t\t\t\t<React.Fragment key={key}>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tgetAttributeInputs({\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t\t\t\t\t\t\tattribute: attributes[key],\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalues,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcheckedAttributes,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeCheck: handleChangeCheck,\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeValue: handleChangeValue\n\t\t\t\t\t\t\t\t\t\t\t\t})[attributes[key].type]\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</Grid.Root>\n\t\t\t\t\t\t\t{attributes && (\n\t\t\t\t\t\t\t\t<Flex gap=\"16px\">\n\t\t\t\t\t\t\t\t\t<Box paddingTop={4} flex=\"1\">\n\t\t\t\t\t\t\t\t\t\t<Typography>Count items to generate</Typography>\n\t\t\t\t\t\t\t\t\t\t<NumberInput\n\t\t\t\t\t\t\t\t\t\t\tvalue={count}\n\t\t\t\t\t\t\t\t\t\t\tname=\"\"\n\t\t\t\t\t\t\t\t\t\t\tonValueChange={(value) => setCount(value || 1)}\n\t\t\t\t\t\t\t\t\t\t></NumberInput>\n\t\t\t\t\t\t\t\t\t</Box>{' '}\n\t\t\t\t\t\t\t\t\t<Box flex=\"1\"></Box>\n\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\t\t\t\t{!!generatedData.length &&\n\t\t\t\t\tattributes &&\n\t\t\t\t\tObject.keys(generatedData[0]).length >= checkedAttributes.length && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<GeneratedDataTable\n\t\t\t\t\t\t\t\tattributes={attributes}\n\t\t\t\t\t\t\t\tdata={generatedData}\n\t\t\t\t\t\t\t\tcheckedAttributes={checkedAttributes}\n\t\t\t\t\t\t\t></GeneratedDataTable>\n\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\t\tmarginTop=\"12px\"\n\t\t\t\t\t\t\t\tmarginBottom=\"12px\"\n\t\t\t\t\t\t\t\tgap=\"32px\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\tdisabled={isUploadingData}\n\t\t\t\t\t\t\t\t\tchecked={isFlushedPreviousData}\n\t\t\t\t\t\t\t\t\tonCheckedChange={handleChangeIsFlushedPreviousData}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tFlush previous content type data before upload\n\t\t\t\t\t\t\t\t</Checkbox>\n\t\t\t\t\t\t\t\t{draftAndPublish && (\n\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\tonCheckedChange={handleChangeIsPublished}\n\t\t\t\t\t\t\t\t\t\tchecked={isPublished}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tPublish content?\n\t\t\t\t\t\t\t\t\t</Checkbox>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Upload\n\t\t\t\t\t\t\t\t\tattributes={attributes}\n\t\t\t\t\t\t\t\t\tselectedType={selectedType}\n\t\t\t\t\t\t\t\t\tgeneratedData={generatedData}\n\t\t\t\t\t\t\t\t\tisFlushedPreviousData={isFlushedPreviousData}\n\t\t\t\t\t\t\t\t\tisPublished={isPublished}\n\t\t\t\t\t\t\t\t\tcheckedAttributes={checkedAttributes}\n\t\t\t\t\t\t\t\t\tisUploadingData={isUploadingData}\n\t\t\t\t\t\t\t\t\tonChangeUploadedError={setUploadedError}\n\t\t\t\t\t\t\t\t\tonChangeIsUploadingData={setIsUploadingData}\n\t\t\t\t\t\t\t\t\tonChangeShowAlert={setShowAlert}\n\t\t\t\t\t\t\t\t></Upload>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t{!!generatedData.length &&\n\t\t\t\t\tObject.keys(generatedData[0]).length < checkedAttributes.length && (\n\t\t\t\t\t\t<Alert closeLabel=\"Close alert\">\n\t\t\t\t\t\t\tRegenerate data with new added attributes\n\t\t\t\t\t\t</Alert>\n\t\t\t\t\t)}\n\t\t\t\t{showAlert && selectedType && (\n\t\t\t\t\t<Alert\n\t\t\t\t\t\tvariant={uploadedError ? 'danger' : 'success'}\n\t\t\t\t\t\tonClose={handleCloseAlert}\n\t\t\t\t\t\tcloseLabel=\"Close alert\"\n\t\t\t\t\t\ttitle=\"Uploaded Alert\"\n\t\t\t\t\t>\n\t\t\t\t\t\tThe data for <b>{selectedType.apiID}</b>\n\t\t\t\t\t\t{uploadedError ? \" wasn't\" : ' was'} uploaded\n\t\t\t\t\t</Alert>\n\t\t\t\t)}\n\t\t\t</Box>\n\t\t</Box>\n\t);\n};\n\nexport default HomePage;\n","import { Page } from '@strapi/strapi/admin';\nimport { Routes, Route } from 'react-router-dom';\nimport HomePage from './HomePage';\nimport { useEffect, useRef } from 'react';\nimport { Box, DesignSystemProvider } from '@strapi/design-system';\nconst App = () => {\n\tconst ref = useRef<HTMLDivElement>(null);\n\tuseEffect(() => {\n\t\tlet parentNode = ref.current?.parentNode;\n\t\tif (parentNode) {\n\t\t\t(parentNode as HTMLDivElement).style.overflow = 'hidden';\n\t\t}\n\t}, []);\n\treturn (\n\t\t<DesignSystemProvider>\n\t\t\t<Box height=\"100%\" overflow=\"auto\" ref={ref}>\n\t\t\t\t<Routes>\n\t\t\t\t\t<Route index element={<HomePage />} />\n\t\t\t\t\t<Route path=\"*\" element={<Page.Error />} />\n\t\t\t\t</Routes>\n\t\t\t</Box>\n\t\t</DesignSystemProvider>\n\t);\n};\n\nexport { App };\n"],"names":["AttributeType","axios","key","data","RefreshIcon","locale"],"mappings":"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"}