{"version":3,"file":"link.cjs","sources":["../../../src/model/link.ts"],"sourcesContent":["import * as prismic from \"@prismicio/client\";\n\nimport { capitalCase, sentenceCase } from \"../lib/changeCase\";\nimport { createFaker } from \"../lib/createFaker\";\n\nimport { MockModelConfig } from \"../types\";\n\ntype MockLinkModel<\n\tAllowTargetBlank extends boolean = boolean,\n\tAllowText extends boolean = boolean,\n\tRepeat extends boolean = boolean,\n> = prismic.CustomTypeModelLinkField & {\n\tconfig: AllowTargetBlank extends true\n\t\t? { allowTargetBlank: true }\n\t\t: { allowTargetBlank?: undefined };\n} & {\n\tconfig: AllowText extends true\n\t\t? { allowText: true }\n\t\t: { allowText?: undefined };\n} & {\n\tconfig: Repeat extends true ? { repeat: true } : { repeat?: undefined };\n};\n\nexport type MockLinkModelConfig<\n\tAllowTargetBlank extends boolean = boolean,\n\tAllowText extends boolean = boolean,\n\tRepeat extends boolean = boolean,\n> = {\n\tallowTargetBlank?: AllowTargetBlank;\n\tallowText?: AllowText;\n\trepeat?: Repeat;\n} & MockModelConfig;\n\nexport const link = <\n\tAllowTargetBlank extends boolean = boolean,\n\tAllowText extends boolean = boolean,\n\tRepeat extends boolean = boolean,\n>(\n\tconfig: MockLinkModelConfig<AllowTargetBlank, AllowText, Repeat>,\n): MockLinkModel<AllowTargetBlank, AllowText, Repeat> => {\n\tconst faker = config.faker || createFaker(config.seed);\n\n\treturn {\n\t\ttype: prismic.CustomTypeModelFieldType.Link,\n\t\tconfig: {\n\t\t\tlabel: capitalCase(faker.word()),\n\t\t\tplaceholder: sentenceCase(faker.words(3)),\n\t\t\tselect: null,\n\t\t\tallowTargetBlank:\n\t\t\t\t(\"allowTargetBlank\" in config\n\t\t\t\t\t? config.allowTargetBlank\n\t\t\t\t\t: faker.boolean()) || undefined,\n\t\t\tallowText:\n\t\t\t\t(\"allowText\" in config ? config.allowText : faker.boolean()) ||\n\t\t\t\tundefined,\n\t\t\trepeat:\n\t\t\t\t(\"repeat\" in config ? config.repeat : faker.boolean()) || undefined,\n\t\t},\n\t} as MockLinkModel<AllowTargetBlank, AllowText, Repeat>;\n};\n"],"names":["createFaker","prismic","capitalCase","sentenceCase"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiCa,MAAA,OAAO,CAKnB,WACuD;AACvD,QAAM,QAAQ,OAAO,SAASA,YAAAA,YAAY,OAAO,IAAI;AAE9C,SAAA;AAAA,IACN,MAAMC,mBAAQ,yBAAyB;AAAA,IACvC,QAAQ;AAAA,MACP,OAAOC,WAAA,YAAY,MAAM,MAAM;AAAA,MAC/B,aAAaC,WAAAA,aAAa,MAAM,MAAM,CAAC,CAAC;AAAA,MACxC,QAAQ;AAAA,MACR,mBACE,sBAAsB,SACpB,OAAO,mBACP,MAAM,QAAc,MAAA;AAAA,MACxB,YACE,eAAe,SAAS,OAAO,YAAY,MAAM,QAClD,MAAA;AAAA,MACD,SACE,YAAY,SAAS,OAAO,SAAS,MAAM,QAAc,MAAA;AAAA,IAC3D;AAAA,EAAA;AAEH;;"}