@webiny/languages 0.0.0-unstable.e6f0dc8ca7

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 (132) hide show
  1. package/LICENSE +36 -0
  2. package/Languages.d.ts +2 -0
  3. package/Languages.js +12 -0
  4. package/Languages.js.map +1 -0
  5. package/README.md +11 -0
  6. package/admin/Extension.d.ts +2 -0
  7. package/admin/Extension.js +33 -0
  8. package/admin/Extension.js.map +1 -0
  9. package/admin/GenericCell.d.ts +6 -0
  10. package/admin/GenericCell.js +16 -0
  11. package/admin/GenericCell.js.map +1 -0
  12. package/admin/LanguageEntryList.d.ts +2 -0
  13. package/admin/LanguageEntryList.js +36 -0
  14. package/admin/LanguageEntryList.js.map +1 -0
  15. package/admin/PermissionsSchema.d.ts +5 -0
  16. package/admin/PermissionsSchema.js +8 -0
  17. package/admin/PermissionsSchema.js.map +1 -0
  18. package/admin/SecurityPermission.d.ts +2 -0
  19. package/admin/SecurityPermission.js +18 -0
  20. package/admin/SecurityPermission.js.map +1 -0
  21. package/admin/features/listLanguages/LanguageEntryAfterCreateHandler.d.ts +11 -0
  22. package/admin/features/listLanguages/LanguageEntryAfterCreateHandler.js +21 -0
  23. package/admin/features/listLanguages/LanguageEntryAfterCreateHandler.js.map +1 -0
  24. package/admin/features/listLanguages/LanguageEntryAfterDeleteHandler.d.ts +11 -0
  25. package/admin/features/listLanguages/LanguageEntryAfterDeleteHandler.js +20 -0
  26. package/admin/features/listLanguages/LanguageEntryAfterDeleteHandler.js.map +1 -0
  27. package/admin/features/listLanguages/LanguageEntryAfterUpdateHandler.d.ts +11 -0
  28. package/admin/features/listLanguages/LanguageEntryAfterUpdateHandler.js +27 -0
  29. package/admin/features/listLanguages/LanguageEntryAfterUpdateHandler.js.map +1 -0
  30. package/admin/features/listLanguages/ListLanguagesGateway.d.ts +11 -0
  31. package/admin/features/listLanguages/ListLanguagesGateway.js +43 -0
  32. package/admin/features/listLanguages/ListLanguagesGateway.js.map +1 -0
  33. package/admin/features/listLanguages/ListLanguagesRepository.d.ts +13 -0
  34. package/admin/features/listLanguages/ListLanguagesRepository.js +30 -0
  35. package/admin/features/listLanguages/ListLanguagesRepository.js.map +1 -0
  36. package/admin/features/listLanguages/ListLanguagesUseCase.d.ts +10 -0
  37. package/admin/features/listLanguages/ListLanguagesUseCase.js +15 -0
  38. package/admin/features/listLanguages/ListLanguagesUseCase.js.map +1 -0
  39. package/admin/features/listLanguages/abstractions.d.ts +35 -0
  40. package/admin/features/listLanguages/abstractions.js +30 -0
  41. package/admin/features/listLanguages/abstractions.js.map +1 -0
  42. package/admin/features/listLanguages/feature.d.ts +6 -0
  43. package/admin/features/listLanguages/feature.js +30 -0
  44. package/admin/features/listLanguages/feature.js.map +1 -0
  45. package/admin/features/listLanguages/index.d.ts +2 -0
  46. package/admin/features/listLanguages/index.js +3 -0
  47. package/admin/features/listLanguages/index.js.map +1 -0
  48. package/admin/features/listLanguages/toLanguageDto.d.ts +3 -0
  49. package/admin/features/listLanguages/toLanguageDto.js +12 -0
  50. package/admin/features/listLanguages/toLanguageDto.js.map +1 -0
  51. package/admin/presentation/hooks/useLanguages.d.ts +5 -0
  52. package/admin/presentation/hooks/useLanguages.js +26 -0
  53. package/admin/presentation/hooks/useLanguages.js.map +1 -0
  54. package/api/Extension.d.ts +4 -0
  55. package/api/Extension.js +26 -0
  56. package/api/Extension.js.map +1 -0
  57. package/api/domain/Language.d.ts +8 -0
  58. package/api/domain/Language.js +3 -0
  59. package/api/domain/Language.js.map +1 -0
  60. package/api/domain/LanguageModel.d.ts +8 -0
  61. package/api/domain/LanguageModel.js +31 -0
  62. package/api/domain/LanguageModel.js.map +1 -0
  63. package/api/domain/errors.d.ts +11 -0
  64. package/api/domain/errors.js +22 -0
  65. package/api/domain/errors.js.map +1 -0
  66. package/api/domain/permissionsSchema.d.ts +5 -0
  67. package/api/domain/permissionsSchema.js +8 -0
  68. package/api/domain/permissionsSchema.js.map +1 -0
  69. package/api/features/AddCmsPermissions/AddCmsPermissions.d.ts +8 -0
  70. package/api/features/AddCmsPermissions/AddCmsPermissions.js +40 -0
  71. package/api/features/AddCmsPermissions/AddCmsPermissions.js.map +1 -0
  72. package/api/features/AddCmsPermissions/feature.d.ts +4 -0
  73. package/api/features/AddCmsPermissions/feature.js +10 -0
  74. package/api/features/AddCmsPermissions/feature.js.map +1 -0
  75. package/api/features/EnsureSingleDefaultLanguage/UnsetDefaultLanguagesHandler.d.ts +15 -0
  76. package/api/features/EnsureSingleDefaultLanguage/UnsetDefaultLanguagesHandler.js +58 -0
  77. package/api/features/EnsureSingleDefaultLanguage/UnsetDefaultLanguagesHandler.js.map +1 -0
  78. package/api/features/EnsureSingleDefaultLanguage/feature.d.ts +4 -0
  79. package/api/features/EnsureSingleDefaultLanguage/feature.js +10 -0
  80. package/api/features/EnsureSingleDefaultLanguage/feature.js.map +1 -0
  81. package/api/features/GetLanguageByCode/GetLanguageByCodeRepository.d.ts +13 -0
  82. package/api/features/GetLanguageByCode/GetLanguageByCodeRepository.js +52 -0
  83. package/api/features/GetLanguageByCode/GetLanguageByCodeRepository.js.map +1 -0
  84. package/api/features/GetLanguageByCode/GetLanguageByCodeUseCase.d.ts +8 -0
  85. package/api/features/GetLanguageByCode/GetLanguageByCodeUseCase.js +17 -0
  86. package/api/features/GetLanguageByCode/GetLanguageByCodeUseCase.js.map +1 -0
  87. package/api/features/GetLanguageByCode/abstractions.d.ts +33 -0
  88. package/api/features/GetLanguageByCode/abstractions.js +16 -0
  89. package/api/features/GetLanguageByCode/abstractions.js.map +1 -0
  90. package/api/features/GetLanguageByCode/feature.d.ts +4 -0
  91. package/api/features/GetLanguageByCode/feature.js +12 -0
  92. package/api/features/GetLanguageByCode/feature.js.map +1 -0
  93. package/api/features/GetLanguageByCode/index.d.ts +1 -0
  94. package/api/features/GetLanguageByCode/index.js +3 -0
  95. package/api/features/GetLanguageByCode/index.js.map +1 -0
  96. package/api/features/ListLanguages/ListLanguagesRepository.d.ts +13 -0
  97. package/api/features/ListLanguages/ListLanguagesRepository.js +46 -0
  98. package/api/features/ListLanguages/ListLanguagesRepository.js.map +1 -0
  99. package/api/features/ListLanguages/ListLanguagesUseCase.d.ts +8 -0
  100. package/api/features/ListLanguages/ListLanguagesUseCase.js +17 -0
  101. package/api/features/ListLanguages/ListLanguagesUseCase.js.map +1 -0
  102. package/api/features/ListLanguages/abstractions.d.ts +31 -0
  103. package/api/features/ListLanguages/abstractions.js +16 -0
  104. package/api/features/ListLanguages/abstractions.js.map +1 -0
  105. package/api/features/ListLanguages/feature.d.ts +4 -0
  106. package/api/features/ListLanguages/feature.js +12 -0
  107. package/api/features/ListLanguages/feature.js.map +1 -0
  108. package/api/features/ListLanguages/index.d.ts +1 -0
  109. package/api/features/ListLanguages/index.js +3 -0
  110. package/api/features/ListLanguages/index.js.map +1 -0
  111. package/api/features/Permissions/abstractions.d.ts +10 -0
  112. package/api/features/Permissions/abstractions.js +5 -0
  113. package/api/features/Permissions/abstractions.js.map +1 -0
  114. package/api/features/Permissions/feature.d.ts +4 -0
  115. package/api/features/Permissions/feature.js +6 -0
  116. package/api/features/Permissions/feature.js.map +1 -0
  117. package/api/graphql/LanguagesGraphQLSchema.d.ts +8 -0
  118. package/api/graphql/LanguagesGraphQLSchema.js +66 -0
  119. package/api/graphql/LanguagesGraphQLSchema.js.map +1 -0
  120. package/exports/admin/languages.d.ts +2 -0
  121. package/exports/admin/languages.js +3 -0
  122. package/exports/admin/languages.js.map +1 -0
  123. package/exports/api/languages.d.ts +2 -0
  124. package/exports/api/languages.js +4 -0
  125. package/exports/api/languages.js.map +1 -0
  126. package/index.d.ts +1 -0
  127. package/index.js +3 -0
  128. package/index.js.map +1 -0
  129. package/package.json +49 -0
  130. package/shared/constants.d.ts +1 -0
  131. package/shared/constants.js +3 -0
  132. package/shared/constants.js.map +1 -0
