@plasmicpkgs/commerce 0.0.6 → 0.0.7

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.
@@ -165,6 +165,44 @@ function _objectWithoutPropertiesLoose(source, excluded) {
165
165
  return target;
166
166
  }
167
167
 
168
+ function _unsupportedIterableToArray(o, minLen) {
169
+ if (!o) return;
170
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
171
+ var n = Object.prototype.toString.call(o).slice(8, -1);
172
+ if (n === "Object" && o.constructor) n = o.constructor.name;
173
+ if (n === "Map" || n === "Set") return Array.from(o);
174
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
175
+ }
176
+
177
+ function _arrayLikeToArray(arr, len) {
178
+ if (len == null || len > arr.length) len = arr.length;
179
+
180
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
181
+
182
+ return arr2;
183
+ }
184
+
185
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
186
+ var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
187
+ if (it) return (it = it.call(o)).next.bind(it);
188
+
189
+ if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
190
+ if (it) o = it;
191
+ var i = 0;
192
+ return function () {
193
+ if (i >= o.length) return {
194
+ done: true
195
+ };
196
+ return {
197
+ done: false,
198
+ value: o[i++]
199
+ };
200
+ };
201
+ }
202
+
203
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
204
+ }
205
+
168
206
  function createCommonjsModule(fn, module) {
169
207
  return module = { exports: {} }, fn(module, module.exports), module.exports;
170
208
  }
@@ -1176,10 +1214,9 @@ var addToCartButtonMeta = {
1176
1214
  }]
1177
1215
  }
1178
1216
  },
1179
- importPath: "commerce-providers/commerce",
1217
+ importPath: "@plasmicpkgs/commerce",
1180
1218
  importName: "AddToCartButton"
1181
1219
  };
1182
-
1183
1220
  function AddToCartButton(props) {
1184
1221
  var children = props.children;
1185
1222
  var product = useProduct();
@@ -1243,7 +1280,6 @@ function AddToCartButton(props) {
1243
1280
  }
1244
1281
  }) : null;
1245
1282
  }
