@plasmicpkgs/plasmic-cms 0.0.32 → 0.0.35

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.
@@ -1,7 +1,8 @@
1
- import registerGlobalContext from '@plasmicapp/host/registerGlobalContext';
2
1
  import registerComponent from '@plasmicapp/host/registerComponent';
2
+ import registerGlobalContext from '@plasmicapp/host/registerGlobalContext';
3
3
  import { useSelector, DataProvider, useDataEnv, repeatedElement } from '@plasmicapp/host';
4
4
  import { usePlasmicQueryData } from '@plasmicapp/query';
5
+ import dayjs from 'dayjs';
5
6
  import React from 'react';
6
7
 
7
8
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
@@ -1347,13 +1348,13 @@ function mkTableOptions(tables) {
1347
1348
  };
1348
1349
  });
1349
1350
  }
1350
- function mkFieldOptions(tables, tableId, types) {
1351
+ function mkFieldOptions(tables, tableIdentifier, types) {
1351
1352
  if (!tables) {
1352
1353
  return [];
1353
1354
  }
1354
1355
 
1355
1356
  var table = tables.find(function (t) {
1356
- return t.identifier === tableId;
1357
+ return t.identifier === tableIdentifier;
1357
1358
  });
1358
1359
 
1359
1360
  if (!table) {
@@ -1377,7 +1378,8 @@ function mkFieldOptions(tables, tableId, types) {
1377
1378
  }
1378
1379
 
1379
1380
  var _excluded = ["children"],
1380
- _excluded2 = ["className", "table", "field", "setControlContextData"];
1381
+ _excluded2 = ["className", "table", "field", "dateFormat", "setControlContextData"],
1382
+ _excluded3 = ["table", "field", "valueProp", "children", "setControlContextData"];
1381
1383
  var modulePath = "@plasmicpkgs/plasmic-cms";
1382
1384
  var componentPrefix = "hostless-plasmic-cms";
1383
1385
  var fetcherComponentPropMetas = {
@@ -1666,6 +1668,140 @@ function CmsRowRepeater(_ref7) {
1666
1668
  }, repeatedElement(index === 0, children));
1667
1669
  }));
1668
1670
  }
