@frontastic/common 2.33.1 → 2.33.4
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 +128 -117
- package/composer.json +1 -1
- package/package.json +1 -1
- package/src/js/frontastic-common.js +1 -1
- package/src/js/notifier.js +5 -0
- package/src/json/library/common.json +21 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,84 +1,94 @@
|
|
|
1
|
-
# common Changelog
|
|
2
1
|
|
|
3
|
-
##
|
|
2
|
+
## Version 2.33.4 (2022-05-17)
|
|
3
|
+
|
|
4
|
+
* fix: used correct format on Changelog for catwalk and common
|
|
5
|
+
## Version 2.33.3 (2022-05-12)
|
|
6
|
+
|
|
7
|
+
* Prevent enum fields without values field to exist
|
|
8
|
+
|
|
9
|
+
## Version 2.33.2 (2022-05-05)
|
|
10
|
+
|
|
11
|
+
* fix(FP-1934): Pagination previous/nextCursor set to null on count 0.
|
|
12
|
+
|
|
13
|
+
## Version 2.33.1 (2022-04-21)
|
|
4
14
|
|
|
5
15
|
* chore: re-run release process
|
|
6
16
|
|
|
7
|
-
##
|
|
17
|
+
## Version 2.33.0 (2022-04-21)
|
|
8
18
|
|
|
9
19
|
* fix: add a missing @required statements
|
|
10
20
|
* feat: enhance TypeScript map types
|
|
11
21
|
* fix: correct type hints for translatable text
|
|
12
22
|
|
|
13
|
-
##
|
|
23
|
+
## Version 2.33.0 (2022-04-21)
|
|
14
24
|
|
|
15
25
|
* fix: add a missing @required statements
|
|
16
26
|
* feat: enhance TypeScript map types
|
|
17
27
|
* fix: correct type hints for translatable text
|
|
18
28
|
|
|
19
|
-
##
|
|
29
|
+
## Version 2.32.0 (2022-04-13)
|
|
20
30
|
|
|
21
31
|
* fix: rehused cart on api test order
|
|
22
32
|
* fix: added salutaion to api test address.
|
|
23
33
|
* feat(FP-840): included cart rawApiData when placing order in Shopware
|
|
24
34
|
|
|
25
|
-
##
|
|
35
|
+
## Version 2.31.2 (2022-04-11)
|
|
26
36
|
|
|
27
37
|
* fix: Categories with same name are returned
|
|
28
38
|
|
|
29
|
-
##
|
|
39
|
+
## Version 2.31.1 (2022-04-08)
|
|
30
40
|
|
|
31
41
|
* fix: prevent bc break on commercetools CartApi
|
|
32
42
|
|
|
33
|
-
##
|
|
43
|
+
## Version 2.31.0 (2022-04-07)
|
|
34
44
|
|
|
35
45
|
* feat(FP-1794): extracted logic to validate cart status before checkout
|
|
36
46
|
|
|
37
|
-
##
|
|
47
|
+
## Version 2.30.1 (2022-04-07)
|
|
38
48
|
|
|
39
49
|
* fix(FP-1794): consider only single successful payment as payment completed
|
|
40
50
|
* fix(FP-1794): moved cart readines validation to isReadyForCheckout
|
|
41
51
|
* fix(FP-1794): validated if cart is completed
|
|
42
52
|
|
|
43
|
-
##
|
|
53
|
+
## Version 2.30.0 (2022-04-05)
|
|
44
54
|
|
|
45
55
|
* feat: allow field type dataSource in Classic as well
|
|
46
56
|
|
|
47
|
-
##
|
|
57
|
+
## Version 2.29.0 (2022-03-30)
|
|
48
58
|
|
|
49
59
|
* feat(FP-1647): included machine region map in CustomerService
|
|
50
60
|
* feat(FP-1647): implemented region selector base on customer config
|
|
51
61
|
|
|
52
|
-
##
|
|
62
|
+
## Version 2.28.2 (2022-03-29)
|
|
53
63
|
|
|
54
64
|
* fix(FP-1694): checked mapped orders on default deprecated decorator
|
|
55
65
|
|
|
56
|
-
##
|
|
66
|
+
## Version 2.28.1 (2022-03-28)
|
|
57
67
|
|
|
58
68
|
* fix(FP-1694): checked mapped orders on default decorators
|
|
59
69
|
|
|
60
|
-
##
|
|
70
|
+
## Version 2.28.0 (2022-03-22)
|
|
61
71
|
|
|
62
72
|
* refactor(FP-1122): Make logic for handling single-attribute sorting the same as multi-attribute
|
|
63
73
|
* feat(FP-1122): Add sort by custom attribute functionality to Algolia integration
|
|
64
74
|
|
|
65
|
-
##
|
|
75
|
+
## Version 2.27.1 (2022-03-17)
|
|
66
76
|
|
|
67
77
|
* fix: fix issue from studio-deployment-branch
|
|
68
78
|
|
|
69
|
-
##
|
|
79
|
+
## Version 2.27.0 (2022-03-15)
|
|
70
80
|
|
|
71
81
|
* feat(FP-1486): upgrade Shopify version to latest stable version 2022-01
|
|
72
82
|
|
|
73
|
-
##
|
|
83
|
+
## Version 2.26.0 (2022-03-10)
|
|
74
84
|
|
|
75
85
|
* feat: add GraphCMS client factory
|
|
76
86
|
|
|
77
|
-
##
|
|
87
|
+
## Version 2.25.4 (2022-03-07)
|
|
78
88
|
|
|
79
89
|
* misc: allowed ramsey/uuid library version ^4 as dependency
|
|
80
90
|
|
|
81
|
-
##
|
|
91
|
+
## Version 2.25.3 (2022-03-02)
|
|
82
92
|
|
|
83
93
|
* fix(api-hub): replace content api with dummy for nextjs projects
|
|
84
94
|
* fix(api-hub): replace wishlist api with dummy for nextjs
|
|
@@ -88,16 +98,16 @@
|
|
|
88
98
|
* fix(api-hub): add dummy for AccountApi
|
|
89
99
|
* fix(api-hub): fix syntax and add parameter to factory config
|
|
90
100
|
|
|
91
|
-
##
|
|
101
|
+
## Version 2.25.2 (2022-02-15)
|
|
92
102
|
|
|
93
103
|
* fix(FP-775): Minor refactor, import of SprykerAddress
|
|
94
104
|
* fix(FP-755): Fix Spryker address
|
|
95
105
|
|
|
96
|
-
##
|
|
106
|
+
## Version 2.25.1 (2022-01-27)
|
|
97
107
|
|
|
98
108
|
* fix: if there's no filter chosen - the error reappears
|
|
99
109
|
|
|
100
|
-
##
|
|
110
|
+
## Version 2.25.0 (2022-01-24)
|
|
101
111
|
|
|
102
112
|
* fix(FP-838): improved error handling on parse locator for Shopware
|
|
103
113
|
* feat(FP-838): prevent update email, shipping address, or billing address on Shopware CartApi
|
|
@@ -111,17 +121,17 @@
|
|
|
111
121
|
* feat(FP-838): upgrade add, update, and remove item to cart on Shopware CartApi
|
|
112
122
|
* feat(FP-838): upgrade get anonymous cart and get cart by id on Shopware
|
|
113
123
|
|
|
114
|
-
##
|
|
124
|
+
## Version 2.24.0 (2022-01-05)
|
|
115
125
|
|
|
116
126
|
* feat(FP-324): Include User-Agent Frontastic as part of API requests
|
|
117
127
|
|
|
118
|
-
##
|
|
128
|
+
## Version 2.23.0 (2021-12-16)
|
|
119
129
|
|
|
120
130
|
* feat: Created method for CustomDataSourceValidation in the CustomDataSourceService
|
|
121
131
|
* feat: Store the stream type for stream fields
|
|
122
132
|
* feat: Introduced a special field configuration for stream fields
|
|
123
133
|
|
|
124
|
-
##
|
|
134
|
+
## Version 2.22.0 (2021-12-02)
|
|
125
135
|
|
|
126
136
|
* feat(FP-1193): included rawApiImput on getProduct
|
|
127
137
|
* feat(FP-581): refresh account after update address on Shopify
|
|
@@ -130,52 +140,51 @@
|
|
|
130
140
|
* fix(FP-1193): added url schema simbols
|
|
131
141
|
* feat!(FP-1193): upgrade and fix shopify version to 2021-10
|
|
132
142
|
|
|
133
|
-
##
|
|
143
|
+
## Version 2.21.1 (2021-11-30)
|
|
134
144
|
|
|
135
145
|
* fix: make product price nullable in Algolia integration
|
|
136
146
|
|
|
137
|
-
##
|
|
147
|
+
## Version 2.21.0 (2021-10-26)
|
|
138
148
|
|
|
139
149
|
* !feat(FP-646): implemented traceability strategy adding a correlation-id to all requests and responses
|
|
140
150
|
* fix: Nested groups were not visited correctly in ConfigurationSchema.
|
|
141
151
|
|
|
142
|
-
##
|
|
152
|
+
## Version 2.20.1 (2021-10-21)
|
|
143
153
|
|
|
144
154
|
* fix: return a 400 json response on type error of dynamic pages
|
|
145
155
|
|
|
146
|
-
##
|
|
147
|
-
|
|
156
|
+
## Version 2.20.0 (2021-10-11)
|
|
148
157
|
|
|
149
158
|
* Catwalk version update
|
|
150
159
|
|
|
151
|
-
##
|
|
160
|
+
## Version 2.19.3 (2021-10-07)
|
|
152
161
|
|
|
153
162
|
* fix(api-hub): disable deprecation notice in prod
|
|
154
163
|
* fix(api-hub): only output deprecation notice in non-prod-env
|
|
155
164
|
* fix: Keep old previewUrl config working properly
|
|
156
165
|
* feat: Allow for different view and endpoint URLs for preview
|
|
157
166
|
|
|
158
|
-
##
|
|
167
|
+
## Version 2.19.2 (2021-09-23)
|
|
159
168
|
|
|
160
169
|
* Always use plain json_decode for decoding CT responses
|
|
161
170
|
|
|
162
|
-
##
|
|
171
|
+
## Version 2.19.1 (2021-09-09)
|
|
163
172
|
|
|
164
173
|
* fix(FP-980): validated result to catch no active carts in Shopify
|
|
165
174
|
|
|
166
|
-
##
|
|
175
|
+
## Version 2.19.0 (2021-09-08)
|
|
167
176
|
|
|
168
177
|
* fix: Keep unknown field values in completed configuration fields.
|
|
169
178
|
|
|
170
|
-
##
|
|
179
|
+
## Version 2.18.2 (2021-09-04)
|
|
171
180
|
|
|
172
181
|
* fix: Handle documentary fields properly.
|
|
173
182
|
|
|
174
|
-
##
|
|
183
|
+
## Version 2.18.1 (2021-09-03)
|
|
175
184
|
|
|
176
|
-
* chore: bumped version required of frontastic/catwalk to 1.17
|
|
185
|
+
* chore: bumped version required of frontastic/catwalk to 1.17
|
|
177
186
|
|
|
178
|
-
##
|
|
187
|
+
## Version 2.18.0 (2021-09-03)
|
|
179
188
|
|
|
180
189
|
* feat(FP-935): Submit current field path to visitors.
|
|
181
190
|
* feat(fp-935): Fixed potential construction issue through `new static()`
|
|
@@ -194,16 +203,16 @@
|
|
|
194
203
|
* feat(fp-935): Migrated more tests to code lang independent format.
|
|
195
204
|
* feat(fp-935): Extracted first config tests into code independant format.
|
|
196
205
|
|
|
197
|
-
##
|
|
206
|
+
## Version 2.17.2 (2021-08-26)
|
|
198
207
|
|
|
199
208
|
* fix(FP-932): modified array key validation
|
|
200
209
|
* feat(FP-932): mapped missing variant properties in Algolia
|
|
201
210
|
|
|
202
|
-
##
|
|
211
|
+
## Version 2.17.1 (2021-08-26)
|
|
203
212
|
|
|
204
213
|
* chore: bumped version required of frontastic/catwalk to 1.16
|
|
205
214
|
|
|
206
|
-
##
|
|
215
|
+
## Version 2.17.0 (2021-08-26)
|
|
207
216
|
|
|
208
217
|
* feat(FP-932): get default language from project config in Algolia
|
|
209
218
|
* feat(FP-932): set algolia library as suggested on composer
|
|
@@ -225,15 +234,15 @@
|
|
|
225
234
|
* feat(FP-932): use key label structure for Attributes values
|
|
226
235
|
* feat(FP-932): implemented getSearchAttributes for Algolia
|
|
227
236
|
|
|
228
|
-
##
|
|
237
|
+
## Version 2.16.2 (2021-08-19)
|
|
229
238
|
|
|
230
239
|
* Revert "fix: adds frontasticBasicAuthPassword to exclude list"
|
|
231
240
|
|
|
232
|
-
##
|
|
241
|
+
## Version 2.16.1 (2021-08-17)
|
|
233
242
|
|
|
234
243
|
* fix: adds frontasticBasicAuthPassword to exclude list
|
|
235
244
|
|
|
236
|
-
##
|
|
245
|
+
## Version 2.16.0 (2021-08-04)
|
|
237
246
|
|
|
238
247
|
* feat(FP-839): used integer for price filters
|
|
239
248
|
* feat(FP-839): included price filter and facets on Shopware
|
|
@@ -244,11 +253,11 @@
|
|
|
244
253
|
* feat(FP-839): get group from common groupId field
|
|
245
254
|
* fix(FP-839): reused client request for both queries
|
|
246
255
|
|
|
247
|
-
##
|
|
256
|
+
## Version 2.15.0 (2021-07-29)
|
|
248
257
|
|
|
249
258
|
* feat: enhancing tideways logging for GraphCMS adding Cache status header as well as RequestId
|
|
250
259
|
|
|
251
|
-
##
|
|
260
|
+
## Version 2.14.0 (2021-07-20)
|
|
252
261
|
|
|
253
262
|
* feat(FP-837): set API test credential for Shopware 6.4
|
|
254
263
|
* feat(FP-837): used php comparation for API version on Shopware
|
|
@@ -262,28 +271,28 @@
|
|
|
262
271
|
* feat(FP-837): handle elements and data fiels on Account and Project mappers on Shopware
|
|
263
272
|
* feat(FP-837): upgraded project config endpoints to store-api on Shopware
|
|
264
273
|
|
|
265
|
-
##
|
|
274
|
+
## Version 2.13.4 (2021-07-13)
|
|
266
275
|
|
|
267
276
|
* fix: strip API version on Shopware store-api
|
|
268
277
|
* chore: replaced authToken by apiToken on Shopify
|
|
269
278
|
* chore: replaced authToken by apiToken on Spryker
|
|
270
279
|
|
|
271
|
-
##
|
|
280
|
+
## Version 2.13.3 (2021-07-08)
|
|
272
281
|
|
|
273
282
|
* fix(FP-830): replaced authToken by apiToken on Shopware
|
|
274
283
|
* feat: deprecated authToken in favor of apiToken.
|
|
275
284
|
* fix: specify api version on Shopware
|
|
276
285
|
|
|
277
|
-
##
|
|
286
|
+
## Version 2.13.2 (2021-07-06)
|
|
278
287
|
|
|
279
288
|
* fix(FP-830): keep authToken on refresh account for Shopware
|
|
280
289
|
|
|
281
|
-
##
|
|
290
|
+
## Version 2.13.1 (2021-07-01)
|
|
282
291
|
|
|
283
292
|
* refactor: set Spryker cart test credentials as generic
|
|
284
293
|
* fix: Allow empty local to be parsed on Spryker
|
|
285
294
|
|
|
286
|
-
##
|
|
295
|
+
## Version 2.13.0 (2021-06-23)
|
|
287
296
|
|
|
288
297
|
* chore(FT-731): removed unnecessary array_merge
|
|
289
298
|
* feat(FP-731): login customer after reset account password on Shopware
|
|
@@ -293,36 +302,36 @@
|
|
|
293
302
|
* feat(FP-731): refresed account base on email on Shopware
|
|
294
303
|
* feat(FP-731): implemented account creation and confirmation on Shopware
|
|
295
304
|
|
|
296
|
-
##
|
|
305
|
+
## Version 2.12.0 (2021-06-15)
|
|
297
306
|
|
|
298
307
|
* feat: Added Ganesha based curcuit breaker for our HTTP client stack
|
|
299
308
|
|
|
300
|
-
##
|
|
309
|
+
## Version 2.11.10 (2021-06-14)
|
|
301
310
|
|
|
302
311
|
* chore: increased symfony minor version
|
|
303
312
|
* fix: implemented AccountApi::getSalutations on Shopware
|
|
304
313
|
|
|
305
|
-
##
|
|
314
|
+
## Version 2.11.9 (2021-05-28)
|
|
306
315
|
|
|
307
316
|
* fix(FP-728): keeped original and masterData as dangerousInner on Commercetools
|
|
308
317
|
|
|
309
|
-
##
|
|
318
|
+
## Version 2.11.8 (2021-05-28)
|
|
310
319
|
|
|
311
320
|
* fix: validated relations before map them in Spryker
|
|
312
321
|
* fix: remove scope from client call
|
|
313
322
|
* fix: implemented CartApi::setShippingMethod on Shopware integration
|
|
314
323
|
|
|
315
|
-
##
|
|
324
|
+
## Version 2.11.7 (2021-05-18)
|
|
316
325
|
|
|
317
326
|
* fix(FP-709): moved cart validation to Shopware integration
|
|
318
327
|
* fix(FP-709): included addresses and email into cart on Spryker
|
|
319
328
|
* fix(FP-709): moved cart validation to Commercetools integration
|
|
320
329
|
|
|
321
|
-
##
|
|
330
|
+
## Version 2.11.6 (2021-05-13)
|
|
322
331
|
|
|
323
332
|
* fix(FP-691): returned empty response if content by id is query on GraphCMS
|
|
324
333
|
|
|
325
|
-
##
|
|
334
|
+
## Version 2.11.5 (2021-05-11)
|
|
326
335
|
|
|
327
336
|
* fix(FP-695): validated empty nodes before access data in Shopify
|
|
328
337
|
* feat(backstage): latest terminology typo fix
|
|
@@ -331,16 +340,16 @@
|
|
|
331
340
|
* feat(backstage): latest copy updates
|
|
332
341
|
* feat: tastics term in studio
|
|
333
342
|
|
|
334
|
-
##
|
|
343
|
+
## Version 2.11.4 (2021-04-29)
|
|
335
344
|
|
|
336
345
|
* fix(FP-624): moved variant SKU method to Shopify integration
|
|
337
346
|
* fix(FP-624): validated product returned when filtered by SKUs in Shopify
|
|
338
347
|
|
|
339
|
-
##
|
|
348
|
+
## Version 2.11.3 (2021-04-29)
|
|
340
349
|
|
|
341
350
|
* misc: Tests for CustomerService.
|
|
342
351
|
|
|
343
|
-
##
|
|
352
|
+
## Version 2.11.2 (2021-04-27)
|
|
344
353
|
|
|
345
354
|
* fix(FP-645): included host and status code to Contentful logs
|
|
346
355
|
* fix(FP-645): decorated Contentful client to enhance logger
|
|
@@ -348,93 +357,93 @@
|
|
|
348
357
|
* fix(FP-645): set default timeout and logger on Contentful client
|
|
349
358
|
* fix: Find version manually
|
|
350
359
|
|
|
351
|
-
##
|
|
360
|
+
## Version 2.11.1 (2021-04-22)
|
|
352
361
|
|
|
353
362
|
* fix: Fix the /api/version SystemController to use version parameter bag
|
|
354
363
|
* fix: Fix the /api/version SystemController parameter bag
|
|
355
364
|
|
|
356
|
-
##
|
|
365
|
+
## Version 2.11.0 (2021-04-20)
|
|
357
366
|
|
|
358
367
|
* feat(FP-617): exposed authorization url on project config for commercetools
|
|
359
368
|
|
|
360
|
-
##
|
|
369
|
+
## Version 2.10.13 (2021-04-13)
|
|
361
370
|
|
|
362
371
|
* fix: fixed unit test for Content
|
|
363
372
|
* fix(606): included Content slug on GraphCMS
|
|
364
373
|
* fix(606): validate content attribute key before fetch
|
|
365
374
|
* misc: included API test to place order for logged in user
|
|
366
375
|
|
|
367
|
-
##
|
|
376
|
+
## Version 2.10.12 (2021-04-08)
|
|
368
377
|
|
|
369
378
|
* fix(FP-567): handle client exceptions and skip Union types
|
|
370
379
|
* fix(FP-363): Shopify API, use existing account with token and remove returned address on create
|
|
371
380
|
* fix(FP-363): API to add address on customer create and unit tests for create update adjustment
|
|
372
381
|
|
|
373
|
-
##
|
|
382
|
+
## Version 2.10.11 (2021-03-30)
|
|
374
383
|
|
|
375
384
|
* fix: Remove phpcpd from all projects
|
|
376
385
|
|
|
377
|
-
##
|
|
386
|
+
## Version 2.10.10 (2021-03-23)
|
|
378
387
|
|
|
379
388
|
* fix(FP-96): migrated and updated implementation for shipping methods on Shopware
|
|
380
389
|
* fix(FP-84): used alias on category facet and set missing definition
|
|
381
390
|
* fix: Use proper AccessDeniedException
|
|
382
391
|
|
|
383
|
-
##
|
|
392
|
+
## Version 2.10.9 (2021-03-10)
|
|
384
393
|
|
|
385
394
|
* fix(FP-458): used config from engine and include query as part of Result
|
|
386
395
|
* chore(FP-458): removed unused max offset
|
|
387
396
|
* fix(FP-458): exposed max offset in project.yml and validated before query
|
|
388
397
|
* fix(FP-458): created maximum offset and validate Product queries againts it on Commercetools
|
|
389
398
|
|
|
390
|
-
##
|
|
399
|
+
## Version 2.10.8 (2021-03-09)
|
|
391
400
|
|
|
392
401
|
* chore(FP-447): improved documentation and log messages
|
|
393
402
|
* fix(FP-447): throw and handle Cart not active exception
|
|
394
403
|
* fix(FP-447): get existing cart for logged in customer in Shopify
|
|
395
404
|
|
|
396
|
-
##
|
|
405
|
+
## Version 2.10.7 (2021-03-04)
|
|
397
406
|
|
|
398
407
|
* fix(FP-447): cart regenerated if is already completed on Shopify
|
|
399
408
|
* fix: validate version and category index before map
|
|
400
409
|
|
|
401
|
-
##
|
|
410
|
+
## Version 2.10.6 (2021-03-02)
|
|
402
411
|
|
|
403
412
|
* fix(FP-249): added address on account creation for Commercetools
|
|
404
413
|
|
|
405
|
-
##
|
|
414
|
+
## Version 2.10.5 (2021-03-01)
|
|
406
415
|
|
|
407
416
|
* fix(FP-395): implemented build query for next page and calculate last (#623)
|
|
408
417
|
* fix: fix E_NOTICE on product not found
|
|
409
418
|
|
|
410
|
-
##
|
|
419
|
+
## Version 2.10.4 (2021-02-25)
|
|
411
420
|
|
|
412
421
|
* fix: stan errors
|
|
413
422
|
|
|
414
|
-
##
|
|
423
|
+
## Version 2.10.3 (2021-02-23)
|
|
415
424
|
|
|
416
425
|
* fix(FP-389): included discounts on LineItems and mapped data for Commercetools
|
|
417
426
|
* fix: removed decoded exceptions in favor of fallback on php native decoder
|
|
418
427
|
|
|
419
|
-
##
|
|
428
|
+
## Version 2.10.2 (2021-02-19)
|
|
420
429
|
|
|
421
430
|
* fix: removed cartApi extra argument from BaseImplementationAdapterV2
|
|
422
431
|
|
|
423
|
-
##
|
|
432
|
+
## Version 2.10.1 (2021-02-19)
|
|
424
433
|
|
|
425
434
|
* fix(FP-364): fixed unit test inlcuding dangerousInnerShippingMethod to expected data
|
|
426
435
|
* fix(FP-364): extended shipping method query and map localization zone
|
|
427
436
|
|
|
428
|
-
##
|
|
437
|
+
## Version 2.10.0 (2021-02-18)
|
|
429
438
|
|
|
430
439
|
* feat(FP-81): included documentation of rawApiInput fields from Commercetools on Wishlist
|
|
431
440
|
* fix(FP-335): extended Wishlist from ApiDataObject
|
|
432
441
|
* feat(FP-81): included documentation of rawApiInput fields from Commercetools
|
|
433
442
|
* Feat: JavaScript based Decorators
|
|
434
443
|
|
|
435
|
-
##
|
|
444
|
+
## Version 1.9.5 (2021-02-18)
|
|
436
445
|
|
|
437
|
-
##
|
|
446
|
+
## Version 2.9.0 (2021-02-16)
|
|
438
447
|
|
|
439
448
|
* fix(FP-323): mapped discount for product discounts
|
|
440
449
|
* fix: added attributes response on after event for getSearchableAttributes
|
|
@@ -442,41 +451,42 @@
|
|
|
442
451
|
* fix: used ContentApi instead of WishlistApi as aggreageted on LifecycleEventDecorator
|
|
443
452
|
* feat: included BaseImplementation for ProductSearchApi and deprecated duplicated methods in ProductApi
|
|
444
453
|
|
|
445
|
-
##
|
|
454
|
+
## Version 2.8.0 (2021-02-11)
|
|
446
455
|
|
|
447
456
|
* feat: Update ShopifyCartApi.php
|
|
448
457
|
* feat: add compareAtPriceV2 on Shopify product variants
|
|
449
458
|
|
|
450
|
-
##
|
|
459
|
+
## Version 2.7.2 (2021-02-11)
|
|
451
460
|
|
|
452
461
|
* fix: Return empty array to unblock the customer
|
|
453
462
|
|
|
454
|
-
##
|
|
463
|
+
## Version 2.7.1 (2021-02-02)
|
|
455
464
|
|
|
456
465
|
* chore: included the conflict version with catwalk on common/composer.json
|
|
457
466
|
|
|
458
|
-
##
|
|
467
|
+
## Version 2.7.0 (2021-02-02)
|
|
459
468
|
|
|
460
469
|
* !feat(fp-90) catwalk controllers (#580)
|
|
461
470
|
* feat: included shipping info id for CommerceTools
|
|
462
471
|
|
|
463
|
-
##
|
|
472
|
+
## Version 2.6.1 (2021-01-27)
|
|
464
473
|
|
|
465
474
|
* fix: removed shipping or billing fields dependency to set shippingMethodName
|
|
466
475
|
* fix(FP-150): returned ShippingMethod in getAvailableShippingMethods for Shopify
|
|
467
476
|
|
|
468
|
-
##
|
|
477
|
+
## Version 2.6.0 (2021-01-20)
|
|
469
478
|
|
|
470
479
|
* feat(FT-545): implemented shipping methods for a given cart on Spryker
|
|
471
480
|
|
|
472
|
-
##
|
|
481
|
+
## Version 2.5.1 (2021-01-20)
|
|
473
482
|
|
|
474
483
|
* fix: Missed adaption to OrderIdGeneratorV2.
|
|
475
484
|
* feat(FT-590): upgrade Shopify version on API test and include SEO fields on product
|
|
476
485
|
|
|
477
|
-
##
|
|
486
|
+
## Version 2.5.0 (2021-01-18)
|
|
478
487
|
|
|
479
|
-
* fix(563): revert change to tests and add typecasting into Spryker CatalogSearchQuery to ensure that categoryId will be
|
|
488
|
+
* fix(563): revert change to tests and add typecasting into Spryker CatalogSearchQuery to ensure that categoryId will be
|
|
489
|
+
an int
|
|
480
490
|
* feat: included metafields on Shopify product variants
|
|
481
491
|
* feat(FT-581): mapped rates and locations on ShippingRates for Commercetools
|
|
482
492
|
* fix: Consistency for toString() methods on ProductApi\Locale.
|
|
@@ -491,7 +501,7 @@
|
|
|
491
501
|
* feat(cart-defaults): Options for CommerceTools cart defaults.
|
|
492
502
|
* feat(CartFetcher): CartFetcher as unified entrance to loading a cart.
|
|
493
503
|
|
|
494
|
-
##
|
|
504
|
+
## Version 2.4.0 (2021-01-14)
|
|
495
505
|
|
|
496
506
|
* feat(cart-defaults): Options for CommerceTools cart defaults.
|
|
497
507
|
* feat(FT-506): implemented setEmail for Spryker
|
|
@@ -499,26 +509,27 @@
|
|
|
499
509
|
* fix(FT-563): add if-else condition depending on current customer to change behavior for Spryker
|
|
500
510
|
* feat(FT-457): included Shopify product images to each variant
|
|
501
511
|
|
|
502
|
-
##
|
|
512
|
+
## Version 2.3.0 (2021-01-06)
|
|
503
513
|
|
|
504
514
|
* feat(FT-544): implemented cart available shipping methods
|
|
505
515
|
* fix(shopify): mapped variant stock from quantityAvailable and included availableForSale
|
|
506
516
|
* feat(FT-470): Mapped shipping discounted price when present
|
|
507
517
|
|
|
508
|
-
##
|
|
518
|
+
## Version 2.2.1 (2020-12-18)
|
|
509
519
|
|
|
510
520
|
* fix: removed extra comma at the end of parameter list
|
|
511
521
|
|
|
512
|
-
##
|
|
522
|
+
## Version 2.2.0 (2020-12-18)
|
|
513
523
|
|
|
514
524
|
* fix: added missing default language
|
|
515
525
|
* feat(FT-532): extracted Wishlist Api interface
|
|
516
526
|
* feat(FT-532): extracted Cart Api interface
|
|
517
527
|
* feat(FT-532): extracted Account Api interface
|
|
518
|
-
* fix(FT-540): make defaultLanguage in Spryker Product Search API bundle non-nullable, but make localeString in
|
|
528
|
+
* fix(FT-540): make defaultLanguage in Spryker Product Search API bundle non-nullable, but make localeString in
|
|
529
|
+
parseLocaleString nullable
|
|
519
530
|
* fix(FT-540): Fix SprykerProductSearchApi, add usage of forLanguage to have locale included into products search
|
|
520
531
|
|
|
521
|
-
##
|
|
532
|
+
## Version 2.1.0 (2020-12-14)
|
|
522
533
|
|
|
523
534
|
* Fix missing namespace
|
|
524
535
|
* Update json calls around wrapper
|
|
@@ -538,7 +549,7 @@
|
|
|
538
549
|
* fix: Remaining dependencies to work with common 2.0
|
|
539
550
|
* fix: Set composer platform to PHP 7.4
|
|
540
551
|
|
|
541
|
-
##
|
|
552
|
+
## Version 2.0.0 (2020-11-27)
|
|
542
553
|
|
|
543
554
|
* feat(tax): included tax class and implementation fro Commercetools
|
|
544
555
|
* feat!(ShippingMethod): API enhancement for fetching shipping methods. (#420)
|
|
@@ -562,14 +573,14 @@
|
|
|
562
573
|
* feat(shopify): included descriptionHtml and images to Product query
|
|
563
574
|
* feat(ApiBase): implemented CartApiBase on Spryker
|
|
564
575
|
|
|
565
|
-
##
|
|
576
|
+
## Version 1.1.20 (2020-11-26)
|
|
566
577
|
|
|
567
578
|
* fix: Correct bundle references
|
|
568
579
|
* refactor: removed duplicated tests
|
|
569
580
|
* [FT-442] Migrate DataObjects to ApiDataObjects
|
|
570
581
|
* fix: set right test name on AnonymousCart
|
|
571
582
|
|
|
572
|
-
##
|
|
583
|
+
## Version 1.1.19 (2020-11-13)
|
|
573
584
|
|
|
574
585
|
* chore: Built release 2020.11.13.11.34
|
|
575
586
|
* fix(shopify): Used lowecase for variant attributes
|
|
@@ -585,7 +596,7 @@
|
|
|
585
596
|
* fix(shopware): Commented invalid attributes for Shopware v2 and v3
|
|
586
597
|
* feat(shopify): Implemented facet filters for tags and product types
|
|
587
598
|
|
|
588
|
-
##
|
|
599
|
+
## Version 1.1.18 (2020-11-04)
|
|
589
600
|
|
|
590
601
|
* fix(spryker): Included abstract decription
|
|
591
602
|
* fix(spryker): Counted items returned
|
|
@@ -595,7 +606,7 @@
|
|
|
595
606
|
* fix(spryker): Removed mapImages overwrited implementation
|
|
596
607
|
* fix(spryker): Set valid variant sku
|
|
597
608
|
|
|
598
|
-
##
|
|
609
|
+
## Version 1.1.17 (2020-10-30)
|
|
599
610
|
|
|
600
611
|
* fix(spryker): Returned orignal account if not possible to be refreshed with no authToken
|
|
601
612
|
* fix: don't enforce tax category in Commercetools
|
|
@@ -603,7 +614,7 @@
|
|
|
603
614
|
* fix(spryker): Removed verifyEmail as non part of AccountAPI abstraction
|
|
604
615
|
* fix(spryker): Returned email as part of reset account
|
|
605
616
|
|
|
606
|
-
##
|
|
617
|
+
## Version 1.1.16 (2020-10-16)
|
|
607
618
|
|
|
608
619
|
* fix(productSearchApi): Remove URL decoding for Findologic provided URLs
|
|
609
620
|
* fix(productSearchApi): Remove redundant code from FindologicClientFactory
|
|
@@ -620,12 +631,12 @@
|
|
|
620
631
|
* fix: Only set fetch_format when needed
|
|
621
632
|
* chore: Extracted common webspocket code
|
|
622
633
|
|
|
623
|
-
##
|
|
634
|
+
## Version 1.1.15 (2020-10-13)
|
|
624
635
|
|
|
625
636
|
* fix: Do not cast null values in media library to numeric
|
|
626
637
|
* fix: Set whislist as not implemented for Shopify
|
|
627
638
|
|
|
628
|
-
##
|
|
639
|
+
## Version 1.1.14 (2020-10-07)
|
|
629
640
|
|
|
630
641
|
* fix(shopify): Used only SKU values on variant.sku mapping
|
|
631
642
|
* fix: Import deprecate helper in a way it also works in tests
|
|
@@ -717,7 +728,7 @@
|
|
|
717
728
|
* Fixed type hint
|
|
718
729
|
* Flagged types
|
|
719
730
|
|
|
720
|
-
##
|
|
731
|
+
## Version 1.1.13 (2020-10-02)
|
|
721
732
|
|
|
722
733
|
* fix: Removed cartId validation on testAPI
|
|
723
734
|
* chore: Refactored withCurrency method as appendCurrencyToUrl
|
|
@@ -801,23 +812,23 @@
|
|
|
801
812
|
* Fixed type hint
|
|
802
813
|
* Flagged types
|
|
803
814
|
|
|
804
|
-
##
|
|
815
|
+
## Version 1.1.12 (2020-10-01)
|
|
805
816
|
|
|
806
817
|
* feat: Shopify CartApi & AccountApi
|
|
807
818
|
|
|
808
|
-
##
|
|
819
|
+
## Version 1.1.11 (2020-09-17)
|
|
809
820
|
|
|
810
821
|
* feat!: Use the product search API
|
|
811
822
|
* feat: Add ShopifyProductSearchApi
|
|
812
823
|
* feat: Call product event listeners
|
|
813
824
|
* chore: Extracted common webspocket code
|
|
814
825
|
|
|
815
|
-
##
|
|
826
|
+
## Version 1.1.10 (2020-09-15)
|
|
816
827
|
|
|
817
828
|
* Regenerated API documentation
|
|
818
829
|
* Generated TypeScript types for catwalk & common domain models
|
|
819
830
|
|
|
820
|
-
##
|
|
831
|
+
## Version 1.1.9 (2020-09-11)
|
|
821
832
|
|
|
822
833
|
* Implement localization and include Product filter by language
|
|
823
834
|
* add Spryker product search API
|
|
@@ -832,7 +843,7 @@
|
|
|
832
843
|
* Build cloudinary URLs ourselves
|
|
833
844
|
* Add FindologicBundle
|
|
834
845
|
|
|
835
|
-
##
|
|
846
|
+
## Version 1.1.8 (2020-08-24)
|
|
836
847
|
|
|
837
848
|
* chore(shopify integration): Included pagination documentation
|
|
838
849
|
* fix(shopify integration): Updated Api test to use cursor based pagination
|
|
@@ -899,19 +910,19 @@
|
|
|
899
910
|
* feat(spryker integration): Impleted WoohooLabs ResourceObject to handle Api response content
|
|
900
911
|
* feat(spryker integration): Included raw api output as part of Http/Response
|
|
901
912
|
|
|
902
|
-
##
|
|
913
|
+
## Version 1.1.5 (2020-08-05)
|
|
903
914
|
|
|
904
915
|
* fix: Restore (again) missing CHANGELOG.md in common
|
|
905
916
|
|
|
906
|
-
##
|
|
917
|
+
## Version 1.1.4 (2020-08-05)
|
|
907
918
|
|
|
908
919
|
* fix: Restore missing CHANGELOG.md in common
|
|
909
920
|
|
|
910
|
-
##
|
|
921
|
+
## Version 1.1.3 (2020-08-05)
|
|
911
922
|
|
|
912
923
|
* Fixed release script
|
|
913
924
|
|
|
914
|
-
##
|
|
925
|
+
## Version 1.1.2 (2020-08-05)
|
|
915
926
|
|
|
916
927
|
* fix: Use readlink instead of realpath to work on mac
|
|
917
928
|
* Enable tideways for sparhandy and fix check in setup handle
|
|
@@ -926,12 +937,13 @@
|
|
|
926
937
|
* feat(boost-theme): theming - next phase
|
|
927
938
|
* chore(frontasticli): Add github action for releasing
|
|
928
939
|
* fix(boost-theme): custom hook and some photo scaling
|
|
929
|
-
* fix(boost-theme): custom hook and some photo scaling (solution for now, until we get more customized photos from
|
|
940
|
+
* fix(boost-theme): custom hook and some photo scaling (solution for now, until we get more customized photos from
|
|
941
|
+
commerce tools)
|
|
930
942
|
* chore: removing customers that have github actions by now
|
|
931
943
|
* chore: enabling teams hook for Apollo and disabling Slack
|
|
932
944
|
* chore: Remove orphan DI tag frontastic.common.api_integration.
|
|
933
945
|
|
|
934
|
-
##
|
|
946
|
+
## Version 1.1.1 (2020-07-30)
|
|
935
947
|
|
|
936
948
|
* fix: Logger is still unavailable in container.
|
|
937
949
|
* chore: Removed FactoryServiceLocator from libraries/common.
|
|
@@ -973,9 +985,8 @@
|
|
|
973
985
|
* Expose additional category filter properties
|
|
974
986
|
* Added field `state` and mapping for CommerceTools in `Address`.
|
|
975
987
|
|
|
976
|
-
##
|
|
977
|
-
|
|
978
|
-
## `1.0.0` (2020-05-27)
|
|
988
|
+
## Version 1.1.0 (2020-07-30)
|
|
979
989
|
|
|
990
|
+
## Version 1.0.0 (2020-05-27)
|
|
980
991
|
|
|
981
992
|
* 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 I=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 k=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)),k(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)}};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 I})),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 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 $}))}])}));
|
package/src/js/notifier.js
CHANGED
|
@@ -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",
|