1246
-
1247
1283
  function registerAddToCartButton(loader, customAddToCartButtonMeta) {
1248
1284
  var doRegisterComponent = function doRegisterComponent() {
1249
1285
  return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
@@ -1257,16 +1293,141 @@ var fetcher$1 = SWRFetcher;
1257
1293
  var fn$1 = function fn(provider) {
1258
1294
  var _provider$products;
1259
1295
 
1260
- return (_provider$products = provider.products) == null ? void 0 : _provider$products.useSearch;
1296
+ return (_provider$products = provider.products) == null ? void 0 : _provider$products.useProduct;
1261
1297
  };
1262
1298
 
1263
- var useSearch = function useSearch(input) {
1299
+ var useProduct$1 = function useProduct(input) {
1264
1300
  var hook = useHook(fn$1);
1265
1301
  return useSWRHook(_extends({
1266
1302
  fetcher: fetcher$1
1267
1303
  }, hook))(input);
1268
1304
  };
1269
1305
 
1306
+ var productBoxMeta = {
1307
+ name: "plasmic-commerce-product-box",
1308
+ displayName: "Product Box",
1309
+ props: {
1310
+ children: {
1311
+ type: "slot",
1312
+ defaultValue: [{
1313
+ type: "vbox",
1314
+ children: [{
1315
+ type: "component",
1316
+ name: "plasmic-commerce-product-text-field",
1317
+ props: {
1318
+ field: "name"
1319
+ }
1320
+ }, {
1321
+ type: "component",
1322
+ name: "plasmic-commerce-product-media"
1323
+ }],
1324
+ styles: {
1325
+ width: "100%",
1326
+ minWidth: 0
1327
+ }
1328
+ }]
1329
+ },
1330
+ noLayout: "boolean",
1331
+ id: {
1332
+ type: "string",
1333
+ description: "Fetch a product by its slug or ID"
1334
+ }
1335
+ },
1336
+ importPath: "@plasmicpkgs/commerce",
1337
+ importName: "ProductBox"
1338
+ };
1339
+ function ProductBox(props) {
1340
+ var className = props.className,
1341
+ children = props.children,
1342
+ noLayout = props.noLayout,
1343
+ id = props.id;
1344
+
1345
+ var _useProduct = useProduct$1({
1346
+ id: id
1347
+ }),
1348
+ data = _useProduct.data,
1349
+ error = _useProduct.error,
1350
+ isLoading = _useProduct.isLoading;
1351
+
1352
+ if (!id) {
1353
+ return React.createElement("span", null, "You must set the id prop");
1354
+ }
1355
+
1356
+ if (error) {
1357
+ throw new CommerceError({
1358
+ message: error.message,
1359
+ code: error.code
1360
+ });
1361
+ }
1362
+
1363
+ if (isLoading) {
1364
+ return React.createElement("span", null, "Loading...");
1365
+ }
1366
+
1367
+ if (!data) {
1368
+ throw new Error("Product not found!");
1369
+ }
1370
+
1371
+ var renderedData = React.createElement(ProductProvider, {
1372
+ product: data
1373
+ }, children);
1374
+ return noLayout ? React.createElement(React.Fragment, null, renderedData) : React.createElement("div", {
1375
+ className: className
1376
+ }, renderedData);
1377
+ }
1378
+ function registerProductBox(loader, customProductBoxMeta) {
1379
+ var doRegisterComponent = function doRegisterComponent() {
1380
+ return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
1381
+ };
1382
+
1383
+ doRegisterComponent(ProductBox, customProductBoxMeta != null ? customProductBoxMeta : productBoxMeta);
1384
+ }
1385
+
1386
+ var fetcher$2 = SWRFetcher;
1387
+
1388
+ var fn$2 = function fn(provider) {
1389
+ var _provider$products;
1390
+
1391
+ return (_provider$products = provider.products) == null ? void 0 : _provider$products.useSearch;
1392
+ };
1393
+
1394
+ var useSearch = function useSearch(input) {
1395
+ var hook = useHook(fn$2);
1396
+ return useSWRHook(_extends({
1397
+ fetcher: fetcher$2
1398
+ }, hook))(input);
1399
+ };
1400
+
1401
+ var fetcher$3 = SWRFetcher;
1402
+
1403
+ var fn$3 = function fn(provider) {
1404
+ var _provider$site;
1405
+
1406
+ return (_provider$site = provider.site) == null ? void 0 : _provider$site.useCategories;
1407
+ };
1408
+
1409
+ var useCategories = function useCategories(input) {
1410
+ var hook = useHook(fn$3);
1411
+ return useSWRHook(_extends({
1412
+ fetcher: fetcher$3
1413
+ }, hook))(input);
1414
+ };
1415
+
1416
+ var fetcher$4 = SWRFetcher;
1417
+
1418
+ var fn$4 = function fn(provider) {
1419
+ var _provider$site;
1420
+
1421
+ return (_provider$site = provider.site) == null ? void 0 : _provider$site.useBrands;
1422
+ };
1423
+
1424
+ var useBrands = function useBrands(input) {
1425
+ var hook = useHook(fn$4);
1426
+ return useSWRHook(_extends({
1427
+ fetcher: fetcher$4
1428
+ }, hook))(input);
1429
+ };
1430
+
1270
1431
  var productCollectionMeta = {
1271
1432
  name: "plasmic-commerce-product-collection",
1272
1433
  displayName: "Product Collection",
@@ -1328,10 +1489,9 @@ var productCollectionMeta = {
1328
1489
  padding: "8px",
1329
1490
  maxWidth: "100%"
1330
1491
  },
1331
- importPath: "commerce-providers/commerce",
1492
+ importPath: "@plasmicpkgs/commerce",
1332
1493
  importName: "ProductCollection"
1333
1494
  };
1334
-
1335
1495
  function ProductCollection(props) {
1336
1496
  var className = props.className,
1337
1497
  children = props.children,
@@ -1348,10 +1508,10 @@ function ProductCollection(props) {
1348
1508
  }),
1349
1509
  data = _useSearch.data;
1350
1510
 
1351
- var _useCategories = useCategories({}),
1511
+ var _useCategories = useCategories(),
1352
1512
  categories = _useCategories.data;
1353
1513
 
1354
- var _useBrands = useBrands({}),
1514
+ var _useBrands = useBrands(),
1355
1515
  brands = _useBrands.data;
1356
1516
 
1357
1517
  if (categories && brands) {
@@ -1371,7 +1531,6 @@ function ProductCollection(props) {
1371
1531
  className: className
1372
1532
  }, renderedData);
1373
1533
  }
1374
-
1375
1534
  function registerProductCollection(loader, customProductCollectionMeta) {
1376
1535
  var doRegisterComponent = function doRegisterComponent() {
1377
1536
  return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
@@ -1380,6 +1539,69 @@ function registerProductCollection(loader, customProductCollectionMeta) {
1380
1539
  doRegisterComponent(ProductCollection, customProductCollectionMeta != null ? customProductCollectionMeta : productCollectionMeta);
1381
1540
  }
1382
1541
 
1542
+ var productLinkMeta = {
1543
+ name: "plasmic-commerce-product-link",
1544
+ displayName: "Product Link",
1545
+ props: {
1546
+ children: "slot",
1547
+ linkDest: {
1548
+ type: "string",
1549
+ defaultValueHint: "products/{slug}",
1550
+ description: "Set the link destination. You can use {slug} to replace by the product slug"
1551
+ }
1552
+ },
1553
+ importPath: "@plasmicpkgs/commerce",
1554
+ importName: "ProductLink"
1555
+ };
1556
+ function ProductLink(props) {
1557
+ var className = props.className,
1558
+ children = props.children,
1559
+ linkDest = props.linkDest;
1560
+ var product = useProduct();
1561
+
1562
+ var resolveLink = function resolveLink(linkDest) {
1563
+ var _linkDest$match;
1564
+
1565
+ if (!product || !linkDest) {
1566
+ return undefined;
1567
+ }
1568
+
1569
+ var regex = /{[^}]*}/;
1570
+ var regexAll = new RegExp(regex, "g");
1571
+ var matches = (_linkDest$match = linkDest.match(regexAll)) != null ? _linkDest$match : [];
1572
+ var resolvedLink = linkDest;
1573
+
1574
+ for (var _iterator = _createForOfIteratorHelperLoose(matches), _step; !(_step = _iterator()).done;) {
1575
+ var match = _step.value;
1576
+ var field = match.slice(1, -1);
1577
+
1578
+ if (!(field in product)) {
1579
+ return undefined;
1580
+ }
1581
+
1582
+ resolvedLink = resolvedLink.replace(regex, product[field]);
1583
+ }
1584
+
1585
+ return resolvedLink;
1586
+ };
1587
+
1588
+ return React.createElement("a", {
1589
+ className: className,
1590
+ href: resolveLink(linkDest),
1591
+ style: {
1592
+ color: "inherit",
1593
+ textDecoration: "inherit"
1594
+ }
1595
+ }, children);
1596
+ }
1597
+ function registerProductLink(loader, customProductLinkMeta) {
1598
+ var doRegisterComponent = function doRegisterComponent() {
1599
+ return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
1600
+ };
1601
+
1602
+ doRegisterComponent(ProductLink, customProductLinkMeta != null ? customProductLinkMeta : productLinkMeta);
1603
+ }
1604
+
1383
1605
  var placeholderImage = "https://static1.plasmic.app/commerce/lightweight-jacket-0.png";
1384
1606
  var productMediaMeta = {
1385
1607
  name: "plasmic-commerce-product-media",
@@ -1387,7 +1609,7 @@ var productMediaMeta = {
1387
1609
  props: {
1388
1610
  mediaIndex: "number"
1389
1611
  },
1390
- importPath: "commerce-providers/commerce",
1612
+ importPath: "@plasmicpkgs/commerce",
1391
1613
  importName: "ProductMedia"
1392
1614
  };
1393
1615
  function ProductMedia(props) {
@@ -1492,10 +1714,10 @@ var productPriceMeta = {
1492
1714
  name: "plasmic-commerce-product-price",
1493
1715
  displayName: "Product Price",
1494
1716
  props: {},
1495
- importPath: "commerce-providers/commerce",
1717
+ importPath: "@plasmicpkgs/commerce",
1496
1718
  importName: "ProductPrice"
1497
1719
  };
1498
- function ProductPrice(props) {
1720
+ function ProductPriceComponent(props) {
1499
1721
  var className = props.className;
1500
1722
  var product = useProduct();
1501
1723
  var form = useFormContext();
@@ -1521,7 +1743,7 @@ function registerProductPrice(loader, customProductPriceMeta) {
1521
1743
  return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
1522
1744
  };
1523
1745
 
1524
- doRegisterComponent(ProductPrice, customProductPriceMeta != null ? customProductPriceMeta : productPriceMeta);
1746
+ doRegisterComponent(ProductPriceComponent, customProductPriceMeta != null ? customProductPriceMeta : productPriceMeta);
1525
1747
  }
1526
1748
 
1527
1749
  var productQuantityMeta = {
@@ -1538,7 +1760,7 @@ var productQuantityMeta = {
1538
1760
  }]
1539
1761
  }
1540
1762
  },
1541
- importPath: "commerce-providers/commerce",
1763
+ importPath: "@plasmicpkgs/commerce",
1542
1764
  importName: "ProductQuantity"
1543
1765
  };
1544
1766
  function ProductQuantity(props) {
@@ -1576,7 +1798,7 @@ var productTextFieldMeta = {
1576
1798
  options: ["id", "name", "description", "sku", "slug", "path"]
1577
1799
  }
1578
1800
  },
1579
- importPath: "commerce-providers/commerce",
1801
+ importPath: "@plasmicpkgs/commerce",
1580
1802
  importName: "ProductTextField"
1581
1803
  };
1582
1804
  function ProductTextField(props) {
@@ -1627,7 +1849,7 @@ var productVariantPickerMeta = {
1627
1849
  name: "plasmic-commerce-product-variant-picker",
1628
1850
  displayName: "Product Variant Picker",
1629
1851
  props: {},
1630
- importPath: "commerce-providers/commerce",
1852
+ importPath: "@plasmicpkgs/commerce",
1631
1853
  importName: "ProductVariantPicker"
1632
1854
  };
1633
1855
  function ProductVariantPicker(props) {
@@ -1660,7 +1882,7 @@ function registerProductVariantPicker(loader, customProductVariantPickerMeta) {
1660
1882
  doRegisterComponent(ProductVariantPicker, customProductVariantPickerMeta != null ? customProductVariantPickerMeta : productVariantPickerMeta);
1661
1883
  }
1662
1884
 
1663
- var fetcher$2 = /*#__PURE__*/function () {
1885
+ var fetcher$5 = /*#__PURE__*/function () {
1664
1886
  var _ref2 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(_ref) {
1665
1887
  var options, cartId, fetch;
1666
1888
  return runtime_1.wrap(function _callee$(_context) {
@@ -1701,7 +1923,7 @@ var fetcher$2 = /*#__PURE__*/function () {
1701
1923
  };
1702
1924
  }();
1703
1925
 
1704
- var fn$2 = function fn(provider) {
1926
+ var fn$5 = function fn(provider) {
1705
1927
  var _provider$cart;
1706
1928
 
1707
1929
  return (_provider$cart = provider.cart) == null ? void 0 : _provider$cart.useCart;
@@ -1710,12 +1932,12 @@ var fn$2 = function fn(provider) {
1710
1932
  var useCart = function useCart(input) {
1711
1933
  var _hook$fetcher;
1712
1934
 
1713
- var hook = useHook(fn$2);
1935
+ var hook = useHook(fn$5);
1714
1936
 
1715
1937
  var _useCommerce = useCommerce(),
1716
1938
  cartCookie = _useCommerce.cartCookie;
1717
1939
 
1718
- var fetcherFn = (_hook$fetcher = hook.fetcher) != null ? _hook$fetcher : fetcher$2;
1940
+ var fetcherFn = (_hook$fetcher = hook.fetcher) != null ? _hook$fetcher : fetcher$5;
1719
1941
 
1720
1942
  var wrapper = function wrapper(context) {
1721
1943
  context.input.cartId = Cookies.get(cartCookie);
@@ -1727,20 +1949,19 @@ var useCart = function useCart(input) {
1727
1949
  }))(input);
1728
1950
  };
1729
1951
 
1730
- var useCartMeta = {
1731
- name: "plasmic-commerce-use-cart",
1732
- displayName: "Use Cart",
1952
+ var cartMeta = {
1953
+ name: "plasmic-commerce-cart",
1954
+ displayName: "Cart",
1733
1955
  props: {
1734
1956
  field: {
1735
1957
  type: "choice",
1736
1958
  options: ["Size", "Total Price"]
1737
1959
  }
1738
1960
  },
1739
- importPath: "commerce-providers/commerce",
1740
- importName: "UseCart"
1961
+ importPath: "@plasmicpkgs/commerce",
1962
+ importName: "Cart"
1741
1963
  };
1742
-
1743
- function UseCartComponent(props) {
1964
+ function CartComponent(props) {
1744
1965
  var _data$totalPrice, _data$currency$code;
1745
1966
 
1746
1967
  var className = props.className,
@@ -1773,13 +1994,12 @@ function UseCartComponent(props) {
1773
1994
  className: className
1774
1995
  }, value);
1775
1996
  }
1776
-
1777
- function registerUseCart(loader, customUseCartMeta) {
1997
+ function registerCart(loader, customCartMeta) {
1778
1998
  var doRegisterComponent = function doRegisterComponent() {
1779
1999
  return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
1780
2000
  };
1781
2001
 
1782
- doRegisterComponent(UseCartComponent, customUseCartMeta != null ? customUseCartMeta : useCartMeta);
2002
+ doRegisterComponent(CartComponent, customCartMeta != null ? customCartMeta : cartMeta);
1783
2003
  }
1784
2004
 
1785
2005
  var x = function x() {
@@ -1792,63 +2012,33 @@ var product = {
1792
2012
  __proto__: null
1793
2013
  };
1794
2014
 
1795
- var fetcher$3 = SWRFetcher;
1796
-
1797
- var fn$3 = function fn(provider) {
1798
- var _provider$site;
1799
-
1800
- return (_provider$site = provider.site) == null ? void 0 : _provider$site.useCategories;
1801
- };
1802
-
1803
- var useCategories = function useCategories(input) {
1804
- var hook = useHook(fn$3);
1805
- return useSWRHook(_extends({
1806
- fetcher: fetcher$3
1807
- }, hook))(input);
1808
- };
1809
-
1810
- var fetcher$4 = SWRFetcher;
1811
-
1812
- var fn$4 = function fn(provider) {
1813
- var _provider$site;
1814
-
1815
- return (_provider$site = provider.site) == null ? void 0 : _provider$site.useBrands;
1816
- };
1817
-
1818
- var useBrands = function useBrands(input) {
1819
- var hook = useHook(fn$4);
1820
- return useSWRHook(_extends({
1821
- fetcher: fetcher$4
1822
- }, hook))(input);
1823
- };
1824
-
1825
- var fetcher$5 = mutationFetcher;
2015
+ var fetcher$6 = mutationFetcher;
1826
2016
 
1827
- var fn$5 = function fn(provider) {
2017
+ var fn$6 = function fn(provider) {
1828
2018
  var _provider$cart;
1829
2019
 
1830
2020
  return (_provider$cart = provider.cart) == null ? void 0 : _provider$cart.useRemoveItem;
1831
2021
  };
1832
2022
 
1833
2023
  var useRemoveItem = function useRemoveItem(input) {
1834
- var hook = useHook(fn$5);
2024
+ var hook = useHook(fn$6);
1835
2025
  return useMutationHook(_extends({
1836
- fetcher: fetcher$5
2026
+ fetcher: fetcher$6
1837
2027
  }, hook))(input);
1838
2028
  };
1839
2029
 
1840
- var fetcher$6 = mutationFetcher;
2030
+ var fetcher$7 = mutationFetcher;
1841
2031
 
1842
- var fn$6 = function fn(provider) {
2032
+ var fn$7 = function fn(provider) {
1843
2033
  var _provider$cart;
1844
2034
 
1845
2035
  return (_provider$cart = provider.cart) == null ? void 0 : _provider$cart.useUpdateItem;
1846
2036
  };
1847
2037
 
1848
2038
  var useUpdateItem = function useUpdateItem(input) {
1849
- var hook = useHook(fn$6);
2039
+ var hook = useHook(fn$7);
1850
2040
  return useMutationHook(_extends({
1851
- fetcher: fetcher$6
2041
+ fetcher: fetcher$7
1852
2042
  }, hook))(input);
1853
2043
  };
1854
2044
 
@@ -1869,11 +2059,13 @@ function registerAll(loader) {
1869
2059
  registerTextField(loader);
1870
2060
  registerProductPrice(loader);
1871
2061
  registerProductMedia(loader);
1872
- registerUseCart(loader);
2062
+ registerCart(loader);
1873
2063
  registerAddToCartButton(loader);
1874
2064
  registerProductQuantity(loader);
1875
2065
  registerProductVariantPicker(loader);
2066
+ registerProductBox(loader);
2067
+ registerProductLink(loader);
1876
2068
  }
1877
2069
 
1878
- export { cart as CartType, CommerceError, CoreCommerceProvider, FetcherError, product as ProductTypes, site as SiteTypes, ValidationError, fetcher$1 as fetcher, getCommerceProvider, registerAll, useAddItem, useBrands, useCart, useCategories, useCommerce, useRemoveItem, useSearch, useUpdateItem, x };
2070
+ export { AddToCartButton, CartComponent, cart as CartType, CommerceError, CoreCommerceProvider, FetcherError, ProductBox, ProductCollection, ProductLink, ProductMedia, ProductPriceComponent, ProductQuantity, ProductTextField, product as ProductTypes, ProductVariantPicker, site as SiteTypes, ValidationError, addToCartButtonMeta, cartMeta, fetcher$2 as fetcher, getCommerceProvider, productBoxMeta, productCollectionMeta, productLinkMeta, productMediaMeta, productPriceMeta, productQuantityMeta, productTextFieldMeta, productVariantPickerMeta, registerAddToCartButton, registerAll, registerCart, registerProductBox, registerProductCollection, registerProductLink, registerProductMedia, registerProductPrice, registerProductQuantity, registerProductVariantPicker, registerTextField, useAddItem, useBrands, useCart, useCategories, useCommerce, useProduct$1 as useProduct, useRemoveItem, useSearch, useUpdateItem, x };
1879
2071
  //# sourceMappingURL=commerce.esm.js.map