{"version":3,"file":"buildImageFieldImage.cjs","sources":["../../../src/lib/buildImageFieldImage.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { sentenceCase } from \"../lib/changeCase\";\nimport { createFaker, Faker } from \"../lib/createFaker\";\n\nimport { MockValueStateConfig, MockImageData, Seed } from \"../types\";\n\ntype BuildImageFieldConfig<\n\tState extends prismic.FieldState = prismic.FieldState,\n> = {\n\timageData: MockImageData;\n\tconstraint?: NonNullable<\n\t\tprismic.CustomTypeModelImageField[\"config\"]\n\t>[\"constraint\"];\n} & (\n\t| {\n\t\t\tseed: Seed;\n\t\t\tfaker?: never;\n\t  }\n\t| {\n\t\t\tfaker: Faker;\n\t\t\tseed?: never;\n\t  }\n) &\n\tPick<MockValueStateConfig<State>, \"state\">;\n\nexport const buildImageFieldImage = <\n\tState extends prismic.FieldState = prismic.FieldState,\n>(\n\tconfig: BuildImageFieldConfig<State>,\n): prismic.ImageFieldImage<State> => {\n\tif (config.state === \"empty\") {\n\t\treturn {\n\t\t\tid: null,\n\t\t\turl: null,\n\t\t\tdimensions: null,\n\t\t\talt: null,\n\t\t\tcopyright: null,\n\t\t} as prismic.ImageFieldImage<State>;\n\t} else {\n\t\tconst faker = config.faker || createFaker(config.seed);\n\n\t\tconst url = new URL(config.imageData.url);\n\n\t\tconst dimensions = {\n\t\t\twidth: config.constraint?.width ?? config.imageData.width,\n\t\t\theight: config.constraint?.height ?? config.imageData.height,\n\t\t};\n\n\t\turl.searchParams.set(\"w\", dimensions.width.toString());\n\t\turl.searchParams.set(\"h\", dimensions.height.toString());\n\t\turl.searchParams.set(\"fit\", \"crop\");\n\n\t\treturn {\n\t\t\tid: faker.hash(11),\n\t\t\turl: url.toString(),\n\t\t\tdimensions,\n\t\t\talt: sentenceCase(faker.words(faker.range(5, 15))),\n\t\t\tcopyright: sentenceCase(faker.words(faker.range(5, 15))),\n\t\t\tedit: {\n\t\t\t\tx: faker.range(-dimensions.width / 2, dimensions.width / 2),\n\t\t\t\ty: faker.range(-dimensions.width / 2, dimensions.height / 2),\n\t\t\t\tzoom: faker.rangeFloat(1, 2),\n\t\t\t\tbackground: faker.hexColor(),\n\t\t\t},\n\t\t} as prismic.ImageFieldImage<State>;\n\t}\n};\n"],"names":["createFaker","sentenceCase"],"mappings":";;;;AA0Ba,MAAA,uBAAuB,CAGnC,WACmC;;AAC/B,MAAA,OAAO,UAAU,SAAS;AACtB,WAAA;AAAA,MACN,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,YAAY;AAAA,MACZ,KAAK;AAAA,MACL,WAAW;AAAA,IAAA;AAAA,SAEN;AACN,UAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAErD,UAAM,MAAM,IAAI,IAAI,OAAO,UAAU,GAAG;AAExC,UAAM,aAAa;AAAA,MAClB,SAAO,YAAO,eAAP,mBAAmB,UAAS,OAAO,UAAU;AAAA,MACpD,UAAQ,YAAO,eAAP,mBAAmB,WAAU,OAAO,UAAU;AAAA,IAAA;AAGvD,QAAI,aAAa,IAAI,KAAK,WAAW,MAAM,UAAU;AACrD,QAAI,aAAa,IAAI,KAAK,WAAW,OAAO,UAAU;AAClD,QAAA,aAAa,IAAI,OAAO,MAAM;AAE3B,WAAA;AAAA,MACN,IAAI,MAAM,KAAK,EAAE;AAAA,MACjB,KAAK,IAAI,SAAU;AAAA,MACnB;AAAA,MACA,KAAKC,WAAAA,aAAa,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,MACjD,WAAWA,WAAAA,aAAa,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,MACvD,MAAM;AAAA,QACL,GAAG,MAAM,MAAM,CAAC,WAAW,QAAQ,GAAG,WAAW,QAAQ,CAAC;AAAA,QAC1D,GAAG,MAAM,MAAM,CAAC,WAAW,QAAQ,GAAG,WAAW,SAAS,CAAC;AAAA,QAC3D,MAAM,MAAM,WAAW,GAAG,CAAC;AAAA,QAC3B,YAAY,MAAM,SAAU;AAAA,MAC5B;AAAA,IAAA;AAAA,EAEH;AACD;;"}