@prismicio/mock 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +4 -1
  2. package/dist/api/index.cjs +39 -27
  3. package/dist/api/index.cjs.map +1 -0
  4. package/dist/api/index.d.ts +2 -1
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/{index.mjs → index.js} +104 -58
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/index.cjs +293 -393
  9. package/dist/index.cjs.map +1 -0
  10. package/dist/index.d.ts +132 -230
  11. package/dist/{index.mjs → index.js} +286 -384
  12. package/dist/index.js.map +1 -0
  13. package/dist/model/index.cjs +148 -205
  14. package/dist/model/index.cjs.map +1 -0
  15. package/dist/model/index.d.ts +68 -104
  16. package/dist/model/index.d.ts.map +1 -0
  17. package/dist/model/index.js +462 -0
  18. package/dist/model/index.js.map +1 -0
  19. package/dist/value/index.cjs +238 -495
  20. package/dist/value/index.cjs.map +1 -0
  21. package/dist/value/index.d.ts +54 -116
  22. package/dist/value/index.d.ts.map +1 -0
  23. package/dist/value/{index.mjs → index.js} +407 -610
  24. package/dist/value/index.js.map +1 -0
  25. package/package.json +21 -21
  26. package/src/lib/buildContentRelationshipField.ts +6 -1
  27. package/src/lib/buildEmbedField.ts +1 -1
  28. package/src/lib/buildImageFieldImage.ts +48 -0
  29. package/src/model/buildMockGroupFieldMap.ts +65 -0
  30. package/src/model/contentRelationship.ts +14 -21
  31. package/src/model/customType.ts +49 -48
  32. package/src/model/group.ts +8 -15
  33. package/src/model/image.ts +13 -13
  34. package/src/model/index.ts +2 -0
  35. package/src/model/select.ts +11 -16
  36. package/src/model/sharedSlice.ts +14 -41
  37. package/src/model/sharedSliceVariation.ts +33 -21
  38. package/src/model/slice.ts +15 -19
  39. package/src/model/sliceZone.ts +23 -59
  40. package/src/types.ts +41 -12
  41. package/src/value/color.ts +16 -6
  42. package/src/value/contentRelationship.ts +51 -36
  43. package/src/value/date.ts +25 -9
  44. package/src/value/embed.ts +18 -6
  45. package/src/value/geoPoint.ts +21 -9
  46. package/src/value/group.ts +7 -27
  47. package/src/value/image.ts +22 -9
  48. package/src/value/integrationFields.ts +26 -14
  49. package/src/value/keyText.ts +18 -6
  50. package/src/value/link.ts +33 -34
  51. package/src/value/linkToMedia.ts +15 -20
  52. package/src/value/number.ts +16 -6
  53. package/src/value/richText/heading.ts +7 -7
  54. package/src/value/richText/image.ts +6 -2
  55. package/src/value/richText/index.ts +1 -1
  56. package/src/value/select.ts +23 -8
  57. package/src/value/sharedSlice.ts +2 -2
  58. package/src/value/sharedSliceVariation.ts +6 -34
  59. package/src/value/slice.ts +5 -30
  60. package/src/value/sliceZone.ts +44 -60
  61. package/src/value/timestamp.ts +19 -6
  62. package/src/value/title.ts +1 -1
  63. package/src/value/uid.ts +1 -1
  64. package/dist/model/index.mjs +0 -465
  65. package/src/lib/buildImageField.ts +0 -34
  66. package/src/lib/buildMockGroupFieldMap.ts +0 -84
package/dist/index.cjs CHANGED
@@ -11,21 +11,19 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
11
11
 
12
12
  function _interopNamespace(e) {
13
13
  if (e && e.__esModule) return e;
14
- var n = Object.create(null);
14
+ const n = Object.create(null);
15
15
  if (e) {
16
- Object.keys(e).forEach(function (k) {
16
+ for (const k in e) {
17
17
  if (k !== 'default') {
18
- var d = Object.getOwnPropertyDescriptor(e, k);
18
+ const d = Object.getOwnPropertyDescriptor(e, k);
19
19
  Object.defineProperty(n, k, d.get ? d : {
20
20
  enumerable: true,
21
- get: function () {
22
- return e[k];
23
- }
21
+ get: function () { return e[k]; }
24
22
  });
25
23
  }
26
- });
24
+ }
27
25
  }
28
- n['default'] = e;
26
+ n["default"] = e;
29
27
  return Object.freeze(n);
30
28
  }
31
29
 
@@ -47,7 +45,7 @@ const createFaker = (seed = FAKER_SEED) => {
47
45
  if (createFaker.cache[cacheKey]) {
48
46
  return createFaker.cache[cacheKey];
49
47
  }
50
- const fakerInstance = new Faker__default['default']();
48
+ const fakerInstance = new Faker__default["default"]();
51
49
  fakerInstance.locales["en"] = fakerLocaleEN__namespace;
52
50
  fakerInstance.seed(normalizedSeed);
53
51
  createFaker.cache[cacheKey] = fakerInstance;
@@ -299,11 +297,6 @@ const color$1 = (config = {}) => {
299
297
  };
300
298
  };
301
299
 
302
- const generateCustomTypeId = (config) => {
303
- const faker = createFaker(config.seed);
304
- return changeCase__namespace.snakeCase(faker.company.bsNoun());
305
- };
306
-
307
300
  const contentRelationship$1 = (config = {}) => {
308
301
  const faker = createFaker(config.seed);
309
302
  return {
@@ -312,12 +305,37 @@ const contentRelationship$1 = (config = {}) => {
312
305
  label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
313
306
  placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
314
307
  select: prismicT__namespace.CustomTypeModelLinkSelectType.Document,
315
- customtypes: config.constrainCustomTypes ? Array(faker.datatype.number({ min: 1, max: 3 })).fill(void 0).map(() => generateCustomTypeId({ seed: config.seed })) : void 0,
316
- tags: config.constrainTags ? Array(faker.datatype.number({ min: 1, max: 3 })).fill(void 0).map(() => changeCase__namespace.capitalCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })))) : void 0
308
+ customtypes: config.customTypeIDs,
309
+ tags: config.tags
317
310
  }
318
311
  };
319
312
  };
