@plasmicpkgs/plasmic-cms 0.0.270 → 0.0.271

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.
@@ -1054,9 +1054,10 @@ var cmsQueryRepeaterMeta = {
1054
1054
  options: function options(_ref4, ctx) {
1055
1055
  var _ctx$table;
1056
1056
  var table = _ref4.table;
1057
- 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", "ref"]);
1057
+ return mkFieldOptions(ctx == null ? void 0 : ctx.tables, (_ctx$table = ctx == null ? void 0 : ctx.table) != null ? _ctx$table : table, ["number" /* NUMBER */, "boolean" /* BOOLEAN */, "text" /* TEXT */, "long-text" /* LONG_TEXT */, "ref" /* REF */]);
1058
1058
  }
1059
1059
  },
1060
+
1060
1061
  filterValue: {
1061
1062
  type: "string",
1062
1063
  displayName: "Filter value",
@@ -1067,8 +1068,9 @@ var cmsQueryRepeaterMeta = {
1067
1068
  displayName: "Order by",
1068
1069
  description: "Field to order by.",
1069
1070
  options: function options(_, ctx) {
1070
- return mkFieldOptions(ctx == null ? void 0 : ctx.tables, ctx == null ? void 0 : ctx.table, ["number", "boolean", "date-time", "long-text", "text"]);
1071
+ return mkFieldOptions(ctx == null ? void 0 : ctx.tables, ctx == null ? void 0 : ctx.table, ["number" /* NUMBER */, "boolean" /* BOOLEAN */, "date-time" /* DATE_TIME */, "long-text" /* LONG_TEXT */, "text" /* TEXT */]);
1071
1072
  },
1073
+
1072
1074
  hidden: function hidden(ps) {
1073
1075
  return ps.mode === "count";
1074
1076
  }
@@ -1313,8 +1315,9 @@ var cmsRowFieldMeta = {
1313
1315
  options: function options(_ref8, ctx) {
1314
1316
  var _ctx$table3;
1315
1317
  var table = _ref8.table;
1316
- return mkFieldOptions(ctx == null ? void 0 : ctx.tables, (_ctx$table3 = ctx == null ? void 0 : ctx.table) != null ? _ctx$table3 : table, ["number", "boolean", "text", "long-text", "date-time", "rich-text", "image", "file", "enum"]);
1318
+ return mkFieldOptions(ctx == null ? void 0 : ctx.tables, (_ctx$table3 = ctx == null ? void 0 : ctx.table) != null ? _ctx$table3 : table, ["number" /* NUMBER */, "boolean" /* BOOLEAN */, "text" /* TEXT */, "long-text" /* LONG_TEXT */, "date-time" /* DATE_TIME */, "rich-text" /* RICH_TEXT */, "image" /* IMAGE */, "file" /* FILE */, "enum" /* ENUM */]);
1317
1319
  },
1320
+
1318
1321
  defaultValueHint: function defaultValueHint(_, ctx) {
1319
1322
  var _ctx$fieldMeta, _ctx$fieldMeta2;
1320
1323
  return (ctx == null || (_ctx$fieldMeta = ctx.fieldMeta) == null ? void 0 : _ctx$fieldMeta.name) || (ctx == null || (_ctx$fieldMeta2 = ctx.fieldMeta) == null ? void 0 : _ctx$fieldMeta2.identifier);
@@ -1342,8 +1345,9 @@ var cmsRowFieldMeta = {
1342
1345
  if (!fieldMeta) {
1343
1346
  return true;
1344
1347
  }
1345
- return fieldMeta.type !== "date-time";
1348
+ return fieldMeta.type !== "date-time" /* DATE_TIME */;
1346
1349
  },
1350
+
1347
1351
  options: [{
1348
1352
  label: "July 26, 2014",
1349
1353
  value: "MMMM D, YYYY"
@@ -1419,7 +1423,7 @@ function CmsRowField(_ref10) {
1419
1423
  table: res.table,
1420
1424
  tables: tables,
1421
1425
  field: field,
1422
- typeFilters: ["text", "long-text", "rich-text"]
1426
+ typeFilters: ["text" /* TEXT */, "long-text" /* LONG_TEXT */, "rich-text" /* RICH_TEXT */]
1423
1427
  }) : undefined;
1424
1428
  if (tables) {
1425
1429
  // TODO: Only include table if __plasmic_cms_row_{table} exists.
@@ -1446,7 +1450,7 @@ function CmsRowField(_ref10) {
1446
1450
  if (!data) {
1447
1451
  return null;
1448
1452
  }
1449
- if (fieldMeta.type === "date-time" && dateFormat) {
1453
+ if (fieldMeta.type === "date-time" /* DATE_TIME */ && dateFormat) {
1450
1454
  data = dayjs(data).format(dateFormat);
1451
1455
  }
1452
1456
  return data ? renderValue(data, fieldMeta.type, _extends({
@@ -1497,7 +1501,7 @@ function CmsCount(_ref11) {
1497
1501
  }, rest), new Intl.NumberFormat().format(res.count));
1498
1502
  }
1499
1503
  }
1500
- var DEFAULT_TYPE_FILTERS = ["text"];
1504
+ var DEFAULT_TYPE_FILTERS = ["text" /* TEXT */];
1501
1505
  function deriveInferredTableField(opts) {
1502
1506
  var _tables$find;
1503
1507
  var table = opts.table,
@@ -1520,15 +1524,15 @@ function assertNever(_) {
1520
1524
  }
1521
1525
  function renderValue(value, type, props) {
1522
1526
  switch (type) {
1523
- case "number":
1524
- case "boolean":
1525
- case "text":
1526
- case "long-text":
1527
- case "date-time":
1528
- case "enum":
1529
- case "ref":
1527
+ case "number" /* NUMBER */:
1528
+ case "boolean" /* BOOLEAN */:
1529
+ case "text" /* TEXT */:
1530
+ case "long-text" /* LONG_TEXT */:
1531
+ case "date-time" /* DATE_TIME */:
1532
+ case "enum" /* ENUM */:
1533
+ case "ref" /* REF */:
1530
1534
  return React.createElement("div", Object.assign({}, props), value);
1531
- case "rich-text":
1535
+ case "rich-text" /* RICH_TEXT */:
1532
1536
  return React.createElement("div", Object.assign({
1533
1537
  dangerouslySetInnerHTML: {
1534
1538
  __html: value
@@ -1537,7 +1541,7 @@ function renderValue(value, type, props) {
1537
1541
  whiteSpace: "normal"
1538
1542
  }
1539
1543
  }, props));
1540
- case "image":
1544
+ case "image" /* IMAGE */:
1541
1545
  if (value && typeof value === "object" && value.url && value.imageMeta) {
1542
1546
  return React.createElement("img", Object.assign({
1543
1547
  src: value.url,
@@ -1546,7 +1550,7 @@ function renderValue(value, type, props) {
1546
1550
  }, props));
1547
1551
  }
1548
1552
  return null;
1549
- case "file":
1553
+ case "file" /* FILE */:
1550
1554
  if (value && typeof value === "object" && value.url && value.name) {
1551
1555
  return React.createElement("a", Object.assign({
1552
1556
  href: value.url,
@@ -1646,8 +1650,9 @@ function CmsRowLink(_ref13) {
1646
1650
  table: res.table,
1647
1651
  tables: tables,
1648
1652
  field: field,
1649
- typeFilters: ["file", "text"]
1653
+ typeFilters: ["file" /* FILE */, "text" /* TEXT */]
1650
1654
  });
1655
+
1651
1656
  if (tables) {
1652
1657
  // TODO: Only include table if __plasmic_cms_row_{table} exists.
1653
1658
  setControlContextData == null || setControlContextData({
@@ -1667,7 +1672,7 @@ function CmsRowLink(_ref13) {
1667
1672
  var childrenWithProps = React.Children.map(children, function (child) {
1668
1673
  if (React.isValidElement(child)) {
1669
1674
  var _React$cloneElement;
1670
- return React.cloneElement(child, (_React$cloneElement = {}, _React$cloneElement[hrefProp] = fieldMeta.type === "file" ? value.url : prefix || suffix ? "" + (prefix || "") + value + (suffix || "") : value, _React$cloneElement));
1675
+ return React.cloneElement(child, (_React$cloneElement = {}, _React$cloneElement[hrefProp] = fieldMeta.type === "file" /* FILE */ ? value.url : prefix || suffix ? "" + (prefix || "") + value + (suffix || "") : value, _React$cloneElement));
1671
1676
  }
1672
1677
  return child;
1673
1678
  });
@@ -1709,7 +1714,7 @@ var cmsRowImageMeta = {
1709
1714
  options: function options(_ref14, ctx) {
1710
1715
  var _ctx$table5;
1711
1716
  var table = _ref14.table;
1712
- return mkFieldOptions(ctx == null ? void 0 : ctx.tables, (_ctx$table5 = ctx == null ? void 0 : ctx.table) != null ? _ctx$table5 : table, ["image"]);
1717
+ return mkFieldOptions(ctx == null ? void 0 : ctx.tables, (_ctx$table5 = ctx == null ? void 0 : ctx.table) != null ? _ctx$table5 : table, ["image" /* IMAGE */]);
1713
1718
  },
1714
1719
  defaultValueHint: function defaultValueHint(_, ctx) {
1715
1720
  var _ctx$fieldMeta7, _ctx$fieldMeta8;
@@ -1740,8 +1745,9 @@ function CmsRowImage(_ref15) {
1740
1745
  table: res.table,
1741
1746
  tables: tables,
1742
1747
  field: field,
1743
- typeFilters: ["image"]
1748
+ typeFilters: ["image" /* IMAGE */]
1744
1749
  });
1750
+
1745
1751
  if (tables) {
1746
1752
  // TODO: Only include table if __plasmic_cms_row_{table} exists.
1747
1753
  setControlContextData == null || setControlContextData({
@@ -1836,8 +1842,9 @@ function CmsRowFieldValue(_ref17) {
1836
1842
  table: res.table,
1837
1843
  tables: tables,
1838
1844
  field: field,
1839
- typeFilters: ["text"]
1845
+ typeFilters: ["text" /* TEXT */]
1840
1846
  });
1847
+
1841
1848
  if (tables) {
1842
1849
  // TODO: Only include table if __plasmic_cms_row_{table} exists.
1843
1850
  setControlContextData == null || setControlContextData({
@@ -1 +1 @@
1
- {"version":3,"file":"plasmic-cms.cjs.development.js","sources":["../src/api.ts","../src/context.tsx","../src/util.ts","../src/components.tsx","../src/index.tsx"],"sourcesContent":["import { ApiCmsQuery, ApiCmsRow, ApiCmsTable } from \"./schema\";\n\nexport interface DatabaseConfig {\n host: string;\n databaseId: string;\n databaseToken: string;\n locale: string;\n useDraft: boolean | string[];\n}\n\nexport interface QueryParams {\n useDraft?: boolean;\n where?: any;\n orderBy?: string;\n desc?: boolean;\n limit?: number;\n offset?: number;\n fields?: string[];\n}\n\nfunction queryParamsToApi(params: QueryParams): ApiCmsQuery {\n return {\n where: params.where,\n limit: params.limit,\n offset: params.offset,\n order: params.orderBy\n ? [\n {\n field: params.orderBy,\n dir: params.desc ? \"desc\" : \"asc\",\n },\n ]\n : undefined,\n fields: params.fields,\n };\n}\n\nexport class HttpError extends Error {\n constructor(public status: number, message: string) {\n super(message);\n }\n}\n\nexport class API {\n constructor(private config: DatabaseConfig) {}\n\n async get(endpoint: string, params: any = {}) {\n const url = new URL(\n `${this.config.host}/api/v1/cms/databases/${this.config.databaseId}${endpoint}`\n );\n const fixedParams = Object.keys(params).reduce((newObj, key) => {\n const value = params[key];\n if (value != null) {\n newObj[key] = value;\n }\n return newObj;\n }, {} as any);\n url.search = new URLSearchParams(fixedParams).toString();\n const response = await fetch(url.toString(), {\n method: \"GET\",\n headers: {\n accept: \"*/*\",\n \"x-plasmic-api-cms-tokens\": `${this.config.databaseId}:${this.config.databaseToken}`,\n },\n mode: \"cors\",\n });\n\n if (response.status !== 200) {\n let message = await response.text();\n try {\n const json = JSON.parse(message);\n if (json.error?.message) {\n message = json.error.message;\n }\n } catch {\n // ignored\n }\n throw new HttpError(response.status, message);\n }\n\n return await response.json();\n }\n\n async fetchTables(): Promise<ApiCmsTable[]> {\n try {\n const response = await this.get(``);\n return response.tables;\n } catch (e) {\n console.error(e);\n throw e;\n }\n }\n\n private useDraftForTable(table: string) {\n if (Array.isArray(this.config.useDraft)) {\n return this.config.useDraft.includes(table);\n } else {\n return this.config.useDraft;\n }\n }\n\n async query(table: string, params: QueryParams = {}): Promise<ApiCmsRow[]> {\n try {\n const response = await this.get(`/tables/${table}/query`, {\n q: JSON.stringify(queryParamsToApi(params)),\n draft: Number(this.useDraftForTable(table) || params.useDraft),\n locale: this.config.locale,\n });\n return response.rows;\n } catch (e) {\n console.error(e);\n throw e;\n }\n }\n\n async count(\n table: string,\n params: Pick<QueryParams, \"where\" | \"useDraft\"> = {}\n ): Promise<number> {\n try {\n const response = await this.get(`/tables/${table}/count`, {\n q: JSON.stringify(queryParamsToApi(params)),\n draft: Number(this.useDraftForTable(table) || params.useDraft),\n });\n return response.count;\n } catch (e) {\n console.error(e);\n throw e;\n }\n }\n}\n\nexport function mkApi(config: DatabaseConfig | undefined) {\n if (!config) {\n throw new Error(\"Component must be wrapped in 'CMS Data Provider'.\");\n }\n\n return new API(config);\n}\n","import {\n DataDict,\n DataProvider,\n useDataEnv,\n useSelector,\n} from \"@plasmicapp/host\";\nimport React from \"react\";\nimport { DatabaseConfig } from \"./api\";\nimport { ApiCmsRow, ApiCmsTable } from \"./schema\";\n\nconst contextPrefix = \"plasmicCms\";\nconst databaseContextKey = `${contextPrefix}Database`;\nconst tablesContextKey = `${contextPrefix}Tables`;\nconst tableSchemaContextKey = `${contextPrefix}TableSchema`;\nconst collectionResultSuffix = `Collection`;\nexport const mkQueryContextKey = (table: string) =>\n `${contextPrefix}${capitalizeFirst(table)}${collectionResultSuffix}`;\nconst itemContextSuffix = `Item`;\nconst countContextSuffix = `Count`;\nconst modeContextSuffix = `Mode`;\nconst mkRowContextKey = (table: string) =>\n `${contextPrefix}${capitalizeFirst(table)}${itemContextSuffix}`;\nconst mkCountContextKey = (table: string) =>\n `${contextPrefix}${capitalizeFirst(table)}${countContextSuffix}`;\nconst mkModeContextKey = (table: string) =>\n `${contextPrefix}${capitalizeFirst(table)}${modeContextSuffix}`;\n\nfunction capitalizeFirst(str: string): string {\n return str[0]?.toUpperCase() + str.slice(1);\n}\n\nexport function useDatabase() {\n return useSelector(databaseContextKey) as DatabaseConfig | undefined;\n}\n\nexport function makeDatabaseCacheKey(config: DatabaseConfig | undefined) {\n if (!config) {\n return null;\n }\n const { databaseToken, ...rest } = config;\n return JSON.stringify(rest);\n}\n\nexport function DatabaseProvider({\n config,\n children,\n}: {\n config: DatabaseConfig;\n children?: React.ReactNode;\n}) {\n return (\n <DataProvider name={databaseContextKey} data={config} hidden={true}>\n {children}\n </DataProvider>\n );\n}\n\nexport function useTables() {\n return useSelector(tablesContextKey) as ApiCmsTable[] | undefined;\n}\n\nexport function TablesProvider({\n children,\n tables,\n}: {\n children?: React.ReactNode;\n tables?: ApiCmsTable[];\n}) {\n return (\n <DataProvider name={tablesContextKey} data={tables} hidden={true}>\n {children}\n </DataProvider>\n );\n}\n\nexport function TableSchemaProvider({\n children,\n table,\n}: {\n children?: React.ReactNode;\n table?: string | undefined;\n}) {\n const tables = useTables();\n\n let schema;\n if (tables && tables?.length > 0) {\n if (!table) {\n schema = tables[0]?.schema;\n } else {\n schema = tables?.find((t) => t?.identifier === table)?.schema;\n }\n }\n return (\n <DataProvider name={tableSchemaContextKey} data={schema}>\n {children}\n </DataProvider>\n );\n}\n\nexport function useQueryResults(table?: string) {\n const env = useDataEnv();\n const tables = useTables();\n\n if (!env) {\n return undefined;\n }\n\n if (table) {\n return {\n table,\n rows: (env[mkQueryContextKey(table)] ?? []) as ApiCmsRow[],\n };\n }\n if (!tables) {\n return undefined;\n }\n\n const matchingKeys = getClosestMatchingKeys(env, collectionResultSuffix);\n for (const key of matchingKeys) {\n const inferredTable = tables.find(\n (t) => mkQueryContextKey(t.identifier) === key\n );\n if (inferredTable) {\n return {\n table: inferredTable.identifier,\n rows: (env[key] ?? []) as ApiCmsRow[],\n };\n }\n }\n return undefined;\n}\n\nfunction getClosestMatchingKeys(env: DataDict, suffix: string) {\n return [...Object.keys(env).reverse()].filter((k) => k.endsWith(suffix));\n}\n\nfunction getClosestMatchingKeysBy(\n env: DataDict,\n pred: (str: string) => boolean\n) {\n return [...Object.keys(env).reverse()].filter((key) => pred(key));\n}\n\nexport function QueryResultProvider({\n children,\n table,\n rows,\n hidden,\n}: {\n children?: React.ReactNode;\n table: string | undefined;\n rows: ApiCmsRow[] | undefined;\n hidden?: boolean;\n}) {\n return (\n <DataProvider\n name={table ? mkModeContextKey(table) : undefined}\n data=\"rows\"\n hidden\n >\n <DataProvider\n name={table ? mkQueryContextKey(table) : undefined}\n data={rows}\n hidden={hidden}\n >\n {children}\n </DataProvider>\n </DataProvider>\n );\n}\n\nexport function useTablesWithDataLoaded(mode: \"rows\" | \"count\" | undefined) {\n const env = useDataEnv();\n const tables = useTables();\n\n if (!env) {\n return undefined;\n }\n\n if (!tables) {\n return undefined;\n }\n\n const matchingKeys = getClosestMatchingKeysBy(env, (key) => {\n if (mode === \"rows\") {\n return key.endsWith(itemContextSuffix);\n } else if (mode === \"count\") {\n return key.endsWith(countContextSuffix);\n } else {\n return (\n key.endsWith(itemContextSuffix) || key.endsWith(countContextSuffix)\n );\n }\n });\n\n return tables.filter((table) =>\n matchingKeys.some((key) => {\n if (mode === \"rows\") {\n return mkRowContextKey(table.identifier) === key;\n } else if (mode === \"count\") {\n return mkCountContextKey(table.identifier) === key;\n } else {\n return (\n mkRowContextKey(table.identifier) === key ||\n mkCountContextKey(table.identifier) === key\n );\n }\n })\n );\n}\n\nfunction deriveTableId(tables?: ApiCmsTable[], table?: string) {\n if (!table && tables && tables.length > 0) {\n table = tables[0].identifier;\n }\n return table;\n}\n\nexport function useRow(tables?: ApiCmsTable[], table?: string) {\n const env = useDataEnv();\n\n if (!env) {\n return undefined;\n }\n\n table = deriveTableId(tables, table);\n\n if (table) {\n return {\n table,\n row: env[mkRowContextKey(table)] as ApiCmsRow | undefined,\n };\n }\n\n return undefined;\n}\n\nexport function useCount(tables?: ApiCmsTable[], table?: string) {\n const env = useDataEnv();\n\n if (!env) {\n return undefined;\n }\n\n table = deriveTableId(tables, table);\n\n if (table) {\n return {\n table,\n count: env[mkCountContextKey(table)] as number | undefined,\n };\n }\n\n return undefined;\n}\n\nexport function RowProvider({\n children,\n table,\n row,\n}: {\n children?: React.ReactNode;\n table: string;\n row: ApiCmsRow;\n}) {\n return (\n <DataProvider name={mkRowContextKey(table)} data={row}>\n {children}\n </DataProvider>\n );\n}\n\nexport function CountProvider({\n children,\n table,\n count,\n}: {\n children?: React.ReactNode;\n table: string | undefined;\n count: number | undefined;\n}) {\n return (\n <DataProvider\n name={table ? mkModeContextKey(table) : undefined}\n data=\"count\"\n hidden\n >\n <DataProvider\n name={table ? mkCountContextKey(table) : undefined}\n data={count}\n >\n {children}\n </DataProvider>\n </DataProvider>\n );\n}\n","import { ApiCmsTable, CmsType } from \"./schema\";\n\ntype ValueLabelPair = {\n value: string;\n label: string;\n};\n\nexport function mkTableOptions(\n tables: ApiCmsTable[] | undefined\n): ValueLabelPair[] {\n if (!tables) {\n return [];\n }\n\n return tables.map((table) => ({\n value: table.identifier,\n label: table.name,\n }));\n}\n\nexport function mkFieldOptions(\n tables: ApiCmsTable[] | undefined,\n tableIdentifier: string | undefined,\n types?: CmsType[]\n): ValueLabelPair[] {\n if (!tables) {\n return [];\n }\n\n const table = tables.find((t) => t.identifier === tableIdentifier);\n if (!table) {\n return [];\n }\n\n let fields = table.schema.fields;\n if (types) {\n fields = fields.filter((f) => types.includes(f.type));\n }\n const options = fields.map((f) => ({\n value: f.identifier,\n label: f.name || f.identifier,\n }));\n if (!options.some((option) => option.value === \"_id\")) {\n options.push({\n label: \"System-assigned ID\",\n value: \"_id\",\n });\n }\n\n return options;\n}\n","import { repeatedElement, usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport {\n CanvasComponentProps,\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { GlobalContextMeta } from \"@plasmicapp/host/registerGlobalContext\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport dayjs from \"dayjs\";\nimport React from \"react\";\nimport { DatabaseConfig, HttpError, mkApi, QueryParams } from \"./api\";\nimport {\n CountProvider,\n DatabaseProvider,\n makeDatabaseCacheKey,\n QueryResultProvider,\n RowProvider,\n TablesProvider,\n useCount,\n useDatabase,\n useRow,\n useTables,\n useTablesWithDataLoaded,\n TableSchemaProvider,\n} from \"./context\";\nimport { ApiCmsRow, ApiCmsTable, CmsFieldMeta, CmsType } from \"./schema\";\nimport { mkFieldOptions, mkTableOptions } from \"./util\";\n\nconst modulePath = \"@plasmicpkgs/plasmic-cms\";\nconst componentPrefix = \"hostless-plasmic-cms\";\n\ninterface FetcherComponentProps {\n hideIfNotFound?: boolean;\n}\n\nfunction renderMaybeData<T>(\n maybeData: ReturnType<typeof usePlasmicQueryData>,\n renderFn: (data: T) => JSX.Element | any,\n loaderProps: FetcherComponentProps,\n inEditor: boolean,\n loadingMessage?: React.ReactNode,\n forceLoadingState?: boolean\n): React.ReactElement | null {\n if (\"error\" in maybeData) {\n const error = maybeData.error;\n if (!inEditor) {\n return <>{loadingMessage ?? <div>Loading...</div>}</>;\n }\n if (error && error instanceof HttpError && error.status === 404) {\n if (loaderProps.hideIfNotFound) {\n return null;\n } else {\n return <div>Error: Data not found</div>;\n }\n } else {\n return <div>Error: {error?.message}</div>;\n }\n }\n if (!(\"data\" in maybeData) || forceLoadingState) {\n return <>{loadingMessage ?? <div>Loading...</div>}</>;\n }\n return renderFn(maybeData.data as T);\n}\n\ninterface CmsCredentialsProviderProps extends DatabaseConfig {\n children?: React.ReactNode;\n}\n\nconst defaultHost = \"https://data.plasmic.app\";\n\nexport const cmsCredentialsProviderMeta: GlobalContextMeta<CmsCredentialsProviderProps> =\n {\n name: `${componentPrefix}-credentials-provider`,\n displayName: \"CMS Credentials Provider\",\n description: `\nFind (or create) your CMS in the [dashboard](https://studio.plasmic.app), and go to its Settings view for the ID and token.\n\n[See tutorial video](https://docs.plasmic.app/learn/plasmic-cms/).`,\n importName: \"CmsCredentialsProvider\",\n importPath: modulePath,\n providesData: true,\n props: {\n host: {\n type: \"string\",\n displayName: \"Studio URL\",\n description: `The default host for use in production is ${defaultHost}.`,\n defaultValue: defaultHost,\n defaultValueHint: defaultHost,\n advanced: true,\n },\n databaseId: {\n type: \"string\",\n displayName: \"CMS ID\",\n description:\n \"The ID of the CMS (database) to use. (Can get on the CMS settings page)\",\n },\n databaseToken: {\n type: \"string\",\n displayName: \"CMS Public Token\",\n description:\n \"The Public Token of the CMS (database) you are using. (Can get on the CMS settings page)\",\n },\n locale: {\n type: \"string\",\n displayName: \"Locale\",\n description:\n \"The locale to use for localized values, leave empty for the default locale.\",\n },\n },\n };\n\nexport function CmsCredentialsProvider({\n children,\n databaseId,\n databaseToken,\n host,\n locale,\n useDraft,\n}: CmsCredentialsProviderProps) {\n const config: DatabaseConfig = {\n databaseId,\n databaseToken,\n locale,\n host: host || defaultHost,\n useDraft: useDraft ?? false,\n };\n return (\n <DatabaseProvider config={config}>\n <TablesFetcher>{children}</TablesFetcher>\n </DatabaseProvider>\n );\n}\n\nfunction TablesFetcher({ children }: { children: React.ReactNode }) {\n const databaseConfig = useDatabase();\n\n const cacheKey = JSON.stringify({\n component: \"TablesFetcher\",\n databaseConfig: makeDatabaseCacheKey(databaseConfig),\n });\n const maybeData = usePlasmicQueryData(cacheKey, async () => {\n if (!isDatabaseConfigured(databaseConfig)) {\n return [];\n }\n return await mkApi(databaseConfig).fetchTables();\n });\n const inEditor = !!usePlasmicCanvasContext();\n\n return (\n <TablesProvider tables={maybeData.data}>\n {inEditor && maybeData.error ? (\n <div>CMS Error: {maybeData.error.message}</div>\n ) : (\n children\n )}\n </TablesProvider>\n );\n}\n\ntype TablesContextData = {\n tables?: ApiCmsTable[];\n};\ninterface TableContextData extends TablesContextData {\n table?: string;\n}\n\ninterface RowContextData extends TableContextData {\n row?: ApiCmsRow;\n fieldMeta?: CmsFieldMeta;\n}\n\nfunction isDatabaseConfigured(config?: DatabaseConfig) {\n return config?.databaseId && config?.databaseToken;\n}\n\ninterface CmsQueryRepeaterProps\n extends QueryParams,\n CanvasComponentProps<TableContextData> {\n children: React.ReactNode;\n table: string;\n emptyMessage?: React.ReactNode;\n forceEmptyState?: boolean;\n loadingMessage?: React.ReactNode;\n forceLoadingState?: boolean;\n noLayout?: boolean;\n noAutoRepeat?: boolean;\n className?: string;\n filterField?: string;\n filterValue?: string;\n fields?: string[];\n mode?: \"rows\" | \"count\";\n}\n\nexport const cmsQueryRepeaterMeta: ComponentMeta<CmsQueryRepeaterProps> = {\n name: `${componentPrefix}-query-repeater`,\n displayName: \"CMS Data Fetcher\",\n description:\n \"Fetches CMS data. Repeats `children` slot content for each row fetched. [See tutorial video](https://docs.plasmic.app/learn/plasmic-cms/).\",\n importName: \"CmsQueryRepeater\",\n importPath: modulePath,\n providesData: true,\n defaultStyles: {\n display: \"flex\",\n width: \"stretch\",\n maxWidth: \"100%\",\n flexDirection: \"column\",\n },\n props: {\n children: {\n type: \"slot\",\n isRepeated: true,\n defaultValue: {\n type: \"vbox\",\n children: [\n {\n type: \"component\",\n name: `${componentPrefix}-row-field`,\n },\n ],\n },\n },\n table: {\n type: \"choice\",\n displayName: \"Model\",\n description: \"CMS model (table) to query.\",\n options: (_, ctx) => mkTableOptions(ctx?.tables),\n defaultValueHint: (_, ctx) => ctx?.table,\n },\n useDraft: {\n type: \"boolean\",\n displayName: \"Use drafts?\",\n description: \"If set, also query unpublished content.\",\n defaultValue: false,\n hidden: () => true,\n },\n mode: {\n type: \"choice\",\n options: [\n { label: \"Rows\", value: \"rows\" },\n { label: \"Count\", value: \"count\" },\n ],\n defaultValueHint: \"rows\",\n },\n where: {\n type: \"object\",\n displayName: \"Filter\",\n description:\n \"Filter clause, as a JSON in Mongo query format. Should not be used together with Filter field and Filter value\",\n advanced: true,\n },\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from model schema) to filter by\",\n options: ({ table }, ctx) =>\n mkFieldOptions(ctx?.tables, ctx?.table ?? table, [\n \"number\",\n \"boolean\",\n \"text\",\n \"long-text\",\n \"ref\",\n ]),\n },\n filterValue: {\n type: \"string\",\n displayName: \"Filter value\",\n description: \"Value to filter by, should be of filter field type\",\n },\n orderBy: {\n type: \"choice\",\n displayName: \"Order by\",\n description: \"Field to order by.\",\n options: (_, ctx) =>\n mkFieldOptions(ctx?.tables, ctx?.table, [\n \"number\",\n \"boolean\",\n \"date-time\",\n \"long-text\",\n \"text\",\n ]),\n hidden: (ps) => ps.mode === \"count\",\n },\n desc: {\n type: \"boolean\",\n displayName: \"Sort descending?\",\n description: 'Sort descending by \"Order by\" field.',\n defaultValue: false,\n hidden: (ps) => ps.mode === \"count\",\n },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Maximum number of entries to fetch (0 for unlimited).\",\n defaultValue: 0,\n hidden: (ps) => ps.mode === \"count\",\n },\n offset: {\n type: \"number\",\n displayName: \"Offset\",\n description:\n \"Skips this number of rows in the result set; used in combination with limit to build pagination\",\n hidden: (ps) => ps.mode === \"count\",\n },\n fields: {\n type: \"choice\",\n multiSelect: true,\n displayName: \"Fields\",\n description:\n \"Fields from the CMS model to include with each row; by default, all fields are included\",\n options: ({ table }, ctx) =>\n mkFieldOptions(ctx?.tables, ctx?.table ?? table),\n hidden: (ps) => ps.mode === \"count\",\n },\n emptyMessage: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n value: \"No matching published entries found.\",\n },\n },\n forceEmptyState: {\n type: \"boolean\",\n displayName: \"Force empty state\",\n description: \"If set, will render as if no matching entries were found.\",\n defaultValue: false,\n },\n loadingMessage: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n value: \"Loading...\",\n },\n },\n forceLoadingState: {\n type: \"boolean\",\n displayName: \"Force loading state\",\n description:\n \"If set, will render as if it is waiting for the query to run.\",\n defaultValue: false,\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, CMS Data Loader will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every entry.\",\n defaultValue: false,\n hidden: (ps) => ps.mode === \"count\",\n },\n },\n};\n\nexport function CmsQueryRepeater({\n table,\n children,\n setControlContextData,\n mode,\n where,\n useDraft,\n orderBy,\n desc,\n limit,\n offset,\n emptyMessage,\n forceEmptyState,\n loadingMessage,\n forceLoadingState,\n noLayout,\n noAutoRepeat,\n className,\n filterField,\n filterValue,\n fields,\n}: CmsQueryRepeaterProps) {\n const databaseConfig = useDatabase();\n const tables = useTables();\n\n if (filterField && filterValue) {\n where = {\n [filterField]: filterValue,\n };\n }\n const params = { where, useDraft, orderBy, desc, limit, offset, fields };\n\n if (!table && tables && tables.length > 0) {\n table = tables[0].identifier;\n }\n\n const cacheKey = JSON.stringify({\n component: \"CmsQueryLoader\",\n mode,\n table,\n databaseConfig: makeDatabaseCacheKey(databaseConfig),\n params,\n });\n\n if (tables) {\n // TODO: Only include table if __plasmic_cms_row_{table} exists.\n setControlContextData?.({ tables, table });\n }\n\n const maybeData = usePlasmicQueryData(cacheKey, async () => {\n if (!isDatabaseConfigured(databaseConfig)) {\n throw new Error(`You must specify a CMS ID and API key`);\n }\n if (!table) {\n throw new Error(`You must select a model to query`);\n } else if (tables && !tables.find((t) => t.identifier === table)) {\n throw new Error(`There is no model called \"${table}\"`);\n } else if (mode === \"count\") {\n return mkApi(databaseConfig).count(table, params);\n } else {\n return mkApi(databaseConfig).query(table, params);\n }\n });\n const inEditor = !!usePlasmicCanvasContext();\n if (mode === \"count\") {\n const node = renderMaybeData<number>(\n maybeData,\n () => children,\n { hideIfNotFound: false },\n inEditor,\n loadingMessage,\n forceLoadingState\n );\n return (\n <TableSchemaProvider table={table}>\n <CountProvider\n table={table}\n count={\n typeof maybeData?.data === \"number\" ? maybeData.data : undefined\n }\n >\n {node}\n </CountProvider>\n </TableSchemaProvider>\n );\n } else {\n const node = renderMaybeData<ApiCmsRow[]>(\n maybeData,\n (rows) => {\n if (rows.length === 0 || forceEmptyState) {\n return emptyMessage;\n }\n\n return noAutoRepeat\n ? children\n : rows.map((row, index) => (\n <RowProvider key={index} table={table!} row={row}>\n {repeatedElement(index, children)}\n </RowProvider>\n ));\n },\n { hideIfNotFound: false },\n inEditor,\n loadingMessage,\n forceLoadingState\n );\n return (\n <TableSchemaProvider table={table}>\n <QueryResultProvider\n rows={Array.isArray(maybeData?.data) ? maybeData.data : undefined}\n table={table}\n >\n {noLayout ? <> {node} </> : <div className={className}> {node} </div>}\n </QueryResultProvider>\n </TableSchemaProvider>\n );\n }\n}\n\ninterface CmsRowFieldProps extends CanvasComponentProps<RowContextData> {\n table: string;\n field: string;\n className?: string;\n dateFormat?: string;\n usePlasmicTheme?: boolean;\n themeResetClassName?: string;\n}\n\nexport const cmsRowFieldMeta: ComponentMeta<CmsRowFieldProps> = {\n name: `${componentPrefix}-row-field`,\n displayName: \"CMS Entry Field\",\n importName: \"CmsRowField\",\n importPath: modulePath,\n props: {\n table: {\n type: \"choice\",\n displayName: \"Model\",\n hidden: (props, ctx: TableContextData | null) =>\n (ctx?.tables?.length ?? 0) <= 1 && !props.table,\n helpText: \"Pick model from a CMS Data Fetcher\",\n description:\n \"Usually not used! Only with multiple CMS Data Loaders, use this to choose which to show. Otherwise, go select the CMS Data Loader if you want to load different data.\",\n options: (_, ctx) => mkTableOptions(ctx?.tables),\n defaultValueHint: (_, ctx) => ctx?.table,\n },\n field: {\n type: \"choice\",\n displayName: \"Field\",\n description: \"Field (from model schema) to use.\",\n options: ({ table }, ctx) =>\n mkFieldOptions(ctx?.tables, ctx?.table ?? table, [\n \"number\",\n \"boolean\",\n \"text\",\n \"long-text\",\n \"date-time\",\n \"rich-text\",\n \"image\",\n \"file\",\n \"enum\",\n ]),\n defaultValueHint: (_, ctx) =>\n ctx?.fieldMeta?.name || ctx?.fieldMeta?.identifier,\n },\n dateFormat: {\n type: \"choice\",\n displayName: \"Date Format\",\n hidden: ({ field }, ctx) => {\n if (!ctx) {\n return true;\n }\n const { table: tableIdentifier, tables } = ctx;\n const table = tables?.find((t) => t.identifier === tableIdentifier);\n if (!table) {\n return true;\n }\n const fieldMeta = table.schema.fields.find(\n (f) => f.identifier === field\n );\n if (!fieldMeta) {\n return true;\n }\n return fieldMeta.type !== \"date-time\";\n },\n options: [\n {\n label: \"July 26, 2014\",\n value: \"MMMM D, YYYY\",\n },\n {\n label: \"July 26, 2014 10:02 PM\",\n value: \"MMMM D, YYYY h:mm A\",\n },\n {\n label: \"Jul 26, 2014\",\n value: \"MMM D, YYYY\",\n },\n {\n label: \"Jul 26, 2014 10:02 PM\",\n value: \"MMM D, YYYY h:mm A\",\n },\n {\n label: \"Saturday, July 26, 2014\",\n value: \"dddd, MMMM D, YYYY\",\n },\n {\n label: \"7/26/2014\",\n value: \"M/D/YYYY\",\n },\n {\n label: \"7/26/2014 10:02 PM\",\n value: \"M/D/YYYY h:mm A\",\n },\n {\n label: \"26/7/2014\",\n value: \"D/M/YYYY\",\n },\n {\n label: \"26/7/2014 10:02 PM\",\n value: \"D/M/YYYY h:mm A\",\n },\n {\n label: \"7/26/14\",\n value: \"M/D/YY\",\n },\n {\n label: \"7/26/14 10:02 PM\",\n value: \"M/D/YY h:mm A\",\n },\n {\n label: \"26/7/14\",\n value: \"D/M/YY\",\n },\n {\n label: \"26/7/14 10:02 PM\",\n value: \"D/M/YY h:mm A\",\n },\n ],\n },\n usePlasmicTheme: {\n type: \"boolean\",\n displayName: \"Use Plasmic tag styles?\",\n description: \"For HTML content, use tag styles defined in Plasmic\",\n advanced: true,\n },\n themeResetClassName: {\n type: \"themeResetClass\",\n targetAllTags: true,\n },\n },\n defaultStyles: {\n objectFit: \"cover\",\n },\n};\n\nexport function CmsRowField({\n className,\n table,\n field,\n dateFormat,\n setControlContextData,\n usePlasmicTheme,\n themeResetClassName,\n ...rest\n}: CmsRowFieldProps) {\n const tables = useTablesWithDataLoaded(\"rows\");\n\n const res = useRow(tables, table);\n const unknown = (\n <div className={className} {...rest}>\n Field {table ?? \"Unknown Model\"}.{field ?? \"Unknown Field\"}\n </div>\n );\n const fieldMeta = res\n ? deriveInferredTableField({\n table: res.table,\n tables,\n field,\n typeFilters: [\"text\", \"long-text\", \"rich-text\"],\n })\n : undefined;\n\n if (tables) {\n // TODO: Only include table if __plasmic_cms_row_{table} exists.\n setControlContextData?.({\n tables,\n ...(res && res.row\n ? { table: res.table, row: res.row, fieldMeta: fieldMeta }\n : {}),\n });\n }\n\n if (!res) {\n return unknown;\n }\n\n if (!res.row) {\n return <div className={className}>Error: No CMS Entry found</div>;\n }\n\n if (!fieldMeta) {\n return unknown;\n }\n\n let data = res.row.data?.[fieldMeta.identifier];\n if (!data) {\n return null;\n }\n if (fieldMeta.type === \"date-time\" && dateFormat) {\n data = dayjs(data).format(dateFormat);\n }\n return data\n ? renderValue(data, fieldMeta.type, {\n className: `${usePlasmicTheme ? themeResetClassName : \"\"} ${className}`,\n ...rest,\n })\n : null;\n}\n\ninterface CmsCountProps extends CanvasComponentProps<RowContextData> {\n table: string;\n className?: string;\n}\n\nexport const cmsCountFieldMeta: ComponentMeta<CmsCountProps> = {\n name: `${componentPrefix}-count`,\n displayName: \"CMS Entries Count\",\n importName: \"CmsCount\",\n importPath: modulePath,\n props: {\n table: {\n type: \"choice\",\n displayName: \"Model\",\n hidden: (props, ctx: TableContextData | null) =>\n (ctx?.tables?.length ?? 0) <= 1 && !props.table,\n helpText: \"Pick model from a CMS Data Fetcher\",\n description:\n \"Usually not used! Only with multiple CMS Data Loaders, use this to choose which to show. Otherwise, go select the CMS Data Loader if you want to load different data.\",\n options: (_, ctx) => mkTableOptions(ctx?.tables),\n defaultValueHint: (_, ctx) => ctx?.table,\n },\n },\n};\nexport function CmsCount({\n className,\n table,\n setControlContextData: _,\n ...rest\n}: CmsCountProps) {\n const tables = useTablesWithDataLoaded(\"count\");\n const res = useCount(tables, table);\n const unknown = (\n <div className={className} {...rest}>\n Count: {table ?? \"Unknown Model\"}\n </div>\n );\n if (!res) {\n return unknown;\n }\n\n if (res.count == null) {\n return null;\n } else {\n return (\n <div className={className} {...rest}>\n {new Intl.NumberFormat().format(res.count)}\n </div>\n );\n }\n}\n\nconst DEFAULT_TYPE_FILTERS = [\"text\"];\nfunction deriveInferredTableField(opts: {\n table?: string;\n tables?: ApiCmsTable[];\n field?: string;\n typeFilters?: CmsType[];\n}) {\n const { table, tables, field, typeFilters } = opts;\n if (!table) return undefined;\n const schema = tables?.find((t) => t.identifier === table)?.schema;\n const fieldMeta = field\n ? schema?.fields.find((f) => f.identifier === field)\n : schema?.fields.find((f) =>\n (typeFilters ?? DEFAULT_TYPE_FILTERS).includes(f.type)\n );\n return fieldMeta;\n}\n\nfunction assertNever(_: never): never {\n throw new Error(\"unexpected branch taken\");\n}\n\nfunction renderValue(value: any, type: CmsType, props: { className?: string }) {\n switch (type) {\n case \"number\":\n case \"boolean\":\n case \"text\":\n case \"long-text\":\n case \"date-time\":\n case \"enum\":\n case \"ref\":\n return <div {...props}>{value}</div>;\n case \"rich-text\":\n return (\n <div\n dangerouslySetInnerHTML={{ __html: value }}\n style={{ whiteSpace: \"normal\" }}\n {...props}\n />\n );\n case \"image\":\n if (value && typeof value === \"object\" && value.url && value.imageMeta) {\n return (\n <img\n src={value.url}\n width={value.imageMeta.width}\n height={value.imageMeta.height}\n {...props}\n />\n );\n }\n return null;\n case \"file\":\n if (value && typeof value === \"object\" && value.url && value.name) {\n return (\n <a href={value.url} target=\"_blank\" {...props}>\n {value.name}\n </a>\n );\n }\n return null;\n default:\n assertNever(type);\n }\n}\n\ninterface CmsRowLinkProps extends CanvasComponentProps<RowContextData> {\n table: string;\n field: string;\n hrefProp: string;\n children: React.ReactNode;\n prefix?: string;\n suffix?: string;\n}\n\nexport const cmsRowLinkMeta: ComponentMeta<CmsRowLinkProps> = {\n name: `${componentPrefix}-row-link`,\n displayName: \"CMS Entry Link\",\n importName: \"CmsRowLink\",\n importPath: modulePath,\n props: {\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n tag: \"a\",\n value: \"Link\",\n },\n },\n table: {\n type: \"choice\",\n displayName: \"Model\",\n hidden: (props, ctx: TableContextData | null) =>\n (ctx?.tables?.length ?? 0) <= 1 && !props.table,\n helpText: \"Pick model from a CMS Data Fetcher\",\n description:\n \"Usually not used! Only with multiple CMS Data Loaders, use this to choose which to show. Otherwise, go select the CMS Data Loader if you want to load different data.\",\n options: (_: any, ctx: TableContextData | null) =>\n mkTableOptions(ctx?.tables),\n defaultValueHint: (_, ctx) => ctx?.table,\n },\n field: {\n type: \"choice\",\n displayName: \"Field\",\n description: \"Field (from model schema) to use.\",\n options: ({ table }: CmsRowLinkProps, ctx: TableContextData | null) =>\n mkFieldOptions(ctx?.tables, ctx?.table ?? table),\n defaultValueHint: (_, ctx) =>\n ctx?.fieldMeta?.name || ctx?.fieldMeta?.identifier,\n },\n hrefProp: {\n type: \"string\",\n displayName: '\"href\" prop',\n description: \"Prop to inject into children\",\n defaultValue: \"href\",\n },\n prefix: {\n type: \"string\",\n displayName: \"Optional prefix\",\n description: \"Prefix to prepend to prop value.\",\n hidden: (_, ctx) => ctx?.fieldMeta?.type === \"file\",\n },\n suffix: {\n type: \"string\",\n displayName: \"Optional suffix\",\n description: \"Suffix to append to prop value.\",\n hidden: (_, ctx) => ctx?.fieldMeta?.type === \"file\",\n },\n },\n};\n\nexport function CmsRowLink({\n table,\n field,\n hrefProp,\n children,\n setControlContextData,\n prefix,\n suffix,\n}: CmsRowLinkProps): React.ReactElement | null {\n const tables = useTablesWithDataLoaded(\"rows\");\n\n const res = useRow(tables, table);\n if (!res || !res.row) {\n return <>{children}</>;\n }\n\n const fieldMeta = deriveInferredTableField({\n table: res.table,\n tables,\n field,\n typeFilters: [\"file\", \"text\"],\n });\n\n if (tables) {\n // TODO: Only include table if __plasmic_cms_row_{table} exists.\n setControlContextData?.({\n tables,\n table: res.table,\n row: res.row,\n fieldMeta: fieldMeta,\n });\n }\n if (!fieldMeta) {\n return <>{children}</>;\n }\n\n if (!children) {\n return null;\n }\n\n const value = res.row.data?.[fieldMeta.identifier] || \"\";\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n [hrefProp]:\n fieldMeta.type === \"file\"\n ? value.url\n : prefix || suffix\n ? `${prefix || \"\"}${value}${suffix || \"\"}`\n : value,\n });\n }\n return child;\n });\n\n return <>{childrenWithProps ?? null}</>;\n}\n\ninterface CmsRowImageProps extends CanvasComponentProps<RowContextData> {\n table: string;\n field: string;\n srcProp: string;\n children: React.ReactNode;\n}\n\nexport const cmsRowImageMeta: ComponentMeta<CmsRowImageProps> = {\n name: `${componentPrefix}-row-image`,\n displayName: \"CMS Entry Image\",\n importName: \"CmsRowImage\",\n importPath: modulePath,\n props: {\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"img\",\n src: \"https://studio.plasmic.app/static/img/placeholder-full.png\",\n },\n },\n table: {\n type: \"choice\",\n displayName: \"Model\",\n hidden: (props, ctx: TableContextData | null) =>\n (ctx?.tables?.length ?? 0) <= 1 && !props.table,\n helpText: \"Pick model from a CMS Data Fetcher\",\n description:\n \"Usually not used! Only with multiple CMS Data Loaders, use this to choose which to show. Otherwise, go select the CMS Data Loader if you want to load different data.\",\n options: (_: any, ctx: TableContextData | null) =>\n mkTableOptions(ctx?.tables),\n defaultValueHint: (_, ctx) => ctx?.table,\n },\n field: {\n type: \"choice\",\n displayName: \"Field\",\n description: \"Field (from model schema) to use.\",\n options: ({ table }: CmsRowImageProps, ctx: TableContextData | null) =>\n mkFieldOptions(ctx?.tables, ctx?.table ?? table, [\"image\"]),\n defaultValueHint: (_, ctx) =>\n ctx?.fieldMeta?.name || ctx?.fieldMeta?.identifier,\n },\n srcProp: {\n type: \"string\",\n displayName: 'Image \"src\" prop',\n description: \"Prop to inject into children\",\n defaultValue: \"src\",\n },\n },\n};\n\nexport function CmsRowImage({\n table,\n field,\n srcProp,\n children,\n setControlContextData,\n}: CmsRowImageProps): React.ReactElement | null {\n const tables = useTablesWithDataLoaded(\"rows\");\n\n const res = useRow(tables, table);\n if (!res || !res.row) {\n return <>{children}</>;\n }\n\n const fieldMeta = deriveInferredTableField({\n table: res.table,\n tables,\n field,\n typeFilters: [\"image\"],\n });\n\n if (tables) {\n // TODO: Only include table if __plasmic_cms_row_{table} exists.\n setControlContextData?.({\n tables,\n table: res.table,\n row: res.row,\n fieldMeta: fieldMeta,\n });\n }\n\n if (!fieldMeta) {\n return <>{children}</>;\n }\n\n const value = res.row.data?.[fieldMeta.identifier] || \"\";\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child) && value) {\n if (typeof value === \"object\" && value.url && value.imageMeta) {\n return React.cloneElement(child, {\n [srcProp]: {\n src: value.url,\n fullHeight: value.imageMeta.height,\n fullWidth: value.imageMeta.width,\n },\n });\n }\n return React.cloneElement(child, { [srcProp]: value });\n }\n return child;\n });\n\n return <>{childrenWithProps}</>;\n}\n\ninterface CmsRowFieldValueProps extends CanvasComponentProps<RowContextData> {\n table: string;\n field: string;\n valueProp: string;\n children: React.ReactNode;\n}\n\nexport const cmsRowFieldValueMeta: ComponentMeta<CmsRowFieldValueProps> = {\n name: `${componentPrefix}-row-value`,\n displayName: \"CMS Entry Value\",\n importName: \"CmsRowFieldValue\",\n importPath: modulePath,\n props: {\n children: {\n type: \"slot\",\n },\n table: {\n type: \"choice\",\n displayName: \"Model\",\n hidden: (props, ctx: TableContextData | null) =>\n (ctx?.tables?.length ?? 0) <= 1 && !props.table,\n helpText: \"Pick model from a CMS Data Fetcher\",\n description:\n \"Usually not used! Only with multiple CMS Data Loaders, use this to choose which to show. Otherwise, go select the CMS Data Loader if you want to load different data.\",\n options: (_: any, ctx: TableContextData | null) =>\n mkTableOptions(ctx?.tables),\n defaultValueHint: (_, ctx) => ctx?.table,\n },\n field: {\n type: \"choice\",\n displayName: \"Field\",\n description: \"Field (from model schema) to use.\",\n options: (\n { table }: CmsRowFieldValueProps,\n ctx: TableContextData | null\n ) => mkFieldOptions(ctx?.tables, ctx?.table ?? table),\n defaultValueHint: (_, ctx) =>\n ctx?.fieldMeta?.name || ctx?.fieldMeta?.identifier,\n },\n valueProp: {\n type: \"string\",\n displayName: \"Value prop\",\n description: \"Prop to inject into children as\",\n defaultValue: \"children\",\n },\n },\n};\n\nexport function CmsRowFieldValue({\n table,\n field,\n valueProp,\n children,\n setControlContextData,\n ...rest\n}: CmsRowFieldValueProps): React.ReactElement | null {\n const tables = useTablesWithDataLoaded(\"rows\");\n\n const res = useRow(tables, table);\n if (!res || !res.row) {\n return <>{children}</>;\n }\n\n const fieldMeta = deriveInferredTableField({\n table: res.table,\n tables,\n field,\n typeFilters: [\"text\"],\n });\n\n if (tables) {\n // TODO: Only include table if __plasmic_cms_row_{table} exists.\n setControlContextData?.({\n tables,\n table: res.table,\n row: res.row,\n fieldMeta: fieldMeta,\n });\n }\n\n if (!fieldMeta) {\n return <>{children}</>;\n }\n\n const value = res.row.data?.[fieldMeta.identifier] || \"\";\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, { ...rest, [valueProp]: value });\n }\n return child;\n });\n\n return <>{childrenWithProps}</>;\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext, {\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n CmsCount,\n cmsCountFieldMeta,\n CmsCredentialsProvider,\n cmsCredentialsProviderMeta,\n CmsQueryRepeater,\n cmsQueryRepeaterMeta,\n CmsRowField,\n cmsRowFieldMeta,\n CmsRowFieldValue,\n cmsRowFieldValueMeta,\n CmsRowImage,\n cmsRowImageMeta,\n CmsRowLink,\n cmsRowLinkMeta,\n} from \"./components\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n //const registerContext = loader?.registerContext ?? hostRegisterContext;\n //registerContext(CmsDataProvider, cmsDataProviderMeta);\n\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n const _registerGlobalContext = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: GlobalContextMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerGlobalContext(Component, defaultMeta);\n } else {\n registerGlobalContext(Component, defaultMeta);\n }\n };\n\n _registerGlobalContext(CmsCredentialsProvider, cmsCredentialsProviderMeta);\n _registerComponent(CmsQueryRepeater, cmsQueryRepeaterMeta);\n _registerComponent(CmsRowField, cmsRowFieldMeta);\n _registerComponent(CmsRowLink, cmsRowLinkMeta);\n _registerComponent(CmsRowImage, cmsRowImageMeta);\n _registerComponent(CmsRowFieldValue, cmsRowFieldValueMeta);\n _registerComponent(CmsCount, cmsCountFieldMeta);\n}\n\nexport * from \"./api\";\nexport * from \"./components\";\n"],"names":["queryParamsToApi","params","where","limit","offset","order","orderBy","field","dir","desc","undefined","fields","HttpError","_Error","_inheritsLoose","status","message","_this","call","_wrapNativeSuper","Error","API","config","_proto","prototype","get","_get","_asyncToGenerator","_regeneratorRuntime","mark","_callee","endpoint","url","URL","host","databaseId","fixedParams","Object","keys","reduce","newObj","key","value","search","URLSearchParams","toString","_context","next","fetch","method","headers","accept","databaseToken","mode","response","sent","text","json","JSON","parse","_json$error","error","_unused","abrupt","stop","_x","_x2","apply","arguments","fetchTables","_fetchTables","_callee2","wrap","_callee2$","_context2","prev","tables","t0","console","useDraftForTable","table","Array","isArray","useDraft","includes","query","_query","_callee3","_context3","q","stringify","draft","Number","locale","rows","_x3","_x4","count","_count","_callee4","_context4","_x5","_x6","mkApi","contextPrefix","databaseContextKey","tablesContextKey","tableSchemaContextKey","collectionResultSuffix","mkQueryContextKey","capitalizeFirst","itemContextSuffix","countContextSuffix","modeContextSuffix","mkRowContextKey","mkCountContextKey","mkModeContextKey","str","_str$","toUpperCase","slice","useDatabase","useSelector","makeDatabaseCacheKey","rest","_objectWithoutPropertiesLoose","_excluded","DatabaseProvider","_ref","children","React","DataProvider","name","data","hidden","useTables","TablesProvider","_ref2","TableSchemaProvider","_ref3","schema","length","_tables$","_tables$find","find","t","identifier","getClosestMatchingKeysBy","env","pred","concat","reverse","filter","QueryResultProvider","_ref4","useTablesWithDataLoaded","useDataEnv","matchingKeys","endsWith","some","deriveTableId","useRow","row","useCount","RowProvider","_ref5","CountProvider","_ref6","mkTableOptions","map","label","mkFieldOptions","tableIdentifier","types","f","type","options","option","push","modulePath","componentPrefix","renderMaybeData","maybeData","renderFn","loaderProps","inEditor","loadingMessage","forceLoadingState","hideIfNotFound","defaultHost","cmsCredentialsProviderMeta","displayName","description","importName","importPath","providesData","props","defaultValue","defaultValueHint","advanced","CmsCredentialsProvider","TablesFetcher","databaseConfig","cacheKey","component","usePlasmicQueryData","_callee$","isDatabaseConfigured","usePlasmicCanvasContext","cmsQueryRepeaterMeta","defaultStyles","display","width","maxWidth","flexDirection","isRepeated","_","ctx","filterField","_ctx$table","filterValue","ps","multiSelect","_ctx$table2","emptyMessage","forceEmptyState","noLayout","noAutoRepeat","CmsQueryRepeater","setControlContextData","className","_where","node","index","repeatedElement","cmsRowFieldMeta","_ctx$tables$length","_ctx$tables","helpText","_ref8","_ctx$table3","_ctx$fieldMeta","_ctx$fieldMeta2","fieldMeta","dateFormat","_ref9","usePlasmicTheme","themeResetClassName","targetAllTags","objectFit","CmsRowField","_ref10","res","unknown","deriveInferredTableField","typeFilters","_extends","_res$row$data","dayjs","format","renderValue","cmsCountFieldMeta","_ctx$tables$length2","_ctx$tables2","CmsCount","_ref11","_excluded2","Intl","NumberFormat","DEFAULT_TYPE_FILTERS","opts","assertNever","dangerouslySetInnerHTML","__html","style","whiteSpace","imageMeta","src","height","href","target","cmsRowLinkMeta","tag","_ctx$tables$length3","_ctx$tables3","_ref12","_ctx$table4","_ctx$fieldMeta3","_ctx$fieldMeta4","hrefProp","prefix","_ctx$fieldMeta5","suffix","_ctx$fieldMeta6","CmsRowLink","_ref13","_res$row$data2","childrenWithProps","Children","child","isValidElement","_React$cloneElement","cloneElement","cmsRowImageMeta","_ctx$tables$length4","_ctx$tables4","_ref14","_ctx$table5","_ctx$fieldMeta7","_ctx$fieldMeta8","srcProp","CmsRowImage","_ref15","_res$row$data3","_React$cloneElement3","_React$cloneElement2","fullHeight","fullWidth","cmsRowFieldValueMeta","_ctx$tables$length5","_ctx$tables5","_ref16","_ctx$table6","_ctx$fieldMeta9","_ctx$fieldMeta10","valueProp","CmsRowFieldValue","_ref17","_excluded3","_res$row$data4","_extends2","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent","_registerGlobalContext","registerGlobalContext"],"mappings":"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"}
1
+ {"version":3,"file":"plasmic-cms.cjs.development.js","sources":["../src/api.ts","../src/context.tsx","../src/util.ts","../src/components.tsx","../src/index.tsx"],"sourcesContent":["import { ApiCmsQuery, ApiCmsRow, ApiCmsTable } from \"./schema\";\n\nexport interface DatabaseConfig {\n host: string;\n databaseId: string;\n databaseToken: string;\n locale: string;\n useDraft: boolean | string[];\n}\n\nexport interface QueryParams {\n useDraft?: boolean;\n where?: any;\n orderBy?: string;\n desc?: boolean;\n limit?: number;\n offset?: number;\n fields?: string[];\n}\n\nfunction queryParamsToApi(params: QueryParams): ApiCmsQuery {\n return {\n where: params.where,\n limit: params.limit,\n offset: params.offset,\n order: params.orderBy\n ? [\n {\n field: params.orderBy,\n dir: params.desc ? \"desc\" : \"asc\",\n },\n ]\n : undefined,\n fields: params.fields,\n };\n}\n\nexport class HttpError extends Error {\n constructor(public status: number, message: string) {\n super(message);\n }\n}\n\nexport class API {\n constructor(private config: DatabaseConfig) {}\n\n async get(endpoint: string, params: any = {}) {\n const url = new URL(\n `${this.config.host}/api/v1/cms/databases/${this.config.databaseId}${endpoint}`\n );\n const fixedParams = Object.keys(params).reduce((newObj, key) => {\n const value = params[key];\n if (value != null) {\n newObj[key] = value;\n }\n return newObj;\n }, {} as any);\n url.search = new URLSearchParams(fixedParams).toString();\n const response = await fetch(url.toString(), {\n method: \"GET\",\n headers: {\n accept: \"*/*\",\n \"x-plasmic-api-cms-tokens\": `${this.config.databaseId}:${this.config.databaseToken}`,\n },\n mode: \"cors\",\n });\n\n if (response.status !== 200) {\n let message = await response.text();\n try {\n const json = JSON.parse(message);\n if (json.error?.message) {\n message = json.error.message;\n }\n } catch {\n // ignored\n }\n throw new HttpError(response.status, message);\n }\n\n return await response.json();\n }\n\n async fetchTables(): Promise<ApiCmsTable[]> {\n try {\n const response = await this.get(``);\n return response.tables;\n } catch (e) {\n console.error(e);\n throw e;\n }\n }\n\n private useDraftForTable(table: string) {\n if (Array.isArray(this.config.useDraft)) {\n return this.config.useDraft.includes(table);\n } else {\n return this.config.useDraft;\n }\n }\n\n async query(table: string, params: QueryParams = {}): Promise<ApiCmsRow[]> {\n try {\n const response = await this.get(`/tables/${table}/query`, {\n q: JSON.stringify(queryParamsToApi(params)),\n draft: Number(this.useDraftForTable(table) || params.useDraft),\n locale: this.config.locale,\n });\n return response.rows;\n } catch (e) {\n console.error(e);\n throw e;\n }\n }\n\n async count(\n table: string,\n params: Pick<QueryParams, \"where\" | \"useDraft\"> = {}\n ): Promise<number> {\n try {\n const response = await this.get(`/tables/${table}/count`, {\n q: JSON.stringify(queryParamsToApi(params)),\n draft: Number(this.useDraftForTable(table) || params.useDraft),\n });\n return response.count;\n } catch (e) {\n console.error(e);\n throw e;\n }\n }\n}\n\nexport function mkApi(config: DatabaseConfig | undefined) {\n if (!config) {\n throw new Error(\"Component must be wrapped in 'CMS Data Provider'.\");\n }\n\n return new API(config);\n}\n","import {\n DataDict,\n DataProvider,\n useDataEnv,\n useSelector,\n} from \"@plasmicapp/host\";\nimport React from \"react\";\nimport { DatabaseConfig } from \"./api\";\nimport { ApiCmsRow, ApiCmsTable } from \"./schema\";\n\nconst contextPrefix = \"plasmicCms\";\nconst databaseContextKey = `${contextPrefix}Database`;\nconst tablesContextKey = `${contextPrefix}Tables`;\nconst tableSchemaContextKey = `${contextPrefix}TableSchema`;\nconst collectionResultSuffix = `Collection`;\nexport const mkQueryContextKey = (table: string) =>\n `${contextPrefix}${capitalizeFirst(table)}${collectionResultSuffix}`;\nconst itemContextSuffix = `Item`;\nconst countContextSuffix = `Count`;\nconst modeContextSuffix = `Mode`;\nconst mkRowContextKey = (table: string) =>\n `${contextPrefix}${capitalizeFirst(table)}${itemContextSuffix}`;\nconst mkCountContextKey = (table: string) =>\n `${contextPrefix}${capitalizeFirst(table)}${countContextSuffix}`;\nconst mkModeContextKey = (table: string) =>\n `${contextPrefix}${capitalizeFirst(table)}${modeContextSuffix}`;\n\nfunction capitalizeFirst(str: string): string {\n return str[0]?.toUpperCase() + str.slice(1);\n}\n\nexport function useDatabase() {\n return useSelector(databaseContextKey) as DatabaseConfig | undefined;\n}\n\nexport function makeDatabaseCacheKey(config: DatabaseConfig | undefined) {\n if (!config) {\n return null;\n }\n const { databaseToken, ...rest } = config;\n return JSON.stringify(rest);\n}\n\nexport function DatabaseProvider({\n config,\n children,\n}: {\n config: DatabaseConfig;\n children?: React.ReactNode;\n}) {\n return (\n <DataProvider name={databaseContextKey} data={config} hidden={true}>\n {children}\n </DataProvider>\n );\n}\n\nexport function useTables() {\n return useSelector(tablesContextKey) as ApiCmsTable[] | undefined;\n}\n\nexport function TablesProvider({\n children,\n tables,\n}: {\n children?: React.ReactNode;\n tables?: ApiCmsTable[];\n}) {\n return (\n <DataProvider name={tablesContextKey} data={tables} hidden={true}>\n {children}\n </DataProvider>\n );\n}\n\nexport function TableSchemaProvider({\n children,\n table,\n}: {\n children?: React.ReactNode;\n table?: string | undefined;\n}) {\n const tables = useTables();\n\n let schema;\n if (tables && tables?.length > 0) {\n if (!table) {\n schema = tables[0]?.schema;\n } else {\n schema = tables?.find((t) => t?.identifier === table)?.schema;\n }\n }\n return (\n <DataProvider name={tableSchemaContextKey} data={schema}>\n {children}\n </DataProvider>\n );\n}\n\nexport function useQueryResults(table?: string) {\n const env = useDataEnv();\n const tables = useTables();\n\n if (!env) {\n return undefined;\n }\n\n if (table) {\n return {\n table,\n rows: (env[mkQueryContextKey(table)] ?? []) as ApiCmsRow[],\n };\n }\n if (!tables) {\n return undefined;\n }\n\n const matchingKeys = getClosestMatchingKeys(env, collectionResultSuffix);\n for (const key of matchingKeys) {\n const inferredTable = tables.find(\n (t) => mkQueryContextKey(t.identifier) === key\n );\n if (inferredTable) {\n return {\n table: inferredTable.identifier,\n rows: (env[key] ?? []) as ApiCmsRow[],\n };\n }\n }\n return undefined;\n}\n\nfunction getClosestMatchingKeys(env: DataDict, suffix: string) {\n return [...Object.keys(env).reverse()].filter((k) => k.endsWith(suffix));\n}\n\nfunction getClosestMatchingKeysBy(\n env: DataDict,\n pred: (str: string) => boolean\n) {\n return [...Object.keys(env).reverse()].filter((key) => pred(key));\n}\n\nexport function QueryResultProvider({\n children,\n table,\n rows,\n hidden,\n}: {\n children?: React.ReactNode;\n table: string | undefined;\n rows: ApiCmsRow[] | undefined;\n hidden?: boolean;\n}) {\n return (\n <DataProvider\n name={table ? mkModeContextKey(table) : undefined}\n data=\"rows\"\n hidden\n >\n <DataProvider\n name={table ? mkQueryContextKey(table) : undefined}\n data={rows}\n hidden={hidden}\n >\n {children}\n </DataProvider>\n </DataProvider>\n );\n}\n\nexport function useTablesWithDataLoaded(mode: \"rows\" | \"count\" | undefined) {\n const env = useDataEnv();\n const tables = useTables();\n\n if (!env) {\n return undefined;\n }\n\n if (!tables) {\n return undefined;\n }\n\n const matchingKeys = getClosestMatchingKeysBy(env, (key) => {\n if (mode === \"rows\") {\n return key.endsWith(itemContextSuffix);\n } else if (mode === \"count\") {\n return key.endsWith(countContextSuffix);\n } else {\n return (\n key.endsWith(itemContextSuffix) || key.endsWith(countContextSuffix)\n );\n }\n });\n\n return tables.filter((table) =>\n matchingKeys.some((key) => {\n if (mode === \"rows\") {\n return mkRowContextKey(table.identifier) === key;\n } else if (mode === \"count\") {\n return mkCountContextKey(table.identifier) === key;\n } else {\n return (\n mkRowContextKey(table.identifier) === key ||\n mkCountContextKey(table.identifier) === key\n );\n }\n })\n );\n}\n\nfunction deriveTableId(tables?: ApiCmsTable[], table?: string) {\n if (!table && tables && tables.length > 0) {\n table = tables[0].identifier;\n }\n return table;\n}\n\nexport function useRow(tables?: ApiCmsTable[], table?: string) {\n const env = useDataEnv();\n\n if (!env) {\n return undefined;\n }\n\n table = deriveTableId(tables, table);\n\n if (table) {\n return {\n table,\n row: env[mkRowContextKey(table)] as ApiCmsRow | undefined,\n };\n }\n\n return undefined;\n}\n\nexport function useCount(tables?: ApiCmsTable[], table?: string) {\n const env = useDataEnv();\n\n if (!env) {\n return undefined;\n }\n\n table = deriveTableId(tables, table);\n\n if (table) {\n return {\n table,\n count: env[mkCountContextKey(table)] as number | undefined,\n };\n }\n\n return undefined;\n}\n\nexport function RowProvider({\n children,\n table,\n row,\n}: {\n children?: React.ReactNode;\n table: string;\n row: ApiCmsRow;\n}) {\n return (\n <DataProvider name={mkRowContextKey(table)} data={row}>\n {children}\n </DataProvider>\n );\n}\n\nexport function CountProvider({\n children,\n table,\n count,\n}: {\n children?: React.ReactNode;\n table: string | undefined;\n count: number | undefined;\n}) {\n return (\n <DataProvider\n name={table ? mkModeContextKey(table) : undefined}\n data=\"count\"\n hidden\n >\n <DataProvider\n name={table ? mkCountContextKey(table) : undefined}\n data={count}\n >\n {children}\n </DataProvider>\n </DataProvider>\n );\n}\n","import { ApiCmsTable, CmsType } from \"./schema\";\n\ntype ValueLabelPair = {\n value: string;\n label: string;\n};\n\nexport function mkTableOptions(\n tables: ApiCmsTable[] | undefined\n): ValueLabelPair[] {\n if (!tables) {\n return [];\n }\n\n return tables.map((table) => ({\n value: table.identifier,\n label: table.name,\n }));\n}\n\nexport function mkFieldOptions(\n tables: ApiCmsTable[] | undefined,\n tableIdentifier: string | undefined,\n types?: CmsType[]\n): ValueLabelPair[] {\n if (!tables) {\n return [];\n }\n\n const table = tables.find((t) => t.identifier === tableIdentifier);\n if (!table) {\n return [];\n }\n\n let fields = table.schema.fields;\n if (types) {\n fields = fields.filter((f) => types.includes(f.type));\n }\n const options = fields.map((f) => ({\n value: f.identifier,\n label: f.name || f.identifier,\n }));\n if (!options.some((option) => option.value === \"_id\")) {\n options.push({\n label: \"System-assigned ID\",\n value: \"_id\",\n });\n }\n\n return options;\n}\n","import { repeatedElement, usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport {\n CanvasComponentProps,\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { GlobalContextMeta } from \"@plasmicapp/host/registerGlobalContext\";\nimport { usePlasmicQueryData } from \"@plasmicapp/query\";\nimport dayjs from \"dayjs\";\nimport React from \"react\";\nimport { DatabaseConfig, HttpError, mkApi, QueryParams } from \"./api\";\nimport {\n CountProvider,\n DatabaseProvider,\n makeDatabaseCacheKey,\n QueryResultProvider,\n RowProvider,\n TablesProvider,\n useCount,\n useDatabase,\n useRow,\n useTables,\n useTablesWithDataLoaded,\n TableSchemaProvider,\n} from \"./context\";\nimport {\n ApiCmsRow,\n ApiCmsTable,\n CmsFieldMeta,\n CmsType,\n CmsMetaType,\n} from \"./schema\";\nimport { mkFieldOptions, mkTableOptions } from \"./util\";\n\nconst modulePath = \"@plasmicpkgs/plasmic-cms\";\nconst componentPrefix = \"hostless-plasmic-cms\";\n\ninterface FetcherComponentProps {\n hideIfNotFound?: boolean;\n}\n\nfunction renderMaybeData<T>(\n maybeData: ReturnType<typeof usePlasmicQueryData>,\n renderFn: (data: T) => JSX.Element | any,\n loaderProps: FetcherComponentProps,\n inEditor: boolean,\n loadingMessage?: React.ReactNode,\n forceLoadingState?: boolean\n): React.ReactElement | null {\n if (\"error\" in maybeData) {\n const error = maybeData.error;\n if (!inEditor) {\n return <>{loadingMessage ?? <div>Loading...</div>}</>;\n }\n if (error && error instanceof HttpError && error.status === 404) {\n if (loaderProps.hideIfNotFound) {\n return null;\n } else {\n return <div>Error: Data not found</div>;\n }\n } else {\n return <div>Error: {error?.message}</div>;\n }\n }\n if (!(\"data\" in maybeData) || forceLoadingState) {\n return <>{loadingMessage ?? <div>Loading...</div>}</>;\n }\n return renderFn(maybeData.data as T);\n}\n\ninterface CmsCredentialsProviderProps extends DatabaseConfig {\n children?: React.ReactNode;\n}\n\nconst defaultHost = \"https://data.plasmic.app\";\n\nexport const cmsCredentialsProviderMeta: GlobalContextMeta<CmsCredentialsProviderProps> =\n {\n name: `${componentPrefix}-credentials-provider`,\n displayName: \"CMS Credentials Provider\",\n description: `\nFind (or create) your CMS in the [dashboard](https://studio.plasmic.app), and go to its Settings view for the ID and token.\n\n[See tutorial video](https://docs.plasmic.app/learn/plasmic-cms/).`,\n importName: \"CmsCredentialsProvider\",\n importPath: modulePath,\n providesData: true,\n props: {\n host: {\n type: \"string\",\n displayName: \"Studio URL\",\n description: `The default host for use in production is ${defaultHost}.`,\n defaultValue: defaultHost,\n defaultValueHint: defaultHost,\n advanced: true,\n },\n databaseId: {\n type: \"string\",\n displayName: \"CMS ID\",\n description:\n \"The ID of the CMS (database) to use. (Can get on the CMS settings page)\",\n },\n databaseToken: {\n type: \"string\",\n displayName: \"CMS Public Token\",\n description:\n \"The Public Token of the CMS (database) you are using. (Can get on the CMS settings page)\",\n },\n locale: {\n type: \"string\",\n displayName: \"Locale\",\n description:\n \"The locale to use for localized values, leave empty for the default locale.\",\n },\n },\n };\n\nexport function CmsCredentialsProvider({\n children,\n databaseId,\n databaseToken,\n host,\n locale,\n useDraft,\n}: CmsCredentialsProviderProps) {\n const config: DatabaseConfig = {\n databaseId,\n databaseToken,\n locale,\n host: host || defaultHost,\n useDraft: useDraft ?? false,\n };\n return (\n <DatabaseProvider config={config}>\n <TablesFetcher>{children}</TablesFetcher>\n </DatabaseProvider>\n );\n}\n\nfunction TablesFetcher({ children }: { children: React.ReactNode }) {\n const databaseConfig = useDatabase();\n\n const cacheKey = JSON.stringify({\n component: \"TablesFetcher\",\n databaseConfig: makeDatabaseCacheKey(databaseConfig),\n });\n const maybeData = usePlasmicQueryData(cacheKey, async () => {\n if (!isDatabaseConfigured(databaseConfig)) {\n return [];\n }\n return await mkApi(databaseConfig).fetchTables();\n });\n const inEditor = !!usePlasmicCanvasContext();\n\n return (\n <TablesProvider tables={maybeData.data}>\n {inEditor && maybeData.error ? (\n <div>CMS Error: {maybeData.error.message}</div>\n ) : (\n children\n )}\n </TablesProvider>\n );\n}\n\ntype TablesContextData = {\n tables?: ApiCmsTable[];\n};\ninterface TableContextData extends TablesContextData {\n table?: string;\n}\n\ninterface RowContextData extends TableContextData {\n row?: ApiCmsRow;\n fieldMeta?: CmsFieldMeta;\n}\n\nfunction isDatabaseConfigured(config?: DatabaseConfig) {\n return config?.databaseId && config?.databaseToken;\n}\n\ninterface CmsQueryRepeaterProps\n extends QueryParams,\n CanvasComponentProps<TableContextData> {\n children: React.ReactNode;\n table: string;\n emptyMessage?: React.ReactNode;\n forceEmptyState?: boolean;\n loadingMessage?: React.ReactNode;\n forceLoadingState?: boolean;\n noLayout?: boolean;\n noAutoRepeat?: boolean;\n className?: string;\n filterField?: string;\n filterValue?: string;\n fields?: string[];\n mode?: \"rows\" | \"count\";\n}\n\nexport const cmsQueryRepeaterMeta: ComponentMeta<CmsQueryRepeaterProps> = {\n name: `${componentPrefix}-query-repeater`,\n displayName: \"CMS Data Fetcher\",\n description:\n \"Fetches CMS data. Repeats `children` slot content for each row fetched. [See tutorial video](https://docs.plasmic.app/learn/plasmic-cms/).\",\n importName: \"CmsQueryRepeater\",\n importPath: modulePath,\n providesData: true,\n defaultStyles: {\n display: \"flex\",\n width: \"stretch\",\n maxWidth: \"100%\",\n flexDirection: \"column\",\n },\n props: {\n children: {\n type: \"slot\",\n isRepeated: true,\n defaultValue: {\n type: \"vbox\",\n children: [\n {\n type: \"component\",\n name: `${componentPrefix}-row-field`,\n },\n ],\n },\n },\n table: {\n type: \"choice\",\n displayName: \"Model\",\n description: \"CMS model (table) to query.\",\n options: (_, ctx) => mkTableOptions(ctx?.tables),\n defaultValueHint: (_, ctx) => ctx?.table,\n },\n useDraft: {\n type: \"boolean\",\n displayName: \"Use drafts?\",\n description: \"If set, also query unpublished content.\",\n defaultValue: false,\n hidden: () => true,\n },\n mode: {\n type: \"choice\",\n options: [\n { label: \"Rows\", value: \"rows\" },\n { label: \"Count\", value: \"count\" },\n ],\n defaultValueHint: \"rows\",\n },\n where: {\n type: \"object\",\n displayName: \"Filter\",\n description:\n \"Filter clause, as a JSON in Mongo query format. Should not be used together with Filter field and Filter value\",\n advanced: true,\n },\n filterField: {\n type: \"choice\",\n displayName: \"Filter field\",\n description: \"Field (from model schema) to filter by\",\n options: ({ table }, ctx) =>\n mkFieldOptions(ctx?.tables, ctx?.table ?? table, [\n CmsMetaType.NUMBER,\n CmsMetaType.BOOLEAN,\n CmsMetaType.TEXT,\n CmsMetaType.LONG_TEXT,\n CmsMetaType.REF,\n ]),\n },\n filterValue: {\n type: \"string\",\n displayName: \"Filter value\",\n description: \"Value to filter by, should be of filter field type\",\n },\n orderBy: {\n type: \"choice\",\n displayName: \"Order by\",\n description: \"Field to order by.\",\n options: (_, ctx) =>\n mkFieldOptions(ctx?.tables, ctx?.table, [\n CmsMetaType.NUMBER,\n CmsMetaType.BOOLEAN,\n CmsMetaType.DATE_TIME,\n CmsMetaType.LONG_TEXT,\n CmsMetaType.TEXT,\n ]),\n hidden: (ps) => ps.mode === \"count\",\n },\n desc: {\n type: \"boolean\",\n displayName: \"Sort descending?\",\n description: 'Sort descending by \"Order by\" field.',\n defaultValue: false,\n hidden: (ps) => ps.mode === \"count\",\n },\n limit: {\n type: \"number\",\n displayName: \"Limit\",\n description: \"Maximum number of entries to fetch (0 for unlimited).\",\n defaultValue: 0,\n hidden: (ps) => ps.mode === \"count\",\n },\n offset: {\n type: \"number\",\n displayName: \"Offset\",\n description:\n \"Skips this number of rows in the result set; used in combination with limit to build pagination\",\n hidden: (ps) => ps.mode === \"count\",\n },\n fields: {\n type: \"choice\",\n multiSelect: true,\n displayName: \"Fields\",\n description:\n \"Fields from the CMS model to include with each row; by default, all fields are included\",\n options: ({ table }, ctx) =>\n mkFieldOptions(ctx?.tables, ctx?.table ?? table),\n hidden: (ps) => ps.mode === \"count\",\n },\n emptyMessage: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n value: \"No matching published entries found.\",\n },\n },\n forceEmptyState: {\n type: \"boolean\",\n displayName: \"Force empty state\",\n description: \"If set, will render as if no matching entries were found.\",\n defaultValue: false,\n },\n loadingMessage: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n value: \"Loading...\",\n },\n },\n forceLoadingState: {\n type: \"boolean\",\n displayName: \"Force loading state\",\n description:\n \"If set, will render as if it is waiting for the query to run.\",\n defaultValue: false,\n },\n noLayout: {\n type: \"boolean\",\n displayName: \"No layout\",\n description:\n \"When set, CMS Data Loader will not layout its children; instead, the layout set on its parent element will be used. Useful if you want to set flex gap or control container tag type.\",\n defaultValue: false,\n },\n noAutoRepeat: {\n type: \"boolean\",\n displayName: \"No auto-repeat\",\n description: \"Do not automatically repeat children for every entry.\",\n defaultValue: false,\n hidden: (ps) => ps.mode === \"count\",\n },\n },\n};\n\nexport function CmsQueryRepeater({\n table,\n children,\n setControlContextData,\n mode,\n where,\n useDraft,\n orderBy,\n desc,\n limit,\n offset,\n emptyMessage,\n forceEmptyState,\n loadingMessage,\n forceLoadingState,\n noLayout,\n noAutoRepeat,\n className,\n filterField,\n filterValue,\n fields,\n}: CmsQueryRepeaterProps) {\n const databaseConfig = useDatabase();\n const tables = useTables();\n\n if (filterField && filterValue) {\n where = {\n [filterField]: filterValue,\n };\n }\n const params = { where, useDraft, orderBy, desc, limit, offset, fields };\n\n if (!table && tables && tables.length > 0) {\n table = tables[0].identifier;\n }\n\n const cacheKey = JSON.stringify({\n component: \"CmsQueryLoader\",\n mode,\n table,\n databaseConfig: makeDatabaseCacheKey(databaseConfig),\n params,\n });\n\n if (tables) {\n // TODO: Only include table if __plasmic_cms_row_{table} exists.\n setControlContextData?.({ tables, table });\n }\n\n const maybeData = usePlasmicQueryData(cacheKey, async () => {\n if (!isDatabaseConfigured(databaseConfig)) {\n throw new Error(`You must specify a CMS ID and API key`);\n }\n if (!table) {\n throw new Error(`You must select a model to query`);\n } else if (tables && !tables.find((t) => t.identifier === table)) {\n throw new Error(`There is no model called \"${table}\"`);\n } else if (mode === \"count\") {\n return mkApi(databaseConfig).count(table, params);\n } else {\n return mkApi(databaseConfig).query(table, params);\n }\n });\n const inEditor = !!usePlasmicCanvasContext();\n if (mode === \"count\") {\n const node = renderMaybeData<number>(\n maybeData,\n () => children,\n { hideIfNotFound: false },\n inEditor,\n loadingMessage,\n forceLoadingState\n );\n return (\n <TableSchemaProvider table={table}>\n <CountProvider\n table={table}\n count={\n typeof maybeData?.data === \"number\" ? maybeData.data : undefined\n }\n >\n {node}\n </CountProvider>\n </TableSchemaProvider>\n );\n } else {\n const node = renderMaybeData<ApiCmsRow[]>(\n maybeData,\n (rows) => {\n if (rows.length === 0 || forceEmptyState) {\n return emptyMessage;\n }\n\n return noAutoRepeat\n ? children\n : rows.map((row, index) => (\n <RowProvider key={index} table={table!} row={row}>\n {repeatedElement(index, children)}\n </RowProvider>\n ));\n },\n { hideIfNotFound: false },\n inEditor,\n loadingMessage,\n forceLoadingState\n );\n return (\n <TableSchemaProvider table={table}>\n <QueryResultProvider\n rows={Array.isArray(maybeData?.data) ? maybeData.data : undefined}\n table={table}\n >\n {noLayout ? <> {node} </> : <div className={className}> {node} </div>}\n </QueryResultProvider>\n </TableSchemaProvider>\n );\n }\n}\n\ninterface CmsRowFieldProps extends CanvasComponentProps<RowContextData> {\n table: string;\n field: string;\n className?: string;\n dateFormat?: string;\n usePlasmicTheme?: boolean;\n themeResetClassName?: string;\n}\n\nexport const cmsRowFieldMeta: ComponentMeta<CmsRowFieldProps> = {\n name: `${componentPrefix}-row-field`,\n displayName: \"CMS Entry Field\",\n importName: \"CmsRowField\",\n importPath: modulePath,\n props: {\n table: {\n type: \"choice\",\n displayName: \"Model\",\n hidden: (props, ctx: TableContextData | null) =>\n (ctx?.tables?.length ?? 0) <= 1 && !props.table,\n helpText: \"Pick model from a CMS Data Fetcher\",\n description:\n \"Usually not used! Only with multiple CMS Data Loaders, use this to choose which to show. Otherwise, go select the CMS Data Loader if you want to load different data.\",\n options: (_, ctx) => mkTableOptions(ctx?.tables),\n defaultValueHint: (_, ctx) => ctx?.table,\n },\n field: {\n type: \"choice\",\n displayName: \"Field\",\n description: \"Field (from model schema) to use.\",\n options: ({ table }, ctx) =>\n mkFieldOptions(ctx?.tables, ctx?.table ?? table, [\n CmsMetaType.NUMBER,\n CmsMetaType.BOOLEAN,\n CmsMetaType.TEXT,\n CmsMetaType.LONG_TEXT,\n CmsMetaType.DATE_TIME,\n CmsMetaType.RICH_TEXT,\n CmsMetaType.IMAGE,\n CmsMetaType.FILE,\n CmsMetaType.ENUM,\n ]),\n defaultValueHint: (_, ctx) =>\n ctx?.fieldMeta?.name || ctx?.fieldMeta?.identifier,\n },\n dateFormat: {\n type: \"choice\",\n displayName: \"Date Format\",\n hidden: ({ field }, ctx) => {\n if (!ctx) {\n return true;\n }\n const { table: tableIdentifier, tables } = ctx;\n const table = tables?.find((t) => t.identifier === tableIdentifier);\n if (!table) {\n return true;\n }\n const fieldMeta = table.schema.fields.find(\n (f) => f.identifier === field\n );\n if (!fieldMeta) {\n return true;\n }\n return fieldMeta.type !== CmsMetaType.DATE_TIME;\n },\n options: [\n {\n label: \"July 26, 2014\",\n value: \"MMMM D, YYYY\",\n },\n {\n label: \"July 26, 2014 10:02 PM\",\n value: \"MMMM D, YYYY h:mm A\",\n },\n {\n label: \"Jul 26, 2014\",\n value: \"MMM D, YYYY\",\n },\n {\n label: \"Jul 26, 2014 10:02 PM\",\n value: \"MMM D, YYYY h:mm A\",\n },\n {\n label: \"Saturday, July 26, 2014\",\n value: \"dddd, MMMM D, YYYY\",\n },\n {\n label: \"7/26/2014\",\n value: \"M/D/YYYY\",\n },\n {\n label: \"7/26/2014 10:02 PM\",\n value: \"M/D/YYYY h:mm A\",\n },\n {\n label: \"26/7/2014\",\n value: \"D/M/YYYY\",\n },\n {\n label: \"26/7/2014 10:02 PM\",\n value: \"D/M/YYYY h:mm A\",\n },\n {\n label: \"7/26/14\",\n value: \"M/D/YY\",\n },\n {\n label: \"7/26/14 10:02 PM\",\n value: \"M/D/YY h:mm A\",\n },\n {\n label: \"26/7/14\",\n value: \"D/M/YY\",\n },\n {\n label: \"26/7/14 10:02 PM\",\n value: \"D/M/YY h:mm A\",\n },\n ],\n },\n usePlasmicTheme: {\n type: \"boolean\",\n displayName: \"Use Plasmic tag styles?\",\n description: \"For HTML content, use tag styles defined in Plasmic\",\n advanced: true,\n },\n themeResetClassName: {\n type: \"themeResetClass\",\n targetAllTags: true,\n },\n },\n defaultStyles: {\n objectFit: \"cover\",\n },\n};\n\nexport function CmsRowField({\n className,\n table,\n field,\n dateFormat,\n setControlContextData,\n usePlasmicTheme,\n themeResetClassName,\n ...rest\n}: CmsRowFieldProps) {\n const tables = useTablesWithDataLoaded(\"rows\");\n\n const res = useRow(tables, table);\n const unknown = (\n <div className={className} {...rest}>\n Field {table ?? \"Unknown Model\"}.{field ?? \"Unknown Field\"}\n </div>\n );\n const fieldMeta = res\n ? deriveInferredTableField({\n table: res.table,\n tables,\n field,\n typeFilters: [\n CmsMetaType.TEXT,\n CmsMetaType.LONG_TEXT,\n CmsMetaType.RICH_TEXT,\n ],\n })\n : undefined;\n\n if (tables) {\n // TODO: Only include table if __plasmic_cms_row_{table} exists.\n setControlContextData?.({\n tables,\n ...(res && res.row\n ? { table: res.table, row: res.row, fieldMeta: fieldMeta }\n : {}),\n });\n }\n\n if (!res) {\n return unknown;\n }\n\n if (!res.row) {\n return <div className={className}>Error: No CMS Entry found</div>;\n }\n\n if (!fieldMeta) {\n return unknown;\n }\n\n let data = res.row.data?.[fieldMeta.identifier];\n if (!data) {\n return null;\n }\n if (fieldMeta.type === CmsMetaType.DATE_TIME && dateFormat) {\n data = dayjs(data).format(dateFormat);\n }\n return data\n ? renderValue(data, fieldMeta.type, {\n className: `${usePlasmicTheme ? themeResetClassName : \"\"} ${className}`,\n ...rest,\n })\n : null;\n}\n\ninterface CmsCountProps extends CanvasComponentProps<RowContextData> {\n table: string;\n className?: string;\n}\n\nexport const cmsCountFieldMeta: ComponentMeta<CmsCountProps> = {\n name: `${componentPrefix}-count`,\n displayName: \"CMS Entries Count\",\n importName: \"CmsCount\",\n importPath: modulePath,\n props: {\n table: {\n type: \"choice\",\n displayName: \"Model\",\n hidden: (props, ctx: TableContextData | null) =>\n (ctx?.tables?.length ?? 0) <= 1 && !props.table,\n helpText: \"Pick model from a CMS Data Fetcher\",\n description:\n \"Usually not used! Only with multiple CMS Data Loaders, use this to choose which to show. Otherwise, go select the CMS Data Loader if you want to load different data.\",\n options: (_, ctx) => mkTableOptions(ctx?.tables),\n defaultValueHint: (_, ctx) => ctx?.table,\n },\n },\n};\nexport function CmsCount({\n className,\n table,\n setControlContextData: _,\n ...rest\n}: CmsCountProps) {\n const tables = useTablesWithDataLoaded(\"count\");\n const res = useCount(tables, table);\n const unknown = (\n <div className={className} {...rest}>\n Count: {table ?? \"Unknown Model\"}\n </div>\n );\n if (!res) {\n return unknown;\n }\n\n if (res.count == null) {\n return null;\n } else {\n return (\n <div className={className} {...rest}>\n {new Intl.NumberFormat().format(res.count)}\n </div>\n );\n }\n}\n\nconst DEFAULT_TYPE_FILTERS = [CmsMetaType.TEXT];\nfunction deriveInferredTableField(opts: {\n table?: string;\n tables?: ApiCmsTable[];\n field?: string;\n typeFilters?: CmsType[];\n}) {\n const { table, tables, field, typeFilters } = opts;\n if (!table) return undefined;\n const schema = tables?.find((t) => t.identifier === table)?.schema;\n const fieldMeta = field\n ? schema?.fields.find((f) => f.identifier === field)\n : schema?.fields.find((f) =>\n (typeFilters ?? DEFAULT_TYPE_FILTERS).includes(f.type)\n );\n return fieldMeta;\n}\n\nfunction assertNever(_: never): never {\n throw new Error(\"unexpected branch taken\");\n}\n\nfunction renderValue(value: any, type: CmsType, props: { className?: string }) {\n switch (type) {\n case CmsMetaType.NUMBER:\n case CmsMetaType.BOOLEAN:\n case CmsMetaType.TEXT:\n case CmsMetaType.LONG_TEXT:\n case CmsMetaType.DATE_TIME:\n case CmsMetaType.ENUM:\n case CmsMetaType.REF:\n return <div {...props}>{value}</div>;\n case CmsMetaType.RICH_TEXT:\n return (\n <div\n dangerouslySetInnerHTML={{ __html: value }}\n style={{ whiteSpace: \"normal\" }}\n {...props}\n />\n );\n case CmsMetaType.IMAGE:\n if (value && typeof value === \"object\" && value.url && value.imageMeta) {\n return (\n <img\n src={value.url}\n width={value.imageMeta.width}\n height={value.imageMeta.height}\n {...props}\n />\n );\n }\n return null;\n case CmsMetaType.FILE:\n if (value && typeof value === \"object\" && value.url && value.name) {\n return (\n <a href={value.url} target=\"_blank\" {...props}>\n {value.name}\n </a>\n );\n }\n return null;\n default:\n assertNever(type);\n }\n}\n\ninterface CmsRowLinkProps extends CanvasComponentProps<RowContextData> {\n table: string;\n field: string;\n hrefProp: string;\n children: React.ReactNode;\n prefix?: string;\n suffix?: string;\n}\n\nexport const cmsRowLinkMeta: ComponentMeta<CmsRowLinkProps> = {\n name: `${componentPrefix}-row-link`,\n displayName: \"CMS Entry Link\",\n importName: \"CmsRowLink\",\n importPath: modulePath,\n props: {\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n tag: \"a\",\n value: \"Link\",\n },\n },\n table: {\n type: \"choice\",\n displayName: \"Model\",\n hidden: (props, ctx: TableContextData | null) =>\n (ctx?.tables?.length ?? 0) <= 1 && !props.table,\n helpText: \"Pick model from a CMS Data Fetcher\",\n description:\n \"Usually not used! Only with multiple CMS Data Loaders, use this to choose which to show. Otherwise, go select the CMS Data Loader if you want to load different data.\",\n options: (_: any, ctx: TableContextData | null) =>\n mkTableOptions(ctx?.tables),\n defaultValueHint: (_, ctx) => ctx?.table,\n },\n field: {\n type: \"choice\",\n displayName: \"Field\",\n description: \"Field (from model schema) to use.\",\n options: ({ table }: CmsRowLinkProps, ctx: TableContextData | null) =>\n mkFieldOptions(ctx?.tables, ctx?.table ?? table),\n defaultValueHint: (_, ctx) =>\n ctx?.fieldMeta?.name || ctx?.fieldMeta?.identifier,\n },\n hrefProp: {\n type: \"string\",\n displayName: '\"href\" prop',\n description: \"Prop to inject into children\",\n defaultValue: \"href\",\n },\n prefix: {\n type: \"string\",\n displayName: \"Optional prefix\",\n description: \"Prefix to prepend to prop value.\",\n hidden: (_, ctx) => ctx?.fieldMeta?.type === \"file\",\n },\n suffix: {\n type: \"string\",\n displayName: \"Optional suffix\",\n description: \"Suffix to append to prop value.\",\n hidden: (_, ctx) => ctx?.fieldMeta?.type === \"file\",\n },\n },\n};\n\nexport function CmsRowLink({\n table,\n field,\n hrefProp,\n children,\n setControlContextData,\n prefix,\n suffix,\n}: CmsRowLinkProps): React.ReactElement | null {\n const tables = useTablesWithDataLoaded(\"rows\");\n\n const res = useRow(tables, table);\n if (!res || !res.row) {\n return <>{children}</>;\n }\n\n const fieldMeta = deriveInferredTableField({\n table: res.table,\n tables,\n field,\n typeFilters: [CmsMetaType.FILE, CmsMetaType.TEXT],\n });\n\n if (tables) {\n // TODO: Only include table if __plasmic_cms_row_{table} exists.\n setControlContextData?.({\n tables,\n table: res.table,\n row: res.row,\n fieldMeta: fieldMeta,\n });\n }\n if (!fieldMeta) {\n return <>{children}</>;\n }\n\n if (!children) {\n return null;\n }\n\n const value = res.row.data?.[fieldMeta.identifier] || \"\";\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n [hrefProp]:\n fieldMeta.type === CmsMetaType.FILE\n ? value.url\n : prefix || suffix\n ? `${prefix || \"\"}${value}${suffix || \"\"}`\n : value,\n });\n }\n return child;\n });\n\n return <>{childrenWithProps ?? null}</>;\n}\n\ninterface CmsRowImageProps extends CanvasComponentProps<RowContextData> {\n table: string;\n field: string;\n srcProp: string;\n children: React.ReactNode;\n}\n\nexport const cmsRowImageMeta: ComponentMeta<CmsRowImageProps> = {\n name: `${componentPrefix}-row-image`,\n displayName: \"CMS Entry Image\",\n importName: \"CmsRowImage\",\n importPath: modulePath,\n props: {\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"img\",\n src: \"https://studio.plasmic.app/static/img/placeholder-full.png\",\n },\n },\n table: {\n type: \"choice\",\n displayName: \"Model\",\n hidden: (props, ctx: TableContextData | null) =>\n (ctx?.tables?.length ?? 0) <= 1 && !props.table,\n helpText: \"Pick model from a CMS Data Fetcher\",\n description:\n \"Usually not used! Only with multiple CMS Data Loaders, use this to choose which to show. Otherwise, go select the CMS Data Loader if you want to load different data.\",\n options: (_: any, ctx: TableContextData | null) =>\n mkTableOptions(ctx?.tables),\n defaultValueHint: (_, ctx) => ctx?.table,\n },\n field: {\n type: \"choice\",\n displayName: \"Field\",\n description: \"Field (from model schema) to use.\",\n options: ({ table }: CmsRowImageProps, ctx: TableContextData | null) =>\n mkFieldOptions(ctx?.tables, ctx?.table ?? table, [CmsMetaType.IMAGE]),\n defaultValueHint: (_, ctx) =>\n ctx?.fieldMeta?.name || ctx?.fieldMeta?.identifier,\n },\n srcProp: {\n type: \"string\",\n displayName: 'Image \"src\" prop',\n description: \"Prop to inject into children\",\n defaultValue: \"src\",\n },\n },\n};\n\nexport function CmsRowImage({\n table,\n field,\n srcProp,\n children,\n setControlContextData,\n}: CmsRowImageProps): React.ReactElement | null {\n const tables = useTablesWithDataLoaded(\"rows\");\n\n const res = useRow(tables, table);\n if (!res || !res.row) {\n return <>{children}</>;\n }\n\n const fieldMeta = deriveInferredTableField({\n table: res.table,\n tables,\n field,\n typeFilters: [CmsMetaType.IMAGE],\n });\n\n if (tables) {\n // TODO: Only include table if __plasmic_cms_row_{table} exists.\n setControlContextData?.({\n tables,\n table: res.table,\n row: res.row,\n fieldMeta: fieldMeta,\n });\n }\n\n if (!fieldMeta) {\n return <>{children}</>;\n }\n\n const value = res.row.data?.[fieldMeta.identifier] || \"\";\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child) && value) {\n if (typeof value === \"object\" && value.url && value.imageMeta) {\n return React.cloneElement(child, {\n [srcProp]: {\n src: value.url,\n fullHeight: value.imageMeta.height,\n fullWidth: value.imageMeta.width,\n },\n });\n }\n return React.cloneElement(child, { [srcProp]: value });\n }\n return child;\n });\n\n return <>{childrenWithProps}</>;\n}\n\ninterface CmsRowFieldValueProps extends CanvasComponentProps<RowContextData> {\n table: string;\n field: string;\n valueProp: string;\n children: React.ReactNode;\n}\n\nexport const cmsRowFieldValueMeta: ComponentMeta<CmsRowFieldValueProps> = {\n name: `${componentPrefix}-row-value`,\n displayName: \"CMS Entry Value\",\n importName: \"CmsRowFieldValue\",\n importPath: modulePath,\n props: {\n children: {\n type: \"slot\",\n },\n table: {\n type: \"choice\",\n displayName: \"Model\",\n hidden: (props, ctx: TableContextData | null) =>\n (ctx?.tables?.length ?? 0) <= 1 && !props.table,\n helpText: \"Pick model from a CMS Data Fetcher\",\n description:\n \"Usually not used! Only with multiple CMS Data Loaders, use this to choose which to show. Otherwise, go select the CMS Data Loader if you want to load different data.\",\n options: (_: any, ctx: TableContextData | null) =>\n mkTableOptions(ctx?.tables),\n defaultValueHint: (_, ctx) => ctx?.table,\n },\n field: {\n type: \"choice\",\n displayName: \"Field\",\n description: \"Field (from model schema) to use.\",\n options: (\n { table }: CmsRowFieldValueProps,\n ctx: TableContextData | null\n ) => mkFieldOptions(ctx?.tables, ctx?.table ?? table),\n defaultValueHint: (_, ctx) =>\n ctx?.fieldMeta?.name || ctx?.fieldMeta?.identifier,\n },\n valueProp: {\n type: \"string\",\n displayName: \"Value prop\",\n description: \"Prop to inject into children as\",\n defaultValue: \"children\",\n },\n },\n};\n\nexport function CmsRowFieldValue({\n table,\n field,\n valueProp,\n children,\n setControlContextData,\n ...rest\n}: CmsRowFieldValueProps): React.ReactElement | null {\n const tables = useTablesWithDataLoaded(\"rows\");\n\n const res = useRow(tables, table);\n if (!res || !res.row) {\n return <>{children}</>;\n }\n\n const fieldMeta = deriveInferredTableField({\n table: res.table,\n tables,\n field,\n typeFilters: [CmsMetaType.TEXT],\n });\n\n if (tables) {\n // TODO: Only include table if __plasmic_cms_row_{table} exists.\n setControlContextData?.({\n tables,\n table: res.table,\n row: res.row,\n fieldMeta: fieldMeta,\n });\n }\n\n if (!fieldMeta) {\n return <>{children}</>;\n }\n\n const value = res.row.data?.[fieldMeta.identifier] || \"\";\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, { ...rest, [valueProp]: value });\n }\n return child;\n });\n\n return <>{childrenWithProps}</>;\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport registerGlobalContext, {\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n CmsCount,\n cmsCountFieldMeta,\n CmsCredentialsProvider,\n cmsCredentialsProviderMeta,\n CmsQueryRepeater,\n cmsQueryRepeaterMeta,\n CmsRowField,\n cmsRowFieldMeta,\n CmsRowFieldValue,\n cmsRowFieldValueMeta,\n CmsRowImage,\n cmsRowImageMeta,\n CmsRowLink,\n cmsRowLinkMeta,\n} from \"./components\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n}) {\n //const registerContext = loader?.registerContext ?? hostRegisterContext;\n //registerContext(CmsDataProvider, cmsDataProviderMeta);\n\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n\n const _registerGlobalContext = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: GlobalContextMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerGlobalContext(Component, defaultMeta);\n } else {\n registerGlobalContext(Component, defaultMeta);\n }\n };\n\n _registerGlobalContext(CmsCredentialsProvider, cmsCredentialsProviderMeta);\n _registerComponent(CmsQueryRepeater, cmsQueryRepeaterMeta);\n _registerComponent(CmsRowField, cmsRowFieldMeta);\n _registerComponent(CmsRowLink, cmsRowLinkMeta);\n _registerComponent(CmsRowImage, cmsRowImageMeta);\n _registerComponent(CmsRowFieldValue, cmsRowFieldValueMeta);\n _registerComponent(CmsCount, cmsCountFieldMeta);\n}\n\nexport * from \"./api\";\nexport * from \"./components\";\n"],"names":["queryParamsToApi","params","where","limit","offset","order","orderBy","field","dir","desc","undefined","fields","HttpError","_Error","_inheritsLoose","status","message","_this","call","_wrapNativeSuper","Error","API","config","_proto","prototype","get","_get","_asyncToGenerator","_regeneratorRuntime","mark","_callee","endpoint","url","URL","host","databaseId","fixedParams","Object","keys","reduce","newObj","key","value","search","URLSearchParams","toString","_context","next","fetch","method","headers","accept","databaseToken","mode","response","sent","text","json","JSON","parse","_json$error","error","_unused","abrupt","stop","_x","_x2","apply","arguments","fetchTables","_fetchTables","_callee2","wrap","_callee2$","_context2","prev","tables","t0","console","useDraftForTable","table","Array","isArray","useDraft","includes","query","_query","_callee3","_context3","q","stringify","draft","Number","locale","rows","_x3","_x4","count","_count","_callee4","_context4","_x5","_x6","mkApi","contextPrefix","databaseContextKey","tablesContextKey","tableSchemaContextKey","collectionResultSuffix","mkQueryContextKey","capitalizeFirst","itemContextSuffix","countContextSuffix","modeContextSuffix","mkRowContextKey","mkCountContextKey","mkModeContextKey","str","_str$","toUpperCase","slice","useDatabase","useSelector","makeDatabaseCacheKey","rest","_objectWithoutPropertiesLoose","_excluded","DatabaseProvider","_ref","children","React","DataProvider","name","data","hidden","useTables","TablesProvider","_ref2","TableSchemaProvider","_ref3","schema","length","_tables$","_tables$find","find","t","identifier","getClosestMatchingKeysBy","env","pred","concat","reverse","filter","QueryResultProvider","_ref4","useTablesWithDataLoaded","useDataEnv","matchingKeys","endsWith","some","deriveTableId","useRow","row","useCount","RowProvider","_ref5","CountProvider","_ref6","mkTableOptions","map","label","mkFieldOptions","tableIdentifier","types","f","type","options","option","push","modulePath","componentPrefix","renderMaybeData","maybeData","renderFn","loaderProps","inEditor","loadingMessage","forceLoadingState","hideIfNotFound","defaultHost","cmsCredentialsProviderMeta","displayName","description","importName","importPath","providesData","props","defaultValue","defaultValueHint","advanced","CmsCredentialsProvider","TablesFetcher","databaseConfig","cacheKey","component","usePlasmicQueryData","_callee$","isDatabaseConfigured","usePlasmicCanvasContext","cmsQueryRepeaterMeta","defaultStyles","display","width","maxWidth","flexDirection","isRepeated","_","ctx","filterField","_ctx$table","filterValue","ps","multiSelect","_ctx$table2","emptyMessage","forceEmptyState","noLayout","noAutoRepeat","CmsQueryRepeater","setControlContextData","className","_where","node","index","repeatedElement","cmsRowFieldMeta","_ctx$tables$length","_ctx$tables","helpText","_ref8","_ctx$table3","_ctx$fieldMeta","_ctx$fieldMeta2","fieldMeta","dateFormat","_ref9","usePlasmicTheme","themeResetClassName","targetAllTags","objectFit","CmsRowField","_ref10","res","unknown","deriveInferredTableField","typeFilters","_extends","_res$row$data","dayjs","format","renderValue","cmsCountFieldMeta","_ctx$tables$length2","_ctx$tables2","CmsCount","_ref11","_excluded2","Intl","NumberFormat","DEFAULT_TYPE_FILTERS","opts","assertNever","dangerouslySetInnerHTML","__html","style","whiteSpace","imageMeta","src","height","href","target","cmsRowLinkMeta","tag","_ctx$tables$length3","_ctx$tables3","_ref12","_ctx$table4","_ctx$fieldMeta3","_ctx$fieldMeta4","hrefProp","prefix","_ctx$fieldMeta5","suffix","_ctx$fieldMeta6","CmsRowLink","_ref13","_res$row$data2","childrenWithProps","Children","child","isValidElement","_React$cloneElement","cloneElement","cmsRowImageMeta","_ctx$tables$length4","_ctx$tables4","_ref14","_ctx$table5","_ctx$fieldMeta7","_ctx$fieldMeta8","srcProp","CmsRowImage","_ref15","_res$row$data3","_React$cloneElement3","_React$cloneElement2","fullHeight","fullWidth","cmsRowFieldValueMeta","_ctx$tables$length5","_ctx$tables5","_ref16","_ctx$table6","_ctx$fieldMeta9","_ctx$fieldMeta10","valueProp","CmsRowFieldValue","_ref17","_excluded3","_res$row$data4","_extends2","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent","_registerGlobalContext","registerGlobalContext"],"mappings":"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"}