@webiny/app-headless-cms 5.25.0 → 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 (41) 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/index.d.ts +1 -1
  11. package/admin/plugins/routes.js +2 -4
  12. package/admin/plugins/routes.js.map +1 -1
  13. package/admin/plugins/transformers/dateTransformer.js +2 -2
  14. package/admin/plugins/transformers/dateTransformer.js.map +1 -1
  15. package/admin/views/contentEntries/ContentEntriesContext.d.ts +1 -1
  16. package/admin/views/contentEntries/ContentEntriesContext.js +34 -22
  17. package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
  18. package/admin/views/contentEntries/ContentEntriesList.js +40 -43
  19. package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
  20. package/admin/views/contentEntries/ContentEntry/cache.js +1 -1
  21. package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -1
  22. package/admin/views/contentEntries/experiment/ContentEntriesModule.d.ts +1 -0
  23. package/admin/views/contentEntries/experiment/ContentEntriesModule.js +50 -0
  24. package/admin/views/contentEntries/experiment/ContentEntriesModule.js.map +1 -0
  25. package/admin/views/contentEntries/experiment/ContentEntriesRenderer.d.ts +2 -0
  26. package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js +12 -0
  27. package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js.map +1 -0
  28. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.d.ts +35 -0
  29. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js +130 -0
  30. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js.map +1 -0
  31. package/admin/views/contentEntries/experiment/Property.d.ts +34 -0
  32. package/admin/views/contentEntries/experiment/Property.js +232 -0
  33. package/admin/views/contentEntries/experiment/Property.js.map +1 -0
  34. package/admin/views/contentEntries/hooks/useContentEntriesList.js +2 -1
  35. package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
  36. package/admin/views/contentModels/NewContentModelDialog.js +8 -5
  37. package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
  38. package/index.d.ts +10 -0
  39. package/index.js +11 -1
  40. package/index.js.map +1 -1
  41. 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"]}
@@ -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":"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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.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
  }
@@ -1,28 +1,33 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
3
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
4
 
4
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
5
+ var _templateObject, _templateObject2;
5
6
 
6
- import React, { useState, useMemo } from "react";
7
+ import React, { useState, useMemo, useCallback } from "react";
7
8
  import { useSecurity } from "@webiny/app-security";
8
9
  import { i18n } from "@webiny/app/i18n";
10
+ import { useContentEntriesViewConfig } from "./experiment/ContentEntriesViewConfig";
9
11
  var t = i18n.ns("app-headless-cms/admin/contents/entries");
