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