@webiny/app-headless-cms 5.25.0-beta.5 → 5.25.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/HeadlessCMS.js +2 -1
  2. package/HeadlessCMS.js.map +1 -1
  3. package/admin/contexts/Cms/index.d.ts +2 -2
  4. package/admin/contexts/Cms/index.js +0 -8
  5. package/admin/contexts/Cms/index.js.map +1 -1
  6. package/admin/hooks/useCms.d.ts +2 -2
  7. package/admin/hooks/useCms.js.map +1 -1
  8. package/admin/plugins/fieldRenderers/dateTime/utils.js +1 -1
  9. package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
  10. package/admin/plugins/fieldRenderers/ref/components/useReference.js +5 -3
  11. package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
  12. package/admin/plugins/fieldRenderers/ref/components/useReferences.js +15 -0
  13. package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -1
  14. package/admin/plugins/index.d.ts +1 -1
  15. package/admin/plugins/routes.js +2 -4
  16. package/admin/plugins/routes.js.map +1 -1
  17. package/admin/plugins/transformers/dateTransformer.js +2 -2
  18. package/admin/plugins/transformers/dateTransformer.js.map +1 -1
  19. package/admin/views/contentEntries/ContentEntriesContext.d.ts +1 -1
  20. package/admin/views/contentEntries/ContentEntriesContext.js +34 -22
  21. package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
  22. package/admin/views/contentEntries/ContentEntriesList.js +40 -43
  23. package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
  24. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +1 -1
  25. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
  26. package/admin/views/contentEntries/ContentEntry/cache.js +1 -1
  27. package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -1
  28. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js +1 -0
  29. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js.map +1 -1
  30. package/admin/views/contentEntries/experiment/ContentEntriesModule.d.ts +1 -0
  31. package/admin/views/contentEntries/experiment/ContentEntriesModule.js +50 -0
  32. package/admin/views/contentEntries/experiment/ContentEntriesModule.js.map +1 -0
  33. package/admin/views/contentEntries/experiment/ContentEntriesRenderer.d.ts +2 -0
  34. package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js +12 -0
  35. package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js.map +1 -0
  36. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.d.ts +35 -0
  37. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js +130 -0
  38. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js.map +1 -0
  39. package/admin/views/contentEntries/experiment/Property.d.ts +34 -0
  40. package/admin/views/contentEntries/experiment/Property.js +232 -0
  41. package/admin/views/contentEntries/experiment/Property.js.map +1 -0
  42. package/admin/views/contentEntries/hooks/useContentEntriesList.js +2 -1
  43. package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
  44. package/admin/views/contentModels/NewContentModelDialog.js +8 -5
  45. package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
  46. package/index.d.ts +10 -0
  47. package/index.js +11 -1
  48. package/index.js.map +1 -1
  49. package/package.json +23 -22
package/HeadlessCMS.js CHANGED
@@ -4,6 +4,7 @@ import { Plugins, Provider } from "@webiny/app-admin";
4
4
  import { CmsProvider } from "./admin/contexts/Cms";
5
5
  import { CmsMenuLoader } from "./admin/menus/CmsMenuLoader";
6
6
  import apiInformation from "./admin/plugins/apiInformation";
7
+ import { ContentEntriesModule } from "./admin/views/contentEntries/experiment/ContentEntriesModule";
7
8
 
