fontdue-js 3.7.0 → 3.9.0
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 +11 -0
- package/README.md +8 -5
- package/dist/__generated__/AddToCartBannerQuery.graphql.d.ts +1 -1
- package/dist/__generated__/AddToCartBannerQuery.graphql.js +16 -10
- package/dist/__generated__/AddToCartBanner_item.graphql.d.ts +4 -1
- package/dist/__generated__/AddToCartBanner_item.graphql.js +7 -2
- package/dist/__generated__/AddToCartBanner_order.graphql.d.ts +4 -1
- package/dist/__generated__/AddToCartBanner_order.graphql.js +6 -1
- package/dist/__generated__/BuyButtonIDQuery.graphql.d.ts +3 -3
- package/dist/__generated__/BuyButtonIDQuery.graphql.js +31 -16
- package/dist/__generated__/BuyButtonPackIDQuery.graphql.d.ts +21 -0
- package/dist/__generated__/BuyButtonPackIDQuery.graphql.js +129 -0
- package/dist/__generated__/BuyButtonPackSlugQuery.graphql.d.ts +25 -0
- package/dist/__generated__/BuyButtonPackSlugQuery.graphql.js +167 -0
- package/dist/__generated__/BuyButtonSlugQuery.graphql.d.ts +3 -3
- package/dist/__generated__/BuyButtonSlugQuery.graphql.js +45 -17
- package/dist/__generated__/BuyButton_product.graphql.d.ts +27 -0
- package/dist/__generated__/BuyButton_product.graphql.js +72 -0
- package/dist/__generated__/CartItemProduct_product.graphql.d.ts +1 -1
- package/dist/__generated__/CartItemProduct_product.graphql.js +7 -2
- package/dist/__generated__/CartOrderCompleteOrderMutation.graphql.d.ts +1 -1
- package/dist/__generated__/CartOrderCompleteOrderMutation.graphql.js +26 -20
- package/dist/__generated__/CartOrderRemoveDiscountMutation.graphql.d.ts +1 -1
- package/dist/__generated__/CartOrderRemoveDiscountMutation.graphql.js +26 -20
- package/dist/__generated__/CartOrderUpdateMutation.graphql.d.ts +1 -1
- package/dist/__generated__/CartOrderUpdateMutation.graphql.js +26 -20
- package/dist/__generated__/CartQuery.graphql.d.ts +1 -1
- package/dist/__generated__/CartQuery.graphql.js +26 -20
- package/dist/__generated__/CartStateUpdateMutation.graphql.d.ts +1 -1
- package/dist/__generated__/CartStateUpdateMutation.graphql.js +26 -20
- package/dist/__generated__/CheckoutUpdateCustomerMutation.graphql.d.ts +1 -1
- package/dist/__generated__/CheckoutUpdateCustomerMutation.graphql.js +26 -20
- package/dist/__generated__/CheckoutUpdateOrderMutation.graphql.d.ts +1 -1
- package/dist/__generated__/CheckoutUpdateOrderMutation.graphql.js +26 -20
- package/dist/__generated__/CollectionAa_Query.graphql.d.ts +1 -1
- package/dist/__generated__/CollectionAa_Query.graphql.js +20 -14
- package/dist/__generated__/CollectionAa_product.graphql.d.ts +7 -1
- package/dist/__generated__/CollectionAa_product.graphql.js +22 -16
- package/dist/__generated__/NodePasswordFormElementIDQuery.graphql.d.ts +3 -3
- package/dist/__generated__/NodePasswordFormElementIDQuery.graphql.js +9 -9
- package/dist/__generated__/NodePasswordFormElementPackSlugQuery.graphql.d.ts +25 -0
- package/dist/__generated__/NodePasswordFormElementPackSlugQuery.graphql.js +108 -0
- package/dist/__generated__/PrecartAddToCartMutation.graphql.d.ts +1 -1
- package/dist/__generated__/PrecartAddToCartMutation.graphql.js +32 -26
- package/dist/__generated__/StoreModalCartQuery.graphql.d.ts +1 -1
- package/dist/__generated__/StoreModalCartQuery.graphql.js +37 -31
- package/dist/__generated__/StoreModalIndexPackItem_fontPack.graphql.d.ts +23 -0
- package/dist/__generated__/StoreModalIndexPackItem_fontPack.graphql.js +58 -0
- package/dist/__generated__/StoreModalIndexQuery.graphql.d.ts +9 -1
- package/dist/__generated__/StoreModalIndexQuery.graphql.js +174 -110
- package/dist/__generated__/StoreModalPackButton_fontPack.graphql.d.ts +33 -0
- package/dist/__generated__/StoreModalPackButton_fontPack.graphql.js +119 -0
- package/dist/__generated__/StoreModalPack_fontPack.graphql.d.ts +45 -0
- package/dist/__generated__/StoreModalPack_fontPack.graphql.js +150 -0
- package/dist/__generated__/StoreModalProductContent_collection.graphql.d.ts +3 -2
- package/dist/__generated__/StoreModalProductContent_collection.graphql.js +36 -19
- package/dist/__generated__/{StoreModalProductLicenseSelection_collection.graphql.d.ts → StoreModalProductLicenseSelection_licenseable.graphql.d.ts} +6 -6
- package/dist/__generated__/{StoreModalProductLicenseSelection_collection.graphql.js → StoreModalProductLicenseSelection_licenseable.graphql.js} +5 -5
- package/dist/__generated__/StoreModalProductQuery.graphql.d.ts +1 -1
- package/dist/__generated__/StoreModalProductQuery.graphql.js +159 -103
- package/dist/__generated__/StoreModalProductRefetchQuery.graphql.d.ts +1 -1
- package/dist/__generated__/StoreModalProductRefetchQuery.graphql.js +184 -128
- package/dist/__generated__/StoreModalProductSlugQuery.graphql.d.ts +5 -1
- package/dist/__generated__/StoreModalProductSlugQuery.graphql.js +248 -171
- package/dist/__generated__/StoreModalProductSummaryRefetchQuery.graphql.d.ts +1 -1
- package/dist/__generated__/StoreModalProductSummaryRefetchQuery.graphql.js +9 -4
- package/dist/__generated__/StoreModalProductSummary_viewer.graphql.d.ts +7 -1
- package/dist/__generated__/StoreModalProductSummary_viewer.graphql.js +7 -2
- package/dist/__generated__/TestFontsFormUpdateCustomerMutation.graphql.d.ts +1 -1
- package/dist/__generated__/TestFontsFormUpdateCustomerMutation.graphql.js +26 -20
- package/dist/__generated__/TestFontsForm_Query.graphql.d.ts +14 -2
- package/dist/__generated__/TestFontsForm_Query.graphql.js +76 -18
- package/dist/__generated__/productState_Query.graphql.d.ts +99 -1
- package/dist/__generated__/productState_Query.graphql.js +43 -4
- package/dist/__generated__/productState_fontPack.graphql.d.ts +111 -0
- package/dist/__generated__/productState_fontPack.graphql.js +117 -0
- package/dist/__tests__/bundleSelectionOrder.test.js +2 -0
- package/dist/__tests__/collectionBundleSelection.test.js +2 -0
- package/dist/__tests__/fontPackSelection.test.js +435 -0
- package/dist/__tests__/licenseExclusions.test.js +2 -0
- package/dist/__tests__/storeModalPackButton.test.js +102 -0
- package/dist/__tests__/storeModalPackUnlisted.test.js +112 -0
- package/dist/__tests__/storeModalRoutes.test.js +9 -0
- package/dist/__tests__/testFontsFamilyChoice.test.js +150 -0
- package/dist/components/AddToCartBanner/index.js +1 -1
- package/dist/components/BuyButton/index.d.ts +29 -9
- package/dist/components/BuyButton/index.js +123 -26
- package/dist/components/BuyButton/index.server.d.ts +4 -2
- package/dist/components/BuyButton/index.server.js +24 -3
- package/dist/components/Cart/CartItem/CartItemProduct.js +3 -3
- package/dist/components/CollectionAa/index.js +2 -2
- package/dist/components/ConfigContext.d.ts +11 -0
- package/dist/components/ConfigContext.js +7 -1
- package/dist/components/NodePasswordForm/NodePasswordFormElement.d.ts +1 -1
- package/dist/components/NodePasswordForm/NodePasswordFormElement.js +45 -21
- package/dist/components/NodePasswordForm/index.d.ts +7 -4
- package/dist/components/NodePasswordForm/index.js +6 -6
- package/dist/components/Root/productState.js +57 -7
- package/dist/components/StoreModal/StoreModalFamily.d.ts +7 -0
- package/dist/components/StoreModal/StoreModalFamily.js +7 -5
- package/dist/components/StoreModal/StoreModalIndex.js +13 -3
- package/dist/components/StoreModal/StoreModalIndexEntry.d.ts +13 -0
- package/dist/components/StoreModal/StoreModalIndexEntry.js +43 -0
- package/dist/components/StoreModal/StoreModalIndexItem.js +7 -30
- package/dist/components/StoreModal/StoreModalIndexPackItem.d.ts +7 -0
- package/dist/components/StoreModal/StoreModalIndexPackItem.js +21 -0
- package/dist/components/StoreModal/StoreModalPack.d.ts +9 -0
- package/dist/components/StoreModal/StoreModalPack.js +79 -0
- package/dist/components/StoreModal/StoreModalPackButton.d.ts +8 -0
- package/dist/components/StoreModal/StoreModalPackButton.js +53 -0
- package/dist/components/StoreModal/StoreModalProduct.js +38 -15
- package/dist/components/StoreModalProductLicenseSelection/index.d.ts +3 -3
- package/dist/components/StoreModalProductLicenseSelection/index.js +6 -6
- package/dist/components/StoreModalProductSummary/index.js +1 -1
- package/dist/components/TestFontsForm/TestFontsFormElement.d.ts +4 -1
- package/dist/components/TestFontsForm/TestFontsFormElement.js +11 -3
- package/dist/components/TestFontsForm/index.d.ts +6 -3
- package/dist/components/TestFontsForm/index.js +82 -13
- package/dist/components/TestFontsForm/index.server.js +2 -1
- package/dist/components/TestFontsForm/variables.d.ts +8 -0
- package/dist/components/TestFontsForm/variables.js +22 -0
- package/dist/components/elements/StoreModalFamily/index.d.ts +1 -1
- package/dist/components/elements/StoreModalFamily/index.js +1 -1
- package/dist/fontdue.css +13 -0
- package/dist/reducer.d.ts +7 -0
- package/dist/reducer.js +9 -0
- package/dist/selection.d.ts +5 -1
- package/dist/selection.js +61 -16
- package/dist/storeModalRoutes.js +5 -4
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/dist/__generated__/BuyButton_collection.graphql.d.ts +0 -25
- package/dist/__generated__/BuyButton_collection.graphql.js +0 -49
- package/fontdue.css +0 -2733
- package/fontdue.css.map +0 -1
package/dist/selection.js
CHANGED
|
@@ -19,8 +19,14 @@
|
|
|
19
19
|
* wins, then the one with the fewest SKUs – so a variable font comes along with
|
|
20
20
|
* a collection bundle priced like its static family, and a family beats its two
|
|
21
21
|
* halves at the same price.
|
|
22
|
+
*
|
|
23
|
+
* On a product page, a pick the page shows only sits inside SKUs the page shows
|
|
24
|
+
* (see `viewedProduct`).
|
|
22
25
|
*/
|
|
23
26
|
|
|
27
|
+
// The product page being viewed and every SKU its fetch returned – what the
|
|
28
|
+
// page renders.
|
|
29
|
+
|
|
24
30
|
// Nodes the exact search may visit per part of the catalog before it settles
|
|
25
31
|
// for the best combination found so far. Real catalogs finish far below it; it
|
|
26
32
|
// only bounds pathological ones.
|
|
@@ -159,6 +165,23 @@ const containersOf = (index, pick) => {
|
|
|
159
165
|
return containers;
|
|
160
166
|
};
|
|
161
167
|
|
|
168
|
+
// The containers a pick may sit inside. Every product the buyer has seen – or
|
|
169
|
+
// has a BuyButton for on the host page – stays in the catalog, so on a product
|
|
170
|
+
// page a pick the page shows only sits inside SKUs the page shows. Otherwise a
|
|
171
|
+
// font pack seen earlier would take a member family's styles on the family's
|
|
172
|
+
// own page, with a SKU that page doesn't show (even a family sold only by the
|
|
173
|
+
// style), and a family seen earlier would take the pack page's partial block
|
|
174
|
+
// of its styles (FD-79). A SKU granting exactly the pick's styles at its price
|
|
175
|
+
// is the pick as far as the index goes – only one of two such twins is
|
|
176
|
+
// offered – so it always stays.
|
|
177
|
+
const holdersOf = (index, pick, viewed) => {
|
|
178
|
+
const containers = containersOf(index, pick);
|
|
179
|
+
if (!(viewed !== null && viewed !== void 0 && viewed.skuIds.has(pick))) return containers;
|
|
180
|
+
const size = index.granted.get(pick).size;
|
|
181
|
+
const price = index.catalog.skuPrices[pick];
|
|
182
|
+
return containers.filter(skuId => viewed.skuIds.has(skuId) || index.granted.get(skuId).size === size && index.catalog.skuPrices[skuId] === price);
|
|
183
|
+
};
|
|
184
|
+
|
|
162
185
|
// The parts a pick's styles belong to.
|
|
163
186
|
const partsOf = (index, pick) => {
|
|
164
187
|
const cached = index.parts.get(pick);
|
|
@@ -199,27 +222,30 @@ const notNull = value => value !== null;
|
|
|
199
222
|
* cheapestSkuIds(['sku:bold', 'sku:regular', 'sku:light'], catalog)
|
|
200
223
|
* // => ['sku:light+regular+bold'] rather than a pair plus a single
|
|
201
224
|
*/
|
|
202
|
-
export const cheapestSkuIds = (picks, catalog)
|
|
203
|
-
|
|
204
|
-
|
|
225
|
+
export const cheapestSkuIds = function (picks, catalog) {
|
|
226
|
+
let viewed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
227
|
+
return cheapestCombination(picks, catalog, viewed).skuIds;
|
|
228
|
+
};
|
|
229
|
+
const selectionCost = (picks, catalog, viewed) => cheapestCombination(picks, catalog, viewed).cost;
|
|
230
|
+
const cheapestCombination = (picks, catalog, viewed) => {
|
|
205
231
|
const index = indexFor(catalog);
|
|
206
232
|
const priceable = [...new Set(picks)].filter(pick => index.granted.has(pick)).sort();
|
|
207
|
-
return cover(priceable, new Set(), index) ?? EMPTY_COVER;
|
|
233
|
+
return cover(priceable, new Set(), index, viewed) ?? EMPTY_COVER;
|
|
208
234
|
};
|
|
209
235
|
|
|
210
236
|
// The cheapest cover of `picks` (sorted) without the `excluded` bridges, or
|
|
211
237
|
// null when some pick has nowhere to sit without them.
|
|
212
|
-
const cover = (picks, excluded, index) => {
|
|
238
|
+
const cover = (picks, excluded, index, viewed) => {
|
|
213
239
|
if (picks.length === 0) return EMPTY_COVER;
|
|
214
|
-
const key = `${picks.join(',')}#${[...excluded].sort().join(',')}`;
|
|
240
|
+
const key = `${picks.join(',')}#${[...excluded].sort().join(',')}@${(viewed === null || viewed === void 0 ? void 0 : viewed.id) ?? ''}`;
|
|
215
241
|
if (index.covers.has(key)) return index.covers.get(key);
|
|
216
|
-
const result = coverUncached(picks, excluded, index);
|
|
242
|
+
const result = coverUncached(picks, excluded, index, viewed);
|
|
217
243
|
if (index.covers.size >= MEMO_LIMIT) index.covers.clear();
|
|
218
244
|
index.covers.set(key, result);
|
|
219
245
|
return result;
|
|
220
246
|
};
|
|
221
|
-
const coverUncached = (picks, excluded, index) => {
|
|
222
|
-
const available = new Map(picks.map(pick => [pick,
|
|
247
|
+
const coverUncached = (picks, excluded, index, viewed) => {
|
|
248
|
+
const available = new Map(picks.map(pick => [pick, holdersOf(index, pick, viewed).filter(id => !excluded.has(id))]));
|
|
223
249
|
if (picks.some(pick => available.get(pick).length === 0)) return null;
|
|
224
250
|
const parts = [...new Set(picks.flatMap(pick => [...partsOf(index, pick)]))];
|
|
225
251
|
if (parts.length === 1) return branchAndBound(picks, available, index);
|
|
@@ -248,7 +274,7 @@ const coverUncached = (picks, excluded, index) => {
|
|
|
248
274
|
const [part] = partsOf(index, pick);
|
|
249
275
|
picksByGroup[groupOfPart.get(part)].push(pick);
|
|
250
276
|
}
|
|
251
|
-
const covers = picksByGroup.map(group => cover(group, excluded, index));
|
|
277
|
+
const covers = picksByGroup.map(group => cover(group, excluded, index, viewed));
|
|
252
278
|
return covers.every(notNull) ? combine(covers) : null;
|
|
253
279
|
}
|
|
254
280
|
|
|
@@ -258,13 +284,13 @@ const coverUncached = (picks, excluded, index) => {
|
|
|
258
284
|
bridge
|
|
259
285
|
} = joining[0];
|
|
260
286
|
const withoutBridge = new Set([...excluded, bridge]);
|
|
261
|
-
const rest = cover(picks.filter(pick => !available.get(pick).includes(bridge)), withoutBridge, index);
|
|
287
|
+
const rest = cover(picks.filter(pick => !available.get(pick).includes(bridge)), withoutBridge, index, viewed);
|
|
262
288
|
const including = rest && combine([{
|
|
263
289
|
skuIds: [bridge],
|
|
264
290
|
cost: index.catalog.skuPrices[bridge],
|
|
265
291
|
granted: index.granted.get(bridge)
|
|
266
292
|
}, rest]);
|
|
267
|
-
const excluding = cover(picks, withoutBridge, index);
|
|
293
|
+
const excluding = cover(picks, withoutBridge, index, viewed);
|
|
268
294
|
if (!including || !excluding) return including ?? excluding;
|
|
269
295
|
return isBetter(including, excluding) ? including : excluding;
|
|
270
296
|
};
|
|
@@ -393,6 +419,23 @@ const greedyCover = (options, all) => {
|
|
|
393
419
|
// Selection state
|
|
394
420
|
// ---------------------------------------------------------------------------
|
|
395
421
|
|
|
422
|
+
const viewedSkuIdsCache = new WeakMap();
|
|
423
|
+
|
|
424
|
+
// The product page the Store Modal is on – as the page reports it, so one
|
|
425
|
+
// opened by slug counts the same as one opened by id – or null off a product
|
|
426
|
+
// page and while the product's fetch is still in flight. productState records
|
|
427
|
+
// every SKU a product's fetch returned, which is what its page renders.
|
|
428
|
+
const viewedProduct = state => {
|
|
429
|
+
const productId = state.viewedProductId;
|
|
430
|
+
const skuIds = productId ? state.productSkuIds[productId] : undefined;
|
|
431
|
+
if (!productId || !skuIds) return null;
|
|
432
|
+
if (!viewedSkuIdsCache.has(skuIds)) viewedSkuIdsCache.set(skuIds, new Set(skuIds));
|
|
433
|
+
return {
|
|
434
|
+
id: productId,
|
|
435
|
+
skuIds: viewedSkuIdsCache.get(skuIds)
|
|
436
|
+
};
|
|
437
|
+
};
|
|
438
|
+
|
|
396
439
|
/**
|
|
397
440
|
* Re-derives `selectedSkuIds` from the picks. A pick whose styles or price
|
|
398
441
|
* aren't known yet – selected from the host page before its product data
|
|
@@ -400,7 +443,7 @@ const greedyCover = (options, all) => {
|
|
|
400
443
|
*/
|
|
401
444
|
export const repriceSelection = state => {
|
|
402
445
|
const unpriceable = state.requestedSkuIds.filter(skuId => !isPriceable(state, skuId));
|
|
403
|
-
const skuIds = union(cheapestSkuIds(state.requestedSkuIds, state), unpriceable);
|
|
446
|
+
const skuIds = union(cheapestSkuIds(state.requestedSkuIds, state, viewedProduct(state)), unpriceable);
|
|
404
447
|
const unchanged = selectedSkuIdList(state).length === skuIds.length && skuIds.every(skuId => state.selectedSkuIds[skuId]);
|
|
405
448
|
return unchanged ? state : {
|
|
406
449
|
...state,
|
|
@@ -476,18 +519,20 @@ const costCache = new WeakMap();
|
|
|
476
519
|
*/
|
|
477
520
|
export const additionalCost = (state, skuId) => {
|
|
478
521
|
if (!isPriceable(state, skuId)) return null;
|
|
522
|
+
const viewed = viewedProduct(state);
|
|
479
523
|
let cache = costCache.get(state.requestedSkuIds);
|
|
480
|
-
if (!cache || cache.skuStyleIds !== state.skuStyleIds || cache.skuPrices !== state.skuPrices) {
|
|
524
|
+
if (!cache || cache.skuStyleIds !== state.skuStyleIds || cache.skuPrices !== state.skuPrices || cache.viewedId !== ((viewed === null || viewed === void 0 ? void 0 : viewed.id) ?? null)) {
|
|
481
525
|
cache = {
|
|
482
526
|
skuStyleIds: state.skuStyleIds,
|
|
483
527
|
skuPrices: state.skuPrices,
|
|
484
|
-
|
|
528
|
+
viewedId: (viewed === null || viewed === void 0 ? void 0 : viewed.id) ?? null,
|
|
529
|
+
base: selectionCost(state.requestedSkuIds, state, viewed),
|
|
485
530
|
costs: new Map()
|
|
486
531
|
};
|
|
487
532
|
costCache.set(state.requestedSkuIds, cache);
|
|
488
533
|
}
|
|
489
534
|
if (!cache.costs.has(skuId)) {
|
|
490
|
-
const withSku = selectionCost(union(state.requestedSkuIds, [skuId]), state);
|
|
535
|
+
const withSku = selectionCost(union(state.requestedSkuIds, [skuId]), state, viewed);
|
|
491
536
|
cache.costs.set(skuId, withSku - cache.base);
|
|
492
537
|
}
|
|
493
538
|
return cache.costs.get(skuId);
|
package/dist/storeModalRoutes.js
CHANGED
|
@@ -28,10 +28,11 @@ function isGlobalId(value) {
|
|
|
28
28
|
* `index` has to carry the configured `indexExcludeTags` — a route dispatched
|
|
29
29
|
* without them lists collections the store front deliberately leaves out.
|
|
30
30
|
*
|
|
31
|
-
* A product is addressed by either its
|
|
32
|
-
* identifiers `BuyButton` takes. The route passes whichever
|
|
33
|
-
* through to the product query; a slug that names nothing (or
|
|
34
|
-
* rather than a
|
|
31
|
+
* A product (a collection or a font pack) is addressed by either its id or its
|
|
32
|
+
* slug, the same two identifiers `BuyButton` takes. The route passes whichever
|
|
33
|
+
* it was given through to the product query; a slug that names nothing (or
|
|
34
|
+
* names an article rather than a product) lands on the modal's "Product not
|
|
35
|
+
* found".
|
|
35
36
|
*/
|
|
36
37
|
const routes = {
|
|
37
38
|
'^index$': config => ({
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @generated SignedSource<<2e0d1867d52ad59c939fc952ee3f136a>>
|
|
3
|
-
* @lightSyntaxTransform
|
|
4
|
-
* @nogrep
|
|
5
|
-
*/
|
|
6
|
-
import { ReaderFragment } from 'relay-runtime';
|
|
7
|
-
import { FragmentRefs } from "relay-runtime";
|
|
8
|
-
export type BuyButton_collection$data = {
|
|
9
|
-
readonly fontStyles: ReadonlyArray<{
|
|
10
|
-
readonly sku: {
|
|
11
|
-
readonly id: string;
|
|
12
|
-
} | null;
|
|
13
|
-
}>;
|
|
14
|
-
readonly id: string;
|
|
15
|
-
readonly sku: {
|
|
16
|
-
readonly id: string;
|
|
17
|
-
} | null;
|
|
18
|
-
readonly " $fragmentType": "BuyButton_collection";
|
|
19
|
-
};
|
|
20
|
-
export type BuyButton_collection$key = {
|
|
21
|
-
readonly " $data"?: BuyButton_collection$data;
|
|
22
|
-
readonly " $fragmentSpreads": FragmentRefs<"BuyButton_collection">;
|
|
23
|
-
};
|
|
24
|
-
declare const node: ReaderFragment;
|
|
25
|
-
export default node;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @generated SignedSource<<2e0d1867d52ad59c939fc952ee3f136a>>
|
|
3
|
-
* @lightSyntaxTransform
|
|
4
|
-
* @nogrep
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/* tslint:disable */
|
|
8
|
-
/* eslint-disable */
|
|
9
|
-
// @ts-nocheck
|
|
10
|
-
|
|
11
|
-
const node = function () {
|
|
12
|
-
var v0 = {
|
|
13
|
-
"alias": null,
|
|
14
|
-
"args": null,
|
|
15
|
-
"kind": "ScalarField",
|
|
16
|
-
"name": "id",
|
|
17
|
-
"storageKey": null
|
|
18
|
-
},
|
|
19
|
-
v1 = {
|
|
20
|
-
"alias": null,
|
|
21
|
-
"args": null,
|
|
22
|
-
"concreteType": "Sku",
|
|
23
|
-
"kind": "LinkedField",
|
|
24
|
-
"name": "sku",
|
|
25
|
-
"plural": false,
|
|
26
|
-
"selections": [v0 /*: any*/],
|
|
27
|
-
"storageKey": null
|
|
28
|
-
};
|
|
29
|
-
return {
|
|
30
|
-
"argumentDefinitions": [],
|
|
31
|
-
"kind": "Fragment",
|
|
32
|
-
"metadata": null,
|
|
33
|
-
"name": "BuyButton_collection",
|
|
34
|
-
"selections": [v0 /*: any*/, v1 /*: any*/, {
|
|
35
|
-
"alias": null,
|
|
36
|
-
"args": null,
|
|
37
|
-
"concreteType": "FontStyle",
|
|
38
|
-
"kind": "LinkedField",
|
|
39
|
-
"name": "fontStyles",
|
|
40
|
-
"plural": true,
|
|
41
|
-
"selections": [v1 /*: any*/],
|
|
42
|
-
"storageKey": null
|
|
43
|
-
}],
|
|
44
|
-
"type": "FontCollection",
|
|
45
|
-
"abstractKey": null
|
|
46
|
-
};
|
|
47
|
-
}();
|
|
48
|
-
node.hash = "9c47030d7450494449d4aa5bda16e27e";
|
|
49
|
-
export default node;
|