@pixelated-tech/components 3.12.0 → 3.13.1
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/dist/components/admin/componentusage/componentAnalysis.js +2 -0
- package/dist/components/admin/deploy/deployment.integration.js +8 -0
- package/dist/components/admin/site-health/site-health-dependency-vulnerabilities.js +3 -1
- package/dist/components/config/config.js +41 -2
- package/dist/components/general/buzzwordbingo.css +8 -8
- package/dist/components/general/buzzwordbingo.js +3 -3
- package/dist/components/general/countup.css +19 -0
- package/dist/components/general/countup.js +62 -0
- package/dist/components/general/global-error.css +1 -1
- package/dist/components/general/global-error.js +1 -1
- package/dist/components/general/menu-accordion.css +24 -24
- package/dist/components/general/menu-accordion.js +13 -13
- package/dist/components/general/menu-expando.css +4 -4
- package/dist/components/general/menu-expando.js +7 -7
- package/dist/components/general/metadata.functions.js +1 -1
- package/dist/components/general/microinteractions.css +1 -1
- package/dist/components/general/nerdjoke.css +5 -5
- package/dist/components/general/nerdjoke.js +2 -2
- package/dist/components/general/recipe.css +1 -1
- package/dist/components/general/recipe.js +1 -1
- package/dist/components/general/semantic.js +1 -1
- package/dist/components/general/sidepanel.css +3 -3
- package/dist/components/general/skeleton.css +4 -4
- package/dist/components/general/skeleton.js +3 -3
- package/dist/components/general/styleguide.js +2 -2
- package/dist/components/general/table.css +6 -6
- package/dist/components/general/table.js +5 -5
- package/dist/components/general/tiles.js +3 -2
- package/dist/components/general/well-known.js +137 -0
- package/dist/components/integrations/contentful.management.js +25 -25
- package/dist/components/integrations/socialcard.css +6 -6
- package/dist/components/integrations/socialcard.js +2 -2
- package/dist/components/integrations/wordpress.components.js +1 -1
- package/dist/components/integrations/wordpress.css +2 -2
- package/dist/components/shoppingcart/ebay.components.js +11 -11
- package/dist/components/shoppingcart/ebay.css +20 -20
- package/dist/components/shoppingcart/shoppingcart.components.js +11 -11
- package/dist/components/shoppingcart/shoppingcart.css +19 -19
- package/dist/components/sitebuilder/form/form.css +4 -4
- package/dist/components/sitebuilder/form/formcomponents.js +3 -3
- package/dist/components/sitebuilder/page/components/PageBuilderUI.js +2 -2
- package/dist/components/sitebuilder/page/lib/pageStorageContentful.js +4 -4
- package/dist/config/pixelated.config.json.enc +1 -1
- package/dist/css/pixelated.grid.scss +1 -1
- package/dist/index.js +1 -1
- package/dist/index.server.js +3 -4
- package/dist/scripts/pixelated-eslint-plugin.js +51 -3
- package/dist/types/components/admin/componentusage/componentAnalysis.d.ts +2 -5
- package/dist/types/components/admin/componentusage/componentAnalysis.d.ts.map +1 -1
- package/dist/types/components/admin/deploy/deployment.integration.d.ts +1 -5
- package/dist/types/components/admin/deploy/deployment.integration.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-dependency-vulnerabilities.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-github.integration.d.ts +1 -11
- package/dist/types/components/admin/site-health/site-health-github.integration.d.ts.map +1 -1
- package/dist/types/components/admin/sites/sites.integration.d.ts +7 -1
- package/dist/types/components/admin/sites/sites.integration.d.ts.map +1 -1
- package/dist/types/components/config/config.d.ts.map +1 -1
- package/dist/types/components/config/config.types.d.ts +2 -2
- package/dist/types/components/config/config.types.d.ts.map +1 -1
- package/dist/types/components/general/countup.d.ts +17 -0
- package/dist/types/components/general/countup.d.ts.map +1 -0
- package/dist/types/components/general/tiles.d.ts.map +1 -1
- package/dist/types/components/general/well-known.d.ts +56 -0
- package/dist/types/components/general/well-known.d.ts.map +1 -0
- package/dist/types/components/integrations/contentful.management.d.ts +1 -5
- package/dist/types/components/integrations/contentful.management.d.ts.map +1 -1
- package/dist/types/components/shoppingcart/ebay.functions.d.ts +2 -2
- package/dist/types/components/shoppingcart/ebay.functions.d.ts.map +1 -1
- package/dist/types/components/shoppingcart/paypal.d.ts.map +1 -1
- package/dist/types/components/shoppingcart/shoppingcart.functions.d.ts +20 -12
- package/dist/types/components/shoppingcart/shoppingcart.functions.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/page/lib/pageStorageContentful.d.ts +1 -1
- package/dist/types/components/sitebuilder/page/lib/pageStorageContentful.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.server.d.ts +3 -4
- package/dist/types/scripts/pixelated-eslint-plugin.d.ts +18 -0
- package/dist/types/stories/general/countup.stories.d.ts +47 -0
- package/dist/types/stories/general/countup.stories.d.ts.map +1 -0
- package/dist/types/tests/securitytxt.test.d.ts +2 -0
- package/dist/types/tests/securitytxt.test.d.ts.map +1 -0
- package/package.json +23 -13
- package/dist/components/config/config.utils.js +0 -52
- package/dist/components/general/humanstxt.js +0 -81
- package/dist/types/components/config/config.utils.d.ts +0 -6
- package/dist/types/components/config/config.utils.d.ts.map +0 -1
- package/dist/types/components/general/humanstxt.d.ts +0 -37
- package/dist/types/components/general/humanstxt.d.ts.map +0 -1
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
.
|
|
42
|
+
.masonry-item { /* Masonry bricks or child elements */
|
|
43
43
|
display: inline-block;
|
|
44
44
|
padding: 5px;
|
|
45
45
|
width: 100%;
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
white-space: normal;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
.
|
|
79
|
+
.card-title {
|
|
80
80
|
background-color: #EEE;
|
|
81
81
|
/* background-image: url(/images/pix/pix-bg-sm-bw.gif); */
|
|
82
82
|
border-bottom: 1px solid #999;
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
/* .cardTitle a {
|
|
89
89
|
} */
|
|
90
90
|
|
|
91
|
-
.
|
|
91
|
+
.card-icon {
|
|
92
92
|
background: #FFF;
|
|
93
93
|
border: 0;
|
|
94
94
|
height: 20px;
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
margin: 0px 5px 0px 0px;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
.
|
|
100
|
+
.card-date {
|
|
101
101
|
background-color: #DDD;
|
|
102
102
|
border-top: 1px solid #999;
|
|
103
103
|
font-size: 0.8em;
|
|
@@ -105,14 +105,14 @@
|
|
|
105
105
|
text-align: right;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
.
|
|
108
|
+
.card-body {
|
|
109
109
|
background-color: #fff;
|
|
110
110
|
display: inline-block;
|
|
111
111
|
padding: 5px;
|
|
112
112
|
width: 100%;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
.
|
|
115
|
+
.cards-loading {
|
|
116
116
|
column-span: all;
|
|
117
117
|
text-align: center;
|
|
118
118
|
}
|
|
@@ -312,7 +312,7 @@ SocialCard.propTypes = {
|
|
|
312
312
|
};
|
|
313
313
|
export function SocialCard(props) {
|
|
314
314
|
const config = usePixelatedConfig();
|
|
315
|
-
return (_jsx("div", { className: "
|
|
315
|
+
return (_jsx("div", { className: "masonry-item", children: _jsxs("div", { className: "card", children: [_jsx("div", { className: "card-title", children: _jsxs("a", { href: props.card.link, target: "_blank", rel: "noopener noreferrer", children: [_jsx(SmartImage, { className: "card-icon", src: props.iconSrc, title: props.iconSrcAlt, alt: props.iconSrcAlt, cloudinaryEnv: config?.cloudinary?.product_env, cloudinaryDomain: config?.cloudinary?.baseUrl, cloudinaryTransforms: config?.cloudinary?.transforms }), props.card.title] }) }), _jsx("div", { className: "card-body", dangerouslySetInnerHTML: { __html: removeDeadHrefs(props.card.description) } }), _jsx("div", { className: "card-date", children: props.card.pubDate })] }) }, props.card.guid));
|
|
316
316
|
}
|
|
317
317
|
/* ========== SPINNER ========== */
|
|
318
318
|
/** SocialCardsLoading.propTypes — No props (simple loading indicator).
|
|
@@ -320,5 +320,5 @@ export function SocialCard(props) {
|
|
|
320
320
|
*/
|
|
321
321
|
SocialCardsLoading.propTypes = { /** no props */};
|
|
322
322
|
export function SocialCardsLoading() {
|
|
323
|
-
return (_jsx("div", { className: "
|
|
323
|
+
return (_jsx("div", { className: "cards-loading", children: _jsx("div", { children: "Loading..." }) }));
|
|
324
324
|
}
|
|
@@ -123,5 +123,5 @@ export function BlogPostCategories(props) {
|
|
|
123
123
|
? category.trim().toLowerCase().replace(/[ /]+/g, '-')
|
|
124
124
|
: undefined).filter(Boolean).sort();
|
|
125
125
|
const config = usePixelatedConfig();
|
|
126
|
-
return (_jsxs("div", { className: "
|
|
126
|
+
return (_jsxs("div", { className: "blog-post-categories", children: [_jsx("div", { children: "Categories: " }), myCategoryImages.map((categoryImg, index) => categoryImg ? (_jsx("span", { className: "p-category", children: _jsx(SmartImage, { className: "u-photo", src: `/images/icons/${categoryImg}.png`, title: String(categoryImg), alt: String(categoryImg), cloudinaryEnv: config?.cloudinary?.product_env ?? undefined, cloudinaryDomain: config?.cloudinary?.baseUrl ?? undefined, cloudinaryTransforms: config?.cloudinary?.transforms ?? undefined }) }, categoryImg + "-" + index)) : null)] }));
|
|
127
127
|
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
border-radius: 25px;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
.
|
|
12
|
+
.blog-post-categories {
|
|
13
13
|
/* border: 1px solid #ccc; */
|
|
14
14
|
margin: 10px;
|
|
15
15
|
padding: 20px;
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
.blog-post-summary .p-category img,
|
|
57
|
-
.
|
|
57
|
+
.blog-post-categories .p-category img {
|
|
58
58
|
width: 30px;
|
|
59
59
|
height: 30px;
|
|
60
60
|
margin: 0 5px;
|
|
@@ -98,10 +98,10 @@ export function EbayItems(props) {
|
|
|
98
98
|
ToggleLoading(false);
|
|
99
99
|
}, []);
|
|
100
100
|
if (items && items.length > 0) {
|
|
101
|
-
return (_jsxs(_Fragment, { children: [_jsx(Loading, {}), _jsx("div", { className: "
|
|
101
|
+
return (_jsxs(_Fragment, { children: [_jsx(Loading, {}), _jsx("div", { className: "ebay-items-header", children: _jsx(EbayItemHeader, { title: `${items.length} Store Items` }) }), _jsx("div", { className: "ebay-items-header", children: _jsx(EbayListFilter, { aspects: aspects, callback: fetchItems }) }), _jsx("div", { id: "ebay-items", className: "ebay-items", children: paintItems({ items: items, cloudinaryProductEnv: props.cloudinaryProductEnv }) })] }));
|
|
102
102
|
}
|
|
103
103
|
else {
|
|
104
|
-
return (_jsx("div", { className: "section-container", children: _jsx("div", { id: "
|
|
104
|
+
return (_jsx("div", { className: "section-container", children: _jsx("div", { id: "ebay-items", className: "ebay-items", children: _jsx(Loading, {}) }) }));
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
/**
|
|
@@ -154,7 +154,7 @@ export function EbayListFilter(props) {
|
|
|
154
154
|
props.callback({ aspectName: aspectName.value, aspectValue: aspectValue.value });
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
|
-
return (_jsxs("form", { name: "
|
|
157
|
+
return (_jsxs("form", { name: "ebay-items-filter", id: "ebay-items-filter", children: [_jsxs("span", { className: "filter-input", children: [_jsx("label", { htmlFor: "aspectName", children: "Aspect:" }), _jsxs("select", { id: "aspectName", onChange: onAspectNameChange, children: [_jsx("option", { value: "" }), aspectNames.map((aspectName, index) => _jsx("option", { value: aspectName, children: aspectName }, index))] })] }), _jsxs("span", { className: "filter-input", children: [_jsx("label", { htmlFor: "aspectValue", onChange: onAspectValueChange, children: "Value:" }), _jsx("select", { id: "aspectValue", children: _jsx("option", { value: "" }) })] }), _jsx("span", { className: "filter-input", children: _jsx("button", { type: "button", onClick: handleAspectFilter, children: "Filter" }) })] }));
|
|
158
158
|
}
|
|
159
159
|
/**
|
|
160
160
|
* EbayListItem — Render a single eBay item with thumbnail, metadata and add-to-cart actions.
|
|
@@ -185,13 +185,13 @@ export function EbayListItem(props) {
|
|
|
185
185
|
shoppingCartItem.itemURL = itemURL;
|
|
186
186
|
const config = usePixelatedConfig();
|
|
187
187
|
const itemImageComponent = _jsx(SmartImage, { src: itemImage, title: thisItem.title, alt: thisItem.title, cloudinaryEnv: props.cloudinaryProductEnv ?? undefined, cloudinaryDomain: config?.cloudinary?.baseUrl ?? undefined, cloudinaryTransforms: config?.cloudinary?.transforms ?? undefined });
|
|
188
|
-
return (_jsxs("div", { className: "
|
|
188
|
+
return (_jsxs("div", { className: "ebay-item row-12col", children: [_jsx("div", { className: "ebay-item-photo grid-s1-e5", children: itemURL
|
|
189
189
|
? _jsx("a", { href: itemURL, target: itemURLTarget, rel: "noopener noreferrer", children: itemImageComponent })
|
|
190
|
-
: (itemImageComponent) }), _jsxs("div", { className: "
|
|
190
|
+
: (itemImageComponent) }), _jsxs("div", { className: "ebay-item-body grid-s5-e13", children: [_jsx("div", { className: "ebay-item-header", children: itemURL
|
|
191
191
|
? _jsx(EbayItemHeader, { url: itemURL, target: itemURLTarget, title: thisItem.title })
|
|
192
|
-
: _jsx(EbayItemHeader, { title: thisItem.title }) }), _jsxs("div", { className: "
|
|
192
|
+
: _jsx(EbayItemHeader, { title: thisItem.title }) }), _jsxs("div", { className: "ebay-item-details grid12", children: [_jsxs("div", { children: [_jsx("b", { children: "Item ID: " }), thisItem.legacyItemId] }), _jsxs("div", { children: [_jsx("b", { children: "Quantity: " }), thisItem.categories[0].categoryId == apiProps.itemCategory ? 1 : 10] }), _jsxs("div", { children: [_jsx("b", { children: "Condition: " }), thisItem.condition] }), _jsxs("div", { children: [_jsx("b", { children: "Seller: " }), thisItem.seller.username, " (", thisItem.seller.feedbackScore, ")", _jsx("br", {}), thisItem.seller.feedbackPercentage, "% positive"] }), _jsxs("div", { children: [_jsx("b", { children: "Buying Options: " }), thisItem.buyingOptions[0]] }), _jsxs("div", { children: [_jsx("b", { children: "Location: " }), thisItem.itemLocation.postalCode + ", " + thisItem.itemLocation.country] }), _jsxs("div", { children: [_jsx("b", { children: "Listing Date: " }), thisItem.itemCreationDate] })] }), _jsx("div", { className: "ebay-item-price", children: itemURL
|
|
193
193
|
? _jsxs("a", { href: itemURL, target: itemURLTarget, rel: "noreferrer", children: ["$", thisItem.price.value + " " + thisItem.price.currency] })
|
|
194
|
-
: "$" + thisItem.price.value + " " + thisItem.price.currency }), _jsx("br", {}), _jsxs("div", { className: "
|
|
194
|
+
: "$" + thisItem.price.value + " " + thisItem.price.currency }), _jsx("br", {}), _jsxs("div", { className: "ebay-item-add-to-cart", children: [_jsx(ViewItemDetails, { href: "/store", itemID: thisItem.legacyItemId }), _jsx(AddToCartButton, { handler: addToShoppingCart, item: shoppingCartItem, itemID: thisItem.legacyItemId })] })] })] }));
|
|
195
195
|
}
|
|
196
196
|
/**
|
|
197
197
|
* EbayItemHeader — Render a heading for an eBay item; optionally wrap in a link when a `url` is provided.
|
|
@@ -260,14 +260,14 @@ export function EbayItemDetail(props) {
|
|
|
260
260
|
const itemURLTarget = "_self"; /* "_blank" */
|
|
261
261
|
const shoppingCartItem = getShoppingCartItem({ thisItem: thisItem, cloudinaryProductEnv: props.cloudinaryProductEnv, apiProps: apiProps });
|
|
262
262
|
shoppingCartItem.itemURL = itemURL;
|
|
263
|
-
return (_jsx(_Fragment, { children: _jsxs("div", { className: "
|
|
263
|
+
return (_jsx(_Fragment, { children: _jsxs("div", { className: "ebay-item row-12col", children: [_jsx("div", { className: "ebay-item-header grid-s1-e13", children: itemURL
|
|
264
264
|
? _jsx(EbayItemHeader, { url: itemURL, title: thisItem.title })
|
|
265
|
-
: _jsx(EbayItemHeader, { title: thisItem.title }) }), _jsx("br", {}), _jsx("div", { className: "
|
|
265
|
+
: _jsx(EbayItemHeader, { title: thisItem.title }) }), _jsx("br", {}), _jsx("div", { className: "ebay-item-photo-carousel grid-s1-e7", children: _jsx(Carousel, { cards: images, draggable: true, imgFit: "contain" }) }), _jsxs("div", { className: "grid-s7-e13", children: [_jsx("div", { className: "ebay-item-details grid12", children: _jsx("div", { dangerouslySetInnerHTML: { __html: thisItem.description.replace(/(<br\s*\/?>\s*){2,}/gi, '') } }) }), _jsx("br", {}), _jsxs("div", { className: "ebay-item-details grid12", children: [_jsxs("div", { children: [_jsx("b", { children: "Item ID: " }), thisItem.legacyItemId] }), _jsxs("div", { children: [_jsx("b", { children: "Quantity: " }), thisItem.categoryId == apiProps.itemCategory ? 1 : 10] }), _jsxs("div", { children: [_jsx("b", { children: "Category: " }), thisItem.categoryPath] }), _jsxs("div", { children: [_jsx("b", { children: "Condition: " }), thisItem.condition] }), _jsxs("div", { children: [_jsx("b", { children: "Seller: " }), thisItem.seller.username, " (", thisItem.seller.feedbackScore, ")", _jsx("br", {}), thisItem.seller.feedbackPercentage, "% positive"] }), _jsxs("div", { children: [_jsx("b", { children: "Buying Options: " }), thisItem.buyingOptions[0]] }), _jsxs("div", { children: [_jsx("b", { children: "Location: " }), thisItem.itemLocation.city + ", " + thisItem.itemLocation.stateOrProvince] }), _jsxs("div", { children: [_jsx("b", { children: "Listing Date: " }), thisItem.itemCreationDate] }), _jsx("br", {})] }), _jsx("div", { className: "ebay-item-price", children: itemURL
|
|
266
266
|
? _jsxs("a", { href: itemURL, target: itemURLTarget, rel: "noreferrer", children: ["$", thisItem.price.value + " " + thisItem.price.currency] })
|
|
267
|
-
: "$" + thisItem.price.value + " " + thisItem.price.currency }), _jsx("br", {}), _jsx("div", { className: "
|
|
267
|
+
: "$" + thisItem.price.value + " " + thisItem.price.currency }), _jsx("br", {}), _jsx("div", { className: "ebay-item-add-to-cart", children: _jsx(AddToCartButton, { handler: addToShoppingCart, item: shoppingCartItem, itemID: thisItem.legacyItemId }) })] })] }) }));
|
|
268
268
|
}
|
|
269
269
|
else {
|
|
270
|
-
return (_jsx(_Fragment, { children: _jsx("div", { id: "
|
|
270
|
+
return (_jsx(_Fragment, { children: _jsx("div", { id: "ebay-items", className: "ebay-items", children: _jsx("div", { className: "centered", children: "Loading..." }) }) }));
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
273
|
/* ========== EBAY RATE LIMITS VISUALIZER ========== */
|
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
=============== EBAY ===============
|
|
3
3
|
======================================== */
|
|
4
4
|
|
|
5
|
-
.
|
|
5
|
+
.ebay-items {
|
|
6
6
|
text-align: center;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
@media screen and (max-width: 480px) {
|
|
10
|
-
.
|
|
10
|
+
.ebay-items {
|
|
11
11
|
padding: 20px;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
.
|
|
15
|
+
.ebay-items-header {
|
|
16
16
|
font-size: 1.25em;
|
|
17
17
|
font-weight: bold;
|
|
18
18
|
text-align: center;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
#
|
|
21
|
+
#ebay-items-filter {
|
|
22
22
|
font-size: 0.8em;
|
|
23
23
|
margin: 20px auto;
|
|
24
24
|
}
|
|
@@ -27,44 +27,44 @@
|
|
|
27
27
|
#ebayItemsFilter {
|
|
28
28
|
text-align: left;
|
|
29
29
|
}
|
|
30
|
-
.
|
|
30
|
+
.filter-input {
|
|
31
31
|
display: block;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
.
|
|
35
|
+
.ebay-item {
|
|
36
36
|
border: 1px solid #DDD;
|
|
37
37
|
text-align: left;
|
|
38
38
|
padding: 20px 5px !important;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
@media screen and (max-width: 480px) {
|
|
42
|
-
.
|
|
42
|
+
.ebay-item {
|
|
43
43
|
text-align: center;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
.
|
|
47
|
+
.ebay-item-body {
|
|
48
48
|
grid-auto-rows: min-content;
|
|
49
49
|
margin: 10px 0;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
.
|
|
52
|
+
.ebay-item-header {
|
|
53
53
|
margin: 0 auto;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
.
|
|
56
|
+
.ebay-item-header h2 {
|
|
57
57
|
font-size: 1.25em;
|
|
58
58
|
font-weight: bold;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
/* ===== PHOTO CAROUSEL ON EBAY ITEM DETAIL PAGE ===== */
|
|
62
|
-
.
|
|
62
|
+
.ebay-item-photo-carousel {
|
|
63
63
|
width: 100%;
|
|
64
64
|
height: 400px;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
.
|
|
67
|
+
.ebay-item-photo-carousel {
|
|
68
68
|
|
|
69
69
|
.carousel-container {
|
|
70
70
|
background: none;
|
|
@@ -84,38 +84,38 @@
|
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
@media screen and (max-width: 480px) {
|
|
87
|
-
.
|
|
87
|
+
.ebay-item-photo-carousel {
|
|
88
88
|
height: 350px;
|
|
89
89
|
}
|
|
90
|
-
.
|
|
90
|
+
.ebay-item-photo-carousel .carousel-container {
|
|
91
91
|
height: 300px;
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
.
|
|
95
|
+
.ebay-item-photo {
|
|
96
96
|
overflow: hidden;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
.
|
|
99
|
+
.ebay-item-photo img {
|
|
100
100
|
padding: 10px 0;
|
|
101
101
|
width: 100%;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
.
|
|
104
|
+
.ebay-items .ebay-item-details {
|
|
105
105
|
display: none;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
.
|
|
108
|
+
.ebay-item-details {
|
|
109
109
|
padding-bottom: 10px;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
@media screen and (max-width: 480px) {
|
|
113
|
-
.
|
|
113
|
+
.ebay-item-details {
|
|
114
114
|
text-align: left;
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
.
|
|
118
|
+
.ebay-item-price{
|
|
119
119
|
font-size: 1.5em;
|
|
120
120
|
font-weight: bold;
|
|
121
121
|
/* background-image: url(/images/pix/pix-bg-sm-bw.gif); */
|
|
@@ -157,20 +157,20 @@ export function ShoppingCart(props) {
|
|
|
157
157
|
console.log("SendMail Response:", sendMailResponse);
|
|
158
158
|
// ========== THANK YOU ==========
|
|
159
159
|
const pmt = orderData.purchase_units[0].payments.captures[0];
|
|
160
|
-
return (_jsxs("div", { className: "
|
|
160
|
+
return (_jsxs("div", { className: "pix-cart", children: [_jsx(CalloutHeader, { title: "Shopping Cart : " }), _jsx("br", {}), _jsx("div", { id: "paypal-button-container", className: "paypal-button-container" }), _jsxs("div", { children: [_jsx("h3", { children: "Thank you for your payment!" }), "Payment ID : ", pmt.id, " ", _jsx("br", {}), "Status : ", pmt.status, " ", _jsx("br", {}), "Amount : $", pmt.amount.value + " " + pmt.amount.currency_code, " ", _jsx("br", {}), "Created : ", pmt.create_time, " ", _jsx("br", {})] })] }));
|
|
161
161
|
}
|
|
162
162
|
else if (progressStep === "Checkout") {
|
|
163
163
|
// ========== CHECKOUT ==========
|
|
164
|
-
return (_jsxs("div", { className: "
|
|
164
|
+
return (_jsxs("div", { className: "pix-cart", children: [_jsx(CalloutHeader, { title: "Checkout Summary : " }), checkoutData && _jsx(CheckoutItems, { ...checkoutData }), _jsx("br", {}), _jsx(FormButton, { className: "pix-cart-button", type: "button", id: "backToCart", text: "<= Back To Cart", onClick: () => SetProgressStep("ShippingInfo") }), _jsx("br", {}), payPalClientID && (_jsx(PayPal, { payPalClientID: payPalClientID, checkoutData: getCheckoutData(), onApprove: handleOnApprove }))] }));
|
|
165
165
|
}
|
|
166
166
|
else if (progressStep === "ShippingInfo") {
|
|
167
167
|
// ========== SHOPPING CART ==========
|
|
168
168
|
// ========== SHIPPING INFO ==========
|
|
169
|
-
return (_jsxs("div", { className: "
|
|
169
|
+
return (_jsxs("div", { className: "pix-cart", children: [_jsx(CalloutHeader, { title: "Shopping Cart : " }), paintCartItems(shoppingCart ?? []), _jsx("br", {}), _jsx("div", { children: _jsx(FormButton, { className: "pix-cart-button", type: "button", id: "backToCart", text: "Clear Cart", onClick: () => clearShoppingCart() }) }), _jsx("br", {}), _jsx("br", {}), _jsx("hr", {}), _jsx("br", {}), _jsx("br", {}), _jsxs("div", { children: [_jsx(CalloutHeader, { title: "Shipping To : " }), _jsx(FormEngine, { name: "address_to", id: "address_to", formData: shippingToData, onSubmitHandler: onShippingSubmit })] })] }));
|
|
170
170
|
}
|
|
171
171
|
else {
|
|
172
172
|
// ========== EMPTY SHOPPING CART ==========
|
|
173
|
-
return (_jsxs("div", { className: "
|
|
173
|
+
return (_jsxs("div", { className: "pix-cart", children: [_jsx(CalloutHeader, { title: "Shopping Cart : " }), _jsx("br", {}), _jsx("div", { className: "centered", children: "No items in your shopping cart" }), _jsx("div", { id: "paypal-button-container", className: "paypal-button-container" })] }));
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
176
|
/**
|
|
@@ -205,13 +205,13 @@ export function ShoppingCartItem(props) {
|
|
|
205
205
|
const thisItem = props.item;
|
|
206
206
|
const thisItemTarget = "_self"; // "_blank"
|
|
207
207
|
const config = usePixelatedConfig();
|
|
208
|
-
return (_jsxs("div", { className: "
|
|
208
|
+
return (_jsxs("div", { className: "pix-cart-item row-12col", children: [_jsx("div", { className: "pix-cart-item-photo grid-s1-e4", children: thisItem.itemURL && thisItem.itemImageURL
|
|
209
209
|
? _jsx("a", { href: thisItem.itemURL, target: thisItemTarget, rel: "noopener noreferrer", children: _jsx(SmartImage, { src: thisItem.itemImageURL, alt: thisItem.itemTitle, cloudinaryEnv: config?.cloudinary?.product_env, cloudinaryDomain: config?.cloudinary?.baseUrl, cloudinaryTransforms: config?.cloudinary?.transforms }) })
|
|
210
210
|
: thisItem.itemImageURL
|
|
211
211
|
? (_jsx(SmartImage, { src: thisItem.itemImageURL, title: thisItem.itemTitle, alt: thisItem.itemTitle, cloudinaryEnv: config?.cloudinary?.product_env, cloudinaryDomain: config?.cloudinary?.baseUrl, cloudinaryTransforms: config?.cloudinary?.transforms }))
|
|
212
|
-
: _jsx(_Fragment, {}) }), _jsxs("div", { className: "grid-s4-e11", children: [_jsx("div", { className: "
|
|
212
|
+
: _jsx(_Fragment, {}) }), _jsxs("div", { className: "grid-s4-e11", children: [_jsx("div", { className: "pix-cart-item-header", children: _jsx("span", { children: thisItem.itemURL
|
|
213
213
|
? _jsx("a", { href: thisItem.itemURL, target: thisItemTarget, rel: "noopener noreferrer", children: _jsx("h2", { className: "", children: thisItem.itemTitle }) })
|
|
214
|
-
: _jsx("h2", { className: "", children: thisItem.itemTitle }) }) }), _jsxs("div", { className: "
|
|
214
|
+
: _jsx("h2", { className: "", children: thisItem.itemTitle }) }) }), _jsxs("div", { className: "pix-cart-item-details grid12", children: [_jsx("br", {}), _jsxs("div", { children: [_jsx("b", { children: "Item ID: " }), thisItem.itemID] }), _jsxs("div", { children: [_jsx("b", { children: "Quantity: " }), thisItem.itemQuantity] }), _jsx("br", {}), _jsx("div", { children: _jsx(FormButton, { className: "pix-cart-button", type: "button", id: `btn-rm-${thisItem.itemID}`, text: "Remove Item From Cart", onClick: () => removeFromShoppingCart(thisItem) }) })] })] }), _jsx("div", { className: "grid-s11-e13", children: _jsx("div", { className: "pix-cart-item-price", children: formatAsUSD(thisItem.itemCost) }) })] }));
|
|
215
215
|
}
|
|
216
216
|
/**
|
|
217
217
|
* CheckoutItems — Display a checkout summary with itemized lines and shipping information.
|
|
@@ -338,7 +338,7 @@ export function CartButton(props) {
|
|
|
338
338
|
MicroInteractions({ cartpulse: false });
|
|
339
339
|
}
|
|
340
340
|
}, [cartCount]);
|
|
341
|
-
return (_jsx("div", { className: "
|
|
341
|
+
return (_jsx("div", { className: "pix-cart", children: _jsxs("button", { className: "pix-cart-button", type: "button", id: "pix-cart-button", onClick: () => window.location.href = props.href, children: [_jsx(SmartImage, { src: "/images/icons/cart-icon.png", title: "View Shopping Cart", alt: "View Shopping Cart", cloudinaryEnv: config?.cloudinary?.product_env, cloudinaryDomain: config?.cloudinary?.baseUrl, cloudinaryTransforms: config?.cloudinary?.transforms }), _jsxs("span", { children: ["\u00A0", `(${cartCount})`] })] }) }));
|
|
342
342
|
}
|
|
343
343
|
/**
|
|
344
344
|
* ViewItemDetails — Button to navigate to an item detail page for a given item ID.
|
|
@@ -353,7 +353,7 @@ ViewItemDetails.propTypes = {
|
|
|
353
353
|
itemID: PropTypes.string.isRequired,
|
|
354
354
|
};
|
|
355
355
|
export function ViewItemDetails(props) {
|
|
356
|
-
return (_jsx("div", { children: _jsx(FormButton, { className: "
|
|
356
|
+
return (_jsx("div", { children: _jsx(FormButton, { className: "pix-cart-button", type: "button", id: `btn-item-${props.itemID}`, text: "View Item Details", onClick: () => window.location.href = `${props.href}/${props.itemID}` }) }));
|
|
357
357
|
}
|
|
358
358
|
/**
|
|
359
359
|
* AddToCartButton — Button that adds an item to the shopping cart and displays a confirmation modal.
|
|
@@ -380,7 +380,7 @@ export function AddToCartButton(props) {
|
|
|
380
380
|
props.handler(props.item);
|
|
381
381
|
handleModalOpen(e.nativeEvent, "-" + props.itemID);
|
|
382
382
|
}
|
|
383
|
-
return (_jsxs("div", { children: [_jsx(FormButton, { className: "
|
|
383
|
+
return (_jsxs("div", { children: [_jsx(FormButton, { className: "pix-cart-button", type: "button", id: `btn-add-${props.itemID}`, text: "Add to Shopping Cart", onClick: (e) => handleClick(e) }), modalContent && _jsx(Modal, { modalContent: modalContent, modalID: "-" + props.itemID })] }));
|
|
384
384
|
}
|
|
385
385
|
/**
|
|
386
386
|
* GoToCartButton — Button that navigates the user to the shopping cart page.
|
|
@@ -395,5 +395,5 @@ GoToCartButton.propTypes = {
|
|
|
395
395
|
itemID: PropTypes.string.isRequired,
|
|
396
396
|
};
|
|
397
397
|
export function GoToCartButton(props) {
|
|
398
|
-
return (_jsx("div", { children: _jsx(FormButton, { className: "
|
|
398
|
+
return (_jsx("div", { children: _jsx(FormButton, { className: "pix-cart-button", type: "button", id: `btn-cart-${props.itemID}`, text: "Go to Shopping Cart", onClick: () => window.location.href = props.href }) }));
|
|
399
399
|
}
|
|
@@ -2,56 +2,56 @@
|
|
|
2
2
|
========== SHOPPING CART ===========
|
|
3
3
|
======================================== */
|
|
4
4
|
|
|
5
|
-
.
|
|
5
|
+
.pix-cart {
|
|
6
6
|
--do-nothing: true
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
.
|
|
9
|
+
.pix-cart .callout-header {
|
|
10
10
|
text-align: left
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
.
|
|
13
|
+
.pix-cart-items {
|
|
14
14
|
text-align: center;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
@media screen and (max-width: 480px) {
|
|
18
|
-
.
|
|
18
|
+
.pix-cart-items {
|
|
19
19
|
padding: 20px;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
.
|
|
23
|
+
.pix-cart-item {
|
|
24
24
|
border: 1px solid #DDD;
|
|
25
25
|
text-align: left;
|
|
26
26
|
padding: 20px 5px !important;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
@media screen and (max-width: 480px) {
|
|
30
|
-
.
|
|
30
|
+
.pix-cart-item {
|
|
31
31
|
text-align: center;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
.
|
|
35
|
+
.pix-cart-item-header {
|
|
36
36
|
margin: 0 auto;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
.
|
|
39
|
+
.pix-cart-item-header h2 {
|
|
40
40
|
font-size: 1.25em;
|
|
41
41
|
font-weight: bold;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
.
|
|
44
|
+
.pix-cart-item-photo img {
|
|
45
45
|
padding: 10px 0;
|
|
46
46
|
width: 100%;
|
|
47
47
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
.
|
|
50
|
+
.pix-cart-item-details {
|
|
51
51
|
padding-bottom: 10px;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
.
|
|
54
|
+
.pix-cart-item-price{
|
|
55
55
|
font-size: 1.5em;
|
|
56
56
|
font-weight: bold;
|
|
57
57
|
|
|
@@ -89,9 +89,9 @@
|
|
|
89
89
|
|
|
90
90
|
/* ===== SHOPPING CART SHIPPING FIELDS ===== */
|
|
91
91
|
|
|
92
|
-
.
|
|
93
|
-
.
|
|
94
|
-
#
|
|
92
|
+
.pix-cart-button,
|
|
93
|
+
.pix-cart .pix-cart-button,
|
|
94
|
+
#pix-cart-button.pix-cart-button {
|
|
95
95
|
font-size: 1.1em;
|
|
96
96
|
font-family: Verdana, Geneva, sans-serif;
|
|
97
97
|
color: #000;
|
|
@@ -110,19 +110,19 @@
|
|
|
110
110
|
margin: 5px auto;
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
.
|
|
114
|
-
.
|
|
115
|
-
#
|
|
113
|
+
.pix-cart-button:hover,
|
|
114
|
+
.pix-cart .pix-cart-button:hover,
|
|
115
|
+
#pix-cart-button.pix-cart-button:hover {
|
|
116
116
|
color: #369;
|
|
117
117
|
text-decoration: underline;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
#
|
|
120
|
+
#pix-cart-button.pix-cart-button {
|
|
121
121
|
width: 80px;
|
|
122
122
|
min-width: 80px;
|
|
123
123
|
height: 30px;
|
|
124
124
|
}
|
|
125
|
-
#
|
|
125
|
+
#pix-cart-button.pix-cart-button img {
|
|
126
126
|
width: 20px;
|
|
127
127
|
}
|
|
128
128
|
|
|
@@ -17,14 +17,14 @@ form button {
|
|
|
17
17
|
border-radius: 5px;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
.
|
|
21
|
-
span.
|
|
22
|
-
span.
|
|
20
|
+
.display-vertical,
|
|
21
|
+
span.display-vertical:last-child,
|
|
22
|
+
span.display-vertical:last-of-type {
|
|
23
23
|
display:block;
|
|
24
24
|
margin: 1px 5px 20px 20px !important;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
span.
|
|
27
|
+
span.display-vertical {
|
|
28
28
|
display:block;
|
|
29
29
|
margin: 1px 5px 1px 20px !important;
|
|
30
30
|
}
|
|
@@ -17,7 +17,7 @@ const setupInputProps = (props, display) => {
|
|
|
17
17
|
// Remove props that shouldn't go to DOM
|
|
18
18
|
inputProps = Object.fromEntries(Object.entries(inputProps).filter(([key]) => !['display', 'label', 'listItems', 'validate', 'options', 'parent', 'text', 'checked'].includes(key)));
|
|
19
19
|
// Set className based on display mode
|
|
20
|
-
inputProps["className"] = (display == "vertical") ? "
|
|
20
|
+
inputProps["className"] = (display == "vertical") ? "display-vertical" : "";
|
|
21
21
|
// Handle controlled vs uncontrolled inputs properly
|
|
22
22
|
// If value is provided, use it for controlled behavior
|
|
23
23
|
// Otherwise, use defaultValue for uncontrolled behavior
|
|
@@ -510,7 +510,7 @@ function FormRadioOption(props) {
|
|
|
510
510
|
};
|
|
511
511
|
// If there is no parent onChange (no updater), render uncontrolled via defaultChecked
|
|
512
512
|
const controlProps = parentHasOnChange ? { checked: isChecked } : { defaultChecked: isChecked };
|
|
513
|
-
return (_jsxs("span", { className: props.parent && props.parent.display == "vertical" ? "
|
|
513
|
+
return (_jsxs("span", { className: props.parent && props.parent.display == "vertical" ? "display-vertical" : "", children: [_jsx("input", { type: "radio", id: `${props.parent?.name}-${props.value}`, name: props.parent?.name, value: props.value, ...controlProps, onChange: handleChange, required: !!(props.parent && props.parent.required), ...inputProps }), _jsx("label", { htmlFor: `${props.parent?.name}-${props.value}`, children: props.text })] }));
|
|
514
514
|
}
|
|
515
515
|
/**
|
|
516
516
|
* FormCheckbox — Render a set of checkbox inputs from provided options and manage selection array.
|
|
@@ -597,7 +597,7 @@ function FormCheckboxOption(props) {
|
|
|
597
597
|
props.parent.onChange(newChecked);
|
|
598
598
|
}
|
|
599
599
|
};
|
|
600
|
-
return (_jsxs("span", { className: props.parent.display == "vertical" ? "
|
|
600
|
+
return (_jsxs("span", { className: props.parent.display == "vertical" ? "display-vertical" : "", children: [_jsx("input", { type: "checkbox", id: props.parent.name + "_" + props.text, name: props.text, value: props.value, checked: isChecked, onChange: handleChange, ...inputProps }), _jsx("label", { htmlFor: props.parent.name + "_" + props.text, children: props.text })] }));
|
|
601
601
|
}
|
|
602
602
|
/**
|
|
603
603
|
* FormButton — Render a standard HTML button used for form actions.
|
|
@@ -40,14 +40,14 @@ export function PageBuilderUI({ apiEndpoint = '/api/pagebuilder' }) {
|
|
|
40
40
|
setSelectorKey(prev => prev + 1);
|
|
41
41
|
setEditableComponent({});
|
|
42
42
|
}
|
|
43
|
-
return (_jsxs("div", { className: "row-2col", style: { gridTemplateColumns: "1fr 3fr", alignItems: "start" }, children: [_jsxs("div", { className: "
|
|
43
|
+
return (_jsxs("div", { className: "row-2col", style: { gridTemplateColumns: "1fr 3fr", alignItems: "start" }, children: [_jsxs("div", { className: "grid-item", children: [_jsx(PageSectionHeader, { title: "Component Editor" }), _jsx(SaveLoadSection, { pageData: pageJSON, onLoad: handleLoadPage, apiEndpoint: apiEndpoint }), _jsx(ComponentSelector, { setEditableComponent: setEditableComponent, parentPath: selectedPath || undefined, editMode: editMode ? {
|
|
44
44
|
component: editMode.component.component,
|
|
45
45
|
props: editMode.component.props
|
|
46
46
|
} : undefined }, selectorKey), _jsx("br", {}), _jsx(ComponentPropertiesForm, { editableComponent: editableComponent, onSubmit: handleAddWithReset }), editMode && (_jsx("div", { children: _jsx("button", { onClick: cancelEdit, type: "button", className: "button", style: {
|
|
47
47
|
background: '#FFA726',
|
|
48
48
|
color: 'white',
|
|
49
49
|
transition: 'all 0.2s ease',
|
|
50
|
-
}, onMouseEnter: (e) => e.currentTarget.style.background = '#FB8C00', onMouseLeave: (e) => e.currentTarget.style.background = '#FFA726', children: "Cancel Edit" }) }))] }), _jsxs("div", { className: "
|
|
50
|
+
}, onMouseEnter: (e) => e.currentTarget.style.background = '#FB8C00', onMouseLeave: (e) => e.currentTarget.style.background = '#FFA726', children: "Cancel Edit" }) }))] }), _jsxs("div", { className: "grid-item", children: [_jsx(PageSectionHeader, { title: "Page Preview" }), _jsx("section", { id: "preview-section", children: _jsxs("div", { className: "section-container", children: [pageJSON.components.length > 0 ? (_jsx(PageEngine, { pageData: pageJSON, editMode: true, selectedPath: selectedPath, onEditComponent: handleEditComponent, onSelectComponent: handleSelectComponent, onDeleteComponent: handleDeleteComponent, onMoveUp: handleMoveUp, onMoveDown: handleMoveDown })) : (_jsx("p", { style: { color: '#666', fontStyle: 'italic', padding: '2rem', textAlign: 'center' }, children: "No components yet. Start by selecting a component above and adding it to your page." })), _jsxs("details", { style: { marginTop: '1rem' }, children: [_jsx("summary", { style: { cursor: 'pointer', userSelect: 'none' }, children: _jsx("strong", { children: "Page JSON" }) }), _jsx("pre", { style: {
|
|
51
51
|
maxHeight: '400px',
|
|
52
52
|
overflow: 'auto',
|
|
53
53
|
fontSize: '0.875rem',
|
|
@@ -19,9 +19,9 @@ export async function listContentfulPages(config) {
|
|
|
19
19
|
// Map management-style config to delivery apiProps for the CDN-based read helper
|
|
20
20
|
const apiProps = {
|
|
21
21
|
base_url: 'https://cdn.contentful.com',
|
|
22
|
-
space_id: config.
|
|
22
|
+
space_id: config.space_id,
|
|
23
23
|
environment: config.environment || 'master',
|
|
24
|
-
delivery_access_token: config.
|
|
24
|
+
delivery_access_token: config.delivery_access_token,
|
|
25
25
|
};
|
|
26
26
|
const result = await getContentfulEntriesByType({ apiProps, contentType: CONTENT_TYPE });
|
|
27
27
|
if (!result || !Array.isArray(result.items)) {
|
|
@@ -46,9 +46,9 @@ export async function loadContentfulPage(name, config) {
|
|
|
46
46
|
// Use delivery API for reads
|
|
47
47
|
const apiProps = {
|
|
48
48
|
base_url: 'https://cdn.contentful.com',
|
|
49
|
-
space_id: config.
|
|
49
|
+
space_id: config.space_id,
|
|
50
50
|
environment: config.environment || 'master',
|
|
51
|
-
delivery_access_token: config.
|
|
51
|
+
delivery_access_token: config.delivery_access_token,
|
|
52
52
|
};
|
|
53
53
|
const result = await getContentfulEntriesByType({ apiProps, contentType: CONTENT_TYPE });
|
|
54
54
|
if (!result || !Array.isArray(result.items) || result.items.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
pxl:v1:
|
|
1
|
+
pxl:v1:a83c395fd77995d9628186d5:4c69b862c4abd6fdd5cd328cabdd434d:359d004e4dfc32eaa2e418ca4fa9519ba2299219b38c3620770020ee92234f10e477cc64b4bd4991384e8b9184fe4f346c66be7bdba183e607497c1e87b3675f2a8dc4b8b58fc1d7476c79df110d9d35be67546ceec60cd6fdd9034d4de8a2c087ca31d85963d3dff02e39a5265290fc0f68a0a9981f4fa47563d1161d16e63e41c42291c801998e44d36c9caa27e783c2999a59f487142c0bc2fedd11cc6ce0eb81f4b81382e4d63ec91d0f34d46901a2b1accccb09ca70cbce15fcc647280c1748fb0581eb32d0aad6b2420904639b6fe55ee87215c45f702c0129bd3b1cd60175a4d082207210c9c97f1ed45b0ecadbdcf2b93f50a350a30b7b114bb4b50a68e79ca98d1b420b7523aa7457709fbaa823be382561378bb30728f3f8f1879ae172d7ee80d080c8101320f45e56b46f495edac9770ebb9b298d80a5d585c3eddb107820e5894e356960aa8ccbe599d01af5fede2c616d3370a1c0f52dffad3756011933cefc393c65a3d38a15203b6dcaae1320b77fa65604863d9d41418db9ccd65d61518216d3bb1b382a72b226c36a77a4ba477f1579e8339c55dcfc80e18f12c82ad13f926ff62532c5392ec542ee81e8859c6165f71cd026553a968d0653a80d6998504cb0a7a5065aea112d09e3fb3c0eeb1ead35af8a8c58df0add7af9279c3f8d763130be2a62e98f0a0432a1632ec46e5dce97cab5918043da0838b1a33c827a64ca892f91555a6b5db2360b36987b0a6ab150d48404a0fafe0c6c4f528d10beae265ac16c8e603d40e5767b20ad5a079645a31a741ae8f3f9e99093c4ba2a17bfd5429ed7c167f9f7f40df7e83d18c8537d4608fcbf2259aeeb0045c605971afdd6618f780fcdf62c5edcee550e263918f0687ca24bae903565b3e00f3a7c36d8049d4df757bd711e151d1be99c7ffbb9cbafb91dd89a8520bca0e65f6d9e5d4af592d28899aa3adf66644f898eddfa899bed91cc2d20f820153b4703226383c071c04019f3f211e8c8ba2ac983fa20e0c521b39783adee0e39513afcc2687ca22ad52b847975db930514dfbc8ed477deff8dc233a823d0f1e108a088857509ae5f5d9e08c5b6b2a4a28de8fe4ca145cf4e2eefb600c0c609a003b968b9fe0751ad2ea536e530781ef87941ea06d45e5f5d05990162246be63453898d643bb794cc02481aa45e4f68c3f8b17fa2b90f4d76a31ab52fde3c0eb1911be160ba453422dedbac20e513b68098ba2ab01cb500b8b65b1f2afb9524ea83c96de7ca89fbbea7dbed9b34f2e827fcbc6abd6c98b706ba9fbbd9da9fdd6ac1a2fa01e285e41b21540742a12b6296bded14cb62613b3182c3c05a746cdf3be5a24e4074030c4f40a25d04e89df14b6a75b13aa88aea56284baba967099dbca2bc26ceca1ad8b1d35e65c54a7ccabab586129e98900a243660471ce471cc1bf2fe249648b573340b4f982fc6c4adcc42403d37236b62f9eb43d9884e38da47a61b88d6d69ce7a9f6ce8ad8b18b002ae80d1e75cf53ae3166795719e912d0e678ed285b3dfca3fd770c91a3a75a4994047e4892568ed00da3f4dcc1f0b41804f566c98e81270dd9de9c195312162b3c20e8fcefa567df37cdc171c7098f48dc91d881163211acc407c99b130eded42ab63fe4db75c8f501eefda061744d146a51cebe939e78d5bd98e8cb2b08ebaec29d05ee63d3c14753cd74de489c9acbbd72492bbf67c321f1eda6198677bbf3b1caf31adb1625136c0a01e929156cfd1da12066890ae6f0002559a859d638cf229138feaa69b5c927aeb21aade659405026fa0bca87f96ddaa51b8f362179fb56b509c79f803537d859768fa7c32793f26069cee544e26a2868eb5a657578753dea0bedc41dff059305080b77c1e22c80f873585a77d6013d534dab91808bd0118ba618872bb5b1f5d3f27a6fbdcc49d00bec70cfc840547474a788298db556f2939e905f26f1bbf08975cd3c5162294ef0447b3726ed377e1d34fefb1fe24d16b0497780799679a84613a924afd2230b80d72889a974740be225c075c104f56e52bc485eb1cbfb64fe9c4e4ebf480665ef86789838c739e1e63aa592687bfe887e23d893b7c907717ffda9f78abdaa1c1a9f32a4f5d6add12896f11455f79a44346ddebe0b4fc38533c1c010219125db5dbc398ee71bbfb4d8b4af6e8fb0eb66e8ccefda3036b16162022b28a8f3472ba96da5a14ceb8e02f3d0b0ecde0c1fde97ad9f3a47c7f7abc7f12a3a43277cfad405883e37ff634601012b4a5ac1908e9363b06f2c6606d8f0d7283a7e63db07cf1ca406a475a733b54333cb6b3a2f90fc84d4cd7bd3675db480f1e6d696937f10331ccc62abae8341138ce0bd14d5fb209adce72a37b10b0e34bae248b00c676aa8e78ec1facfd8399af641cc7bb28eadadf45a43737417acdc754462a167d6e218f64569d136f9e0d89664b88da08722ebf43a6c4b95284560d1b207c297f68af454bce36a804cb75a85506c4915b12447d757f8dc4a073b2d64e9017d8b0e76f8037e42f321a1db23d6106c7f145a7cc8e7148292ab4aa80736711aa4da67fbe926b0202b8b09219b62f9d4a0427a8e2df93a11836c1c8e7fee14f58bf268853afdadfed31b2e1ec62b0b6d9d242c9617cfd90072e332f0dd35c8f10cc1aa304bf37a4412c9c13bf75496ce557efe3e5f60c93724b2cf0979ddfc2169a12e051894f2852c1c60bb9dd40c331b67838aee8031f6e490f9a611afd72db8622f67e3f40101fc68f36ca28544e8dba18dc138ae6d004f68df6aae85b81b6b4f6aa0ec0c01f351de4ff9d8599adde6464d9b2cbecf68ec253c29e4ca19af2e518f40773583c877c7faecfb75810d459487a94f9df15b281aa76f293921272628fd0ea2d3134049385e931a911b084c5b40a1467b93ff8bd38e69804168b072d4eb6735dbcbb9de2e30eab38b961f86db6fa6b370dc3d165ef5f152051340469d25590507f2bf341b8f8a98cfdf9eb107660aec537c40ab39e9f378ae706aaef0be751ae600c59fcb1ebc11a5e33d11dfa0b4441b4a733d20514b4c06c5aac99f524c4cf5c9316a448c5893aad716077194083e481fba82818d22d6bf22eda660359159a2fe09506340f19e6d52017a8971b65dec967c5d62adc6e4d1d148ac7530a690ba2911bc9192d42d72495afbba1ad26934dfba15caec289bff93f238273a63531313105d15ab4e14b1975511a12e1357177f5c3c86b2f11ad6affd273552c3c8dbeffca8d097489e7e14f8ab539ecc985dcf0ff27d3248fe04048aef6da97a8c228d03da4bae2c53581406991209fccb8e874e9f9ae2241a5181f2303a525d2fa2ea62d5bb44bd929d6267e7e5045123effb980c9f8bc76a851666af168d065c0f44574d421c91a7fda078769c09c0a69caa5e7f8b6f5dfe730ab8af669c3478bdae86f782738386a6c34ab55965ae2638ce47d58fb21412016298cb073eb36889f856760e3183bca02913bcc0a0309ae2a400aadbdb5b4b1bd28b64de1609313a200d223a2cc2c2e5129163fc817f15a85b020c275f61005baabd82c6b0786b8fdba201b68d822b12e1ffecc9ea17236662539149a2d1766f01e76d3322faf05f73960f6a945b7ff237d7eb37c55dd5b5578677b9483ca2cbba52101f77575b1508f3c46dca013164666fd8179f8d3e8c77a3fbf60f6baefd203943435c9d9bf098384079f4716d740111499fb284424aafae9bb1dd2d0376e869817f36594f507138d45b51a61ba27c735826c0d70b7217303f5c87e5e544e1dda9263d79ea62d7cdc6a82ac368074822248f9062dc6c2be91488e5b479c4b579cad9901ec0ee2cb20c87daa6a341b7345acafcefaf8ad85f9a8454576ee938ec13912972ff8384612580984d97b98438e658af82f7563dbddbb44c68caac3ef50202cdcb18f39036dc64214d006f46fc1fa7e8b1dc47342e0e6ff101206a3184ce7fcdba6c0d3b71fa63981668208b4522f8c28bf35228c6db41828287fa057cd7f6fe30f84d7b8e3fcb6e0e8b309e81abf5e5566798d5d69d9d32f170db58cac90a2af0d8371caec9caa6e7c8e833766968fe2a039a5e780c1948721bc05429cdfb57d489543012a293aa7c17f6482f8792092693b769e5ec1f7fa4dd334d8f94c5dde6e68d46d4008dd281cdd63028e77efae6089217ee0ab23b1655647c65951812c9d3942b7caf9e3f63f3e69c3820d240ff6dbf6bf44b8ca45a2f4af2819d00f0b9367d2cefe6785f8f5b52967b630587716911da1a6e36e3fe78031d97df2cf1048dbe5a2981bc95be373525c543b7a7b7a397f715325c13b786874eb215e91930e9701605f2abccb8b2fdda894cb2df33ce4a28754cb1ff64aaeeeb5ee02e5ecfc716a9cc0f76e3c6024213ab5d17093e2c75be690ba455bf9ce07c1027dfe6ae07fe7231aea220b1fb10b6d52f0b8843c0334dc5617e044223ed2c7466d678ff4e0fe081a73151e5a8955e5d36e2debc4322f509a20bc899292ae7ff59b0a622d563b6e8a32005d75acb33779daf687dd2fd347c1bfdd93251b3a7ec97922dc7793aa7d1da54832741e96397ca789d09ae5e48b77bd5c10a376c8979574c497e74ac30a84c7419293051ac9c3c627893c8533af95e6c1426a036b8bd84c431a16e0e2710d476ebc5345149535881228678c56d755903c6a9a8aff5edaa82537ae500f72b06a8c662c0ee78c9dd4576876ce057c76fe5ce23d0c05fd62c3d691f75c223e1e5c7b22b32f69b7735e476a47fc022cd4fe1bc3f5b25c5a9728705c0ae5703e5982ea17ab90739181bfebd28ad0f945b5c224450519c4d0178e53aae484fb2f98c38bfbd4caef11ee8216f0b2a706c3873fe6d835fc74d680285be9ca54d2b40fd8c7af9d1e6fe8b0a9a3c3dc70385e5c2125d09fe832ae8cdf94717bf43a7b60c0608d524f2b5c4cf7cf434510eee5cb8ad865dc0744ea30266104bdcc8251bb452ea3ea8dc7a4cb3fd987669dfd2e8246788127137aa9aa780c931a88612ef49ec81a0ce902bec24378845f0fd51e307fda316c3bc08c10255fd20367785285c12242fd0c2e6c287bd025226660a938c8d03ac8ff770a83f8d9734546e869d814ec025a2050f7ae935412401a5a1bcd6c16b40db4501a576428bea88072c50292481dd6c829501
|