@prismicio/mock 0.0.4 → 0.0.8

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 (72) hide show
  1. package/README.md +4 -1
  2. package/dist/api/index.cjs +54 -35
  3. package/dist/api/index.cjs.map +1 -0
  4. package/dist/api/index.d.ts +4 -2
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/{index.mjs → index.js} +116 -63
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/index.cjs +365 -417
  9. package/dist/index.cjs.map +1 -0
  10. package/dist/index.d.ts +157 -243
  11. package/dist/{index.mjs → index.js} +359 -409
  12. package/dist/index.js.map +1 -0
  13. package/dist/model/index.cjs +164 -204
  14. package/dist/model/index.cjs.map +1 -0
  15. package/dist/model/index.d.ts +73 -97
  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 +310 -519
  20. package/dist/value/index.cjs.map +1 -0
  21. package/dist/value/index.d.ts +71 -132
  22. package/dist/value/index.d.ts.map +1 -0
  23. package/dist/value/{index.mjs → index.js} +474 -629
  24. package/dist/value/index.js.map +1 -0
  25. package/package.json +21 -21
  26. package/src/constants.ts +3 -1
  27. package/src/lib/buildAlternativeLanguage.ts +18 -0
  28. package/src/lib/buildContentRelationshipField.ts +12 -5
  29. package/src/lib/buildEmbedField.ts +1 -1
  30. package/src/lib/buildImageFieldImage.ts +48 -0
  31. package/src/lib/createFaker.ts +19 -10
  32. package/src/lib/valueForModelMap.ts +2 -2
  33. package/src/model/buildMockGroupFieldMap.ts +65 -0
  34. package/src/model/contentRelationship.ts +14 -21
  35. package/src/model/customType.ts +49 -48
  36. package/src/model/group.ts +8 -15
  37. package/src/model/image.ts +13 -13
  38. package/src/model/index.ts +2 -0
  39. package/src/model/integrationFields.ts +4 -2
  40. package/src/model/select.ts +11 -16
  41. package/src/model/sharedSlice.ts +23 -30
  42. package/src/model/sharedSliceVariation.ts +33 -21
  43. package/src/model/slice.ts +15 -19
  44. package/src/model/sliceZone.ts +25 -42
  45. package/src/types.ts +130 -83
  46. package/src/value/color.ts +16 -6
  47. package/src/value/contentRelationship.ts +52 -36
  48. package/src/value/customType.ts +22 -3
  49. package/src/value/date.ts +25 -9
  50. package/src/value/embed.ts +18 -6
  51. package/src/value/geoPoint.ts +21 -9
  52. package/src/value/group.ts +35 -44
  53. package/src/value/image.ts +22 -9
  54. package/src/value/integrationFields.ts +26 -14
  55. package/src/value/keyText.ts +18 -6
  56. package/src/value/link.ts +33 -34
  57. package/src/value/linkToMedia.ts +15 -20
  58. package/src/value/number.ts +16 -6
  59. package/src/value/richText/heading.ts +7 -7
  60. package/src/value/richText/image.ts +6 -2
  61. package/src/value/richText/index.ts +1 -1
  62. package/src/value/select.ts +23 -8
  63. package/src/value/sharedSlice.ts +2 -2
  64. package/src/value/sharedSliceVariation.ts +6 -34
  65. package/src/value/slice.ts +5 -30
  66. package/src/value/sliceZone.ts +60 -69
  67. package/src/value/timestamp.ts +19 -6
  68. package/src/value/title.ts +26 -13
  69. package/src/value/uid.ts +1 -1
  70. package/dist/model/index.mjs +0 -448
  71. package/src/lib/buildImageField.ts +0 -34
  72. package/src/lib/buildMockGroupFieldMap.ts +0 -84
package/dist/index.cjs CHANGED
@@ -3,29 +3,27 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const changeCase = require('change-case');
6
- const fakerLocaleEN = require('faker/lib/locales/en');
7
- const Faker = require('faker/lib');
6
+ const fakerLocaleEN = require('faker/lib/locales/en/index.js');
7
+ const Faker = require('faker/lib/index.js');
8
8
  const prismicT = require('@prismicio/types');
9
9
 
10
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
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
 
@@ -37,14 +35,21 @@ const prismicT__namespace = /*#__PURE__*/_interopNamespace(prismicT);
37
35
  const FAKER_SEED = 1984;
38
36
 
39
37
  const createFaker = (seed = FAKER_SEED) => {
40
- if (createFaker.cache[seed]) {
41
- return createFaker.cache[seed];
38
+ let normalizedSeed;
39
+ if (typeof seed === "string") {
40
+ normalizedSeed = seed.split("").map((char) => char.charCodeAt(0));
41
+ } else {
42
+ normalizedSeed = seed;
43
+ }
44
+ const cacheKey = JSON.stringify(normalizedSeed);
45
+ if (createFaker.cache[cacheKey]) {
46
+ return createFaker.cache[cacheKey];
42
47
  }
43
- const seededFaker = new Faker__default['default']();
44
- seededFaker.seed(seed);
45
- seededFaker.locales["en"] = fakerLocaleEN__namespace;
46
- createFaker.cache[seed] = seededFaker;
47
- return seededFaker;
48
+ const fakerInstance = new Faker__default["default"]();
49
+ fakerInstance.locales["en"] = fakerLocaleEN__namespace;
50
+ fakerInstance.seed(normalizedSeed);
51
+ createFaker.cache[cacheKey] = fakerInstance;
52
+ return fakerInstance;
48
53
  };
49
54
  createFaker.cache = {};
50
55
 
@@ -252,7 +257,7 @@ const getValueConfigType = (model) => {
252
257
  case prismicT__namespace.CustomTypeModelFieldType.IntegrationFields:
253
258
  return "integrationFields";
254
259
  case prismicT__namespace.CustomTypeModelFieldType.Slices:
255
- return "slices";
260
+ return "sliceZone";
256
261
  }
257
262
  };
258
263
  const valueForModelMap = (config) => {
@@ -292,11 +297,6 @@ const color$1 = (config = {}) => {
292
297
  };
293
298
  };
294
299
 