320
313
 
314
+ const customType$1 = (config = {}) => {
315
+ var _a, _b;
316
+ const faker = createFaker(config.seed);
317
+ let label = config.label || changeCase__namespace.capitalCase(faker.company.bsNoun());
318
+ let id = config.id || changeCase__namespace.snakeCase(label);
319
+ if (config.id && !config.label) {
320
+ label = changeCase__namespace.capitalCase(config.id);
321
+ } else if (config.label && !config.label) {
322
+ id = changeCase__namespace.snakeCase(config.label);
323
+ }
324
+ let json = {};
325
+ if ("fields" in config && config.fields) {
326
+ json = { Main: config.fields };
327
+ } else if ("tabs" in config && config.tabs) {
328
+ json = config.tabs;
329
+ }
330
+ return {
331
+ id,
332
+ label,
333
+ status: (_a = config.status) != null ? _a : faker.datatype.boolean(),
334
+ repeatable: (_b = config.repeatable) != null ? _b : faker.datatype.boolean(),
335
+ json
336
+ };
337
+ };
338
+
321
339
  const date$1 = (config = {}) => {
322
340
  const faker = createFaker(config.seed);
323
341
  return {
@@ -350,10 +368,26 @@ const geoPoint$1 = (config = {}) => {
350
368
  };
351
369
  };
352
370
 
371
+ const group$1 = (config = {}) => {
372
+ const faker = createFaker(config.seed);
373
+ return {
374
+ type: prismicT__namespace.CustomTypeModelFieldType.Group,
375
+ config: {
376
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
377
+ fields: config.fields || {}
378
+ }
379
+ };
380
+ };
381
+
353
382
  const image$2 = (config = {}) => {
354
- var _a;
355
383
  const faker = createFaker(config.seed);
356
- const thumbnailsCount = (_a = config.thumbnailsCount) != null ? _a : faker.datatype.number(3);
384
+ const thumbnails = (config.thumbnailNames || []).map((name) => {
385
+ return {
386
+ name,
387
+ width: faker.datatype.number({ min: 500, max: 2e3 }),
388
+ height: faker.datatype.number({ min: 500, max: 2e3 })
389
+ };
390
+ });
357
391
  return {
358
392
  type: prismicT__namespace.CustomTypeModelFieldType.Image,
359
393
  config: {
@@ -362,11 +396,7 @@ const image$2 = (config = {}) => {
362
396
  width: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null,
363
397
  height: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null
364
398
  },
365
- thumbnails: Array(thumbnailsCount).fill(void 0).map(() => ({
366
- name: changeCase__namespace.pascalCase(faker.company.bsNoun()),
367
- width: faker.datatype.number({ min: 500, max: 2e3 }),
368
- height: faker.datatype.number({ min: 500, max: 2e3 })
369
- }))
399
+ thumbnails
370
400
  }
371
401
  };
372
402
  };
@@ -462,115 +492,63 @@ const richText$1 = (config = {}) => {
462
492
  };
463
493
 
464
494
  const select$1 = (config = {}) => {
465
- var _a;
466
495
  const faker = createFaker(config.seed);
467
- const optionsCount = (_a = config.optionsCount) != null ? _a : faker.datatype.number({ min: 1, max: 5 });
468
- const options = Array(optionsCount).fill(void 0).map(() => changeCase__namespace.capitalCase(faker.company.bsBuzz()));
469
496
  return {
470
497
  type: prismicT__namespace.CustomTypeModelFieldType.Select,
471
498
  config: {
472
499
  label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
473
500
  placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
474
- options,
475
- default_value: config.withDefaultValue ? faker.random.arrayElement(options) : void 0
501
+ options: config.options || [],
502
+ default_value: config.defaultValue || void 0
476
503
  }
477
504
  };
478
505
  };
479
506
 
480
- const timestamp$1 = (config = {}) => {
507
+ const sharedSlice$1 = (config = {}) => {
481
508
  const faker = createFaker(config.seed);
509
+ let name = config.name || changeCase__namespace.capitalCase(faker.company.bsNoun());
510
+ let id = config.id || changeCase__namespace.snakeCase(name);
511
+ if (config.id && !config.name) {
512
+ name = changeCase__namespace.pascalCase(config.id);
513
+ } else if (config.name && !config.name) {
514
+ id = changeCase__namespace.snakeCase(config.name);
515
+ }
482
516
  return {
483
- type: prismicT__namespace.CustomTypeModelFieldType.Timestamp,
484
- config: {
485
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
486
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
487
- }
517
+ type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice,
518
+ id,
519
+ name,
520
+ description: faker.lorem.sentence(),
521
+ variations: config.variations || []
488
522
  };
489
523
  };
490
524
 
491
- const title$1 = (config = {}) => {
492
- const faker = createFaker(config.seed);
493
- const single = faker.random.arrayElements([
494
- "heading1",
495
- "heading2",
496
- "heading3",
497
- "heading4",
498
- "heading5",
499
- "heading6"
500
- ]).join(",");
525
+ const sharedSliceChoice = () => {
501
526
  return {
502
- type: prismicT__namespace.CustomTypeModelFieldType.StructuredText,
503
- config: {
504
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
505
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
506
- single,
507
- allowTargetBlank: faker.datatype.boolean() ? true : void 0
508
- }
527
+ type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice
509
528
  };
510
529
  };
511
530
 
512
- const generateFieldId = (config) => {
513
- const faker = createFaker(config.seed);
514
- return changeCase__namespace.snakeCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })));
515
- };
516
-
517
- const mockModelFns = {
518
- boolean,
519
- color: color$1,
520
- contentRelationship: contentRelationship$1,
521
- date: date$1,
522
- embed: embed$2,
523
- geoPoint: geoPoint$1,
524
- image: image$2,
525
- integrationFields: integrationFields$1,
526
- keyText: keyText$1,
527
- link: link$1,
528
- linkToMedia: linkToMedia$1,
529
- number: number$1,
530
- richText: richText$1,
531
- select: select$1,
532
- timestamp: timestamp$1,
533
- title: title$1
534
- };
535
- const buildMockGroupFieldMap = (config = {}) => {
536
- var _a;
531
+ const sharedSliceVariation$1 = (config = {}) => {
537
532
  const faker = createFaker(config.seed);
538
- const configs = config.configs || {};
539
- const fields = {};
540
- for (const mockModelType in mockModelFns) {
541
- const mockModelFn = mockModelFns[mockModelType];
542
- const mockModelMapConfig = configs[mockModelType] || {};
543
- const count = (_a = mockModelMapConfig.count) != null ? _a : faker.random.arrayElement([0, 0, 0, 1]);
544
- for (let i = 0; i < count; i++) {
545
- const fieldId = generateFieldId({ seed: config.seed });
546
- fields[fieldId] = mockModelFn({
547
- seed: config.seed,
548
- ...mockModelMapConfig.config
549
- });
550
- }
533
+ let name = config.name || changeCase__namespace.capitalCase(faker.company.bsNoun());
534
+ let id = config.id || changeCase__namespace.snakeCase(name);
535
+ if (config.id && !config.name) {
536
+ name = changeCase__namespace.pascalCase(config.id);
537
+ } else if (config.name && !config.name) {
538
+ id = changeCase__namespace.snakeCase(config.name);
551
539
  }
552
- return fields;
553
- };
554
-
555
- const uid$1 = (config = {}) => {
556
- const faker = createFaker(config.seed);
557
540
  return {
558
- type: prismicT__namespace.CustomTypeModelFieldType.UID,
559
- config: {
560
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
561
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
562
- }
563
- };
564
- };
565
-
566
- const sharedSliceChoice = () => {
567
- return {
568
- type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice
541
+ id,
542
+ name,
543
+ description: faker.lorem.sentence(),
544
+ docURL: faker.internet.url(),
545
+ version: faker.git.shortSha(),
546
+ primary: config.primaryFields || {},
547
+ items: config.itemsFields || {}
569
548
  };
570
549
  };
571
550
 
572
551
  const slice$1 = (config = {}) => {
573
- var _a, _b, _c, _d, _e, _f;
574
552
  const faker = createFaker(config.seed);
575
553
  return {
576
554
  type: prismicT__namespace.CustomTypeModelSliceType.Slice,
@@ -578,39 +556,17 @@ const slice$1 = (config = {}) => {
578
556
  display: faker.datatype.boolean() ? prismicT__namespace.CustomTypeModelSliceDisplay.Grid : prismicT__namespace.CustomTypeModelSliceDisplay.List,
579
557
  fieldset: changeCase__namespace.capitalCase(faker.lorem.words()),
580
558
  description: faker.lorem.sentence(),
581
- repeat: buildMockGroupFieldMap({
582
- seed: (_b = (_a = config.repeatFieldConfig) == null ? void 0 : _a.seed) != null ? _b : config.seed,
583
- configs: (_c = config.repeatFieldConfig) == null ? void 0 : _c.configs
584
- }),
585
- "non-repeat": buildMockGroupFieldMap({
586
- seed: (_e = (_d = config.nonRepeatFieldConfig) == null ? void 0 : _d.seed) != null ? _e : config.seed,
587
- configs: (_f = config.nonRepeatFieldConfig) == null ? void 0 : _f.configs
588
- })
559
+ repeat: config.repeatFields || {},
560
+ "non-repeat": config.nonRepeatFields || {}
589
561
  };
590
562
  };
591
563
 
592
564
  const sliceZone$1 = (config = {}) => {
593
- var _a;
594
- const faker = createFaker(config.seed);
595
- let choices = {};
596
- if ("choices" in config) {
597
- choices = config.choices || {};
598
- } else {
599
- const choicesCount = (_a = config.choicesCount) != null ? _a : faker.datatype.number({ min: 2, max: 6 });
600
- for (let i = 0; i < choicesCount; i++) {
601
- const choiceId = generateFieldId({ seed: config.seed });
602
- choices[choiceId] = config.withSharedSlices ? sharedSliceChoice() : slice$1({ seed: config.seed });
603
- }
604
- }
605
565
  const labels = {};
606
- for (const choiceId in choices) {
607
- const choice = choices[choiceId];
566
+ for (const choiceId in config.choices) {
567
+ const choice = config.choices[choiceId];
608
568
  if (choice.type === prismicT__namespace.CustomTypeModelSliceType.Slice) {
609
- const labelsCount = faker.datatype.number({ min: 0, max: 3 });
610
- labels[choiceId] = Array(labelsCount).fill(void 0).map(() => ({
611
- name: changeCase__namespace.capitalCase(faker.company.bsNoun()),
612
- display: faker.datatype.boolean() ? prismicT__namespace.CustomTypeModelSliceDisplay.Grid : prismicT__namespace.CustomTypeModelSliceDisplay.List
613
- }));
569
+ labels[choiceId] = [];
614
570
  }
615
571
  }
616
572
  return {
@@ -618,102 +574,87 @@ const sliceZone$1 = (config = {}) => {
618
574
  fieldset: "Slice zone",
619
575
  config: {
620
576
  labels,
621
- choices
577
+ choices: config.choices || {}
622
578
  }
623
579
  };
624
580
  };
625
581
 
626
- const customType$1 = (config = {}) => {
627
- var _a;
582
+ const timestamp$1 = (config = {}) => {
628
583
  const faker = createFaker(config.seed);
629
- const tabsCount = (_a = config.tabsCount) != null ? _a : faker.datatype.number({ min: 1, max: 3 });
630
- const json = {};
631
- for (let i = 0; i < tabsCount; i++) {
632
- const tabName = changeCase__namespace.capitalCase(faker.lorem.word());
633
- const tabFields = buildMockGroupFieldMap({
634
- seed: config.seed,
635
- configs: config.configs
636
- });
637
- if (i === 0 && config.withUID) {
638
- const fieldId = generateFieldId({ seed: config.seed });
639
- tabFields[fieldId] = uid$1();
640
- }
641
- if (config.withSliceZones) {
642
- const sliceZoneId = generateFieldId({ seed: config.seed });
643
- tabFields[sliceZoneId] = sliceZone$1({
644
- withSharedSlices: config.withSharedSlices
645
- });
646
- }
647
- json[tabName] = tabFields;
648
- }
649
- const id = generateCustomTypeId({ seed: config.seed });
650
584
  return {
651
- id,
652
- label: changeCase__namespace.capitalCase(id),
653
- status: faker.datatype.boolean(),
654
- repeatable: faker.datatype.boolean(),
655
- json
585
+ type: prismicT__namespace.CustomTypeModelFieldType.Timestamp,
586
+ config: {
587
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
588
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
589
+ }
656
590
  };
657
591
  };
658
592
 
659
- const group$1 = (config = {}) => {
593
+ const title$1 = (config = {}) => {
660
594
  const faker = createFaker(config.seed);
661
- const fields = buildMockGroupFieldMap({
662
- seed: config.seed,
663
- configs: config.configs
664
- });
595
+ const single = faker.random.arrayElements([
596
+ "heading1",
597
+ "heading2",
598
+ "heading3",
599
+ "heading4",
600
+ "heading5",
601
+ "heading6"
602
+ ]).join(",");
665
603
  return {
666
- type: prismicT__namespace.CustomTypeModelFieldType.Group,
604
+ type: prismicT__namespace.CustomTypeModelFieldType.StructuredText,
667
605
  config: {
668
606
  label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
669
- fields
607
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
608
+ single,
609
+ allowTargetBlank: faker.datatype.boolean() ? true : void 0
670
610
  }
671
611
  };
672
612
  };
673
613
 
674
- const sharedSliceVariation$1 = (config = {}) => {
675
- var _a, _b, _c, _d, _e, _f;
614
+ const uid$1 = (config = {}) => {
676
615
  const faker = createFaker(config.seed);
677
- const name = changeCase__namespace.capitalCase(faker.company.bsNoun());
678
616
  return {
679
- id: changeCase__namespace.snakeCase(name),
680
- name,
681
- description: faker.lorem.sentence(),
682
- docURL: faker.internet.url(),
683
- version: faker.git.shortSha(),
684
- primary: buildMockGroupFieldMap({
685
- seed: (_b = (_a = config.primaryFieldConfig) == null ? void 0 : _a.seed) != null ? _b : config.seed,
686
- configs: (_c = config.primaryFieldConfig) == null ? void 0 : _c.configs
687
- }),
688
- items: buildMockGroupFieldMap({
689
- seed: (_e = (_d = config.itemsFieldConfig) == null ? void 0 : _d.seed) != null ? _e : config.seed,
690
- configs: (_f = config.itemsFieldConfig) == null ? void 0 : _f.configs
691
- })
617
+ type: prismicT__namespace.CustomTypeModelFieldType.UID,
618
+ config: {
619
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
620
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
621
+ }
692
622
  };
693
623
  };
694
624
 
695
- const sharedSlice$1 = (config = {}) => {
696
- var _a;
625
+ const generateFieldId = (config) => {
697
626
  const faker = createFaker(config.seed);
698
- const name = changeCase__namespace.capitalCase(faker.company.bsNoun());
699
- let variations = [];
700
- if ("variations" in config) {
701
- variations = config.variations || [];
702
- } else {
703
- const variationsCount = (_a = config.variationsCount) != null ? _a : faker.datatype.number({ min: 1, max: 3 });
704
- variations = Array(variationsCount).fill(void 0).map(() => sharedSliceVariation$1({
705
- seed: config.seed,
706
- itemsFieldConfig: config.itemsFieldConfig,
707
- primaryFieldConfig: config.primaryFieldConfig
708
- }));
627
+ return changeCase__namespace.snakeCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })));
628
+ };
629
+
630
+ const mockModelFns = {
631
+ boolean,
632
+ color: color$1,
633
+ contentRelationship: contentRelationship$1,
634
+ date: date$1,
635
+ embed: embed$2,
636
+ geoPoint: geoPoint$1,
637
+ image: image$2,
638
+ integrationFields: integrationFields$1,
639
+ keyText: keyText$1,
640
+ link: link$1,
641
+ linkToMedia: linkToMedia$1,
642
+ number: number$1,
643
+ richText: richText$1,
644
+ select: select$1,
645
+ timestamp: timestamp$1,
646
+ title: title$1
647
+ };
648
+ const buildMockGroupFieldMap = (config = {}) => {
649
+ const faker = createFaker(config.seed);
650
+ const fields = {};
651
+ const fieldTypes = faker.random.arrayElements(Object.keys(mockModelFns));
652
+ for (const fieldType of fieldTypes) {
653
+ const fieldId = generateFieldId({ seed: config.seed });
654
+ const mockModelFn = mockModelFns[fieldType];
655
+ fields[fieldId] = mockModelFn({ seed: config.seed });
709
656
  }
710
- return {
711
- type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice,
712
- id: changeCase__namespace.snakeCase(name),
713
- name,
714
- description: faker.lorem.sentence(),
715
- variations
716
- };
657
+ return fields;
717
658
  };
718
659
 
719
660
  const index$2 = /*#__PURE__*/Object.freeze({
@@ -741,14 +682,15 @@ const index$2 = /*#__PURE__*/Object.freeze({
741
682
  sliceZone: sliceZone$1,
742
683
  timestamp: timestamp$1,
743
684
  title: title$1,
744
- uid: uid$1
685
+ uid: uid$1,
686
+ buildMockGroupFieldMap: buildMockGroupFieldMap
745
687
  });
746
688
 
747
689
  const timestamp = (config = {}) => {
748
690
  const faker = createFaker(config.seed);
749
691
  const after = config.after || faker.date.past(20, new Date("2021-03-07")).toISOString().split("T")[0];
750
692
  const before = config.before || faker.date.future(20, new Date("2021-03-07")).toISOString().split("T")[0];
751
- return faker.date.between(after, before).toISOString();
693
+ return config.state === "empty" ? null : faker.date.between(after, before).toISOString();
752
694
  };
753
695
 
754
696
  const buildAlternativeLanguage = (config) => {
@@ -800,7 +742,7 @@ const customType = (config = {}) => {
800
742
 
801
743
  const color = (config = {}) => {
802
744
  const faker = createFaker(config.seed);
803
- return faker.internet.color().toUpperCase();
745
+ return config.state === "empty" ? null : faker.internet.color().toUpperCase();
804
746
  };
805
747
 
806
748
  const buildContentRelationshipField = (config) => {
@@ -817,11 +759,18 @@ const buildContentRelationshipField = (config) => {
817
759
  };
818
760
  };
819
761
 
762
+ const generateCustomTypeId = (config) => {
763
+ const faker = createFaker(config.seed);
764
+ return changeCase__namespace.snakeCase(faker.company.bsNoun());
765
+ };
766
+
820
767
  const contentRelationship = (config = {}) => {
821
- var _a;
822
768
  const faker = createFaker(config.seed);
823
- const isFilled = (_a = config.isFilled) != null ? _a : true;
824
- if (isFilled) {
769
+ if (config.state === "empty") {
770
+ return {
771
+ link_type: prismicT__namespace.LinkType.Document
772
+ };
773
+ } else {
825
774
  const model = config.model || contentRelationship$1({ seed: config.seed });
826
775
  const linkableDocuments = config.linkableDocuments ? config.linkableDocuments.filter((document2) => {
827
776
  let shouldKeep = true;
@@ -843,19 +792,18 @@ const contentRelationship = (config = {}) => {
843
792
  if (!document) {
844
793
  throw new Error("A linkable document could not be found.");
845
794
  }
846
- return buildContentRelationshipField({ document });
847
- } else {
848
- return {
849
- link_type: prismicT__namespace.LinkType.Document
850
- };
795
+ return buildContentRelationshipField({
796
+ document
797
+ });
851
798
  }
852
799
  };
853
800
 
854
801
  const date = (config = {}) => {
855
- return timestamp({
802
+ return config.state === "empty" ? null : timestamp({
856
803
  seed: config.seed,
857
804
  after: config.after,
858
- before: config.before
805
+ before: config.before,
806
+ state: "filled"
859
807
  }).split("T")[0];
860
808
  };
861
809
 
@@ -945,40 +893,25 @@ const getMockEmbedData = (config) => {
945
893
 
946
894
  const embed$1 = (config = {}) => {
947
895
  const embedData = getMockEmbedData({ seed: config.seed });
948
- return buildEmbedField({ seed: config.seed, embedData });
896
+ return config.state === "empty" ? {} : buildEmbedField({ seed: config.seed, embedData });
949
897
  };
950
898
 
951
899
  const geoPoint = (config = {}) => {
952
900
  const faker = createFaker(config.seed);
953
901
  const coordinates = faker.address.nearbyGPSCoordinate();
954
- return {
902
+ return config.state === "empty" ? {} : {
955
903
  longitude: Number.parseFloat(coordinates[0]),
956
904
  latitude: Number.parseFloat(coordinates[1])
957
905
  };
958
906
  };
959
907
 
960
- const patterns$9 = {
961
- short: {
962
- minItems: 1,
963
- maxItems: 3
964
- },
965
- medium: {
966
- minItems: 3,
967
- maxItems: 6
968
- },
969
- long: {
970
- minItems: 6,
971
- maxItems: 12
972
- }
973
- };
974
908
  const group = (config = {}) => {
909
+ var _a;
975
910
  const faker = createFaker(config.seed);
976
911
  const model = config.model || group$1({ seed: config.seed });
977
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$9));
978
- const pattern = patterns$9[patternKey];
979
- const itemsCount = faker.datatype.number({
980
- min: pattern.minItems,
981
- max: pattern.maxItems
912
+ const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
913
+ min: 1,
914
+ max: 6
982
915
  });
983
916
  return Array(itemsCount).fill(void 0).map(() => {
984
917
  return valueForModelMap({
@@ -989,23 +922,32 @@ const group = (config = {}) => {
989
922
  });
990
923
  };
991
924
 
992
- const buildImageField = (config) => {
925
+ const buildImageFieldImage = (config) => {
993
926
  var _a, _b, _c, _d;
994
- const faker = createFaker(config.seed);
995
- const url = new URL(config.imageData.url);
996
- const dimensions = {
997
- width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
998
- height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
999
- };
1000
- url.searchParams.set("w", dimensions.width.toString());
1001
- url.searchParams.set("h", dimensions.height.toString());
1002
- url.searchParams.set("fit", "crop");
1003
- return {
1004
- url: url.toString(),
1005
- dimensions,
1006
- alt: faker.lorem.sentence(),
1007
- copyright: faker.lorem.sentence()
1008
- };
927
+ if (config.state === "empty") {
928
+ return {
929
+ url: null,
930
+ dimensions: null,
931
+ alt: null,
932
+ copyright: null
933
+ };
934
+ } else {
935
+ const faker = createFaker(config.seed);
936
+ const url = new URL(config.imageData.url);
937
+ const dimensions = {
938
+ width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
939
+ height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
940
+ };
941
+ url.searchParams.set("w", dimensions.width.toString());
942
+ url.searchParams.set("h", dimensions.height.toString());
943
+ url.searchParams.set("fit", "crop");
944
+ return {
945
+ url: url.toString(),
946
+ dimensions,
947
+ alt: faker.lorem.sentence(),
948
+ copyright: faker.lorem.sentence()
949
+ };
950
+ }
1009
951
  };
1010
952
 
1011
953
  const dataSet = [
@@ -1098,19 +1040,21 @@ const getMockImageData = (config) => {
1098
1040
  const image$1 = (config = {}) => {
1099
1041
  const model = config.model || image$2({ seed: config.seed });
1100
1042
  const imageData = getMockImageData({ seed: config.seed });
1101
- const value = buildImageField({
1043
+ const value = buildImageFieldImage({
1102
1044
  seed: config.seed,
1103
1045
  imageData,
1104
- constraint: model.config.constraint
1046
+ constraint: model.config.constraint,
1047
+ state: config.state
1105
1048
  });
1106
1049
  for (const thumbnail of model.config.thumbnails) {
1107
- value[thumbnail.name] = buildImageField({
1050
+ value[thumbnail.name] = buildImageFieldImage({
1108
1051
  seed: config.seed,
1109
1052
  imageData,
1110
1053
  constraint: {
1111
1054
  width: thumbnail.width,
1112
1055
  height: thumbnail.height
1113
- }
1056
+ },
1057
+ state: config.state
1114
1058
  });
1115
1059
  }
1116
1060
  return value;
@@ -1119,7 +1063,7 @@ const image$1 = (config = {}) => {
1119
1063
  const integrationFields = (config = {}) => {
1120
1064
  const faker = createFaker(config.seed);
1121
1065
  const imageData = getMockImageData({ seed: config.seed });
1122
- return {
1066
+ return config.state === "empty" ? null : {
1123
1067
  id: faker.git.shortSha(),
1124
1068
  title: changeCase__namespace.capitalCase(faker.lorem.words(3)),
1125
1069
  description: faker.lorem.sentence(),
@@ -1131,14 +1075,16 @@ const integrationFields = (config = {}) => {
1131
1075
 
1132
1076
  const keyText = (config = {}) => {
1133
1077
  const faker = createFaker(config.seed);
1134
- return changeCase__namespace.sentenceCase(faker.lorem.words(3));
1078
+ return config.state === "empty" ? null : changeCase__namespace.sentenceCase(faker.lorem.words(3));
1135
1079
  };
1136
1080
 
1137
1081
  const linkToMedia = (config = {}) => {
1138
- var _a;
1139
1082
  const faker = createFaker(config.seed);
1140
- const isFilled = (_a = config.isFilled) != null ? _a : true;
1141
- if (isFilled) {
1083
+ if (config.state === "empty") {
1084
+ return {
1085
+ link_type: prismicT__namespace.LinkType.Media
1086
+ };
1087
+ } else {
1142
1088
  return {
1143
1089
  link_type: prismicT__namespace.LinkType.Media,
1144
1090
  name: faker.system.commonFileName(),
@@ -1148,58 +1094,55 @@ const linkToMedia = (config = {}) => {
1148
1094
  height: faker.datatype.number().toString(),
1149
1095
  width: faker.datatype.number().toString()
1150
1096
  };
1151
- } else {
1152
- return {
1153
- link_type: prismicT__namespace.LinkType.Media
1154
- };
1155
1097
  }
1156
1098
  };
1157
1099
 
1158
1100
  const link = (config = {}) => {
1159
- var _a, _b;
1101
+ var _a;
1160
1102
  const faker = createFaker(config.seed);
1161
- const isFilled = (_a = config.isFilled) != null ? _a : true;
1162
1103
  const type = config.type || faker.random.arrayElement([
1163
1104
  prismicT__namespace.LinkType.Web,
1164
1105
  prismicT__namespace.LinkType.Document,
1165
1106
  prismicT__namespace.LinkType.Media
1166
1107
  ]);
1167
- if (isFilled) {
1108
+ if (config.state === "empty") {
1109
+ return {
1110
+ link_type: type
1111
+ };
1112
+ } else {
1168
1113
  switch (type) {
1169
1114
  case prismicT__namespace.LinkType.Document: {
1170
1115
  return contentRelationship({
1171
1116
  seed: config.seed,
1172
- isFilled,
1117
+ state: config.state,
1173
1118
  linkableDocuments: config.linkableDocuments
1174
1119
  });
1175
1120
  }
1176
1121
  case prismicT__namespace.LinkType.Media: {
1177
1122
  return linkToMedia({
1178
1123
  seed: config.seed,
1179
- isFilled
1124
+ state: config.state
1180
1125
  });
1181
1126
  }
1182
- case prismicT__namespace.LinkType.Web: {
1127
+ case prismicT__namespace.LinkType.Web:
1128
+ default: {
1183
1129
  const model = config.model || link$1({ seed: config.seed });
1184
1130
  return {
1185
1131
  link_type: prismicT__namespace.LinkType.Web,
1186
1132
  url: faker.internet.url(),
1187
- target: ((_b = config.withTargetBlank) != null ? _b : model.config.allowTargetBlank && faker.datatype.boolean()) ? "_blank" : void 0
1133
+ target: ((_a = config.withTargetBlank) != null ? _a : model.config.allowTargetBlank && faker.datatype.boolean()) ? "_blank" : void 0
1188
1134
  };
1189
1135
  }
1190
1136
  }
1191
1137
  }
1192
- return {
1193
- link_type: type
1194
- };
1195
1138
  };
1196
1139
 
1197
1140
  const number = (config = {}) => {
1198
1141
  const faker = createFaker(config.seed);
1199
- return faker.datatype.number();
1142
+ return config.state === "empty" ? null : faker.datatype.number();
1200
1143
  };
1201
1144
 
1202
- const patterns$8 = {
1145
+ const patterns$5 = {
1203
1146
  short: {
1204
1147
  minWords: 1,
1205
1148
  maxWords: 3
@@ -1226,8 +1169,8 @@ const heading = (config = {}) => {
1226
1169
  ].includes(type2));
1227
1170
  const type = faker.random.arrayElement(types);
1228
1171
  if (type) {
1229
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$8));
1230
- const pattern = patterns$8[patternKey];
1172
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$5));
1173
+ const pattern = patterns$5[patternKey];
1231
1174
  return {
1232
1175
  type,
1233
1176
  text: changeCase__namespace.capitalCase(faker.lorem.words(faker.datatype.number({
@@ -1241,7 +1184,7 @@ const heading = (config = {}) => {
1241
1184
  }
1242
1185
  };
1243
1186
 
1244
- const patterns$7 = {
1187
+ const patterns$4 = {
1245
1188
  short: {
1246
1189
  sentenceCount: 2
1247
1190
  },
@@ -1254,8 +1197,8 @@ const patterns$7 = {
1254
1197
  };
1255
1198
  const paragraph = (config = {}) => {
1256
1199
  const faker = createFaker(config.seed);
1257
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$7));
1258
- const pattern = patterns$7[patternKey];
1200
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$4));
1201
+ const pattern = patterns$4[patternKey];
1259
1202
  return {
1260
1203
  type: prismicT__namespace.RichTextNodeType.paragraph,
1261
1204
  text: faker.lorem.paragraph(pattern.sentenceCount),
@@ -1263,7 +1206,7 @@ const paragraph = (config = {}) => {
1263
1206
  };
1264
1207
  };
1265
1208
 
1266
- const patterns$6 = {
1209
+ const patterns$3 = {
1267
1210
  short: {
1268
1211
  sentenceCount: 2
1269
1212
  },
@@ -1276,8 +1219,8 @@ const patterns$6 = {
1276
1219
  };
1277
1220
  const preformatted = (config = {}) => {
1278
1221
  const faker = createFaker(config.seed);
1279
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$6));
1280
- const pattern = patterns$6[patternKey];
1222
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$3));
1223
+ const pattern = patterns$3[patternKey];
1281
1224
  return {
1282
1225
  type: prismicT__namespace.RichTextNodeType.preformatted,
1283
1226
  text: faker.lorem.paragraph(pattern.sentenceCount),
@@ -1285,7 +1228,7 @@ const preformatted = (config = {}) => {
1285
1228
  };
1286
1229
  };
1287
1230
 
1288
- const patterns$5 = {
1231
+ const patterns$2 = {
1289
1232
  short: {
1290
1233
  minItems: 1,
1291
1234
  maxItems: 3
@@ -1301,8 +1244,8 @@ const patterns$5 = {
1301
1244
  };
1302
1245
  const list = (config = {}) => {
1303
1246
  const faker = createFaker(config.seed);
1304
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$5));
1305
- const pattern = patterns$5[patternKey];
1247
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$2));
1248
+ const pattern = patterns$2[patternKey];
1306
1249
  const itemsCount = faker.datatype.number({
1307
1250
  min: pattern.minItems,
1308
1251
  max: pattern.maxItems
@@ -1316,7 +1259,7 @@ const list = (config = {}) => {
1316
1259
  });
1317
1260
  };
1318
1261
 
1319
- const patterns$4 = {
1262
+ const patterns$1 = {
1320
1263
  short: {
1321
1264
  minItems: 1,
1322
1265
  maxItems: 3
@@ -1332,8 +1275,8 @@ const patterns$4 = {
1332
1275
  };
1333
1276
  const oList = (config = {}) => {
1334
1277
  const faker = createFaker(config.seed);
1335
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$4));
1336
- const pattern = patterns$4[patternKey];
1278
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$1));
1279
+ const pattern = patterns$1[patternKey];
1337
1280
  const itemsCount = faker.datatype.number({
1338
1281
  min: pattern.minItems,
1339
1282
  max: pattern.maxItems
@@ -1349,7 +1292,11 @@ const oList = (config = {}) => {
1349
1292
 
1350
1293
  const image = (config = {}) => {
1351
1294
  const imageData = getMockImageData({ seed: config.seed });
1352
- const imageField = buildImageField({ seed: config.seed, imageData });
1295
+ const imageField = buildImageFieldImage({
1296
+ seed: config.seed,
1297
+ imageData,
1298
+ state: false
1299
+ });
1353
1300
  return {
1354
1301
  type: prismicT__namespace.RichTextNodeType.image,
1355
1302
  alt: imageField.alt,
@@ -1368,7 +1315,7 @@ const embed = (config = {}) => {
1368
1315
  };
1369
1316
  };
1370
1317
 
1371
- const patterns$3 = {
1318
+ const patterns = {
1372
1319
  short: {
1373
1320
  blockCountMin: 1,
1374
1321
  blockCountMax: 2
@@ -1405,8 +1352,8 @@ const richText = (config = {}) => {
1405
1352
  const supportsMultipleBlocks = "multi" in model.config;
1406
1353
  const types = ("multi" in model.config ? model.config.multi : model.config.single).split(",").filter((type) => Object.keys(generators).includes(type));
1407
1354
  if (types.length > 0) {
1408
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$3));
1409
- const pattern = patterns$3[patternKey];
1355
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns));
1356
+ const pattern = patterns[patternKey];
1410
1357
  const blockCount = supportsMultipleBlocks ? faker.datatype.number({
1411
1358
  min: pattern.blockCountMin,
1412
1359
  max: pattern.blockCountMax
@@ -1425,38 +1372,22 @@ const select = (config = {}) => {
1425
1372
  const faker = createFaker(config.seed);
1426
1373
  const model = config.model || select$1({ seed: config.seed });
1427
1374
  const defaultValue = model.config.default_value;
1428
- return typeof defaultValue === "string" && faker.datatype.boolean() ? defaultValue : faker.random.arrayElement(model.config.options);
1429
- };
1430
-
1431
- const patterns$2 = {
1432
- none: {
1433
- minItems: 0,
1434
- maxItems: 0
1435
- },
1436
- short: {
1437
- minItems: 1,
1438
- maxItems: 3
1439
- },
1440
- medium: {
1441
- minItems: 3,
1442
- maxItems: 6
1443
- },
1444
- long: {
1445
- minItems: 6,
1446
- maxItems: 12
1375
+ if (config.state === "empty") {
1376
+ return null;
1377
+ } else {
1378
+ return typeof defaultValue === "string" && faker.datatype.boolean() ? defaultValue : faker.random.arrayElement(model.config.options);
1447
1379
  }
1448
1380
  };
1381
+
1449
1382
  const slice = (config = {}) => {
1450
- var _a;
1383
+ var _a, _b;
1451
1384
  const faker = createFaker(config.seed);
1452
1385
  const model = config.model || slice$1({ seed: config.seed });
1453
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$2));
1454
- const pattern = patterns$2[patternKey];
1455
1386
  const sliceType = (_a = config.type) != null ? _a : generateFieldId({ seed: config.seed });
1456
1387
  const sliceLabel = config.label !== void 0 ? config.label : changeCase__namespace.capitalCase(faker.company.bsNoun());
1457
- const itemsCount = Object.keys(model.repeat).length > 0 ? faker.datatype.number({
1458
- min: pattern.minItems,
1459
- max: pattern.maxItems
1388
+ const itemsCount = Object.keys(model.repeat).length > 0 ? (_b = config.itemsCount) != null ? _b : faker.datatype.number({
1389
+ min: 1,
1390
+ max: 6
1460
1391
  }) : 0;
1461
1392
  return {
1462
1393
  slice_type: sliceType,
@@ -1476,39 +1407,18 @@ const slice = (config = {}) => {
1476
1407
  };
1477
1408
  };
1478
1409
 
1479
- const patterns$1 = {
1480
- none: {
1481
- minItems: 0,
1482
- maxItems: 0
1483
- },
1484
- short: {
1485
- minItems: 1,
1486
- maxItems: 3
1487
- },
1488
- medium: {
1489
- minItems: 3,
1490
- maxItems: 6
1491
- },
1492
- long: {
1493
- minItems: 6,
1494
- maxItems: 12
1495
- }
1496
- };
1497
1410
  const sharedSliceVariation = (config = {}) => {
1498
1411
  var _a, _b;
1499
1412
  const faker = createFaker(config.seed);
1500
1413
  const model = config.model || sharedSliceVariation$1({ seed: config.seed });
1501
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$1));
1502
- const pattern = patterns$1[patternKey];
1503
1414
  const sliceType = (_a = config.type) != null ? _a : generateFieldId({ seed: config.seed });
1504
- const sliceLabel = (_b = config.label) != null ? _b : changeCase__namespace.capitalCase(faker.company.bsNoun());
1505
- const itemsCount = Object.keys(model.items).length > 0 ? faker.datatype.number({
1506
- min: pattern.minItems,
1507
- max: pattern.maxItems
1415
+ const itemsCount = Object.keys(model.items).length > 0 ? (_b = config.itemsCount) != null ? _b : faker.datatype.number({
1416
+ min: 1,
1417
+ max: 6
1508
1418
  }) : 0;
1509
1419
  return {
1510
1420
  slice_type: sliceType,
1511
- slice_label: sliceLabel,
1421
+ slice_label: null,
1512
1422
  variation: model.id,
1513
1423
  version: faker.git.shortSha(),
1514
1424
  primary: valueForModelMap({
@@ -1533,66 +1443,55 @@ const sharedSlice = (config = {}) => {
1533
1443
  return sharedSliceVariation({
1534
1444
  seed: config.seed,
1535
1445
  model: variationModel,
1536
- pattern: config.pattern,
1446
+ itemsCount: config.itemsCount,
1537
1447
  type: model.id,
1538
1448
  primaryFieldConfigs: config.primaryFieldConfigs,
1539
1449
  itemsFieldConfigs: config.itemsFieldConfigs
1540
1450
  });
1541
1451
  };
1542
1452
 
1543
- const patterns = {
1544
- short: {
1545
- minItems: 1,
1546
- maxItems: 3
1547
- },
1548
- medium: {
1549
- minItems: 3,
1550
- maxItems: 6
1551
- },
1552
- long: {
1553
- minItems: 6,
1554
- maxItems: 12
1555
- }
1556
- };
1557
1453
  const sliceZone = (config = {}) => {
1454
+ var _a;
1558
1455
  const faker = createFaker(config.seed);
1559
1456
  const model = config.model || sliceZone$1({ seed: config.seed });
1560
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns));
1561
- const pattern = patterns[patternKey];
1562
- const itemsCount = faker.datatype.number({
1563
- min: pattern.minItems,
1564
- max: pattern.maxItems
1565
- });
1566
- return Array(itemsCount).fill(void 0).map(() => {
1567
- var _a;
1568
- const choices = Object.entries(model.config.choices);
1569
- const [choiceType, choiceModel] = faker.random.arrayElement(choices);
1570
- const choiceLabels = model.config.labels[choiceType] || [];
1571
- const choiceLabel = faker.random.arrayElement(choiceLabels);
1572
- switch (choiceModel.type) {
1573
- case prismicT__namespace.CustomTypeModelSliceType.Slice: {
1574
- return slice({
1575
- seed: config.seed,
1576
- model: choiceModel,
1577
- type: choiceType,
1578
- label: choiceLabel ? choiceLabel.name : null,
1579
- primaryFieldConfigs: config.primaryFieldConfigs,
1580
- itemsFieldConfigs: config.itemsFieldConfigs
1581
- });
1582
- }
1583
- case prismicT__namespace.CustomTypeModelSliceType.SharedSlice: {
1584
- const sharedSliceModel = (_a = config.sharedSliceModels) == null ? void 0 : _a.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
1585
- if (sharedSliceModel) {
1586
- return sharedSlice({
1457
+ if (Object.keys(model.config.choices).length > 0) {
1458
+ const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
1459
+ min: 1,
1460
+ max: 6
1461
+ });
1462
+ return Array(itemsCount).fill(void 0).map(() => {
1463
+ var _a2;
1464
+ const choices = Object.entries(model.config.choices);
1465
+ const [choiceType, choiceModel] = faker.random.arrayElement(choices);
1466
+ const choiceLabels = model.config.labels[choiceType] || [];
1467
+ const choiceLabel = faker.random.arrayElement(choiceLabels);
1468
+ switch (choiceModel.type) {
1469
+ case prismicT__namespace.CustomTypeModelSliceType.Slice: {
1470
+ return slice({
1587
1471
  seed: config.seed,
1588
- model: sharedSliceModel,
1472
+ model: choiceModel,
1473
+ type: choiceType,
1474
+ label: choiceLabel ? choiceLabel.name : null,
1589
1475
  primaryFieldConfigs: config.primaryFieldConfigs,
1590
1476
  itemsFieldConfigs: config.itemsFieldConfigs
1591
1477
  });
1592
1478
  }
1479
+ case prismicT__namespace.CustomTypeModelSliceType.SharedSlice: {
1480
+ const sharedSliceModel = (_a2 = config.sharedSliceModels) == null ? void 0 : _a2.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
1481
+ if (sharedSliceModel) {
1482
+ return sharedSlice({
1483
+ seed: config.seed,
1484
+ model: sharedSliceModel,
1485
+ primaryFieldConfigs: config.primaryFieldConfigs,
1486
+ itemsFieldConfigs: config.itemsFieldConfigs
1487
+ });
1488
+ }
1489
+ }
1593
1490
  }
1594
- }
1595
- }).filter((slice2) => slice2 !== void 0);
1491
+ }).filter((slice2) => slice2 !== void 0);
1492
+ } else {
1493
+ return [];
1494
+ }
1596
1495
  };
1597
1496
 
1598
1497
  const title = (config = {}) => {
@@ -1726,3 +1625,4 @@ const index = /*#__PURE__*/Object.freeze({
1726
1625
  exports.api = index;
1727
1626
  exports.model = index$2;
1728
1627
  exports.value = index$1;
1628
+ //# sourceMappingURL=index.cjs.map