1671
+ var cmsQueryRepeaterMeta = {
1672
+ name: componentPrefix + "-query-repeater",
1673
+ displayName: "CMS Query Loader",
1674
+ description: "Fetches CMS data and repeats content of children once for every row fetched.",
1675
+ importName: "CmsQueryRepeater",
1676
+ importPath: modulePath,
1677
+ props: {
1678
+ children: {
1679
+ type: "slot",
1680
+ defaultValue: {
1681
+ type: "component",
1682
+ name: componentPrefix + "-row-field"
1683
+ }
1684
+ },
1685
+ table: {
1686
+ type: "choice",
1687
+ displayName: "Model",
1688
+ description: "CMS model (table) to query.",
1689
+ options: function options(_, ctx) {
1690
+ return mkTableOptions(ctx == null ? void 0 : ctx.tables);
1691
+ }
1692
+ },
1693
+ useDraft: {
1694
+ type: "boolean",
1695
+ displayName: "Use drafts?",
1696
+ description: "If set, also query unpublished content.",
1697
+ defaultValue: false
1698
+ },
1699
+ where: {
1700
+ type: "object",
1701
+ displayName: "Filter",
1702
+ description: "Filter clause, in JSON format."
1703
+ },
1704
+ orderBy: {
1705
+ type: "choice",
1706
+ displayName: "Order by",
1707
+ description: "Field to order by.",
1708
+ options: function options(_ref8, ctx) {
1709
+ var table = _ref8.table;
1710
+ return mkFieldOptions(ctx == null ? void 0 : ctx.tables, table);
1711
+ }
1712
+ },
1713
+ desc: {
1714
+ type: "boolean",
1715
+ displayName: "Sort descending?",
1716
+ description: 'Sort descending by "Order by" field.',
1717
+ defaultValue: false
1718
+ },
1719
+ limit: {
1720
+ type: "number",
1721
+ displayName: "Limit",
1722
+ description: "Maximum number of entries to fetch (0 for unlimited).",
1723
+ defaultValue: 0
1724
+ }
1725
+ }
1726
+ };
1727
+ function CmsQueryRepeater(_ref9) {
1728
+ var table = _ref9.table,
1729
+ children = _ref9.children,
1730
+ setControlContextData = _ref9.setControlContextData,
1731
+ where = _ref9.where,
1732
+ useDraft = _ref9.useDraft,
1733
+ orderBy = _ref9.orderBy,
1734
+ desc = _ref9.desc,
1735
+ limit = _ref9.limit;
1736
+ var databaseConfig = useDatabase();
1737
+ var tables = useTables();
1738
+
1739
+ if (tables) {
1740
+ // TODO: Only include table if __plasmic_cms_row_{table} exists.
1741
+ setControlContextData == null ? void 0 : setControlContextData({
1742
+ tables: tables
1743
+ });
1744
+ }
1745
+
1746
+ var params = {
1747
+ where: where,
1748
+ useDraft: useDraft,
1749
+ orderBy: orderBy,
1750
+ desc: desc,
1751
+ limit: limit
1752
+ };
1753
+ var cacheKey = JSON.stringify({
1754
+ component: "CmsQueryLoader",
1755
+ table: table,
1756
+ databaseConfig: databaseConfig,
1757
+ params: params
1758
+ });
1759
+ var maybeData = usePlasmicQueryData(cacheKey, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee3() {
1760
+ return runtime_1.wrap(function _callee3$(_context3) {
1761
+ while (1) {
1762
+ switch (_context3.prev = _context3.next) {
1763
+ case 0:
1764
+ if (table) {
1765
+ _context3.next = 4;
1766
+ break;
1767
+ }
1768
+
1769
+ throw new Error("You must select a table to query");
1770
+
1771
+ case 4:
1772
+ if (!(tables && !tables.find(function (t) {
1773
+ return t.identifier === table;
1774
+ }))) {
1775
+ _context3.next = 6;
1776
+ break;
1777
+ }
1778
+
1779
+ throw new Error("There is no table called \"" + table + "\"");
1780
+
1781
+ case 6:
1782
+ return _context3.abrupt("return", mkApi(databaseConfig).query(table, params));
1783
+
1784
+ case 7:
1785
+ case "end":
1786
+ return _context3.stop();
1787
+ }
1788
+ }
1789
+ }, _callee3);
1790
+ })));
1791
+ return renderMaybeData(maybeData, function (rows) {
1792
+ return React.createElement(QueryResultProvider, {
1793
+ table: table,
1794
+ rows: rows
1795
+ }, rows.map(function (row, index) {
1796
+ return React.createElement(RowProvider, {
1797
+ table: table,
1798
+ row: row
1799
+ }, repeatedElement(index === 0, children));
1800
+ }));
1801
+ }, {
1802
+ hideIfNotFound: false
1803
+ });
1804
+ }
1669
1805
  var cmsRowFieldMeta = {
1670
1806
  name: componentPrefix + "-row-field",
1671
1807
  displayName: "CMS Row Field",
@@ -1684,23 +1820,95 @@ var cmsRowFieldMeta = {
1684
1820
  type: "choice",
1685
1821
  displayName: "Field",
1686
1822
  description: "Field (from model schema) to use.",
1687
- options: function options(_ref8, ctx) {
1823
+ options: function options(_ref11, ctx) {
1688
1824
  var _ctx$table;
1689
1825
 
1690
- var table = _ref8.table;
1826
+ var table = _ref11.table;
1691
1827
  return mkFieldOptions(ctx == null ? void 0 : ctx.tables, (_ctx$table = ctx == null ? void 0 : ctx.table) != null ? _ctx$table : table, ["number", "boolean", "text", "long-text", "date-time", "rich-text"]);
1692
1828
  }
1829
+ },
1830
+ dateFormat: {
1831
+ type: "choice",
1832
+ displayName: "Date Format",
1833
+ hidden: function hidden(_ref12, ctx) {
1834
+ var field = _ref12.field;
1835
+
1836
+ if (!ctx) {
1837
+ return true;
1838
+ }
1839
+
1840
+ var tableIdentifier = ctx.table,
1841
+ tables = ctx.tables;
1842
+ var table = tables == null ? void 0 : tables.find(function (t) {
1843
+ return t.identifier === tableIdentifier;
1844
+ });
1845
+
1846
+ if (!table) {
1847
+ return true;
1848
+ }
1849
+
1850
+ var fieldMeta = table.schema.fields.find(function (f) {
1851
+ return f.identifier === field;
1852
+ });
1853
+
1854
+ if (!fieldMeta) {
1855
+ return true;
1856
+ }
1857
+
1858
+ return fieldMeta.type !== "date-time";
1859
+ },
1860
+ options: [{
1861
+ label: "July 26, 2014",
1862
+ value: "MMMM D, YYYY"
1863
+ }, {
1864
+ label: "July 26, 2014 10:02 PM",
1865
+ value: "MMMM D, YYYY h:mm A"
1866
+ }, {
1867
+ label: "Jul 26, 2014",
1868
+ value: "MMM D, YYYY"
1869
+ }, {
1870
+ label: "Jul 26, 2014 10:02 PM",
1871
+ value: "MMM D, YYYY h:mm A"
1872
+ }, {
1873
+ label: "Saturday, July 26, 2014",
1874
+ value: "dddd, MMMM D, YYYY"
1875
+ }, {
1876
+ label: "7/26/2014",
1877
+ value: "M/D/YYYY"
1878
+ }, {
1879
+ label: "7/26/2014 10:02 PM",
1880
+ value: "M/D/YYYY h:mm A"
1881
+ }, {
1882
+ label: "26/7/2014",
1883
+ value: "D/M/YYYY"
1884
+ }, {
1885
+ label: "26/7/2014 10:02 PM",
1886
+ value: "D/M/YYYY h:mm A"
1887
+ }, {
1888
+ label: "7/26/14",
1889
+ value: "M/D/YY"
1890
+ }, {
1891
+ label: "7/26/14 10:02 PM",
1892
+ value: "M/D/YY h:mm A"
1893
+ }, {
1894
+ label: "26/7/14",
1895
+ value: "D/M/YY"
1896
+ }, {
1897
+ label: "26/7/14 10:02 PM",
1898
+ value: "D/M/YY h:mm A"
1899
+ }]
1693
1900
  }
1694
1901
  }
1695
1902
  };