295
- const generateCustomTypeId = (config) => {
296
- const faker = createFaker(config.seed);
297
- return changeCase__namespace.snakeCase(faker.company.bsNoun());
298
- };
299
-
300
300
  const contentRelationship$1 = (config = {}) => {
301
301
  const faker = createFaker(config.seed);
302
302
  return {
@@ -305,12 +305,37 @@ const contentRelationship$1 = (config = {}) => {
305
305
  label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
306
306
  placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
307
307
  select: prismicT__namespace.CustomTypeModelLinkSelectType.Document,
308
- customtypes: config.constrainCustomTypes ? Array(faker.datatype.number({ min: 1, max: 3 })).fill(void 0).map(() => generateCustomTypeId({ seed: config.seed })) : void 0,
309
- 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
310
310
  }
311
311
  };
312
312
  };
313
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
+
314
339
  const date$1 = (config = {}) => {
315
340
  const faker = createFaker(config.seed);
316
341
  return {
@@ -343,10 +368,26 @@ const geoPoint$1 = (config = {}) => {
343
368
  };
344
369
  };
345
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
+
346
382
  const image$2 = (config = {}) => {
347
- var _a;
348
383
  const faker = createFaker(config.seed);
349
- 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
+ });
350
391
  return {
351
392
  type: prismicT__namespace.CustomTypeModelFieldType.Image,
352
393
  config: {
@@ -355,11 +396,7 @@ const image$2 = (config = {}) => {
355
396
  width: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null,
356
397
  height: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null
357
398
  },
358
- thumbnails: Array(thumbnailsCount).fill(void 0).map(() => ({
359
- name: changeCase__namespace.capitalCase(faker.company.bsNoun()),
360
- width: faker.datatype.number({ min: 500, max: 2e3 }),
361
- height: faker.datatype.number({ min: 500, max: 2e3 })
362
- }))
399
+ thumbnails
363
400
  }
364
401
  };
365
402
  };
@@ -370,7 +407,7 @@ const integrationFields$1 = (config = {}) => {
370
407
  type: prismicT__namespace.CustomTypeModelFieldType.IntegrationFields,
371
408
  config: {
372
409
  label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
373
- catalog: changeCase__namespace.snakeCase(faker.lorem.words(4))
410
+ catalog: config.catalog || changeCase__namespace.snakeCase(faker.lorem.words(4))
374
411
  }
375
412
  };
376
413
  };
@@ -455,17 +492,89 @@ const richText$1 = (config = {}) => {
455
492
  };
456
493
 
457
494
  const select$1 = (config = {}) => {
458
- var _a;
459
495
  const faker = createFaker(config.seed);
460
- const optionsCount = (_a = config.optionsCount) != null ? _a : faker.datatype.number({ min: 1, max: 5 });
461
- const options = Array(optionsCount).fill(void 0).map(() => changeCase__namespace.capitalCase(faker.company.bsBuzz()));
462
496
  return {
463
497
  type: prismicT__namespace.CustomTypeModelFieldType.Select,
464
498
  config: {
465
499
  label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
466
500
  placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
467
- options,
468
- default_value: config.withDefaultValue ? faker.random.arrayElement(options) : void 0
501
+ options: config.options || [],
502
+ default_value: config.defaultValue || void 0
503
+ }
504
+ };
505
+ };
506
+
507
+ const sharedSlice$1 = (config = {}) => {
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
+ }
516
+ return {
517
+ type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice,
518
+ id,
519
+ name,
520
+ description: faker.lorem.sentence(),
521
+ variations: config.variations || []
522
+ };
523
+ };
524
+
525
+ const sharedSliceChoice = () => {
526
+ return {
527
+ type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice
528
+ };
529
+ };
530
+
531
+ const sharedSliceVariation$1 = (config = {}) => {
532
+ const faker = createFaker(config.seed);
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);
539
+ }
540
+ return {
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 || {}
548
+ };
549
+ };
550
+
551
+ const slice$1 = (config = {}) => {
552
+ const faker = createFaker(config.seed);
553
+ return {
554
+ type: prismicT__namespace.CustomTypeModelSliceType.Slice,
555
+ icon: changeCase__namespace.snakeCase(faker.company.bsNoun()),
556
+ display: faker.datatype.boolean() ? prismicT__namespace.CustomTypeModelSliceDisplay.Grid : prismicT__namespace.CustomTypeModelSliceDisplay.List,
557
+ fieldset: changeCase__namespace.capitalCase(faker.lorem.words()),
558
+ description: faker.lorem.sentence(),
559
+ repeat: config.repeatFields || {},
560
+ "non-repeat": config.nonRepeatFields || {}
561
+ };
562
+ };
563
+
564
+ const sliceZone$1 = (config = {}) => {
565
+ const labels = {};
566
+ for (const choiceId in config.choices) {
567
+ const choice = config.choices[choiceId];
568
+ if (choice.type === prismicT__namespace.CustomTypeModelSliceType.Slice) {
569
+ labels[choiceId] = [];
570
+ }
571
+ }
572
+ return {
573
+ type: prismicT__namespace.CustomTypeModelFieldType.Slices,
574
+ fieldset: "Slice zone",
575
+ config: {
576
+ labels,
577
+ choices: config.choices || {}
469
578
  }
470
579
  };
471
580
  };
@@ -502,6 +611,17 @@ const title$1 = (config = {}) => {
502
611
  };
503
612
  };
504
613
 
614
+ const uid$1 = (config = {}) => {
615
+ const faker = createFaker(config.seed);
616
+ return {
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
+ }
622
+ };
623
+ };
624
+
505
625
  const generateFieldId = (config) => {
506
626
  const faker = createFaker(config.seed);
507
627
  return changeCase__namespace.snakeCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })));
@@ -526,179 +646,17 @@ const mockModelFns = {
526
646
  title: title$1
527
647
  };
