fontdue-js 2.19.1 → 2.20.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 +16 -0
- package/README.md +11 -10
- package/dist/__generated__/CartItemProduct_product.graphql.d.ts +1 -7
- package/dist/__generated__/CartItemProduct_product.graphql.js +11 -36
- package/dist/__generated__/CartOrderCompleteOrderMutation.graphql.d.ts +1 -1
- package/dist/__generated__/CartOrderCompleteOrderMutation.graphql.js +65 -23
- package/dist/__generated__/CartOrderRemoveDiscountMutation.graphql.d.ts +1 -1
- package/dist/__generated__/CartOrderRemoveDiscountMutation.graphql.js +65 -23
- package/dist/__generated__/CartOrderUpdateMutation.graphql.d.ts +1 -1
- package/dist/__generated__/CartOrderUpdateMutation.graphql.js +65 -23
- package/dist/__generated__/CartQuery.graphql.d.ts +1 -1
- package/dist/__generated__/CartQuery.graphql.js +119 -87
- package/dist/__generated__/CartStateUpdateMutation.graphql.d.ts +1 -1
- package/dist/__generated__/CartStateUpdateMutation.graphql.js +65 -23
- package/dist/__generated__/CharacterViewerIDQuery.graphql.d.ts +1 -1
- package/dist/__generated__/CharacterViewerIDQuery.graphql.js +40 -26
- package/dist/__generated__/CharacterViewerSlugQuery.graphql.d.ts +1 -1
- package/dist/__generated__/CharacterViewerSlugQuery.graphql.js +40 -26
- package/dist/__generated__/CharacterViewerStyleRefetchQuery.graphql.d.ts +1 -1
- package/dist/__generated__/CharacterViewerStyleRefetchQuery.graphql.js +62 -41
- package/dist/__generated__/CharacterViewer_collection.graphql.d.ts +1 -3
- package/dist/__generated__/CharacterViewer_collection.graphql.js +6 -13
- package/dist/__generated__/CharacterViewer_family.graphql.d.ts +1 -2
- package/dist/__generated__/CharacterViewer_family.graphql.js +2 -8
- package/dist/__generated__/CharacterViewer_style.graphql.d.ts +2 -1
- package/dist/__generated__/CharacterViewer_style.graphql.js +6 -2
- package/dist/__generated__/CheckoutUpdateCustomerMutation.graphql.d.ts +1 -1
- package/dist/__generated__/CheckoutUpdateCustomerMutation.graphql.js +65 -23
- package/dist/__generated__/CheckoutUpdateOrderMutation.graphql.d.ts +1 -1
- package/dist/__generated__/CheckoutUpdateOrderMutation.graphql.js +65 -23
- package/dist/__generated__/CollectionAa_Query.graphql.d.ts +1 -1
- package/dist/__generated__/CollectionAa_Query.graphql.js +57 -3
- package/dist/__generated__/Family_node.graphql.d.ts +1 -2
- package/dist/__generated__/Family_node.graphql.js +2 -8
- package/dist/__generated__/FontFamiliesQuery.graphql.d.ts +1 -1
- package/dist/__generated__/FontFamiliesQuery.graphql.js +80 -31
- package/dist/__generated__/FontStyle_fontStyle.graphql.d.ts +2 -3
- package/dist/__generated__/FontStyle_fontStyle.graphql.js +4 -12
- package/dist/__generated__/PrecartAddToCartMutation.graphql.d.ts +1 -1
- package/dist/__generated__/PrecartAddToCartMutation.graphql.js +71 -29
- package/dist/__generated__/ServerConfigProviderQuery.graphql.d.ts +24 -0
- package/dist/__generated__/ServerConfigProviderQuery.graphql.js +108 -0
- package/dist/__generated__/StoreModalCartQuery.graphql.d.ts +1 -1
- package/dist/__generated__/StoreModalCartQuery.graphql.js +108 -76
- package/dist/__generated__/StoreModalContainerQuery.graphql.d.ts +4 -7
- package/dist/__generated__/StoreModalContainerQuery.graphql.js +58 -25
- package/dist/__generated__/StoreModalFamily_collection.graphql.d.ts +1 -2
- package/dist/__generated__/StoreModalFamily_collection.graphql.js +2 -8
- package/dist/__generated__/StoreModalIndexItem_fontCollection.graphql.d.ts +1 -4
- package/dist/__generated__/StoreModalIndexItem_fontCollection.graphql.js +2 -17
- package/dist/__generated__/StoreModalIndexQuery.graphql.d.ts +1 -1
- package/dist/__generated__/StoreModalIndexQuery.graphql.js +48 -9
- package/dist/__generated__/StoreModalProductQuery.graphql.d.ts +1 -1
- package/dist/__generated__/StoreModalProductQuery.graphql.js +85 -41
- package/dist/__generated__/StoreModalProductRefetchQuery.graphql.d.ts +1 -1
- package/dist/__generated__/StoreModalProductRefetchQuery.graphql.js +78 -34
- package/dist/__generated__/TestFontsFormUpdateCustomerMutation.graphql.d.ts +1 -1
- package/dist/__generated__/TestFontsFormUpdateCustomerMutation.graphql.js +65 -23
- package/dist/__generated__/TypeTesterStandaloneChangedStylesQuery.graphql.d.ts +1 -1
- package/dist/__generated__/TypeTesterStandaloneChangedStylesQuery.graphql.js +55 -7
- package/dist/__generated__/TypeTesterStandaloneQuery.graphql.d.ts +1 -1
- package/dist/__generated__/TypeTesterStandaloneQuery.graphql.js +56 -8
- package/dist/__generated__/TypeTester_fontStyle.graphql.d.ts +1 -4
- package/dist/__generated__/TypeTester_fontStyle.graphql.js +2 -17
- package/dist/__generated__/TypeTestersChangedStylesQuery.graphql.d.ts +1 -1
- package/dist/__generated__/TypeTestersChangedStylesQuery.graphql.js +55 -7
- package/dist/__generated__/TypeTestersIDQuery.graphql.d.ts +1 -1
- package/dist/__generated__/TypeTestersIDQuery.graphql.js +55 -7
- package/dist/__generated__/TypeTestersRefetchQuery.graphql.d.ts +1 -1
- package/dist/__generated__/TypeTestersRefetchQuery.graphql.js +55 -7
- package/dist/__generated__/TypeTestersSlugQuery.graphql.d.ts +1 -1
- package/dist/__generated__/TypeTestersSlugQuery.graphql.js +55 -7
- package/dist/__generated__/useFontStyle_fontStyle.graphql.d.ts +28 -0
- package/dist/__generated__/useFontStyle_fontStyle.graphql.js +94 -0
- package/dist/__tests__/collectionBundleSelection.test.js +453 -1
- package/dist/components/Cart/CartItem/CartItemProduct.js +3 -9
- package/dist/components/CharacterViewer/index.js +5 -11
- package/dist/components/ConfigContext.d.ts +13 -0
- package/dist/components/ConfigContext.js +6 -2
- package/dist/components/ConsentBanner/consent.d.ts +18 -0
- package/dist/components/ConsentBanner/consent.js +93 -0
- package/dist/components/ConsentBanner/index.d.ts +3 -0
- package/dist/components/ConsentBanner/index.js +84 -0
- package/dist/components/Family/index.js +2 -5
- package/dist/components/FontStyle/index.js +2 -8
- package/dist/components/FontdueProvider/FontdueProviderClientComponent.js +14 -1
- package/dist/components/FontdueProvider/index.js +1 -2
- package/dist/components/FontdueProvider/index.server.js +1 -2
- package/dist/components/ServerConfigProvider/index.d.ts +8 -0
- package/dist/components/ServerConfigProvider/index.js +41 -0
- package/dist/components/StoreModal/StoreModalContainer.js +15 -17
- package/dist/components/StoreModal/StoreModalFamily.js +1 -5
- package/dist/components/StoreModal/StoreModalIndexItem.js +6 -11
- package/dist/components/Tracking/index.d.ts +2 -0
- package/dist/components/Tracking/index.js +166 -0
- package/dist/components/TypeTester/TypeTesterSlider.js +10 -3
- package/dist/components/TypeTester/index.js +2 -5
- package/dist/components/TypeTester/useTypeTesterStyler.js +27 -85
- package/dist/components/UrlContext.d.ts +3 -0
- package/dist/components/UrlContext.js +15 -0
- package/dist/components/elements/StoreModalContainer/index.d.ts +2 -6
- package/dist/components/elements/StoreModalContainer/index.js +3 -8
- package/dist/components/elements/StoreModalFamily/index.d.ts +0 -1
- package/dist/components/elements/StoreModalFamily/index.js +1 -2
- package/dist/components/useConsent.d.ts +9 -0
- package/dist/components/useConsent.js +26 -0
- package/dist/components/useFont.d.ts +29 -0
- package/dist/components/useFont.js +77 -0
- package/dist/components/useFontLoaded.d.ts +24 -0
- package/dist/components/useFontLoaded.js +60 -0
- package/dist/components/useFontStyle.d.ts +3 -4
- package/dist/components/useFontStyle.js +24 -16
- package/dist/deepMerge.d.ts +4 -0
- package/dist/deepMerge.js +24 -0
- package/dist/fontLoader.d.ts +13 -0
- package/dist/fontLoader.js +55 -0
- package/dist/fontdue.css +65 -0
- package/dist/hooks/useAutofit.d.ts +20 -0
- package/dist/hooks/useAutofit.js +114 -0
- package/dist/react-ranger.js +5 -1
- package/dist/reducer.d.ts +0 -4
- package/dist/reducer.js +32 -21
- package/dist/utils.d.ts +3 -0
- package/dist/utils.js +19 -8
- package/package.json +5 -2
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.activateScripts = activateScripts;
|
|
7
|
+
exports.getClientAnonymousId = getClientAnonymousId;
|
|
8
|
+
exports.hasConsent = hasConsent;
|
|
9
|
+
exports.onConsent = onConsent;
|
|
10
|
+
exports.setClientAnonymousId = setClientAnonymousId;
|
|
11
|
+
exports.setConsent = setConsent;
|
|
12
|
+
const CONSENT_COOKIE = '_fontdue_cc';
|
|
13
|
+
const CONSENT_EVENT = 'fontdue:consent';
|
|
14
|
+
const MAX_AGE = 60 * 60 * 24 * 365; // 1 year
|
|
15
|
+
|
|
16
|
+
/** Store the client-generated anonymous_id so it can be sent with consent events. */
|
|
17
|
+
let clientAnonymousId;
|
|
18
|
+
function setClientAnonymousId(id) {
|
|
19
|
+
clientAnonymousId = id;
|
|
20
|
+
}
|
|
21
|
+
function getClientAnonymousId() {
|
|
22
|
+
return clientAnonymousId;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Parse the _fontdue_cc cookie and check if it contains the given category. */
|
|
26
|
+
function hasConsent(category) {
|
|
27
|
+
const match = document.cookie.match(new RegExp('(?:^|;\\s*)' + CONSENT_COOKIE + '=([^;]*)'));
|
|
28
|
+
if (!match) return false;
|
|
29
|
+
return match[1].split(',').includes(category);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** Set the _fontdue_cc cookie with the given categories. */
|
|
33
|
+
function setConsent(categories) {
|
|
34
|
+
document.cookie = CONSENT_COOKIE + '=' + categories.join(',') + ';path=/;max-age=' + MAX_AGE + ';SameSite=Lax;Secure';
|
|
35
|
+
window.dispatchEvent(new CustomEvent(CONSENT_EVENT, {
|
|
36
|
+
detail: {
|
|
37
|
+
categories
|
|
38
|
+
}
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Call callback when the given consent category is granted.
|
|
44
|
+
* If already granted, calls immediately. Otherwise polls (500ms) and
|
|
45
|
+
* listens for the fontdue:consent event. Returns a cleanup function.
|
|
46
|
+
*/
|
|
47
|
+
function onConsent(category, callback) {
|
|
48
|
+
if (hasConsent(category)) {
|
|
49
|
+
callback();
|
|
50
|
+
return () => {};
|
|
51
|
+
}
|
|
52
|
+
let called = false;
|
|
53
|
+
const check = () => {
|
|
54
|
+
if (!called && hasConsent(category)) {
|
|
55
|
+
called = true;
|
|
56
|
+
callback();
|
|
57
|
+
cleanup();
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const interval = setInterval(check, 500);
|
|
61
|
+
window.addEventListener(CONSENT_EVENT, check);
|
|
62
|
+
const cleanup = () => {
|
|
63
|
+
clearInterval(interval);
|
|
64
|
+
window.removeEventListener(CONSENT_EVENT, check);
|
|
65
|
+
};
|
|
66
|
+
return cleanup;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Activate blocked scripts for the given consent category.
|
|
71
|
+
* Finds all <script type="text/plain" data-consent-category="<category>">
|
|
72
|
+
* elements and replaces them with executable copies.
|
|
73
|
+
*/
|
|
74
|
+
function activateScripts(category) {
|
|
75
|
+
const scripts = document.querySelectorAll(`script[type="text/plain"][data-consent-category="${category}"]`);
|
|
76
|
+
scripts.forEach(blocked => {
|
|
77
|
+
var _blocked$parentNode;
|
|
78
|
+
const script = document.createElement('script');
|
|
79
|
+
|
|
80
|
+
// Copy all attributes except type and data-consent-category
|
|
81
|
+
for (const attr of Array.from(blocked.attributes)) {
|
|
82
|
+
if (attr.name !== 'type' && attr.name !== 'data-consent-category') {
|
|
83
|
+
script.setAttribute(attr.name, attr.value);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Copy inline content
|
|
88
|
+
if (blocked.textContent) {
|
|
89
|
+
script.textContent = blocked.textContent;
|
|
90
|
+
}
|
|
91
|
+
(_blocked$parentNode = blocked.parentNode) === null || _blocked$parentNode === void 0 ? void 0 : _blocked$parentNode.replaceChild(script, blocked);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _ConfigContext = _interopRequireDefault(require("../ConfigContext"));
|
|
9
|
+
var _UrlContext = require("../UrlContext");
|
|
10
|
+
var _consent = require("./consent");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
|
+
const DEFAULT_MESSAGE = 'We use cookies to analyze site usage and improve your\u00A0experience.';
|
|
15
|
+
const ConsentBanner = () => {
|
|
16
|
+
const config = (0, _react.useContext)(_ConfigContext.default);
|
|
17
|
+
const url = (0, _UrlContext.useFontdueUrl)();
|
|
18
|
+
|
|
19
|
+
// Start dismissed to avoid hydration mismatch (server has no document.cookie).
|
|
20
|
+
// Check on the client in useEffect.
|
|
21
|
+
const [dismissed, setDismissed] = (0, _react.useState)(true);
|
|
22
|
+
(0, _react.useEffect)(() => {
|
|
23
|
+
if (!config.tracking.consentRequired) return;
|
|
24
|
+
if (!document.cookie.includes('_fontdue_cc=')) {
|
|
25
|
+
setDismissed(false);
|
|
26
|
+
}
|
|
27
|
+
}, [config.tracking.consentRequired]);
|
|
28
|
+
if (dismissed) return null;
|
|
29
|
+
const message = config.tracking.consentMessage || DEFAULT_MESSAGE;
|
|
30
|
+
const sendConsentEvent = categories => {
|
|
31
|
+
// Fire a tracking event so the server sets the _fontdue_state cookie
|
|
32
|
+
// on this response (rather than waiting for the next page load).
|
|
33
|
+
// Include the client anonymous_id so it gets synced to the cookie.
|
|
34
|
+
const body = {
|
|
35
|
+
event: 'Consent Granted',
|
|
36
|
+
properties: {
|
|
37
|
+
categories: categories.join(',')
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const anonId = (0, _consent.getClientAnonymousId)();
|
|
41
|
+
if (anonId) body.anonymous_id = anonId;
|
|
42
|
+
fetch(`${url}/api/track`, {
|
|
43
|
+
method: 'POST',
|
|
44
|
+
headers: {
|
|
45
|
+
'Content-Type': 'application/json'
|
|
46
|
+
},
|
|
47
|
+
credentials: 'include',
|
|
48
|
+
body: JSON.stringify(body)
|
|
49
|
+
}).catch(() => {});
|
|
50
|
+
};
|
|
51
|
+
const handleAcceptAll = () => {
|
|
52
|
+
(0, _consent.setConsent)(['necessary', 'analytics']);
|
|
53
|
+
(0, _consent.activateScripts)('analytics');
|
|
54
|
+
if (config.tracking.enabled) {
|
|
55
|
+
sendConsentEvent(['necessary', 'analytics']);
|
|
56
|
+
}
|
|
57
|
+
setDismissed(true);
|
|
58
|
+
};
|
|
59
|
+
const handleReject = () => {
|
|
60
|
+
(0, _consent.setConsent)(['necessary']);
|
|
61
|
+
setDismissed(true);
|
|
62
|
+
};
|
|
63
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
64
|
+
className: "fontdue-consent-banner",
|
|
65
|
+
role: "region",
|
|
66
|
+
"aria-label": "Cookie consent"
|
|
67
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
68
|
+
className: "fontdue-consent-banner__container"
|
|
69
|
+
}, /*#__PURE__*/_react.default.createElement("p", {
|
|
70
|
+
className: "fontdue-consent-banner__message"
|
|
71
|
+
}, message), /*#__PURE__*/_react.default.createElement("div", {
|
|
72
|
+
className: "fontdue-consent-banner__actions"
|
|
73
|
+
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
74
|
+
type: "button",
|
|
75
|
+
className: "fontdue-consent-banner__button fontdue-consent-banner__button--secondary",
|
|
76
|
+
onClick: handleReject
|
|
77
|
+
}, "Necessary only"), /*#__PURE__*/_react.default.createElement("button", {
|
|
78
|
+
type: "button",
|
|
79
|
+
className: "fontdue-consent-banner__button fontdue-consent-banner__button--primary",
|
|
80
|
+
onClick: handleAcceptAll
|
|
81
|
+
}, "Accept all"))));
|
|
82
|
+
};
|
|
83
|
+
var _default = ConsentBanner;
|
|
84
|
+
exports.default = _default;
|
|
@@ -12,7 +12,6 @@ var _SelectButton = _interopRequireDefault(require("../SelectButton"));
|
|
|
12
12
|
var _SKUPrice = _interopRequireDefault(require("../SKUPrice"));
|
|
13
13
|
var _Price = require("../Price");
|
|
14
14
|
var _FamilyList = _interopRequireDefault(require("./FamilyList"));
|
|
15
|
-
var _Stylesheet = _interopRequireDefault(require("../Stylesheet"));
|
|
16
15
|
var _reducer = require("../../reducer");
|
|
17
16
|
var _utils = require("../../utils");
|
|
18
17
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
@@ -24,7 +23,7 @@ function Family(_ref) {
|
|
|
24
23
|
node: nodeKey,
|
|
25
24
|
size
|
|
26
25
|
} = _ref;
|
|
27
|
-
const node = (0, _reactRelay.useFragment)((_Family_node2.default.hash && _Family_node2.default.hash !== "
|
|
26
|
+
const node = (0, _reactRelay.useFragment)((_Family_node2.default.hash && _Family_node2.default.hash !== "5c49167e8bf2458ab72604ff960636b2" && console.error("The definition of 'Family_node' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _Family_node2.default), nodeKey);
|
|
28
27
|
const precartOpen = (0, _reactRedux.useSelector)(state => state.precartOpen);
|
|
29
28
|
const selector = node.sku ? (0, _reducer.isSelected)(node.sku.id) : () => false;
|
|
30
29
|
const selected = (0, _reactRedux.useSelector)(selector);
|
|
@@ -35,9 +34,7 @@ function Family(_ref) {
|
|
|
35
34
|
"data-size": size,
|
|
36
35
|
"data-selected": selected,
|
|
37
36
|
"data-buy-button-hovered": buyButtonIsHovered
|
|
38
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
39
|
-
href: node.cssUrl
|
|
40
|
-
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
37
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
41
38
|
className: "font-family-block__wrapper"
|
|
42
39
|
}, node.sku && /*#__PURE__*/_react.default.createElement("div", {
|
|
43
40
|
className: "font-family-block__select-button"
|
|
@@ -17,18 +17,12 @@ function FontStyle(_ref) {
|
|
|
17
17
|
children,
|
|
18
18
|
...rest
|
|
19
19
|
} = _ref;
|
|
20
|
-
const fontStyle = (0, _reactRelay.useFragment)((_FontStyle_fontStyle2.default.hash && _FontStyle_fontStyle2.default.hash !== "
|
|
21
|
-
const {
|
|
22
|
-
cssFamily,
|
|
23
|
-
name
|
|
24
|
-
} = fontStyle;
|
|
20
|
+
const fontStyle = (0, _reactRelay.useFragment)((_FontStyle_fontStyle2.default.hash && _FontStyle_fontStyle2.default.hash !== "7891603bea1a3e40f40297bf1697eb3c" && console.error("The definition of 'FontStyle_fontStyle' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _FontStyle_fontStyle2.default), fontStyleKey);
|
|
25
21
|
const {
|
|
26
22
|
style: fontStyleStyle,
|
|
27
23
|
loaded
|
|
28
24
|
} = (0, _useFontStyle.default)({
|
|
29
|
-
|
|
30
|
-
fontWeight: '400',
|
|
31
|
-
fontStyle: 'normal'
|
|
25
|
+
fontStyle
|
|
32
26
|
});
|
|
33
27
|
const renderProps = {
|
|
34
28
|
...rest,
|
|
@@ -6,15 +6,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = FontdueProviderClientComponent;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactErrorBoundary = require("react-error-boundary");
|
|
9
10
|
var _reactRedux = require("react-redux");
|
|
10
11
|
var _reactRelay = require("react-relay");
|
|
11
12
|
var _environment = require("../../relay/environment");
|
|
12
13
|
var _ConfigContext = _interopRequireWildcard(require("../ConfigContext"));
|
|
13
14
|
var _reducer = require("../../reducer");
|
|
14
15
|
var _ComponentsContext = _interopRequireDefault(require("../ComponentsContext"));
|
|
16
|
+
var _UrlContext = _interopRequireDefault(require("../UrlContext"));
|
|
15
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
17
19
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
+
const ConsentBanner = /*#__PURE__*/(0, _react.lazy)(() => Promise.resolve().then(() => _interopRequireWildcard(require('../ConsentBanner'))));
|
|
21
|
+
const Tracking = /*#__PURE__*/(0, _react.lazy)(() => Promise.resolve().then(() => _interopRequireWildcard(require('../Tracking'))));
|
|
22
|
+
const ServerConfigProvider = /*#__PURE__*/(0, _react.lazy)(() => Promise.resolve().then(() => _interopRequireWildcard(require('../ServerConfigProvider'))));
|
|
18
23
|
function FontdueProviderClientComponent(_ref) {
|
|
19
24
|
let {
|
|
20
25
|
children,
|
|
@@ -38,7 +43,15 @@ function FontdueProviderClientComponent(_ref) {
|
|
|
38
43
|
fallback: null
|
|
39
44
|
}, /*#__PURE__*/_react.default.createElement(_ConfigContext.default.Provider, {
|
|
40
45
|
value: configValue
|
|
46
|
+
}, /*#__PURE__*/_react.default.createElement(_UrlContext.default.Provider, {
|
|
47
|
+
value: url ?? (typeof process !== 'undefined' ? process.env.NEXT_PUBLIC_FONTDUE_URL : undefined) ?? ''
|
|
41
48
|
}, /*#__PURE__*/_react.default.createElement(_ComponentsContext.default.Provider, {
|
|
42
49
|
value: components ?? {}
|
|
43
|
-
}, children
|
|
50
|
+
}, children, /*#__PURE__*/_react.default.createElement(_reactErrorBoundary.ErrorBoundary, {
|
|
51
|
+
fallback: null
|
|
52
|
+
}, /*#__PURE__*/_react.default.createElement(_react.Suspense, {
|
|
53
|
+
fallback: null
|
|
54
|
+
}, /*#__PURE__*/_react.default.createElement(ServerConfigProvider, {
|
|
55
|
+
codeConfig: config
|
|
56
|
+
}, /*#__PURE__*/_react.default.createElement(ConsentBanner, null), /*#__PURE__*/_react.default.createElement(Tracking, null))))))))));
|
|
44
57
|
}
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
var _Stylesheet = require("../Stylesheet");
|
|
9
8
|
var _TestModeBanner = _interopRequireDefault(require("../TestModeBanner"));
|
|
10
9
|
var _ThemeConfig = _interopRequireDefault(require("../ThemeConfig"));
|
|
11
10
|
var _FontdueProviderClientComponent = _interopRequireDefault(require("./FontdueProviderClientComponent"));
|
|
@@ -15,7 +14,7 @@ const FontdueProvider = _ref => {
|
|
|
15
14
|
children,
|
|
16
15
|
...rest
|
|
17
16
|
} = _ref;
|
|
18
|
-
return /*#__PURE__*/_react.default.createElement(_FontdueProviderClientComponent.default, rest, /*#__PURE__*/_react.default.createElement(
|
|
17
|
+
return /*#__PURE__*/_react.default.createElement(_FontdueProviderClientComponent.default, rest, /*#__PURE__*/_react.default.createElement(_TestModeBanner.default, null), /*#__PURE__*/_react.default.createElement(_ThemeConfig.default, null), children);
|
|
19
18
|
};
|
|
20
19
|
var _default = FontdueProvider;
|
|
21
20
|
exports.default = _default;
|
|
@@ -11,7 +11,6 @@ Object.defineProperty(exports, "FontdueProvider_props", {
|
|
|
11
11
|
});
|
|
12
12
|
exports.default = FontdueProvider;
|
|
13
13
|
var _react = _interopRequireDefault(require("react"));
|
|
14
|
-
var _Stylesheet = require("../Stylesheet");
|
|
15
14
|
var _TestModeBanner = _interopRequireDefault(require("../TestModeBanner"));
|
|
16
15
|
var _index = _interopRequireDefault(require("../ThemeConfig/index.server"));
|
|
17
16
|
var _FontdueProviderClientComponent = _interopRequireWildcard(require("./FontdueProviderClientComponent"));
|
|
@@ -23,5 +22,5 @@ async function FontdueProvider(_ref) {
|
|
|
23
22
|
children,
|
|
24
23
|
...rest
|
|
25
24
|
} = _ref;
|
|
26
|
-
return /*#__PURE__*/_react.default.createElement(_FontdueProviderClientComponent.default, rest, /*#__PURE__*/_react.default.createElement(
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement(_FontdueProviderClientComponent.default, rest, /*#__PURE__*/_react.default.createElement(_TestModeBanner.default, null), /*#__PURE__*/_react.default.createElement(_index.default, null), children);
|
|
27
26
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Config } from '../ConfigContext';
|
|
3
|
+
interface Props {
|
|
4
|
+
codeConfig?: Config;
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
declare const ServerConfigProvider: ({ codeConfig, children }: Props) => React.JSX.Element;
|
|
8
|
+
export default ServerConfigProvider;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _ServerConfigProviderQuery2 = _interopRequireDefault(require("../../__generated__/ServerConfigProviderQuery.graphql"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _reactRelay = require("react-relay");
|
|
11
|
+
var _ConfigContext = _interopRequireWildcard(require("../ConfigContext"));
|
|
12
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
const query = (_ServerConfigProviderQuery2.default.hash && _ServerConfigProviderQuery2.default.hash !== "b20ad9bdada6a425ee660a8662a78840" && console.error("The definition of 'ServerConfigProviderQuery' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _ServerConfigProviderQuery2.default);
|
|
16
|
+
const ServerConfigProvider = _ref => {
|
|
17
|
+
var _data$viewer, _data$viewer$fontdueC;
|
|
18
|
+
let {
|
|
19
|
+
codeConfig,
|
|
20
|
+
children
|
|
21
|
+
} = _ref;
|
|
22
|
+
const data = (0, _reactRelay.useLazyLoadQuery)(query, {});
|
|
23
|
+
const tracking = (_data$viewer = data.viewer) === null || _data$viewer === void 0 ? void 0 : (_data$viewer$fontdueC = _data$viewer.fontdueConfig) === null || _data$viewer$fontdueC === void 0 ? void 0 : _data$viewer$fontdueC.tracking;
|
|
24
|
+
|
|
25
|
+
// Server config is the base; code config overrides.
|
|
26
|
+
const merged = {
|
|
27
|
+
...codeConfig,
|
|
28
|
+
tracking: {
|
|
29
|
+
enabled: tracking === null || tracking === void 0 ? void 0 : tracking.enabled,
|
|
30
|
+
consentRequired: tracking === null || tracking === void 0 ? void 0 : tracking.consentRequired,
|
|
31
|
+
consentMessage: (tracking === null || tracking === void 0 ? void 0 : tracking.consentMessage) ?? undefined,
|
|
32
|
+
...(codeConfig === null || codeConfig === void 0 ? void 0 : codeConfig.tracking)
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const configValue = (0, _ConfigContext.makeConfig)(merged);
|
|
36
|
+
return /*#__PURE__*/_react.default.createElement(_ConfigContext.default.Provider, {
|
|
37
|
+
value: configValue
|
|
38
|
+
}, children);
|
|
39
|
+
};
|
|
40
|
+
var _default = ServerConfigProvider;
|
|
41
|
+
exports.default = _default;
|
|
@@ -9,9 +9,9 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
var _reactRedux = require("react-redux");
|
|
10
10
|
var _StoreModalContainer = _interopRequireDefault(require("../elements/StoreModalContainer"));
|
|
11
11
|
var _reactRelay = require("react-relay");
|
|
12
|
-
var _relayRuntime = require("relay-runtime");
|
|
13
12
|
var _StoreModalCheckoutContext = _interopRequireDefault(require("./StoreModalCheckoutContext"));
|
|
14
13
|
var _CheckoutSteps = _interopRequireDefault(require("../Cart/CheckoutSteps"));
|
|
14
|
+
var _useFontStyle = _interopRequireDefault(require("../useFontStyle"));
|
|
15
15
|
var _StoreModalLoadingScreen = _interopRequireDefault(require("../elements/StoreModalLoadingScreen"));
|
|
16
16
|
var _ConfigContext = _interopRequireDefault(require("../ConfigContext"));
|
|
17
17
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
@@ -37,24 +37,20 @@ const getBackLink = (history, currentRoute) => {
|
|
|
37
37
|
if (!previous) return null;
|
|
38
38
|
return getPageTitle(previous.name);
|
|
39
39
|
};
|
|
40
|
-
function getFontData(fontStyle) {
|
|
41
|
-
if (!fontStyle) return null;
|
|
42
|
-
const {
|
|
43
|
-
name,
|
|
44
|
-
cssFamily,
|
|
45
|
-
family
|
|
46
|
-
} = fontStyle;
|
|
47
|
-
return {
|
|
48
|
-
name: `${cssFamily} ${name}`,
|
|
49
|
-
cssUrl: (family === null || family === void 0 ? void 0 : family.cssUrl) ?? null
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
40
|
const StoreModalContainer = _ref => {
|
|
53
|
-
var _currentOrder, _currentOrder$orderIt
|
|
41
|
+
var _settings, _settings2, _currentOrder, _currentOrder$orderIt;
|
|
54
42
|
let {
|
|
55
43
|
children
|
|
56
44
|
} = _ref;
|
|
57
|
-
const data = (0, _reactRelay.useLazyLoadQuery)((_StoreModalContainerQuery2.default.hash && _StoreModalContainerQuery2.default.hash !== "
|
|
45
|
+
const data = (0, _reactRelay.useLazyLoadQuery)((_StoreModalContainerQuery2.default.hash && _StoreModalContainerQuery2.default.hash !== "ae784b9ab1842dacc5857b045b399701" && console.error("The definition of 'StoreModalContainerQuery' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _StoreModalContainerQuery2.default), {});
|
|
46
|
+
const uiFontStyle = (_settings = data.viewer.settings) === null || _settings === void 0 ? void 0 : _settings.uiFontStyle;
|
|
47
|
+
const uiFontStyleBold = (_settings2 = data.viewer.settings) === null || _settings2 === void 0 ? void 0 : _settings2.uiFontStyleBold;
|
|
48
|
+
(0, _useFontStyle.default)({
|
|
49
|
+
fontStyle: uiFontStyle
|
|
50
|
+
});
|
|
51
|
+
(0, _useFontStyle.default)({
|
|
52
|
+
fontStyle: uiFontStyleBold
|
|
53
|
+
});
|
|
58
54
|
const dispatch = (0, _reactRedux.useDispatch)();
|
|
59
55
|
const orderItemCount = ((_currentOrder = data.viewer.currentOrder) === null || _currentOrder === void 0 ? void 0 : (_currentOrder$orderIt = _currentOrder.orderItems) === null || _currentOrder$orderIt === void 0 ? void 0 : _currentOrder$orderIt.length) ?? 0;
|
|
60
56
|
const showCartButton = orderItemCount > 0;
|
|
@@ -90,6 +86,8 @@ const StoreModalContainer = _ref => {
|
|
|
90
86
|
};
|
|
91
87
|
const [checkoutStep, setCheckoutStep] = (0, _react.useState)(_CheckoutSteps.default.Customer);
|
|
92
88
|
const [checkoutError, setCheckoutError] = (0, _react.useState)(null);
|
|
89
|
+
const regularName = uiFontStyle ? `${uiFontStyle.cssFamily} ${uiFontStyle.name}` : null;
|
|
90
|
+
const boldName = uiFontStyleBold ? `${uiFontStyleBold.cssFamily} ${uiFontStyleBold.name}` : null;
|
|
93
91
|
return /*#__PURE__*/_react.default.createElement(_StoreModalCheckoutContext.default.Provider, {
|
|
94
92
|
value: {
|
|
95
93
|
checkoutStep,
|
|
@@ -105,8 +103,8 @@ const StoreModalContainer = _ref => {
|
|
|
105
103
|
showCartButton: showCartButton,
|
|
106
104
|
orderItemCount: orderItemCount,
|
|
107
105
|
fonts: {
|
|
108
|
-
regular:
|
|
109
|
-
bold:
|
|
106
|
+
regular: regularName,
|
|
107
|
+
bold: boldName
|
|
110
108
|
},
|
|
111
109
|
routeName: currentRoute
|
|
112
110
|
}, {
|
|
@@ -9,7 +9,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
var _reactRelay = require("react-relay");
|
|
10
10
|
var _StoreModalFamilyButton = _interopRequireDefault(require("./StoreModalFamilyButton"));
|
|
11
11
|
var _StoreModalStyleButton = _interopRequireDefault(require("./StoreModalStyleButton"));
|
|
12
|
-
var _Stylesheet = _interopRequireDefault(require("../Stylesheet"));
|
|
13
12
|
var _StoreModalFamily = _interopRequireDefault(require("../elements/StoreModalFamily"));
|
|
14
13
|
var _StoreModalBundleButton = _interopRequireDefault(require("./StoreModalBundleButton"));
|
|
15
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
@@ -37,13 +36,10 @@ function StoreModalFamily(_ref) {
|
|
|
37
36
|
onSelect,
|
|
38
37
|
title
|
|
39
38
|
} = _ref;
|
|
40
|
-
const collection = (0, _reactRelay.useFragment)((_StoreModalFamily_collection2.default.hash && _StoreModalFamily_collection2.default.hash !== "
|
|
39
|
+
const collection = (0, _reactRelay.useFragment)((_StoreModalFamily_collection2.default.hash && _StoreModalFamily_collection2.default.hash !== "73d00dd2b57a2b44a86ee085b4313d77" && console.error("The definition of 'StoreModalFamily_collection' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _StoreModalFamily_collection2.default), collectionKey);
|
|
41
40
|
const fontStyles = (0, _react.useMemo)(() => stylesGrouped(collection), [collection]);
|
|
42
41
|
if ((fontStyles === null || fontStyles === void 0 ? void 0 : fontStyles.length) === 0 && collection.collectionType === 'superfamily' && !collection.sku) return null;
|
|
43
42
|
return /*#__PURE__*/_react.default.createElement(_StoreModalFamily.default, null, {
|
|
44
|
-
stylesheet: collection.cssUrl && /*#__PURE__*/_react.default.createElement(_Stylesheet.default, {
|
|
45
|
-
href: collection.cssUrl
|
|
46
|
-
}) || null,
|
|
47
43
|
title,
|
|
48
44
|
familyButton: /*#__PURE__*/_react.default.createElement(_StoreModalFamilyButton.default, {
|
|
49
45
|
collection: collection,
|
|
@@ -11,21 +11,20 @@ var _reactRelay = require("react-relay");
|
|
|
11
11
|
var _StoreModalIndexItem = _interopRequireDefault(require("../elements/StoreModalIndexItem"));
|
|
12
12
|
var _ConfigContext = _interopRequireDefault(require("../ConfigContext"));
|
|
13
13
|
var _FontStyle = _interopRequireDefault(require("../FontStyle"));
|
|
14
|
-
var _Stylesheet = _interopRequireDefault(require("../Stylesheet"));
|
|
15
14
|
var _useTotalStyles = _interopRequireDefault(require("../useTotalStyles"));
|
|
16
15
|
var _utils = require("../../utils");
|
|
17
16
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
18
17
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
19
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
19
|
const StoreModalIndexItem = _ref => {
|
|
21
|
-
var _data$featureStyle
|
|
20
|
+
var _data$featureStyle;
|
|
22
21
|
let {
|
|
23
22
|
collection
|
|
24
23
|
} = _ref;
|
|
25
24
|
const {
|
|
26
25
|
storeModal: config
|
|
27
26
|
} = (0, _react.useContext)(_ConfigContext.default);
|
|
28
|
-
const data = (0, _reactRelay.useFragment)((_StoreModalIndexItem_fontCollection2.default.hash && _StoreModalIndexItem_fontCollection2.default.hash !== "
|
|
27
|
+
const data = (0, _reactRelay.useFragment)((_StoreModalIndexItem_fontCollection2.default.hash && _StoreModalIndexItem_fontCollection2.default.hash !== "8a990fad8dc50c9f00b391902e9bc482" && console.error("The definition of 'StoreModalIndexItem_fontCollection' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _StoreModalIndexItem_fontCollection2.default), collection);
|
|
29
28
|
const dispatch = (0, _reactRedux.useDispatch)();
|
|
30
29
|
const handleClickProduct = productId => {
|
|
31
30
|
dispatch({
|
|
@@ -53,16 +52,12 @@ const StoreModalIndexItem = _ref => {
|
|
|
53
52
|
key: data.id,
|
|
54
53
|
onClick: handleClickProduct.bind(null, data.id)
|
|
55
54
|
}, {
|
|
56
|
-
aa: config.indexLayout === 'styled-aa' && (data.featureStyle ? /*#__PURE__*/_react.default.createElement(
|
|
57
|
-
href: data.featureStyle.family.cssUrl
|
|
58
|
-
}), /*#__PURE__*/_react.default.createElement(_FontStyle.default, {
|
|
55
|
+
aa: config.indexLayout === 'styled-aa' && (data.featureStyle ? /*#__PURE__*/_react.default.createElement(_FontStyle.default, {
|
|
59
56
|
fontStyle: data.featureStyle
|
|
60
|
-
}, (0, _utils.getFeatureGlyphs)((_data$featureStyle = data.featureStyle) === null || _data$featureStyle === void 0 ? void 0 : _data$featureStyle.supportedLanguages))
|
|
61
|
-
name: config.indexLayout === 'styled-font-names' ? data.featureStyle && /*#__PURE__*/_react.default.createElement(
|
|
62
|
-
href: data.featureStyle.family.cssUrl
|
|
63
|
-
}), /*#__PURE__*/_react.default.createElement(_FontStyle.default, {
|
|
57
|
+
}, (0, _utils.getFeatureGlyphs)((_data$featureStyle = data.featureStyle) === null || _data$featureStyle === void 0 ? void 0 : _data$featureStyle.supportedLanguages)) : null),
|
|
58
|
+
name: config.indexLayout === 'styled-font-names' ? data.featureStyle && /*#__PURE__*/_react.default.createElement(_FontStyle.default, {
|
|
64
59
|
fontStyle: data.featureStyle
|
|
65
|
-
}, data.name)
|
|
60
|
+
}, data.name) : data.name,
|
|
66
61
|
label: label.join(', ')
|
|
67
62
|
});
|
|
68
63
|
};
|