package/LICENSE ADDED
@@ -0,0 +1,36 @@
1
+ The Webiny Enterprise license (the “Enterprise License”)
2
+ Copyright (c) 2021 Webiny Ltd.
3
+
4
+ With regard to the Webiny Software:
5
+
6
+ This software and associated documentation files (the "Software") may only be
7
+ used in production, if you (and any entity that you represent) have agreed to,
8
+ and are in compliance with, the Webiny Subscription Terms of Service, available
9
+ at https://www.webiny.com/terms (the “Enterprise Terms”), or other
10
+ agreement governing the use of the Software, as agreed by you and Webiny,
11
+ and otherwise have a valid Webiny Enterprise license for the
12
+ correct number of user seats. Subject to the foregoing sentence, you are free to
13
+ modify this Software and publish patches to the Software. You agree that Webiny
14
+ and/or its licensors (as applicable) retain all right, title and interest in and
15
+ to all such modifications and/or patches, and all such modifications and/or
16
+ patches may only be used, copied, modified, displayed, distributed, or otherwise
17
+ exploited with a valid Webiny Enterprise license for the correct
18
+ number of user seats. Notwithstanding the foregoing, you may copy and modify
19
+ the Software for development and testing purposes, without requiring a
20
+ subscription. You agree that Webiny and/or its licensors (as applicable) retain
21
+ all right, title and interest in and to all such modifications. You are not
22
+ granted any other rights beyond what is expressly stated herein. Subject to the
23
+ foregoing, it is forbidden to copy, merge, publish, distribute, sublicense,
24
+ and/or sell the Software.
25
+
26
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
27
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
28
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
29
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
30
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
31
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32
+ SOFTWARE.
33
+
34
+ For all third party components incorporated into the Webiny Software, those
35
+ components are licensed under the original license provided by the owner of the
36
+ applicable component.
package/Languages.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const Languages: () => React.JSX.Element;
package/Languages.js ADDED
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import { Api, Admin } from "@webiny/project-aws";
3
+ import { Wcp } from "@webiny/project";
4
+ export const Languages = () => {
5
+ return /*#__PURE__*/React.createElement(Wcp.CanUseMultiTenancy, null, /*#__PURE__*/React.createElement(Api.Extension, {
6
+ src: import.meta.dirname + "/api/Extension.js"
7
+ }), /*#__PURE__*/React.createElement(Admin.Extension, {
8
+ src: import.meta.dirname + "/admin/Extension.js"
9
+ }));
10
+ };
11
+
12
+ //# sourceMappingURL=Languages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Api","Admin","Wcp","Languages","createElement","CanUseMultiTenancy","Extension","src","import","meta","dirname"],"sources":["Languages.tsx"],"sourcesContent":["import React from \"react\";\nimport { Api, Admin } from \"@webiny/project-aws\";\nimport { Wcp } from \"@webiny/project\";\n\nexport const Languages = () => {\n return (\n <Wcp.CanUseMultiTenancy>\n {/* Api extensions */}\n <Api.Extension src={import.meta.dirname + \"/api/Extension.js\"} />\n\n {/* Admin extensions */}\n <Admin.Extension src={import.meta.dirname + \"/admin/Extension.js\"} />\n </Wcp.CanUseMultiTenancy>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,EAAEC,KAAK,QAAQ,qBAAqB;AAChD,SAASC,GAAG,QAAQ,iBAAiB;AAErC,OAAO,MAAMC,SAAS,GAAGA,CAAA,KAAM;EAC3B,oBACIJ,KAAA,CAAAK,aAAA,CAACF,GAAG,CAACG,kBAAkB,qBAEnBN,KAAA,CAAAK,aAAA,CAACJ,GAAG,CAACM,SAAS;IAACC,GAAG,EAAEC,MAAM,CAACC,IAAI,CAACC,OAAO,GAAG;EAAoB,CAAE,CAAC,eAGjEX,KAAA,CAAAK,aAAA,CAACH,KAAK,CAACK,SAAS;IAACC,GAAG,EAAEC,MAAM,CAACC,IAAI,CAACC,OAAO,GAAG;EAAsB,CAAE,CAChD,CAAC;AAEjC,CAAC","ignoreList":[]}
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # @webiny/languages
2
+
3
+ > [!NOTE]
4
+ > This package is part of the [Webiny](https://www.webiny.com) monorepo.
5
+ > It’s **included in every Webiny project by default** and is not meant to be used as a standalone package.
6
+
7
+ 📘 **Documentation:** [https://www.webiny.com/docs](https://www.webiny.com/docs)
8
+
9
+ ---
10
+
11
+ _This README file is automatically generated during the publish process._
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const Extension: () => React.JSX.Element;
@@ -0,0 +1,33 @@
1
+ import React from "react";
2
+ import { AdminConfig, HasPermission, RegisterFeature } from "@webiny/app-admin";
3
+ import { useRouter } from "@webiny/app-admin";
4
+ import { Routes } from "@webiny/app-headless-cms";
5
+ import { LANGUAGE_MODEL_ID } from "../shared/constants.js";
6
+ import { SecurityPermission } from "./SecurityPermission.js";
7
+ import { LanguageEntryList } from "./LanguageEntryList.js";
8
+ import { ListLanguagesFeature } from "./features/listLanguages/index.js";
9
+ const {
10
+ Menu
11
+ } = AdminConfig;
12
+ export const Extension = () => {
13
+ const {
14
+ getLink
15
+ } = useRouter();
16
+ const link = getLink(Routes.ContentEntries.List, {
17
+ modelId: LANGUAGE_MODEL_ID
18
+ });
19
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RegisterFeature, {
20
+ feature: ListLanguagesFeature
21
+ }), /*#__PURE__*/React.createElement(SecurityPermission, null), /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(HasPermission, {
22
+ name: "languages.*"
23
+ }, /*#__PURE__*/React.createElement(Menu, {
24
+ parent: "settings.system",
25
+ name: "languages",
26
+ element: /*#__PURE__*/React.createElement(Menu.Link, {
27
+ text: "Languages",
28
+ to: link
29
+ })
30
+ }))), /*#__PURE__*/React.createElement(LanguageEntryList, null));
31
+ };
32
+
33
+ //# sourceMappingURL=Extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","AdminConfig","HasPermission","RegisterFeature","useRouter","Routes","LANGUAGE_MODEL_ID","SecurityPermission","LanguageEntryList","ListLanguagesFeature","Menu","Extension","getLink","link","ContentEntries","List","modelId","createElement","Fragment","feature","name","parent","element","Link","text","to"],"sources":["Extension.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig, HasPermission, RegisterFeature } from \"@webiny/app-admin\";\nimport { useRouter } from \"@webiny/app-admin\";\nimport { Routes } from \"@webiny/app-headless-cms\";\nimport { LANGUAGE_MODEL_ID } from \"~/shared/constants.js\";\nimport { SecurityPermission } from \"./SecurityPermission.js\";\nimport { LanguageEntryList } from \"~/admin/LanguageEntryList.js\";\nimport { ListLanguagesFeature } from \"./features/listLanguages/index.js\";\n\nconst { Menu } = AdminConfig;\n\nexport const Extension = () => {\n const { getLink } = useRouter();\n\n const link = getLink(Routes.ContentEntries.List, { modelId: LANGUAGE_MODEL_ID });\n\n return (\n <>\n <RegisterFeature feature={ListLanguagesFeature} />\n <SecurityPermission />\n <AdminConfig>\n <HasPermission name={\"languages.*\"}>\n <Menu\n parent={\"settings.system\"}\n name=\"languages\"\n element={<Menu.Link text=\"Languages\" to={link} />}\n />\n </HasPermission>\n </AdminConfig>\n <LanguageEntryList />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,EAAEC,aAAa,EAAEC,eAAe,QAAQ,mBAAmB;AAC/E,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,MAAM,QAAQ,0BAA0B;AACjD,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAE7B,MAAM;EAAEC;AAAK,CAAC,GAAGT,WAAW;AAE5B,OAAO,MAAMU,SAAS,GAAGA,CAAA,KAAM;EAC3B,MAAM;IAAEC;EAAQ,CAAC,GAAGR,SAAS,CAAC,CAAC;EAE/B,MAAMS,IAAI,GAAGD,OAAO,CAACP,MAAM,CAACS,cAAc,CAACC,IAAI,EAAE;IAAEC,OAAO,EAAEV;EAAkB,CAAC,CAAC;EAEhF,oBACIN,KAAA,CAAAiB,aAAA,CAAAjB,KAAA,CAAAkB,QAAA,qBACIlB,KAAA,CAAAiB,aAAA,CAACd,eAAe;IAACgB,OAAO,EAAEV;EAAqB,CAAE,CAAC,eAClDT,KAAA,CAAAiB,aAAA,CAACV,kBAAkB,MAAE,CAAC,eACtBP,KAAA,CAAAiB,aAAA,CAAChB,WAAW,qBACRD,KAAA,CAAAiB,aAAA,CAACf,aAAa;IAACkB,IAAI,EAAE;EAAc,gBAC/BpB,KAAA,CAAAiB,aAAA,CAACP,IAAI;IACDW,MAAM,EAAE,iBAAkB;IAC1BD,IAAI,EAAC,WAAW;IAChBE,OAAO,eAAEtB,KAAA,CAAAiB,aAAA,CAACP,IAAI,CAACa,IAAI;MAACC,IAAI,EAAC,WAAW;MAACC,EAAE,EAAEZ;IAAK,CAAE;EAAE,CACrD,CACU,CACN,CAAC,eACdb,KAAA,CAAAiB,aAAA,CAACT,iBAAiB,MAAE,CACtB,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import type { CmsContentEntry } from "@webiny/app-headless-cms/types.js";
3
+ export interface GenericCellProps {
4
+ render: (data: CmsContentEntry) => React.ReactNode;
5
+ }
6
+ export declare const GenericCell: (props: GenericCellProps) => React.JSX.Element;
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { ContentEntryListConfig } from "@webiny/app-headless-cms";
3
+ export const GenericCell = props => {
4
+ const {
5
+ useTableRow
6
+ } = ContentEntryListConfig.Browser.Table.Column;
7
+ const {
8
+ row
9
+ } = useTableRow();
10
+ if (!row.data.createdOn) {
11
+ return /*#__PURE__*/React.createElement(React.Fragment, null, "-");
12
+ }
13
+ return /*#__PURE__*/React.createElement(React.Fragment, null, props.render(row.data));
14
+ };
15
+
16
+ //# sourceMappingURL=GenericCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","ContentEntryListConfig","GenericCell","props","useTableRow","Browser","Table","Column","row","data","createdOn","createElement","Fragment","render"],"sources":["GenericCell.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms\";\nimport type { CmsContentEntry } from \"@webiny/app-headless-cms/types.js\";\n\nexport interface GenericCellProps {\n render: (data: CmsContentEntry) => React.ReactNode;\n}\n\nexport const GenericCell = (props: GenericCellProps) => {\n const { useTableRow } = ContentEntryListConfig.Browser.Table.Column;\n const { row } = useTableRow<CmsContentEntry>();\n\n if (!row.data.createdOn) {\n return <>{\"-\"}</>;\n }\n\n return <>{props.render(row.data)}</>;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,sBAAsB,QAAQ,0BAA0B;AAOjE,OAAO,MAAMC,WAAW,GAAIC,KAAuB,IAAK;EACpD,MAAM;IAAEC;EAAY,CAAC,GAAGH,sBAAsB,CAACI,OAAO,CAACC,KAAK,CAACC,MAAM;EACnE,MAAM;IAAEC;EAAI,CAAC,GAAGJ,WAAW,CAAkB,CAAC;EAE9C,IAAI,CAACI,GAAG,CAACC,IAAI,CAACC,SAAS,EAAE;IACrB,oBAAOV,KAAA,CAAAW,aAAA,CAAAX,KAAA,CAAAY,QAAA,QAAG,GAAM,CAAC;EACrB;EAEA,oBAAOZ,KAAA,CAAAW,aAAA,CAAAX,KAAA,CAAAY,QAAA,QAAGT,KAAK,CAACU,MAAM,CAACL,GAAG,CAACC,IAAI,CAAI,CAAC;AACxC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const LanguageEntryList: () => React.JSX.Element;
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+ import { ContentEntryListConfig } from "@webiny/app-headless-cms/exports/admin/cms/entry/list.js";
3
+ import { LANGUAGE_MODEL_ID } from "../shared/constants.js";
4
+ import { GenericCell } from "./GenericCell.js";
5
+ import { Tag } from "@webiny/admin-ui";
6
+ const {
7
+ Browser
8
+ } = ContentEntryListConfig;
9
+ export const LanguageEntryList = () => {
10
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ContentEntryListConfig, null, /*#__PURE__*/React.createElement(Browser.Table.Column, {
11
+ name: "code",
12
+ header: "Code",
13
+ modelIds: [LANGUAGE_MODEL_ID],
14
+ after: "name",
15
+ cell: /*#__PURE__*/React.createElement(GenericCell, {
16
+ render: data => data.values.code
17
+ })
18
+ }), /*#__PURE__*/React.createElement(Browser.Table.Column, {
19
+ name: "enabled",
20
+ header: "Is enabled?",
21
+ modelIds: [LANGUAGE_MODEL_ID],
22
+ after: "code",
23
+ cell: /*#__PURE__*/React.createElement(GenericCell, {
24
+ render: data => {
25
+ const enabled = data.values.enabled;
26
+ const variant = enabled ? "success" : "neutral-muted";
27
+ return /*#__PURE__*/React.createElement(Tag, {
28
+ variant: variant,
29
+ content: enabled ? "Yes" : "No"
30
+ });
31
+ }
32
+ })
33
+ })));
34
+ };
35
+
36
+ //# sourceMappingURL=LanguageEntryList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","ContentEntryListConfig","LANGUAGE_MODEL_ID","GenericCell","Tag","Browser","LanguageEntryList","createElement","Fragment","Table","Column","name","header","modelIds","after","cell","render","data","values","code","enabled","variant","content"],"sources":["LanguageEntryList.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { LANGUAGE_MODEL_ID } from \"~/shared/constants.js\";\nimport { GenericCell } from \"~/admin/GenericCell.js\";\nimport { Tag } from \"@webiny/admin-ui\";\n\nconst { Browser } = ContentEntryListConfig;\n\nexport const LanguageEntryList = () => {\n return (\n <>\n <ContentEntryListConfig>\n <Browser.Table.Column\n name={\"code\"}\n header={\"Code\"}\n modelIds={[LANGUAGE_MODEL_ID]}\n after={\"name\"}\n cell={<GenericCell render={data => data.values.code} />}\n />\n <Browser.Table.Column\n name={\"enabled\"}\n header={\"Is enabled?\"}\n modelIds={[LANGUAGE_MODEL_ID]}\n after={\"code\"}\n cell={\n <GenericCell\n render={data => {\n const enabled = data.values.enabled;\n const variant = enabled ? \"success\" : \"neutral-muted\";\n return <Tag variant={variant} content={enabled ? \"Yes\" : \"No\"} />;\n }}\n />\n }\n />\n </ContentEntryListConfig>\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,sBAAsB,QAAQ,0DAA0D;AACjG,SAASC,iBAAiB;AAC1B,SAASC,WAAW;AACpB,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAM;EAAEC;AAAQ,CAAC,GAAGJ,sBAAsB;AAE1C,OAAO,MAAMK,iBAAiB,GAAGA,CAAA,KAAM;EACnC,oBACIN,KAAA,CAAAO,aAAA,CAAAP,KAAA,CAAAQ,QAAA,qBACIR,KAAA,CAAAO,aAAA,CAACN,sBAAsB,qBACnBD,KAAA,CAAAO,aAAA,CAACF,OAAO,CAACI,KAAK,CAACC,MAAM;IACjBC,IAAI,EAAE,MAAO;IACbC,MAAM,EAAE,MAAO;IACfC,QAAQ,EAAE,CAACX,iBAAiB,CAAE;IAC9BY,KAAK,EAAE,MAAO;IACdC,IAAI,eAAEf,KAAA,CAAAO,aAAA,CAACJ,WAAW;MAACa,MAAM,EAAEC,IAAI,IAAIA,IAAI,CAACC,MAAM,CAACC;IAAK,CAAE;EAAE,CAC3D,CAAC,eACFnB,KAAA,CAAAO,aAAA,CAACF,OAAO,CAACI,KAAK,CAACC,MAAM;IACjBC,IAAI,EAAE,SAAU;IAChBC,MAAM,EAAE,aAAc;IACtBC,QAAQ,EAAE,CAACX,iBAAiB,CAAE;IAC9BY,KAAK,EAAE,MAAO;IACdC,IAAI,eACAf,KAAA,CAAAO,aAAA,CAACJ,WAAW;MACRa,MAAM,EAAEC,IAAI,IAAI;QACZ,MAAMG,OAAO,GAAGH,IAAI,CAACC,MAAM,CAACE,OAAO;QACnC,MAAMC,OAAO,GAAGD,OAAO,GAAG,SAAS,GAAG,eAAe;QACrD,oBAAOpB,KAAA,CAAAO,aAAA,CAACH,GAAG;UAACiB,OAAO,EAAEA,OAAQ;UAACC,OAAO,EAAEF,OAAO,GAAG,KAAK,GAAG;QAAK,CAAE,CAAC;MACrE;IAAE,CACL;EACJ,CACJ,CACmB,CAC1B,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ export declare const LANGUAGES_PERMISSIONS_SCHEMA: {
2
+ readonly prefix: "languages";
3
+ readonly fullAccess: true;
4
+ readonly readOnlyAccess: true;
5
+ };
@@ -0,0 +1,8 @@
1
+ import { createPermissionSchema } from "@webiny/app-admin";
2
+ export const LANGUAGES_PERMISSIONS_SCHEMA = createPermissionSchema({
3
+ prefix: "languages",
4
+ fullAccess: true,
5
+ readOnlyAccess: true
6
+ });
7
+
8
+ //# sourceMappingURL=PermissionsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createPermissionSchema","LANGUAGES_PERMISSIONS_SCHEMA","prefix","fullAccess","readOnlyAccess"],"sources":["PermissionsSchema.ts"],"sourcesContent":["import { createPermissionSchema } from \"@webiny/app-admin\";\n\nexport const LANGUAGES_PERMISSIONS_SCHEMA = createPermissionSchema({\n prefix: \"languages\",\n fullAccess: true,\n readOnlyAccess: true\n});\n"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,mBAAmB;AAE1D,OAAO,MAAMC,4BAA4B,GAAGD,sBAAsB,CAAC;EAC/DE,MAAM,EAAE,WAAW;EACnBC,UAAU,EAAE,IAAI;EAChBC,cAAc,EAAE;AACpB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const SecurityPermission: () => React.JSX.Element;
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { AdminConfig } from "@webiny/app-admin";
3
+ import { ReactComponent as PermissionsIcon } from "@webiny/icons/language.svg";
4
+ import { LANGUAGES_PERMISSIONS_SCHEMA } from "./PermissionsSchema.js";
5
+ const {
6
+ Security
7
+ } = AdminConfig;
8
+ export const SecurityPermission = () => {
9
+ return /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(Security.Permissions, {
10
+ name: "languages",
11
+ title: "Languages",
12
+ description: "Manage language permissions.",
13
+ icon: /*#__PURE__*/React.createElement(PermissionsIcon, null),
14
+ schema: LANGUAGES_PERMISSIONS_SCHEMA
15
+ }));
16
+ };
17
+
18
+ //# sourceMappingURL=SecurityPermission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","AdminConfig","ReactComponent","PermissionsIcon","LANGUAGES_PERMISSIONS_SCHEMA","Security","SecurityPermission","createElement","Permissions","name","title","description","icon","schema"],"sources":["SecurityPermission.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/language.svg\";\nimport { LANGUAGES_PERMISSIONS_SCHEMA } from \"~/admin/PermissionsSchema.js\";\n\nconst { Security } = AdminConfig;\n\nexport const SecurityPermission = () => {\n return (\n <AdminConfig>\n <Security.Permissions\n name=\"languages\"\n title=\"Languages\"\n description=\"Manage language permissions.\"\n icon={<PermissionsIcon />}\n schema={LANGUAGES_PERMISSIONS_SCHEMA}\n />\n </AdminConfig>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,cAAc,IAAIC,eAAe,QAAQ,4BAA4B;AAC9E,SAASC,4BAA4B;AAErC,MAAM;EAAEC;AAAS,CAAC,GAAGJ,WAAW;AAEhC,OAAO,MAAMK,kBAAkB,GAAGA,CAAA,KAAM;EACpC,oBACIN,KAAA,CAAAO,aAAA,CAACN,WAAW,qBACRD,KAAA,CAAAO,aAAA,CAACF,QAAQ,CAACG,WAAW;IACjBC,IAAI,EAAC,WAAW;IAChBC,KAAK,EAAC,WAAW;IACjBC,WAAW,EAAC,8BAA8B;IAC1CC,IAAI,eAAEZ,KAAA,CAAAO,aAAA,CAACJ,eAAe,MAAE,CAAE;IAC1BU,MAAM,EAAET;EAA6B,CACxC,CACQ,CAAC;AAEtB,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { EntryAfterCreateEventHandler } from "@webiny/app-headless-cms/exports/admin/cms.js";
2
+ import { LanguagesCache } from "./abstractions.js";
3
+ declare class LanguageEntryAfterCreateHandlerImpl implements EntryAfterCreateEventHandler.Interface {
4
+ private cache;
5
+ constructor(cache: LanguagesCache.Interface);
6
+ handle(event: EntryAfterCreateEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const LanguageEntryAfterCreateHandler: typeof LanguageEntryAfterCreateHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/app/features/eventPublisher/abstractions.js").IEventHandler<import("@webiny/app-headless-cms/features/contentEntry/events/EntryAfterCreateEvent.js").EntryAfterCreateEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,21 @@
1
+ import { EntryAfterCreateEventHandler } from "@webiny/app-headless-cms/exports/admin/cms.js";
2
+ import { LanguagesCache } from "./abstractions.js";
3
+ import { LANGUAGE_MODEL_ID } from "../../../shared/constants.js";
4
+ import { toLanguageDto } from "./toLanguageDto.js";
5
+ class LanguageEntryAfterCreateHandlerImpl {
6
+ constructor(cache) {
7
+ this.cache = cache;
8
+ }
9
+ async handle(event) {
10
+ if (event.payload.model.modelId !== LANGUAGE_MODEL_ID) {
11
+ return;
12
+ }
13
+ this.cache.addItems([toLanguageDto(event.payload.entry)]);
14
+ }
15
+ }
16
+ export const LanguageEntryAfterCreateHandler = EntryAfterCreateEventHandler.createImplementation({
17
+ implementation: LanguageEntryAfterCreateHandlerImpl,
18
+ dependencies: [LanguagesCache]
19
+ });
20
+
21
+ //# sourceMappingURL=LanguageEntryAfterCreateHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EntryAfterCreateEventHandler","LanguagesCache","LANGUAGE_MODEL_ID","toLanguageDto","LanguageEntryAfterCreateHandlerImpl","constructor","cache","handle","event","payload","model","modelId","addItems","entry","LanguageEntryAfterCreateHandler","createImplementation","implementation","dependencies"],"sources":["LanguageEntryAfterCreateHandler.ts"],"sourcesContent":["import { EntryAfterCreateEventHandler } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { LanguagesCache } from \"./abstractions.js\";\nimport { LANGUAGE_MODEL_ID } from \"~/shared/constants.js\";\nimport { toLanguageDto } from \"./toLanguageDto.js\";\n\nclass LanguageEntryAfterCreateHandlerImpl implements EntryAfterCreateEventHandler.Interface {\n constructor(private cache: LanguagesCache.Interface) {}\n\n async handle(event: EntryAfterCreateEventHandler.Event): Promise<void> {\n if (event.payload.model.modelId !== LANGUAGE_MODEL_ID) {\n return;\n }\n\n this.cache.addItems([toLanguageDto(event.payload.entry)]);\n }\n}\n\nexport const LanguageEntryAfterCreateHandler = EntryAfterCreateEventHandler.createImplementation({\n implementation: LanguageEntryAfterCreateHandlerImpl,\n dependencies: [LanguagesCache]\n});\n"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,+CAA+C;AAC5F,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,aAAa;AAEtB,MAAMC,mCAAmC,CAAmD;EACxFC,WAAWA,CAASC,KAA+B,EAAE;IAAA,KAAjCA,KAA+B,GAA/BA,KAA+B;EAAG;EAEtD,MAAMC,MAAMA,CAACC,KAAyC,EAAiB;IACnE,IAAIA,KAAK,CAACC,OAAO,CAACC,KAAK,CAACC,OAAO,KAAKT,iBAAiB,EAAE;MACnD;IACJ;IAEA,IAAI,CAACI,KAAK,CAACM,QAAQ,CAAC,CAACT,aAAa,CAACK,KAAK,CAACC,OAAO,CAACI,KAAK,CAAC,CAAC,CAAC;EAC7D;AACJ;AAEA,OAAO,MAAMC,+BAA+B,GAAGd,4BAA4B,CAACe,oBAAoB,CAAC;EAC7FC,cAAc,EAAEZ,mCAAmC;EACnDa,YAAY,EAAE,CAAChB,cAAc;AACjC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { EntryAfterDeleteEventHandler } from "@webiny/app-headless-cms/exports/admin/cms.js";
2
+ import { LanguagesCache } from "./abstractions.js";
3
+ declare class LanguageEntryAfterDeleteHandlerImpl implements EntryAfterDeleteEventHandler.Interface {
4
+ private cache;
5
+ constructor(cache: LanguagesCache.Interface);
6
+ handle(event: EntryAfterDeleteEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const LanguageEntryAfterDeleteHandler: typeof LanguageEntryAfterDeleteHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/app/features/eventPublisher/abstractions.js").IEventHandler<import("@webiny/app-headless-cms/features/contentEntry/events/EntryAfterDeleteEvent.js").EntryAfterDeleteEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,20 @@
1
+ import { EntryAfterDeleteEventHandler } from "@webiny/app-headless-cms/exports/admin/cms.js";
2
+ import { LanguagesCache } from "./abstractions.js";
3
+ import { LANGUAGE_MODEL_ID } from "../../../shared/constants.js";
4
+ class LanguageEntryAfterDeleteHandlerImpl {
5
+ constructor(cache) {
6
+ this.cache = cache;
7
+ }
8
+ async handle(event) {
9
+ if (event.payload.model.modelId !== LANGUAGE_MODEL_ID) {
10
+ return;
11
+ }
12
+ this.cache.removeItems(item => item.id === event.payload.entryId);
13
+ }
14
+ }
15
+ export const LanguageEntryAfterDeleteHandler = EntryAfterDeleteEventHandler.createImplementation({
16
+ implementation: LanguageEntryAfterDeleteHandlerImpl,
17
+ dependencies: [LanguagesCache]
18
+ });
19
+
20
+ //# sourceMappingURL=LanguageEntryAfterDeleteHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EntryAfterDeleteEventHandler","LanguagesCache","LANGUAGE_MODEL_ID","LanguageEntryAfterDeleteHandlerImpl","constructor","cache","handle","event","payload","model","modelId","removeItems","item","id","entryId","LanguageEntryAfterDeleteHandler","createImplementation","implementation","dependencies"],"sources":["LanguageEntryAfterDeleteHandler.ts"],"sourcesContent":["import { EntryAfterDeleteEventHandler } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { LanguagesCache } from \"./abstractions.js\";\nimport { LANGUAGE_MODEL_ID } from \"~/shared/constants.js\";\n\nclass LanguageEntryAfterDeleteHandlerImpl implements EntryAfterDeleteEventHandler.Interface {\n constructor(private cache: LanguagesCache.Interface) {}\n\n async handle(event: EntryAfterDeleteEventHandler.Event): Promise<void> {\n if (event.payload.model.modelId !== LANGUAGE_MODEL_ID) {\n return;\n }\n\n this.cache.removeItems(item => item.id === event.payload.entryId);\n }\n}\n\nexport const LanguageEntryAfterDeleteHandler = EntryAfterDeleteEventHandler.createImplementation({\n implementation: LanguageEntryAfterDeleteHandlerImpl,\n dependencies: [LanguagesCache]\n});\n"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,+CAA+C;AAC5F,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAE1B,MAAMC,mCAAmC,CAAmD;EACxFC,WAAWA,CAASC,KAA+B,EAAE;IAAA,KAAjCA,KAA+B,GAA/BA,KAA+B;EAAG;EAEtD,MAAMC,MAAMA,CAACC,KAAyC,EAAiB;IACnE,IAAIA,KAAK,CAACC,OAAO,CAACC,KAAK,CAACC,OAAO,KAAKR,iBAAiB,EAAE;MACnD;IACJ;IAEA,IAAI,CAACG,KAAK,CAACM,WAAW,CAACC,IAAI,IAAIA,IAAI,CAACC,EAAE,KAAKN,KAAK,CAACC,OAAO,CAACM,OAAO,CAAC;EACrE;AACJ;AAEA,OAAO,MAAMC,+BAA+B,GAAGf,4BAA4B,CAACgB,oBAAoB,CAAC;EAC7FC,cAAc,EAAEd,mCAAmC;EACnDe,YAAY,EAAE,CAACjB,cAAc;AACjC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { EntryAfterUpdateEventHandler } from "@webiny/app-headless-cms/exports/admin/cms.js";
2
+ import { LanguagesCache } from "./abstractions.js";
3
+ declare class LanguageEntryAfterUpdateHandlerImpl implements EntryAfterUpdateEventHandler.Interface {
4
+ private cache;
5
+ constructor(cache: LanguagesCache.Interface);
6
+ handle(event: EntryAfterUpdateEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const LanguageEntryAfterUpdateHandler: typeof LanguageEntryAfterUpdateHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/app/features/eventPublisher/abstractions.js").IEventHandler<import("@webiny/app-headless-cms/features/contentEntry/events/EntryAfterUpdateEvent.js").EntryAfterUpdateEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,27 @@
1
+ import { EntryAfterUpdateEventHandler } from "@webiny/app-headless-cms/exports/admin/cms.js";
2
+ import { LanguagesCache } from "./abstractions.js";
3
+ import { LANGUAGE_MODEL_ID } from "../../../shared/constants.js";
4
+ import { toLanguageDto } from "./toLanguageDto.js";
5
+ class LanguageEntryAfterUpdateHandlerImpl {
6
+ constructor(cache) {
7
+ this.cache = cache;
8
+ }
9
+ async handle(event) {
10
+ if (event.payload.model.modelId !== LANGUAGE_MODEL_ID) {
11
+ return;
12
+ }
13
+ const updated = toLanguageDto(event.payload.entry);
14
+ this.cache.updateItems(item => {
15
+ if (item.id === updated.id) {
16
+ return updated;
17
+ }
18
+ return item;
19
+ });
20
+ }
21
+ }
22
+ export const LanguageEntryAfterUpdateHandler = EntryAfterUpdateEventHandler.createImplementation({
23
+ implementation: LanguageEntryAfterUpdateHandlerImpl,
24
+ dependencies: [LanguagesCache]
25
+ });
26
+
27
+ //# sourceMappingURL=LanguageEntryAfterUpdateHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EntryAfterUpdateEventHandler","LanguagesCache","LANGUAGE_MODEL_ID","toLanguageDto","LanguageEntryAfterUpdateHandlerImpl","constructor","cache","handle","event","payload","model","modelId","updated","entry","updateItems","item","id","LanguageEntryAfterUpdateHandler","createImplementation","implementation","dependencies"],"sources":["LanguageEntryAfterUpdateHandler.ts"],"sourcesContent":["import { EntryAfterUpdateEventHandler } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { LanguagesCache } from \"./abstractions.js\";\nimport { LANGUAGE_MODEL_ID } from \"~/shared/constants.js\";\nimport { toLanguageDto } from \"./toLanguageDto.js\";\n\nclass LanguageEntryAfterUpdateHandlerImpl implements EntryAfterUpdateEventHandler.Interface {\n constructor(private cache: LanguagesCache.Interface) {}\n\n async handle(event: EntryAfterUpdateEventHandler.Event): Promise<void> {\n if (event.payload.model.modelId !== LANGUAGE_MODEL_ID) {\n return;\n }\n\n const updated = toLanguageDto(event.payload.entry);\n this.cache.updateItems(item => {\n if (item.id === updated.id) {\n return updated;\n }\n return item;\n });\n }\n}\n\nexport const LanguageEntryAfterUpdateHandler = EntryAfterUpdateEventHandler.createImplementation({\n implementation: LanguageEntryAfterUpdateHandlerImpl,\n dependencies: [LanguagesCache]\n});\n"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,+CAA+C;AAC5F,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,aAAa;AAEtB,MAAMC,mCAAmC,CAAmD;EACxFC,WAAWA,CAASC,KAA+B,EAAE;IAAA,KAAjCA,KAA+B,GAA/BA,KAA+B;EAAG;EAEtD,MAAMC,MAAMA,CAACC,KAAyC,EAAiB;IACnE,IAAIA,KAAK,CAACC,OAAO,CAACC,KAAK,CAACC,OAAO,KAAKT,iBAAiB,EAAE;MACnD;IACJ;IAEA,MAAMU,OAAO,GAAGT,aAAa,CAACK,KAAK,CAACC,OAAO,CAACI,KAAK,CAAC;IAClD,IAAI,CAACP,KAAK,CAACQ,WAAW,CAACC,IAAI,IAAI;MAC3B,IAAIA,IAAI,CAACC,EAAE,KAAKJ,OAAO,CAACI,EAAE,EAAE;QACxB,OAAOJ,OAAO;MAClB;MACA,OAAOG,IAAI;IACf,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAME,+BAA+B,GAAGjB,4BAA4B,CAACkB,oBAAoB,CAAC;EAC7FC,cAAc,EAAEf,mCAAmC;EACnDgB,YAAY,EAAE,CAACnB,cAAc;AACjC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { ListLanguagesGateway as GatewayAbstraction, LanguageDto } from "./abstractions.js";
2
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient";
3
+ declare class ListLanguagesGatewayImpl implements GatewayAbstraction.Interface {
4
+ private client;
5
+ constructor(client: MainGraphQLClient.Interface);
6
+ execute(): Promise<LanguageDto[]>;
7
+ }
8
+ export declare const ListLanguagesGateway: typeof ListLanguagesGatewayImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListLanguagesGateway>;
10
+ };
11
+ export {};
@@ -0,0 +1,43 @@
1
+ import { ListLanguagesGateway as GatewayAbstraction } from "./abstractions.js";
2
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient";
3
+ const LIST_LANGUAGES = /* GraphQL */`
4
+ query ListLanguages {
5
+ languages {
6
+ listLanguages {
7
+ data {
8
+ id
9
+ code
10
+ name
11
+ direction
12
+ isDefault
13
+ enabled
14
+ }
15
+ error {
16
+ code
17
+ message
18
+ }
19
+ }
20
+ }
21
+ }
22
+ `;
23
+ class ListLanguagesGatewayImpl {
24
+ constructor(client) {
25
+ this.client = client;
26
+ }
27
+ async execute() {
28
+ const response = await this.client.execute({
29
+ query: LIST_LANGUAGES
30
+ });
31
+ const envelope = response.languages.listLanguages;
32
+ if (envelope.error) {
33
+ throw new Error(envelope.error.message);
34
+ }
35
+ return envelope.data;
36
+ }
37
+ }
38
+ export const ListLanguagesGateway = GatewayAbstraction.createImplementation({
39
+ implementation: ListLanguagesGatewayImpl,
40
+ dependencies: [MainGraphQLClient]
41
+ });
42
+
43
+ //# sourceMappingURL=ListLanguagesGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ListLanguagesGateway","GatewayAbstraction","MainGraphQLClient","LIST_LANGUAGES","ListLanguagesGatewayImpl","constructor","client","execute","response","query","envelope","languages","listLanguages","error","Error","message","data","createImplementation","implementation","dependencies"],"sources":["ListLanguagesGateway.ts"],"sourcesContent":["import { ListLanguagesGateway as GatewayAbstraction, LanguageDto } from \"./abstractions.js\";\nimport { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient\";\n\nconst LIST_LANGUAGES = /* GraphQL */ `\n query ListLanguages {\n languages {\n listLanguages {\n data {\n id\n code\n name\n direction\n isDefault\n enabled\n }\n error {\n code\n message\n }\n }\n }\n }\n`;\n\ntype ListLanguagesResponse = {\n languages: {\n listLanguages:\n | { data: LanguageDto[]; error: null }\n | { data: null; error: { code: string; message: string } };\n };\n};\n\nclass ListLanguagesGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private client: MainGraphQLClient.Interface) {}\n\n async execute(): Promise<LanguageDto[]> {\n const response = await this.client.execute<ListLanguagesResponse>({\n query: LIST_LANGUAGES\n });\n\n const envelope = response.languages.listLanguages;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n return envelope.data;\n }\n}\n\nexport const ListLanguagesGateway = GatewayAbstraction.createImplementation({\n implementation: ListLanguagesGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,IAAIC,kBAAkB;AACnD,SAASC,iBAAiB,QAAQ,wCAAwC;AAE1E,MAAMC,cAAc,GAAG,aAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAUD,MAAMC,wBAAwB,CAAyC;EACnEC,WAAWA,CAASC,MAAmC,EAAE;IAAA,KAArCA,MAAmC,GAAnCA,MAAmC;EAAG;EAE1D,MAAMC,OAAOA,CAAA,EAA2B;IACpC,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACF,MAAM,CAACC,OAAO,CAAwB;MAC9DE,KAAK,EAAEN;IACX,CAAC,CAAC;IAEF,MAAMO,QAAQ,GAAGF,QAAQ,CAACG,SAAS,CAACC,aAAa;IACjD,IAAIF,QAAQ,CAACG,KAAK,EAAE;MAChB,MAAM,IAAIC,KAAK,CAACJ,QAAQ,CAACG,KAAK,CAACE,OAAO,CAAC;IAC3C;IAEA,OAAOL,QAAQ,CAACM,IAAI;EACxB;AACJ;AAEA,OAAO,MAAMhB,oBAAoB,GAAGC,kBAAkB,CAACgB,oBAAoB,CAAC;EACxEC,cAAc,EAAEd,wBAAwB;EACxCe,YAAY,EAAE,CAACjB,iBAAiB;AACpC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import { ListLanguagesRepository as RepositoryAbstraction, ListLanguagesGateway, LanguagesCache, type LanguageDto } from "./abstractions.js";
2
+ declare class ListLanguagesRepositoryImpl implements RepositoryAbstraction.Interface {
3
+ private gateway;
4
+ private cache;
5
+ private pending;
6
+ constructor(gateway: ListLanguagesGateway.Interface, cache: LanguagesCache.Interface);
7
+ getLanguages(): LanguageDto[];
8
+ execute(): Promise<LanguageDto[]>;
9
+ }
10
+ export declare const ListLanguagesRepository: typeof ListLanguagesRepositoryImpl & {
11
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListLanguagesRepository>;
12
+ };
13
+ export {};
@@ -0,0 +1,30 @@
1
+ import { ListLanguagesRepository as RepositoryAbstraction, ListLanguagesGateway, LanguagesCache } from "./abstractions.js";
2
+ class ListLanguagesRepositoryImpl {
3
+ constructor(gateway, cache) {
4
+ this.gateway = gateway;
5
+ this.cache = cache;
6
+ }
7
+ getLanguages() {
8
+ return this.cache.getItems();
9
+ }
10
+ async execute() {
11
+ if (this.cache.hasItems()) {
12
+ return this.cache.getItems();
13
+ }
14
+ if (this.pending) {
15
+ return this.pending;
16
+ }
17
+ this.pending = this.gateway.execute().then(languages => {
18
+ const sorted = languages.sort((a, b) => a.name.localeCompare(b.name));
19
+ this.cache.addItems(sorted);
20
+ return this.cache.getItems();
21
+ });
22
+ return this.pending;
23
+ }
24
+ }
25
+ export const ListLanguagesRepository = RepositoryAbstraction.createImplementation({
26
+ implementation: ListLanguagesRepositoryImpl,
27
+ dependencies: [ListLanguagesGateway, LanguagesCache]
28
+ });
29
+
30
+ //# sourceMappingURL=ListLanguagesRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ListLanguagesRepository","RepositoryAbstraction","ListLanguagesGateway","LanguagesCache","ListLanguagesRepositoryImpl","constructor","gateway","cache","getLanguages","getItems","execute","hasItems","pending","then","languages","sorted","sort","a","b","name","localeCompare","addItems","createImplementation","implementation","dependencies"],"sources":["ListLanguagesRepository.ts"],"sourcesContent":["import {\n ListLanguagesRepository as RepositoryAbstraction,\n ListLanguagesGateway,\n LanguagesCache,\n type LanguageDto\n} from \"./abstractions.js\";\n\nclass ListLanguagesRepositoryImpl implements RepositoryAbstraction.Interface {\n private pending: Promise<LanguageDto[]> | undefined;\n\n constructor(\n private gateway: ListLanguagesGateway.Interface,\n private cache: LanguagesCache.Interface\n ) {}\n\n getLanguages(): LanguageDto[] {\n return this.cache.getItems();\n }\n\n async execute(): Promise<LanguageDto[]> {\n if (this.cache.hasItems()) {\n return this.cache.getItems();\n }\n\n if (this.pending) {\n return this.pending;\n }\n\n this.pending = this.gateway.execute().then(languages => {\n const sorted = languages.sort((a, b) => a.name.localeCompare(b.name));\n this.cache.addItems(sorted);\n return this.cache.getItems();\n });\n\n return this.pending;\n }\n}\n\nexport const ListLanguagesRepository = RepositoryAbstraction.createImplementation({\n implementation: ListLanguagesRepositoryImpl,\n dependencies: [ListLanguagesGateway, LanguagesCache]\n});\n"],"mappings":"AAAA,SACIA,uBAAuB,IAAIC,qBAAqB,EAChDC,oBAAoB,EACpBC,cAAc;AAIlB,MAAMC,2BAA2B,CAA4C;EAGzEC,WAAWA,CACCC,OAAuC,EACvCC,KAA+B,EACzC;IAAA,KAFUD,OAAuC,GAAvCA,OAAuC;IAAA,KACvCC,KAA+B,GAA/BA,KAA+B;EACxC;EAEHC,YAAYA,CAAA,EAAkB;IAC1B,OAAO,IAAI,CAACD,KAAK,CAACE,QAAQ,CAAC,CAAC;EAChC;EAEA,MAAMC,OAAOA,CAAA,EAA2B;IACpC,IAAI,IAAI,CAACH,KAAK,CAACI,QAAQ,CAAC,CAAC,EAAE;MACvB,OAAO,IAAI,CAACJ,KAAK,CAACE,QAAQ,CAAC,CAAC;IAChC;IAEA,IAAI,IAAI,CAACG,OAAO,EAAE;MACd,OAAO,IAAI,CAACA,OAAO;IACvB;IAEA,IAAI,CAACA,OAAO,GAAG,IAAI,CAACN,OAAO,CAACI,OAAO,CAAC,CAAC,CAACG,IAAI,CAACC,SAAS,IAAI;MACpD,MAAMC,MAAM,GAAGD,SAAS,CAACE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,IAAI,CAACC,aAAa,CAACF,CAAC,CAACC,IAAI,CAAC,CAAC;MACrE,IAAI,CAACZ,KAAK,CAACc,QAAQ,CAACN,MAAM,CAAC;MAC3B,OAAO,IAAI,CAACR,KAAK,CAACE,QAAQ,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO,IAAI,CAACG,OAAO;EACvB;AACJ;AAEA,OAAO,MAAMZ,uBAAuB,GAAGC,qBAAqB,CAACqB,oBAAoB,CAAC;EAC9EC,cAAc,EAAEnB,2BAA2B;EAC3CoB,YAAY,EAAE,CAACtB,oBAAoB,EAAEC,cAAc;AACvD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { ListLanguagesUseCase as UseCaseAbstraction, ListLanguagesRepository, LanguageDto } from "./abstractions.js";
2
+ declare class ListLanguagesUseCaseImpl implements UseCaseAbstraction.Interface {
3
+ private repository;
4
+ constructor(repository: ListLanguagesRepository.Interface);
5
+ execute(): Promise<LanguageDto[]>;
6
+ }
7
+ export declare const ListLanguagesUseCase: typeof ListLanguagesUseCaseImpl & {
8
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListLanguagesUseCase>;
9
+ };
10
+ export {};
@@ -0,0 +1,15 @@
1
+ import { ListLanguagesUseCase as UseCaseAbstraction, ListLanguagesRepository } from "./abstractions.js";
2
+ class ListLanguagesUseCaseImpl {
3
+ constructor(repository) {
4
+ this.repository = repository;
5
+ }
6
+ async execute() {
7
+ return await this.repository.execute();
8
+ }
9
+ }
10
+ export const ListLanguagesUseCase = UseCaseAbstraction.createImplementation({
11
+ implementation: ListLanguagesUseCaseImpl,
12
+ dependencies: [ListLanguagesRepository]
13
+ });
14
+
15
+ //# sourceMappingURL=ListLanguagesUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ListLanguagesUseCase","UseCaseAbstraction","ListLanguagesRepository","ListLanguagesUseCaseImpl","constructor","repository","execute","createImplementation","implementation","dependencies"],"sources":["ListLanguagesUseCase.ts"],"sourcesContent":["import {\n ListLanguagesUseCase as UseCaseAbstraction,\n ListLanguagesRepository,\n LanguageDto\n} from \"./abstractions.js\";\n\nclass ListLanguagesUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(private repository: ListLanguagesRepository.Interface) {}\n\n async execute(): Promise<LanguageDto[]> {\n return await this.repository.execute();\n }\n}\n\nexport const ListLanguagesUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListLanguagesUseCaseImpl,\n dependencies: [ListLanguagesRepository]\n});\n"],"mappings":"AAAA,SACIA,oBAAoB,IAAIC,kBAAkB,EAC1CC,uBAAuB;AAI3B,MAAMC,wBAAwB,CAAyC;EACnEC,WAAWA,CAASC,UAA6C,EAAE;IAAA,KAA/CA,UAA6C,GAA7CA,UAA6C;EAAG;EAEpE,MAAMC,OAAOA,CAAA,EAA2B;IACpC,OAAO,MAAM,IAAI,CAACD,UAAU,CAACC,OAAO,CAAC,CAAC;EAC1C;AACJ;AAEA,OAAO,MAAMN,oBAAoB,GAAGC,kBAAkB,CAACM,oBAAoB,CAAC;EACxEC,cAAc,EAAEL,wBAAwB;EACxCM,YAAY,EAAE,CAACP,uBAAuB;AAC1C,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ import type { IListCache } from "@webiny/app-headless-cms/features/ListCache.js";
2
+ export interface LanguageDto {
3
+ id: string;
4
+ code: string;
5
+ name: string;
6
+ direction?: "ltr" | "rtl";
7
+ isDefault?: boolean;
8
+ enabled?: boolean;
9
+ }
10
+ export declare const LanguagesCache: import("@webiny/di").Abstraction<IListCache<LanguageDto>>;
11
+ export declare namespace LanguagesCache {
12
+ type Interface = IListCache<LanguageDto>;
13
+ }
14
+ export interface IListLanguagesUseCase {
15
+ execute(): Promise<LanguageDto[]>;
16
+ }
17
+ export declare const ListLanguagesUseCase: import("@webiny/di").Abstraction<IListLanguagesUseCase>;
18
+ export declare namespace ListLanguagesUseCase {
19
+ type Interface = IListLanguagesUseCase;
20
+ }
21
+ export interface IListLanguagesRepository {
22
+ execute(): Promise<LanguageDto[]>;
23
+ getLanguages(): LanguageDto[];
24
+ }
25
+ export declare const ListLanguagesRepository: import("@webiny/di").Abstraction<IListLanguagesRepository>;
26
+ export declare namespace ListLanguagesRepository {
27
+ type Interface = IListLanguagesRepository;
28
+ }
29
+ export interface IListLanguagesGateway {
30
+ execute(): Promise<LanguageDto[]>;
31
+ }
32
+ export declare const ListLanguagesGateway: import("@webiny/di").Abstraction<IListLanguagesGateway>;
33
+ export declare namespace ListLanguagesGateway {
34
+ type Interface = IListLanguagesGateway;
35
+ }
@@ -0,0 +1,30 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+
3
+ //
4
+ // DTO
5
+ //
6
+
7
+ //
8
+ // Cache
9
+ //
10
+ export const LanguagesCache = createAbstraction("Languages/LanguagesCache");
11
+
12
+ //
13
+ // UseCase
14
+ //
15
+
16
+ export const ListLanguagesUseCase = createAbstraction("Languages/ListLanguagesUseCase");
17
+
18
+ //
19
+ // Repository
20
+ //
21
+
22
+ export const ListLanguagesRepository = createAbstraction("Languages/ListLanguagesRepository");
23
+
24
+ //
25
+ // Gateway
26
+ //
27
+
28
+ export const ListLanguagesGateway = createAbstraction("Languages/ListLanguagesGateway");
29
+
30
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","LanguagesCache","ListLanguagesUseCase","ListLanguagesRepository","ListLanguagesGateway"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IListCache } from \"@webiny/app-headless-cms/features/ListCache.js\";\n\n//\n// DTO\n//\nexport interface LanguageDto {\n id: string;\n code: string;\n name: string;\n direction?: \"ltr\" | \"rtl\";\n isDefault?: boolean;\n enabled?: boolean;\n}\n\n//\n// Cache\n//\nexport const LanguagesCache = createAbstraction<IListCache<LanguageDto>>(\n \"Languages/LanguagesCache\"\n);\n\nexport namespace LanguagesCache {\n export type Interface = IListCache<LanguageDto>;\n}\n\n//\n// UseCase\n//\nexport interface IListLanguagesUseCase {\n execute(): Promise<LanguageDto[]>;\n}\n\nexport const ListLanguagesUseCase = createAbstraction<IListLanguagesUseCase>(\n \"Languages/ListLanguagesUseCase\"\n);\n\nexport namespace ListLanguagesUseCase {\n export type Interface = IListLanguagesUseCase;\n}\n\n//\n// Repository\n//\nexport interface IListLanguagesRepository {\n execute(): Promise<LanguageDto[]>;\n getLanguages(): LanguageDto[];\n}\n\nexport const ListLanguagesRepository = createAbstraction<IListLanguagesRepository>(\n \"Languages/ListLanguagesRepository\"\n);\n\nexport namespace ListLanguagesRepository {\n export type Interface = IListLanguagesRepository;\n}\n\n//\n// Gateway\n//\nexport interface IListLanguagesGateway {\n execute(): Promise<LanguageDto[]>;\n}\n\nexport const ListLanguagesGateway = createAbstraction<IListLanguagesGateway>(\n \"Languages/ListLanguagesGateway\"\n);\n\nexport namespace ListLanguagesGateway {\n export type Interface = IListLanguagesGateway;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;;AAGzD;AACA;AACA;;AAUA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GAAGD,iBAAiB,CAC3C,0BACJ,CAAC;;AAMD;AACA;AACA;;AAKA,OAAO,MAAME,oBAAoB,GAAGF,iBAAiB,CACjD,gCACJ,CAAC;;AAMD;AACA;AACA;;AAMA,OAAO,MAAMG,uBAAuB,GAAGH,iBAAiB,CACpD,mCACJ,CAAC;;AAMD;AACA;AACA;;AAKA,OAAO,MAAMI,oBAAoB,GAAGJ,iBAAiB,CACjD,gCACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import type { LanguageDto } from "./abstractions.js";
2
+ export declare const ListLanguagesFeature: import("@webiny/feature/admin").FeatureDefinition<{
3
+ useCase: import("./abstractions.js").IListLanguagesUseCase;
4
+ repository: import("./abstractions.js").IListLanguagesRepository;
5
+ cache: import("@webiny/app-headless-cms/features/ListCache.js").IListCache<LanguageDto>;
6
+ }, []>;