@frontastic/common 2.33.2 → 2.33.6
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.
- package/CHANGELOG.md +131 -118
- package/composer.json +1 -1
- package/package.json +1 -1
- package/src/js/frontastic-common.js +1 -1
- package/src/js/mediaApi/cloudinary.js +5 -2
- package/src/json/library/common.json +21 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,88 +1,100 @@
|
|
|
1
|
-
# common Changelog
|
|
2
1
|
|
|
3
|
-
##
|
|
2
|
+
## Version 2.33.6 (2022-05-24)
|
|
3
|
+
|
|
4
|
+
* fix: correctly fetch cloudinary URLs again
|
|
5
|
+
## Version 2.33.5 (2022-05-19)
|
|
6
|
+
|
|
7
|
+
* fix: don’t use ?? in libraries/common
|
|
8
|
+
## Version 2.33.4 (2022-05-17)
|
|
9
|
+
|
|
10
|
+
* fix: used correct format on Changelog for catwalk and common
|
|
11
|
+
## Version 2.33.3 (2022-05-12)
|
|
12
|
+
|
|
13
|
+
* Prevent enum fields without values field to exist
|
|
14
|
+
|
|
15
|
+
## Version 2.33.2 (2022-05-05)
|
|
4
16
|
|
|
5
17
|
* fix(FP-1934): Pagination previous/nextCursor set to null on count 0.
|
|
6
18
|
|
|
7
|
-
##
|
|
19
|
+
## Version 2.33.1 (2022-04-21)
|
|
8
20
|
|
|
9
21
|
* chore: re-run release process
|
|
10
22
|
|
|
11
|
-
##
|
|
23
|
+
## Version 2.33.0 (2022-04-21)
|
|
12
24
|
|
|
13
25
|
* fix: add a missing @required statements
|
|
14
26
|
* feat: enhance TypeScript map types
|
|
15
27
|
* fix: correct type hints for translatable text
|
|
16
28
|
|
|
17
|
-
##
|
|
29
|
+
## Version 2.33.0 (2022-04-21)
|
|
18
30
|
|
|
19
31
|
* fix: add a missing @required statements
|
|
20
32
|
* feat: enhance TypeScript map types
|
|
21
33
|
* fix: correct type hints for translatable text
|
|
22
34
|
|
|
23
|
-
##
|
|
35
|
+
## Version 2.32.0 (2022-04-13)
|
|
24
36
|
|
|
25
37
|
* fix: rehused cart on api test order
|
|
26
38
|
* fix: added salutaion to api test address.
|
|
27
39
|
* feat(FP-840): included cart rawApiData when placing order in Shopware
|
|
28
40
|
|
|
29
|
-
##
|
|
41
|
+
## Version 2.31.2 (2022-04-11)
|
|
30
42
|
|
|
31
43
|
* fix: Categories with same name are returned
|
|
32
44
|
|
|
33
|
-
##
|
|
45
|
+
## Version 2.31.1 (2022-04-08)
|
|
34
46
|
|
|
35
47
|
* fix: prevent bc break on commercetools CartApi
|
|
36
48
|
|
|
37
|
-
##
|
|
49
|
+
## Version 2.31.0 (2022-04-07)
|
|
38
50
|
|
|
39
51
|
* feat(FP-1794): extracted logic to validate cart status before checkout
|
|
40
52
|
|
|
41
|
-
##
|
|
53
|
+
## Version 2.30.1 (2022-04-07)
|
|
42
54
|
|
|
43
55
|
* fix(FP-1794): consider only single successful payment as payment completed
|
|
44
56
|
* fix(FP-1794): moved cart readines validation to isReadyForCheckout
|
|
45
57
|
* fix(FP-1794): validated if cart is completed
|
|
46
58
|
|
|
47
|
-
##
|
|
59
|
+
## Version 2.30.0 (2022-04-05)
|
|
48
60
|
|
|
49
61
|
* feat: allow field type dataSource in Classic as well
|
|
50
62
|
|
|
51
|
-
##
|
|
63
|
+
## Version 2.29.0 (2022-03-30)
|
|
52
64
|
|
|
53
65
|
* feat(FP-1647): included machine region map in CustomerService
|
|
54
66
|
* feat(FP-1647): implemented region selector base on customer config
|
|
55
67
|
|
|
56
|
-
##
|
|
68
|
+
## Version 2.28.2 (2022-03-29)
|
|
57
69
|
|
|
58
70
|
* fix(FP-1694): checked mapped orders on default deprecated decorator
|
|
59
71
|
|
|
60
|
-
##
|
|
72
|
+
## Version 2.28.1 (2022-03-28)
|
|
61
73
|
|
|
62
74
|
* fix(FP-1694): checked mapped orders on default decorators
|
|
63
75
|
|
|
64
|
-
##
|
|
76
|
+
## Version 2.28.0 (2022-03-22)
|
|
65
77
|
|
|
66
78
|
* refactor(FP-1122): Make logic for handling single-attribute sorting the same as multi-attribute
|
|
67
79
|
* feat(FP-1122): Add sort by custom attribute functionality to Algolia integration
|
|
68
80
|
|
|
69
|
-
##
|
|
81
|
+
## Version 2.27.1 (2022-03-17)
|
|
70
82
|
|
|
71
83
|
* fix: fix issue from studio-deployment-branch
|
|
72
84
|
|
|
73
|
-
##
|
|
85
|
+
## Version 2.27.0 (2022-03-15)
|
|
74
86
|
|
|
75
87
|
* feat(FP-1486): upgrade Shopify version to latest stable version 2022-01
|
|
76
88
|
|
|
77
|
-
##
|
|
89
|
+
## Version 2.26.0 (2022-03-10)
|
|
78
90
|
|
|
79
91
|
* feat: add GraphCMS client factory
|
|
80
92
|
|
|
81
|
-
##
|
|
93
|
+
## Version 2.25.4 (2022-03-07)
|
|
82
94
|
|
|
83
95
|
* misc: allowed ramsey/uuid library version ^4 as dependency
|
|
84
96
|
|
|
85
|
-
##
|
|
97
|
+
## Version 2.25.3 (2022-03-02)
|
|
86
98
|
|
|
87
99
|
* fix(api-hub): replace content api with dummy for nextjs projects
|
|
88
100
|
* fix(api-hub): replace wishlist api with dummy for nextjs
|
|
@@ -92,16 +104,16 @@
|
|
|
92
104
|
* fix(api-hub): add dummy for AccountApi
|
|
93
105
|
* fix(api-hub): fix syntax and add parameter to factory config
|
|
94
106
|
|
|
95
|
-
##
|
|
107
|
+
## Version 2.25.2 (2022-02-15)
|
|
96
108
|
|
|
97
109
|
* fix(FP-775): Minor refactor, import of SprykerAddress
|
|
98
110
|
* fix(FP-755): Fix Spryker address
|
|
99
111
|
|
|
100
|
-
##
|
|
112
|
+
## Version 2.25.1 (2022-01-27)
|
|
101
113
|
|
|
102
114
|
* fix: if there's no filter chosen - the error reappears
|
|
103
115
|
|
|
104
|
-
##
|
|
116
|
+
## Version 2.25.0 (2022-01-24)
|
|
105
117
|
|
|
106
118
|
* fix(FP-838): improved error handling on parse locator for Shopware
|
|
107
119
|
* feat(FP-838): prevent update email, shipping address, or billing address on Shopware CartApi
|
|
@@ -115,17 +127,17 @@
|
|
|
115
127
|
* feat(FP-838): upgrade add, update, and remove item to cart on Shopware CartApi
|
|
116
128
|
* feat(FP-838): upgrade get anonymous cart and get cart by id on Shopware
|
|
117
129
|
|
|
118
|
-
##
|
|
130
|
+
## Version 2.24.0 (2022-01-05)
|
|
119
131
|
|
|
120
132
|
* feat(FP-324): Include User-Agent Frontastic as part of API requests
|
|
121
133
|
|
|
122
|
-
##
|
|
134
|
+
## Version 2.23.0 (2021-12-16)
|
|
123
135
|
|
|
124
136
|
* feat: Created method for CustomDataSourceValidation in the CustomDataSourceService
|
|
125
137
|
* feat: Store the stream type for stream fields
|
|
126
138
|
* feat: Introduced a special field configuration for stream fields
|
|
127
139
|
|
|
128
|
-
##
|
|
140
|
+
## Version 2.22.0 (2021-12-02)
|
|
129
141
|
|
|
130
142
|
* feat(FP-1193): included rawApiImput on getProduct
|
|
131
143
|
* feat(FP-581): refresh account after update address on Shopify
|
|
@@ -134,52 +146,51 @@
|
|
|
134
146
|
* fix(FP-1193): added url schema simbols
|
|
135
147
|
* feat!(FP-1193): upgrade and fix shopify version to 2021-10
|
|
136
148
|
|
|
137
|
-
##
|
|
149
|
+
## Version 2.21.1 (2021-11-30)
|
|
138
150
|
|
|
139
151
|
* fix: make product price nullable in Algolia integration
|
|
140
152
|
|
|
141
|
-
##
|
|
153
|
+
## Version 2.21.0 (2021-10-26)
|
|
142
154
|
|
|
143
155
|
* !feat(FP-646): implemented traceability strategy adding a correlation-id to all requests and responses
|
|
144
156
|
* fix: Nested groups were not visited correctly in ConfigurationSchema.
|
|
145
157
|
|
|
146
|
-
##
|
|
158
|
+
## Version 2.20.1 (2021-10-21)
|
|
147
159
|
|
|
148
160
|
* fix: return a 400 json response on type error of dynamic pages
|
|
149
161
|
|
|
150
|
-
##
|
|
151
|
-
|
|
162
|
+
## Version 2.20.0 (2021-10-11)
|
|
152
163
|
|
|
153
164
|
* Catwalk version update
|
|
154
165
|
|
|
155
|
-
##
|
|
166
|
+
## Version 2.19.3 (2021-10-07)
|
|
156
167
|
|
|
157
168
|
* fix(api-hub): disable deprecation notice in prod
|
|
158
169
|
* fix(api-hub): only output deprecation notice in non-prod-env
|
|
159
170
|
* fix: Keep old previewUrl config working properly
|
|
160
171
|
* feat: Allow for different view and endpoint URLs for preview
|
|
161
172
|
|
|
162
|
-
##
|
|
173
|
+
## Version 2.19.2 (2021-09-23)
|
|
163
174
|
|
|
164
175
|
* Always use plain json_decode for decoding CT responses
|
|
165
176
|
|
|
166
|
-
##
|
|
177
|
+
## Version 2.19.1 (2021-09-09)
|
|
167
178
|
|
|
168
179
|
* fix(FP-980): validated result to catch no active carts in Shopify
|
|
169
180
|
|
|
170
|
-
##
|
|
181
|
+
## Version 2.19.0 (2021-09-08)
|
|
171
182
|
|
|
172
183
|
* fix: Keep unknown field values in completed configuration fields.
|
|
173
184
|
|
|
174
|
-
##
|
|
185
|
+
## Version 2.18.2 (2021-09-04)
|
|
175
186
|
|
|
176
187
|
* fix: Handle documentary fields properly.
|
|
177
188
|
|
|
178
|
-
##
|
|
189
|
+
## Version 2.18.1 (2021-09-03)
|
|
179
190
|
|
|
180
|
-
* chore: bumped version required of frontastic/catwalk to 1.17
|
|
191
|
+
* chore: bumped version required of frontastic/catwalk to 1.17
|
|
181
192
|
|
|
182
|
-
##
|
|
193
|
+
## Version 2.18.0 (2021-09-03)
|
|
183
194
|
|
|
184
195
|
* feat(FP-935): Submit current field path to visitors.
|
|
185
196
|
* feat(fp-935): Fixed potential construction issue through `new static()`
|
|
@@ -198,16 +209,16 @@
|
|
|
198
209
|
* feat(fp-935): Migrated more tests to code lang independent format.
|
|
199
210
|
* feat(fp-935): Extracted first config tests into code independant format.
|
|
200
211
|
|
|
201
|
-
##
|
|
212
|
+
## Version 2.17.2 (2021-08-26)
|
|
202
213
|
|
|
203
214
|
* fix(FP-932): modified array key validation
|
|
204
215
|
* feat(FP-932): mapped missing variant properties in Algolia
|
|
205
216
|
|
|
206
|
-
##
|
|
217
|
+
## Version 2.17.1 (2021-08-26)
|
|
207
218
|
|
|
208
219
|
* chore: bumped version required of frontastic/catwalk to 1.16
|
|
209
220
|
|
|
210
|
-
##
|
|
221
|
+
## Version 2.17.0 (2021-08-26)
|
|
211
222
|
|
|
212
223
|
* feat(FP-932): get default language from project config in Algolia
|
|
213
224
|
* feat(FP-932): set algolia library as suggested on composer
|
|
@@ -229,15 +240,15 @@
|
|
|
229
240
|
* feat(FP-932): use key label structure for Attributes values
|
|
230
241
|
* feat(FP-932): implemented getSearchAttributes for Algolia
|
|
231
242
|
|
|
232
|
-
##
|
|
243
|
+
## Version 2.16.2 (2021-08-19)
|
|
233
244
|
|
|
234
245
|
* Revert "fix: adds frontasticBasicAuthPassword to exclude list"
|
|
235
246
|
|
|
236
|
-
##
|
|
247
|
+
## Version 2.16.1 (2021-08-17)
|
|
237
248
|
|
|
238
249
|
* fix: adds frontasticBasicAuthPassword to exclude list
|
|
239
250
|
|
|
240
|
-
##
|
|
251
|
+
## Version 2.16.0 (2021-08-04)
|
|
241
252
|
|
|
242
253
|
* feat(FP-839): used integer for price filters
|
|
243
254
|
* feat(FP-839): included price filter and facets on Shopware
|
|
@@ -248,11 +259,11 @@
|
|
|
248
259
|
* feat(FP-839): get group from common groupId field
|
|
249
260
|
* fix(FP-839): reused client request for both queries
|
|
250
261
|
|
|
251
|
-
##
|
|
262
|
+
## Version 2.15.0 (2021-07-29)
|
|
252
263
|
|
|
253
264
|
* feat: enhancing tideways logging for GraphCMS adding Cache status header as well as RequestId
|
|
254
265
|
|
|
255
|
-
##
|
|
266
|
+
## Version 2.14.0 (2021-07-20)
|
|
256
267
|
|
|
257
268
|
* feat(FP-837): set API test credential for Shopware 6.4
|
|
258
269
|
* feat(FP-837): used php comparation for API version on Shopware
|
|
@@ -266,28 +277,28 @@
|
|
|
266
277
|
* feat(FP-837): handle elements and data fiels on Account and Project mappers on Shopware
|
|
267
278
|
* feat(FP-837): upgraded project config endpoints to store-api on Shopware
|
|
268
279
|
|
|
269
|
-
##
|
|
280
|
+
## Version 2.13.4 (2021-07-13)
|
|
270
281
|
|
|
271
282
|
* fix: strip API version on Shopware store-api
|
|
272
283
|
* chore: replaced authToken by apiToken on Shopify
|
|
273
284
|
* chore: replaced authToken by apiToken on Spryker
|
|
274
285
|
|
|
275
|
-
##
|
|
286
|
+
## Version 2.13.3 (2021-07-08)
|
|
276
287
|
|
|
277
288
|
* fix(FP-830): replaced authToken by apiToken on Shopware
|
|
278
289
|
* feat: deprecated authToken in favor of apiToken.
|
|
279
290
|
* fix: specify api version on Shopware
|
|
280
291
|
|
|
281
|
-
##
|
|
292
|
+
## Version 2.13.2 (2021-07-06)
|
|
282
293
|
|
|
283
294
|
* fix(FP-830): keep authToken on refresh account for Shopware
|
|
284
295
|
|
|
285
|
-
##
|
|
296
|
+
## Version 2.13.1 (2021-07-01)
|
|
286
297
|
|
|
287
298
|
* refactor: set Spryker cart test credentials as generic
|
|
288
299
|
* fix: Allow empty local to be parsed on Spryker
|
|
289
300
|
|
|
290
|
-
##
|
|
301
|
+
## Version 2.13.0 (2021-06-23)
|
|
291
302
|
|
|
292
303
|
* chore(FT-731): removed unnecessary array_merge
|
|
293
304
|
* feat(FP-731): login customer after reset account password on Shopware
|
|
@@ -297,36 +308,36 @@
|
|
|
297
308
|
* feat(FP-731): refresed account base on email on Shopware
|
|
298
309
|
* feat(FP-731): implemented account creation and confirmation on Shopware
|
|
299
310
|
|
|
300
|
-
##
|
|
311
|
+
## Version 2.12.0 (2021-06-15)
|
|
301
312
|
|
|
302
313
|
* feat: Added Ganesha based curcuit breaker for our HTTP client stack
|
|
303
314
|
|
|
304
|
-
##
|
|
315
|
+
## Version 2.11.10 (2021-06-14)
|
|
305
316
|
|
|
306
317
|
* chore: increased symfony minor version
|
|
307
318
|
* fix: implemented AccountApi::getSalutations on Shopware
|
|
308
319
|
|
|
309
|
-
##
|
|
320
|
+
## Version 2.11.9 (2021-05-28)
|
|
310
321
|
|
|
311
322
|
* fix(FP-728): keeped original and masterData as dangerousInner on Commercetools
|
|
312
323
|
|
|
313
|
-
##
|
|
324
|
+
## Version 2.11.8 (2021-05-28)
|
|
314
325
|
|
|
315
326
|
* fix: validated relations before map them in Spryker
|
|
316
327
|
* fix: remove scope from client call
|
|
317
328
|
* fix: implemented CartApi::setShippingMethod on Shopware integration
|
|
318
329
|
|
|
319
|
-
##
|
|
330
|
+
## Version 2.11.7 (2021-05-18)
|
|
320
331
|
|
|
321
332
|
* fix(FP-709): moved cart validation to Shopware integration
|
|
322
333
|
* fix(FP-709): included addresses and email into cart on Spryker
|
|
323
334
|
* fix(FP-709): moved cart validation to Commercetools integration
|
|
324
335
|
|
|
325
|
-
##
|
|
336
|
+
## Version 2.11.6 (2021-05-13)
|
|
326
337
|
|
|
327
338
|
* fix(FP-691): returned empty response if content by id is query on GraphCMS
|
|
328
339
|
|
|
329
|
-
##
|
|
340
|
+
## Version 2.11.5 (2021-05-11)
|
|
330
341
|
|
|
331
342
|
* fix(FP-695): validated empty nodes before access data in Shopify
|
|
332
343
|
* feat(backstage): latest terminology typo fix
|
|
@@ -335,16 +346,16 @@
|
|
|
335
346
|
* feat(backstage): latest copy updates
|
|
336
347
|
* feat: tastics term in studio
|
|
337
348
|
|
|
338
|
-
##
|
|
349
|
+
## Version 2.11.4 (2021-04-29)
|
|
339
350
|
|
|
340
351
|
* fix(FP-624): moved variant SKU method to Shopify integration
|
|
341
352
|
* fix(FP-624): validated product returned when filtered by SKUs in Shopify
|
|
342
353
|
|
|
343
|
-
##
|
|
354
|
+
## Version 2.11.3 (2021-04-29)
|
|
344
355
|
|
|
345
356
|
* misc: Tests for CustomerService.
|
|
346
357
|
|
|
347
|
-
##
|
|
358
|
+
## Version 2.11.2 (2021-04-27)
|
|
348
359
|
|
|
349
360
|
* fix(FP-645): included host and status code to Contentful logs
|
|
350
361
|
* fix(FP-645): decorated Contentful client to enhance logger
|
|
@@ -352,93 +363,93 @@
|
|
|
352
363
|
* fix(FP-645): set default timeout and logger on Contentful client
|
|
353
364
|
* fix: Find version manually
|
|
354
365
|
|
|
355
|
-
##
|
|
366
|
+
## Version 2.11.1 (2021-04-22)
|
|
356
367
|
|
|
357
368
|
* fix: Fix the /api/version SystemController to use version parameter bag
|
|
358
369
|
* fix: Fix the /api/version SystemController parameter bag
|
|
359
370
|
|
|
360
|
-
##
|
|
371
|
+
## Version 2.11.0 (2021-04-20)
|
|
361
372
|
|
|
362
373
|
* feat(FP-617): exposed authorization url on project config for commercetools
|
|
363
374
|
|
|
364
|
-
##
|
|
375
|
+
## Version 2.10.13 (2021-04-13)
|
|
365
376
|
|
|
366
377
|
* fix: fixed unit test for Content
|
|
367
378
|
* fix(606): included Content slug on GraphCMS
|
|
368
379
|
* fix(606): validate content attribute key before fetch
|
|
369
380
|
* misc: included API test to place order for logged in user
|
|
370
381
|
|
|
371
|
-
##
|
|
382
|
+
## Version 2.10.12 (2021-04-08)
|
|
372
383
|
|
|
373
384
|
* fix(FP-567): handle client exceptions and skip Union types
|
|
374
385
|
* fix(FP-363): Shopify API, use existing account with token and remove returned address on create
|
|
375
386
|
* fix(FP-363): API to add address on customer create and unit tests for create update adjustment
|
|
376
387
|
|
|
377
|
-
##
|
|
388
|
+
## Version 2.10.11 (2021-03-30)
|
|
378
389
|
|
|
379
390
|
* fix: Remove phpcpd from all projects
|
|
380
391
|
|
|
381
|
-
##
|
|
392
|
+
## Version 2.10.10 (2021-03-23)
|
|
382
393
|
|
|
383
394
|
* fix(FP-96): migrated and updated implementation for shipping methods on Shopware
|
|
384
395
|
* fix(FP-84): used alias on category facet and set missing definition
|
|
385
396
|
* fix: Use proper AccessDeniedException
|
|
386
397
|
|
|
387
|
-
##
|
|
398
|
+
## Version 2.10.9 (2021-03-10)
|
|
388
399
|
|
|
389
400
|
* fix(FP-458): used config from engine and include query as part of Result
|
|
390
401
|
* chore(FP-458): removed unused max offset
|
|
391
402
|
* fix(FP-458): exposed max offset in project.yml and validated before query
|
|
392
403
|
* fix(FP-458): created maximum offset and validate Product queries againts it on Commercetools
|
|
393
404
|
|
|
394
|
-
##
|
|
405
|
+
## Version 2.10.8 (2021-03-09)
|
|
395
406
|
|
|
396
407
|
* chore(FP-447): improved documentation and log messages
|
|
397
408
|
* fix(FP-447): throw and handle Cart not active exception
|
|
398
409
|
* fix(FP-447): get existing cart for logged in customer in Shopify
|
|
399
410
|
|
|
400
|
-
##
|
|
411
|
+
## Version 2.10.7 (2021-03-04)
|
|
401
412
|
|
|
402
413
|
* fix(FP-447): cart regenerated if is already completed on Shopify
|
|
403
414
|
* fix: validate version and category index before map
|
|
404
415
|
|
|
405
|
-
##
|
|
416
|
+
## Version 2.10.6 (2021-03-02)
|
|
406
417
|
|
|
407
418
|
* fix(FP-249): added address on account creation for Commercetools
|
|
408
419
|
|
|
409
|
-
##
|
|
420
|
+
## Version 2.10.5 (2021-03-01)
|
|
410
421
|
|
|
411
422
|
* fix(FP-395): implemented build query for next page and calculate last (#623)
|
|
412
423
|
* fix: fix E_NOTICE on product not found
|
|
413
424
|
|
|
414
|
-
##
|
|
425
|
+
## Version 2.10.4 (2021-02-25)
|
|
415
426
|
|
|
416
427
|
* fix: stan errors
|
|
417
428
|
|
|
418
|
-
##
|
|
429
|
+
## Version 2.10.3 (2021-02-23)
|
|
419
430
|
|
|
420
431
|
* fix(FP-389): included discounts on LineItems and mapped data for Commercetools
|
|
421
432
|
* fix: removed decoded exceptions in favor of fallback on php native decoder
|
|
422
433
|
|
|
423
|
-
##
|
|
434
|
+
## Version 2.10.2 (2021-02-19)
|
|
424
435
|
|
|
425
436
|
* fix: removed cartApi extra argument from BaseImplementationAdapterV2
|
|
426
437
|
|
|
427
|
-
##
|
|
438
|
+
## Version 2.10.1 (2021-02-19)
|
|
428
439
|
|
|
429
440
|
* fix(FP-364): fixed unit test inlcuding dangerousInnerShippingMethod to expected data
|
|
430
441
|
* fix(FP-364): extended shipping method query and map localization zone
|
|
431
442
|
|
|
432
|
-
##
|
|
443
|
+
## Version 2.10.0 (2021-02-18)
|
|
433
444
|
|
|
434
445
|
* feat(FP-81): included documentation of rawApiInput fields from Commercetools on Wishlist
|
|
435
446
|
* fix(FP-335): extended Wishlist from ApiDataObject
|
|
436
447
|
* feat(FP-81): included documentation of rawApiInput fields from Commercetools
|
|
437
448
|
* Feat: JavaScript based Decorators
|
|
438
449
|
|
|
439
|
-
##
|
|
450
|
+
## Version 1.9.5 (2021-02-18)
|
|
440
451
|
|
|
441
|
-
##
|
|
452
|
+
## Version 2.9.0 (2021-02-16)
|
|
442
453
|
|
|
443
454
|
* fix(FP-323): mapped discount for product discounts
|
|
444
455
|
* fix: added attributes response on after event for getSearchableAttributes
|
|
@@ -446,41 +457,42 @@
|
|
|
446
457
|
* fix: used ContentApi instead of WishlistApi as aggreageted on LifecycleEventDecorator
|
|
447
458
|
* feat: included BaseImplementation for ProductSearchApi and deprecated duplicated methods in ProductApi
|
|
448
459
|
|
|
449
|
-
##
|
|
460
|
+
## Version 2.8.0 (2021-02-11)
|
|
450
461
|
|
|
451
462
|
* feat: Update ShopifyCartApi.php
|
|
452
463
|
* feat: add compareAtPriceV2 on Shopify product variants
|
|
453
464
|
|
|
454
|
-
##
|
|
465
|
+
## Version 2.7.2 (2021-02-11)
|
|
455
466
|
|
|
456
467
|
* fix: Return empty array to unblock the customer
|
|
457
468
|
|
|
458
|
-
##
|
|
469
|
+
## Version 2.7.1 (2021-02-02)
|
|
459
470
|
|
|
460
471
|
* chore: included the conflict version with catwalk on common/composer.json
|
|
461
472
|
|
|
462
|
-
##
|
|
473
|
+
## Version 2.7.0 (2021-02-02)
|
|
463
474
|
|
|
464
475
|
* !feat(fp-90) catwalk controllers (#580)
|
|
465
476
|
* feat: included shipping info id for CommerceTools
|
|
466
477
|
|
|
467
|
-
##
|
|
478
|
+
## Version 2.6.1 (2021-01-27)
|
|
468
479
|
|
|
469
480
|
* fix: removed shipping or billing fields dependency to set shippingMethodName
|
|
470
481
|
* fix(FP-150): returned ShippingMethod in getAvailableShippingMethods for Shopify
|
|
471
482
|
|
|
472
|
-
##
|
|
483
|
+
## Version 2.6.0 (2021-01-20)
|
|
473
484
|
|
|
474
485
|
* feat(FT-545): implemented shipping methods for a given cart on Spryker
|
|
475
486
|
|
|
476
|
-
##
|
|
487
|
+
## Version 2.5.1 (2021-01-20)
|
|
477
488
|
|
|
478
489
|
* fix: Missed adaption to OrderIdGeneratorV2.
|
|
479
490
|
* feat(FT-590): upgrade Shopify version on API test and include SEO fields on product
|
|
480
491
|
|
|
481
|
-
##
|
|
492
|
+
## Version 2.5.0 (2021-01-18)
|
|
482
493
|
|
|
483
|
-
* fix(563): revert change to tests and add typecasting into Spryker CatalogSearchQuery to ensure that categoryId will be
|
|
494
|
+
* fix(563): revert change to tests and add typecasting into Spryker CatalogSearchQuery to ensure that categoryId will be
|
|
495
|
+
an int
|
|
484
496
|
* feat: included metafields on Shopify product variants
|
|
485
497
|
* feat(FT-581): mapped rates and locations on ShippingRates for Commercetools
|
|
486
498
|
* fix: Consistency for toString() methods on ProductApi\Locale.
|
|
@@ -495,7 +507,7 @@
|
|
|
495
507
|
* feat(cart-defaults): Options for CommerceTools cart defaults.
|
|
496
508
|
* feat(CartFetcher): CartFetcher as unified entrance to loading a cart.
|
|
497
509
|
|
|
498
|
-
##
|
|
510
|
+
## Version 2.4.0 (2021-01-14)
|
|
499
511
|
|
|
500
512
|
* feat(cart-defaults): Options for CommerceTools cart defaults.
|
|
501
513
|
* feat(FT-506): implemented setEmail for Spryker
|
|
@@ -503,26 +515,27 @@
|
|
|
503
515
|
* fix(FT-563): add if-else condition depending on current customer to change behavior for Spryker
|
|
504
516
|
* feat(FT-457): included Shopify product images to each variant
|
|
505
517
|
|
|
506
|
-
##
|
|
518
|
+
## Version 2.3.0 (2021-01-06)
|
|
507
519
|
|
|
508
520
|
* feat(FT-544): implemented cart available shipping methods
|
|
509
521
|
* fix(shopify): mapped variant stock from quantityAvailable and included availableForSale
|
|
510
522
|
* feat(FT-470): Mapped shipping discounted price when present
|
|
511
523
|
|
|
512
|
-
##
|
|
524
|
+
## Version 2.2.1 (2020-12-18)
|
|
513
525
|
|
|
514
526
|
* fix: removed extra comma at the end of parameter list
|
|
515
527
|
|
|
516
|
-
##
|
|
528
|
+
## Version 2.2.0 (2020-12-18)
|
|
517
529
|
|
|
518
530
|
* fix: added missing default language
|
|
519
531
|
* feat(FT-532): extracted Wishlist Api interface
|
|
520
532
|
* feat(FT-532): extracted Cart Api interface
|
|
521
533
|
* feat(FT-532): extracted Account Api interface
|
|
522
|
-
* fix(FT-540): make defaultLanguage in Spryker Product Search API bundle non-nullable, but make localeString in
|
|
534
|
+
* fix(FT-540): make defaultLanguage in Spryker Product Search API bundle non-nullable, but make localeString in
|
|
535
|
+
parseLocaleString nullable
|
|
523
536
|
* fix(FT-540): Fix SprykerProductSearchApi, add usage of forLanguage to have locale included into products search
|
|
524
537
|
|
|
525
|
-
##
|
|
538
|
+
## Version 2.1.0 (2020-12-14)
|
|
526
539
|
|
|
527
540
|
* Fix missing namespace
|
|
528
541
|
* Update json calls around wrapper
|
|
@@ -542,7 +555,7 @@
|
|
|
542
555
|
* fix: Remaining dependencies to work with common 2.0
|
|
543
556
|
* fix: Set composer platform to PHP 7.4
|
|
544
557
|
|
|
545
|
-
##
|
|
558
|
+
## Version 2.0.0 (2020-11-27)
|
|
546
559
|
|
|
547
560
|
* feat(tax): included tax class and implementation fro Commercetools
|
|
548
561
|
* feat!(ShippingMethod): API enhancement for fetching shipping methods. (#420)
|
|
@@ -566,14 +579,14 @@
|
|
|
566
579
|
* feat(shopify): included descriptionHtml and images to Product query
|
|
567
580
|
* feat(ApiBase): implemented CartApiBase on Spryker
|
|
568
581
|
|
|
569
|
-
##
|
|
582
|
+
## Version 1.1.20 (2020-11-26)
|
|
570
583
|
|
|
571
584
|
* fix: Correct bundle references
|
|
572
585
|
* refactor: removed duplicated tests
|
|
573
586
|
* [FT-442] Migrate DataObjects to ApiDataObjects
|
|
574
587
|
* fix: set right test name on AnonymousCart
|
|
575
588
|
|
|
576
|
-
##
|
|
589
|
+
## Version 1.1.19 (2020-11-13)
|
|
577
590
|
|
|
578
591
|
* chore: Built release 2020.11.13.11.34
|
|
579
592
|
* fix(shopify): Used lowecase for variant attributes
|
|
@@ -589,7 +602,7 @@
|
|
|
589
602
|
* fix(shopware): Commented invalid attributes for Shopware v2 and v3
|
|
590
603
|
* feat(shopify): Implemented facet filters for tags and product types
|
|
591
604
|
|
|
592
|
-
##
|
|
605
|
+
## Version 1.1.18 (2020-11-04)
|
|
593
606
|
|
|
594
607
|
* fix(spryker): Included abstract decription
|
|
595
608
|
* fix(spryker): Counted items returned
|
|
@@ -599,7 +612,7 @@
|
|
|
599
612
|
* fix(spryker): Removed mapImages overwrited implementation
|
|
600
613
|
* fix(spryker): Set valid variant sku
|
|
601
614
|
|
|
602
|
-
##
|
|
615
|
+
## Version 1.1.17 (2020-10-30)
|
|
603
616
|
|
|
604
617
|
* fix(spryker): Returned orignal account if not possible to be refreshed with no authToken
|
|
605
618
|
* fix: don't enforce tax category in Commercetools
|
|
@@ -607,7 +620,7 @@
|
|
|
607
620
|
* fix(spryker): Removed verifyEmail as non part of AccountAPI abstraction
|
|
608
621
|
* fix(spryker): Returned email as part of reset account
|
|
609
622
|
|
|
610
|
-
##
|
|
623
|
+
## Version 1.1.16 (2020-10-16)
|
|
611
624
|
|
|
612
625
|
* fix(productSearchApi): Remove URL decoding for Findologic provided URLs
|
|
613
626
|
* fix(productSearchApi): Remove redundant code from FindologicClientFactory
|
|
@@ -624,12 +637,12 @@
|
|
|
624
637
|
* fix: Only set fetch_format when needed
|
|
625
638
|
* chore: Extracted common webspocket code
|
|
626
639
|
|
|
627
|
-
##
|
|
640
|
+
## Version 1.1.15 (2020-10-13)
|
|
628
641
|
|
|
629
642
|
* fix: Do not cast null values in media library to numeric
|
|
630
643
|
* fix: Set whislist as not implemented for Shopify
|
|
631
644
|
|
|
632
|
-
##
|
|
645
|
+
## Version 1.1.14 (2020-10-07)
|
|
633
646
|
|
|
634
647
|
* fix(shopify): Used only SKU values on variant.sku mapping
|
|
635
648
|
* fix: Import deprecate helper in a way it also works in tests
|
|
@@ -721,7 +734,7 @@
|
|
|
721
734
|
* Fixed type hint
|
|
722
735
|
* Flagged types
|
|
723
736
|
|
|
724
|
-
##
|
|
737
|
+
## Version 1.1.13 (2020-10-02)
|
|
725
738
|
|
|
726
739
|
* fix: Removed cartId validation on testAPI
|
|
727
740
|
* chore: Refactored withCurrency method as appendCurrencyToUrl
|
|
@@ -805,23 +818,23 @@
|
|
|
805
818
|
* Fixed type hint
|
|
806
819
|
* Flagged types
|
|
807
820
|
|
|
808
|
-
##
|
|
821
|
+
## Version 1.1.12 (2020-10-01)
|
|
809
822
|
|
|
810
823
|
* feat: Shopify CartApi & AccountApi
|
|
811
824
|
|
|
812
|
-
##
|
|
825
|
+
## Version 1.1.11 (2020-09-17)
|
|
813
826
|
|
|
814
827
|
* feat!: Use the product search API
|
|
815
828
|
* feat: Add ShopifyProductSearchApi
|
|
816
829
|
* feat: Call product event listeners
|
|
817
830
|
* chore: Extracted common webspocket code
|
|
818
831
|
|
|
819
|
-
##
|
|
832
|
+
## Version 1.1.10 (2020-09-15)
|
|
820
833
|
|
|
821
834
|
* Regenerated API documentation
|
|
822
835
|
* Generated TypeScript types for catwalk & common domain models
|
|
823
836
|
|
|
824
|
-
##
|
|
837
|
+
## Version 1.1.9 (2020-09-11)
|
|
825
838
|
|
|
826
839
|
* Implement localization and include Product filter by language
|
|
827
840
|
* add Spryker product search API
|
|
@@ -836,7 +849,7 @@
|
|
|
836
849
|
* Build cloudinary URLs ourselves
|
|
837
850
|
* Add FindologicBundle
|
|
838
851
|
|
|
839
|
-
##
|
|
852
|
+
## Version 1.1.8 (2020-08-24)
|
|
840
853
|
|
|
841
854
|
* chore(shopify integration): Included pagination documentation
|
|
842
855
|
* fix(shopify integration): Updated Api test to use cursor based pagination
|
|
@@ -903,19 +916,19 @@
|
|
|
903
916
|
* feat(spryker integration): Impleted WoohooLabs ResourceObject to handle Api response content
|
|
904
917
|
* feat(spryker integration): Included raw api output as part of Http/Response
|
|
905
918
|
|
|
906
|
-
##
|
|
919
|
+
## Version 1.1.5 (2020-08-05)
|
|
907
920
|
|
|
908
921
|
* fix: Restore (again) missing CHANGELOG.md in common
|
|
909
922
|
|
|
910
|
-
##
|
|
923
|
+
## Version 1.1.4 (2020-08-05)
|
|
911
924
|
|
|
912
925
|
* fix: Restore missing CHANGELOG.md in common
|
|
913
926
|
|
|
914
|
-
##
|
|
927
|
+
## Version 1.1.3 (2020-08-05)
|
|
915
928
|
|
|
916
929
|
* Fixed release script
|
|
917
930
|
|
|
918
|
-
##
|
|
931
|
+
## Version 1.1.2 (2020-08-05)
|
|
919
932
|
|
|
920
933
|
* fix: Use readlink instead of realpath to work on mac
|
|
921
934
|
* Enable tideways for sparhandy and fix check in setup handle
|
|
@@ -930,12 +943,13 @@
|
|
|
930
943
|
* feat(boost-theme): theming - next phase
|
|
931
944
|
* chore(frontasticli): Add github action for releasing
|
|
932
945
|
* fix(boost-theme): custom hook and some photo scaling
|
|
933
|
-
* fix(boost-theme): custom hook and some photo scaling (solution for now, until we get more customized photos from
|
|
946
|
+
* fix(boost-theme): custom hook and some photo scaling (solution for now, until we get more customized photos from
|
|
947
|
+
commerce tools)
|
|
934
948
|
* chore: removing customers that have github actions by now
|
|
935
949
|
* chore: enabling teams hook for Apollo and disabling Slack
|
|
936
950
|
* chore: Remove orphan DI tag frontastic.common.api_integration.
|
|
937
951
|
|
|
938
|
-
##
|
|
952
|
+
## Version 1.1.1 (2020-07-30)
|
|
939
953
|
|
|
940
954
|
* fix: Logger is still unavailable in container.
|
|
941
955
|
* chore: Removed FactoryServiceLocator from libraries/common.
|
|
@@ -977,9 +991,8 @@
|
|
|
977
991
|
* Expose additional category filter properties
|
|
978
992
|
* Added field `state` and mapping for CommerceTools in `Address`.
|
|
979
993
|
|
|
980
|
-
##
|
|
981
|
-
|
|
982
|
-
## `1.0.0` (2020-05-27)
|
|
994
|
+
## Version 1.1.0 (2020-07-30)
|
|
983
995
|
|
|
996
|
+
## Version 1.0.0 (2020-05-27)
|
|
984
997
|
|
|
985
998
|
* Initial stable release
|
package/composer.json
CHANGED
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["frontastic-common"]=t():e["frontastic-common"]=t()}(global,(function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=7)}([function(e){e.exports=JSON.parse('{"schema":[{"name":"Value Order","fields":[{"label":"Strip Label Prefix","field":"stripLabelPrefix","type":"boolean","default":false},{"label":"Sort Order","field":"sortOrder","type":"enum","values":[{"value":"sort-undefined","name":"Undefined"},{"value":"sort-ascending","name":"Ascending"},{"value":"sort-descending","name":"Descending"}],"default":"sort-undefined"}]}]}')},function(e){e.exports=JSON.parse('{"schema":[{"name":"Display properties","fields":[{"label":"Highlight menu item","field":"displayHighlightMenuItem","type":"boolean","default":false},{"label":"Highlight category tag","field":"displayHighlightCategoryTag","type":"boolean","default":false},{"label":"Description","field":"displayDescription","type":"string","translatable":true},{"label":"Custom CSS class","field":"displayClassname","type":"string","translatable":false},{"label":"Image","field":"displayMedia","type":"media","options":{"ratio":"4:1"}}]},{"name":"SEO","fields":[{"label":"Title","field":"seoTitle","type":"string","translatable":true},{"label":"Description","field":"seoDescription","type":"string","translatable":true},{"label":"Keywords","field":"seoKeywords","type":"string","translatable":true}]}]}')},function(e){e.exports=JSON.parse('{"schema":[]}')},function(e,t,n){var i=n(4),r=n(6);e.exports=function(e,t,n){var o=t&&n||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var s=(e=e||{}).random||(e.rng||i)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;++a)t[o+a]=s[a];return t||r(s)}},function(e,t,n){var i=n(5);e.exports=function(){return i.randomBytes(16)}},function(e,t){e.exports=require("crypto")},function(e,t){for(var n=[],i=0;i<256;++i)n[i]=(i+256).toString(16).substr(1);e.exports=function(e,t){var i=t||0,r=n;return[r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]]].join("")}},function(e,t,n){"use strict";function i(e){return"stream"===e||"dataSource"===e}n.r(t);const r=["product","product-list","content","content-list"];function o(e,t,n){return void 0!==e?Boolean(e):"stream"===t&&r.includes(n)}function s(e){if(!Array.isArray(e.fields))return{};let t={};for(let n=0;n<e.fields.length;++n){const i=e.fields[n];if(!i.field)continue;const r=i.type||"text";t[i.field]={field:i.field,type:r,sectionName:e.name||"",values:i.values||[],default:u(r,i.default),validate:i.validate||{},fields:i.fields||null,min:void 0===i.min?1:i.min,max:i.max||16,required:o(i.required,r,i.streamType),disabled:!0===i.disabled,translatable:i.translatable}}return t}function a(e,t){let n=e.default;if(void 0!==t[e.field]&&null!==t[e.field]&&(n=t[e.field]),"group"===e.type){let t=(n||[]).slice(0,e.max);for(let n=t.length;n<e.min;++n)t[n]={};return i=t,r=e.fields,(i||[]).map(e=>{null!==e&&"object"==typeof e||(e={});for(let t of r)void 0!==e[t.field]&&null!==e[t.field]||(e[t.field]=t.default||null);return e})}var i,r;return n}function l(e,t,n,i){("object"!=typeof i||Array.isArray(i))&&(i={});let r={};for(let o of Object.values(e))r[o.field]=c(o,t,n,i);return r}function c(e,t,n,r){const o=r[e.field];if("group"===e.type){const i=s(e);return a(e,t).map((e,t)=>{const r=void 0!==o&&o.length>t?o[t]:{};return l(i,e,n,r)})}if(void 0!==o)return o;const c=a(e,t);return i(e.type)?n[c]||null:c}function u(e,t){if(void 0!==t)return t;switch(e){case"group":return[];case"decimal":case"integer":case"float":case"number":return 0;case"string":case"text":case"markdown":return"";case"json":return"{}";case"boolean":return!1;default:return null}}class d{constructor(e=[],t={}){this.schema=e,this.setConfiguration(t),this.fields={};for(let e=0;e<this.schema.length;++e)this.fields={...this.fields,...s(this.schema[e])}}setConfiguration(e){this.configuration=Array.isArray(e)?{}:e||{}}set(e,t){if(!this.fields[e])throw new Error("Unknown field "+e+" in this configuration schema.");return new d(this.schema,{...this.configuration,[e]:t})}get(e){const t=this.fields[e];return t?a(t,this.configuration):(console.warn("Unknown field "+e+" in this configuration schema."),this.configuration[e]||null)}getField(e){const t=this.fields[e];if(!t)throw new Error("Unknown field "+e+" in this configuration schema.");return t}has(e){return!!this.fields[e]}getSchema(){return this.schema}getConfiguration(){return this.configuration}isFieldRequired(e){return this.getField(e).required}isFieldDisabled(e){return this.getField(e).disabled}hasMissingRequiredValueInField(e,t=!1){const n=this.getField(e),r=this.get(e);return"group"===n.type?r.some(e=>new d([n],e).hasMissingRequiredFieldValues(t)):!!n.required&&((!i(n.type)||!t)&&("reference"===n.type?"object"!=typeof r||null===r||"string"!=typeof r.type||""===r.type||"string"!=typeof r.target||""===r.target:i(n.type)&&r||"media"===n.type&&r||"string"===n.type&&n.translatable&&r?Object.values(r).some(e=>!e):null==r||""===r))}hasMissingRequiredFieldValues(e=!1){return Object.keys(this.fields).some(t=>this.hasMissingRequiredValueInField(t,e))}hasMissingRequiredFieldValuesInSection(e,t=!1){return Object.entries(this.fields).some(([n,i])=>i.sectionName===e&&this.hasMissingRequiredValueInField(n,t))}getConfigurationWithResolvedStreams(e={},t={}){return l(this.fields,this.configuration,e,t)}}var f=d,h={NodeConfigurationSchema:n(1),CellConfigurationSchema:n(2)},g=n(3),m=n.n(g),p=function(){return m()()},y=function(e,t,n){if(!e||"object"!=typeof e)return{text:e,locale:t};if(e[t])return{text:e[t],locale:t};if(e[n])return{text:e[n],locale:n};if(!Object.keys(e).length)return{text:"",locale:null,translated:!1};let i=Object.keys(e)[0];return{text:e[i]||"",locale:i,translated:!1}};const b=e=>{switch(e){case"string":case"text":case"markdown":case"json":return!0;default:return!1}},w=e=>void 0!==e.translatable?e.translatable:b(e.type);let v=function(e){return e=(e+"").toString(),encodeURIComponent(e).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A").replace(/%20/g,"+")};var k=function(e,t,n){let i,r,o=[],s=function(e,t,n){let i,r=[];if(!0===t?t="1":!1===t&&(t="0"),null!=t){if("object"==typeof t){for(i in t)null!=t[i]&&r.push(s(e+"["+i+"]",t[i],n));return r.join(n)}if("function"!=typeof t)return v(e)+"="+v(t);throw new Error("There was an error processing for httpBuildQuery().")}return""};for(r in n||(n="&"),e){i=e[r],t&&!isNaN(r)&&(r=String(t)+r);let a=s(r,i,n);""!==a&&o.push(a)}return o.join(n)};let I=function(e){if("object"!=typeof e)return!1;let t=0;for(let n of Object.keys(e))if(+n!=t++)return!1;return!0},S=function(e){for(let[t,n]of Object.entries(e))n&&"object"==typeof n&&(e[t]=S(n)),I(n)&&(e[t]=Object.values(n));return e};var x=function(e){let t={};return function(e,t){var n,i,r,o,s,a,l,c,u,d,f,h,g,m=String(e).replace(/^&/,"").replace(/&$/,"").split("&"),p=m.length,y=function(e){return decodeURIComponent(e.replace(/\+/g,"%20"))};for(t||(t=this.window),n=0;n<p;n++){for(u=y((c=m[n].split("="))[0]),d=c.length<2?"":y(c[1]);" "===u.charAt(0);)u=u.slice(1);if(u.indexOf("\0")>-1&&(u=u.slice(0,u.indexOf("\0"))),u&&"["!==u.charAt(0)){for(h=[],f=0,i=0;i<u.length;i++)if("["!==u.charAt(i)||f){if("]"===u.charAt(i)&&f&&(h.length||h.push(u.slice(0,f-1)),h.push(u.substr(f,i-f)),f=0,"["!==u.charAt(i+1)))break}else f=i+1;for(h.length||(h=[u]),i=0;i<h[0].length&&(" "!==(l=h[0].charAt(i))&&"."!==l&&"["!==l||(h[0]=h[0].substr(0,i)+"_"+h[0].substr(i+1)),"["!==l);i++);for(a=t,i=0,g=h.length;i<g;i++)if(u=h[i].replace(/^['"]/,"").replace(/['"]$/,""),i!==h.length-1,s=a,""!==u&&" "!==u||0===i)void 0===a[u]&&(a[u]={}),a=a[u];else{for(o in r=-1,a)a.hasOwnProperty(o)&&+o>r&&o.match(/^\d+$/g)&&(r=+o);u=r+1}s[u]=d}}}(e,t),t=S(t),t};const C=Boolean("undefined"==typeof window||!window.location.hostname||"localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function T(){if("serviceWorker"in navigator){const e=process.env.PUBLIC_URL||"/";if(new URL(e,window.location).origin!==window.location.origin)return;window.addEventListener("load",()=>{const e="/service-worker.js";C?function(e){fetch(e).then(t=>{404===t.status||-1===t.headers.get("content-type").indexOf("javascript")?navigator.serviceWorker.ready.then(e=>{e.unregister().then(()=>{window.location.reload()})}):O(e)}).catch(()=>{console.log("No internet connection found. App is running in offline mode.")})}(e):O(e)})}}function O(e){navigator.serviceWorker.register(e).then(e=>{e.onupdatefound=()=>{const t=e.installing;t.onstatechange=()=>{"installed"===t.state&&(navigator.serviceWorker.controller?console.log("New content is available; please refresh."):console.log("Content is cached for offline use."))}}}).catch(e=>{console.error("Error during service worker registration:",e)})}var j=function(){let e,t,n={};if(this.registerCallBack=function(e,t){let i=null;do{i=Math.floor(65536*(1+Math.random())).toString(16).substring(1)}while(i in n);return n[i]={hidden:e,active:t},i},this.removeCallBack=function(e){delete n[e]},"undefined"==typeof document?(e=!1,t=!1):void 0!==document.hidden?(e="hidden",t="visibilitychange"):void 0!==document.mozHidden?(e="mozHidden",t="mozvisibilitychange"):void 0!==document.msHidden?(e="msHidden",t="msvisibilitychange"):void 0!==document.webkitHidden&&(e="webkitHidden",t="webkitvisibilitychange"),e&&t){let i=function(){for(let t of Object.values(n))document[e]?t.hidden():t.active()};void 0===document.addEventListener||void 0===document[e]?console.warn("This feature requires a browser, such as Google Chrome or Firefox, that supports the Page Visibility API."):document.addEventListener(t,i,!1)}},E=[{size:12,name:"1",icon:"looks_one"},{size:6,name:"1/2",icon:"looks_two"},{size:4,name:"1/3",icon:"looks_3"},{size:8,name:"2/3",icon:"looks_3"},{size:3,name:"1/4",icon:"looks_4"},{size:9,name:"3/4",icon:"looks_4"},{size:2,name:"1/6",icon:"looks_6"}];var D=class{constructor(e={}){this.tasticId=e.tasticId||p(),this.tasticType=e.tasticType,this.configuration=e.configuration||{};let t=[{name:"General settings",folded:!0,fields:[{label:"Name",field:"name",type:"string"},{label:"Show on mobile",field:"mobile",type:"boolean",default:!0},{label:"Show on tablet",field:"tablet",type:"boolean",default:!0},{label:"Show on desktop",field:"desktop",type:"boolean",default:!0},{label:"Anchor",field:"tasticId",type:"string",translatable:!1,disabled:!0,default:"#"+this.tasticId}]}];if(e.schema)for(let n=0;n<e.schema.length;++n)t.push(e.schema[n]);this.schema=new f(t,this.configuration)}export(){return{tasticId:this.tasticId,tasticType:this.tasticType,configuration:this.schema.getConfiguration()}}};var F=class{constructor(e={}){if(this.cellId=e.cellId||p(),this.configuration=e.configuration||{},this.customConfiguration=e.customConfiguration||{},this.schema=new f([{name:"General settings",folded:!0,fields:[{label:"Name",field:"name",type:"string",translatable:!0},{label:"Layout element width",field:"size",type:"enum",values:E&&E.map(e=>({name:e.name,value:e.size})),default:12},{label:"Show on mobile",field:"mobile",type:"boolean",default:!0},{label:"Show on tablet",field:"tablet",type:"boolean",default:!0},{label:"Show on desktop",field:"desktop",type:"boolean",default:!0}]}],this.configuration),this.tastics=[],e.tastics&&e.tastics.length)for(let t=0;t<e.tastics.length;++t)this.tastics.push(new D(e.tastics[t]))}addTastic(e,t={},n=[],i=0){const r=new D({tasticType:e,configuration:t,schema:n});return this.tastics.splice(i,0,r),r}getTastic(e){for(let t of this.tastics)if(t.tasticId===e)return t;throw new Error("Could not find component with ID "+e)}getTasticCount(){return this.tastics.length}export(){return{cellId:this.cellId,configuration:this.schema.getConfiguration(),customConfiguration:this.customConfiguration,tastics:this.tastics.map(e=>e.export())}}};var N=class{constructor(e){if(!e.kitDefinitionId)throw new Error("Missing kitDefinitionId in "+JSON.stringify(e));this.kitDefinitionId=e.kitDefinitionId,this.kitId=e.kitId||p(),this.configuration=e.configuration||{}}export(){return{kitId:this.kitId,kitDefinitionId:this.kitDefinitionId,configuration:this.configuration}}};var M=class{constructor(e={}){if(this.regionId=e.regionId||p(),this.configuration=e.configuration||{},this.schema=new f([{name:"Responsive",folded:!0,fields:[{label:"Show on mobile",field:"mobile",type:"boolean",default:!0},{label:"Show on tablet",field:"tablet",type:"boolean",default:!0},{label:"Show on desktop",field:"desktop",type:"boolean",default:!0}]},{name:"Layout",fields:[{label:"Cell direction",field:"flexDirection",type:"enum",default:"row",values:[{value:"row",name:"Row"},{value:"column",name:"Column"},{value:"row-reverse",name:"Row (reversed)"},{value:"column-reverse",name:"Column (reversed)"}]},{label:"Cell wrapping",field:"flexWrap",type:"enum",default:"wrap",values:[{value:"nowrap",name:"No wrapping"},{value:"wrap",name:"Wrap cells"}]},{label:"Justify cells",field:"justifyContent",type:"enum",default:"space-between",values:[{value:"flex-start",name:"Put at beginning"},{value:"flex-end",name:"Put at end"},{value:"center",name:"Center Cells"},{value:"space-between",name:"Space between cells"},{value:"space-around",name:"Space around cells"},{value:"space-even",name:"Evenly spaced cells"}]},{label:"Cell alignment",field:"alignItems",type:"enum",default:"stretch",values:[{value:"flex-start",name:"Align to start"},{value:"flex-end",name:"Align to end"},{value:"center",name:"Center cells"},{value:"stretch",name:"Stretch cells"},{value:"baseline",name:"Align to baseline"}]},{label:"Align multiple cell rows",field:"alignContent",type:"enum",default:"space-between",values:[{value:"flex-start",name:"Put at beginning"},{value:"flex-end",name:"Put at end"},{value:"center",name:"Center rows"},{value:"stretch",name:"Stretch rows"},{value:"space-between",name:"Space between rows"},{value:"space-around",name:"Space around rows"}]}]}],this.configuration),this.elements=[],e.elements&&e.elements.length)for(let t=0;t<e.elements.length;++t)this.addElement(e.elements[t])}addElement(e){if(e.cellId)return this.addCell(e);if(e.kitId)return this.addKit(e);throw new TypeError("Unknown element type: "+JSON.stringify(e))}addCell(e){return this.elements.push(new F(e)),this.elements[this.elements.length-1]}addKit(e){return this.elements.push(new N(e)),this.elements[this.elements.length-1]}getElement(e){const t=Object.keys(e)[0],n=Object.values(e)[0];for(let e of this.elements)if(e[t]===n)return e;throw new Error("Could not find element with ID "+JSON.stringify(n))}getCells(){return this.elements.filter(e=>e instanceof F)}getKits(){return this.elements.filter(e=>e instanceof N)}export(){return{regionId:this.regionId,configuration:this.schema.getConfiguration(),elements:this.elements.map(e=>e.export())}}};var R=class{constructor(e={},t=[],n=[]){this.pageId=e.pageId||null,this.nodes=e.nodes||[],this.layoutId=e.layoutId||"three_rows",this.name=e.name||"Unnamed Page",this.regions={},this.tasticSchemas=(n||[]).map(e=>e.configurationSchema);for(let n=0;n<t.length;++n){let i=t[n];e.regions&&e.regions[i]&&e.regions[i].elements&&e.regions[i].elements.length&&(e.regions[i].elements=this.mapTastics(e.regions[i].elements)),this.createRegion(i,e.regions&&e.regions[i]||{})}}mapTastics(e){for(let t=0;t<e.length;++t){let n=e[t];if(n.cellId&&(n.tastics&&n.tastics.length))for(let e=0;e<n.tastics.length;++e){let t=n.tastics[e];t.schema={schema:[]};for(let e of this.tasticSchemas)if(e.tasticType===t.tasticType){t.schema=e.schema;break}}}return e}createRegion(e,t){t.regionId=e,this.regions[e]=new M(t)}getRegion(e){if(!this.regions[e])throw new Error("Region with identifier "+e+" unknown.");return this.regions[e]}addCell(e,t={}){return this.getRegion(e).addCell({configuration:t})}duplicateCell(e,t){const n=this.addCell(e,t.configuration);return t.tastics.forEach((t,i)=>{this.addTastic(e,n.cellId,t.tasticType,i,t.configuration)}),n}addKit(e,t){return this.getRegion(e).addKit(t)}findElement(e){const t=Object.keys(e)[0],n=Object.values(e)[0];for(let e in this.regions)for(let[i,r]of Object.entries(this.regions[e].elements))if(r[t]===n)return[e,+i];throw new Error("Could not find element with "+JSON.stringify(e))}hasElement(e){try{return!!this.findElement(e)}catch(e){return!1}}getElement(e){let[t,n]=this.findElement(e);return this.regions[t].elements[n]}removeElement(e){let[t,n]=this.findElement(e);this.regions[t].elements.splice(n,1)}moveElement(e,t){if(!this.regions[t.region])throw new Error("Unknown target region "+t.region);let[n,i]=this.findElement(e),r=this.regions[n].elements.splice(i,1)[0];this.regions[t.region].elements.splice(void 0===t.element?this.regions[t.region].elements.length:t.element-(n===t.region&&t.element>i?1:0),0,r)}addTastic(e,t,n,i,r={}){let o=null;for(let e of this.tasticSchemas)if(e.tasticType===n){o=e;break}return this.getRegion(e).getElement({cellId:t}).addTastic(n,r,o,i)}getTastics(){let e=[];return Object.values(this.regions).forEach(t=>{t.getCells().forEach(t=>{e=e.concat(t.tastics)})}),e}findTastic(e){for(let t in this.regions)for(let n=0;n<this.regions[t].elements.length;++n)for(let i in this.regions[t].elements[n].tastics||[]){if(this.regions[t].elements[n].tastics[i].tasticId===e)return[t,+n,+i]}throw new Error("Could not find tastic with id "+e)}hasTastic(e){try{return!!this.findTastic(e)}catch(e){return!1}}getTastic(e){let[t,n,i]=this.findTastic(e);return this.regions[t].elements[n].tastics[i]}removeTastic(e){let[t,n,i]=this.findTastic(e);this.regions[t].elements[n].tastics.splice(i,1)}moveTastic(e,t){let[n,i,r]=this.findTastic(e),o=this.regions[n].elements[i].tastics.splice(r,1)[0],[s,a]=this.findElement({cellId:t.cell});this.regions[s].elements[a].tastics.splice(void 0===t.tasticDropPosition?this.regions[s].elements[a].tastics.length:t.tasticDropPosition-(n===s&&i===a&&t.tasticDropPosition>=r?1:0),0,o)}duplicateTastic(e,t){const[n,,i]=this.findTastic(e),r=this.getTastic(e);return this.addTastic(n,t,r.tasticType,i+1,r.configuration)}export(){let e={};for(let[t,n]of Object.entries(this.regions))e[t]=n.export();return{pageId:this.pageId,nodes:this.nodes,layoutId:this.layoutId,name:this.name,regions:e}}};const P=(e,t,n)=>{n={resourceType:"image",type:"upload",...n};let i=[];for(let[e,t]of Object.entries(n))switch(e){case"secure":case"resourceType":case"type":break;case"background":case"crop":case"fetch_format":case"gravity":case"height":case"quality":case"width":case"x":case"y":t&&i.push(e[0]+"_"+t);break;default:throw new Error("Unhandled image transformation "+e)}return i.sort(),`https://res.cloudinary.com/${t.cloudName}/${n.resourceType}/${n.type}/${i.join(",")}/${r=e,encodeURI(r).replace(/[?=]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}`;var r};var A=class{constructor(e){this.configuration={cloudName:e.cloudName}}getImageUrl(e,t,n,i={}){return P(e.mediaId,this.configuration,{fetch_format:e.format&&"svg"===e.format?void 0:"auto",width:t,height:n,secure:!0,...this.getQuality(i),...this.getFetchFormat(i),...this.getGravityOptions(i),...this.cropOptions(i)})}getFetchImageUrl(e,t,n,i={}){return e.startsWith("//")&&(e="https:"+e),P(e,this.configuration,{fetch_format:"auto",type:"fetch",width:t,height:n,secure:!0,...this.getQuality(i),...this.getFetchFormat(i),...this.getGravityOptions(i),...this.cropOptions(i)})}getImageUrlWithoutDefaults(e,t,n,i={}){return P(e.mediaId,this.configuration,{width:t,height:n,...i})}getGravityOptions(e){if(e.crop)return{};let t={gravity:"faces:auto"};return e.gravity&&(t.gravity="custom"===e.gravity.mode?"xy_center":e.gravity.mode,e.gravity.coordinates&&(t.x=e.gravity.coordinates.x,t.y=e.gravity.coordinates.y)),t}cropOptions(e){let t={crop:"fill"};return e.crop&&(t.crop=e.crop),e.background&&(t.background=e.background),t}getQuality(e){let t={quality:"auto"};return e.quality&&(t.quality=e.quality),t}getFetchFormat(e){let t={};return e.fetch_format&&(t.fetch_format=e.fetch_format),e.fetchFormat&&(t.fetch_format=e.fetchFormat),t}};var _=class{constructor(){this.imageSizes=[16,32,64,128,256,512,1024,2048]}getImageDimensions(e,t,n,i=null,r=1){let o=this.getFloatRatio(e,i),s=t&&Math.round(+t*r),a=n&&Math.round(+n*r);return s&&i&&(a=Math.round(s*o)),a&&!s&&i&&(s=Math.round(a/o)),[s,a]}getFloatRatio(e=null,t=null){if(!t&&e&&e.width&&e.height)return e.height/e.width;const n=String(t).match(/([0-9]+):([0-9]+)/);return n?n[2]/n[1]:t}getImageLink(e,t,n,i,r,o={},s=1){let a=this.getMediaApi(t),[l,c]=this.getImageDimensions(e,n,i,r,s),u=l/c;if(["fill","pad"].includes(o.crop)){for(let e=0;e<this.imageSizes.length;++e)if(this.imageSizes[e]>=l){l=this.imageSizes[e];break}c=o.autoHeight?null:Math.ceil(l/u)}return"string"==typeof e?a.getFetchImageUrl(e,l,c,o):a.getImageUrl(e,l,c,o)}getMediaApi(e){switch(e.media.engine){case"cloudinary":return new A(e.media);default:throw new Error("No valid media API found.")}}static getElementDimensions(e){let t=0;if(getComputedStyle){let n=getComputedStyle(e);t+=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight)}return{width:e.clientWidth-t,height:e.clientHeight}}},U=n(0),q={enum:U,localizedEnum:U},z=(e,t)=>Object.fromEntries(Object.entries(e).filter(([e])=>!t.includes(e))),H=(e,t=null)=>{"undefined"!=typeof PRODUCTION&&PRODUCTION||"undefined"==typeof window||!window||!window.document||console.info("%c🗑 %cDeprecation Notice: %s %s","color: gray","color: orange",t?"["+(t.displayName||t.constructor.name)+"]":"",e)},W=(e,t,n=!1)=>{let i=!1;return function(){let r=this,o=arguments,s=function(){i=null,n||e.apply(r,o)},a=n&&!i;clearTimeout(i),i=setTimeout(s,t),a&&e.apply(r,o)}},L=(e,t)=>{let n=!1;return function(){n||(e.apply(this,arguments),n=!0,setTimeout((function(){n=!1}),t))}};var $=class{constructor(e,t={}){if(this.context={customer:"demo",idDebug:!1,endpoint:"preview",...e},this.messageHandlers=t,!this.context.previewId)throw new Error("context.previewId is required");this.webSocket=null,this.connected=!1,this.connectionFails=0,this.connect()}connect(){this.webSocket=new WebSocket((this.context.isDebug?"ws://":"wss://")+this.context.customer+".frontastic.io"+(this.context.isDebug?".local":"")+`:8080/ws?${this.context.endpoint}=${this.context.previewId}`),this.webSocket.onmessage=this.handleMessage.bind(this),this.webSocket.onopen=()=>{this.connectionFails=0,this.connected=!0},this.webSocket.onclose=()=>{this.webSocket=null,this.connected=!1,setTimeout(this.connect.bind(this),1e3*Math.min(++this.connectionFails,30))}}handleMessage(e){let t=JSON.parse(e.data);if("Ping"!==t.Name)return this.messageHandlers[t.Name]?this.messageHandlers[t.Name](t.Payload,t):void console.info("Unknown WebSocket message",t)}sendMessage(e,t=!1){if(e.Channel=this.context.previewId,e.Payload=e.Payload||[],this.connected)return this.webSocket.send(JSON.stringify(e));t&&setTimeout(()=>{this.sendMessage(e,!0)},100)}close(){this.webSocket.onclose=()=>{},this.webSocket.close()}};n.d(t,"ConfigurationSchema",(function(){return f})),n.d(t,"DefaultSchemas",(function(){return h})),n.d(t,"generateId",(function(){return p})),n.d(t,"getTranslation",(function(){return y})),n.d(t,"httpBuildQuery",(function(){return k})),n.d(t,"httpParseQuery",(function(){return x})),n.d(t,"isTranslatableByDefault",(function(){return b})),n.d(t,"shouldFieldBeTranslated",(function(){return w})),n.d(t,"registerServiceWorker",(function(){return T})),n.d(t,"VisibilityChange",(function(){return j})),n.d(t,"cellDimensions",(function(){return E})),n.d(t,"Cell",(function(){return F})),n.d(t,"Page",(function(){return R})),n.d(t,"Region",(function(){return M})),n.d(t,"Tastic",(function(){return D})),n.d(t,"MediaApi",(function(){return _})),n.d(t,"FacetTypeSchemaMap",(function(){return q})),n.d(t,"omit",(function(){return z})),n.d(t,"deprecate",(function(){return H})),n.d(t,"debounce",(function(){return W})),n.d(t,"throttle",(function(){return L})),n.d(t,"Notifier",(function(){return $}))}])}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["frontastic-common"]=t():e["frontastic-common"]=t()}(global,(function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=7)}([function(e){e.exports=JSON.parse('{"schema":[{"name":"Value Order","fields":[{"label":"Strip Label Prefix","field":"stripLabelPrefix","type":"boolean","default":false},{"label":"Sort Order","field":"sortOrder","type":"enum","values":[{"value":"sort-undefined","name":"Undefined"},{"value":"sort-ascending","name":"Ascending"},{"value":"sort-descending","name":"Descending"}],"default":"sort-undefined"}]}]}')},function(e){e.exports=JSON.parse('{"schema":[{"name":"Display properties","fields":[{"label":"Highlight menu item","field":"displayHighlightMenuItem","type":"boolean","default":false},{"label":"Highlight category tag","field":"displayHighlightCategoryTag","type":"boolean","default":false},{"label":"Description","field":"displayDescription","type":"string","translatable":true},{"label":"Custom CSS class","field":"displayClassname","type":"string","translatable":false},{"label":"Image","field":"displayMedia","type":"media","options":{"ratio":"4:1"}}]},{"name":"SEO","fields":[{"label":"Title","field":"seoTitle","type":"string","translatable":true},{"label":"Description","field":"seoDescription","type":"string","translatable":true},{"label":"Keywords","field":"seoKeywords","type":"string","translatable":true}]}]}')},function(e){e.exports=JSON.parse('{"schema":[]}')},function(e,t,n){var i=n(4),r=n(6);e.exports=function(e,t,n){var o=t&&n||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var s=(e=e||{}).random||(e.rng||i)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;++a)t[o+a]=s[a];return t||r(s)}},function(e,t,n){var i=n(5);e.exports=function(){return i.randomBytes(16)}},function(e,t){e.exports=require("crypto")},function(e,t){for(var n=[],i=0;i<256;++i)n[i]=(i+256).toString(16).substr(1);e.exports=function(e,t){var i=t||0,r=n;return[r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],"-",r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]],r[e[i++]]].join("")}},function(e,t,n){"use strict";function i(e){return"stream"===e||"dataSource"===e}n.r(t);const r=["product","product-list","content","content-list"];function o(e,t,n){return void 0!==e?Boolean(e):"stream"===t&&r.includes(n)}function s(e){if(!Array.isArray(e.fields))return{};let t={};for(let n=0;n<e.fields.length;++n){const i=e.fields[n];if(!i.field)continue;const r=i.type||"text";t[i.field]={field:i.field,type:r,sectionName:e.name||"",values:i.values||[],default:u(r,i.default),validate:i.validate||{},fields:i.fields||null,min:void 0===i.min?1:i.min,max:i.max||16,required:o(i.required,r,i.streamType),disabled:!0===i.disabled,translatable:i.translatable}}return t}function a(e,t){let n=e.default;if(void 0!==t[e.field]&&null!==t[e.field]&&(n=t[e.field]),"group"===e.type){let t=(n||[]).slice(0,e.max);for(let n=t.length;n<e.min;++n)t[n]={};return i=t,r=e.fields,(i||[]).map(e=>{null!==e&&"object"==typeof e||(e={});for(let t of r)void 0!==e[t.field]&&null!==e[t.field]||(e[t.field]=t.default||null);return e})}var i,r;return n}function l(e,t,n,i){("object"!=typeof i||Array.isArray(i))&&(i={});let r={};for(let o of Object.values(e))r[o.field]=c(o,t,n,i);return r}function c(e,t,n,r){const o=r[e.field];if("group"===e.type){const i=s(e);return a(e,t).map((e,t)=>{const r=void 0!==o&&o.length>t?o[t]:{};return l(i,e,n,r)})}if(void 0!==o)return o;const c=a(e,t);return i(e.type)?n[c]||null:c}function u(e,t){if(void 0!==t)return t;switch(e){case"group":return[];case"decimal":case"integer":case"float":case"number":return 0;case"string":case"text":case"markdown":return"";case"json":return"{}";case"boolean":return!1;default:return null}}class d{constructor(e=[],t={}){this.schema=e,this.setConfiguration(t),this.fields={};for(let e=0;e<this.schema.length;++e)this.fields={...this.fields,...s(this.schema[e])}}setConfiguration(e){this.configuration=Array.isArray(e)?{}:e||{}}set(e,t){if(!this.fields[e])throw new Error("Unknown field "+e+" in this configuration schema.");return new d(this.schema,{...this.configuration,[e]:t})}get(e){const t=this.fields[e];return t?a(t,this.configuration):(console.warn("Unknown field "+e+" in this configuration schema."),this.configuration[e]||null)}getField(e){const t=this.fields[e];if(!t)throw new Error("Unknown field "+e+" in this configuration schema.");return t}has(e){return!!this.fields[e]}getSchema(){return this.schema}getConfiguration(){return this.configuration}isFieldRequired(e){return this.getField(e).required}isFieldDisabled(e){return this.getField(e).disabled}hasMissingRequiredValueInField(e,t=!1){const n=this.getField(e),r=this.get(e);return"group"===n.type?r.some(e=>new d([n],e).hasMissingRequiredFieldValues(t)):!!n.required&&((!i(n.type)||!t)&&("reference"===n.type?"object"!=typeof r||null===r||"string"!=typeof r.type||""===r.type||"string"!=typeof r.target||""===r.target:i(n.type)&&r||"media"===n.type&&r||"string"===n.type&&n.translatable&&r?Object.values(r).some(e=>!e):null==r||""===r))}hasMissingRequiredFieldValues(e=!1){return Object.keys(this.fields).some(t=>this.hasMissingRequiredValueInField(t,e))}hasMissingRequiredFieldValuesInSection(e,t=!1){return Object.entries(this.fields).some(([n,i])=>i.sectionName===e&&this.hasMissingRequiredValueInField(n,t))}getConfigurationWithResolvedStreams(e={},t={}){return l(this.fields,this.configuration,e,t)}}var f=d,h={NodeConfigurationSchema:n(1),CellConfigurationSchema:n(2)},g=n(3),m=n.n(g),p=function(){return m()()},y=function(e,t,n){if(!e||"object"!=typeof e)return{text:e,locale:t};if(e[t])return{text:e[t],locale:t};if(e[n])return{text:e[n],locale:n};if(!Object.keys(e).length)return{text:"",locale:null,translated:!1};let i=Object.keys(e)[0];return{text:e[i]||"",locale:i,translated:!1}};const b=e=>{switch(e){case"string":case"text":case"markdown":case"json":return!0;default:return!1}},w=e=>void 0!==e.translatable?e.translatable:b(e.type);let v=function(e){return e=(e+"").toString(),encodeURIComponent(e).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A").replace(/%20/g,"+")};var k=function(e,t,n){let i,r,o=[],s=function(e,t,n){let i,r=[];if(!0===t?t="1":!1===t&&(t="0"),null!=t){if("object"==typeof t){for(i in t)null!=t[i]&&r.push(s(e+"["+i+"]",t[i],n));return r.join(n)}if("function"!=typeof t)return v(e)+"="+v(t);throw new Error("There was an error processing for httpBuildQuery().")}return""};for(r in n||(n="&"),e){i=e[r],t&&!isNaN(r)&&(r=String(t)+r);let a=s(r,i,n);""!==a&&o.push(a)}return o.join(n)};let I=function(e){if("object"!=typeof e)return!1;let t=0;for(let n of Object.keys(e))if(+n!=t++)return!1;return!0},S=function(e){for(let[t,n]of Object.entries(e))n&&"object"==typeof n&&(e[t]=S(n)),I(n)&&(e[t]=Object.values(n));return e};var x=function(e){let t={};return function(e,t){var n,i,r,o,s,a,l,c,u,d,f,h,g,m=String(e).replace(/^&/,"").replace(/&$/,"").split("&"),p=m.length,y=function(e){return decodeURIComponent(e.replace(/\+/g,"%20"))};for(t||(t=this.window),n=0;n<p;n++){for(u=y((c=m[n].split("="))[0]),d=c.length<2?"":y(c[1]);" "===u.charAt(0);)u=u.slice(1);if(u.indexOf("\0")>-1&&(u=u.slice(0,u.indexOf("\0"))),u&&"["!==u.charAt(0)){for(h=[],f=0,i=0;i<u.length;i++)if("["!==u.charAt(i)||f){if("]"===u.charAt(i)&&f&&(h.length||h.push(u.slice(0,f-1)),h.push(u.substr(f,i-f)),f=0,"["!==u.charAt(i+1)))break}else f=i+1;for(h.length||(h=[u]),i=0;i<h[0].length&&(" "!==(l=h[0].charAt(i))&&"."!==l&&"["!==l||(h[0]=h[0].substr(0,i)+"_"+h[0].substr(i+1)),"["!==l);i++);for(a=t,i=0,g=h.length;i<g;i++)if(u=h[i].replace(/^['"]/,"").replace(/['"]$/,""),i!==h.length-1,s=a,""!==u&&" "!==u||0===i)void 0===a[u]&&(a[u]={}),a=a[u];else{for(o in r=-1,a)a.hasOwnProperty(o)&&+o>r&&o.match(/^\d+$/g)&&(r=+o);u=r+1}s[u]=d}}}(e,t),t=S(t),t};const T=Boolean("undefined"==typeof window||!window.location.hostname||"localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function C(){if("serviceWorker"in navigator){const e=process.env.PUBLIC_URL||"/";if(new URL(e,window.location).origin!==window.location.origin)return;window.addEventListener("load",()=>{const e="/service-worker.js";T?function(e){fetch(e).then(t=>{404===t.status||-1===t.headers.get("content-type").indexOf("javascript")?navigator.serviceWorker.ready.then(e=>{e.unregister().then(()=>{window.location.reload()})}):O(e)}).catch(()=>{console.log("No internet connection found. App is running in offline mode.")})}(e):O(e)})}}function O(e){navigator.serviceWorker.register(e).then(e=>{e.onupdatefound=()=>{const t=e.installing;t.onstatechange=()=>{"installed"===t.state&&(navigator.serviceWorker.controller?console.log("New content is available; please refresh."):console.log("Content is cached for offline use."))}}}).catch(e=>{console.error("Error during service worker registration:",e)})}var j=function(){let e,t,n={};if(this.registerCallBack=function(e,t){let i=null;do{i=Math.floor(65536*(1+Math.random())).toString(16).substring(1)}while(i in n);return n[i]={hidden:e,active:t},i},this.removeCallBack=function(e){delete n[e]},"undefined"==typeof document?(e=!1,t=!1):void 0!==document.hidden?(e="hidden",t="visibilitychange"):void 0!==document.mozHidden?(e="mozHidden",t="mozvisibilitychange"):void 0!==document.msHidden?(e="msHidden",t="msvisibilitychange"):void 0!==document.webkitHidden&&(e="webkitHidden",t="webkitvisibilitychange"),e&&t){let i=function(){for(let t of Object.values(n))document[e]?t.hidden():t.active()};void 0===document.addEventListener||void 0===document[e]?console.warn("This feature requires a browser, such as Google Chrome or Firefox, that supports the Page Visibility API."):document.addEventListener(t,i,!1)}},E=[{size:12,name:"1",icon:"looks_one"},{size:6,name:"1/2",icon:"looks_two"},{size:4,name:"1/3",icon:"looks_3"},{size:8,name:"2/3",icon:"looks_3"},{size:3,name:"1/4",icon:"looks_4"},{size:9,name:"3/4",icon:"looks_4"},{size:2,name:"1/6",icon:"looks_6"}];var D=class{constructor(e={}){this.tasticId=e.tasticId||p(),this.tasticType=e.tasticType,this.configuration=e.configuration||{};let t=[{name:"General settings",folded:!0,fields:[{label:"Name",field:"name",type:"string"},{label:"Show on mobile",field:"mobile",type:"boolean",default:!0},{label:"Show on tablet",field:"tablet",type:"boolean",default:!0},{label:"Show on desktop",field:"desktop",type:"boolean",default:!0},{label:"Anchor",field:"tasticId",type:"string",translatable:!1,disabled:!0,default:"#"+this.tasticId}]}];if(e.schema)for(let n=0;n<e.schema.length;++n)t.push(e.schema[n]);this.schema=new f(t,this.configuration)}export(){return{tasticId:this.tasticId,tasticType:this.tasticType,configuration:this.schema.getConfiguration()}}};var F=class{constructor(e={}){if(this.cellId=e.cellId||p(),this.configuration=e.configuration||{},this.customConfiguration=e.customConfiguration||{},this.schema=new f([{name:"General settings",folded:!0,fields:[{label:"Name",field:"name",type:"string",translatable:!0},{label:"Layout element width",field:"size",type:"enum",values:E&&E.map(e=>({name:e.name,value:e.size})),default:12},{label:"Show on mobile",field:"mobile",type:"boolean",default:!0},{label:"Show on tablet",field:"tablet",type:"boolean",default:!0},{label:"Show on desktop",field:"desktop",type:"boolean",default:!0}]}],this.configuration),this.tastics=[],e.tastics&&e.tastics.length)for(let t=0;t<e.tastics.length;++t)this.tastics.push(new D(e.tastics[t]))}addTastic(e,t={},n=[],i=0){const r=new D({tasticType:e,configuration:t,schema:n});return this.tastics.splice(i,0,r),r}getTastic(e){for(let t of this.tastics)if(t.tasticId===e)return t;throw new Error("Could not find component with ID "+e)}getTasticCount(){return this.tastics.length}export(){return{cellId:this.cellId,configuration:this.schema.getConfiguration(),customConfiguration:this.customConfiguration,tastics:this.tastics.map(e=>e.export())}}};var N=class{constructor(e){if(!e.kitDefinitionId)throw new Error("Missing kitDefinitionId in "+JSON.stringify(e));this.kitDefinitionId=e.kitDefinitionId,this.kitId=e.kitId||p(),this.configuration=e.configuration||{}}export(){return{kitId:this.kitId,kitDefinitionId:this.kitDefinitionId,configuration:this.configuration}}};var M=class{constructor(e={}){if(this.regionId=e.regionId||p(),this.configuration=e.configuration||{},this.schema=new f([{name:"Responsive",folded:!0,fields:[{label:"Show on mobile",field:"mobile",type:"boolean",default:!0},{label:"Show on tablet",field:"tablet",type:"boolean",default:!0},{label:"Show on desktop",field:"desktop",type:"boolean",default:!0}]},{name:"Layout",fields:[{label:"Cell direction",field:"flexDirection",type:"enum",default:"row",values:[{value:"row",name:"Row"},{value:"column",name:"Column"},{value:"row-reverse",name:"Row (reversed)"},{value:"column-reverse",name:"Column (reversed)"}]},{label:"Cell wrapping",field:"flexWrap",type:"enum",default:"wrap",values:[{value:"nowrap",name:"No wrapping"},{value:"wrap",name:"Wrap cells"}]},{label:"Justify cells",field:"justifyContent",type:"enum",default:"space-between",values:[{value:"flex-start",name:"Put at beginning"},{value:"flex-end",name:"Put at end"},{value:"center",name:"Center Cells"},{value:"space-between",name:"Space between cells"},{value:"space-around",name:"Space around cells"},{value:"space-even",name:"Evenly spaced cells"}]},{label:"Cell alignment",field:"alignItems",type:"enum",default:"stretch",values:[{value:"flex-start",name:"Align to start"},{value:"flex-end",name:"Align to end"},{value:"center",name:"Center cells"},{value:"stretch",name:"Stretch cells"},{value:"baseline",name:"Align to baseline"}]},{label:"Align multiple cell rows",field:"alignContent",type:"enum",default:"space-between",values:[{value:"flex-start",name:"Put at beginning"},{value:"flex-end",name:"Put at end"},{value:"center",name:"Center rows"},{value:"stretch",name:"Stretch rows"},{value:"space-between",name:"Space between rows"},{value:"space-around",name:"Space around rows"}]}]}],this.configuration),this.elements=[],e.elements&&e.elements.length)for(let t=0;t<e.elements.length;++t)this.addElement(e.elements[t])}addElement(e){if(e.cellId)return this.addCell(e);if(e.kitId)return this.addKit(e);throw new TypeError("Unknown element type: "+JSON.stringify(e))}addCell(e){return this.elements.push(new F(e)),this.elements[this.elements.length-1]}addKit(e){return this.elements.push(new N(e)),this.elements[this.elements.length-1]}getElement(e){const t=Object.keys(e)[0],n=Object.values(e)[0];for(let e of this.elements)if(e[t]===n)return e;throw new Error("Could not find element with ID "+JSON.stringify(n))}getCells(){return this.elements.filter(e=>e instanceof F)}getKits(){return this.elements.filter(e=>e instanceof N)}export(){return{regionId:this.regionId,configuration:this.schema.getConfiguration(),elements:this.elements.map(e=>e.export())}}};var R=class{constructor(e={},t=[],n=[]){this.pageId=e.pageId||null,this.nodes=e.nodes||[],this.layoutId=e.layoutId||"three_rows",this.name=e.name||"Unnamed Page",this.regions={},this.tasticSchemas=(n||[]).map(e=>e.configurationSchema);for(let n=0;n<t.length;++n){let i=t[n];e.regions&&e.regions[i]&&e.regions[i].elements&&e.regions[i].elements.length&&(e.regions[i].elements=this.mapTastics(e.regions[i].elements)),this.createRegion(i,e.regions&&e.regions[i]||{})}}mapTastics(e){for(let t=0;t<e.length;++t){let n=e[t];if(n.cellId&&(n.tastics&&n.tastics.length))for(let e=0;e<n.tastics.length;++e){let t=n.tastics[e];t.schema={schema:[]};for(let e of this.tasticSchemas)if(e.tasticType===t.tasticType){t.schema=e.schema;break}}}return e}createRegion(e,t){t.regionId=e,this.regions[e]=new M(t)}getRegion(e){if(!this.regions[e])throw new Error("Region with identifier "+e+" unknown.");return this.regions[e]}addCell(e,t={}){return this.getRegion(e).addCell({configuration:t})}duplicateCell(e,t){const n=this.addCell(e,t.configuration);return t.tastics.forEach((t,i)=>{this.addTastic(e,n.cellId,t.tasticType,i,t.configuration)}),n}addKit(e,t){return this.getRegion(e).addKit(t)}findElement(e){const t=Object.keys(e)[0],n=Object.values(e)[0];for(let e in this.regions)for(let[i,r]of Object.entries(this.regions[e].elements))if(r[t]===n)return[e,+i];throw new Error("Could not find element with "+JSON.stringify(e))}hasElement(e){try{return!!this.findElement(e)}catch(e){return!1}}getElement(e){let[t,n]=this.findElement(e);return this.regions[t].elements[n]}removeElement(e){let[t,n]=this.findElement(e);this.regions[t].elements.splice(n,1)}moveElement(e,t){if(!this.regions[t.region])throw new Error("Unknown target region "+t.region);let[n,i]=this.findElement(e),r=this.regions[n].elements.splice(i,1)[0];this.regions[t.region].elements.splice(void 0===t.element?this.regions[t.region].elements.length:t.element-(n===t.region&&t.element>i?1:0),0,r)}addTastic(e,t,n,i,r={}){let o=null;for(let e of this.tasticSchemas)if(e.tasticType===n){o=e;break}return this.getRegion(e).getElement({cellId:t}).addTastic(n,r,o,i)}getTastics(){let e=[];return Object.values(this.regions).forEach(t=>{t.getCells().forEach(t=>{e=e.concat(t.tastics)})}),e}findTastic(e){for(let t in this.regions)for(let n=0;n<this.regions[t].elements.length;++n)for(let i in this.regions[t].elements[n].tastics||[]){if(this.regions[t].elements[n].tastics[i].tasticId===e)return[t,+n,+i]}throw new Error("Could not find tastic with id "+e)}hasTastic(e){try{return!!this.findTastic(e)}catch(e){return!1}}getTastic(e){let[t,n,i]=this.findTastic(e);return this.regions[t].elements[n].tastics[i]}removeTastic(e){let[t,n,i]=this.findTastic(e);this.regions[t].elements[n].tastics.splice(i,1)}moveTastic(e,t){let[n,i,r]=this.findTastic(e),o=this.regions[n].elements[i].tastics.splice(r,1)[0],[s,a]=this.findElement({cellId:t.cell});this.regions[s].elements[a].tastics.splice(void 0===t.tasticDropPosition?this.regions[s].elements[a].tastics.length:t.tasticDropPosition-(n===s&&i===a&&t.tasticDropPosition>=r?1:0),0,o)}duplicateTastic(e,t){const[n,,i]=this.findTastic(e),r=this.getTastic(e);return this.addTastic(n,t,r.tasticType,i+1,r.configuration)}export(){let e={};for(let[t,n]of Object.entries(this.regions))e[t]=n.export();return{pageId:this.pageId,nodes:this.nodes,layoutId:this.layoutId,name:this.name,regions:e}}};const P=(e,t,n,i)=>{i={resourceType:t,type:"upload",...i};let r=[];for(let[e,t]of Object.entries(i))switch(e){case"secure":case"resourceType":case"type":break;case"background":case"crop":case"fetch_format":case"gravity":case"height":case"quality":case"width":case"x":case"y":t&&r.push(e[0]+"_"+t);break;default:throw new Error("Unhandled image transformation "+e)}return r.sort(),`https://res.cloudinary.com/${n.cloudName}/${i.resourceType}/${i.type}/${r.join(",")}/${o=e,encodeURI(o).replace(/[?=]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}`;var o};var A=class{constructor(e){this.configuration={cloudName:e.cloudName}}getImageUrl(e,t,n,i={}){return P(e.mediaId,"string"==typeof e.resourceType&&""!==e.resourceType?e.resourceType:"image",this.configuration,{fetch_format:e.format&&"svg"===e.format?void 0:"auto",width:t,height:n,secure:!0,...this.getQuality(i),...this.getFetchFormat(i),...this.getGravityOptions(i),...this.cropOptions(i)})}getFetchImageUrl(e,t,n,i={}){return e.startsWith("//")&&(e="https:"+e),P(e,"image",this.configuration,{fetch_format:"auto",type:"fetch",width:t,height:n,secure:!0,...this.getQuality(i),...this.getFetchFormat(i),...this.getGravityOptions(i),...this.cropOptions(i)})}getImageUrlWithoutDefaults(e,t,n,i={}){return P(e.mediaId,"string"==typeof e.resourceType&&""!==e.resourceType?e.resourceType:"image",this.configuration,{width:t,height:n,...i})}getGravityOptions(e){if(e.crop)return{};let t={gravity:"faces:auto"};return e.gravity&&(t.gravity="custom"===e.gravity.mode?"xy_center":e.gravity.mode,e.gravity.coordinates&&(t.x=e.gravity.coordinates.x,t.y=e.gravity.coordinates.y)),t}cropOptions(e){let t={crop:"fill"};return e.crop&&(t.crop=e.crop),e.background&&(t.background=e.background),t}getQuality(e){let t={quality:"auto"};return e.quality&&(t.quality=e.quality),t}getFetchFormat(e){let t={};return e.fetch_format&&(t.fetch_format=e.fetch_format),e.fetchFormat&&(t.fetch_format=e.fetchFormat),t}};var _=class{constructor(){this.imageSizes=[16,32,64,128,256,512,1024,2048]}getImageDimensions(e,t,n,i=null,r=1){let o=this.getFloatRatio(e,i),s=t&&Math.round(+t*r),a=n&&Math.round(+n*r);return s&&i&&(a=Math.round(s*o)),a&&!s&&i&&(s=Math.round(a/o)),[s,a]}getFloatRatio(e=null,t=null){if(!t&&e&&e.width&&e.height)return e.height/e.width;const n=String(t).match(/([0-9]+):([0-9]+)/);return n?n[2]/n[1]:t}getImageLink(e,t,n,i,r,o={},s=1){let a=this.getMediaApi(t),[l,c]=this.getImageDimensions(e,n,i,r,s),u=l/c;if(["fill","pad"].includes(o.crop)){for(let e=0;e<this.imageSizes.length;++e)if(this.imageSizes[e]>=l){l=this.imageSizes[e];break}c=o.autoHeight?null:Math.ceil(l/u)}return"string"==typeof e?a.getFetchImageUrl(e,l,c,o):a.getImageUrl(e,l,c,o)}getMediaApi(e){switch(e.media.engine){case"cloudinary":return new A(e.media);default:throw new Error("No valid media API found.")}}static getElementDimensions(e){let t=0;if(getComputedStyle){let n=getComputedStyle(e);t+=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight)}return{width:e.clientWidth-t,height:e.clientHeight}}},U=n(0),q={enum:U,localizedEnum:U},z=(e,t)=>Object.fromEntries(Object.entries(e).filter(([e])=>!t.includes(e))),H=(e,t=null)=>{"undefined"!=typeof PRODUCTION&&PRODUCTION||"undefined"==typeof window||!window||!window.document||console.info("%c🗑 %cDeprecation Notice: %s %s","color: gray","color: orange",t?"["+(t.displayName||t.constructor.name)+"]":"",e)},W=(e,t,n=!1)=>{let i=!1;return function(){let r=this,o=arguments,s=function(){i=null,n||e.apply(r,o)},a=n&&!i;clearTimeout(i),i=setTimeout(s,t),a&&e.apply(r,o)}},L=(e,t)=>{let n=!1;return function(){n||(e.apply(this,arguments),n=!0,setTimeout((function(){n=!1}),t))}};var $=class{constructor(e,t={}){if(this.context={customer:"demo",idDebug:!1,endpoint:"preview",...e},this.messageHandlers=t,!this.context.previewId)throw new Error("context.previewId is required");this.webSocket=null,this.connected=!1,this.connectionFails=0,this.connect()}connect(){this.webSocket=new WebSocket((this.context.isDebug?"ws://":"wss://")+this.context.customer+".frontastic.io"+(this.context.isDebug?".local":"")+`:8080/ws?${this.context.endpoint}=${this.context.previewId}`),this.webSocket.onmessage=this.handleMessage.bind(this),this.webSocket.onopen=()=>{this.connectionFails=0,this.connected=!0},this.webSocket.onclose=()=>{this.webSocket=null,this.connected=!1,setTimeout(this.connect.bind(this),1e3*Math.min(++this.connectionFails,30))}}handleMessage(e){let t=JSON.parse(e.data);if("Ping"!==t.Name)return this.messageHandlers[t.Name]?this.messageHandlers[t.Name](t.Payload,t):void console.info("Unknown WebSocket message",t)}sendMessage(e,t=!1){if(e.Channel=this.context.previewId,e.Payload=e.Payload||[],this.connected)return this.webSocket.send(JSON.stringify(e));t&&setTimeout(()=>{this.sendMessage(e,!0)},100)}close(){this.webSocket.onclose=()=>{},this.webSocket.close()}};n.d(t,"ConfigurationSchema",(function(){return f})),n.d(t,"DefaultSchemas",(function(){return h})),n.d(t,"generateId",(function(){return p})),n.d(t,"getTranslation",(function(){return y})),n.d(t,"httpBuildQuery",(function(){return k})),n.d(t,"httpParseQuery",(function(){return x})),n.d(t,"isTranslatableByDefault",(function(){return b})),n.d(t,"shouldFieldBeTranslated",(function(){return w})),n.d(t,"registerServiceWorker",(function(){return C})),n.d(t,"VisibilityChange",(function(){return j})),n.d(t,"cellDimensions",(function(){return E})),n.d(t,"Cell",(function(){return F})),n.d(t,"Page",(function(){return R})),n.d(t,"Region",(function(){return M})),n.d(t,"Tastic",(function(){return D})),n.d(t,"MediaApi",(function(){return _})),n.d(t,"FacetTypeSchemaMap",(function(){return q})),n.d(t,"omit",(function(){return z})),n.d(t,"deprecate",(function(){return H})),n.d(t,"debounce",(function(){return W})),n.d(t,"throttle",(function(){return L})),n.d(t,"Notifier",(function(){return $}))}])}));
|
|
@@ -4,9 +4,9 @@ const cloudinaryEncodeURI = (string) => {
|
|
|
4
4
|
})
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
const cloudinaryUrl = (imageIdentifier, configuration, options) => {
|
|
7
|
+
const cloudinaryUrl = (imageIdentifier, resourceType, configuration, options) => {
|
|
8
8
|
options = {
|
|
9
|
-
resourceType:
|
|
9
|
+
resourceType: resourceType,
|
|
10
10
|
type: 'upload',
|
|
11
11
|
...options,
|
|
12
12
|
}
|
|
@@ -51,6 +51,7 @@ class Cloudinary {
|
|
|
51
51
|
getImageUrl (media, width, height, options = {}) {
|
|
52
52
|
return cloudinaryUrl(
|
|
53
53
|
media.mediaId,
|
|
54
|
+
typeof media.resourceType === 'string' && media.resourceType !== '' ? media.resourceType : 'image',
|
|
54
55
|
this.configuration,
|
|
55
56
|
{
|
|
56
57
|
fetch_format: media.format && media.format === 'svg' ? undefined : 'auto',
|
|
@@ -73,6 +74,7 @@ class Cloudinary {
|
|
|
73
74
|
|
|
74
75
|
return cloudinaryUrl(
|
|
75
76
|
url,
|
|
77
|
+
'image',
|
|
76
78
|
this.configuration,
|
|
77
79
|
{
|
|
78
80
|
fetch_format: 'auto',
|
|
@@ -91,6 +93,7 @@ class Cloudinary {
|
|
|
91
93
|
getImageUrlWithoutDefaults (media, width, height, options = {}) {
|
|
92
94
|
return cloudinaryUrl(
|
|
93
95
|
media.mediaId,
|
|
96
|
+
typeof media.resourceType === 'string' && media.resourceType !== '' ? media.resourceType : 'image',
|
|
94
97
|
this.configuration,
|
|
95
98
|
{
|
|
96
99
|
width: width,
|
|
@@ -51,9 +51,22 @@
|
|
|
51
51
|
"tree"
|
|
52
52
|
]
|
|
53
53
|
}
|
|
54
|
-
}
|
|
54
|
+
},
|
|
55
|
+
"anyOf": [
|
|
56
|
+
{
|
|
57
|
+
"not": {
|
|
58
|
+
"properties": {
|
|
59
|
+
"type": {
|
|
60
|
+
"enum": ["enum"]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"required": ["type"]
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{ "required": ["values"] }
|
|
67
|
+
]
|
|
55
68
|
},
|
|
56
|
-
{"$ref": "#/definitions/field"}
|
|
69
|
+
{ "$ref": "#/definitions/field" }
|
|
57
70
|
]
|
|
58
71
|
},
|
|
59
72
|
{
|
|
@@ -66,7 +79,7 @@
|
|
|
66
79
|
}
|
|
67
80
|
}
|
|
68
81
|
},
|
|
69
|
-
{"$ref": "#/definitions/group"}
|
|
82
|
+
{ "$ref": "#/definitions/group" }
|
|
70
83
|
]
|
|
71
84
|
},
|
|
72
85
|
{
|
|
@@ -79,7 +92,7 @@
|
|
|
79
92
|
}
|
|
80
93
|
}
|
|
81
94
|
},
|
|
82
|
-
{"$ref": "#/definitions/tastic"}
|
|
95
|
+
{ "$ref": "#/definitions/tastic" }
|
|
83
96
|
]
|
|
84
97
|
},
|
|
85
98
|
{
|
|
@@ -92,7 +105,7 @@
|
|
|
92
105
|
}
|
|
93
106
|
}
|
|
94
107
|
},
|
|
95
|
-
{"$ref": "#/definitions/image"}
|
|
108
|
+
{ "$ref": "#/definitions/image" }
|
|
96
109
|
]
|
|
97
110
|
},
|
|
98
111
|
{
|
|
@@ -105,13 +118,14 @@
|
|
|
105
118
|
}
|
|
106
119
|
}
|
|
107
120
|
},
|
|
108
|
-
{"$ref": "#/definitions/description"}
|
|
121
|
+
{ "$ref": "#/definitions/description" }
|
|
109
122
|
]
|
|
110
123
|
}
|
|
111
124
|
]
|
|
112
125
|
}
|
|
113
126
|
},
|
|
114
127
|
|
|
128
|
+
|
|
115
129
|
"field": {
|
|
116
130
|
"type": "object",
|
|
117
131
|
"properties": {
|
|
@@ -178,7 +192,7 @@
|
|
|
178
192
|
"type": "string"
|
|
179
193
|
}
|
|
180
194
|
},
|
|
181
|
-
"required": ["
|
|
195
|
+
"required": ["type", "label", "field"]
|
|
182
196
|
},
|
|
183
197
|
"group": {
|
|
184
198
|
"type": "object",
|