1696
- function CmsRowField(_ref9) {
1903
+ function CmsRowField(_ref13) {
1697
1904
  var _res$row$data;
1698
1905
 
1699
- var className = _ref9.className,
1700
- table = _ref9.table,
1701
- field = _ref9.field,
1702
- setControlContextData = _ref9.setControlContextData,
1703
- rest = _objectWithoutPropertiesLoose(_ref9, _excluded2);
1906
+ var className = _ref13.className,
1907
+ table = _ref13.table,
1908
+ field = _ref13.field,
1909
+ dateFormat = _ref13.dateFormat,
1910
+ setControlContextData = _ref13.setControlContextData,
1911
+ rest = _objectWithoutPropertiesLoose(_ref13, _excluded2);
1704
1912
 
1705
1913
  var tables = useTables();
1706
1914
  var res = useRow(table);
@@ -1713,7 +1921,8 @@ function CmsRowField(_ref9) {
1713
1921
  // TODO: Only include table if __plasmic_cms_row_{table} exists.
1714
1922
  setControlContextData == null ? void 0 : setControlContextData({
1715
1923
  tables: tables,
1716
- table: res.table
1924
+ table: res.table,
1925
+ row: res.row
1717
1926
  });
1718
1927
  }
1719
1928
 
@@ -1729,6 +1938,15 @@ function CmsRowField(_ref9) {
1729
1938
  }
1730
1939
 
1731
1940
  var data = (_res$row$data = res.row.data) == null ? void 0 : _res$row$data[fieldMeta.identifier];
1941
+
1942
+ if (!data) {
1943
+ return null;
1944
+ }
1945
+
1946
+ if (fieldMeta.type === "date-time" && dateFormat) {
1947
+ data = dayjs(data).format(dateFormat);
1948
+ }
1949
+
1732
1950
  return data ? renderValue(data, fieldMeta.type, _extends({
1733
1951
  className: className
1734
1952
  }, rest)) : null;
@@ -1815,10 +2033,10 @@ var cmsRowLinkMeta = {
1815
2033
  type: "choice",
1816
2034
  displayName: "Field",
1817
2035
  description: "Field (from model schema) to use.",
1818
- options: function options(_ref10, ctx) {
2036
+ options: function options(_ref14, ctx) {
1819
2037
  var _ctx$table2;
1820
2038
 
1821
- var table = _ref10.table;
2039
+ var table = _ref14.table;
1822
2040
  return mkFieldOptions(ctx == null ? void 0 : ctx.tables, (_ctx$table2 = ctx == null ? void 0 : ctx.table) != null ? _ctx$table2 : table);
1823
2041
  }
1824
2042
  },
@@ -1830,14 +2048,14 @@ var cmsRowLinkMeta = {
1830
2048
  }
1831
2049
  }
1832
2050
  };
1833
- function CmsRowLink(_ref11) {
2051
+ function CmsRowLink(_ref15) {
1834
2052
  var _res$row$data2;
1835
2053
 
1836
- var table = _ref11.table,
1837
- field = _ref11.field,
1838
- hrefProp = _ref11.hrefProp,
1839
- children = _ref11.children,
1840
- setControlContextData = _ref11.setControlContextData;
2054
+ var table = _ref15.table,
2055
+ field = _ref15.field,
2056
+ hrefProp = _ref15.hrefProp,
2057
+ children = _ref15.children,
2058
+ setControlContextData = _ref15.setControlContextData;
1841
2059
  var tables = useTables();
1842
2060
  var res = useRow(table);
1843
2061
 
@@ -1905,10 +2123,10 @@ var cmsRowImageMeta = {
1905
2123
  type: "choice",
1906
2124
  displayName: "Field",
1907
2125
  description: "Field (from model schema) to use.",
1908
- options: function options(_ref12, ctx) {
2126
+ options: function options(_ref16, ctx) {
1909
2127
  var _ctx$table3;
1910
2128
 
1911
- var table = _ref12.table;
2129
+ var table = _ref16.table;
1912
2130
  return mkFieldOptions(ctx == null ? void 0 : ctx.tables, (_ctx$table3 = ctx == null ? void 0 : ctx.table) != null ? _ctx$table3 : table);
1913
2131
  }
1914
2132
  },
@@ -1920,14 +2138,14 @@ var cmsRowImageMeta = {
1920
2138
  }
1921
2139
  }
1922
2140
  };
1923
- function CmsRowImage(_ref13) {
2141
+ function CmsRowImage(_ref17) {
1924
2142
  var _res$row$data3;
1925
2143
 
1926
- var table = _ref13.table,
1927
- field = _ref13.field,
1928
- srcProp = _ref13.srcProp,
1929
- children = _ref13.children,
1930
- setControlContextData = _ref13.setControlContextData;
2144
+ var table = _ref17.table,
2145
+ field = _ref17.field,
2146
+ srcProp = _ref17.srcProp,
2147
+ children = _ref17.children,
2148
+ setControlContextData = _ref17.setControlContextData;
1931
2149
  var tables = useTables();
1932
2150
  var res = useRow(table);
1933
2151
 
@@ -1997,10 +2215,10 @@ var cmsRowFieldValueMeta = {
1997
2215
  type: "choice",
1998
2216
  displayName: "Field",
1999
2217
  description: "Field (from model schema) to use.",
2000
- options: function options(_ref14, ctx) {
2218
+ options: function options(_ref18, ctx) {
2001
2219
  var _ctx$table4;
2002
2220
 
2003
- var table = _ref14.table;
2221
+ var table = _ref18.table;
2004
2222
  return mkFieldOptions(ctx == null ? void 0 : ctx.tables, (_ctx$table4 = ctx == null ? void 0 : ctx.table) != null ? _ctx$table4 : table);
2005
2223
  }
2006
2224
  },
@@ -2012,14 +2230,16 @@ var cmsRowFieldValueMeta = {
2012
2230
  }
2013
2231
  }
2014
2232
  };
2015
- function CmsRowFieldValue(_ref15) {
2233
+ function CmsRowFieldValue(_ref19) {
2016
2234
  var _res$row$data4;
2017
2235
 
2018
- var table = _ref15.table,
2019
- field = _ref15.field,
2020
- valueProp = _ref15.valueProp,
2021
- children = _ref15.children,
2022
- setControlContextData = _ref15.setControlContextData;
2236
+ var table = _ref19.table,
2237
+ field = _ref19.field,
2238
+ valueProp = _ref19.valueProp,
2239
+ children = _ref19.children,
2240
+ setControlContextData = _ref19.setControlContextData,
2241
+ rest = _objectWithoutPropertiesLoose(_ref19, _excluded3);
2242
+
2023
2243
  var tables = useTables();
2024
2244
  var res = useRow(table);
2025
2245
 
@@ -2049,9 +2269,9 @@ function CmsRowFieldValue(_ref15) {
2049
2269
  var value = ((_res$row$data4 = res.row.data) == null ? void 0 : _res$row$data4[fieldMeta.identifier]) || "";
2050
2270
  var childrenWithProps = React.Children.map(children, function (child) {
2051
2271
  if (React.isValidElement(child)) {
2052
- var _React$cloneElement4;
2272
+ var _extends2;
2053
2273
 
2054
- return React.cloneElement(child, (_React$cloneElement4 = {}, _React$cloneElement4[valueProp] = value, _React$cloneElement4));
2274
+ return React.cloneElement(child, _extends({}, rest, (_extends2 = {}, _extends2[valueProp] = value, _extends2)));
2055
2275
  }
2056
2276
 
2057
2277
  return child;
@@ -2092,13 +2312,13 @@ var cmsRowLoaderMeta = {
2092
2312
  }
2093
2313
  }, fetcherComponentPropMetas)
2094
2314
  };
2095
- function CmsRowLoader(_ref16) {
2096
- var table = _ref16.table,
2097
- row = _ref16.row,
2098
- children = _ref16.children,
2099
- useDraft = _ref16.useDraft,
2100
- hideIfNotFound = _ref16.hideIfNotFound,
2101
- setControlContextData = _ref16.setControlContextData;
2315
+ function CmsRowLoader(_ref20) {
2316
+ var table = _ref20.table,
2317
+ row = _ref20.row,
2318
+ children = _ref20.children,
2319
+ useDraft = _ref20.useDraft,
2320
+ hideIfNotFound = _ref20.hideIfNotFound,
2321
+ setControlContextData = _ref20.setControlContextData;
2102
2322
  var databaseConfig = useDatabase();
2103
2323
  var tables = useTables();
2104
2324
 
@@ -2115,13 +2335,13 @@ function CmsRowLoader(_ref16) {
2115
2335
  databaseConfig: databaseConfig,
2116
2336
  useDraft: useDraft
2117
2337
  });
2118
- var maybeData = usePlasmicQueryData(cacheKey, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee3() {
2119
- return runtime_1.wrap(function _callee3$(_context3) {
2338
+ var maybeData = usePlasmicQueryData(cacheKey, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee4() {
2339
+ return runtime_1.wrap(function _callee4$(_context4) {
2120
2340
  while (1) {
2121
- switch (_context3.prev = _context3.next) {
2341
+ switch (_context4.prev = _context4.next) {
2122
2342
  case 0:
2123
2343
  if (table) {
2124
- _context3.next = 2;
2344
+ _context4.next = 2;
2125
2345
  break;
2126
2346
  }
2127
2347
 
@@ -2129,25 +2349,25 @@ function CmsRowLoader(_ref16) {
2129
2349
 
2130
2350
  case 2:
2131
2351
  if (row) {
2132
- _context3.next = 4;
2352
+ _context4.next = 4;
2133
2353
  break;
2134
2354
  }
2135
2355
 
2136
2356
  throw new Error("You must specify an entry name to fetch.");
2137
2357
 
2138
2358
  case 4:
2139
- _context3.next = 6;
2359
+ _context4.next = 6;
2140
2360
  return mkApi(databaseConfig).fetchRow(table, row, useDraft);
2141
2361
 
2142
2362
  case 6:
2143
- return _context3.abrupt("return", _context3.sent);
2363
+ return _context4.abrupt("return", _context4.sent);
2144
2364
 
2145
2365
  case 7:
2146
2366
  case "end":
2147
- return _context3.stop();
2367
+ return _context4.stop();
2148
2368
  }
2149
2369
  }
2150
- }, _callee3);
2370
+ }, _callee4);
2151
2371
  })));
2152
2372
  return renderMaybeData(maybeData, function (row) {
2153
2373
  return React.createElement(RowProvider, {
@@ -2178,11 +2398,11 @@ function registerAll(loader) {
2178
2398
  }
2179
2399
  };
2180
2400
 
2181
- _registerGlobalContext(CmsCredentialsProvider, cmsCredentialsProviderMeta);
2401
+ _registerGlobalContext(CmsCredentialsProvider, cmsCredentialsProviderMeta); // _registerComponent(CmsQueryLoader, cmsQueryLoaderMeta);
2402
+ // _registerComponent(CmsRowRepeater, cmsRowRepeaterMeta);
2182
2403
 
2183
- _registerComponent(CmsQueryLoader, cmsQueryLoaderMeta);
2184
2404
 
2185
- _registerComponent(CmsRowRepeater, cmsRowRepeaterMeta);
2405
+ _registerComponent(CmsQueryRepeater, cmsQueryRepeaterMeta);
2186
2406
 
2187
2407
  _registerComponent(CmsRowField, cmsRowFieldMeta);
2188
2408
 
@@ -2190,10 +2410,9 @@ function registerAll(loader) {
2190
2410
 
2191
2411
  _registerComponent(CmsRowImage, cmsRowImageMeta);
2192
2412
 
2193
- _registerComponent(CmsRowFieldValue, cmsRowFieldValueMeta);
2413
+ _registerComponent(CmsRowFieldValue, cmsRowFieldValueMeta); // _registerComponent(CmsRowLoader, cmsRowLoaderMeta);
2194
2414
 
2195
- _registerComponent(CmsRowLoader, cmsRowLoaderMeta);
2196
2415
  }
2197
2416
 
2198
- export { CmsCredentialsProvider, CmsQueryLoader, CmsRowField, CmsRowFieldValue, CmsRowImage, CmsRowLink, CmsRowLoader, CmsRowRepeater, cmsCredentialsProviderMeta, cmsQueryLoaderMeta, cmsRowFieldMeta, cmsRowFieldValueMeta, cmsRowImageMeta, cmsRowLinkMeta, cmsRowLoaderMeta, cmsRowRepeaterMeta, registerAll };
2417
+ export { CmsCredentialsProvider, CmsQueryLoader, CmsQueryRepeater, CmsRowField, CmsRowFieldValue, CmsRowImage, CmsRowLink, CmsRowLoader, CmsRowRepeater, cmsCredentialsProviderMeta, cmsQueryLoaderMeta, cmsQueryRepeaterMeta, cmsRowFieldMeta, cmsRowFieldValueMeta, cmsRowImageMeta, cmsRowLinkMeta, cmsRowLoaderMeta, cmsRowRepeaterMeta, registerAll };
2199
2418
  //# sourceMappingURL=plasmic-cms.esm.js.map