10
- var SORTERS = [{
11
- label: t(_templateObject || (_templateObject = _taggedTemplateLiteral(["Newest to oldest"]))),
12
- value: "savedOn_DESC"
13
- }, {
14
- label: t(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Oldest to newest"]))),
15
- value: "savedOn_ASC"
16
- }];
17
12
  export var Context = /*#__PURE__*/React.createContext({
18
13
  contentModel: null,
19
- sorters: [],
20
14
  canCreate: false,
21
15
  listQueryVariables: {},
16
+ sorters: [],
22
17
  setListQueryVariables: function setListQueryVariables() {
23
18
  return void 0;
24
19
  }
25
20
  });
21
+
22
+ function toEntriesSorters(sorters) {
23
+ return sorters.map(function (s) {
24
+ return {
25
+ label: s.label,
26
+ value: s.name
27
+ };
28
+ });
29
+ }
30
+
26
31
  export var Provider = function Provider(_ref) {
27
32
  var contentModel = _ref.contentModel,
28
33
  children = _ref.children,
@@ -32,13 +37,11 @@ export var Provider = function Provider(_ref) {
32
37
  identity = _useSecurity.identity,
33
38
  getPermission = _useSecurity.getPermission;
34
39
 
35
- var _useState = useState({
36
- sort: [SORTERS[0].value]
37
- }),
38
- _useState2 = _slicedToArray(_useState, 2),
39
- listQueryVariables = _useState2[0],
40
- setListQueryVariables = _useState2[1];
41
-
40
+ var viewConfig = useContentEntriesViewConfig();
41
+ var appliesToContentModel = useCallback(function (_ref2) {
42
+ var modelIds = _ref2.modelIds;
43
+ return modelIds.length === 0 || modelIds.includes(contentModel.modelId);
44
+ }, [contentModel]);
42
45
  var canCreate = useMemo(function () {
43
46
  var permission = getPermission("cms.contentEntry");
44
47
 
@@ -59,21 +62,30 @@ export var Provider = function Provider(_ref) {
59
62
  var titleFieldLabel = titleField ? titleField.label : null;
60
63
 
61
64
  if (!titleFieldLabel) {
62
- return SORTERS;
65
+ return toEntriesSorters(viewConfig.sorters.filter(appliesToContentModel));
63
66
  }
64
67
 
65
- return [].concat(SORTERS, [{
66
- label: t(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["{titleFieldLabel} A-Z"])))({
68
+ return [].concat(_toConsumableArray(toEntriesSorters(viewConfig.sorters.filter(appliesToContentModel))), [{
69
+ label: t(_templateObject || (_templateObject = _taggedTemplateLiteral(["{titleFieldLabel} A-Z"])))({
67
70
  titleFieldLabel: titleFieldLabel
68
71
  }),
69
72
  value: "".concat(contentModel.titleFieldId, "_ASC")
70
73
  }, {
71
- label: t(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["{titleFieldLabel} Z-A"])))({
74
+ label: t(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["{titleFieldLabel} Z-A"])))({
72
75
  titleFieldLabel: titleFieldLabel
73
76
  }),
74
77
  value: "".concat(contentModel.titleFieldId, "_DESC")
75
78
  }]);
76
- }, [contentModel.modelId]);
79
+ }, [viewConfig.sorters, contentModel.modelId]);
80
+
81
+ var _useState = useState({
82
+ sort: [sorters[0].value],
83
+ where: {}
84
+ }),
85
+ _useState2 = _slicedToArray(_useState, 2),
86
+ listQueryVariables = _useState2[0],
87
+ setListQueryVariables = _useState2[1];
88
+
77
89
  var value = {
78
90
  insideDialog: insideDialog,
79
91
  contentModel: contentModel,
@@ -1 +1 @@
1
- {"version":3,"sources":["ContentEntriesContext.tsx"],"names":["React","useState","useMemo","useSecurity","i18n","t","ns","SORTERS","label","value","Context","createContext","contentModel","sorters","canCreate","listQueryVariables","setListQueryVariables","Provider","children","insideDialog","identity","getPermission","sort","permission","rwd","includes","titleField","fields","find","field","fieldId","titleFieldId","titleFieldLabel","modelId","displayName"],"mappings":"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","sourcesContent":["import React, { useState, useMemo, Dispatch, SetStateAction } from \"react\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CmsEditorContentModel, CmsSecurityPermission } from \"~/types\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/contents/entries\");\n\nexport interface CmsEntriesSorter {\n label: string;\n value: string;\n}\nconst SORTERS: CmsEntriesSorter[] = [\n {\n label: t`Newest to oldest`,\n value: \"savedOn_DESC\"\n },\n {\n label: t`Oldest to newest`,\n value: \"savedOn_ASC\"\n }\n];\n\nexport interface ListQueryVariables {\n sort?: string[];\n status?: string;\n where?: {\n [key: string]: any;\n };\n}\n\nexport interface ContentEntriesContext {\n contentModel: CmsEditorContentModel;\n sorters: CmsEntriesSorter[];\n canCreate: boolean;\n listQueryVariables: ListQueryVariables;\n setListQueryVariables: Dispatch<SetStateAction<ListQueryVariables>>;\n insideDialog?: boolean;\n}\n\nexport const Context = React.createContext<ContentEntriesContext>({\n contentModel: null as unknown as CmsEditorContentModel,\n sorters: [],\n canCreate: false,\n listQueryVariables: {},\n setListQueryVariables: () => {\n return void 0;\n }\n});\n\nexport interface ContentEntriesContextProviderProps {\n contentModel: CmsEditorContentModel;\n children: React.ReactNode;\n insideDialog?: boolean;\n}\n\nexport const Provider: React.FC<ContentEntriesContextProviderProps> = ({\n contentModel,\n children,\n insideDialog\n}) => {\n const { identity, getPermission } = useSecurity();\n\n const [listQueryVariables, setListQueryVariables] = useState<ListQueryVariables>({\n sort: [SORTERS[0].value]\n });\n\n const canCreate = useMemo((): boolean => {\n const permission = getPermission<CmsSecurityPermission>(\"cms.contentEntry\");\n if (!permission) {\n return false;\n }\n\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"w\");\n }, [identity]);\n\n const sorters = useMemo((): CmsEntriesSorter[] => {\n const titleField = contentModel.fields.find(\n field => field.fieldId === contentModel.titleFieldId\n );\n const titleFieldLabel = titleField ? titleField.label : null;\n if (!titleFieldLabel) {\n return SORTERS;\n }\n\n return [\n ...SORTERS,\n {\n label: t`{titleFieldLabel} A-Z`({ titleFieldLabel }),\n value: `${contentModel.titleFieldId}_ASC`\n },\n {\n label: t`{titleFieldLabel} Z-A`({ titleFieldLabel }),\n value: `${contentModel.titleFieldId}_DESC`\n }\n ];\n }, [contentModel.modelId]);\n\n const value = {\n insideDialog,\n contentModel,\n sorters,\n canCreate,\n listQueryVariables,\n setListQueryVariables\n };\n\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nProvider.displayName = \"ContentEntriesProvider\";\n"]}
1
+ {"version":3,"sources":["ContentEntriesContext.tsx"],"names":["React","useState","useMemo","useCallback","useSecurity","i18n","useContentEntriesViewConfig","t","ns","Context","createContext","contentModel","canCreate","listQueryVariables","sorters","setListQueryVariables","toEntriesSorters","map","s","label","value","name","Provider","children","insideDialog","identity","getPermission","viewConfig","appliesToContentModel","modelIds","length","includes","modelId","permission","rwd","titleField","fields","find","field","fieldId","titleFieldId","titleFieldLabel","filter","sort","where","displayName"],"mappings":"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","sourcesContent":["import React, { useState, useMemo, Dispatch, SetStateAction, useCallback } from \"react\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CmsEditorContentModel, CmsSecurityPermission } from \"~/types\";\nimport {\n useContentEntriesViewConfig,\n ContentEntriesViewConfigSorter\n} from \"./experiment/ContentEntriesViewConfig\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/contents/entries\");\n\nexport interface CmsEntriesSorter {\n label: string;\n value: string;\n}\n\nexport interface ListQueryVariables {\n sort?: string[];\n status?: string;\n where?: {\n [key: string]: any;\n };\n}\n\nexport interface ContentEntriesContext {\n contentModel: CmsEditorContentModel;\n canCreate: boolean;\n listQueryVariables: ListQueryVariables;\n sorters: CmsEntriesSorter[];\n setListQueryVariables: Dispatch<SetStateAction<ListQueryVariables>>;\n insideDialog?: boolean;\n}\n\nexport const Context = React.createContext<ContentEntriesContext>({\n contentModel: null as unknown as CmsEditorContentModel,\n canCreate: false,\n listQueryVariables: {},\n sorters: [],\n setListQueryVariables: () => {\n return void 0;\n }\n});\n\nexport interface ContentEntriesContextProviderProps {\n contentModel: CmsEditorContentModel;\n children: React.ReactNode;\n insideDialog?: boolean;\n}\n\nfunction toEntriesSorters(sorters: ContentEntriesViewConfigSorter[]) {\n return sorters.map(s => ({ label: s.label, value: s.name }));\n}\n\nexport const Provider: React.FC<ContentEntriesContextProviderProps> = ({\n contentModel,\n children,\n insideDialog\n}) => {\n const { identity, getPermission } = useSecurity();\n const viewConfig = useContentEntriesViewConfig();\n\n const appliesToContentModel = useCallback(\n ({ modelIds }: ContentEntriesViewConfigSorter) => {\n return modelIds.length === 0 || modelIds.includes(contentModel.modelId);\n },\n [contentModel]\n );\n\n const canCreate = useMemo((): boolean => {\n const permission = getPermission<CmsSecurityPermission>(\"cms.contentEntry\");\n if (!permission) {\n return false;\n }\n\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"w\");\n }, [identity]);\n\n const sorters = useMemo((): CmsEntriesSorter[] => {\n const titleField = contentModel.fields.find(\n field => field.fieldId === contentModel.titleFieldId\n );\n\n const titleFieldLabel = titleField ? titleField.label : null;\n if (!titleFieldLabel) {\n return toEntriesSorters(viewConfig.sorters.filter(appliesToContentModel));\n }\n\n return [\n ...toEntriesSorters(viewConfig.sorters.filter(appliesToContentModel)),\n {\n label: t`{titleFieldLabel} A-Z`({ titleFieldLabel }),\n value: `${contentModel.titleFieldId}_ASC`\n },\n {\n label: t`{titleFieldLabel} Z-A`({ titleFieldLabel }),\n value: `${contentModel.titleFieldId}_DESC`\n }\n ];\n }, [viewConfig.sorters, contentModel.modelId]);\n\n const [listQueryVariables, setListQueryVariables] = useState<ListQueryVariables>({\n sort: [sorters[0].value],\n where: {}\n });\n\n const value = {\n insideDialog,\n contentModel,\n sorters,\n canCreate,\n listQueryVariables,\n setListQueryVariables\n };\n\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nProvider.displayName = \"ContentEntriesProvider\";\n"]}