8
9
  var createHeadlessCMSProvider = function createHeadlessCMSProvider(createApolloClient) {
9
10
  return function (Component) {
@@ -19,7 +20,7 @@ var createHeadlessCMSProvider = function createHeadlessCMSProvider(createApolloC
19
20
  var HeadlessCMSExtension = function HeadlessCMSExtension(_ref2) {
20
21
  var createApolloClient = _ref2.createApolloClient;
21
22
  plugins.register(apiInformation);
22
- return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Provider, {
23
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(ContentEntriesModule, null), /*#__PURE__*/React.createElement(Provider, {
23
24
  hoc: createHeadlessCMSProvider(createApolloClient)
24
25
  }), /*#__PURE__*/React.createElement(Plugins, null, /*#__PURE__*/React.createElement(CmsMenuLoader, null)));
25
26
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["HeadlessCMS.tsx"],"names":["React","Fragment","memo","plugins","Plugins","Provider","CmsProvider","CmsMenuLoader","apiInformation","createHeadlessCMSProvider","createApolloClient","Component","HeadlessCMSProvider","children","HeadlessCMSExtension","register","HeadlessCMS"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,IAA1B,QAAsC,OAAtC;AACA,SAASC,OAAT,QAAwB,iBAAxB;AACA,SAASC,OAAT,EAAkBC,QAAlB,QAAkC,mBAAlC;AAEA,SAASC,WAAT;AACA,SAASC,aAAT;AACA,OAAOC,cAAP;;AAEA,IAAMC,yBAAyB,GAC3B,SADEA,yBACF,CAACC,kBAAD;AAAA,SACA,UAACC,SAAD,EAAmC;AAC/B,WAAO,SAASC,mBAAT,OAA2C;AAAA,UAAZC,QAAY,QAAZA,QAAY;AAC9C,0BACI,oBAAC,WAAD;AAAa,QAAA,kBAAkB,EAAEH;AAAjC,sBACI,oBAAC,SAAD,QAAYG,QAAZ,CADJ,CADJ;AAKH,KAND;AAOH,GATD;AAAA,CADJ;;AAuBA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,QAA8C;AAAA,MAA3CJ,kBAA2C,SAA3CA,kBAA2C;AACvEP,EAAAA,OAAO,CAACY,QAAR,CAAiBP,cAAjB;AAEA,sBACI,oBAAC,QAAD,qBACI,oBAAC,QAAD;AAAU,IAAA,GAAG,EAAEC,yBAAyB,CAACC,kBAAD;AAAxC,IADJ,eAEI,oBAAC,OAAD,qBACI,oBAAC,aAAD,OADJ,CAFJ,CADJ;AAQH,CAXD;;AAaA,OAAO,IAAMM,WAAW,gBAAGd,IAAI,CAACY,oBAAD,CAAxB","sourcesContent":["import React, { Fragment, memo } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Plugins, Provider } from \"@webiny/app-admin\";\nimport { ApolloClient } from \"apollo-client\";\nimport { CmsProvider } from \"./admin/contexts/Cms\";\nimport { CmsMenuLoader } from \"~/admin/menus/CmsMenuLoader\";\nimport apiInformation from \"./admin/plugins/apiInformation\";\n\nconst createHeadlessCMSProvider =\n (createApolloClient: CreateApolloClient) =>\n (Component: React.FC): React.FC => {\n return function HeadlessCMSProvider({ children }) {\n return (\n <CmsProvider createApolloClient={createApolloClient}>\n <Component>{children}</Component>\n </CmsProvider>\n );\n };\n };\n\ninterface CreateApolloClientParams {\n uri: string;\n}\ninterface CreateApolloClient {\n (params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nexport interface HeadlessCMSProps {\n createApolloClient: CreateApolloClient;\n}\n\nconst HeadlessCMSExtension = ({ createApolloClient }: HeadlessCMSProps) => {\n plugins.register(apiInformation);\n\n return (\n <Fragment>\n <Provider hoc={createHeadlessCMSProvider(createApolloClient)} />\n <Plugins>\n <CmsMenuLoader />\n </Plugins>\n </Fragment>\n );\n};\n\nexport const HeadlessCMS = memo(HeadlessCMSExtension);\n"]}
1
+ {"version":3,"sources":["HeadlessCMS.tsx"],"names":["React","Fragment","memo","plugins","Plugins","Provider","CmsProvider","CmsMenuLoader","apiInformation","ContentEntriesModule","createHeadlessCMSProvider","createApolloClient","Component","HeadlessCMSProvider","children","HeadlessCMSExtension","register","HeadlessCMS"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,IAA1B,QAAsC,OAAtC;AACA,SAASC,OAAT,QAAwB,iBAAxB;AACA,SAASC,OAAT,EAAkBC,QAAlB,QAAkC,mBAAlC;AAEA,SAASC,WAAT;AACA,SAASC,aAAT;AACA,OAAOC,cAAP;AACA,SAASC,oBAAT;;AAEA,IAAMC,yBAAyB,GAC3B,SADEA,yBACF,CAACC,kBAAD;AAAA,SACA,UAACC,SAAD,EAAmC;AAC/B,WAAO,SAASC,mBAAT,OAA2C;AAAA,UAAZC,QAAY,QAAZA,QAAY;AAC9C,0BACI,oBAAC,WAAD;AAAa,QAAA,kBAAkB,EAAEH;AAAjC,sBACI,oBAAC,SAAD,QAAYG,QAAZ,CADJ,CADJ;AAKH,KAND;AAOH,GATD;AAAA,CADJ;;AAuBA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,QAA8C;AAAA,MAA3CJ,kBAA2C,SAA3CA,kBAA2C;AACvER,EAAAA,OAAO,CAACa,QAAR,CAAiBR,cAAjB;AAEA,sBACI,oBAAC,QAAD,qBACI,oBAAC,oBAAD,OADJ,eAEI,oBAAC,QAAD;AAAU,IAAA,GAAG,EAAEE,yBAAyB,CAACC,kBAAD;AAAxC,IAFJ,eAGI,oBAAC,OAAD,qBACI,oBAAC,aAAD,OADJ,CAHJ,CADJ;AASH,CAZD;;AAcA,OAAO,IAAMM,WAAW,gBAAGf,IAAI,CAACa,oBAAD,CAAxB","sourcesContent":["import React, { Fragment, memo } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Plugins, Provider } from \"@webiny/app-admin\";\nimport { ApolloClient } from \"apollo-client\";\nimport { CmsProvider } from \"./admin/contexts/Cms\";\nimport { CmsMenuLoader } from \"~/admin/menus/CmsMenuLoader\";\nimport apiInformation from \"./admin/plugins/apiInformation\";\nimport { ContentEntriesModule } from \"./admin/views/contentEntries/experiment/ContentEntriesModule\";\n\nconst createHeadlessCMSProvider =\n (createApolloClient: CreateApolloClient) =>\n (Component: React.FC): React.FC => {\n return function HeadlessCMSProvider({ children }) {\n return (\n <CmsProvider createApolloClient={createApolloClient}>\n <Component>{children}</Component>\n </CmsProvider>\n );\n };\n };\n\ninterface CreateApolloClientParams {\n uri: string;\n}\ninterface CreateApolloClient {\n (params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nexport interface HeadlessCMSProps {\n createApolloClient: CreateApolloClient;\n}\n\nconst HeadlessCMSExtension = ({ createApolloClient }: HeadlessCMSProps) => {\n plugins.register(apiInformation);\n\n return (\n <Fragment>\n <ContentEntriesModule />\n <Provider hoc={createHeadlessCMSProvider(createApolloClient)} />\n <Plugins>\n <CmsMenuLoader />\n </Plugins>\n </Fragment>\n );\n};\n\nexport const HeadlessCMS = memo(HeadlessCMSExtension);\n"]}
@@ -1,11 +1,11 @@
1
1
  import React from "react";
2
2
  import ApolloClient from "apollo-client";
3
- export interface CmsContextValue {
3
+ export interface CmsContext {
4
4
  getApolloClient(locale: string): ApolloClient<any>;
5
5
  createApolloClient: CmsProviderProps["createApolloClient"];
6
6
  apolloClient: ApolloClient<any>;
7
7
  }
8
- export declare const CmsContext: React.Context<CmsContextValue>;
8
+ export declare const CmsContext: React.Context<CmsContext>;
9
9
  export interface CmsProviderProps {
10
10
  createApolloClient: (params: {
11
11
  uri: string;
@@ -23,14 +23,6 @@ export var CmsProvider = function CmsProvider(props) {
23
23
  getCurrentLocale = _useI18N.getCurrentLocale;
24
24
 
25
25
  var currentLocale = getCurrentLocale("content");
26
- /**
27
- * TODO @ts-refactor @pavel did you think about this?
28
- */
29
- // TODO: not sure why this was necessary :thinking:
30
- // const hasPermission = identity.getPermission("cms.endpoint.manage");
31
- // if (!hasPermission) {
32
- // return <CmsContext.Provider value={{}} {...props} />;
33
- // }
34
26
 
35
27
  if (currentLocale && !apolloClientsCache[currentLocale]) {
36
28
  apolloClientsCache[currentLocale] = props.createApolloClient({
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["React","useI18N","CircularProgress","config","appConfig","CmsContext","createContext","getApolloClient","createApolloClient","apolloClient","apolloClientsCache","CmsProvider","props","apiUrl","getKey","process","env","REACT_APP_API_URL","getCurrentLocale","currentLocale","uri","value","locale"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,OAAT,QAAwB,gCAAxB;AACA,SAASC,gBAAT,QAAiC,qBAAjC;AACA,SAASC,MAAM,IAAIC,SAAnB,QAAoC,oBAApC;AAQA,OAAO,IAAMC,UAAU,gBAAGL,KAAK,CAACM,aAAN,CAAqC;AAC3DC,EAAAA,eAAe,EAAE,2BAAM;AACnB,WAAO,IAAP;AACH,GAH0D;AAI3DC,EAAAA,kBAAkB,EAAE,8BAAM;AACtB,WAAO,IAAP;AACH,GAN0D;AAO3DC,EAAAA,YAAY,EAAE;AACd;AACJ;AACA;;AAV+D,CAArC,CAAnB;AAiBP,IAAMC,kBAAsC,GAAG,EAA/C;AAOA,OAAO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,CAAAC,KAAK,EAAI;AAC5D,MAAMC,MAAM,GAAGT,SAAS,CAACU,MAAV,CAAiB,SAAjB,EAA4BC,OAAO,CAACC,GAAR,CAAYC,iBAAxC,CAAf;;AACA,iBAA6BhB,OAAO,EAApC;AAAA,MAAQiB,gBAAR,YAAQA,gBAAR;;AAEA,MAAMC,aAAa,GAAGD,gBAAgB,CAAC,SAAD,CAAtC;AACA;AACJ;AACA;AACI;AACA;AACA;AACA;AACA;;AAEA,MAAIC,aAAa,IAAI,CAACT,kBAAkB,CAACS,aAAD,CAAxC,EAAyD;AACrDT,IAAAA,kBAAkB,CAACS,aAAD,CAAlB,GAAoCP,KAAK,CAACJ,kBAAN,CAAyB;AACzDY,MAAAA,GAAG,YAAKP,MAAL,yBAA0BM,aAA1B;AADsD,KAAzB,CAApC;AAGH;;AAED,MAAI,CAACA,aAAL,EAAoB;AAChB,wBAAO,oBAAC,gBAAD,OAAP;AACH;;AAED,MAAME,KAAK,GAAG;AACVd,IAAAA,eADU,2BACMe,MADN,EACsB;AAC5B,UAAI,CAACZ,kBAAkB,CAACY,MAAD,CAAvB,EAAiC;AAC7BZ,QAAAA,kBAAkB,CAACY,MAAD,CAAlB,GAA6BV,KAAK,CAACJ,kBAAN,CAAyB;AAClDY,UAAAA,GAAG,YAAKP,MAAL,yBAA0BS,MAA1B;AAD+C,SAAzB,CAA7B;AAGH;;AACD,aAAOZ,kBAAkB,CAACY,MAAD,CAAzB;AACH,KARS;AASVd,IAAAA,kBAAkB,EAAEI,KAAK,CAACJ,kBAThB;AAUVC,IAAAA,YAAY,EAAEC,kBAAkB,CAACS,aAAD;AAVtB,GAAd;AAaA,sBAAO,oBAAC,UAAD,CAAY,QAAZ;AAAqB,IAAA,KAAK,EAAEE;AAA5B,KAAuCT,KAAvC,EAAP;AACH,CAtCM","sourcesContent":["import React from \"react\";\nimport ApolloClient from \"apollo-client\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nexport interface CmsContextValue {\n getApolloClient(locale: string): ApolloClient<any>;\n createApolloClient: CmsProviderProps[\"createApolloClient\"];\n apolloClient: ApolloClient<any>;\n}\n\nexport const CmsContext = React.createContext<CmsContextValue>({\n getApolloClient: () => {\n return null;\n },\n createApolloClient: () => {\n return null;\n },\n apolloClient: null\n /**\n * Safe to cast.\n */\n} as unknown as CmsContextValue);\n\ninterface ApolloClientsCache {\n [locale: string]: ApolloClient<any>;\n}\n\nconst apolloClientsCache: ApolloClientsCache = {};\n\nexport interface CmsProviderProps {\n createApolloClient: (params: { uri: string }) => ApolloClient<any>;\n children: React.ReactNode;\n}\n\nexport const CmsProvider: React.FC<CmsProviderProps> = props => {\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n const { getCurrentLocale } = useI18N();\n\n const currentLocale = getCurrentLocale(\"content\");\n /**\n * TODO @ts-refactor @pavel did you think about this?\n */\n // TODO: not sure why this was necessary :thinking:\n // const hasPermission = identity.getPermission(\"cms.endpoint.manage\");\n // if (!hasPermission) {\n // return <CmsContext.Provider value={{}} {...props} />;\n // }\n\n if (currentLocale && !apolloClientsCache[currentLocale]) {\n apolloClientsCache[currentLocale] = props.createApolloClient({\n uri: `${apiUrl}/cms/manage/${currentLocale}`\n });\n }\n\n if (!currentLocale) {\n return <CircularProgress />;\n }\n\n const value = {\n getApolloClient(locale: string) {\n if (!apolloClientsCache[locale]) {\n apolloClientsCache[locale] = props.createApolloClient({\n uri: `${apiUrl}/cms/manage/${locale}`\n });\n }\n return apolloClientsCache[locale];\n },\n createApolloClient: props.createApolloClient,\n apolloClient: apolloClientsCache[currentLocale]\n };\n\n return <CmsContext.Provider value={value} {...props} />;\n};\n"]}
1
+ {"version":3,"sources":["index.tsx"],"names":["React","useI18N","CircularProgress","config","appConfig","CmsContext","createContext","getApolloClient","createApolloClient","apolloClient","apolloClientsCache","CmsProvider","props","apiUrl","getKey","process","env","REACT_APP_API_URL","getCurrentLocale","currentLocale","uri","value","locale"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,OAAT,QAAwB,gCAAxB;AACA,SAASC,gBAAT,QAAiC,qBAAjC;AACA,SAASC,MAAM,IAAIC,SAAnB,QAAoC,oBAApC;AAQA,OAAO,IAAMC,UAAU,gBAAGL,KAAK,CAACM,aAAN,CAAgC;AACtDC,EAAAA,eAAe,EAAE,2BAAM;AACnB,WAAO,IAAP;AACH,GAHqD;AAItDC,EAAAA,kBAAkB,EAAE,8BAAM;AACtB,WAAO,IAAP;AACH,GANqD;AAOtDC,EAAAA,YAAY,EAAE;AACd;AACJ;AACA;;AAV0D,CAAhC,CAAnB;AAiBP,IAAMC,kBAAsC,GAAG,EAA/C;AAOA,OAAO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,CAAAC,KAAK,EAAI;AAC5D,MAAMC,MAAM,GAAGT,SAAS,CAACU,MAAV,CAAiB,SAAjB,EAA4BC,OAAO,CAACC,GAAR,CAAYC,iBAAxC,CAAf;;AACA,iBAA6BhB,OAAO,EAApC;AAAA,MAAQiB,gBAAR,YAAQA,gBAAR;;AAEA,MAAMC,aAAa,GAAGD,gBAAgB,CAAC,SAAD,CAAtC;;AAEA,MAAIC,aAAa,IAAI,CAACT,kBAAkB,CAACS,aAAD,CAAxC,EAAyD;AACrDT,IAAAA,kBAAkB,CAACS,aAAD,CAAlB,GAAoCP,KAAK,CAACJ,kBAAN,CAAyB;AACzDY,MAAAA,GAAG,YAAKP,MAAL,yBAA0BM,aAA1B;AADsD,KAAzB,CAApC;AAGH;;AAED,MAAI,CAACA,aAAL,EAAoB;AAChB,wBAAO,oBAAC,gBAAD,OAAP;AACH;;AAED,MAAME,KAAK,GAAG;AACVd,IAAAA,eADU,2BACMe,MADN,EACsB;AAC5B,UAAI,CAACZ,kBAAkB,CAACY,MAAD,CAAvB,EAAiC;AAC7BZ,QAAAA,kBAAkB,CAACY,MAAD,CAAlB,GAA6BV,KAAK,CAACJ,kBAAN,CAAyB;AAClDY,UAAAA,GAAG,YAAKP,MAAL,yBAA0BS,MAA1B;AAD+C,SAAzB,CAA7B;AAGH;;AACD,aAAOZ,kBAAkB,CAACY,MAAD,CAAzB;AACH,KARS;AASVd,IAAAA,kBAAkB,EAAEI,KAAK,CAACJ,kBAThB;AAUVC,IAAAA,YAAY,EAAEC,kBAAkB,CAACS,aAAD;AAVtB,GAAd;AAaA,sBAAO,oBAAC,UAAD,CAAY,QAAZ;AAAqB,IAAA,KAAK,EAAEE;AAA5B,KAAuCT,KAAvC,EAAP;AACH,CA9BM","sourcesContent":["import React from \"react\";\nimport ApolloClient from \"apollo-client\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nexport interface CmsContext {\n getApolloClient(locale: string): ApolloClient<any>;\n createApolloClient: CmsProviderProps[\"createApolloClient\"];\n apolloClient: ApolloClient<any>;\n}\n\nexport const CmsContext = React.createContext<CmsContext>({\n getApolloClient: () => {\n return null;\n },\n createApolloClient: () => {\n return null;\n },\n apolloClient: null\n /**\n * Safe to cast.\n */\n} as unknown as CmsContext);\n\ninterface ApolloClientsCache {\n [locale: string]: ApolloClient<any>;\n}\n\nconst apolloClientsCache: ApolloClientsCache = {};\n\nexport interface CmsProviderProps {\n createApolloClient: (params: { uri: string }) => ApolloClient<any>;\n children: React.ReactNode;\n}\n\nexport const CmsProvider: React.FC<CmsProviderProps> = props => {\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n const { getCurrentLocale } = useI18N();\n\n const currentLocale = getCurrentLocale(\"content\");\n\n if (currentLocale && !apolloClientsCache[currentLocale]) {\n apolloClientsCache[currentLocale] = props.createApolloClient({\n uri: `${apiUrl}/cms/manage/${currentLocale}`\n });\n }\n\n if (!currentLocale) {\n return <CircularProgress />;\n }\n\n const value = {\n getApolloClient(locale: string) {\n if (!apolloClientsCache[locale]) {\n apolloClientsCache[locale] = props.createApolloClient({\n uri: `${apiUrl}/cms/manage/${locale}`\n });\n }\n return apolloClientsCache[locale];\n },\n createApolloClient: props.createApolloClient,\n apolloClient: apolloClientsCache[currentLocale]\n };\n\n return <CmsContext.Provider value={value} {...props} />;\n};\n"]}
@@ -1,3 +1,3 @@
1
- import { CmsContextValue } from "../contexts/Cms";
2
- declare function useCms(): CmsContextValue;
1
+ import { CmsContext } from "../contexts/Cms";
2
+ declare function useCms(): CmsContext;
3
3
  export default useCms;
@@ -1 +1 @@
1
- {"version":3,"sources":["useCms.ts"],"names":["useContext","CmsContext","useCms","context","Error"],"mappings":"AAAA,SAASA,UAAT,QAA2B,OAA3B;AACA,SAASC,UAAT;;AAEA,SAASC,MAAT,GAAkB;AACd,MAAMC,OAAO,GAAGH,UAAU,CAAkBC,UAAlB,CAA1B;;AACA,MAAI,CAACE,OAAL,EAAc;AACV,UAAM,IAAIC,KAAJ,CAAU,0CAAV,CAAN;AACH;;AAED,SAAOD,OAAP;AACH;;AAED,eAAeD,MAAf","sourcesContent":["import { useContext } from \"react\";\nimport { CmsContext, CmsContextValue } from \"../contexts/Cms\";\n\nfunction useCms() {\n const context = useContext<CmsContextValue>(CmsContext);\n if (!context) {\n throw new Error(\"useCms must be used within a CmsProvider\");\n }\n\n return context;\n}\n\nexport default useCms;\n"]}
1
+ {"version":3,"sources":["useCms.ts"],"names":["useContext","CmsContext","useCms","context","Error"],"mappings":"AAAA,SAASA,UAAT,QAA2B,OAA3B;AACA,SAASC,UAAT;;AAEA,SAASC,MAAT,GAAkB;AACd,MAAMC,OAAO,GAAGH,UAAU,CAACC,UAAD,CAA1B;;AACA,MAAI,CAACE,OAAL,EAAc;AACV,UAAM,IAAIC,KAAJ,CAAU,0CAAV,CAAN;AACH;;AAED,SAAOD,OAAP;AACH;;AAED,eAAeD,MAAf","sourcesContent":["import { useContext } from \"react\";\nimport { CmsContext } from \"../contexts/Cms\";\n\nfunction useCms() {\n const context = useContext(CmsContext);\n if (!context) {\n throw new Error(\"useCms must be used within a CmsProvider\");\n }\n\n return context;\n}\n\nexport default useCms;\n"]}
@@ -144,7 +144,7 @@ export var getCurrentTimeZone = function getCurrentTimeZone(date) {
144
144
  }
145
145
 
146
146
  var timezone = matches[1];
147
- return "".concat(timezone.substr(0, 3), ":").concat(timezone.substr(3));
147
+ return "".concat(timezone.slice(0, 3), ":").concat(timezone.slice(3));
148
148
  };
149
149
  export var getCurrentLocalTime = function getCurrentLocalTime(date) {
150
150
  if (!date) {
@@ -1 +1 @@
1
- {"version":3,"sources":["utils.tsx"],"names":["React","css","Cell","IconButton","UTC_TIMEZONES","value","label","DEFAULT_TIMEZONE","getDefaultFieldValue","field","bind","getCurrent","def","settings","defaultSetValue","getCurrentTimeZone","date","Date","toTimeString","matches","match","timezone","substr","getCurrentLocalTime","split","time","getCurrentDate","year","String","getFullYear","padStart","month","getMonth","day","getDate","deleteIconStyles","width","height","color","RemoveFieldButton","trailingIcon","onClick","icon"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Cell } from \"@webiny/ui/Grid\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { CmsEditorField } from \"~/types\";\n\nexport const UTC_TIMEZONES = [\n {\n value: \"-12:00\",\n label: \"UTC-12:00\"\n },\n {\n value: \"-11:00\",\n label: \"UTC-11:00\"\n },\n {\n value: \"-10:00\",\n label: \"UTC-10:00\"\n },\n {\n value: \"-09:30\",\n label: \"UTC-09:30\"\n },\n {\n value: \"-09:00\",\n label: \"UTC-09:00\"\n },\n {\n value: \"-08:00\",\n label: \"UTC-08:00\"\n },\n {\n value: \"-07:00\",\n label: \"UTC-07:00\"\n },\n {\n value: \"-06:00\",\n label: \"UTC-06:00\"\n },\n {\n value: \"-05:00\",\n label: \"UTC-05:00\"\n },\n {\n value: \"-04:30\",\n label: \"UTC-04:30\"\n },\n {\n value: \"-04:00\",\n label: \"UTC-04:00\"\n },\n {\n value: \"-03:30\",\n label: \"UTC-03:30\"\n },\n {\n value: \"-03:00\",\n label: \"UTC-03:00\"\n },\n {\n value: \"-02:00\",\n label: \"UTC-02:00\"\n },\n {\n value: \"-01:00\",\n label: \"UTC-01:00\"\n },\n {\n value: \"+00:00\",\n label: \"UTC+00:00\"\n },\n {\n value: \"+01:00\",\n label: \"UTC+01:00\"\n },\n {\n value: \"+02:00\",\n label: \"UTC+02:00\"\n },\n {\n value: \"+03:00\",\n label: \"UTC+03:00\"\n },\n {\n value: \"+03:30\",\n label: \"UTC+03:30\"\n },\n {\n value: \"+04:00\",\n label: \"UTC+04:00\"\n },\n {\n value: \"+04:30\",\n label: \"UTC+04:30\"\n },\n {\n value: \"+05:30\",\n label: \"UTC+05:30\"\n },\n {\n value: \"+05:45\",\n label: \"UTC+05:45\"\n },\n {\n value: \"+06:00\",\n label: \"UTC+06:00\"\n },\n {\n value: \"+06:30\",\n label: \"UTC+06:30\"\n },\n {\n value: \"+07:00\",\n label: \"UTC+07:00\"\n },\n {\n value: \"+08:00\",\n label: \"UTC+08:00\"\n },\n {\n value: \"+08:45\",\n label: \"UTC+08:45\"\n },\n {\n value: \"+09:00\",\n label: \"UTC+09:00\"\n },\n {\n value: \"+09:30\",\n label: \"UTC+09:30\"\n },\n {\n value: \"+10:00\",\n label: \"UTC+10:00\"\n },\n {\n value: \"+10:30\",\n label: \"UTC+10:30\"\n },\n {\n value: \"+11:00\",\n label: \"UTC+11:00\"\n },\n {\n value: \"+11:30\",\n label: \"UTC+11:30\"\n },\n {\n value: \"+12:00\",\n label: \"UTC+12:00\"\n },\n {\n value: \"+12:45\",\n label: \"UTC+12:45\"\n },\n {\n value: \"+13:00\",\n label: \"UTC+13:00\"\n },\n {\n value: \"+14:00\",\n label: \"UTC+14:00\"\n }\n];\n\nexport const DEFAULT_TIMEZONE = \"+01:00\";\n\nexport const getDefaultFieldValue = (\n field: CmsEditorField,\n bind: {\n value: string | null | undefined;\n },\n getCurrent: () => string\n): string => {\n const def = field.settings ? field.settings.defaultSetValue || \"null\" : \"null\";\n if (bind.value || def !== \"current\") {\n return bind.value || \"\";\n }\n return getCurrent();\n};\n\nexport const getCurrentTimeZone = (date?: Date): string | null => {\n if (!date) {\n date = new Date();\n }\n const value = date.toTimeString();\n\n const matches = value.match(/GMT([+-][0-9]{4})/);\n if (!matches) {\n return null;\n }\n const timezone = matches[1];\n return `${timezone.substr(0, 3)}:${timezone.substr(3)}`;\n};\n\nexport const getCurrentLocalTime = (date?: Date): string => {\n if (!date) {\n date = new Date();\n }\n const value = date.toTimeString();\n\n const [time] = value.split(\" \");\n if (!time || time.match(/^([0-9]{2}):([0-9]{2}):([0-9]{2})$/) === null) {\n return \"00:00:00\";\n }\n return time;\n};\n\nexport const getCurrentDate = (date?: Date): string => {\n if (!date) {\n date = new Date();\n }\n const year = String(date.getFullYear()).padStart(4, \"0\");\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n\n return `${year}-${month}-${day}`;\n};\n\nconst deleteIconStyles = css({\n width: \"100% !important\",\n height: \"100% !important\",\n color: \"var(--mdc-theme-text-secondary-on-background) !important\"\n});\n\ninterface RemoveFieldButtonProps {\n // TODO @ts-refactor figure out correct trailing icon type\n // @ts-ignore\n trailingIcon: any;\n}\nexport const RemoveFieldButton: React.FC<RemoveFieldButtonProps> = ({ trailingIcon }) => {\n if (!trailingIcon) {\n return null;\n }\n return (\n <Cell span={1}>\n <IconButton\n className={deleteIconStyles}\n onClick={trailingIcon.onClick}\n icon={trailingIcon.icon}\n />\n </Cell>\n );\n};\n"]}
1
+ {"version":3,"sources":["utils.tsx"],"names":["React","css","Cell","IconButton","UTC_TIMEZONES","value","label","DEFAULT_TIMEZONE","getDefaultFieldValue","field","bind","getCurrent","def","settings","defaultSetValue","getCurrentTimeZone","date","Date","toTimeString","matches","match","timezone","slice","getCurrentLocalTime","split","time","getCurrentDate","year","String","getFullYear","padStart","month","getMonth","day","getDate","deleteIconStyles","width","height","color","RemoveFieldButton","trailingIcon","onClick","icon"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Cell } from \"@webiny/ui/Grid\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { CmsEditorField } from \"~/types\";\n\nexport const UTC_TIMEZONES = [\n {\n value: \"-12:00\",\n label: \"UTC-12:00\"\n },\n {\n value: \"-11:00\",\n label: \"UTC-11:00\"\n },\n {\n value: \"-10:00\",\n label: \"UTC-10:00\"\n },\n {\n value: \"-09:30\",\n label: \"UTC-09:30\"\n },\n {\n value: \"-09:00\",\n label: \"UTC-09:00\"\n },\n {\n value: \"-08:00\",\n label: \"UTC-08:00\"\n },\n {\n value: \"-07:00\",\n label: \"UTC-07:00\"\n },\n {\n value: \"-06:00\",\n label: \"UTC-06:00\"\n },\n {\n value: \"-05:00\",\n label: \"UTC-05:00\"\n },\n {\n value: \"-04:30\",\n label: \"UTC-04:30\"\n },\n {\n value: \"-04:00\",\n label: \"UTC-04:00\"\n },\n {\n value: \"-03:30\",\n label: \"UTC-03:30\"\n },\n {\n value: \"-03:00\",\n label: \"UTC-03:00\"\n },\n {\n value: \"-02:00\",\n label: \"UTC-02:00\"\n },\n {\n value: \"-01:00\",\n label: \"UTC-01:00\"\n },\n {\n value: \"+00:00\",\n label: \"UTC+00:00\"\n },\n {\n value: \"+01:00\",\n label: \"UTC+01:00\"\n },\n {\n value: \"+02:00\",\n label: \"UTC+02:00\"\n },\n {\n value: \"+03:00\",\n label: \"UTC+03:00\"\n },\n {\n value: \"+03:30\",\n label: \"UTC+03:30\"\n },\n {\n value: \"+04:00\",\n label: \"UTC+04:00\"\n },\n {\n value: \"+04:30\",\n label: \"UTC+04:30\"\n },\n {\n value: \"+05:30\",\n label: \"UTC+05:30\"\n },\n {\n value: \"+05:45\",\n label: \"UTC+05:45\"\n },\n {\n value: \"+06:00\",\n label: \"UTC+06:00\"\n },\n {\n value: \"+06:30\",\n label: \"UTC+06:30\"\n },\n {\n value: \"+07:00\",\n label: \"UTC+07:00\"\n },\n {\n value: \"+08:00\",\n label: \"UTC+08:00\"\n },\n {\n value: \"+08:45\",\n label: \"UTC+08:45\"\n },\n {\n value: \"+09:00\",\n label: \"UTC+09:00\"\n },\n {\n value: \"+09:30\",\n label: \"UTC+09:30\"\n },\n {\n value: \"+10:00\",\n label: \"UTC+10:00\"\n },\n {\n value: \"+10:30\",\n label: \"UTC+10:30\"\n },\n {\n value: \"+11:00\",\n label: \"UTC+11:00\"\n },\n {\n value: \"+11:30\",\n label: \"UTC+11:30\"\n },\n {\n value: \"+12:00\",\n label: \"UTC+12:00\"\n },\n {\n value: \"+12:45\",\n label: \"UTC+12:45\"\n },\n {\n value: \"+13:00\",\n label: \"UTC+13:00\"\n },\n {\n value: \"+14:00\",\n label: \"UTC+14:00\"\n }\n];\n\nexport const DEFAULT_TIMEZONE = \"+01:00\";\n\nexport const getDefaultFieldValue = (\n field: CmsEditorField,\n bind: {\n value: string | null | undefined;\n },\n getCurrent: () => string\n): string => {\n const def = field.settings ? field.settings.defaultSetValue || \"null\" : \"null\";\n if (bind.value || def !== \"current\") {\n return bind.value || \"\";\n }\n return getCurrent();\n};\n\nexport const getCurrentTimeZone = (date?: Date): string | null => {\n if (!date) {\n date = new Date();\n }\n const value = date.toTimeString();\n\n const matches = value.match(/GMT([+-][0-9]{4})/);\n if (!matches) {\n return null;\n }\n const timezone = matches[1];\n return `${timezone.slice(0, 3)}:${timezone.slice(3)}`;\n};\n\nexport const getCurrentLocalTime = (date?: Date): string => {\n if (!date) {\n date = new Date();\n }\n const value = date.toTimeString();\n\n const [time] = value.split(\" \");\n if (!time || time.match(/^([0-9]{2}):([0-9]{2}):([0-9]{2})$/) === null) {\n return \"00:00:00\";\n }\n return time;\n};\n\nexport const getCurrentDate = (date?: Date): string => {\n if (!date) {\n date = new Date();\n }\n const year = String(date.getFullYear()).padStart(4, \"0\");\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n\n return `${year}-${month}-${day}`;\n};\n\nconst deleteIconStyles = css({\n width: \"100% !important\",\n height: \"100% !important\",\n color: \"var(--mdc-theme-text-secondary-on-background) !important\"\n});\n\ninterface RemoveFieldButtonProps {\n // TODO @ts-refactor figure out correct trailing icon type\n // @ts-ignore\n trailingIcon: any;\n}\nexport const RemoveFieldButton: React.FC<RemoveFieldButtonProps> = ({ trailingIcon }) => {\n if (!trailingIcon) {\n return null;\n }\n return (\n <Cell span={1}>\n <IconButton\n className={deleteIconStyles}\n onClick={trailingIcon.onClick}\n icon={trailingIcon.icon}\n />\n </Cell>\n );\n};\n"]}
@@ -50,7 +50,9 @@ export var useReference = function useReference(_ref) {
50
50
  setValueEntry = _useState10[1];
51
51
 
52
52
  var models = field.settings ? field.settings.models || [] : [];
53
- var modelsHash = models.join(",");
53
+ var modelsHash = models.map(function (model) {
54
+ return model.modelId;
55
+ }).join(",");
54
56
  var value = bind.value;
55
57
  var valueHash = getValueHash(value);
56
58
 
@@ -227,14 +229,14 @@ export var useReference = function useReference(_ref) {
227
229
 
228
230
  var options = useMemo(function () {
229
231
  return Object.values(entries);
230
- }, [valueHash]);
232
+ }, [valueHash, entries]);
231
233
  /**
232
234
  * Format default options for the Autocomplete component.
233
235
  */
234
236
 
235
237
  var defaultOptions = useMemo(function () {
236
238
  return Object.values(latestEntries);
237
- }, [valueHash]);
239
+ }, [valueHash, latestEntries]);
238
240
  var outputOptions = (search && options ? options : defaultOptions) || [];
239
241
 
240
242
  if (valueEntry && outputOptions.some(function (opt) {
@@ -1 +1 @@
1
- {"version":3,"sources":["useReference.ts"],"names":["useCallback","useEffect","useMemo","useRef","useState","useApolloClient","SEARCH_CONTENT_ENTRIES","GET_CONTENT_ENTRY","convertReferenceEntriesToOptionCollection","convertReferenceEntryToOption","getValueHash","value","id","entryId","split","shift","useReference","bind","field","allEntries","client","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntry","setValueEntry","models","settings","modelsHash","join","valueHash","searchEntries","query","variables","modelIds","map","m","modelId","limit","data","collection","content","current","length","fetchPolicy","then","latestEntryData","entry","res","dataEntry","latest","option","published","prev","onChange","options","Object","values","defaultOptions","outputOptions","some","opt","push"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRY,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n} from \"./graphql\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"./helpers\";\n\ninterface UseReferenceHookArgs {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\n\ninterface UseReferenceHookValue {\n onChange: (value: any, entry: OptionItem) => void;\n setSearch: (value: string) => void;\n value: OptionItem | null;\n loading: boolean;\n options: OptionItem[];\n}\n\ntype UseReferenceHook = (args: UseReferenceHookArgs) => UseReferenceHookValue;\n\nconst getValueHash = (value: any): string | null => {\n if (!value || (!value.id && !value.entryId)) {\n return null;\n } else if (value.entryId) {\n return value.entryId;\n }\n return value.id.split(\"#\").shift();\n};\n\nexport const useReference: UseReferenceHook = ({ bind, field }) => {\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItemCollection>({});\n const [valueEntry, setValueEntry] = useState<OptionItem | null>(null);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\" | \"name\"\n >[];\n const modelsHash = models.join(\",\");\n\n const value = bind.value;\n const valueHash = getValueHash(value);\n\n const searchEntries = async () => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search,\n limit: 10\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n if (valueEntry) {\n collection[valueEntry.entryId] = valueEntry;\n }\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n if (models.length === 0) {\n return;\n }\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n const latestEntryData = convertReferenceEntriesToOptionCollection(\n data.content.data\n );\n if (valueEntry) {\n latestEntryData[valueEntry.entryId] = valueEntry;\n }\n\n setLatestEntries(latestEntryData);\n allEntries.current = {\n ...allEntries.current,\n ...latestEntryData\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!value || !models) {\n setValueEntry(() => null);\n return;\n }\n\n const entry = valueHash ? allEntries.current[valueHash] : null;\n if (entry) {\n /**\n * if entry exists set valueEntry to that one so we do not load new one\n */\n setValueEntry(() => {\n return entry;\n });\n return;\n }\n\n setLoading(true);\n /**\n * Query loads both latest and published entries.\n * We do this in a single query because there might not be a published entry so we can use the latest one.\n */\n client\n .query<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>({\n query: GET_CONTENT_ENTRY,\n variables: {\n entry: {\n modelId: value.modelId,\n id: value.id\n }\n }\n })\n .then(res => {\n setLoading(false);\n const dataEntry = res.data.latest.data;\n if (!dataEntry) {\n return;\n }\n const option: OptionItem = {\n ...convertReferenceEntryToOption(dataEntry),\n latest: dataEntry.id,\n published: res.data.published.data ? res.data.published.data.id : null\n };\n allEntries.current[option.entryId] = option;\n setLatestEntries(prev => {\n return {\n ...prev,\n [option.entryId]: {\n ...option\n }\n };\n });\n /**\n * Calculate a couple of props for the Autocomplete component.\n */\n setValueEntry(() => {\n return option;\n });\n });\n }, [valueHash, modelsHash]);\n\n const onChange = useCallback((value: string, entry: OptionItem) => {\n if (value !== null) {\n setSearch(\"\");\n\n setValueEntry(() => {\n return entry;\n });\n bind.onChange({\n modelId: entry.modelId,\n id: entry.id\n });\n return;\n }\n\n setValueEntry(() => null);\n bind.onChange(null);\n }, []);\n\n /**\n * Format options for the Autocomplete component.\n */\n const options = useMemo(() => Object.values(entries), [valueHash]);\n\n /**\n * Format default options for the Autocomplete component.\n */\n const defaultOptions = useMemo(() => {\n return Object.values(latestEntries);\n }, [valueHash]);\n\n const outputOptions: OptionItem[] = (search && options ? options : defaultOptions) || [];\n\n if (valueEntry && outputOptions.some(opt => opt.entryId === valueEntry.entryId) === false) {\n outputOptions.push(valueEntry);\n }\n\n return {\n onChange,\n setSearch,\n value: valueEntry,\n loading,\n options: outputOptions\n };\n};\n"]}
1
+ {"version":3,"sources":["useReference.ts"],"names":["useCallback","useEffect","useMemo","useRef","useState","useApolloClient","SEARCH_CONTENT_ENTRIES","GET_CONTENT_ENTRY","convertReferenceEntriesToOptionCollection","convertReferenceEntryToOption","getValueHash","value","id","entryId","split","shift","useReference","bind","field","allEntries","client","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntry","setValueEntry","models","settings","modelsHash","map","model","modelId","join","valueHash","searchEntries","query","variables","modelIds","m","limit","data","collection","content","current","length","fetchPolicy","then","latestEntryData","entry","res","dataEntry","latest","option","published","prev","onChange","options","Object","values","defaultOptions","outputOptions","some","opt","push"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRY,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n} from \"./graphql\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"./helpers\";\n\ninterface UseReferenceHookArgs {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\n\ninterface UseReferenceHookValue {\n onChange: (value: any, entry: OptionItem) => void;\n setSearch: (value: string) => void;\n value: OptionItem | null;\n loading: boolean;\n options: OptionItem[];\n}\n\ntype UseReferenceHook = (args: UseReferenceHookArgs) => UseReferenceHookValue;\n\nconst getValueHash = (value: any): string | null => {\n if (!value || (!value.id && !value.entryId)) {\n return null;\n } else if (value.entryId) {\n return value.entryId;\n }\n return value.id.split(\"#\").shift();\n};\n\nexport const useReference: UseReferenceHook = ({ bind, field }) => {\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItemCollection>({});\n const [valueEntry, setValueEntry] = useState<OptionItem | null>(null);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\" | \"name\"\n >[];\n const modelsHash = models.map(model => model.modelId).join(\",\");\n\n const value = bind.value;\n const valueHash = getValueHash(value);\n\n const searchEntries = async () => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search,\n limit: 10\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n if (valueEntry) {\n collection[valueEntry.entryId] = valueEntry;\n }\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n if (models.length === 0) {\n return;\n }\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n const latestEntryData = convertReferenceEntriesToOptionCollection(\n data.content.data\n );\n if (valueEntry) {\n latestEntryData[valueEntry.entryId] = valueEntry;\n }\n\n setLatestEntries(latestEntryData);\n allEntries.current = {\n ...allEntries.current,\n ...latestEntryData\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!value || !models) {\n setValueEntry(() => null);\n return;\n }\n\n const entry = valueHash ? allEntries.current[valueHash] : null;\n if (entry) {\n /**\n * if entry exists set valueEntry to that one so we do not load new one\n */\n setValueEntry(() => {\n return entry;\n });\n return;\n }\n\n setLoading(true);\n /**\n * Query loads both latest and published entries.\n * We do this in a single query because there might not be a published entry so we can use the latest one.\n */\n client\n .query<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>({\n query: GET_CONTENT_ENTRY,\n variables: {\n entry: {\n modelId: value.modelId,\n id: value.id\n }\n }\n })\n .then(res => {\n setLoading(false);\n const dataEntry = res.data.latest.data;\n if (!dataEntry) {\n return;\n }\n const option: OptionItem = {\n ...convertReferenceEntryToOption(dataEntry),\n latest: dataEntry.id,\n published: res.data.published.data ? res.data.published.data.id : null\n };\n allEntries.current[option.entryId] = option;\n setLatestEntries(prev => {\n return {\n ...prev,\n [option.entryId]: {\n ...option\n }\n };\n });\n /**\n * Calculate a couple of props for the Autocomplete component.\n */\n setValueEntry(() => {\n return option;\n });\n });\n }, [valueHash, modelsHash]);\n\n const onChange = useCallback((value: string, entry: OptionItem) => {\n if (value !== null) {\n setSearch(\"\");\n\n setValueEntry(() => {\n return entry;\n });\n bind.onChange({\n modelId: entry.modelId,\n id: entry.id\n });\n return;\n }\n\n setValueEntry(() => null);\n bind.onChange(null);\n }, []);\n\n /**\n * Format options for the Autocomplete component.\n */\n const options = useMemo(() => Object.values(entries), [valueHash, entries]);\n\n /**\n * Format default options for the Autocomplete component.\n */\n const defaultOptions = useMemo(() => {\n return Object.values(latestEntries);\n }, [valueHash, latestEntries]);\n\n const outputOptions: OptionItem[] = (search && options ? options : defaultOptions) || [];\n\n if (valueEntry && outputOptions.some(opt => opt.entryId === valueEntry.entryId) === false) {\n outputOptions.push(valueEntry);\n }\n\n return {\n onChange,\n setSearch,\n value: valueEntry,\n loading,\n options: outputOptions\n };\n};\n"]}
@@ -9,6 +9,7 @@ import { convertReferenceEntriesToOptionCollection, convertReferenceEntryToOptio
9
9
  export var useReferences = function useReferences(_ref) {
10
10
  var bind = _ref.bind,
11
11
  field = _ref.field;
12
+ var isMounted = useRef(true);
12
13
  var allEntries = useRef({});
13
14
  var client = useApolloClient();
14
15
 
@@ -90,6 +91,11 @@ export var useReferences = function useReferences(_ref) {
90
91
  };
91
92
  }();
92
93
 
94
+ useEffect(function () {
95
+ return function () {
96
+ isMounted.current = false;
97
+ };
98
+ }, []);
93
99
  useEffect(function () {
94
100
  searchEntries();
95
101
  }, [search]);
@@ -110,6 +116,11 @@ export var useReferences = function useReferences(_ref) {
110
116
  fetchPolicy: "network-only"
111
117
  }).then(function (_ref3) {
112
118
  var data = _ref3.data;
119
+
120
+ if (!isMounted.current) {
121
+ return;
122
+ }
123
+
113
124
  var collection = convertReferenceEntriesToOptionCollection(data.content.data);
114
125
  setLatestEntries(Object.values(collection));
115
126
  allEntries.current = _objectSpread({}, collection);
@@ -135,6 +146,10 @@ export var useReferences = function useReferences(_ref) {
135
146
  })
136
147
  }
137
148
  }).then(function (res) {
149
+ if (!isMounted.current) {
150
+ return;
151
+ }
152
+
138
153
  setLoading(false);
139
154
  var latest = (res.data.latest.data || []).reduce(function (collection, item) {
140
155
  collection[item.entryId] = item;
@@ -1 +1 @@
1
- {"version":3,"sources":["useReferences.ts"],"names":["useCallback","useEffect","useMemo","useRef","useState","useApolloClient","SEARCH_CONTENT_ENTRIES","GET_CONTENT_ENTRIES","convertReferenceEntriesToOptionCollection","convertReferenceEntryToOption","useReferences","bind","field","allEntries","client","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntries","setValueEntries","models","settings","modelsHash","join","values","value","searchEntries","query","variables","modelIds","map","m","modelId","data","collection","content","current","limit","fetchPolicy","then","Object","length","id","res","latest","reduce","item","entryId","published","existingItem","title","onChange","options","defaultOptions"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRIES,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables,\n CmsEntryGetListResponse,\n CmsEntryGetListVariables,\n CmsEntryGetEntryVariable\n} from \"./graphql\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { CmsReferenceContentEntry, OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"~/admin/plugins/fieldRenderers/ref/components/helpers\";\n\ninterface UseReferencesParams {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\nexport const useReferences = ({ bind, field }: UseReferencesParams) => {\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItem[]>([]);\n const [valueEntries, setValueEntries] = useState<OptionItem[]>([]);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\"\n >[];\n const modelsHash = models.join(\",\");\n const values: CmsEntryGetEntryVariable[] = bind.value ? bind.value : [];\n\n const searchEntries = async (): Promise<void> => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n setLatestEntries(Object.values(collection));\n allEntries.current = {\n ...collection\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!values || values.length == 0) {\n return;\n }\n\n setLoading(true);\n\n client\n .query<CmsEntryGetListResponse, CmsEntryGetListVariables>({\n query: GET_CONTENT_ENTRIES,\n variables: {\n /**\n * We need make sure nothing else other than modelId and id is passed to entries variable.\n */\n entries: values.map(value => {\n return {\n modelId: value.modelId,\n id: value.id\n };\n })\n }\n })\n .then(res => {\n setLoading(false);\n\n const latest = (res.data.latest.data || []).reduce((collection, item) => {\n collection[item.entryId] = item;\n return collection;\n }, {} as Record<string, CmsReferenceContentEntry>);\n\n const entries = (res.data.published.data || []).reduce((collection, item) => {\n const entryId = item.entryId;\n const existingItem = latest[entryId];\n if (existingItem) {\n collection[entryId] = {\n ...existingItem,\n published: {\n id: item.id,\n entryId: item.entryId,\n title: item.title\n }\n };\n return collection;\n }\n collection[entryId] = item;\n return collection;\n }, latest);\n\n // Calculate a couple of props for the Autocomplete component.\n setValueEntries(Object.values(entries).map(convertReferenceEntryToOption));\n });\n }, []);\n\n /**\n * onChange callback will update internal component state using the previously loaded entries by IDs.\n * It will also format the value to store to the DB.\n */\n const onChange = useCallback((values: OptionItem[]): void => {\n setSearch(\"\");\n setValueEntries(values);\n\n // Update parent form\n bind.onChange(\n values.map(item => ({\n modelId: item.modelId,\n id: item.id\n }))\n );\n }, []);\n\n // Format options for the Autocomplete component.\n const options = useMemo(() => Object.values(entries), [entries]);\n\n // Format default options for the Autocomplete component.\n const defaultOptions = useMemo(() => Object.values(latestEntries), [latestEntries]);\n\n return {\n onChange,\n loading,\n setSearch,\n // Selected entries\n entries: valueEntries,\n // Options to show when the autocomplete dropdown is visible\n options: search ? options : defaultOptions || []\n };\n};\n"]}
1
+ {"version":3,"sources":["useReferences.ts"],"names":["useCallback","useEffect","useMemo","useRef","useState","useApolloClient","SEARCH_CONTENT_ENTRIES","GET_CONTENT_ENTRIES","convertReferenceEntriesToOptionCollection","convertReferenceEntryToOption","useReferences","bind","field","isMounted","allEntries","client","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntries","setValueEntries","models","settings","modelsHash","join","values","value","searchEntries","query","variables","modelIds","map","m","modelId","data","collection","content","current","limit","fetchPolicy","then","Object","length","id","res","latest","reduce","item","entryId","published","existingItem","title","onChange","options","defaultOptions"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRIES,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables,\n CmsEntryGetListResponse,\n CmsEntryGetListVariables,\n CmsEntryGetEntryVariable\n} from \"./graphql\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { CmsReferenceContentEntry, OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"~/admin/plugins/fieldRenderers/ref/components/helpers\";\n\ninterface UseReferencesParams {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\nexport const useReferences = ({ bind, field }: UseReferencesParams) => {\n const isMounted = useRef(true);\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItem[]>([]);\n const [valueEntries, setValueEntries] = useState<OptionItem[]>([]);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\"\n >[];\n const modelsHash = models.join(\",\");\n const values: CmsEntryGetEntryVariable[] = bind.value ? bind.value : [];\n\n const searchEntries = async (): Promise<void> => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n if (!isMounted.current) {\n return;\n }\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n setLatestEntries(Object.values(collection));\n allEntries.current = {\n ...collection\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!values || values.length == 0) {\n return;\n }\n\n setLoading(true);\n\n client\n .query<CmsEntryGetListResponse, CmsEntryGetListVariables>({\n query: GET_CONTENT_ENTRIES,\n variables: {\n /**\n * We need make sure nothing else other than modelId and id is passed to entries variable.\n */\n entries: values.map(value => {\n return {\n modelId: value.modelId,\n id: value.id\n };\n })\n }\n })\n .then(res => {\n if (!isMounted.current) {\n return;\n }\n\n setLoading(false);\n\n const latest = (res.data.latest.data || []).reduce((collection, item) => {\n collection[item.entryId] = item;\n return collection;\n }, {} as Record<string, CmsReferenceContentEntry>);\n\n const entries = (res.data.published.data || []).reduce((collection, item) => {\n const entryId = item.entryId;\n const existingItem = latest[entryId];\n if (existingItem) {\n collection[entryId] = {\n ...existingItem,\n published: {\n id: item.id,\n entryId: item.entryId,\n title: item.title\n }\n };\n return collection;\n }\n collection[entryId] = item;\n return collection;\n }, latest);\n\n // Calculate a couple of props for the Autocomplete component.\n setValueEntries(Object.values(entries).map(convertReferenceEntryToOption));\n });\n }, []);\n\n /**\n * onChange callback will update internal component state using the previously loaded entries by IDs.\n * It will also format the value to store to the DB.\n */\n const onChange = useCallback((values: OptionItem[]): void => {\n setSearch(\"\");\n setValueEntries(values);\n\n // Update parent form\n bind.onChange(\n values.map(item => ({\n modelId: item.modelId,\n id: item.id\n }))\n );\n }, []);\n\n // Format options for the Autocomplete component.\n const options = useMemo(() => Object.values(entries), [entries]);\n\n // Format default options for the Autocomplete component.\n const defaultOptions = useMemo(() => Object.values(latestEntries), [latestEntries]);\n\n return {\n onChange,\n loading,\n setSearch,\n // Selected entries\n entries: valueEntries,\n // Options to show when the autocomplete dropdown is visible\n options: search ? options : defaultOptions || []\n };\n};\n"]}
@@ -1,4 +1,4 @@
1
- declare const _default: () => (import("@webiny/app/types").CacheGetObjectIdPlugin | import("@webiny/app-admin/types").AdminInstallationPlugin | import("@webiny/app-admin/types").AdminAppPermissionRendererPlugin | import("../../types").CmsEditorFormSettingsPlugin | import("../../types").CmsIconsPlugin | import("../../types").CmsFieldValueTransformer[] | import("@webiny/app/types").RoutePlugin[] | import("../../types").CmsContentDetailsPlugin[] | {
1
+ declare const _default: () => (import("../../types").CmsEditorFormSettingsPlugin | import("../../types").CmsIconsPlugin | import("../../types").CmsFieldValueTransformer[] | import("@webiny/app/types").CacheGetObjectIdPlugin | import("@webiny/app/types").RoutePlugin[] | import("@webiny/app-admin/types").AdminInstallationPlugin | import("@webiny/app-admin/types").AdminAppPermissionRendererPlugin | import("../../types").CmsContentDetailsPlugin[] | {
2
2
  name: string;
3
3
  type: string;
4
4
  render(): JSX.Element;
@@ -11,6 +11,7 @@ import { CircularProgress } from "@webiny/ui/Progress";
11
11
  import { Route } from "@webiny/react-router";
12
12
  import { AdminLayout } from "@webiny/app-admin/components/AdminLayout";
13
13
  import { i18n } from "@webiny/app/i18n";
14
+ import { ContentEntriesView } from "../views/contentEntries/experiment/ContentEntriesViewConfig";
14
15
  var t = i18n.ns("app-headless-cms/admin/routes");
15
16
 
16
17
  var Loader = function Loader(_ref) {
@@ -31,9 +32,6 @@ var ContentModelsView = /*#__PURE__*/lazy(function () {
31
32
  var ContentModelGroupsView = /*#__PURE__*/lazy(function () {
32
33
  return import("../views/contentModelGroups/ContentModelGroups");
33
34
  });
34
- var ContentEntiesView = /*#__PURE__*/lazy(function () {
35
- return import("../views/contentEntries/ContentEntries");
36
- });
37
35
  var plugins = [{
38
36
  name: "route-cms-content-models-groups",
39
37
  type: "route",
@@ -55,7 +53,7 @@ var plugins = [{
55
53
  render: function render() {
56
54
  return /*#__PURE__*/React.createElement(SecureRoute, {
57
55
  permission: "cms.contentModel"
58
- }, /*#__PURE__*/React.createElement(AdminLayout, null, /*#__PURE__*/React.createElement(Helmet, null, /*#__PURE__*/React.createElement("title", null, t(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Content"]))))), /*#__PURE__*/React.createElement(Loader, null, /*#__PURE__*/React.createElement(ContentEntiesView, null))));
56
+ }, /*#__PURE__*/React.createElement(AdminLayout, null, /*#__PURE__*/React.createElement(Helmet, null, /*#__PURE__*/React.createElement("title", null, t(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Content"]))))), /*#__PURE__*/React.createElement(ContentEntriesView, null)));
59
57
  }
60
58
  })
61
59
  }, {
@@ -1 +1 @@
1
- {"version":3,"sources":["routes.tsx"],"names":["React","Suspense","lazy","Helmet","SecureRoute","CircularProgress","Route","AdminLayout","i18n","t","ns","Loader","children","props","cloneElement","ContentModelEditor","ContentModelsView","ContentModelGroupsView","ContentEntiesView","plugins","name","type","route"],"mappings":"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","sourcesContent":["import React, { Suspense, lazy } from \"react\";\nimport Helmet from \"react-helmet\";\nimport { SecureRoute } from \"@webiny/app-security/components\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { Route } from \"@webiny/react-router\";\nimport { AdminLayout } from \"@webiny/app-admin/components/AdminLayout\";\nimport { RoutePlugin } from \"@webiny/app/types\";\nimport { i18n } from \"@webiny/app/i18n\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/routes\");\n\nconst Loader: React.FC = ({ children, ...props }) => (\n <Suspense fallback={<CircularProgress />}>\n {React.cloneElement(children as unknown as React.ReactElement, props)}\n </Suspense>\n);\n\nconst ContentModelEditor = lazy(() => import(\"../views/contentModels/ContentModelEditor\"));\nconst ContentModelsView = lazy(() => import(\"../views/contentModels/ContentModels\"));\nconst ContentModelGroupsView = lazy(() => import(\"../views/contentModelGroups/ContentModelGroups\"));\nconst ContentEntiesView = lazy(() => import(\"../views/contentEntries/ContentEntries\"));\n\nconst plugins: RoutePlugin[] = [\n {\n name: \"route-cms-content-models-groups\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/cms/content-model-groups\"}\n render={() => (\n <SecureRoute permission={\"cms.contentModelGroup\"}>\n <AdminLayout>\n <Helmet>\n <title>{t`Content Model Groups`}</title>\n </Helmet>\n <Loader>\n <ContentModelGroupsView />\n </Loader>\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-cms-content-models-manage\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/cms/content-entries/:modelId\"}\n render={() => (\n <SecureRoute permission={\"cms.contentModel\"}>\n <AdminLayout>\n <Helmet>\n <title>{t`Content`}</title>\n </Helmet>\n <Loader>\n <ContentEntiesView />\n </Loader>\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-cms-content-models-editor\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/cms/content-models/:modelId\"}\n render={() => (\n <SecureRoute permission={\"cms.contentModel\"}>\n <Helmet>\n <title>{t`Edit Content Model`}</title>\n </Helmet>\n <Loader>\n <ContentModelEditor />\n </Loader>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-cms-content-models\",\n type: \"route\",\n route: (\n <Route\n exact\n path=\"/cms/content-models\"\n render={() => (\n <SecureRoute permission={\"cms.contentModel\"}>\n <AdminLayout>\n <Helmet title={t`Content Models`} />\n <Loader>\n <ContentModelsView />\n </Loader>\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n }\n];\n\nexport default plugins;\n"]}
1
+ {"version":3,"sources":["routes.tsx"],"names":["React","Suspense","lazy","Helmet","SecureRoute","CircularProgress","Route","AdminLayout","i18n","ContentEntriesView","t","ns","Loader","children","props","cloneElement","ContentModelEditor","ContentModelsView","ContentModelGroupsView","plugins","name","type","route"],"mappings":"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","sourcesContent":["import React, { Suspense, lazy } from \"react\";\nimport Helmet from \"react-helmet\";\nimport { SecureRoute } from \"@webiny/app-security/components\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { Route } from \"@webiny/react-router\";\nimport { AdminLayout } from \"@webiny/app-admin/components/AdminLayout\";\nimport { RoutePlugin } from \"@webiny/app/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ContentEntriesView } from \"../views/contentEntries/experiment/ContentEntriesViewConfig\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/routes\");\n\nconst Loader: React.FC = ({ children, ...props }) => (\n <Suspense fallback={<CircularProgress />}>\n {React.cloneElement(children as unknown as React.ReactElement, props)}\n </Suspense>\n);\n\nconst ContentModelEditor = lazy(() => import(\"../views/contentModels/ContentModelEditor\"));\nconst ContentModelsView = lazy(() => import(\"../views/contentModels/ContentModels\"));\nconst ContentModelGroupsView = lazy(() => import(\"../views/contentModelGroups/ContentModelGroups\"));\n\nconst plugins: RoutePlugin[] = [\n {\n name: \"route-cms-content-models-groups\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/cms/content-model-groups\"}\n render={() => (\n <SecureRoute permission={\"cms.contentModelGroup\"}>\n <AdminLayout>\n <Helmet>\n <title>{t`Content Model Groups`}</title>\n </Helmet>\n <Loader>\n <ContentModelGroupsView />\n </Loader>\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-cms-content-models-manage\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/cms/content-entries/:modelId\"}\n render={() => (\n <SecureRoute permission={\"cms.contentModel\"}>\n <AdminLayout>\n <Helmet>\n <title>{t`Content`}</title>\n </Helmet>\n <ContentEntriesView />\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-cms-content-models-editor\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/cms/content-models/:modelId\"}\n render={() => (\n <SecureRoute permission={\"cms.contentModel\"}>\n <Helmet>\n <title>{t`Edit Content Model`}</title>\n </Helmet>\n <Loader>\n <ContentModelEditor />\n </Loader>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-cms-content-models\",\n type: \"route\",\n route: (\n <Route\n exact\n path=\"/cms/content-models\"\n render={() => (\n <SecureRoute permission={\"cms.contentModel\"}>\n <AdminLayout>\n <Helmet title={t`Content Models`} />\n <Loader>\n <ContentModelsView />\n </Loader>\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n }\n];\n\nexport default plugins;\n"]}
@@ -8,7 +8,7 @@ var dateOnly = function dateOnly(value) {
8
8
 
9
9
  try {
10
10
  var date = new Date(value).toISOString();
11
- return date.substr(0, 10);
11
+ return date.slice(0, 10);
12
12
  } catch (error) {
13
13
  throw new WebinyError("Could not transform value to a date.", "TRANSFORM_ERROR", {
14
14
  error: error,
@@ -76,7 +76,7 @@ var dateTimeWithTimezone = function dateTimeWithTimezone(value) {
76
76
 
77
77
  try {
78
78
  var dateObj = new Date(initialDate);
79
- date = dateObj.toISOString().substr(0, 10);
79
+ date = dateObj.toISOString().slice(0, 10);
80
80
  } catch (ex) {
81
81
  throw new WebinyError("Could not transform received date into Date object.", "DATE_TRANSFORM_ERROR", {
82
82
  value: value,
@@ -1 +1 @@
1
- {"version":3,"sources":["dateTransformer.ts"],"names":["WebinyError","dateOnly","value","date","Date","toISOString","substr","error","type","extractTimeZone","result","includes","split","length","extractTime","def","dateTimeWithTimezone","initialDate","initialTimeZone","dateObj","ex","time","initialTime","replace","dateTimeWithoutTimezone","transformers","name","fieldType","transform","field","settings","String"],"mappings":"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","sourcesContent":["import { CmsFieldValueTransformer } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\n\ninterface TransformerCallable<T> {\n (value?: T): string | null;\n}\nconst dateOnly: TransformerCallable<string> = value => {\n if (!value) {\n return null;\n }\n try {\n const date = new Date(value).toISOString();\n return date.substr(0, 10);\n } catch (error) {\n throw new WebinyError(`Could not transform value to a date.`, \"TRANSFORM_ERROR\", {\n error,\n type: \"date\",\n value\n });\n }\n};\n\nconst extractTimeZone = (value?: string): [string, string] => {\n let result: string[];\n if (!value) {\n return [new Date().toISOString(), \"00:00\"];\n } else if (value.includes(\"+\")) {\n result = value.split(\"+\");\n } else {\n result = value.split(\"-\");\n }\n if (!result || result.length !== 2) {\n throw new WebinyError(\n `Could not determine time and timezone out of given value.`,\n \"TIME_ZONE_ERROR\",\n {\n value\n }\n );\n }\n return result as [string, string];\n};\n\nconst extractTime = (value?: string, def: string | null = null): string | null => {\n if (!value) {\n return null;\n } else if (value.includes(\":\") === false) {\n throw new WebinyError(\"Time value is missing : separators.\", \"TIME_ERROR\", {\n value\n });\n }\n const result = value.split(\":\");\n if (result.length === 3) {\n return value;\n } else if (result.length === 2) {\n return `${value}:00`;\n }\n return def;\n};\n\nconst dateTimeWithTimezone: TransformerCallable<string> = value => {\n if (!value) {\n return null;\n } else if (value.includes(\"T\") === false) {\n return value;\n }\n\n const [initialDate, initialTimeZone] = value.split(\"T\");\n\n let date: string;\n\n try {\n const dateObj = new Date(initialDate);\n date = dateObj.toISOString().substr(0, 10);\n } catch (ex) {\n throw new WebinyError(\n \"Could not transform received date into Date object.\",\n \"DATE_TRANSFORM_ERROR\",\n {\n value,\n date: initialDate,\n time: initialTimeZone\n }\n );\n }\n const [initialTime] = extractTimeZone(initialTimeZone);\n\n const time = extractTime(initialTime, \"00:00:00\") as string;\n\n return value.replace(initialDate, date).replace(initialTime, time);\n};\n\nconst dateTimeWithoutTimezone: TransformerCallable<string> = (value): string | null => {\n if (!value) {\n return null;\n } else if (value.includes(\" \") === false) {\n return value;\n }\n try {\n return new Date(`${value.replace(\" \", \"T\")}.000Z`).toISOString();\n } catch (error) {\n throw new WebinyError(`Could not transform value to a date.`, \"TRANSFORM_ERROR\", {\n error,\n type: \"dateTimeWithoutTimezone\",\n value\n });\n }\n};\n\nconst time: TransformerCallable<string> = value => {\n if (!value) {\n return null;\n }\n return extractTime(value);\n};\n\nconst transformers: Record<string, TransformerCallable<string>> = {\n time,\n date: dateOnly,\n dateTimeWithoutTimezone,\n dateTimeWithTimezone\n};\n\nexport default (): CmsFieldValueTransformer => ({\n type: \"cms-field-value-transformer\",\n name: \"cms-field-value-transformer-date\",\n fieldType: \"datetime\",\n transform: (value: any, field) => {\n // check types in packages/app-headless-cms/src/admin/plugins/fieldRenderers/dateTime/dateTimeField.tsx\n const type = field.settings && field.settings.type ? String(field.settings.type) : null;\n if (!type) {\n return value;\n }\n const transform = transformers[type];\n\n if (!transform) {\n return value;\n }\n\n return transform(value);\n }\n});\n"]}
1
+ {"version":3,"sources":["dateTransformer.ts"],"names":["WebinyError","dateOnly","value","date","Date","toISOString","slice","error","type","extractTimeZone","result","includes","split","length","extractTime","def","dateTimeWithTimezone","initialDate","initialTimeZone","dateObj","ex","time","initialTime","replace","dateTimeWithoutTimezone","transformers","name","fieldType","transform","field","settings","String"],"mappings":";AACA,OAAOA,WAAP,MAAwB,eAAxB;;AAKA,IAAMC,QAAqC,GAAG,SAAxCA,QAAwC,CAAAC,KAAK,EAAI;AACnD,MAAI,CAACA,KAAL,EAAY;AACR,WAAO,IAAP;AACH;;AACD,MAAI;AACA,QAAMC,IAAI,GAAG,IAAIC,IAAJ,CAASF,KAAT,EAAgBG,WAAhB,EAAb;AACA,WAAOF,IAAI,CAACG,KAAL,CAAW,CAAX,EAAc,EAAd,CAAP;AACH,GAHD,CAGE,OAAOC,KAAP,EAAc;AACZ,UAAM,IAAIP,WAAJ,yCAAwD,iBAAxD,EAA2E;AAC7EO,MAAAA,KAAK,EAALA,KAD6E;AAE7EC,MAAAA,IAAI,EAAE,MAFuE;AAG7EN,MAAAA,KAAK,EAALA;AAH6E,KAA3E,CAAN;AAKH;AACJ,CAdD;;AAgBA,IAAMO,eAAe,GAAG,SAAlBA,eAAkB,CAACP,KAAD,EAAsC;AAC1D,MAAIQ,MAAJ;;AACA,MAAI,CAACR,KAAL,EAAY;AACR,WAAO,CAAC,IAAIE,IAAJ,GAAWC,WAAX,EAAD,EAA2B,OAA3B,CAAP;AACH,GAFD,MAEO,IAAIH,KAAK,CAACS,QAAN,CAAe,GAAf,CAAJ,EAAyB;AAC5BD,IAAAA,MAAM,GAAGR,KAAK,CAACU,KAAN,CAAY,GAAZ,CAAT;AACH,GAFM,MAEA;AACHF,IAAAA,MAAM,GAAGR,KAAK,CAACU,KAAN,CAAY,GAAZ,CAAT;AACH;;AACD,MAAI,CAACF,MAAD,IAAWA,MAAM,CAACG,MAAP,KAAkB,CAAjC,EAAoC;AAChC,UAAM,IAAIb,WAAJ,8DAEF,iBAFE,EAGF;AACIE,MAAAA,KAAK,EAALA;AADJ,KAHE,CAAN;AAOH;;AACD,SAAOQ,MAAP;AACH,CAnBD;;AAqBA,IAAMI,WAAW,GAAG,SAAdA,WAAc,CAACZ,KAAD,EAA8D;AAAA,MAA7Ca,GAA6C,uEAAxB,IAAwB;;AAC9E,MAAI,CAACb,KAAL,EAAY;AACR,WAAO,IAAP;AACH,GAFD,MAEO,IAAIA,KAAK,CAACS,QAAN,CAAe,GAAf,MAAwB,KAA5B,EAAmC;AACtC,UAAM,IAAIX,WAAJ,CAAgB,qCAAhB,EAAuD,YAAvD,EAAqE;AACvEE,MAAAA,KAAK,EAALA;AADuE,KAArE,CAAN;AAGH;;AACD,MAAMQ,MAAM,GAAGR,KAAK,CAACU,KAAN,CAAY,GAAZ,CAAf;;AACA,MAAIF,MAAM,CAACG,MAAP,KAAkB,CAAtB,EAAyB;AACrB,WAAOX,KAAP;AACH,GAFD,MAEO,IAAIQ,MAAM,CAACG,MAAP,KAAkB,CAAtB,EAAyB;AAC5B,qBAAUX,KAAV;AACH;;AACD,SAAOa,GAAP;AACH,CAfD;;AAiBA,IAAMC,oBAAiD,GAAG,SAApDA,oBAAoD,CAAAd,KAAK,EAAI;AAC/D,MAAI,CAACA,KAAL,EAAY;AACR,WAAO,IAAP;AACH,GAFD,MAEO,IAAIA,KAAK,CAACS,QAAN,CAAe,GAAf,MAAwB,KAA5B,EAAmC;AACtC,WAAOT,KAAP;AACH;;AAED,qBAAuCA,KAAK,CAACU,KAAN,CAAY,GAAZ,CAAvC;AAAA;AAAA,MAAOK,WAAP;AAAA,MAAoBC,eAApB;;AAEA,MAAIf,IAAJ;;AAEA,MAAI;AACA,QAAMgB,OAAO,GAAG,IAAIf,IAAJ,CAASa,WAAT,CAAhB;AACAd,IAAAA,IAAI,GAAGgB,OAAO,CAACd,WAAR,GAAsBC,KAAtB,CAA4B,CAA5B,EAA+B,EAA/B,CAAP;AACH,GAHD,CAGE,OAAOc,EAAP,EAAW;AACT,UAAM,IAAIpB,WAAJ,CACF,qDADE,EAEF,sBAFE,EAGF;AACIE,MAAAA,KAAK,EAALA,KADJ;AAEIC,MAAAA,IAAI,EAAEc,WAFV;AAGII,MAAAA,IAAI,EAAEH;AAHV,KAHE,CAAN;AASH;;AACD,yBAAsBT,eAAe,CAACS,eAAD,CAArC;AAAA;AAAA,MAAOI,WAAP;;AAEA,MAAMD,IAAI,GAAGP,WAAW,CAACQ,WAAD,EAAc,UAAd,CAAxB;AAEA,SAAOpB,KAAK,CAACqB,OAAN,CAAcN,WAAd,EAA2Bd,IAA3B,EAAiCoB,OAAjC,CAAyCD,WAAzC,EAAsDD,IAAtD,CAAP;AACH,CA9BD;;AAgCA,IAAMG,uBAAoD,GAAG,SAAvDA,uBAAuD,CAACtB,KAAD,EAA0B;AACnF,MAAI,CAACA,KAAL,EAAY;AACR,WAAO,IAAP;AACH,GAFD,MAEO,IAAIA,KAAK,CAACS,QAAN,CAAe,GAAf,MAAwB,KAA5B,EAAmC;AACtC,WAAOT,KAAP;AACH;;AACD,MAAI;AACA,WAAO,IAAIE,IAAJ,WAAYF,KAAK,CAACqB,OAAN,CAAc,GAAd,EAAmB,GAAnB,CAAZ,YAA4ClB,WAA5C,EAAP;AACH,GAFD,CAEE,OAAOE,KAAP,EAAc;AACZ,UAAM,IAAIP,WAAJ,yCAAwD,iBAAxD,EAA2E;AAC7EO,MAAAA,KAAK,EAALA,KAD6E;AAE7EC,MAAAA,IAAI,EAAE,yBAFuE;AAG7EN,MAAAA,KAAK,EAALA;AAH6E,KAA3E,CAAN;AAKH;AACJ,CAfD;;AAiBA,IAAMmB,IAAiC,GAAG,SAApCA,IAAoC,CAAAnB,KAAK,EAAI;AAC/C,MAAI,CAACA,KAAL,EAAY;AACR,WAAO,IAAP;AACH;;AACD,SAAOY,WAAW,CAACZ,KAAD,CAAlB;AACH,CALD;;AAOA,IAAMuB,YAAyD,GAAG;AAC9DJ,EAAAA,IAAI,EAAJA,IAD8D;AAE9DlB,EAAAA,IAAI,EAAEF,QAFwD;AAG9DuB,EAAAA,uBAAuB,EAAvBA,uBAH8D;AAI9DR,EAAAA,oBAAoB,EAApBA;AAJ8D,CAAlE;AAOA,gBAAe;AAAA,SAAiC;AAC5CR,IAAAA,IAAI,EAAE,6BADsC;AAE5CkB,IAAAA,IAAI,EAAE,kCAFsC;AAG5CC,IAAAA,SAAS,EAAE,UAHiC;AAI5CC,IAAAA,SAAS,EAAE,mBAAC1B,KAAD,EAAa2B,KAAb,EAAuB;AAC9B;AACA,UAAMrB,IAAI,GAAGqB,KAAK,CAACC,QAAN,IAAkBD,KAAK,CAACC,QAAN,CAAetB,IAAjC,GAAwCuB,MAAM,CAACF,KAAK,CAACC,QAAN,CAAetB,IAAhB,CAA9C,GAAsE,IAAnF;;AACA,UAAI,CAACA,IAAL,EAAW;AACP,eAAON,KAAP;AACH;;AACD,UAAM0B,SAAS,GAAGH,YAAY,CAACjB,IAAD,CAA9B;;AAEA,UAAI,CAACoB,SAAL,EAAgB;AACZ,eAAO1B,KAAP;AACH;;AAED,aAAO0B,SAAS,CAAC1B,KAAD,CAAhB;AACH;AAjB2C,GAAjC;AAAA,CAAf","sourcesContent":["import { CmsFieldValueTransformer } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\n\ninterface TransformerCallable<T> {\n (value?: T): string | null;\n}\nconst dateOnly: TransformerCallable<string> = value => {\n if (!value) {\n return null;\n }\n try {\n const date = new Date(value).toISOString();\n return date.slice(0, 10);\n } catch (error) {\n throw new WebinyError(`Could not transform value to a date.`, \"TRANSFORM_ERROR\", {\n error,\n type: \"date\",\n value\n });\n }\n};\n\nconst extractTimeZone = (value?: string): [string, string] => {\n let result: string[];\n if (!value) {\n return [new Date().toISOString(), \"00:00\"];\n } else if (value.includes(\"+\")) {\n result = value.split(\"+\");\n } else {\n result = value.split(\"-\");\n }\n if (!result || result.length !== 2) {\n throw new WebinyError(\n `Could not determine time and timezone out of given value.`,\n \"TIME_ZONE_ERROR\",\n {\n value\n }\n );\n }\n return result as [string, string];\n};\n\nconst extractTime = (value?: string, def: string | null = null): string | null => {\n if (!value) {\n return null;\n } else if (value.includes(\":\") === false) {\n throw new WebinyError(\"Time value is missing : separators.\", \"TIME_ERROR\", {\n value\n });\n }\n const result = value.split(\":\");\n if (result.length === 3) {\n return value;\n } else if (result.length === 2) {\n return `${value}:00`;\n }\n return def;\n};\n\nconst dateTimeWithTimezone: TransformerCallable<string> = value => {\n if (!value) {\n return null;\n } else if (value.includes(\"T\") === false) {\n return value;\n }\n\n const [initialDate, initialTimeZone] = value.split(\"T\");\n\n let date: string;\n\n try {\n const dateObj = new Date(initialDate);\n date = dateObj.toISOString().slice(0, 10);\n } catch (ex) {\n throw new WebinyError(\n \"Could not transform received date into Date object.\",\n \"DATE_TRANSFORM_ERROR\",\n {\n value,\n date: initialDate,\n time: initialTimeZone\n }\n );\n }\n const [initialTime] = extractTimeZone(initialTimeZone);\n\n const time = extractTime(initialTime, \"00:00:00\") as string;\n\n return value.replace(initialDate, date).replace(initialTime, time);\n};\n\nconst dateTimeWithoutTimezone: TransformerCallable<string> = (value): string | null => {\n if (!value) {\n return null;\n } else if (value.includes(\" \") === false) {\n return value;\n }\n try {\n return new Date(`${value.replace(\" \", \"T\")}.000Z`).toISOString();\n } catch (error) {\n throw new WebinyError(`Could not transform value to a date.`, \"TRANSFORM_ERROR\", {\n error,\n type: \"dateTimeWithoutTimezone\",\n value\n });\n }\n};\n\nconst time: TransformerCallable<string> = value => {\n if (!value) {\n return null;\n }\n return extractTime(value);\n};\n\nconst transformers: Record<string, TransformerCallable<string>> = {\n time,\n date: dateOnly,\n dateTimeWithoutTimezone,\n dateTimeWithTimezone\n};\n\nexport default (): CmsFieldValueTransformer => ({\n type: \"cms-field-value-transformer\",\n name: \"cms-field-value-transformer-date\",\n fieldType: \"datetime\",\n transform: (value: any, field) => {\n // check types in packages/app-headless-cms/src/admin/plugins/fieldRenderers/dateTime/dateTimeField.tsx\n const type = field.settings && field.settings.type ? String(field.settings.type) : null;\n if (!type) {\n return value;\n }\n const transform = transformers[type];\n\n if (!transform) {\n return value;\n }\n\n return transform(value);\n }\n});\n"]}
@@ -13,9 +13,9 @@ export interface ListQueryVariables {
13
13
  }
14
14
  export interface ContentEntriesContext {
15
15
  contentModel: CmsEditorContentModel;
16
- sorters: CmsEntriesSorter[];
17
16
  canCreate: boolean;
18
17
  listQueryVariables: ListQueryVariables;
18
+ sorters: CmsEntriesSorter[];
19
19
  setListQueryVariables: Dispatch<SetStateAction<ListQueryVariables>>;
20
20
  insideDialog?: boolean;
21
21
  }