@prismicio/mock 0.0.3 → 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 (78) hide show
  1. package/README.md +4 -1
  2. package/dist/api/index.cjs +561 -0
  3. package/dist/api/index.cjs.map +1 -0
  4. package/dist/api/index.d.ts +36 -0
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/api/index.js +561 -0
  7. package/dist/api/index.js.map +1 -0
  8. package/dist/index.cjs +672 -644
  9. package/dist/index.cjs.map +1 -0
  10. package/dist/index.d.ts +228 -262
  11. package/dist/{index.mjs → index.js} +663 -634
  12. package/dist/index.js.map +1 -0
  13. package/dist/model/index.cjs +163 -203
  14. package/dist/model/index.cjs.map +1 -0
  15. package/dist/model/index.d.ts +70 -96
  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 +284 -499
  20. package/dist/value/index.cjs.map +1 -0
  21. package/dist/value/index.d.ts +60 -120
  22. package/dist/value/index.d.ts.map +1 -0
  23. package/dist/value/{index.mjs → index.js} +447 -608
  24. package/dist/value/index.js.map +1 -0
  25. package/package.json +25 -20
  26. package/src/api/index.ts +11 -0
  27. package/src/api/query.ts +38 -0
  28. package/src/api/ref.ts +41 -0
  29. package/src/api/repository.ts +54 -0
  30. package/src/api/tags.ts +15 -0
  31. package/src/constants.ts +3 -1
  32. package/src/index.ts +1 -0
  33. package/src/lib/buildAlternativeLanguage.ts +18 -0
  34. package/src/lib/buildContentRelationshipField.ts +12 -5
  35. package/src/lib/buildEmbedField.ts +1 -1
  36. package/src/lib/buildImageFieldImage.ts +48 -0
  37. package/src/lib/createFaker.ts +19 -10
  38. package/src/lib/generateTags.ts +10 -2
  39. package/src/lib/valueForModelMap.ts +2 -2
  40. package/src/model/buildMockGroupFieldMap.ts +65 -0
  41. package/src/model/contentRelationship.ts +14 -21
  42. package/src/model/customType.ts +49 -48
  43. package/src/model/group.ts +8 -15
  44. package/src/model/image.ts +13 -13
  45. package/src/model/index.ts +2 -0
  46. package/src/model/select.ts +11 -16
  47. package/src/model/sharedSlice.ts +23 -30
  48. package/src/model/sharedSliceVariation.ts +33 -21
  49. package/src/model/slice.ts +15 -19
  50. package/src/model/sliceZone.ts +25 -42
  51. package/src/types.ts +50 -15
  52. package/src/value/color.ts +16 -6
  53. package/src/value/contentRelationship.ts +52 -36
  54. package/src/value/customType.ts +27 -4
  55. package/src/value/date.ts +25 -9
  56. package/src/value/embed.ts +18 -6
  57. package/src/value/geoPoint.ts +21 -9
  58. package/src/value/group.ts +7 -27
  59. package/src/value/image.ts +22 -9
  60. package/src/value/integrationFields.ts +26 -14
  61. package/src/value/keyText.ts +18 -6
  62. package/src/value/link.ts +33 -34
  63. package/src/value/linkToMedia.ts +15 -20
  64. package/src/value/number.ts +16 -6
  65. package/src/value/richText/heading.ts +7 -7
  66. package/src/value/richText/image.ts +6 -2
  67. package/src/value/richText/index.ts +1 -1
  68. package/src/value/select.ts +23 -8
  69. package/src/value/sharedSlice.ts +2 -2
  70. package/src/value/sharedSliceVariation.ts +6 -34
  71. package/src/value/slice.ts +5 -30
  72. package/src/value/sliceZone.ts +44 -60
  73. package/src/value/timestamp.ts +19 -6
  74. package/src/value/title.ts +1 -1
  75. package/src/value/uid.ts +1 -1
  76. package/dist/model/index.mjs +0 -448
  77. package/src/lib/buildImageField.ts +0 -34
  78. package/src/lib/buildMockGroupFieldMap.ts +0 -84
@@ -1,59 +1,99 @@
1
- import * as fakerLocaleEN from 'faker/lib/locales/en';
2
- import Faker from 'faker/lib';
3
- import * as prismicT from '@prismicio/types';
4
- import * as changeCase from 'change-case';
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const fakerLocaleEN = require('faker/lib/locales/en/index.js');
6
+ const Faker = require('faker/lib/index.js');
7
+ const prismicT = require('@prismicio/types');
8
+ const changeCase = require('change-case');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ const n = Object.create(null);
15
+ if (e) {
16
+ for (const k in e) {
17
+ if (k !== 'default') {
18
+ const d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ }
25
+ }
26
+ n["default"] = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ const fakerLocaleEN__namespace = /*#__PURE__*/_interopNamespace(fakerLocaleEN);
31
+ const Faker__default = /*#__PURE__*/_interopDefaultLegacy(Faker);
32
+ const prismicT__namespace = /*#__PURE__*/_interopNamespace(prismicT);
33
+ const changeCase__namespace = /*#__PURE__*/_interopNamespace(changeCase);
5
34
 
6
35
  const FAKER_SEED = 1984;
7
36
 
8
37
  const createFaker = (seed = FAKER_SEED) => {
9
- if (createFaker.cache[seed]) {
10
- 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];
11
47
  }
12
- const seededFaker = new Faker();
13
- seededFaker.seed(seed);
14
- seededFaker.locales["en"] = fakerLocaleEN;
15
- createFaker.cache[seed] = seededFaker;
16
- 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;
17
53
  };
18
54
  createFaker.cache = {};
19
55
 
20
- const boolean$1 = (config = {}) => {
56
+ const boolean = (config = {}) => {
21
57
  const faker = createFaker(config.seed);
22
58
  return faker.datatype.boolean();
23
59
  };
24
60
 
25
61
  const generateTags = (config) => {
62
+ var _a, _b;
26
63
  const faker = createFaker(config.seed);
27
- return Array(faker.datatype.number(2)).fill(void 0).map(() => changeCase.capitalCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 }))));
64
+ return Array(faker.datatype.number({
65
+ min: (_a = config.min) != null ? _a : 0,
66
+ max: (_b = config.max) != null ? _b : 2
67
+ })).fill(void 0).map(() => changeCase__namespace.capitalCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 }))));
28
68
  };
29
69
 