528
648
  const buildMockGroupFieldMap = (config = {}) => {
529
- var _a;
530
649
  const faker = createFaker(config.seed);
531
- const configs = config.configs || {};
532
650
  const fields = {};
533
- for (const mockModelType in mockModelFns) {
534
- const mockModelFn = mockModelFns[mockModelType];
535
- const mockModelMapConfig = configs[mockModelType] || {};
536
- const count = (_a = mockModelMapConfig.count) != null ? _a : faker.random.arrayElement([0, 0, 0, 1]);
537
- for (let i = 0; i < count; i++) {
538
- const fieldId = generateFieldId({ seed: config.seed });
539
- fields[fieldId] = mockModelFn({
540
- seed: config.seed,
541
- ...mockModelMapConfig.config
542
- });
543
- }
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 });
544
656
  }
545
657
  return fields;
546
658
  };
547
659
 
548
- const uid$1 = (config = {}) => {
549
- const faker = createFaker(config.seed);
550
- return {
551
- type: prismicT__namespace.CustomTypeModelFieldType.UID,
552
- config: {
553
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
554
- placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3))
555
- }
556
- };
557
- };
558
-
559
- const sharedSliceChoice = () => {
560
- return {
561
- type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice
562
- };
563
- };
564
-
565
- const slice$1 = (config = {}) => {
566
- var _a, _b, _c, _d, _e, _f;
567
- const faker = createFaker(config.seed);
568
- return {
569
- type: prismicT__namespace.CustomTypeModelSliceType.Slice,
570
- icon: changeCase__namespace.snakeCase(faker.company.bsNoun()),
571
- display: faker.datatype.boolean() ? prismicT__namespace.CustomTypeModelSliceDisplay.Grid : prismicT__namespace.CustomTypeModelSliceDisplay.List,
572
- fieldset: changeCase__namespace.capitalCase(faker.lorem.words()),
573
- description: faker.lorem.sentence(),
574
- repeat: buildMockGroupFieldMap({
575
- seed: (_b = (_a = config.repeatFieldConfig) == null ? void 0 : _a.seed) != null ? _b : config.seed,
576
- configs: (_c = config.repeatFieldConfig) == null ? void 0 : _c.configs
577
- }),
578
- "non-repeat": buildMockGroupFieldMap({
579
- seed: (_e = (_d = config.nonRepeatFieldConfig) == null ? void 0 : _d.seed) != null ? _e : config.seed,
580
- configs: (_f = config.nonRepeatFieldConfig) == null ? void 0 : _f.configs
581
- })
582
- };
583
- };
584
-
585
- const sliceZone$1 = (config = {}) => {
586
- var _a;
587
- const faker = createFaker(config.seed);
588
- const choicesCount = (_a = config.choicesCount) != null ? _a : faker.datatype.number({ min: 2, max: 6 });
589
- const choices = {};
590
- for (let i = 0; i < choicesCount; i++) {
591
- const choiceId = generateFieldId({ seed: config.seed });
592
- choices[choiceId] = config.withSharedSlices ? sharedSliceChoice() : slice$1({ seed: config.seed });
593
- }
594
- const labels = {};
595
- if (!config.withSharedSlices) {
596
- for (const choiceId in choices) {
597
- const labelsCount = faker.datatype.number({ min: 0, max: 3 });
598
- labels[choiceId] = Array(labelsCount).fill(void 0).map(() => ({
599
- name: changeCase__namespace.capitalCase(faker.company.bsNoun()),
600
- display: faker.datatype.boolean() ? prismicT__namespace.CustomTypeModelSliceDisplay.Grid : prismicT__namespace.CustomTypeModelSliceDisplay.List
601
- }));
602
- }
603
- }
604
- return {
605
- type: prismicT__namespace.CustomTypeModelFieldType.Slices,
606
- fieldset: "Slice zone",
607
- config: {
608
- labels,
609
- choices
610
- }
611
- };
612
- };
613
-
614
- const customType$1 = (config = {}) => {
615
- var _a;
616
- const faker = createFaker(config.seed);
617
- const tabsCount = (_a = config.tabsCount) != null ? _a : faker.datatype.number({ min: 1, max: 3 });
618
- const json = {};
619
- for (let i = 0; i < tabsCount; i++) {
620
- const tabName = changeCase__namespace.capitalCase(faker.company.bsNoun());
621
- const tabFields = buildMockGroupFieldMap({
622
- seed: config.seed,
623
- configs: config.configs
624
- });
625
- if (i === 0 && config.withUID) {
626
- const fieldId = generateFieldId({ seed: config.seed });
627
- tabFields[fieldId] = uid$1();
628
- }
629
- if (config.withSliceZones) {
630
- const sliceZoneId = generateFieldId({ seed: config.seed });
631
- tabFields[sliceZoneId] = sliceZone$1({
632
- withSharedSlices: config.withSharedSlices
633
- });
634
- }
635
- json[tabName] = tabFields;
636
- }
637
- const id = generateCustomTypeId({ seed: config.seed });
638
- return {
639
- id,
640
- label: changeCase__namespace.capitalCase(id),
641
- status: faker.datatype.boolean(),
642
- repeatable: faker.datatype.boolean(),
643
- json
644
- };
645
- };
646
-
647
- const group$1 = (config = {}) => {
648
- const faker = createFaker(config.seed);
649
- const fields = buildMockGroupFieldMap({
650
- seed: config.seed,
651
- configs: config.configs
652
- });
653
- return {
654
- type: prismicT__namespace.CustomTypeModelFieldType.Group,
655
- config: {
656
- label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
657
- fields
658
- }
659
- };
660
- };
661
-
662
- const sharedSliceVariation$1 = (config = {}) => {
663
- var _a, _b, _c, _d, _e, _f;
664
- const faker = createFaker(config.seed);
665
- const name = changeCase__namespace.capitalCase(faker.company.bsNoun());
666
- return {
667
- id: changeCase__namespace.snakeCase(name),
668
- name,
669
- description: faker.lorem.sentence(),
670
- docURL: faker.internet.url(),
671
- version: faker.git.shortSha(),
672
- primary: buildMockGroupFieldMap({
673
- seed: (_b = (_a = config.primaryFieldConfig) == null ? void 0 : _a.seed) != null ? _b : config.seed,
674
- configs: (_c = config.primaryFieldConfig) == null ? void 0 : _c.configs
675
- }),
676
- items: buildMockGroupFieldMap({
677
- seed: (_e = (_d = config.itemsFieldConfig) == null ? void 0 : _d.seed) != null ? _e : config.seed,
678
- configs: (_f = config.itemsFieldConfig) == null ? void 0 : _f.configs
679
- })
680
- };
681
- };
682
-
683
- const sharedSlice$1 = (config = {}) => {
684
- var _a;
685
- const faker = createFaker(config.seed);
686
- const variationsCount = (_a = config.variationsCount) != null ? _a : faker.datatype.number({ min: 1, max: 3 });
687
- const name = changeCase__namespace.capitalCase(faker.company.bsNoun());
688
- const variations = Array(variationsCount).fill(void 0).map(() => sharedSliceVariation$1({
689
- seed: config.seed,
690
- itemsFieldConfig: config.itemsFieldConfig,
691
- primaryFieldConfig: config.primaryFieldConfig
692
- }));
693
- return {
694
- type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice,
695
- id: changeCase__namespace.snakeCase(name),
696
- name,
697
- description: faker.lorem.sentence(),
698
- variations
699
- };
700
- };
701
-
702
660
  const index$2 = /*#__PURE__*/Object.freeze({
703
661
  __proto__: null,
704
662
  boolean: boolean,
@@ -724,14 +682,24 @@ const index$2 = /*#__PURE__*/Object.freeze({
724
682
  sliceZone: sliceZone$1,
725
683
  timestamp: timestamp$1,
726
684
  title: title$1,
727
- uid: uid$1
685
+ uid: uid$1,
686
+ buildMockGroupFieldMap: buildMockGroupFieldMap
728
687
  });
729
688
 
730
689
  const timestamp = (config = {}) => {
731
690
  const faker = createFaker(config.seed);
732
691
  const after = config.after || faker.date.past(20, new Date("2021-03-07")).toISOString().split("T")[0];
733
692
  const before = config.before || faker.date.future(20, new Date("2021-03-07")).toISOString().split("T")[0];
734
- return faker.date.between(after, before).toISOString();
693
+ return config.state === "empty" ? null : faker.date.between(after, before).toISOString();
694
+ };
695
+
696
+ const buildAlternativeLanguage = (config) => {
697
+ return {
698
+ id: config.document.id,
699
+ type: config.document.type,
700
+ lang: config.document.lang,
701
+ uid: config.document.uid || void 0
702
+ };
735
703
  };
736
704
 
737
705
  const customType = (config = {}) => {
@@ -739,8 +707,18 @@ const customType = (config = {}) => {
739
707
  const faker = createFaker(config.seed);
740
708
  const model = config.model || customType$1({ seed: config.seed });
741
709
  const fieldModelsMap = Object.assign({}, ...Object.values(model.json));
710
+ const dataFieldModelsMap = {};
711
+ for (const key in fieldModelsMap) {
712
+ const fieldModel = fieldModelsMap[key];
713
+ if (fieldModel.type !== prismicT__namespace.CustomTypeModelFieldType.UID) {
714
+ dataFieldModelsMap[key] = fieldModel;
715
+ }
716
+ }
742
717
  const hasUID = Object.values(fieldModelsMap).some((fieldModel) => fieldModel.type === prismicT__namespace.CustomTypeModelFieldType.UID);
743
718
  const withURL = (_a = config.withURL) != null ? _a : true;
719
+ const alternateLanguages = (config.alternateLanguages || []).map((alternateLanguageDocument) => buildAlternativeLanguage({
720
+ document: alternateLanguageDocument
721
+ }));
744
722
  return {
745
723
  type: model.id,
746
724
  id: faker.git.shortSha(),
@@ -751,12 +729,12 @@ const customType = (config = {}) => {
751
729
  tags: generateTags({ seed: config.seed }),
752
730
  slugs: [],
753
731
  linked_documents: [],
754
- alternate_languages: [],
732
+ alternate_languages: alternateLanguages,
755
733
  first_publication_date: timestamp({ seed: config.seed }),
756
734
  last_publication_date: timestamp({ seed: config.seed }),
757
735
  data: valueForModelMap({
758
736
  seed: config.seed,
759
- map: fieldModelsMap,
737
+ map: dataFieldModelsMap,
760
738
  configs: config.configs
761
739
  })
762
740
  };
@@ -764,7 +742,7 @@ const customType = (config = {}) => {
764
742
 
765
743
  const color = (config = {}) => {
766
744
  const faker = createFaker(config.seed);
767
- return faker.internet.color().toUpperCase();
745
+ return config.state === "empty" ? null : faker.internet.color().toUpperCase();
768
746
  };
769
747
 
770
748
  const buildContentRelationshipField = (config) => {
@@ -781,11 +759,18 @@ const buildContentRelationshipField = (config) => {
781
759
  };
782
760
  };
783
761
 
762
+ const generateCustomTypeId = (config) => {
763
+ const faker = createFaker(config.seed);
764
+ return changeCase__namespace.snakeCase(faker.company.bsNoun());
765
+ };
766
+
784
767
  const contentRelationship = (config = {}) => {
785
- var _a;
786
768
  const faker = createFaker(config.seed);
787
- const isFilled = (_a = config.isFilled) != null ? _a : true;
788
- if (isFilled) {
769
+ if (config.state === "empty") {
770
+ return {
771
+ link_type: prismicT__namespace.LinkType.Document
772
+ };
773
+ } else {
789
774
  const model = config.model || contentRelationship$1({ seed: config.seed });
790
775
  const linkableDocuments = config.linkableDocuments ? config.linkableDocuments.filter((document2) => {
791
776
  let shouldKeep = true;
@@ -807,19 +792,18 @@ const contentRelationship = (config = {}) => {
807
792
  if (!document) {
808
793
  throw new Error("A linkable document could not be found.");
809
794
  }
810
- return buildContentRelationshipField({ document });
811
- } else {
812
- return {
813
- link_type: prismicT__namespace.LinkType.Document
814
- };
795
+ return buildContentRelationshipField({
796
+ document
797
+ });
815
798
  }
816
799
  };
817
800
 
818
801
  const date = (config = {}) => {
819
- return timestamp({
802
+ return config.state === "empty" ? null : timestamp({
820
803
  seed: config.seed,
821
804
  after: config.after,
822
- before: config.before
805
+ before: config.before,
806
+ state: "filled"
823
807
  }).split("T")[0];
824
808
  };
825
809
 
@@ -909,67 +893,65 @@ const getMockEmbedData = (config) => {
909
893
 
910
894
  const embed$1 = (config = {}) => {
911
895
  const embedData = getMockEmbedData({ seed: config.seed });
912
- return buildEmbedField({ seed: config.seed, embedData });
896
+ return config.state === "empty" ? {} : buildEmbedField({ seed: config.seed, embedData });
913
897
  };
914
898
 
915
899
  const geoPoint = (config = {}) => {
916
900
  const faker = createFaker(config.seed);
917
901
  const coordinates = faker.address.nearbyGPSCoordinate();
918
- return {
902
+ return config.state === "empty" ? {} : {
919
903
  longitude: Number.parseFloat(coordinates[0]),
920
904
  latitude: Number.parseFloat(coordinates[1])
921
905
  };
922
906
  };
923
907
 
924
- const patterns$9 = {
925
- short: {
926
- minItems: 1,
927
- maxItems: 3
928
- },
929
- medium: {
930
- minItems: 3,
931
- maxItems: 6
932
- },
933
- long: {
934
- minItems: 6,
935
- maxItems: 12
936
- }
937
- };
938
908
  const group = (config = {}) => {
939
- const faker = createFaker(config.seed);
940
- const model = config.model || group$1({ seed: config.seed });
941
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$9));
942
- const pattern = patterns$9[patternKey];
943
- const itemsCount = faker.datatype.number({
944
- min: pattern.minItems,
945
- max: pattern.maxItems
946
- });
947
- return Array(itemsCount).fill(void 0).map(() => {
948
- return valueForModelMap({
949
- seed: config.seed,
950
- map: model.config.fields,
951
- configs: config.configs
909
+ var _a;
910
+ if (config.state === "empty") {
911
+ return [];
912
+ } else {
913
+ const faker = createFaker(config.seed);
914
+ const model = config.model || group$1({ seed: config.seed });
915
+ const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
916
+ min: 1,
917
+ max: 6
952
918
  });
953
- });
919
+ return Array(itemsCount).fill(void 0).map(() => {
920
+ return valueForModelMap({
921
+ seed: config.seed,
922
+ map: model.config.fields,
923
+ configs: config.configs
924
+ });
925
+ });
926
+ }
954
927
  };
955
928
 
956
- const buildImageField = (config) => {
929
+ const buildImageFieldImage = (config) => {
957
930
  var _a, _b, _c, _d;
958
- const faker = createFaker(config.seed);
959
- const url = new URL(config.imageData.url);
960
- const dimensions = {
961
- width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
962
- height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
963
- };
964
- url.searchParams.set("w", dimensions.width.toString());
965
- url.searchParams.set("h", dimensions.height.toString());
966
- url.searchParams.set("fit", "crop");
967
- return {
968
- url: url.toString(),
969
- dimensions,
970
- alt: faker.lorem.sentence(),
971
- copyright: faker.lorem.sentence()
972
- };
931
+ if (config.state === "empty") {
932
+ return {
933
+ url: null,
934
+ dimensions: null,
935
+ alt: null,
936
+ copyright: null
937
+ };
938
+ } else {
939
+ const faker = createFaker(config.seed);
940
+ const url = new URL(config.imageData.url);
941
+ const dimensions = {
942
+ width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
943
+ height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
944
+ };
945
+ url.searchParams.set("w", dimensions.width.toString());
946
+ url.searchParams.set("h", dimensions.height.toString());
947
+ url.searchParams.set("fit", "crop");
948
+ return {
949
+ url: url.toString(),
950
+ dimensions,
951
+ alt: faker.lorem.sentence(),
952
+ copyright: faker.lorem.sentence()
953
+ };
954
+ }
973
955
  };
974
956
 
975
957
  const dataSet = [
@@ -1062,19 +1044,21 @@ const getMockImageData = (config) => {
1062
1044
  const image$1 = (config = {}) => {
1063
1045
  const model = config.model || image$2({ seed: config.seed });
1064
1046
  const imageData = getMockImageData({ seed: config.seed });
1065
- const value = buildImageField({
1047
+ const value = buildImageFieldImage({
1066
1048
  seed: config.seed,
1067
1049
  imageData,
1068
- constraint: model.config.constraint
1050
+ constraint: model.config.constraint,
1051
+ state: config.state
1069
1052
  });
1070
1053
  for (const thumbnail of model.config.thumbnails) {
1071
- value[thumbnail.name] = buildImageField({
1054
+ value[thumbnail.name] = buildImageFieldImage({
1072
1055
  seed: config.seed,
1073
1056
  imageData,
1074
1057
  constraint: {
1075
1058
  width: thumbnail.width,
1076
1059
  height: thumbnail.height
1077
- }
1060
+ },
1061
+ state: config.state
1078
1062
  });
1079
1063
  }
1080
1064
  return value;
@@ -1083,7 +1067,7 @@ const image$1 = (config = {}) => {
1083
1067
  const integrationFields = (config = {}) => {
1084
1068
  const faker = createFaker(config.seed);
1085
1069
  const imageData = getMockImageData({ seed: config.seed });
1086
- return {
1070
+ return config.state === "empty" ? null : {
1087
1071
  id: faker.git.shortSha(),
1088
1072
  title: changeCase__namespace.capitalCase(faker.lorem.words(3)),
1089
1073
  description: faker.lorem.sentence(),
@@ -1095,14 +1079,16 @@ const integrationFields = (config = {}) => {
1095
1079
 
1096
1080
  const keyText = (config = {}) => {
1097
1081
  const faker = createFaker(config.seed);
1098
- return changeCase__namespace.sentenceCase(faker.lorem.words(3));
1082
+ return config.state === "empty" ? null : changeCase__namespace.sentenceCase(faker.lorem.words(3));
1099
1083
  };
1100
1084
 
1101
1085
  const linkToMedia = (config = {}) => {
1102
- var _a;
1103
1086
  const faker = createFaker(config.seed);
1104
- const isFilled = (_a = config.isFilled) != null ? _a : true;
1105
- if (isFilled) {
1087
+ if (config.state === "empty") {
1088
+ return {
1089
+ link_type: prismicT__namespace.LinkType.Media
1090
+ };
1091
+ } else {
1106
1092
  return {
1107
1093
  link_type: prismicT__namespace.LinkType.Media,
1108
1094
  name: faker.system.commonFileName(),
@@ -1112,58 +1098,55 @@ const linkToMedia = (config = {}) => {
1112
1098
  height: faker.datatype.number().toString(),
1113
1099
  width: faker.datatype.number().toString()
1114
1100
  };
1115
- } else {
1116
- return {
1117
- link_type: prismicT__namespace.LinkType.Media
1118
- };
1119
1101
  }
1120
1102
  };
1121
1103
 
1122
1104
  const link = (config = {}) => {
1123
- var _a, _b;
1105
+ var _a;
1124
1106
  const faker = createFaker(config.seed);
1125
- const isFilled = (_a = config.isFilled) != null ? _a : true;
1126
1107
  const type = config.type || faker.random.arrayElement([
1127
1108
  prismicT__namespace.LinkType.Web,
1128
1109
  prismicT__namespace.LinkType.Document,
1129
1110
  prismicT__namespace.LinkType.Media
1130
1111
  ]);
1131
- if (isFilled) {
1112
+ if (config.state === "empty") {
1113
+ return {
1114
+ link_type: type
1115
+ };
1116
+ } else {
1132
1117
  switch (type) {
1133
1118
  case prismicT__namespace.LinkType.Document: {
1134
1119
  return contentRelationship({
1135
1120
  seed: config.seed,
1136
- isFilled,
1121
+ state: config.state,
1137
1122
  linkableDocuments: config.linkableDocuments
1138
1123
  });
1139
1124
  }
1140
1125
  case prismicT__namespace.LinkType.Media: {
1141
1126
  return linkToMedia({
1142
1127
  seed: config.seed,
1143
- isFilled
1128
+ state: config.state
1144
1129
  });
1145
1130
  }
1146
- case prismicT__namespace.LinkType.Web: {
1131
+ case prismicT__namespace.LinkType.Web:
1132
+ default: {
1147
1133
  const model = config.model || link$1({ seed: config.seed });
1148
1134
  return {
1149
1135
  link_type: prismicT__namespace.LinkType.Web,
1150
1136
  url: faker.internet.url(),
1151
- target: ((_b = config.withTargetBlank) != null ? _b : model.config.allowTargetBlank && faker.datatype.boolean()) ? "_blank" : void 0
1137
+ target: ((_a = config.withTargetBlank) != null ? _a : model.config.allowTargetBlank && faker.datatype.boolean()) ? "_blank" : void 0
1152
1138
  };
1153
1139
  }
1154
1140
  }
1155
1141
  }
1156
- return {
1157
- link_type: type
1158
- };
1159
1142
  };
1160
1143
 
1161
1144
  const number = (config = {}) => {
1162
1145
  const faker = createFaker(config.seed);
1163
- return faker.datatype.number();
1146
+ return config.state === "empty" ? null : faker.datatype.number();
1164
1147
  };
1165
1148
 
1166
- const patterns$8 = {
1149
+ const patterns$5 = {
1167
1150
  short: {
1168
1151
  minWords: 1,
1169
1152
  maxWords: 3
@@ -1190,8 +1173,8 @@ const heading = (config = {}) => {
1190
1173
  ].includes(type2));
1191
1174
  const type = faker.random.arrayElement(types);
1192
1175
  if (type) {
1193
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$8));
1194
- const pattern = patterns$8[patternKey];
1176
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$5));
1177
+ const pattern = patterns$5[patternKey];
1195
1178
  return {
1196
1179
  type,
1197
1180
  text: changeCase__namespace.capitalCase(faker.lorem.words(faker.datatype.number({
@@ -1205,7 +1188,7 @@ const heading = (config = {}) => {
1205
1188
  }
1206
1189
  };
1207
1190
 
1208
- const patterns$7 = {
1191
+ const patterns$4 = {
1209
1192
  short: {
1210
1193
  sentenceCount: 2
1211
1194
  },
@@ -1218,8 +1201,8 @@ const patterns$7 = {
1218
1201
  };
1219
1202
  const paragraph = (config = {}) => {
1220
1203
  const faker = createFaker(config.seed);
1221
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$7));
1222
- const pattern = patterns$7[patternKey];
1204
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$4));
1205
+ const pattern = patterns$4[patternKey];
1223
1206
  return {
1224
1207
  type: prismicT__namespace.RichTextNodeType.paragraph,
1225
1208
  text: faker.lorem.paragraph(pattern.sentenceCount),
@@ -1227,7 +1210,7 @@ const paragraph = (config = {}) => {
1227
1210
  };
1228
1211
  };
1229
1212
 
1230
- const patterns$6 = {
1213
+ const patterns$3 = {
1231
1214
  short: {
1232
1215
  sentenceCount: 2
1233
1216
  },
@@ -1240,8 +1223,8 @@ const patterns$6 = {
1240
1223
  };
1241
1224
  const preformatted = (config = {}) => {
1242
1225
  const faker = createFaker(config.seed);
1243
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$6));
1244
- const pattern = patterns$6[patternKey];
1226
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$3));
1227
+ const pattern = patterns$3[patternKey];
1245
1228
  return {
1246
1229
  type: prismicT__namespace.RichTextNodeType.preformatted,
1247
1230
  text: faker.lorem.paragraph(pattern.sentenceCount),
@@ -1249,7 +1232,7 @@ const preformatted = (config = {}) => {
1249
1232
  };
1250
1233
  };
1251
1234
 
1252
- const patterns$5 = {
1235
+ const patterns$2 = {
1253
1236
  short: {
1254
1237
  minItems: 1,
1255
1238
  maxItems: 3
@@ -1265,8 +1248,8 @@ const patterns$5 = {
1265
1248
  };
1266
1249
  const list = (config = {}) => {
1267
1250
  const faker = createFaker(config.seed);
1268
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$5));
1269
- const pattern = patterns$5[patternKey];
1251
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$2));
1252
+ const pattern = patterns$2[patternKey];
1270
1253
  const itemsCount = faker.datatype.number({
1271
1254
  min: pattern.minItems,
1272
1255
  max: pattern.maxItems
@@ -1280,7 +1263,7 @@ const list = (config = {}) => {
1280
1263
  });
1281
1264
  };
1282
1265
 
1283
- const patterns$4 = {
1266
+ const patterns$1 = {
1284
1267
  short: {
1285
1268
  minItems: 1,
1286
1269
  maxItems: 3
@@ -1296,8 +1279,8 @@ const patterns$4 = {
1296
1279
  };
1297
1280
  const oList = (config = {}) => {
1298
1281
  const faker = createFaker(config.seed);
1299
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$4));
1300
- const pattern = patterns$4[patternKey];
1282
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$1));
1283
+ const pattern = patterns$1[patternKey];
1301
1284
  const itemsCount = faker.datatype.number({
1302
1285
  min: pattern.minItems,
1303
1286
  max: pattern.maxItems
@@ -1313,7 +1296,11 @@ const oList = (config = {}) => {
1313
1296
 
1314
1297
  const image = (config = {}) => {
1315
1298
  const imageData = getMockImageData({ seed: config.seed });
1316
- const imageField = buildImageField({ seed: config.seed, imageData });
1299
+ const imageField = buildImageFieldImage({
1300
+ seed: config.seed,
1301
+ imageData,
1302
+ state: false
1303
+ });
1317
1304
  return {
1318
1305
  type: prismicT__namespace.RichTextNodeType.image,
1319
1306
  alt: imageField.alt,
@@ -1332,7 +1319,7 @@ const embed = (config = {}) => {
1332
1319
  };
1333
1320
  };
1334
1321
 
1335
- const patterns$3 = {
1322
+ const patterns = {
1336
1323
  short: {
1337
1324
  blockCountMin: 1,
1338
1325
  blockCountMax: 2
@@ -1369,8 +1356,8 @@ const richText = (config = {}) => {
1369
1356
  const supportsMultipleBlocks = "multi" in model.config;
1370
1357
  const types = ("multi" in model.config ? model.config.multi : model.config.single).split(",").filter((type) => Object.keys(generators).includes(type));
1371
1358
  if (types.length > 0) {
1372
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$3));
1373
- const pattern = patterns$3[patternKey];
1359
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns));
1360
+ const pattern = patterns[patternKey];
1374
1361
  const blockCount = supportsMultipleBlocks ? faker.datatype.number({
1375
1362
  min: pattern.blockCountMin,
1376
1363
  max: pattern.blockCountMax
@@ -1389,38 +1376,22 @@ const select = (config = {}) => {
1389
1376
  const faker = createFaker(config.seed);
1390
1377
  const model = config.model || select$1({ seed: config.seed });
1391
1378
  const defaultValue = model.config.default_value;
1392
- return typeof defaultValue === "string" && faker.datatype.boolean() ? defaultValue : faker.random.arrayElement(model.config.options);
1393
- };
1394
-
1395
- const patterns$2 = {
1396
- none: {
1397
- minItems: 0,
1398
- maxItems: 0
1399
- },
1400
- short: {
1401
- minItems: 1,
1402
- maxItems: 3
1403
- },
1404
- medium: {
1405
- minItems: 3,
1406
- maxItems: 6
1407
- },
1408
- long: {
1409
- minItems: 6,
1410
- maxItems: 12
1379
+ if (config.state === "empty") {
1380
+ return null;
1381
+ } else {
1382
+ return typeof defaultValue === "string" && faker.datatype.boolean() ? defaultValue : faker.random.arrayElement(model.config.options);
1411
1383
  }
1412
1384
  };
1385
+
1413
1386
  const slice = (config = {}) => {
1414
- var _a;
1387
+ var _a, _b;
1415
1388
  const faker = createFaker(config.seed);
1416
1389
  const model = config.model || slice$1({ seed: config.seed });
1417
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$2));
1418
- const pattern = patterns$2[patternKey];
1419
1390
  const sliceType = (_a = config.type) != null ? _a : generateFieldId({ seed: config.seed });
1420
1391
  const sliceLabel = config.label !== void 0 ? config.label : changeCase__namespace.capitalCase(faker.company.bsNoun());
1421
- const itemsCount = Object.keys(model.repeat).length > 0 ? faker.datatype.number({
1422
- min: pattern.minItems,
1423
- max: pattern.maxItems
1392
+ const itemsCount = Object.keys(model.repeat).length > 0 ? (_b = config.itemsCount) != null ? _b : faker.datatype.number({
1393
+ min: 1,
1394
+ max: 6
1424
1395
  }) : 0;
1425
1396
  return {
1426
1397
  slice_type: sliceType,
@@ -1440,39 +1411,18 @@ const slice = (config = {}) => {
1440
1411
  };
1441
1412
  };
1442
1413
 
1443
- const patterns$1 = {
1444
- none: {
1445
- minItems: 0,
1446
- maxItems: 0
1447
- },
1448
- short: {
1449
- minItems: 1,
1450
- maxItems: 3
1451
- },
1452
- medium: {
1453
- minItems: 3,
1454
- maxItems: 6
1455
- },
1456
- long: {
1457
- minItems: 6,
1458
- maxItems: 12
1459
- }
1460
- };
1461
1414
  const sharedSliceVariation = (config = {}) => {
1462
1415
  var _a, _b;
1463
1416
  const faker = createFaker(config.seed);
1464
1417
  const model = config.model || sharedSliceVariation$1({ seed: config.seed });
1465
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$1));
1466
- const pattern = patterns$1[patternKey];
1467
1418
  const sliceType = (_a = config.type) != null ? _a : generateFieldId({ seed: config.seed });
1468
- const sliceLabel = (_b = config.label) != null ? _b : changeCase__namespace.capitalCase(faker.company.bsNoun());
1469
- const itemsCount = Object.keys(model.items).length > 0 ? faker.datatype.number({
1470
- min: pattern.minItems,
1471
- max: pattern.maxItems
1419
+ const itemsCount = Object.keys(model.items).length > 0 ? (_b = config.itemsCount) != null ? _b : faker.datatype.number({
1420
+ min: 1,
1421
+ max: 6
1472
1422
  }) : 0;
1473
1423
  return {
1474
1424
  slice_type: sliceType,
1475
- slice_label: sliceLabel,
1425
+ slice_label: null,
1476
1426
  variation: model.id,
1477
1427
  version: faker.git.shortSha(),
1478
1428
  primary: valueForModelMap({
@@ -1497,76 +1447,73 @@ const sharedSlice = (config = {}) => {
1497
1447
  return sharedSliceVariation({
1498
1448
  seed: config.seed,
1499
1449
  model: variationModel,
1500
- pattern: config.pattern,
1450
+ itemsCount: config.itemsCount,
1501
1451
  type: model.id,
1502
1452
  primaryFieldConfigs: config.primaryFieldConfigs,
1503
1453
  itemsFieldConfigs: config.itemsFieldConfigs
1504
1454
  });
1505
1455
  };
1506
1456
 
1507
- const patterns = {
1508
- short: {
1509
- minItems: 1,
1510
- maxItems: 3
1511
- },
1512
- medium: {
1513
- minItems: 3,
1514
- maxItems: 6
1515
- },
1516
- long: {
1517
- minItems: 6,
1518
- maxItems: 12
1519
- }
1520
- };
1521
1457
  const sliceZone = (config = {}) => {
1522
- const faker = createFaker(config.seed);
1523
- const model = config.model || sliceZone$1({ seed: config.seed });
1524
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns));
1525
- const pattern = patterns[patternKey];
1526
- const itemsCount = faker.datatype.number({
1527
- min: pattern.minItems,
1528
- max: pattern.maxItems
1529
- });
1530
- return Array(itemsCount).fill(void 0).map(() => {
1531
- var _a;
1532
- const choices = Object.entries(model.config.choices);
1533
- const [choiceType, choiceModel] = faker.random.arrayElement(choices);
1534
- const choiceLabels = model.config.labels[choiceType] || [];
1535
- const choiceLabel = faker.random.arrayElement(choiceLabels);
1536
- switch (choiceModel.type) {
1537
- case prismicT__namespace.CustomTypeModelSliceType.Slice: {
1538
- return slice({
1539
- seed: config.seed,
1540
- model: choiceModel,
1541
- type: choiceType,
1542
- label: choiceLabel ? choiceLabel.name : null,
1543
- primaryFieldConfigs: config.primaryFieldConfigs,
1544
- itemsFieldConfigs: config.itemsFieldConfigs
1545
- });
1546
- }
1547
- case prismicT__namespace.CustomTypeModelSliceType.SharedSlice: {
1548
- const sharedSliceModel = (_a = config.sharedSliceModels) == null ? void 0 : _a.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
1549
- if (sharedSliceModel) {
1550
- return sharedSlice({
1551
- seed: config.seed,
1552
- model: sharedSliceModel,
1553
- primaryFieldConfigs: config.primaryFieldConfigs,
1554
- itemsFieldConfigs: config.itemsFieldConfigs
1555
- });
1458
+ var _a;
1459
+ if (config.state === "empty") {
1460
+ return [];
1461
+ } else {
1462
+ const faker = createFaker(config.seed);
1463
+ const model = config.model || sliceZone$1({ seed: config.seed });
1464
+ if (Object.keys(model.config.choices).length > 0) {
1465
+ const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
1466
+ min: 1,
1467
+ max: 6
1468
+ });
1469
+ return Array(itemsCount).fill(void 0).map(() => {
1470
+ var _a2;
1471
+ const choices = Object.entries(model.config.choices);
1472
+ const [choiceType, choiceModel] = faker.random.arrayElement(choices);
1473
+ const choiceLabels = model.config.labels[choiceType] || [];
1474
+ const choiceLabel = faker.random.arrayElement(choiceLabels);
1475
+ switch (choiceModel.type) {
1476
+ case prismicT__namespace.CustomTypeModelSliceType.Slice: {
1477
+ return slice({
1478
+ seed: config.seed,
1479
+ model: choiceModel,
1480
+ type: choiceType,
1481
+ label: choiceLabel ? choiceLabel.name : null,
1482
+ primaryFieldConfigs: config.primaryFieldConfigs,
1483
+ itemsFieldConfigs: config.itemsFieldConfigs
1484
+ });
1485
+ }
1486
+ case prismicT__namespace.CustomTypeModelSliceType.SharedSlice: {
1487
+ const sharedSliceModel = (_a2 = config.sharedSliceModels) == null ? void 0 : _a2.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
1488
+ if (sharedSliceModel) {
1489
+ return sharedSlice({
1490
+ seed: config.seed,
1491
+ model: sharedSliceModel,
1492
+ primaryFieldConfigs: config.primaryFieldConfigs,
1493
+ itemsFieldConfigs: config.itemsFieldConfigs
1494
+ });
1495
+ }
1496
+ }
1556
1497
  }
1557
- }
1498
+ }).filter((slice2) => slice2 !== void 0);
1499
+ } else {
1500
+ return [];
1558
1501
  }
1559
- }).filter((slice2) => slice2 !== void 0);
1502
+ }
1560
1503
  };
1561
1504
 
1562
1505
  const title = (config = {}) => {
1563
- return [
1564
- heading({
1565
- seed: config.seed,
1566
- model: config.model,
1567
- pattern: config.pattern
1568
- })
1569
- ];
1506
+ if (config.state === "empty") {
1507
+ return [];
1508
+ } else {
1509
+ return [
1510
+ heading({
1511
+ seed: config.seed,
1512
+ model: config.model,
1513
+ pattern: config.pattern
1514
+ })
1515
+ ];
1516
+ }
1570
1517
  };
1571
1518
 
1572
1519
  const uid = (config = {}) => {
@@ -1690,3 +1637,4 @@ const index = /*#__PURE__*/Object.freeze({
1690
1637
  exports.api = index;
1691
1638
  exports.model = index$2;
1692
1639
  exports.value = index$1;
1640
+ //# sourceMappingURL=index.cjs.map