30
70
  const valueForModel = (config) => {
31
71
  const model = config.model;
32
72
  switch (model.type) {
33
- case prismicT.CustomTypeModelFieldType.Boolean: {
34
- return boolean$1({
73
+ case prismicT__namespace.CustomTypeModelFieldType.Boolean: {
74
+ return boolean({
35
75
  seed: config.seed,
36
76
  model,
37
77
  ...config.config
38
78
  });
39
79
  }
40
- case prismicT.CustomTypeModelFieldType.Color: {
80
+ case prismicT__namespace.CustomTypeModelFieldType.Color: {
41
81
  return color({
42
82
  seed: config.seed,
43
83
  model,
44
84
  ...config.config
45
85
  });
46
86
  }
47
- case prismicT.CustomTypeModelFieldType.Link: {
87
+ case prismicT__namespace.CustomTypeModelFieldType.Link: {
48
88
  switch (model.config.select) {
49
- case prismicT.CustomTypeModelLinkSelectType.Document: {
89
+ case prismicT__namespace.CustomTypeModelLinkSelectType.Document: {
50
90
  return contentRelationship({
51
91
  seed: config.seed,
52
92
  model,
53
93
  ...config.config
54
94
  });
55
95
  }
56
- case prismicT.CustomTypeModelLinkSelectType.Media: {
96
+ case prismicT__namespace.CustomTypeModelLinkSelectType.Media: {
57
97
  return linkToMedia({
58
98
  seed: config.seed,
59
99
  model,
@@ -69,63 +109,63 @@ const valueForModel = (config) => {
69
109
  }
70
110
  }
71
111
  }
72
- case prismicT.CustomTypeModelFieldType.Date: {
112
+ case prismicT__namespace.CustomTypeModelFieldType.Date: {
73
113
  return date({
74
114
  seed: config.seed,
75
115
  model,
76
116
  ...config.config
77
117
  });
78
118
  }
79
- case prismicT.CustomTypeModelFieldType.Embed: {
119
+ case prismicT__namespace.CustomTypeModelFieldType.Embed: {
80
120
  return embed$1({
81
121
  seed: config.seed,
82
122
  model,
83
123
  ...config.config
84
124
  });
85
125
  }
86
- case prismicT.CustomTypeModelFieldType.GeoPoint: {
126
+ case prismicT__namespace.CustomTypeModelFieldType.GeoPoint: {
87
127
  return geoPoint({
88
128
  seed: config.seed,
89
129
  model,
90
130
  ...config.config
91
131
  });
92
132
  }
93
- case prismicT.CustomTypeModelFieldType.Image: {
133
+ case prismicT__namespace.CustomTypeModelFieldType.Image: {
94
134
  return image$1({
95
135
  seed: config.seed,
96
136
  model,
97
137
  ...config.config
98
138
  });
99
139
  }
100
- case prismicT.CustomTypeModelFieldType.Text: {
140
+ case prismicT__namespace.CustomTypeModelFieldType.Text: {
101
141
  return keyText({
102
142
  seed: config.seed,
103
143
  model,
104
144
  ...config.config
105
145
  });
106
146
  }
107
- case prismicT.CustomTypeModelFieldType.Number: {
147
+ case prismicT__namespace.CustomTypeModelFieldType.Number: {
108
148
  return number({
109
149
  seed: config.seed,
110
150
  model,
111
151
  ...config.config
112
152
  });
113
153
  }
114
- case prismicT.CustomTypeModelFieldType.Select: {
154
+ case prismicT__namespace.CustomTypeModelFieldType.Select: {
115
155
  return select({
116
156
  seed: config.seed,
117
157
  model,
118
158
  ...config.config
119
159
  });
120
160
  }
121
- case prismicT.CustomTypeModelFieldType.Timestamp: {
161
+ case prismicT__namespace.CustomTypeModelFieldType.Timestamp: {
122
162
  return timestamp({
123
163
  seed: config.seed,
124
164
  model,
125
165
  ...config.config
126
166
  });
127
167
  }
128
- case prismicT.CustomTypeModelFieldType.StructuredText: {
168
+ case prismicT__namespace.CustomTypeModelFieldType.StructuredText: {
129
169
  if ("single" in model.config && model.config.single.split(",").every((element) => /heading[1-6]/.test(element.trim()))) {
130
170
  return title({
131
171
  seed: config.seed,
@@ -140,28 +180,28 @@ const valueForModel = (config) => {
140
180
  });
141
181
  }
142
182
  }
143
- case prismicT.CustomTypeModelFieldType.IntegrationFields: {
183
+ case prismicT__namespace.CustomTypeModelFieldType.IntegrationFields: {
144
184
  return integrationFields({
145
185
  seed: config.seed,
146
186
  model,
147
187
  ...config.config
148
188
  });
149
189
  }
150
- case prismicT.CustomTypeModelFieldType.UID: {
190
+ case prismicT__namespace.CustomTypeModelFieldType.UID: {
151
191
  return uid({
152
192
  seed: config.seed,
153
193
  model,
154
194
  ...config.config
155
195
  });
156
196
  }
157
- case prismicT.CustomTypeModelFieldType.Group: {
197
+ case prismicT__namespace.CustomTypeModelFieldType.Group: {
158
198
  return group({
159
199
  seed: config.seed,
160
200
  model,
161
201
  ...config.config
162
202
  });
163
203
  }
164
- case prismicT.CustomTypeModelFieldType.Slices: {
204
+ case prismicT__namespace.CustomTypeModelFieldType.Slices: {
165
205
  return sliceZone({
166
206
  seed: config.seed,
167
207
  model,
@@ -173,51 +213,51 @@ const valueForModel = (config) => {
173
213
 
174
214
  const getValueConfigType = (model) => {
175
215
  switch (model.type) {
176
- case prismicT.CustomTypeModelFieldType.Boolean:
216
+ case prismicT__namespace.CustomTypeModelFieldType.Boolean:
177
217
  return "boolean";
178
- case prismicT.CustomTypeModelFieldType.Color:
218
+ case prismicT__namespace.CustomTypeModelFieldType.Color:
179
219
  return "color";
180
- case prismicT.CustomTypeModelFieldType.Date:
220
+ case prismicT__namespace.CustomTypeModelFieldType.Date:
181
221
  return "date";
182
- case prismicT.CustomTypeModelFieldType.Embed:
222
+ case prismicT__namespace.CustomTypeModelFieldType.Embed:
183
223
  return "embed";
184
- case prismicT.CustomTypeModelFieldType.GeoPoint:
224
+ case prismicT__namespace.CustomTypeModelFieldType.GeoPoint:
185
225
  return "geoPoint";
186
- case prismicT.CustomTypeModelFieldType.Group:
226
+ case prismicT__namespace.CustomTypeModelFieldType.Group:
187
227
  return "group";
188
- case prismicT.CustomTypeModelFieldType.Image:
228
+ case prismicT__namespace.CustomTypeModelFieldType.Image:
189
229
  return "image";
190
- case prismicT.CustomTypeModelFieldType.Link: {
230
+ case prismicT__namespace.CustomTypeModelFieldType.Link: {
191
231
  switch (model.config.select) {
192
- case prismicT.CustomTypeModelLinkSelectType.Document:
232
+ case prismicT__namespace.CustomTypeModelLinkSelectType.Document:
193
233
  return "contentRelationship";
194
- case prismicT.CustomTypeModelLinkSelectType.Media:
234
+ case prismicT__namespace.CustomTypeModelLinkSelectType.Media:
195
235
  return "linkToMedia";
196
236
  default:
197
237
  return "link";
198
238
  }
199
239
  }
200
- case prismicT.CustomTypeModelFieldType.Number:
240
+ case prismicT__namespace.CustomTypeModelFieldType.Number:
201
241
  return "number";
202
- case prismicT.CustomTypeModelFieldType.Select:
242
+ case prismicT__namespace.CustomTypeModelFieldType.Select:
203
243
  return "select";
204
- case prismicT.CustomTypeModelFieldType.StructuredText: {
244
+ case prismicT__namespace.CustomTypeModelFieldType.StructuredText: {
205
245
  if ("single" in model.config && model.config.single.split(",").every((element) => /heading{1,6}/.test(element.trim()))) {
206
246
  return "title";
207
247
  } else {
208
248
  return "richText";
209
249
  }
210
250
  }
211
- case prismicT.CustomTypeModelFieldType.Text:
251
+ case prismicT__namespace.CustomTypeModelFieldType.Text:
212
252
  return "keyText";
213
- case prismicT.CustomTypeModelFieldType.Timestamp:
253
+ case prismicT__namespace.CustomTypeModelFieldType.Timestamp:
214
254
  return "timestamp";
215
- case prismicT.CustomTypeModelFieldType.UID:
255
+ case prismicT__namespace.CustomTypeModelFieldType.UID:
216
256
  return "uid";
217
- case prismicT.CustomTypeModelFieldType.IntegrationFields:
257
+ case prismicT__namespace.CustomTypeModelFieldType.IntegrationFields:
218
258
  return "integrationFields";
219
- case prismicT.CustomTypeModelFieldType.Slices:
220
- return "slices";
259
+ case prismicT__namespace.CustomTypeModelFieldType.Slices:
260
+ return "sliceZone";
221
261
  }
222
262
  };
223
263
  const valueForModelMap = (config) => {
@@ -236,117 +276,74 @@ const valueForModelMap = (config) => {
236
276
  return result;
237
277
  };
238
278
 
239
- const boolean = (config = {}) => {
240
- const faker = createFaker(config.seed);
241
- return {
242
- type: prismicT.CustomTypeModelFieldType.Boolean,
243
- config: {
244
- label: changeCase.capitalCase(faker.company.bsNoun())
245
- }
246
- };
247
- };
248
-
249
- const color$1 = (config = {}) => {
250
- const faker = createFaker(config.seed);
251
- return {
252
- type: prismicT.CustomTypeModelFieldType.Color,
253
- config: {
254
- label: changeCase.capitalCase(faker.company.bsNoun()),
255
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
256
- }
257
- };
258
- };
259
-
260
- const generateCustomTypeId = (config) => {
261
- const faker = createFaker(config.seed);
262
- return changeCase.snakeCase(faker.company.bsNoun());
263
- };
264
-
265
279
  const contentRelationship$1 = (config = {}) => {
266
280
  const faker = createFaker(config.seed);
267
281
  return {
268
- type: prismicT.CustomTypeModelFieldType.Link,
282
+ type: prismicT__namespace.CustomTypeModelFieldType.Link,
269
283
  config: {
270
- label: changeCase.capitalCase(faker.company.bsNoun()),
271
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
272
- select: prismicT.CustomTypeModelLinkSelectType.Document,
273
- customtypes: config.constrainCustomTypes ? Array(faker.datatype.number({ min: 1, max: 3 })).fill(void 0).map(() => generateCustomTypeId({ seed: config.seed })) : void 0,
274
- tags: config.constrainTags ? Array(faker.datatype.number({ min: 1, max: 3 })).fill(void 0).map(() => changeCase.capitalCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })))) : void 0
284
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
285
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
286
+ select: prismicT__namespace.CustomTypeModelLinkSelectType.Document,
287
+ customtypes: config.customTypeIDs,
288
+ tags: config.tags
275
289
  }
276
290
  };
277
291
  };
278
292
 
279
- const date$1 = (config = {}) => {
280
- const faker = createFaker(config.seed);
281
- return {
282
- type: prismicT.CustomTypeModelFieldType.Date,
283
- config: {
284
- label: changeCase.capitalCase(faker.company.bsNoun()),
285
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
286
- }
287
- };
288
- };
289
-
290
- const embed$2 = (config = {}) => {
293
+ const customType$1 = (config = {}) => {
294
+ var _a, _b;
291
295
  const faker = createFaker(config.seed);
296
+ let label = config.label || changeCase__namespace.capitalCase(faker.company.bsNoun());
297
+ let id = config.id || changeCase__namespace.snakeCase(label);
298
+ if (config.id && !config.label) {
299
+ label = changeCase__namespace.capitalCase(config.id);
300
+ } else if (config.label && !config.label) {
301
+ id = changeCase__namespace.snakeCase(config.label);
302
+ }
303
+ let json = {};
304
+ if ("fields" in config && config.fields) {
305
+ json = { Main: config.fields };
306
+ } else if ("tabs" in config && config.tabs) {
307
+ json = config.tabs;
308
+ }
292
309
  return {
293
- type: prismicT.CustomTypeModelFieldType.Embed,
294
- config: {
295
- label: changeCase.capitalCase(faker.company.bsNoun()),
296
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
297
- }
310
+ id,
311
+ label,
312
+ status: (_a = config.status) != null ? _a : faker.datatype.boolean(),
313
+ repeatable: (_b = config.repeatable) != null ? _b : faker.datatype.boolean(),
314
+ json
298
315
  };
299
316
  };
300
317
 
301
- const geoPoint$1 = (config = {}) => {
318
+ const group$1 = (config = {}) => {
302
319
  const faker = createFaker(config.seed);
303
320
  return {
304
- type: prismicT.CustomTypeModelFieldType.GeoPoint,
321
+ type: prismicT__namespace.CustomTypeModelFieldType.Group,
305
322
  config: {
306
- label: changeCase.capitalCase(faker.company.bsNoun())
323
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
324
+ fields: config.fields || {}
307
325
  }
308
326
  };
309
327
  };
310
328
 
311
329
  const image$2 = (config = {}) => {
312
- var _a;
313
330
  const faker = createFaker(config.seed);
314
- const thumbnailsCount = (_a = config.thumbnailsCount) != null ? _a : faker.datatype.number(3);
331
+ const thumbnails = (config.thumbnailNames || []).map((name) => {
332
+ return {
333
+ name,
334
+ width: faker.datatype.number({ min: 500, max: 2e3 }),
335
+ height: faker.datatype.number({ min: 500, max: 2e3 })
336
+ };
337
+ });
315
338
  return {
316
- type: prismicT.CustomTypeModelFieldType.Image,
339
+ type: prismicT__namespace.CustomTypeModelFieldType.Image,
317
340
  config: {
318
- label: changeCase.capitalCase(faker.company.bsNoun()),
341
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
319
342
  constraint: {
320
343
  width: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null,
321
344
  height: config.withConstraint ? faker.datatype.number({ min: 500, max: 2e3 }) : null
322
345
  },
323
- thumbnails: Array(thumbnailsCount).fill(void 0).map(() => ({
324
- name: changeCase.capitalCase(faker.company.bsNoun()),
325
- width: faker.datatype.number({ min: 500, max: 2e3 }),
326
- height: faker.datatype.number({ min: 500, max: 2e3 })
327
- }))
328
- }
329
- };
330
- };
331
-
332
- const integrationFields$1 = (config = {}) => {
333
- const faker = createFaker(config.seed);
334
- return {
335
- type: prismicT.CustomTypeModelFieldType.IntegrationFields,
336
- config: {
337
- label: changeCase.capitalCase(faker.company.bsNoun()),
338
- catalog: changeCase.snakeCase(faker.lorem.words(4))
339
- }
340
- };
341
- };
342
-
343
- const keyText$1 = (config = {}) => {
344
- const faker = createFaker(config.seed);
345
- return {
346
- type: prismicT.CustomTypeModelFieldType.Text,
347
- config: {
348
- label: changeCase.capitalCase(faker.company.bsNoun()),
349
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
346
+ thumbnails
350
347
  }
351
348
  };
352
349
  };
@@ -354,65 +351,42 @@ const keyText$1 = (config = {}) => {
354
351
  const link$1 = (config = {}) => {
355
352
  const faker = createFaker(config.seed);
356
353
  return {
357
- type: prismicT.CustomTypeModelFieldType.Link,
354
+ type: prismicT__namespace.CustomTypeModelFieldType.Link,
358
355
  config: {
359
- label: changeCase.capitalCase(faker.company.bsNoun()),
360
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
356
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
357
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
361
358
  select: null,
362
359
  allowTargetBlank: ("allowTargetBlank" in config ? config.allowTargetBlank : faker.datatype.boolean()) || void 0
363
360
  }
364
361
  };
365
362
  };
366
363
 
367
- const linkToMedia$1 = (config = {}) => {
368
- const faker = createFaker(config.seed);
369
- return {
370
- type: prismicT.CustomTypeModelFieldType.Link,
371
- config: {
372
- label: changeCase.capitalCase(faker.company.bsNoun()),
373
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
374
- select: prismicT.CustomTypeModelLinkSelectType.Media
375
- }
376
- };
377
- };
378
-
379
- const number$1 = (config = {}) => {
380
- const faker = createFaker(config.seed);
381
- return {
382
- type: prismicT.CustomTypeModelFieldType.Number,
383
- config: {
384
- label: changeCase.capitalCase(faker.company.bsNoun()),
385
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
386
- }
387
- };
388
- };
389
-
390
364
  const richText$1 = (config = {}) => {
391
365
  var _a;
392
366
  const faker = createFaker(config.seed);
393
367
  const blockTypes = faker.random.arrayElements([
394
- prismicT.RichTextNodeType.heading1,
395
- prismicT.RichTextNodeType.heading2,
396
- prismicT.RichTextNodeType.heading3,
397
- prismicT.RichTextNodeType.heading4,
398
- prismicT.RichTextNodeType.heading5,
399
- prismicT.RichTextNodeType.heading6,
400
- prismicT.RichTextNodeType.paragraph,
401
- prismicT.RichTextNodeType.preformatted,
402
- prismicT.RichTextNodeType.strong,
403
- prismicT.RichTextNodeType.em,
404
- prismicT.RichTextNodeType.listItem,
405
- prismicT.RichTextNodeType.oListItem,
406
- prismicT.RichTextNodeType.image,
407
- prismicT.RichTextNodeType.embed,
408
- prismicT.RichTextNodeType.hyperlink
368
+ prismicT__namespace.RichTextNodeType.heading1,
369
+ prismicT__namespace.RichTextNodeType.heading2,
370
+ prismicT__namespace.RichTextNodeType.heading3,
371
+ prismicT__namespace.RichTextNodeType.heading4,
372
+ prismicT__namespace.RichTextNodeType.heading5,
373
+ prismicT__namespace.RichTextNodeType.heading6,
374
+ prismicT__namespace.RichTextNodeType.paragraph,
375
+ prismicT__namespace.RichTextNodeType.preformatted,
376
+ prismicT__namespace.RichTextNodeType.strong,
377
+ prismicT__namespace.RichTextNodeType.em,
378
+ prismicT__namespace.RichTextNodeType.listItem,
379
+ prismicT__namespace.RichTextNodeType.oListItem,
380
+ prismicT__namespace.RichTextNodeType.image,
381
+ prismicT__namespace.RichTextNodeType.embed,
382
+ prismicT__namespace.RichTextNodeType.hyperlink
409
383
  ]).join(",");
410
384
  const blockTypeConfig = ((_a = config.withMultipleBlocks) != null ? _a : faker.datatype.boolean()) ? { multi: blockTypes } : { single: blockTypes };
411
385
  return {
412
- type: prismicT.CustomTypeModelFieldType.StructuredText,
386
+ type: prismicT__namespace.CustomTypeModelFieldType.StructuredText,
413
387
  config: {
414
- label: changeCase.capitalCase(faker.company.bsNoun()),
415
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
388
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
389
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
416
390
  allowTargetBlank: faker.datatype.boolean() ? true : void 0,
417
391
  ...blockTypeConfig
418
392
  }
@@ -420,278 +394,162 @@ const richText$1 = (config = {}) => {
420
394
  };
421
395
 
422
396
  const select$1 = (config = {}) => {
423
- var _a;
424
397
  const faker = createFaker(config.seed);
425
- const optionsCount = (_a = config.optionsCount) != null ? _a : faker.datatype.number({ min: 1, max: 5 });
426
- const options = Array(optionsCount).fill(void 0).map(() => changeCase.capitalCase(faker.company.bsBuzz()));
427
398
  return {
428
- type: prismicT.CustomTypeModelFieldType.Select,
399
+ type: prismicT__namespace.CustomTypeModelFieldType.Select,
429
400
  config: {
430
- label: changeCase.capitalCase(faker.company.bsNoun()),
431
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
432
- options,
433
- default_value: config.withDefaultValue ? faker.random.arrayElement(options) : void 0
401
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
402
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
403
+ options: config.options || [],
404
+ default_value: config.defaultValue || void 0
434
405
  }
435
406
  };
436
407
  };
437
408
 
438
- const timestamp$1 = (config = {}) => {
439
- const faker = createFaker(config.seed);
440
- return {
441
- type: prismicT.CustomTypeModelFieldType.Timestamp,
442
- config: {
443
- label: changeCase.capitalCase(faker.company.bsNoun()),
444
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
445
- }
446
- };
447
- };
448
-
449
- const title$1 = (config = {}) => {
409
+ const sharedSlice$1 = (config = {}) => {
450
410
  const faker = createFaker(config.seed);
451
- const single = faker.random.arrayElements([
452
- "heading1",
453
- "heading2",
454
- "heading3",
455
- "heading4",
456
- "heading5",
457
- "heading6"
458
- ]).join(",");
411
+ let name = config.name || changeCase__namespace.capitalCase(faker.company.bsNoun());
412
+ let id = config.id || changeCase__namespace.snakeCase(name);
413
+ if (config.id && !config.name) {
414
+ name = changeCase__namespace.pascalCase(config.id);
415
+ } else if (config.name && !config.name) {
416
+ id = changeCase__namespace.snakeCase(config.name);
417
+ }
459
418
  return {
460
- type: prismicT.CustomTypeModelFieldType.StructuredText,
461
- config: {
462
- label: changeCase.capitalCase(faker.company.bsNoun()),
463
- placeholder: changeCase.sentenceCase(faker.lorem.words(3)),
464
- single,
465
- allowTargetBlank: faker.datatype.boolean() ? true : void 0
466
- }
419
+ type: prismicT__namespace.CustomTypeModelSliceType.SharedSlice,
420
+ id,
421
+ name,
422
+ description: faker.lorem.sentence(),
423
+ variations: config.variations || []
467
424
  };
468
425
  };
469
426
 
470
- const generateFieldId = (config) => {
471
- const faker = createFaker(config.seed);
472
- return changeCase.snakeCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })));
473
- };
474
-
475
- const mockModelFns = {
476
- boolean,
477
- color: color$1,
478
- contentRelationship: contentRelationship$1,
479
- date: date$1,
480
- embed: embed$2,
481
- geoPoint: geoPoint$1,
482
- image: image$2,
483
- integrationFields: integrationFields$1,
484
- keyText: keyText$1,
485
- link: link$1,
486
- linkToMedia: linkToMedia$1,
487
- number: number$1,
488
- richText: richText$1,
489
- select: select$1,
490
- timestamp: timestamp$1,
491
- title: title$1
492
- };
493
- const buildMockGroupFieldMap = (config = {}) => {
494
- var _a;
427
+ const sharedSliceVariation$1 = (config = {}) => {
495
428
  const faker = createFaker(config.seed);
496
- const configs = config.configs || {};
497
- const fields = {};
498
- for (const mockModelType in mockModelFns) {
499
- const mockModelFn = mockModelFns[mockModelType];
500
- const mockModelMapConfig = configs[mockModelType] || {};
501
- const count = (_a = mockModelMapConfig.count) != null ? _a : faker.random.arrayElement([0, 0, 0, 1]);
502
- for (let i = 0; i < count; i++) {
503
- const fieldId = generateFieldId({ seed: config.seed });
504
- fields[fieldId] = mockModelFn({
505
- seed: config.seed,
506
- ...mockModelMapConfig.config
507
- });
508
- }
429
+ let name = config.name || changeCase__namespace.capitalCase(faker.company.bsNoun());
430
+ let id = config.id || changeCase__namespace.snakeCase(name);
431
+ if (config.id && !config.name) {
432
+ name = changeCase__namespace.pascalCase(config.id);
433
+ } else if (config.name && !config.name) {
434
+ id = changeCase__namespace.snakeCase(config.name);
509
435
  }
510
- return fields;
511
- };
512
-
513
- const uid$1 = (config = {}) => {
514
- const faker = createFaker(config.seed);
515
436
  return {
516
- type: prismicT.CustomTypeModelFieldType.UID,
517
- config: {
518
- label: changeCase.capitalCase(faker.company.bsNoun()),
519
- placeholder: changeCase.sentenceCase(faker.lorem.words(3))
520
- }
521
- };
522
- };
523
-
524
- const sharedSliceChoice = () => {
525
- return {
526
- type: prismicT.CustomTypeModelSliceType.SharedSlice
437
+ id,
438
+ name,
439
+ description: faker.lorem.sentence(),
440
+ docURL: faker.internet.url(),
441
+ version: faker.git.shortSha(),
442
+ primary: config.primaryFields || {},
443
+ items: config.itemsFields || {}
527
444
  };
528
445
  };
529
446
 
530
447
  const slice$1 = (config = {}) => {
531
- var _a, _b, _c, _d, _e, _f;
532
448
  const faker = createFaker(config.seed);
533
449
  return {
534
- type: prismicT.CustomTypeModelSliceType.Slice,
535
- icon: changeCase.snakeCase(faker.company.bsNoun()),
536
- display: faker.datatype.boolean() ? prismicT.CustomTypeModelSliceDisplay.Grid : prismicT.CustomTypeModelSliceDisplay.List,
537
- fieldset: changeCase.capitalCase(faker.lorem.words()),
450
+ type: prismicT__namespace.CustomTypeModelSliceType.Slice,
451
+ icon: changeCase__namespace.snakeCase(faker.company.bsNoun()),
452
+ display: faker.datatype.boolean() ? prismicT__namespace.CustomTypeModelSliceDisplay.Grid : prismicT__namespace.CustomTypeModelSliceDisplay.List,
453
+ fieldset: changeCase__namespace.capitalCase(faker.lorem.words()),
538
454
  description: faker.lorem.sentence(),
539
- repeat: buildMockGroupFieldMap({
540
- seed: (_b = (_a = config.repeatFieldConfig) == null ? void 0 : _a.seed) != null ? _b : config.seed,
541
- configs: (_c = config.repeatFieldConfig) == null ? void 0 : _c.configs
542
- }),
543
- "non-repeat": buildMockGroupFieldMap({
544
- seed: (_e = (_d = config.nonRepeatFieldConfig) == null ? void 0 : _d.seed) != null ? _e : config.seed,
545
- configs: (_f = config.nonRepeatFieldConfig) == null ? void 0 : _f.configs
546
- })
455
+ repeat: config.repeatFields || {},
456
+ "non-repeat": config.nonRepeatFields || {}
547
457
  };
548
458
  };
549
459
 
550
460
  const sliceZone$1 = (config = {}) => {
551
- var _a;
552
- const faker = createFaker(config.seed);
553
- const choicesCount = (_a = config.choicesCount) != null ? _a : faker.datatype.number({ min: 2, max: 6 });
554
- const choices = {};
555
- for (let i = 0; i < choicesCount; i++) {
556
- const choiceId = generateFieldId({ seed: config.seed });
557
- choices[choiceId] = config.withSharedSlices ? sharedSliceChoice() : slice$1({ seed: config.seed });
558
- }
559
461
  const labels = {};
560
- if (!config.withSharedSlices) {
561
- for (const choiceId in choices) {
562
- const labelsCount = faker.datatype.number({ min: 0, max: 3 });
563
- labels[choiceId] = Array(labelsCount).fill(void 0).map(() => ({
564
- name: changeCase.capitalCase(faker.company.bsNoun()),
565
- display: faker.datatype.boolean() ? prismicT.CustomTypeModelSliceDisplay.Grid : prismicT.CustomTypeModelSliceDisplay.List
566
- }));
462
+ for (const choiceId in config.choices) {
463
+ const choice = config.choices[choiceId];
464
+ if (choice.type === prismicT__namespace.CustomTypeModelSliceType.Slice) {
465
+ labels[choiceId] = [];
567
466
  }
568
467
  }
569
468
  return {
570
- type: prismicT.CustomTypeModelFieldType.Slices,
469
+ type: prismicT__namespace.CustomTypeModelFieldType.Slices,
571
470
  fieldset: "Slice zone",
572
471
  config: {
573
472
  labels,
574
- choices
473
+ choices: config.choices || {}
575
474
  }
576
475
  };
577
476
  };
578
477
 
579
- const customType$1 = (config = {}) => {
580
- var _a;
581
- const faker = createFaker(config.seed);
582
- const tabsCount = (_a = config.tabsCount) != null ? _a : faker.datatype.number({ min: 1, max: 3 });
583
- const json = {};
584
- for (let i = 0; i < tabsCount; i++) {
585
- const tabName = changeCase.capitalCase(faker.company.bsNoun());
586
- const tabFields = buildMockGroupFieldMap({
587
- seed: config.seed,
588
- configs: config.configs
589
- });
590
- if (i === 0 && config.withUID) {
591
- const fieldId = generateFieldId({ seed: config.seed });
592
- tabFields[fieldId] = uid$1();
593
- }
594
- if (config.withSliceZones) {
595
- const sliceZoneId = generateFieldId({ seed: config.seed });
596
- tabFields[sliceZoneId] = sliceZone$1({
597
- withSharedSlices: config.withSharedSlices
598
- });
599
- }
600
- json[tabName] = tabFields;
601
- }
602
- const id = generateCustomTypeId({ seed: config.seed });
603
- return {
604
- id,
605
- label: changeCase.capitalCase(id),
606
- status: faker.datatype.boolean(),
607
- repeatable: faker.datatype.boolean(),
608
- json
609
- };
610
- };
611
-
612
- const group$1 = (config = {}) => {
478
+ const title$1 = (config = {}) => {
613
479
  const faker = createFaker(config.seed);
614
- const fields = buildMockGroupFieldMap({
615
- seed: config.seed,
616
- configs: config.configs
617
- });
480
+ const single = faker.random.arrayElements([
481
+ "heading1",
482
+ "heading2",
483
+ "heading3",
484
+ "heading4",
485
+ "heading5",
486
+ "heading6"
487
+ ]).join(",");
618
488
  return {
619
- type: prismicT.CustomTypeModelFieldType.Group,
489
+ type: prismicT__namespace.CustomTypeModelFieldType.StructuredText,
620
490
  config: {
621
- label: changeCase.capitalCase(faker.company.bsNoun()),
622
- fields
491
+ label: changeCase__namespace.capitalCase(faker.company.bsNoun()),
492
+ placeholder: changeCase__namespace.sentenceCase(faker.lorem.words(3)),
493
+ single,
494
+ allowTargetBlank: faker.datatype.boolean() ? true : void 0
623
495
  }
624
496
  };
625
497
  };
626
498
 
627
- const sharedSliceVariation$1 = (config = {}) => {
628
- var _a, _b, _c, _d, _e, _f;
629
- const faker = createFaker(config.seed);
630
- const name = changeCase.capitalCase(faker.company.bsNoun());
631
- return {
632
- id: changeCase.snakeCase(name),
633
- name,
634
- description: faker.lorem.sentence(),
635
- docURL: faker.internet.url(),
636
- version: faker.git.shortSha(),
637
- primary: buildMockGroupFieldMap({
638
- seed: (_b = (_a = config.primaryFieldConfig) == null ? void 0 : _a.seed) != null ? _b : config.seed,
639
- configs: (_c = config.primaryFieldConfig) == null ? void 0 : _c.configs
640
- }),
641
- items: buildMockGroupFieldMap({
642
- seed: (_e = (_d = config.itemsFieldConfig) == null ? void 0 : _d.seed) != null ? _e : config.seed,
643
- configs: (_f = config.itemsFieldConfig) == null ? void 0 : _f.configs
644
- })
645
- };
646
- };
647
-
648
- const sharedSlice$1 = (config = {}) => {
649
- var _a;
499
+ const generateFieldId = (config) => {
650
500
  const faker = createFaker(config.seed);
651
- const variationsCount = (_a = config.variationsCount) != null ? _a : faker.datatype.number({ min: 1, max: 3 });
652
- const name = changeCase.capitalCase(faker.company.bsNoun());
653
- const variations = Array(variationsCount).fill(void 0).map(() => sharedSliceVariation$1({
654
- seed: config.seed,
655
- itemsFieldConfig: config.itemsFieldConfig,
656
- primaryFieldConfig: config.primaryFieldConfig
657
- }));
658
- return {
659
- type: prismicT.CustomTypeModelSliceType.SharedSlice,
660
- id: changeCase.snakeCase(name),
661
- name,
662
- description: faker.lorem.sentence(),
663
- variations
664
- };
501
+ return changeCase__namespace.snakeCase(faker.lorem.words(faker.datatype.number({ min: 1, max: 3 })));
665
502
  };
666
503
 
667
504
  const timestamp = (config = {}) => {
668
505
  const faker = createFaker(config.seed);
669
506
  const after = config.after || faker.date.past(20, new Date("2021-03-07")).toISOString().split("T")[0];
670
507
  const before = config.before || faker.date.future(20, new Date("2021-03-07")).toISOString().split("T")[0];
671
- return faker.date.between(after, before).toISOString();
508
+ return config.state === "empty" ? null : faker.date.between(after, before).toISOString();
509
+ };
510
+
511
+ const buildAlternativeLanguage = (config) => {
512
+ return {
513
+ id: config.document.id,
514
+ type: config.document.type,
515
+ lang: config.document.lang,
516
+ uid: config.document.uid || void 0
517
+ };
672
518
  };
673
519
 
674
520
  const customType = (config = {}) => {
521
+ var _a;
675
522
  const faker = createFaker(config.seed);
676
523
  const model = config.model || customType$1({ seed: config.seed });
677
524
  const fieldModelsMap = Object.assign({}, ...Object.values(model.json));
678
- const hasUID = Object.values(fieldModelsMap).some((fieldModel) => fieldModel.type === prismicT.CustomTypeModelFieldType.UID);
525
+ const dataFieldModelsMap = {};
526
+ for (const key in fieldModelsMap) {
527
+ const fieldModel = fieldModelsMap[key];
528
+ if (fieldModel.type !== prismicT__namespace.CustomTypeModelFieldType.UID) {
529
+ dataFieldModelsMap[key] = fieldModel;
530
+ }
531
+ }
532
+ const hasUID = Object.values(fieldModelsMap).some((fieldModel) => fieldModel.type === prismicT__namespace.CustomTypeModelFieldType.UID);
533
+ const withURL = (_a = config.withURL) != null ? _a : true;
534
+ const alternateLanguages = (config.alternateLanguages || []).map((alternateLanguageDocument) => buildAlternativeLanguage({
535
+ document: alternateLanguageDocument
536
+ }));
679
537
  return {
680
538
  type: model.id,
681
539
  id: faker.git.shortSha(),
682
- uid: hasUID ? changeCase.snakeCase(faker.lorem.words(2)) : null,
683
- url: faker.internet.url(),
540
+ uid: hasUID ? changeCase__namespace.snakeCase(faker.lorem.words(2)) : null,
541
+ url: withURL ? faker.internet.url() : null,
684
542
  href: faker.internet.url(),
685
543
  lang: faker.lorem.word(),
686
544
  tags: generateTags({ seed: config.seed }),
687
545
  slugs: [],
688
546
  linked_documents: [],
689
- alternate_languages: [],
547
+ alternate_languages: alternateLanguages,
690
548
  first_publication_date: timestamp({ seed: config.seed }),
691
549
  last_publication_date: timestamp({ seed: config.seed }),
692
550
  data: valueForModelMap({
693
551
  seed: config.seed,
694
- map: fieldModelsMap,
552
+ map: dataFieldModelsMap,
695
553
  configs: config.configs
696
554
  })
697
555
  };
@@ -699,12 +557,12 @@ const customType = (config = {}) => {
699
557
 
700
558
  const color = (config = {}) => {
701
559
  const faker = createFaker(config.seed);
702
- return faker.internet.color().toUpperCase();
560
+ return config.state === "empty" ? null : faker.internet.color().toUpperCase();
703
561
  };
704
562
 
705
563
  const buildContentRelationshipField = (config) => {
706
564
  return {
707
- link_type: prismicT.LinkType.Document,
565
+ link_type: prismicT__namespace.LinkType.Document,
708
566
  id: config.document.id,
709
567
  uid: config.document.uid || void 0,
710
568
  type: config.document.type,
@@ -716,11 +574,18 @@ const buildContentRelationshipField = (config) => {
716
574
  };
717
575
  };
718
576
 
577
+ const generateCustomTypeId = (config) => {
578
+ const faker = createFaker(config.seed);
579
+ return changeCase__namespace.snakeCase(faker.company.bsNoun());
580
+ };
581
+
719
582
  const contentRelationship = (config = {}) => {
720
- var _a;
721
583
  const faker = createFaker(config.seed);
722
- const isFilled = (_a = config.isFilled) != null ? _a : true;
723
- if (isFilled) {
584
+ if (config.state === "empty") {
585
+ return {
586
+ link_type: prismicT__namespace.LinkType.Document
587
+ };
588
+ } else {
724
589
  const model = config.model || contentRelationship$1({ seed: config.seed });
725
590
  const linkableDocuments = config.linkableDocuments ? config.linkableDocuments.filter((document2) => {
726
591
  let shouldKeep = true;
@@ -742,29 +607,28 @@ const contentRelationship = (config = {}) => {
742
607
  if (!document) {
743
608
  throw new Error("A linkable document could not be found.");
744
609
  }
745
- return buildContentRelationshipField({ document });
746
- } else {
747
- return {
748
- link_type: prismicT.LinkType.Document
749
- };
610
+ return buildContentRelationshipField({
611
+ document
612
+ });
750
613
  }
751
614
  };
752
615
 
753
616
  const date = (config = {}) => {
754
- return timestamp({
617
+ return config.state === "empty" ? null : timestamp({
755
618
  seed: config.seed,
756
619
  after: config.after,
757
- before: config.before
620
+ before: config.before,
621
+ state: "filled"
758
622
  }).split("T")[0];
759
623
  };
760
624
 
761
625
  const buildEmbedField = (config) => {
762
626
  const faker = createFaker(config.seed);
763
627
  return {
764
- type: faker.datatype.boolean() ? prismicT.EmbedType.Link : prismicT.EmbedType.Rich,
628
+ type: faker.datatype.boolean() ? prismicT__namespace.EmbedType.Link : prismicT__namespace.EmbedType.Rich,
765
629
  url: config.embedData.url,
766
630
  html: config.embedData.html,
767
- title: changeCase.capitalCase(faker.lorem.words(3)),
631
+ title: changeCase__namespace.capitalCase(faker.lorem.words(3)),
768
632
  version: faker.datatype.number({ min: 1, max: 3, precision: 10 }).toString(),
769
633
  cache_age: faker.datatype.number(),
770
634
  embed_url: config.embedData.embed_url,
@@ -844,40 +708,25 @@ const getMockEmbedData = (config) => {
844
708
 
845
709
  const embed$1 = (config = {}) => {
846
710
  const embedData = getMockEmbedData({ seed: config.seed });
847
- return buildEmbedField({ seed: config.seed, embedData });
711
+ return config.state === "empty" ? {} : buildEmbedField({ seed: config.seed, embedData });
848
712
  };
849
713
 
850
714
  const geoPoint = (config = {}) => {
851
715
  const faker = createFaker(config.seed);
852
716
  const coordinates = faker.address.nearbyGPSCoordinate();
853
- return {
717
+ return config.state === "empty" ? {} : {
854
718
  longitude: Number.parseFloat(coordinates[0]),
855
719
  latitude: Number.parseFloat(coordinates[1])
856
720
  };
857
721
  };
858
722
 
859
- const patterns$9 = {
860
- short: {
861
- minItems: 1,
862
- maxItems: 3
863
- },
864
- medium: {
865
- minItems: 3,
866
- maxItems: 6
867
- },
868
- long: {
869
- minItems: 6,
870
- maxItems: 12
871
- }
872
- };
873
723
  const group = (config = {}) => {
724
+ var _a;
874
725
  const faker = createFaker(config.seed);
875
726
  const model = config.model || group$1({ seed: config.seed });
876
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$9));
877
- const pattern = patterns$9[patternKey];
878
- const itemsCount = faker.datatype.number({
879
- min: pattern.minItems,
880
- max: pattern.maxItems
727
+ const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
728
+ min: 1,
729
+ max: 6
881
730
  });
882
731
  return Array(itemsCount).fill(void 0).map(() => {
883
732
  return valueForModelMap({
@@ -888,23 +737,32 @@ const group = (config = {}) => {
888
737
  });
889
738
  };
890
739
 
891
- const buildImageField = (config) => {
740
+ const buildImageFieldImage = (config) => {
892
741
  var _a, _b, _c, _d;
893
- const faker = createFaker(config.seed);
894
- const url = new URL(config.imageData.url);
895
- const dimensions = {
896
- width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
897
- height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
898
- };
899
- url.searchParams.set("w", dimensions.width.toString());
900
- url.searchParams.set("h", dimensions.height.toString());
901
- url.searchParams.set("fit", "crop");
902
- return {
903
- url: url.toString(),
904
- dimensions,
905
- alt: faker.lorem.sentence(),
906
- copyright: faker.lorem.sentence()
907
- };
742
+ if (config.state === "empty") {
743
+ return {
744
+ url: null,
745
+ dimensions: null,
746
+ alt: null,
747
+ copyright: null
748
+ };
749
+ } else {
750
+ const faker = createFaker(config.seed);
751
+ const url = new URL(config.imageData.url);
752
+ const dimensions = {
753
+ width: (_b = (_a = config.constraint) == null ? void 0 : _a.width) != null ? _b : config.imageData.width,
754
+ height: (_d = (_c = config.constraint) == null ? void 0 : _c.height) != null ? _d : config.imageData.height
755
+ };
756
+ url.searchParams.set("w", dimensions.width.toString());
757
+ url.searchParams.set("h", dimensions.height.toString());
758
+ url.searchParams.set("fit", "crop");
759
+ return {
760
+ url: url.toString(),
761
+ dimensions,
762
+ alt: faker.lorem.sentence(),
763
+ copyright: faker.lorem.sentence()
764
+ };
765
+ }
908
766
  };
909
767
 
910
768
  const dataSet = [
@@ -997,19 +855,21 @@ const getMockImageData = (config) => {
997
855
  const image$1 = (config = {}) => {
998
856
  const model = config.model || image$2({ seed: config.seed });
999
857
  const imageData = getMockImageData({ seed: config.seed });
1000
- const value = buildImageField({
858
+ const value = buildImageFieldImage({
1001
859
  seed: config.seed,
1002
860
  imageData,
1003
- constraint: model.config.constraint
861
+ constraint: model.config.constraint,
862
+ state: config.state
1004
863
  });
1005
864
  for (const thumbnail of model.config.thumbnails) {
1006
- value[thumbnail.name] = buildImageField({
865
+ value[thumbnail.name] = buildImageFieldImage({
1007
866
  seed: config.seed,
1008
867
  imageData,
1009
868
  constraint: {
1010
869
  width: thumbnail.width,
1011
870
  height: thumbnail.height
1012
- }
871
+ },
872
+ state: config.state
1013
873
  });
1014
874
  }
1015
875
  return value;
@@ -1018,9 +878,9 @@ const image$1 = (config = {}) => {
1018
878
  const integrationFields = (config = {}) => {
1019
879
  const faker = createFaker(config.seed);
1020
880
  const imageData = getMockImageData({ seed: config.seed });
1021
- return {
881
+ return config.state === "empty" ? null : {
1022
882
  id: faker.git.shortSha(),
1023
- title: changeCase.capitalCase(faker.lorem.words(3)),
883
+ title: changeCase__namespace.capitalCase(faker.lorem.words(3)),
1024
884
  description: faker.lorem.sentence(),
1025
885
  image_url: imageData.url,
1026
886
  last_update: faker.date.past(20, new Date("2021-03-07")).getTime(),
@@ -1030,16 +890,18 @@ const integrationFields = (config = {}) => {
1030
890
 
1031
891
  const keyText = (config = {}) => {
1032
892
  const faker = createFaker(config.seed);
1033
- return changeCase.sentenceCase(faker.lorem.words(3));
893
+ return config.state === "empty" ? null : changeCase__namespace.sentenceCase(faker.lorem.words(3));
1034
894
  };
1035
895
 
1036
896
  const linkToMedia = (config = {}) => {
1037
- var _a;
1038
897
  const faker = createFaker(config.seed);
1039
- const isFilled = (_a = config.isFilled) != null ? _a : true;
1040
- if (isFilled) {
898
+ if (config.state === "empty") {
899
+ return {
900
+ link_type: prismicT__namespace.LinkType.Media
901
+ };
902
+ } else {
1041
903
  return {
1042
- link_type: prismicT.LinkType.Media,
904
+ link_type: prismicT__namespace.LinkType.Media,
1043
905
  name: faker.system.commonFileName(),
1044
906
  kind: faker.system.commonFileType(),
1045
907
  url: faker.internet.url(),
@@ -1047,58 +909,55 @@ const linkToMedia = (config = {}) => {
1047
909
  height: faker.datatype.number().toString(),
1048
910
  width: faker.datatype.number().toString()
1049
911
  };
1050
- } else {
1051
- return {
1052
- link_type: prismicT.LinkType.Media
1053
- };
1054
912
  }
1055
913
  };
1056
914
 
1057
915
  const link = (config = {}) => {
1058
- var _a, _b;
916
+ var _a;
1059
917
  const faker = createFaker(config.seed);
1060
- const isFilled = (_a = config.isFilled) != null ? _a : true;
1061
918
  const type = config.type || faker.random.arrayElement([
1062
- prismicT.LinkType.Web,
1063
- prismicT.LinkType.Document,
1064
- prismicT.LinkType.Media
919
+ prismicT__namespace.LinkType.Web,
920
+ prismicT__namespace.LinkType.Document,
921
+ prismicT__namespace.LinkType.Media
1065
922
  ]);
1066
- if (isFilled) {
923
+ if (config.state === "empty") {
924
+ return {
925
+ link_type: type
926
+ };
927
+ } else {
1067
928
  switch (type) {
1068
- case prismicT.LinkType.Document: {
929
+ case prismicT__namespace.LinkType.Document: {
1069
930
  return contentRelationship({
1070
931
  seed: config.seed,
1071
- isFilled,
932
+ state: config.state,
1072
933
  linkableDocuments: config.linkableDocuments
1073
934
  });
1074
935
  }
1075
- case prismicT.LinkType.Media: {
936
+ case prismicT__namespace.LinkType.Media: {
1076
937
  return linkToMedia({
1077
938
  seed: config.seed,
1078
- isFilled
939
+ state: config.state
1079
940
  });
1080
941
  }
1081
- case prismicT.LinkType.Web: {
942
+ case prismicT__namespace.LinkType.Web:
943
+ default: {
1082
944
  const model = config.model || link$1({ seed: config.seed });
1083
945
  return {
1084
- link_type: prismicT.LinkType.Web,
946
+ link_type: prismicT__namespace.LinkType.Web,
1085
947
  url: faker.internet.url(),
1086
- target: ((_b = config.withTargetBlank) != null ? _b : model.config.allowTargetBlank && faker.datatype.boolean()) ? "_blank" : void 0
948
+ target: ((_a = config.withTargetBlank) != null ? _a : model.config.allowTargetBlank && faker.datatype.boolean()) ? "_blank" : void 0
1087
949
  };
1088
950
  }
1089
951
  }
1090
952
  }
1091
- return {
1092
- link_type: type
1093
- };
1094
953
  };
1095
954
 
1096
955
  const number = (config = {}) => {
1097
956
  const faker = createFaker(config.seed);
1098
- return faker.datatype.number();
957
+ return config.state === "empty" ? null : faker.datatype.number();
1099
958
  };
1100
959
 
1101
- const patterns$8 = {
960
+ const patterns$5 = {
1102
961
  short: {
1103
962
  minWords: 1,
1104
963
  maxWords: 3
@@ -1116,20 +975,20 @@ const heading = (config = {}) => {
1116
975
  const faker = createFaker(config.seed);
1117
976
  const model = config.model || title$1({ seed: config.seed });
1118
977
  const types = ("single" in model.config ? model.config.single : model.config.multi).split(",").filter((type2) => [
1119
- prismicT.RichTextNodeType.heading1,
1120
- prismicT.RichTextNodeType.heading2,
1121
- prismicT.RichTextNodeType.heading3,
1122
- prismicT.RichTextNodeType.heading4,
1123
- prismicT.RichTextNodeType.heading5,
1124
- prismicT.RichTextNodeType.heading6
978
+ prismicT__namespace.RichTextNodeType.heading1,
979
+ prismicT__namespace.RichTextNodeType.heading2,
980
+ prismicT__namespace.RichTextNodeType.heading3,
981
+ prismicT__namespace.RichTextNodeType.heading4,
982
+ prismicT__namespace.RichTextNodeType.heading5,
983
+ prismicT__namespace.RichTextNodeType.heading6
1125
984
  ].includes(type2));
1126
985
  const type = faker.random.arrayElement(types);
1127
986
  if (type) {
1128
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$8));
1129
- const pattern = patterns$8[patternKey];
987
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$5));
988
+ const pattern = patterns$5[patternKey];
1130
989
  return {
1131
990
  type,
1132
- text: changeCase.capitalCase(faker.lorem.words(faker.datatype.number({
991
+ text: changeCase__namespace.capitalCase(faker.lorem.words(faker.datatype.number({
1133
992
  min: pattern.minWords,
1134
993
  max: pattern.maxWords
1135
994
  }))),
@@ -1140,7 +999,7 @@ const heading = (config = {}) => {
1140
999
  }
1141
1000
  };
1142
1001
 
1143
- const patterns$7 = {
1002
+ const patterns$4 = {
1144
1003
  short: {
1145
1004
  sentenceCount: 2
1146
1005
  },
@@ -1153,16 +1012,16 @@ const patterns$7 = {
1153
1012
  };
1154
1013
  const paragraph = (config = {}) => {
1155
1014
  const faker = createFaker(config.seed);
1156
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$7));
1157
- const pattern = patterns$7[patternKey];
1015
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$4));
1016
+ const pattern = patterns$4[patternKey];
1158
1017
  return {
1159
- type: prismicT.RichTextNodeType.paragraph,
1018
+ type: prismicT__namespace.RichTextNodeType.paragraph,
1160
1019
  text: faker.lorem.paragraph(pattern.sentenceCount),
1161
1020
  spans: []
1162
1021
  };
1163
1022
  };
1164
1023
 
1165
- const patterns$6 = {
1024
+ const patterns$3 = {
1166
1025
  short: {
1167
1026
  sentenceCount: 2
1168
1027
  },
@@ -1175,16 +1034,16 @@ const patterns$6 = {
1175
1034
  };
1176
1035
  const preformatted = (config = {}) => {
1177
1036
  const faker = createFaker(config.seed);
1178
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$6));
1179
- const pattern = patterns$6[patternKey];
1037
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$3));
1038
+ const pattern = patterns$3[patternKey];
1180
1039
  return {
1181
- type: prismicT.RichTextNodeType.preformatted,
1040
+ type: prismicT__namespace.RichTextNodeType.preformatted,
1182
1041
  text: faker.lorem.paragraph(pattern.sentenceCount),
1183
1042
  spans: []
1184
1043
  };
1185
1044
  };
1186
1045
 
1187
- const patterns$5 = {
1046
+ const patterns$2 = {
1188
1047
  short: {
1189
1048
  minItems: 1,
1190
1049
  maxItems: 3
@@ -1200,22 +1059,22 @@ const patterns$5 = {
1200
1059
  };
1201
1060
  const list = (config = {}) => {
1202
1061
  const faker = createFaker(config.seed);
1203
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$5));
1204
- const pattern = patterns$5[patternKey];
1062
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$2));
1063
+ const pattern = patterns$2[patternKey];
1205
1064
  const itemsCount = faker.datatype.number({
1206
1065
  min: pattern.minItems,
1207
1066
  max: pattern.maxItems
1208
1067
  });
1209
1068
  return Array(itemsCount).fill(void 0).map(() => {
1210
1069
  return {
1211
- type: prismicT.RichTextNodeType.listItem,
1070
+ type: prismicT__namespace.RichTextNodeType.listItem,
1212
1071
  text: faker.lorem.sentence(),
1213
1072
  spans: []
1214
1073
  };
1215
1074
  });
1216
1075
  };
1217
1076
 
1218
- const patterns$4 = {
1077
+ const patterns$1 = {
1219
1078
  short: {
1220
1079
  minItems: 1,
1221
1080
  maxItems: 3
@@ -1231,15 +1090,15 @@ const patterns$4 = {
1231
1090
  };
1232
1091
  const oList = (config = {}) => {
1233
1092
  const faker = createFaker(config.seed);
1234
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$4));
1235
- const pattern = patterns$4[patternKey];
1093
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$1));
1094
+ const pattern = patterns$1[patternKey];
1236
1095
  const itemsCount = faker.datatype.number({
1237
1096
  min: pattern.minItems,
1238
1097
  max: pattern.maxItems
1239
1098
  });
1240
1099
  return Array(itemsCount).fill(void 0).map(() => {
1241
1100
  return {
1242
- type: prismicT.RichTextNodeType.oListItem,
1101
+ type: prismicT__namespace.RichTextNodeType.oListItem,
1243
1102
  text: faker.lorem.sentence(),
1244
1103
  spans: []
1245
1104
  };
@@ -1248,9 +1107,13 @@ const oList = (config = {}) => {
1248
1107
 
1249
1108
  const image = (config = {}) => {
1250
1109
  const imageData = getMockImageData({ seed: config.seed });
1251
- const imageField = buildImageField({ seed: config.seed, imageData });
1110
+ const imageField = buildImageFieldImage({
1111
+ seed: config.seed,
1112
+ imageData,
1113
+ state: false
1114
+ });
1252
1115
  return {
1253
- type: prismicT.RichTextNodeType.image,
1116
+ type: prismicT__namespace.RichTextNodeType.image,
1254
1117
  alt: imageField.alt,
1255
1118
  url: imageField.url,
1256
1119
  copyright: imageField.copyright,
@@ -1262,12 +1125,12 @@ const embed = (config = {}) => {
1262
1125
  const embedData = getMockEmbedData({ seed: config.seed });
1263
1126
  const embedField = buildEmbedField({ seed: config.seed, embedData });
1264
1127
  return {
1265
- type: prismicT.RichTextNodeType.embed,
1128
+ type: prismicT__namespace.RichTextNodeType.embed,
1266
1129
  oembed: embedField
1267
1130
  };
1268
1131
  };
1269
1132
 
1270
- const patterns$3 = {
1133
+ const patterns = {
1271
1134
  short: {
1272
1135
  blockCountMin: 1,
1273
1136
  blockCountMax: 2
@@ -1282,18 +1145,18 @@ const patterns$3 = {
1282
1145
  }
1283
1146
  };
1284
1147
  const generators = {
1285
- [prismicT.RichTextNodeType.heading1]: heading,
1286
- [prismicT.RichTextNodeType.heading2]: heading,
1287
- [prismicT.RichTextNodeType.heading3]: heading,
1288
- [prismicT.RichTextNodeType.heading4]: heading,
1289
- [prismicT.RichTextNodeType.heading5]: heading,
1290
- [prismicT.RichTextNodeType.heading6]: heading,
1291
- [prismicT.RichTextNodeType.paragraph]: paragraph,
1292
- [prismicT.RichTextNodeType.preformatted]: preformatted,
1293
- [prismicT.RichTextNodeType.listItem]: list,
1294
- [prismicT.RichTextNodeType.oListItem]: oList,
1295
- [prismicT.RichTextNodeType.image]: image,
1296
- [prismicT.RichTextNodeType.embed]: embed
1148
+ [prismicT__namespace.RichTextNodeType.heading1]: heading,
1149
+ [prismicT__namespace.RichTextNodeType.heading2]: heading,
1150
+ [prismicT__namespace.RichTextNodeType.heading3]: heading,
1151
+ [prismicT__namespace.RichTextNodeType.heading4]: heading,
1152
+ [prismicT__namespace.RichTextNodeType.heading5]: heading,
1153
+ [prismicT__namespace.RichTextNodeType.heading6]: heading,
1154
+ [prismicT__namespace.RichTextNodeType.paragraph]: paragraph,
1155
+ [prismicT__namespace.RichTextNodeType.preformatted]: preformatted,
1156
+ [prismicT__namespace.RichTextNodeType.listItem]: list,
1157
+ [prismicT__namespace.RichTextNodeType.oListItem]: oList,
1158
+ [prismicT__namespace.RichTextNodeType.image]: image,
1159
+ [prismicT__namespace.RichTextNodeType.embed]: embed
1297
1160
  };
1298
1161
  const richText = (config = {}) => {
1299
1162
  const faker = createFaker(config.seed);
@@ -1304,8 +1167,8 @@ const richText = (config = {}) => {
1304
1167
  const supportsMultipleBlocks = "multi" in model.config;
1305
1168
  const types = ("multi" in model.config ? model.config.multi : model.config.single).split(",").filter((type) => Object.keys(generators).includes(type));
1306
1169
  if (types.length > 0) {
1307
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$3));
1308
- const pattern = patterns$3[patternKey];
1170
+ const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns));
1171
+ const pattern = patterns[patternKey];
1309
1172
  const blockCount = supportsMultipleBlocks ? faker.datatype.number({
1310
1173
  min: pattern.blockCountMin,
1311
1174
  max: pattern.blockCountMax
@@ -1324,38 +1187,22 @@ const select = (config = {}) => {
1324
1187
  const faker = createFaker(config.seed);
1325
1188
  const model = config.model || select$1({ seed: config.seed });
1326
1189
  const defaultValue = model.config.default_value;
1327
- return typeof defaultValue === "string" && faker.datatype.boolean() ? defaultValue : faker.random.arrayElement(model.config.options);
1328
- };
1329
-
1330
- const patterns$2 = {
1331
- none: {
1332
- minItems: 0,
1333
- maxItems: 0
1334
- },
1335
- short: {
1336
- minItems: 1,
1337
- maxItems: 3
1338
- },
1339
- medium: {
1340
- minItems: 3,
1341
- maxItems: 6
1342
- },
1343
- long: {
1344
- minItems: 6,
1345
- maxItems: 12
1190
+ if (config.state === "empty") {
1191
+ return null;
1192
+ } else {
1193
+ return typeof defaultValue === "string" && faker.datatype.boolean() ? defaultValue : faker.random.arrayElement(model.config.options);
1346
1194
  }
1347
1195
  };
1196
+
1348
1197
  const slice = (config = {}) => {
1349
- var _a;
1198
+ var _a, _b;
1350
1199
  const faker = createFaker(config.seed);
1351
1200
  const model = config.model || slice$1({ seed: config.seed });
1352
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$2));
1353
- const pattern = patterns$2[patternKey];
1354
1201
  const sliceType = (_a = config.type) != null ? _a : generateFieldId({ seed: config.seed });
1355
- const sliceLabel = config.label !== void 0 ? config.label : changeCase.capitalCase(faker.company.bsNoun());
1356
- const itemsCount = Object.keys(model.repeat).length > 0 ? faker.datatype.number({
1357
- min: pattern.minItems,
1358
- max: pattern.maxItems
1202
+ const sliceLabel = config.label !== void 0 ? config.label : changeCase__namespace.capitalCase(faker.company.bsNoun());
1203
+ const itemsCount = Object.keys(model.repeat).length > 0 ? (_b = config.itemsCount) != null ? _b : faker.datatype.number({
1204
+ min: 1,
1205
+ max: 6
1359
1206
  }) : 0;
1360
1207
  return {
1361
1208
  slice_type: sliceType,
@@ -1375,39 +1222,18 @@ const slice = (config = {}) => {
1375
1222
  };
1376
1223
  };
1377
1224
 
1378
- const patterns$1 = {
1379
- none: {
1380
- minItems: 0,
1381
- maxItems: 0
1382
- },
1383
- short: {
1384
- minItems: 1,
1385
- maxItems: 3
1386
- },
1387
- medium: {
1388
- minItems: 3,
1389
- maxItems: 6
1390
- },
1391
- long: {
1392
- minItems: 6,
1393
- maxItems: 12
1394
- }
1395
- };
1396
1225
  const sharedSliceVariation = (config = {}) => {
1397
1226
  var _a, _b;
1398
1227
  const faker = createFaker(config.seed);
1399
1228
  const model = config.model || sharedSliceVariation$1({ seed: config.seed });
1400
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns$1));
1401
- const pattern = patterns$1[patternKey];
1402
1229
  const sliceType = (_a = config.type) != null ? _a : generateFieldId({ seed: config.seed });
1403
- const sliceLabel = (_b = config.label) != null ? _b : changeCase.capitalCase(faker.company.bsNoun());
1404
- const itemsCount = Object.keys(model.items).length > 0 ? faker.datatype.number({
1405
- min: pattern.minItems,
1406
- max: pattern.maxItems
1230
+ const itemsCount = Object.keys(model.items).length > 0 ? (_b = config.itemsCount) != null ? _b : faker.datatype.number({
1231
+ min: 1,
1232
+ max: 6
1407
1233
  }) : 0;
1408
1234
  return {
1409
1235
  slice_type: sliceType,
1410
- slice_label: sliceLabel,
1236
+ slice_label: null,
1411
1237
  variation: model.id,
1412
1238
  version: faker.git.shortSha(),
1413
1239
  primary: valueForModelMap({
@@ -1432,66 +1258,55 @@ const sharedSlice = (config = {}) => {
1432
1258
  return sharedSliceVariation({
1433
1259
  seed: config.seed,
1434
1260
  model: variationModel,
1435
- pattern: config.pattern,
1261
+ itemsCount: config.itemsCount,
1436
1262
  type: model.id,
1437
1263
  primaryFieldConfigs: config.primaryFieldConfigs,
1438
1264
  itemsFieldConfigs: config.itemsFieldConfigs
1439
1265
  });
1440
1266
  };
1441
1267
 
1442
- const patterns = {
1443
- short: {
1444
- minItems: 1,
1445
- maxItems: 3
1446
- },
1447
- medium: {
1448
- minItems: 3,
1449
- maxItems: 6
1450
- },
1451
- long: {
1452
- minItems: 6,
1453
- maxItems: 12
1454
- }
1455
- };
1456
1268
  const sliceZone = (config = {}) => {
1269
+ var _a;
1457
1270
  const faker = createFaker(config.seed);
1458
1271
  const model = config.model || sliceZone$1({ seed: config.seed });
1459
- const patternKey = config.pattern || faker.random.arrayElement(Object.keys(patterns));
1460
- const pattern = patterns[patternKey];
1461
- const itemsCount = faker.datatype.number({
1462
- min: pattern.minItems,
1463
- max: pattern.maxItems
1464
- });
1465
- return Array(itemsCount).fill(void 0).map(() => {
1466
- var _a;
1467
- const choices = Object.entries(model.config.choices);
1468
- const [choiceType, choiceModel] = faker.random.arrayElement(choices);
1469
- const choiceLabels = model.config.labels[choiceType] || [];
1470
- const choiceLabel = faker.random.arrayElement(choiceLabels);
1471
- switch (choiceModel.type) {
1472
- case prismicT.CustomTypeModelSliceType.Slice: {
1473
- return slice({
1474
- seed: config.seed,
1475
- model: choiceModel,
1476
- type: choiceType,
1477
- label: choiceLabel ? choiceLabel.name : null,
1478
- primaryFieldConfigs: config.primaryFieldConfigs,
1479
- itemsFieldConfigs: config.itemsFieldConfigs
1480
- });
1481
- }
1482
- case prismicT.CustomTypeModelSliceType.SharedSlice: {
1483
- const sharedSliceModel = (_a = config.sharedSliceModels) == null ? void 0 : _a.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
1484
- if (sharedSliceModel) {
1485
- return sharedSlice({
1272
+ if (Object.keys(model.config.choices).length > 0) {
1273
+ const itemsCount = (_a = config.itemsCount) != null ? _a : faker.datatype.number({
1274
+ min: 1,
1275
+ max: 6
1276
+ });
1277
+ return Array(itemsCount).fill(void 0).map(() => {
1278
+ var _a2;
1279
+ const choices = Object.entries(model.config.choices);
1280
+ const [choiceType, choiceModel] = faker.random.arrayElement(choices);
1281
+ const choiceLabels = model.config.labels[choiceType] || [];
1282
+ const choiceLabel = faker.random.arrayElement(choiceLabels);
1283
+ switch (choiceModel.type) {
1284
+ case prismicT__namespace.CustomTypeModelSliceType.Slice: {
1285
+ return slice({
1486
1286
  seed: config.seed,
1487
- model: sharedSliceModel,
1287
+ model: choiceModel,
1288
+ type: choiceType,
1289
+ label: choiceLabel ? choiceLabel.name : null,
1488
1290
  primaryFieldConfigs: config.primaryFieldConfigs,
1489
1291
  itemsFieldConfigs: config.itemsFieldConfigs
1490
1292
  });
1491
1293
  }
1294
+ case prismicT__namespace.CustomTypeModelSliceType.SharedSlice: {
1295
+ const sharedSliceModel = (_a2 = config.sharedSliceModels) == null ? void 0 : _a2.find((sharedSliceModel2) => sharedSliceModel2.id === choiceType);
1296
+ if (sharedSliceModel) {
1297
+ return sharedSlice({
1298
+ seed: config.seed,
1299
+ model: sharedSliceModel,
1300
+ primaryFieldConfigs: config.primaryFieldConfigs,
1301
+ itemsFieldConfigs: config.itemsFieldConfigs
1302
+ });
1303
+ }
1304
+ }
1492
1305
  }
1493
- }
1494
- }).filter((slice2) => slice2 !== void 0);
1306
+ }).filter((slice2) => slice2 !== void 0);
1307
+ } else {
1308
+ return [];
1309
+ }
1495
1310
  };
1496
1311
 
1497
1312
  const title = (config = {}) => {
@@ -1506,7 +1321,31 @@ const title = (config = {}) => {
1506
1321
 
1507
1322
  const uid = (config = {}) => {
1508
1323
  const faker = createFaker(config.seed);
1509
- return changeCase.snakeCase(faker.lorem.words(2));
1510
- };
1511
-
1512
- export { boolean$1 as boolean, color, contentRelationship, customType, date, customType as document, embed$1 as embed, geoPoint, group, image$1 as image, integrationFields, keyText, link, linkToMedia, number, richText, select, sharedSlice, sharedSliceVariation, slice, sliceZone, timestamp, title, uid };
1324
+ return changeCase__namespace.snakeCase(faker.lorem.words(2));
1325
+ };
1326
+
1327
+ exports.boolean = boolean;
1328
+ exports.color = color;
1329
+ exports.contentRelationship = contentRelationship;
1330
+ exports.customType = customType;
1331
+ exports.date = date;
1332
+ exports.document = customType;
1333
+ exports.embed = embed$1;
1334
+ exports.geoPoint = geoPoint;
1335
+ exports.group = group;
1336
+ exports.image = image$1;
1337
+ exports.integrationFields = integrationFields;
1338
+ exports.keyText = keyText;
1339
+ exports.link = link;
1340
+ exports.linkToMedia = linkToMedia;
1341
+ exports.number = number;
1342
+ exports.richText = richText;
1343
+ exports.select = select;
1344
+ exports.sharedSlice = sharedSlice;
1345
+ exports.sharedSliceVariation = sharedSliceVariation;
1346
+ exports.slice = slice;
1347
+ exports.sliceZone = sliceZone;
1348
+ exports.timestamp = timestamp;
1349
+ exports.title = title;
1350
+ exports.uid = uid;
1351
+ //# sourceMappingURL=index.js.map