@mattisvensson/strapi-plugin-webatlas 0.11.1 → 0.11.3

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 (36) hide show
  1. package/README.md +7 -6
  2. package/dist/admin/{SettingTitle-B0quw3f8.js → SettingTitle-BdiDHFXF.js} +2 -2
  3. package/dist/admin/{SettingTitle-B0quw3f8.js.map → SettingTitle-BdiDHFXF.js.map} +1 -1
  4. package/dist/admin/{SettingTitle-HMfQOJnK.mjs → SettingTitle-CcNfx_4T.mjs} +2 -2
  5. package/dist/admin/{SettingTitle-HMfQOJnK.mjs.map → SettingTitle-CcNfx_4T.mjs.map} +1 -1
  6. package/dist/admin/{index-Bmg-ERct.mjs → index-BMTlUOrK.mjs} +3 -3
  7. package/dist/admin/{index-Bmg-ERct.mjs.map → index-BMTlUOrK.mjs.map} +1 -1
  8. package/dist/admin/{index-B79ELMEC.mjs → index-BX3hiURm.mjs} +10 -39
  9. package/dist/admin/index-BX3hiURm.mjs.map +1 -0
  10. package/dist/admin/{index-9_HhKDUC.mjs → index-BdyLsiR4.mjs} +2 -2
  11. package/dist/admin/{index-9_HhKDUC.mjs.map → index-BdyLsiR4.mjs.map} +1 -1
  12. package/dist/admin/{index-Cx_mktdk.js → index-BkPtrXJO.js} +10 -39
  13. package/dist/admin/index-BkPtrXJO.js.map +1 -0
  14. package/dist/admin/{index-YdWxpvOH.js → index-CEBh9c4X.js} +3 -3
  15. package/dist/admin/{index-YdWxpvOH.js.map → index-CEBh9c4X.js.map} +1 -1
  16. package/dist/admin/{index-BEVoxEAm.js → index-DBG6vBGU.js} +2 -2
  17. package/dist/admin/{index-BEVoxEAm.js.map → index-DBG6vBGU.js.map} +1 -1
  18. package/dist/admin/{index-Cz_k_jjp.mjs → index-DkEReTkt.mjs} +3 -3
  19. package/dist/admin/{index-Cz_k_jjp.mjs.map → index-DkEReTkt.mjs.map} +1 -1
  20. package/dist/admin/{index-oEJT_mvw.mjs → index-DkfE_arE.mjs} +27 -9
  21. package/dist/admin/index-DkfE_arE.mjs.map +1 -0
  22. package/dist/admin/{index-D2hB1vTw.js → index-Sj2FxwAu.js} +3 -3
  23. package/dist/admin/{index-D2hB1vTw.js.map → index-Sj2FxwAu.js.map} +1 -1
  24. package/dist/admin/{index-C8YjuuOx.js → index-uW7YJoRU.js} +27 -9
  25. package/dist/admin/index-uW7YJoRU.js.map +1 -0
  26. package/dist/admin/index.js +1 -1
  27. package/dist/admin/index.mjs +1 -1
  28. package/dist/server/index.js +636 -1502
  29. package/dist/server/index.js.map +1 -1
  30. package/dist/server/index.mjs +636 -1502
  31. package/dist/server/index.mjs.map +1 -1
  32. package/package.json +14 -13
  33. package/dist/admin/index-B79ELMEC.mjs.map +0 -1
  34. package/dist/admin/index-C8YjuuOx.js.map +0 -1
  35. package/dist/admin/index-Cx_mktdk.js.map +0 -1
  36. package/dist/admin/index-oEJT_mvw.mjs.map +0 -1
package/README.md CHANGED
@@ -15,7 +15,7 @@ This plugin is still in the early stages of development. Many features are plann
15
15
 
16
16
  ### Table of Contents
17
17
 
18
- 1. [💎 Versions](#-versions)
18
+ 1. [💎 Version](#-version)
19
19
  2. [✨ Features](#-features)
20
20
  3. [⏳ Installation](#-installation)
21
21
  4. [🖐 Requirements](#-requirements)
@@ -23,10 +23,9 @@ This plugin is still in the early stages of development. Many features are plann
23
23
  6. [📖 Usage](#-usage)
24
24
  7. [🧩 Roadmap](#-roadmap)
25
25
 
26
- ## 💎 Versions
26
+ ## 💎 Version
27
27
 
28
- - **Strapi v5** - [v0.x.x (work in progress - beta)](https://github.com/mattisvensson/strapi-plugin-webatlas/releases)
29
- - **Strapi v4** - not supported
28
+ **Webatlas** is currently in beta. Check the [releases page](https://github.com/mattisvensson/strapi-plugin-webatlas/releases) for the latest updates.
30
29
 
31
30
  ## ✨ Features
32
31
 
@@ -57,9 +56,11 @@ As a next step you must configure your the plugin by the way you want to. See [
57
56
 
58
57
  ## 🖐 Requirements
59
58
 
59
+ To use **Webatlas**, you need to be running **Strapi v5.42.1** or higher. The plugin is currently in beta and only supports **Strapi v5.42.1**. Support for **Strapi v4** is not supported and there are no plans to backport it.
60
+
60
61
  **Minimum environment requirements**
61
62
 
62
- - Strapi `>=5.0.0`
63
+ - Strapi `>=5.42.1`
63
64
  - Node.js `>=22.0.0`
64
65
 
65
66
  ## 🔧 Configuration
@@ -118,7 +119,7 @@ Query parameters:
118
119
  - `fields` (string, optional): Comma-separated list of fields to include in the response.
119
120
  - `status` (string, optional): `draft` or `published`. Default is `published`. Returns the draft or published version of the entity.
120
121
 
121
- The response contains the entity's content type and a `webatlas` object with additional information about the path, including the canonical path, uidPath and slug.
122
+ The response contains the entity's content type and a `webatlas` object with additional information about the path, including the canonical path, uidPath and slug. The `webatlas` object is also available in the Content API responses of entities with webatlas enabled.
122
123
 
123
124
  #### Fetch navigation
124
125
 
@@ -2,7 +2,7 @@
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
3
  const designSystem = require("@strapi/design-system");
4
4
  const admin = require("@strapi/strapi/admin");
5
- const index = require("./index-Cx_mktdk.js");
5
+ const index = require("./index-BkPtrXJO.js");
6
6
  const reactIntl = require("react-intl");
7
7
  const icons = require("@strapi/icons");
8
8
  function PageWrapper({
@@ -68,4 +68,4 @@ function SettingTitle({ children }) {
68
68
  exports.ContentBox = ContentBox;
69
69
  exports.PageWrapper = PageWrapper;
70
70
  exports.SettingTitle = SettingTitle;
71
- //# sourceMappingURL=SettingTitle-B0quw3f8.js.map
71
+ //# sourceMappingURL=SettingTitle-BdiDHFXF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingTitle-B0quw3f8.js","sources":["../../admin/src/pages/Settings/PageWrapper.tsx","../../admin/src/pages/Settings/ContentBox.tsx","../../admin/src/pages/Settings/SettingTitle.tsx"],"sourcesContent":["import { Button, Flex } from '@strapi/design-system'\nimport { Page, Layouts } from '@strapi/strapi/admin'\nimport { PLUGIN_NAME } from '../../../../utils/pluginId'\nimport { getTranslation } from '../../utils'\nimport { useIntl } from 'react-intl'\nimport { Check } from '@strapi/icons'\n\nexport default function PageWrapper({\n\tsave,\n\tisSaving,\n\tdisabledCondition,\n\tsubtitle,\n\tchildren,\n}: {\n\tsave?: () => void\n\tisSaving: boolean\n\tdisabledCondition: boolean\n\tsubtitle: string\n\tchildren: React.ReactNode\n}) {\n\tconst { formatMessage } = useIntl()\n\n\treturn (\n\t\t<Page.Main>\n\t\t\t<Layouts.Header\n\t\t\t\ttitle={PLUGIN_NAME}\n\t\t\t\tsubtitle={subtitle}\n\t\t\t\tprimaryAction={\n\t\t\t\t\tdisabledCondition !== undefined &&\n\t\t\t\t\tsave && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tonClick={() => save()}\n\t\t\t\t\t\t\tloading={isSaving}\n\t\t\t\t\t\t\tdisabled={disabledCondition || isSaving}\n\t\t\t\t\t\t\tstartIcon={<Check />}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* <Check /> */}\n\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\tid: getTranslation('save'),\n\t\t\t\t\t\t\t\tdefaultMessage: 'Save',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Layouts.Content>\n\t\t\t\t<Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n\t\t\t\t\t{children}\n\t\t\t\t</Flex>\n\t\t\t</Layouts.Content>\n\t\t</Page.Main>\n\t)\n}\n","import { Typography, Flex, Box } from '@strapi/design-system'\n\nexport default function ContentBox({\n\ttitle,\n\tchildren,\n}: {\n\ttitle: string\n\tchildren: React.ReactNode\n}) {\n\treturn (\n\t\t<Flex\n\t\t\tbackground=\"neutral0\"\n\t\t\thasRadius\n\t\t\tpaddingTop={6}\n\t\t\tpaddingBottom={6}\n\t\t\tpaddingLeft={7}\n\t\t\tpaddingRight={7}\n\t\t\tshadow=\"tableShadow\"\n\t\t\tdirection=\"column\"\n\t\t\talignItems=\"stretch\"\n\t\t\tgap={4}\n\t\t>\n\t\t\t<Typography variant=\"delta\">{title}</Typography>\n\t\t\t<Box>{children}</Box>\n\t\t</Flex>\n\t)\n}\n","import { Typography } from '@strapi/design-system'\n\nexport default function SettingTitle({ children }: { children: React.ReactNode }) {\n\treturn (\n\t\t<Typography variant=\"sigma\" textColor=\"neutral600\">\n\t\t\t{children}\n\t\t</Typography>\n\t)\n}\n"],"names":["useIntl","jsxs","Page","jsx","Layouts","PLUGIN_NAME","Button","Check","getTranslation","Flex","Typography","Box"],"mappings":";;;;;;;AAOA,SAAwB,YAAY;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAMG;AACF,QAAM,EAAE,cAAA,IAAkBA,kBAAA;AAE1B,SACCC,gCAACC,MAAAA,KAAK,MAAL,EACA,UAAA;AAAA,IAAAC,2BAAAA;AAAAA,MAACC,MAAAA,QAAQ;AAAA,MAAR;AAAA,QACA,OAAOC,MAAAA;AAAAA,QACP;AAAA,QACA,eACC,sBAAsB,UACtB,QACCF,2BAAAA;AAAAA,UAACG,aAAAA;AAAAA,UAAA;AAAA,YACA,MAAK;AAAA,YACL,SAAS,MAAM,KAAA;AAAA,YACf,SAAS;AAAA,YACT,UAAU,qBAAqB;AAAA,YAC/B,0CAAYC,MAAAA,OAAA,EAAM;AAAA,YAGjB,UAAA,cAAc;AAAA,cACd,IAAIC,MAAAA,eAAe,MAAM;AAAA,cACzB,gBAAgB;AAAA,YAAA,CAChB;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IAIHL,2BAAAA,IAACC,MAAAA,QAAQ,SAAR,EACA,UAAAD,2BAAAA,IAACM,aAAAA,MAAA,EAAK,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UACF,EAAA,CACD;AAAA,EAAA,GACD;AAEF;ACnDA,SAAwB,WAAW;AAAA,EAClC;AAAA,EACA;AACD,GAGG;AACF,SACCR,2BAAAA;AAAAA,IAACQ,aAAAA;AAAAA,IAAA;AAAA,MACA,YAAW;AAAA,MACX,WAAS;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd,QAAO;AAAA,MACP,WAAU;AAAA,MACV,YAAW;AAAA,MACX,KAAK;AAAA,MAEL,UAAA;AAAA,QAAAN,2BAAAA,IAACO,aAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,QACnCP,+BAACQ,aAAAA,OAAK,SAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlB;ACxBA,SAAwB,aAAa,EAAE,YAA2C;AACjF,wCACED,aAAAA,YAAA,EAAW,SAAQ,SAAQ,WAAU,cACpC,UACF;AAEF;;;;"}
1
+ {"version":3,"file":"SettingTitle-BdiDHFXF.js","sources":["../../admin/src/pages/Settings/PageWrapper.tsx","../../admin/src/pages/Settings/ContentBox.tsx","../../admin/src/pages/Settings/SettingTitle.tsx"],"sourcesContent":["import { Button, Flex } from '@strapi/design-system'\nimport { Page, Layouts } from '@strapi/strapi/admin'\nimport { PLUGIN_NAME } from '../../../../utils/pluginId'\nimport { getTranslation } from '../../utils'\nimport { useIntl } from 'react-intl'\nimport { Check } from '@strapi/icons'\n\nexport default function PageWrapper({\n\tsave,\n\tisSaving,\n\tdisabledCondition,\n\tsubtitle,\n\tchildren,\n}: {\n\tsave?: () => void\n\tisSaving: boolean\n\tdisabledCondition: boolean\n\tsubtitle: string\n\tchildren: React.ReactNode\n}) {\n\tconst { formatMessage } = useIntl()\n\n\treturn (\n\t\t<Page.Main>\n\t\t\t<Layouts.Header\n\t\t\t\ttitle={PLUGIN_NAME}\n\t\t\t\tsubtitle={subtitle}\n\t\t\t\tprimaryAction={\n\t\t\t\t\tdisabledCondition !== undefined &&\n\t\t\t\t\tsave && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tonClick={() => save()}\n\t\t\t\t\t\t\tloading={isSaving}\n\t\t\t\t\t\t\tdisabled={disabledCondition || isSaving}\n\t\t\t\t\t\t\tstartIcon={<Check />}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* <Check /> */}\n\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\tid: getTranslation('save'),\n\t\t\t\t\t\t\t\tdefaultMessage: 'Save',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Layouts.Content>\n\t\t\t\t<Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n\t\t\t\t\t{children}\n\t\t\t\t</Flex>\n\t\t\t</Layouts.Content>\n\t\t</Page.Main>\n\t)\n}\n","import { Typography, Flex, Box } from '@strapi/design-system'\n\nexport default function ContentBox({\n\ttitle,\n\tchildren,\n}: {\n\ttitle: string\n\tchildren: React.ReactNode\n}) {\n\treturn (\n\t\t<Flex\n\t\t\tbackground=\"neutral0\"\n\t\t\thasRadius\n\t\t\tpaddingTop={6}\n\t\t\tpaddingBottom={6}\n\t\t\tpaddingLeft={7}\n\t\t\tpaddingRight={7}\n\t\t\tshadow=\"tableShadow\"\n\t\t\tdirection=\"column\"\n\t\t\talignItems=\"stretch\"\n\t\t\tgap={4}\n\t\t>\n\t\t\t<Typography variant=\"delta\">{title}</Typography>\n\t\t\t<Box>{children}</Box>\n\t\t</Flex>\n\t)\n}\n","import { Typography } from '@strapi/design-system'\n\nexport default function SettingTitle({ children }: { children: React.ReactNode }) {\n\treturn (\n\t\t<Typography variant=\"sigma\" textColor=\"neutral600\">\n\t\t\t{children}\n\t\t</Typography>\n\t)\n}\n"],"names":["useIntl","jsxs","Page","jsx","Layouts","PLUGIN_NAME","Button","Check","getTranslation","Flex","Typography","Box"],"mappings":";;;;;;;AAOA,SAAwB,YAAY;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAMG;AACF,QAAM,EAAE,cAAA,IAAkBA,kBAAA;AAE1B,SACCC,gCAACC,MAAAA,KAAK,MAAL,EACA,UAAA;AAAA,IAAAC,2BAAAA;AAAAA,MAACC,MAAAA,QAAQ;AAAA,MAAR;AAAA,QACA,OAAOC,MAAAA;AAAAA,QACP;AAAA,QACA,eACC,sBAAsB,UACtB,QACCF,2BAAAA;AAAAA,UAACG,aAAAA;AAAAA,UAAA;AAAA,YACA,MAAK;AAAA,YACL,SAAS,MAAM,KAAA;AAAA,YACf,SAAS;AAAA,YACT,UAAU,qBAAqB;AAAA,YAC/B,0CAAYC,MAAAA,OAAA,EAAM;AAAA,YAGjB,UAAA,cAAc;AAAA,cACd,IAAIC,MAAAA,eAAe,MAAM;AAAA,cACzB,gBAAgB;AAAA,YAAA,CAChB;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IAIHL,2BAAAA,IAACC,MAAAA,QAAQ,SAAR,EACA,UAAAD,2BAAAA,IAACM,aAAAA,MAAA,EAAK,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UACF,EAAA,CACD;AAAA,EAAA,GACD;AAEF;ACnDA,SAAwB,WAAW;AAAA,EAClC;AAAA,EACA;AACD,GAGG;AACF,SACCR,2BAAAA;AAAAA,IAACQ,aAAAA;AAAAA,IAAA;AAAA,MACA,YAAW;AAAA,MACX,WAAS;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd,QAAO;AAAA,MACP,WAAU;AAAA,MACV,YAAW;AAAA,MACX,KAAK;AAAA,MAEL,UAAA;AAAA,QAAAN,2BAAAA,IAACO,aAAAA,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,QACnCP,+BAACQ,aAAAA,OAAK,SAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlB;ACxBA,SAAwB,aAAa,EAAE,YAA2C;AACjF,wCACED,aAAAA,YAAA,EAAW,SAAQ,SAAQ,WAAU,cACpC,UACF;AAEF;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { Button, Flex, Typography, Box } from "@strapi/design-system";
3
3
  import { Page, Layouts } from "@strapi/strapi/admin";
4
- import { f as PLUGIN_NAME, g as getTranslation } from "./index-B79ELMEC.mjs";
4
+ import { f as PLUGIN_NAME, g as getTranslation } from "./index-BX3hiURm.mjs";
5
5
  import { useIntl } from "react-intl";
6
6
  import { Check } from "@strapi/icons";
7
7
  function PageWrapper({
@@ -69,4 +69,4 @@ export {
69
69
  PageWrapper as P,
70
70
  SettingTitle as S
71
71
  };
72
- //# sourceMappingURL=SettingTitle-HMfQOJnK.mjs.map
72
+ //# sourceMappingURL=SettingTitle-CcNfx_4T.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingTitle-HMfQOJnK.mjs","sources":["../../admin/src/pages/Settings/PageWrapper.tsx","../../admin/src/pages/Settings/ContentBox.tsx","../../admin/src/pages/Settings/SettingTitle.tsx"],"sourcesContent":["import { Button, Flex } from '@strapi/design-system'\nimport { Page, Layouts } from '@strapi/strapi/admin'\nimport { PLUGIN_NAME } from '../../../../utils/pluginId'\nimport { getTranslation } from '../../utils'\nimport { useIntl } from 'react-intl'\nimport { Check } from '@strapi/icons'\n\nexport default function PageWrapper({\n\tsave,\n\tisSaving,\n\tdisabledCondition,\n\tsubtitle,\n\tchildren,\n}: {\n\tsave?: () => void\n\tisSaving: boolean\n\tdisabledCondition: boolean\n\tsubtitle: string\n\tchildren: React.ReactNode\n}) {\n\tconst { formatMessage } = useIntl()\n\n\treturn (\n\t\t<Page.Main>\n\t\t\t<Layouts.Header\n\t\t\t\ttitle={PLUGIN_NAME}\n\t\t\t\tsubtitle={subtitle}\n\t\t\t\tprimaryAction={\n\t\t\t\t\tdisabledCondition !== undefined &&\n\t\t\t\t\tsave && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tonClick={() => save()}\n\t\t\t\t\t\t\tloading={isSaving}\n\t\t\t\t\t\t\tdisabled={disabledCondition || isSaving}\n\t\t\t\t\t\t\tstartIcon={<Check />}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* <Check /> */}\n\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\tid: getTranslation('save'),\n\t\t\t\t\t\t\t\tdefaultMessage: 'Save',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Layouts.Content>\n\t\t\t\t<Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n\t\t\t\t\t{children}\n\t\t\t\t</Flex>\n\t\t\t</Layouts.Content>\n\t\t</Page.Main>\n\t)\n}\n","import { Typography, Flex, Box } from '@strapi/design-system'\n\nexport default function ContentBox({\n\ttitle,\n\tchildren,\n}: {\n\ttitle: string\n\tchildren: React.ReactNode\n}) {\n\treturn (\n\t\t<Flex\n\t\t\tbackground=\"neutral0\"\n\t\t\thasRadius\n\t\t\tpaddingTop={6}\n\t\t\tpaddingBottom={6}\n\t\t\tpaddingLeft={7}\n\t\t\tpaddingRight={7}\n\t\t\tshadow=\"tableShadow\"\n\t\t\tdirection=\"column\"\n\t\t\talignItems=\"stretch\"\n\t\t\tgap={4}\n\t\t>\n\t\t\t<Typography variant=\"delta\">{title}</Typography>\n\t\t\t<Box>{children}</Box>\n\t\t</Flex>\n\t)\n}\n","import { Typography } from '@strapi/design-system'\n\nexport default function SettingTitle({ children }: { children: React.ReactNode }) {\n\treturn (\n\t\t<Typography variant=\"sigma\" textColor=\"neutral600\">\n\t\t\t{children}\n\t\t</Typography>\n\t)\n}\n"],"names":[],"mappings":";;;;;;AAOA,SAAwB,YAAY;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAMG;AACF,QAAM,EAAE,cAAA,IAAkB,QAAA;AAE1B,SACC,qBAAC,KAAK,MAAL,EACA,UAAA;AAAA,IAAA;AAAA,MAAC,QAAQ;AAAA,MAAR;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA,eACC,sBAAsB,UACtB,QACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,MAAK;AAAA,YACL,SAAS,MAAM,KAAA;AAAA,YACf,SAAS;AAAA,YACT,UAAU,qBAAqB;AAAA,YAC/B,+BAAY,OAAA,EAAM;AAAA,YAGjB,UAAA,cAAc;AAAA,cACd,IAAI,eAAe,MAAM;AAAA,cACzB,gBAAgB;AAAA,YAAA,CAChB;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IAIH,oBAAC,QAAQ,SAAR,EACA,UAAA,oBAAC,MAAA,EAAK,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UACF,EAAA,CACD;AAAA,EAAA,GACD;AAEF;ACnDA,SAAwB,WAAW;AAAA,EAClC;AAAA,EACA;AACD,GAGG;AACF,SACC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,YAAW;AAAA,MACX,WAAS;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd,QAAO;AAAA,MACP,WAAU;AAAA,MACV,YAAW;AAAA,MACX,KAAK;AAAA,MAEL,UAAA;AAAA,QAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,QACnC,oBAAC,OAAK,SAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlB;ACxBA,SAAwB,aAAa,EAAE,YAA2C;AACjF,6BACE,YAAA,EAAW,SAAQ,SAAQ,WAAU,cACpC,UACF;AAEF;"}
1
+ {"version":3,"file":"SettingTitle-CcNfx_4T.mjs","sources":["../../admin/src/pages/Settings/PageWrapper.tsx","../../admin/src/pages/Settings/ContentBox.tsx","../../admin/src/pages/Settings/SettingTitle.tsx"],"sourcesContent":["import { Button, Flex } from '@strapi/design-system'\nimport { Page, Layouts } from '@strapi/strapi/admin'\nimport { PLUGIN_NAME } from '../../../../utils/pluginId'\nimport { getTranslation } from '../../utils'\nimport { useIntl } from 'react-intl'\nimport { Check } from '@strapi/icons'\n\nexport default function PageWrapper({\n\tsave,\n\tisSaving,\n\tdisabledCondition,\n\tsubtitle,\n\tchildren,\n}: {\n\tsave?: () => void\n\tisSaving: boolean\n\tdisabledCondition: boolean\n\tsubtitle: string\n\tchildren: React.ReactNode\n}) {\n\tconst { formatMessage } = useIntl()\n\n\treturn (\n\t\t<Page.Main>\n\t\t\t<Layouts.Header\n\t\t\t\ttitle={PLUGIN_NAME}\n\t\t\t\tsubtitle={subtitle}\n\t\t\t\tprimaryAction={\n\t\t\t\t\tdisabledCondition !== undefined &&\n\t\t\t\t\tsave && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tonClick={() => save()}\n\t\t\t\t\t\t\tloading={isSaving}\n\t\t\t\t\t\t\tdisabled={disabledCondition || isSaving}\n\t\t\t\t\t\t\tstartIcon={<Check />}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{/* <Check /> */}\n\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\tid: getTranslation('save'),\n\t\t\t\t\t\t\t\tdefaultMessage: 'Save',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Layouts.Content>\n\t\t\t\t<Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n\t\t\t\t\t{children}\n\t\t\t\t</Flex>\n\t\t\t</Layouts.Content>\n\t\t</Page.Main>\n\t)\n}\n","import { Typography, Flex, Box } from '@strapi/design-system'\n\nexport default function ContentBox({\n\ttitle,\n\tchildren,\n}: {\n\ttitle: string\n\tchildren: React.ReactNode\n}) {\n\treturn (\n\t\t<Flex\n\t\t\tbackground=\"neutral0\"\n\t\t\thasRadius\n\t\t\tpaddingTop={6}\n\t\t\tpaddingBottom={6}\n\t\t\tpaddingLeft={7}\n\t\t\tpaddingRight={7}\n\t\t\tshadow=\"tableShadow\"\n\t\t\tdirection=\"column\"\n\t\t\talignItems=\"stretch\"\n\t\t\tgap={4}\n\t\t>\n\t\t\t<Typography variant=\"delta\">{title}</Typography>\n\t\t\t<Box>{children}</Box>\n\t\t</Flex>\n\t)\n}\n","import { Typography } from '@strapi/design-system'\n\nexport default function SettingTitle({ children }: { children: React.ReactNode }) {\n\treturn (\n\t\t<Typography variant=\"sigma\" textColor=\"neutral600\">\n\t\t\t{children}\n\t\t</Typography>\n\t)\n}\n"],"names":[],"mappings":";;;;;;AAOA,SAAwB,YAAY;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAMG;AACF,QAAM,EAAE,cAAA,IAAkB,QAAA;AAE1B,SACC,qBAAC,KAAK,MAAL,EACA,UAAA;AAAA,IAAA;AAAA,MAAC,QAAQ;AAAA,MAAR;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA,eACC,sBAAsB,UACtB,QACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,MAAK;AAAA,YACL,SAAS,MAAM,KAAA;AAAA,YACf,SAAS;AAAA,YACT,UAAU,qBAAqB;AAAA,YAC/B,+BAAY,OAAA,EAAM;AAAA,YAGjB,UAAA,cAAc;AAAA,cACd,IAAI,eAAe,MAAM;AAAA,cACzB,gBAAgB;AAAA,YAAA,CAChB;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IAIH,oBAAC,QAAQ,SAAR,EACA,UAAA,oBAAC,MAAA,EAAK,WAAU,UAAS,YAAW,WAAU,KAAK,GACjD,UACF,EAAA,CACD;AAAA,EAAA,GACD;AAEF;ACnDA,SAAwB,WAAW;AAAA,EAClC;AAAA,EACA;AACD,GAGG;AACF,SACC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,YAAW;AAAA,MACX,WAAS;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd,QAAO;AAAA,MACP,WAAU;AAAA,MACV,YAAW;AAAA,MACX,KAAK;AAAA,MAEL,UAAA;AAAA,QAAA,oBAAC,YAAA,EAAW,SAAQ,SAAS,UAAA,OAAM;AAAA,QACnC,oBAAC,OAAK,SAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlB;ACxBA,SAAwB,aAAa,EAAE,YAA2C;AACjF,6BACE,YAAA,EAAW,SAAQ,SAAQ,WAAU,cACpC,UACF;AAEF;"}
@@ -2,11 +2,11 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useReducer, useState, useRef, useEffect } from "react";
3
3
  import { Box, Accordion, Field, SingleSelect, SingleSelectOption, Typography, Link } from "@strapi/design-system";
4
4
  import { useNotification, Page } from "@strapi/strapi/admin";
5
- import { g as getTranslation, c as usePluginConfig, e as useAllContentTypes, p as pluginPermissions, f as PLUGIN_NAME, h as PLUGIN_VERSION } from "./index-B79ELMEC.mjs";
5
+ import { g as getTranslation, c as usePluginConfig, e as useAllContentTypes, p as pluginPermissions, f as PLUGIN_NAME, h as PLUGIN_VERSION } from "./index-BX3hiURm.mjs";
6
6
  import { useIntl } from "react-intl";
7
7
  import "@strapi/icons/symbols";
8
8
  import { F as FullLoader } from "./FullLoader-Btjb2W2p.mjs";
9
- import { P as PageWrapper, C as ContentBox, S as SettingTitle } from "./SettingTitle-HMfQOJnK.mjs";
9
+ import { P as PageWrapper, C as ContentBox, S as SettingTitle } from "./SettingTitle-CcNfx_4T.mjs";
10
10
  import { ExternalLink } from "@strapi/icons";
11
11
  function ContentTypeAccordion({
12
12
  contentType,
@@ -241,4 +241,4 @@ const Settings = () => {
241
241
  export {
242
242
  Settings as default
243
243
  };
244
- //# sourceMappingURL=index-Bmg-ERct.mjs.map
244
+ //# sourceMappingURL=index-BMTlUOrK.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-Bmg-ERct.mjs","sources":["../../admin/src/pages/Settings/General/ContentTypeAccordion.tsx","../../admin/src/pages/Settings/General/index.tsx"],"sourcesContent":["import { SingleSelect, SingleSelectOption } from '@strapi/design-system'\nimport { Box, Accordion, Field } from '@strapi/design-system'\nimport { getTranslation } from '../../../utils'\nimport { useIntl } from 'react-intl'\nimport type { ContentType, ConfigContentType } from '../../../../../types'\n\nexport default function ContentTypeAccordion({\n\tcontentType,\n\tcontentTypeSettings,\n\tdispatch,\n}: {\n\tcontentType: ContentType | undefined\n\tcontentTypeSettings: ConfigContentType\n\tdispatch: React.Dispatch<any>\n}) {\n\tconst { formatMessage } = useIntl()\n\n\tif (!contentType) return null\n\n\treturn (\n\t\t<Box borderColor={!contentTypeSettings.default ? 'danger500' : undefined} key={contentType.uid}>\n\t\t\t<Accordion.Item key={contentType.uid} value={contentType.uid}>\n\t\t\t\t<Accordion.Header>\n\t\t\t\t\t<Accordion.Trigger>{contentType?.info.displayName}</Accordion.Trigger>\n\t\t\t\t</Accordion.Header>\n\t\t\t\t<Accordion.Content>\n\t\t\t\t\t<Box padding={3}>\n\t\t\t\t\t\t<Field.Root\n\t\t\t\t\t\t\tname=\"selectedContentTypes\"\n\t\t\t\t\t\t\thint={formatMessage({\n\t\t\t\t\t\t\t\tid: getTranslation('settings.page.generate.hint'),\n\t\t\t\t\t\t\t\tdefaultMessage:\n\t\t\t\t\t\t\t\t\t'The selected field from the content type will be used to generate the path. Use a field that is unique and descriptive, such as a \"title\" or \"name\".',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\terror={\n\t\t\t\t\t\t\t\t!contentTypeSettings.default &&\n\t\t\t\t\t\t\t\tformatMessage({\n\t\t\t\t\t\t\t\t\tid: getTranslation('settings.page.generate.error'),\n\t\t\t\t\t\t\t\t\tdefaultMessage: 'Please select a default field',\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Field.Label>\n\t\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\t\tid: getTranslation('settings.page.generate'),\n\t\t\t\t\t\t\t\t\tdefaultMessage: 'Generate paths from',\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</Field.Label>\n\t\t\t\t\t\t\t<SingleSelect\n\t\t\t\t\t\t\t\tname={`defaultField-${contentType.uid}`}\n\t\t\t\t\t\t\t\tonClear={() =>\n\t\t\t\t\t\t\t\t\tdispatch({\n\t\t\t\t\t\t\t\t\t\ttype: 'SET_DEFAULT_FIELD',\n\t\t\t\t\t\t\t\t\t\tpayload: { ctUid: contentType.uid, field: '' },\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue={contentTypeSettings?.default || ''}\n\t\t\t\t\t\t\t\tonChange={(value: string | number) =>\n\t\t\t\t\t\t\t\t\tdispatch({\n\t\t\t\t\t\t\t\t\t\ttype: 'SET_DEFAULT_FIELD',\n\t\t\t\t\t\t\t\t\t\tpayload: { ctUid: contentType.uid, field: String(value) },\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{Object.entries(contentType.attributes).map(([key], index) => {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tkey === 'id' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'documentId' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'createdAt' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'updatedAt' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'createdBy' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'updatedBy' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'webatlas' ||\n\t\t\t\t\t\t\t\t\t\t// The following fields are not longer used in the new implementation, but we keep them hidden just in case\n\t\t\t\t\t\t\t\t\t\tkey === 'webatlas_path' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'webatlas_override' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'webatlas_parent'\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\treturn null\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<SingleSelectOption key={index} value={key}>\n\t\t\t\t\t\t\t\t\t\t\t{key}\n\t\t\t\t\t\t\t\t\t\t</SingleSelectOption>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</SingleSelect>\n\t\t\t\t\t\t\t<Field.Hint />\n\t\t\t\t\t\t</Field.Root>\n\t\t\t\t\t</Box>\n\t\t\t\t</Accordion.Content>\n\t\t\t</Accordion.Item>\n\t\t</Box>\n\t)\n}\n","/*\n *\n * Settings\n * This file contains the general settings page for the Webatlas plugin.\n * It allows users to configure which content types are enabled for URL aliases and navigations,\n * as well as setting default fields for each content type.\n *\n */\n\nimport type { ContentType, ConfigContentType, PluginConfig } from '../../../../../types'\nimport { useEffect, useState, useReducer, useRef } from 'react'\nimport { Box, Accordion, Field } from '@strapi/design-system'\nimport { useNotification, Page } from '@strapi/strapi/admin'\nimport usePluginConfig from '../../../hooks/usePluginConfig'\nimport useAllContentTypes from '../../../hooks/useAllContentTypes'\nimport { getTranslation } from '../../../utils'\nimport { useIntl } from 'react-intl'\nimport { FullLoader } from '../../../components/UI'\nimport { PageWrapper, ContentBox, SettingTitle } from '..'\nimport ContentTypeAccordion from './ContentTypeAccordion'\nimport { PLUGIN_VERSION, PLUGIN_NAME } from '../../../../../utils/pluginId'\nimport { Typography } from '@strapi/design-system'\nimport { Link } from '@strapi/design-system'\nimport { ExternalLink } from '@strapi/icons'\nimport pluginPermissions from '../../../permissions'\n\ntype Action =\n\t| { type: 'SET_DEFAULT_FIELD'; payload: { ctUid: string; field: string } }\n\t| { type: 'SET_CONFIG'; payload: PluginConfig }\n\nfunction reducer(newConfig: PluginConfig | null, action: Action): PluginConfig | null {\n\tlet updatedContentTypes\n\n\tswitch (action.type) {\n\t\tcase 'SET_DEFAULT_FIELD':\n\t\t\tif (!newConfig) return null\n\t\t\tupdatedContentTypes = newConfig?.selectedContentTypes.map((ct) =>\n\t\t\t\tct.uid === action.payload.ctUid ? { ...ct, default: action.payload.field } : ct,\n\t\t\t)\n\t\t\treturn { ...newConfig, selectedContentTypes: updatedContentTypes || [] }\n\t\tcase 'SET_CONFIG':\n\t\t\treturn action.payload\n\t\tdefault:\n\t\t\tthrow new Error()\n\t}\n}\n\nconst Settings = () => {\n\tconst { config: fetchedConfig, setConfig, loading, fetchError } = usePluginConfig()\n\tconst [config, dispatch] = useReducer(reducer, fetchedConfig)\n\tconst { contentTypes: allContentTypesData } = useAllContentTypes()\n\tconst allContentTypes = allContentTypesData?.filter(\n\t\t(ct: ContentType) => ct.pluginOptions?.webatlas?.enabled === true,\n\t)\n\tconst { toggleNotification } = useNotification()\n\tconst { formatMessage } = useIntl()\n\tconst [isSaving, setIsSaving] = useState(false)\n\tconst initialConfig = useRef<PluginConfig | null>(fetchedConfig)\n\n\tuseEffect(() => {\n\t\tinitialConfig.current = fetchedConfig\n\n\t\tif (fetchedConfig) dispatch({ type: 'SET_CONFIG', payload: fetchedConfig })\n\t}, [fetchedConfig])\n\n\tuseEffect(() => {\n\t\tif (fetchError) {\n\t\t\ttoggleNotification({\n\t\t\t\ttype: 'danger',\n\t\t\t\tmessage:\n\t\t\t\t\tformatMessage({\n\t\t\t\t\t\tid: getTranslation('notification.error'),\n\t\t\t\t\t\tdefaultMessage: 'An error occurred',\n\t\t\t\t\t}) +\n\t\t\t\t\t': ' +\n\t\t\t\t\tfetchError,\n\t\t\t})\n\t\t}\n\t}, [fetchError, toggleNotification, formatMessage])\n\n\tasync function save() {\n\t\tif (\n\t\t\t!config ||\n\t\t\tconfig.selectedContentTypes.find((cta: ConfigContentType) => !cta.default) !== undefined\n\t\t)\n\t\t\treturn\n\n\t\tsetIsSaving(true)\n\t\ttry {\n\t\t\tawait setConfig({ selectedContentTypes: config.selectedContentTypes })\n\t\t\tinitialConfig.current = config\n\n\t\t\ttoggleNotification({\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: formatMessage({\n\t\t\t\t\tid: getTranslation('notification.settings.saved'),\n\t\t\t\t\tdefaultMessage: 'Settings saved successfully',\n\t\t\t\t}),\n\t\t\t})\n\t\t\tsetIsSaving(false)\n\t\t} catch (err) {\n\t\t\tsetIsSaving(false)\n\t\t\ttoggleNotification({\n\t\t\t\ttype: 'danger',\n\t\t\t\tmessage:\n\t\t\t\t\tformatMessage({\n\t\t\t\t\t\tid: getTranslation('notification.error'),\n\t\t\t\t\t\tdefaultMessage: 'An error occurred',\n\t\t\t\t\t}) +\n\t\t\t\t\t': ' +\n\t\t\t\t\terr,\n\t\t\t})\n\t\t\tstrapi.log.error(err)\n\t\t}\n\t}\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<PageWrapper\n\t\t\t\tisSaving={isSaving}\n\t\t\t\tsubtitle={formatMessage({\n\t\t\t\t\tid: getTranslation('loading'),\n\t\t\t\t\tdefaultMessage: 'Loading...',\n\t\t\t\t})}\n\t\t\t\tdisabledCondition={true}\n\t\t\t>\n\t\t\t\t<FullLoader height={200} />\n\t\t\t</PageWrapper>\n\t\t)\n\t}\n\n\treturn (\n\t\t<Page.Protect permissions={pluginPermissions['settings.general']}>\n\t\t\t<PageWrapper\n\t\t\t\tsave={save}\n\t\t\t\tisSaving={isSaving}\n\t\t\t\tsubtitle={formatMessage({\n\t\t\t\t\tid: getTranslation('settings.page.general.subtitle'),\n\t\t\t\t\tdefaultMessage: 'Configure general settings',\n\t\t\t\t})}\n\t\t\t\tdisabledCondition={JSON.stringify(config) === JSON.stringify(initialConfig.current)}\n\t\t\t>\n\t\t\t\t<ContentBox\n\t\t\t\t\ttitle={formatMessage({\n\t\t\t\t\t\tid: getTranslation('settings.page.general.contentTypes'),\n\t\t\t\t\t\tdefaultMessage: 'Content Types',\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{config?.selectedContentTypes && config.selectedContentTypes.length > 0 ? (\n\t\t\t\t\t\t<Field.Root name=\"selectedContentTypesAccordion\">\n\t\t\t\t\t\t\t<Field.Label>\n\t\t\t\t\t\t\t\t<SettingTitle>\n\t\t\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\t\t\tid: getTranslation('settings.page.contentTypeSettings'),\n\t\t\t\t\t\t\t\t\t\tdefaultMessage: 'Content Type settings',\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</SettingTitle>\n\t\t\t\t\t\t\t</Field.Label>\n\t\t\t\t\t\t\t<Accordion.Root>\n\t\t\t\t\t\t\t\t{config.selectedContentTypes?.map((contentTypeSettings: ConfigContentType) => {\n\t\t\t\t\t\t\t\t\tconst ct: ContentType | undefined = allContentTypes?.find(\n\t\t\t\t\t\t\t\t\t\t(item) => item.uid === contentTypeSettings.uid,\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ContentTypeAccordion\n\t\t\t\t\t\t\t\t\t\t\tkey={contentTypeSettings.uid}\n\t\t\t\t\t\t\t\t\t\t\tcontentType={ct}\n\t\t\t\t\t\t\t\t\t\t\tcontentTypeSettings={contentTypeSettings}\n\t\t\t\t\t\t\t\t\t\t\tdispatch={dispatch}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</Accordion.Root>\n\t\t\t\t\t\t</Field.Root>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Typography>\n\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\tid: getTranslation('settings.page.general.noContentTypesEnabled'),\n\t\t\t\t\t\t\t\tdefaultMessage:\n\t\t\t\t\t\t\t\t\t'No content types are enabled for Webatlas. Please enable at least one content type to use this plugin.',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\thref=\"https://github.com/mattisvensson/strapi-plugin-webatlas?tab=readme-ov-file#-configuration\"\n\t\t\t\t\t\t\t\tisExternal\n\t\t\t\t\t\t\t\tstyle={{ marginLeft: 4 }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\t\tid: getTranslation('settings.page.general.noContentTypesEnabled.moreInfo'),\n\t\t\t\t\t\t\t\t\tdefaultMessage: 'More info',\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t)}\n\t\t\t\t</ContentBox>\n\t\t\t\t<ContentBox\n\t\t\t\t\ttitle={formatMessage({\n\t\t\t\t\t\tid: getTranslation('settings.page.general.details'),\n\t\t\t\t\t\tdefaultMessage: 'Details',\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t<Field.Root name=\"selectedContentTypesAccordion\">\n\t\t\t\t\t\t<Field.Label>\n\t\t\t\t\t\t\t<SettingTitle>\n\t\t\t\t\t\t\t\t{PLUGIN_NAME}{' '}\n\t\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\t\tid: getTranslation('version'),\n\t\t\t\t\t\t\t\t\tdefaultMessage: 'Version',\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</SettingTitle>\n\t\t\t\t\t\t</Field.Label>\n\t\t\t\t\t\t<Typography>\n\t\t\t\t\t\t\tv{PLUGIN_VERSION}\n\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\thref={`https://github.com/mattisvensson/strapi-plugin-webatlas/releases/tag/v${PLUGIN_VERSION}`}\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\tstyle={{ marginLeft: 4 }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ExternalLink />\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</Field.Root>\n\t\t\t\t</ContentBox>\n\t\t\t</PageWrapper>\n\t\t</Page.Protect>\n\t)\n}\n\nexport default Settings\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-BMTlUOrK.mjs","sources":["../../admin/src/pages/Settings/General/ContentTypeAccordion.tsx","../../admin/src/pages/Settings/General/index.tsx"],"sourcesContent":["import { SingleSelect, SingleSelectOption } from '@strapi/design-system'\nimport { Box, Accordion, Field } from '@strapi/design-system'\nimport { getTranslation } from '../../../utils'\nimport { useIntl } from 'react-intl'\nimport type { ContentType, ConfigContentType } from '../../../../../types'\n\nexport default function ContentTypeAccordion({\n\tcontentType,\n\tcontentTypeSettings,\n\tdispatch,\n}: {\n\tcontentType: ContentType | undefined\n\tcontentTypeSettings: ConfigContentType\n\tdispatch: React.Dispatch<any>\n}) {\n\tconst { formatMessage } = useIntl()\n\n\tif (!contentType) return null\n\n\treturn (\n\t\t<Box borderColor={!contentTypeSettings.default ? 'danger500' : undefined} key={contentType.uid}>\n\t\t\t<Accordion.Item key={contentType.uid} value={contentType.uid}>\n\t\t\t\t<Accordion.Header>\n\t\t\t\t\t<Accordion.Trigger>{contentType?.info.displayName}</Accordion.Trigger>\n\t\t\t\t</Accordion.Header>\n\t\t\t\t<Accordion.Content>\n\t\t\t\t\t<Box padding={3}>\n\t\t\t\t\t\t<Field.Root\n\t\t\t\t\t\t\tname=\"selectedContentTypes\"\n\t\t\t\t\t\t\thint={formatMessage({\n\t\t\t\t\t\t\t\tid: getTranslation('settings.page.generate.hint'),\n\t\t\t\t\t\t\t\tdefaultMessage:\n\t\t\t\t\t\t\t\t\t'The selected field from the content type will be used to generate the path. Use a field that is unique and descriptive, such as a \"title\" or \"name\".',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\terror={\n\t\t\t\t\t\t\t\t!contentTypeSettings.default &&\n\t\t\t\t\t\t\t\tformatMessage({\n\t\t\t\t\t\t\t\t\tid: getTranslation('settings.page.generate.error'),\n\t\t\t\t\t\t\t\t\tdefaultMessage: 'Please select a default field',\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Field.Label>\n\t\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\t\tid: getTranslation('settings.page.generate'),\n\t\t\t\t\t\t\t\t\tdefaultMessage: 'Generate paths from',\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</Field.Label>\n\t\t\t\t\t\t\t<SingleSelect\n\t\t\t\t\t\t\t\tname={`defaultField-${contentType.uid}`}\n\t\t\t\t\t\t\t\tonClear={() =>\n\t\t\t\t\t\t\t\t\tdispatch({\n\t\t\t\t\t\t\t\t\t\ttype: 'SET_DEFAULT_FIELD',\n\t\t\t\t\t\t\t\t\t\tpayload: { ctUid: contentType.uid, field: '' },\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tvalue={contentTypeSettings?.default || ''}\n\t\t\t\t\t\t\t\tonChange={(value: string | number) =>\n\t\t\t\t\t\t\t\t\tdispatch({\n\t\t\t\t\t\t\t\t\t\ttype: 'SET_DEFAULT_FIELD',\n\t\t\t\t\t\t\t\t\t\tpayload: { ctUid: contentType.uid, field: String(value) },\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{Object.entries(contentType.attributes).map(([key], index) => {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tkey === 'id' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'documentId' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'createdAt' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'updatedAt' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'createdBy' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'updatedBy' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'webatlas' ||\n\t\t\t\t\t\t\t\t\t\t// The following fields are not longer used in the new implementation, but we keep them hidden just in case\n\t\t\t\t\t\t\t\t\t\tkey === 'webatlas_path' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'webatlas_override' ||\n\t\t\t\t\t\t\t\t\t\tkey === 'webatlas_parent'\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\treturn null\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<SingleSelectOption key={index} value={key}>\n\t\t\t\t\t\t\t\t\t\t\t{key}\n\t\t\t\t\t\t\t\t\t\t</SingleSelectOption>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</SingleSelect>\n\t\t\t\t\t\t\t<Field.Hint />\n\t\t\t\t\t\t</Field.Root>\n\t\t\t\t\t</Box>\n\t\t\t\t</Accordion.Content>\n\t\t\t</Accordion.Item>\n\t\t</Box>\n\t)\n}\n","/*\n *\n * Settings\n * This file contains the general settings page for the Webatlas plugin.\n * It allows users to configure which content types are enabled for URL aliases and navigations,\n * as well as setting default fields for each content type.\n *\n */\n\nimport type { ContentType, ConfigContentType, PluginConfig } from '../../../../../types'\nimport { useEffect, useState, useReducer, useRef } from 'react'\nimport { Box, Accordion, Field } from '@strapi/design-system'\nimport { useNotification, Page } from '@strapi/strapi/admin'\nimport usePluginConfig from '../../../hooks/usePluginConfig'\nimport useAllContentTypes from '../../../hooks/useAllContentTypes'\nimport { getTranslation } from '../../../utils'\nimport { useIntl } from 'react-intl'\nimport { FullLoader } from '../../../components/UI'\nimport { PageWrapper, ContentBox, SettingTitle } from '..'\nimport ContentTypeAccordion from './ContentTypeAccordion'\nimport { PLUGIN_VERSION, PLUGIN_NAME } from '../../../../../utils/pluginId'\nimport { Typography } from '@strapi/design-system'\nimport { Link } from '@strapi/design-system'\nimport { ExternalLink } from '@strapi/icons'\nimport pluginPermissions from '../../../permissions'\n\ntype Action =\n\t| { type: 'SET_DEFAULT_FIELD'; payload: { ctUid: string; field: string } }\n\t| { type: 'SET_CONFIG'; payload: PluginConfig }\n\nfunction reducer(newConfig: PluginConfig | null, action: Action): PluginConfig | null {\n\tlet updatedContentTypes\n\n\tswitch (action.type) {\n\t\tcase 'SET_DEFAULT_FIELD':\n\t\t\tif (!newConfig) return null\n\t\t\tupdatedContentTypes = newConfig?.selectedContentTypes.map((ct) =>\n\t\t\t\tct.uid === action.payload.ctUid ? { ...ct, default: action.payload.field } : ct,\n\t\t\t)\n\t\t\treturn { ...newConfig, selectedContentTypes: updatedContentTypes || [] }\n\t\tcase 'SET_CONFIG':\n\t\t\treturn action.payload\n\t\tdefault:\n\t\t\tthrow new Error()\n\t}\n}\n\nconst Settings = () => {\n\tconst { config: fetchedConfig, setConfig, loading, fetchError } = usePluginConfig()\n\tconst [config, dispatch] = useReducer(reducer, fetchedConfig)\n\tconst { contentTypes: allContentTypesData } = useAllContentTypes()\n\tconst allContentTypes = allContentTypesData?.filter(\n\t\t(ct: ContentType) => ct.pluginOptions?.webatlas?.enabled === true,\n\t)\n\tconst { toggleNotification } = useNotification()\n\tconst { formatMessage } = useIntl()\n\tconst [isSaving, setIsSaving] = useState(false)\n\tconst initialConfig = useRef<PluginConfig | null>(fetchedConfig)\n\n\tuseEffect(() => {\n\t\tinitialConfig.current = fetchedConfig\n\n\t\tif (fetchedConfig) dispatch({ type: 'SET_CONFIG', payload: fetchedConfig })\n\t}, [fetchedConfig])\n\n\tuseEffect(() => {\n\t\tif (fetchError) {\n\t\t\ttoggleNotification({\n\t\t\t\ttype: 'danger',\n\t\t\t\tmessage:\n\t\t\t\t\tformatMessage({\n\t\t\t\t\t\tid: getTranslation('notification.error'),\n\t\t\t\t\t\tdefaultMessage: 'An error occurred',\n\t\t\t\t\t}) +\n\t\t\t\t\t': ' +\n\t\t\t\t\tfetchError,\n\t\t\t})\n\t\t}\n\t}, [fetchError, toggleNotification, formatMessage])\n\n\tasync function save() {\n\t\tif (\n\t\t\t!config ||\n\t\t\tconfig.selectedContentTypes.find((cta: ConfigContentType) => !cta.default) !== undefined\n\t\t)\n\t\t\treturn\n\n\t\tsetIsSaving(true)\n\t\ttry {\n\t\t\tawait setConfig({ selectedContentTypes: config.selectedContentTypes })\n\t\t\tinitialConfig.current = config\n\n\t\t\ttoggleNotification({\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: formatMessage({\n\t\t\t\t\tid: getTranslation('notification.settings.saved'),\n\t\t\t\t\tdefaultMessage: 'Settings saved successfully',\n\t\t\t\t}),\n\t\t\t})\n\t\t\tsetIsSaving(false)\n\t\t} catch (err) {\n\t\t\tsetIsSaving(false)\n\t\t\ttoggleNotification({\n\t\t\t\ttype: 'danger',\n\t\t\t\tmessage:\n\t\t\t\t\tformatMessage({\n\t\t\t\t\t\tid: getTranslation('notification.error'),\n\t\t\t\t\t\tdefaultMessage: 'An error occurred',\n\t\t\t\t\t}) +\n\t\t\t\t\t': ' +\n\t\t\t\t\terr,\n\t\t\t})\n\t\t\tstrapi.log.error(err)\n\t\t}\n\t}\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<PageWrapper\n\t\t\t\tisSaving={isSaving}\n\t\t\t\tsubtitle={formatMessage({\n\t\t\t\t\tid: getTranslation('loading'),\n\t\t\t\t\tdefaultMessage: 'Loading...',\n\t\t\t\t})}\n\t\t\t\tdisabledCondition={true}\n\t\t\t>\n\t\t\t\t<FullLoader height={200} />\n\t\t\t</PageWrapper>\n\t\t)\n\t}\n\n\treturn (\n\t\t<Page.Protect permissions={pluginPermissions['settings.general']}>\n\t\t\t<PageWrapper\n\t\t\t\tsave={save}\n\t\t\t\tisSaving={isSaving}\n\t\t\t\tsubtitle={formatMessage({\n\t\t\t\t\tid: getTranslation('settings.page.general.subtitle'),\n\t\t\t\t\tdefaultMessage: 'Configure general settings',\n\t\t\t\t})}\n\t\t\t\tdisabledCondition={JSON.stringify(config) === JSON.stringify(initialConfig.current)}\n\t\t\t>\n\t\t\t\t<ContentBox\n\t\t\t\t\ttitle={formatMessage({\n\t\t\t\t\t\tid: getTranslation('settings.page.general.contentTypes'),\n\t\t\t\t\t\tdefaultMessage: 'Content Types',\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{config?.selectedContentTypes && config.selectedContentTypes.length > 0 ? (\n\t\t\t\t\t\t<Field.Root name=\"selectedContentTypesAccordion\">\n\t\t\t\t\t\t\t<Field.Label>\n\t\t\t\t\t\t\t\t<SettingTitle>\n\t\t\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\t\t\tid: getTranslation('settings.page.contentTypeSettings'),\n\t\t\t\t\t\t\t\t\t\tdefaultMessage: 'Content Type settings',\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</SettingTitle>\n\t\t\t\t\t\t\t</Field.Label>\n\t\t\t\t\t\t\t<Accordion.Root>\n\t\t\t\t\t\t\t\t{config.selectedContentTypes?.map((contentTypeSettings: ConfigContentType) => {\n\t\t\t\t\t\t\t\t\tconst ct: ContentType | undefined = allContentTypes?.find(\n\t\t\t\t\t\t\t\t\t\t(item) => item.uid === contentTypeSettings.uid,\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ContentTypeAccordion\n\t\t\t\t\t\t\t\t\t\t\tkey={contentTypeSettings.uid}\n\t\t\t\t\t\t\t\t\t\t\tcontentType={ct}\n\t\t\t\t\t\t\t\t\t\t\tcontentTypeSettings={contentTypeSettings}\n\t\t\t\t\t\t\t\t\t\t\tdispatch={dispatch}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</Accordion.Root>\n\t\t\t\t\t\t</Field.Root>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Typography>\n\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\tid: getTranslation('settings.page.general.noContentTypesEnabled'),\n\t\t\t\t\t\t\t\tdefaultMessage:\n\t\t\t\t\t\t\t\t\t'No content types are enabled for Webatlas. Please enable at least one content type to use this plugin.',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\thref=\"https://github.com/mattisvensson/strapi-plugin-webatlas?tab=readme-ov-file#-configuration\"\n\t\t\t\t\t\t\t\tisExternal\n\t\t\t\t\t\t\t\tstyle={{ marginLeft: 4 }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\t\tid: getTranslation('settings.page.general.noContentTypesEnabled.moreInfo'),\n\t\t\t\t\t\t\t\t\tdefaultMessage: 'More info',\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t)}\n\t\t\t\t</ContentBox>\n\t\t\t\t<ContentBox\n\t\t\t\t\ttitle={formatMessage({\n\t\t\t\t\t\tid: getTranslation('settings.page.general.details'),\n\t\t\t\t\t\tdefaultMessage: 'Details',\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t<Field.Root name=\"selectedContentTypesAccordion\">\n\t\t\t\t\t\t<Field.Label>\n\t\t\t\t\t\t\t<SettingTitle>\n\t\t\t\t\t\t\t\t{PLUGIN_NAME}{' '}\n\t\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\t\tid: getTranslation('version'),\n\t\t\t\t\t\t\t\t\tdefaultMessage: 'Version',\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</SettingTitle>\n\t\t\t\t\t\t</Field.Label>\n\t\t\t\t\t\t<Typography>\n\t\t\t\t\t\t\tv{PLUGIN_VERSION}\n\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\thref={`https://github.com/mattisvensson/strapi-plugin-webatlas/releases/tag/v${PLUGIN_VERSION}`}\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\tstyle={{ marginLeft: 4 }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ExternalLink />\n\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</Field.Root>\n\t\t\t\t</ContentBox>\n\t\t\t</PageWrapper>\n\t\t</Page.Protect>\n\t)\n}\n\nexport default Settings\n"],"names":[],"mappings":";;;;;;;;;;AAMA,SAAwB,qBAAqB;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AACD,GAIG;AACF,QAAM,EAAE,cAAA,IAAkB,QAAA;AAE1B,MAAI,CAAC,YAAa,QAAO;AAEzB,SACC,oBAAC,KAAA,EAAI,aAAa,CAAC,oBAAoB,UAAU,cAAc,QAC9D,UAAA,qBAAC,UAAU,MAAV,EAAqC,OAAO,YAAY,KACxD,UAAA;AAAA,IAAA,oBAAC,UAAU,QAAV,EACA,UAAA,oBAAC,UAAU,SAAV,EAAmB,UAAA,aAAa,KAAK,YAAA,CAAY,EAAA,CACnD;AAAA,wBACC,UAAU,SAAV,EACA,UAAA,oBAAC,KAAA,EAAI,SAAS,GACb,UAAA;AAAA,MAAC,MAAM;AAAA,MAAN;AAAA,QACA,MAAK;AAAA,QACL,MAAM,cAAc;AAAA,UACnB,IAAI,eAAe,6BAA6B;AAAA,UAChD,gBACC;AAAA,QAAA,CACD;AAAA,QACD,OACC,CAAC,oBAAoB,WACrB,cAAc;AAAA,UACb,IAAI,eAAe,8BAA8B;AAAA,UACjD,gBAAgB;AAAA,QAAA,CAChB;AAAA,QAEF,UAAQ;AAAA,QAER,UAAA;AAAA,UAAA,oBAAC,MAAM,OAAN,EACC,UAAA,cAAc;AAAA,YACd,IAAI,eAAe,wBAAwB;AAAA,YAC3C,gBAAgB;AAAA,UAAA,CAChB,GACF;AAAA,UACA;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,MAAM,gBAAgB,YAAY,GAAG;AAAA,cACrC,SAAS,MACR,SAAS;AAAA,gBACR,MAAM;AAAA,gBACN,SAAS,EAAE,OAAO,YAAY,KAAK,OAAO,GAAA;AAAA,cAAG,CAC7C;AAAA,cAEF,OAAO,qBAAqB,WAAW;AAAA,cACvC,UAAU,CAAC,UACV,SAAS;AAAA,gBACR,MAAM;AAAA,gBACN,SAAS,EAAE,OAAO,YAAY,KAAK,OAAO,OAAO,KAAK,EAAA;AAAA,cAAE,CACxD;AAAA,cAGD,UAAA,OAAO,QAAQ,YAAY,UAAU,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,UAAU;AAC7D,oBACC,QAAQ,QACR,QAAQ,gBACR,QAAQ,eACR,QAAQ,eACR,QAAQ,eACR,QAAQ,eACR,QAAQ;AAAA,gBAER,QAAQ,mBACR,QAAQ,uBACR,QAAQ;AAER,yBAAO;AACR,uBACC,oBAAC,oBAAA,EAA+B,OAAO,KACrC,iBADuB,KAEzB;AAAA,cAEF,CAAC;AAAA,YAAA;AAAA,UAAA;AAAA,UAEF,oBAAC,MAAM,MAAN,CAAA,CAAW;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAEd,EAAA,CACD;AAAA,EAAA,EAAA,GArEoB,YAAY,GAsEjC,EAAA,GAvE8E,YAAY,GAwE3F;AAEF;AChEA,SAAS,QAAQ,WAAgC,QAAqC;AACrF,MAAI;AAEJ,UAAQ,OAAO,MAAA;AAAA,IACd,KAAK;AACJ,UAAI,CAAC,UAAW,QAAO;AACvB,4BAAsB,WAAW,qBAAqB;AAAA,QAAI,CAAC,OAC1D,GAAG,QAAQ,OAAO,QAAQ,QAAQ,EAAE,GAAG,IAAI,SAAS,OAAO,QAAQ,UAAU;AAAA,MAAA;AAE9E,aAAO,EAAE,GAAG,WAAW,sBAAsB,uBAAuB,CAAA,EAAC;AAAA,IACtE,KAAK;AACJ,aAAO,OAAO;AAAA,IACf;AACC,YAAM,IAAI,MAAA;AAAA,EAAM;AAEnB;AAEA,MAAM,WAAW,MAAM;AACtB,QAAM,EAAE,QAAQ,eAAe,WAAW,SAAS,WAAA,IAAe,gBAAA;AAClE,QAAM,CAAC,QAAQ,QAAQ,IAAI,WAAW,SAAS,aAAa;AAC5D,QAAM,EAAE,cAAc,oBAAA,IAAwB,mBAAA;AAC9C,QAAM,kBAAkB,qBAAqB;AAAA,IAC5C,CAAC,OAAoB,GAAG,eAAe,UAAU,YAAY;AAAA,EAAA;AAE9D,QAAM,EAAE,mBAAA,IAAuB,gBAAA;AAC/B,QAAM,EAAE,cAAA,IAAkB,QAAA;AAC1B,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,gBAAgB,OAA4B,aAAa;AAE/D,YAAU,MAAM;AACf,kBAAc,UAAU;AAExB,QAAI,cAAe,UAAS,EAAE,MAAM,cAAc,SAAS,eAAe;AAAA,EAC3E,GAAG,CAAC,aAAa,CAAC;AAElB,YAAU,MAAM;AACf,QAAI,YAAY;AACf,yBAAmB;AAAA,QAClB,MAAM;AAAA,QACN,SACC,cAAc;AAAA,UACb,IAAI,eAAe,oBAAoB;AAAA,UACvC,gBAAgB;AAAA,QAAA,CAChB,IACD,OACA;AAAA,MAAA,CACD;AAAA,IACF;AAAA,EACD,GAAG,CAAC,YAAY,oBAAoB,aAAa,CAAC;AAElD,iBAAe,OAAO;AACrB,QACC,CAAC,UACD,OAAO,qBAAqB,KAAK,CAAC,QAA2B,CAAC,IAAI,OAAO,MAAM;AAE/E;AAED,gBAAY,IAAI;AAChB,QAAI;AACH,YAAM,UAAU,EAAE,sBAAsB,OAAO,sBAAsB;AACrE,oBAAc,UAAU;AAExB,yBAAmB;AAAA,QAClB,MAAM;AAAA,QACN,SAAS,cAAc;AAAA,UACtB,IAAI,eAAe,6BAA6B;AAAA,UAChD,gBAAgB;AAAA,QAAA,CAChB;AAAA,MAAA,CACD;AACD,kBAAY,KAAK;AAAA,IAClB,SAAS,KAAK;AACb,kBAAY,KAAK;AACjB,yBAAmB;AAAA,QAClB,MAAM;AAAA,QACN,SACC,cAAc;AAAA,UACb,IAAI,eAAe,oBAAoB;AAAA,UACvC,gBAAgB;AAAA,QAAA,CAChB,IACD,OACA;AAAA,MAAA,CACD;AACD,aAAO,IAAI,MAAM,GAAG;AAAA,IACrB;AAAA,EACD;AAEA,MAAI,SAAS;AACZ,WACC;AAAA,MAAC;AAAA,MAAA;AAAA,QACA;AAAA,QACA,UAAU,cAAc;AAAA,UACvB,IAAI,eAAe,SAAS;AAAA,UAC5B,gBAAgB;AAAA,QAAA,CAChB;AAAA,QACD,mBAAmB;AAAA,QAEnB,UAAA,oBAAC,YAAA,EAAW,QAAQ,IAAA,CAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EAG5B;AAEA,6BACE,KAAK,SAAL,EAAa,aAAa,kBAAkB,kBAAkB,GAC9D,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,cAAc;AAAA,QACvB,IAAI,eAAe,gCAAgC;AAAA,QACnD,gBAAgB;AAAA,MAAA,CAChB;AAAA,MACD,mBAAmB,KAAK,UAAU,MAAM,MAAM,KAAK,UAAU,cAAc,OAAO;AAAA,MAElF,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,OAAO,cAAc;AAAA,cACpB,IAAI,eAAe,oCAAoC;AAAA,cACvD,gBAAgB;AAAA,YAAA,CAChB;AAAA,YAEA,UAAA,QAAQ,wBAAwB,OAAO,qBAAqB,SAAS,IACrE,qBAAC,MAAM,MAAN,EAAW,MAAK,iCAChB,UAAA;AAAA,cAAA,oBAAC,MAAM,OAAN,EACA,UAAA,oBAAC,gBACC,UAAA,cAAc;AAAA,gBACd,IAAI,eAAe,mCAAmC;AAAA,gBACtD,gBAAgB;AAAA,cAAA,CAChB,GACF,EAAA,CACD;AAAA,cACA,oBAAC,UAAU,MAAV,EACC,iBAAO,sBAAsB,IAAI,CAAC,wBAA2C;AAC7E,sBAAM,KAA8B,iBAAiB;AAAA,kBACpD,CAAC,SAAS,KAAK,QAAQ,oBAAoB;AAAA,gBAAA;AAE5C,uBACC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEA,aAAa;AAAA,oBACb;AAAA,oBACA;AAAA,kBAAA;AAAA,kBAHK,oBAAoB;AAAA,gBAAA;AAAA,cAM5B,CAAC,EAAA,CACF;AAAA,YAAA,EAAA,CACD,yBAEC,YAAA,EACC,UAAA;AAAA,cAAA,cAAc;AAAA,gBACd,IAAI,eAAe,6CAA6C;AAAA,gBAChE,gBACC;AAAA,cAAA,CACD;AAAA,cACD;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACA,MAAK;AAAA,kBACL,YAAU;AAAA,kBACV,OAAO,EAAE,YAAY,EAAA;AAAA,kBAEpB,UAAA,cAAc;AAAA,oBACd,IAAI,eAAe,sDAAsD;AAAA,oBACzE,gBAAgB;AAAA,kBAAA,CAChB;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF,EAAA,CACD;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,OAAO,cAAc;AAAA,cACpB,IAAI,eAAe,+BAA+B;AAAA,cAClD,gBAAgB;AAAA,YAAA,CAChB;AAAA,YAED,UAAA,qBAAC,MAAM,MAAN,EAAW,MAAK,iCAChB,UAAA;AAAA,cAAA,oBAAC,MAAM,OAAN,EACA,UAAA,qBAAC,cAAA,EACC,UAAA;AAAA,gBAAA;AAAA,gBAAa;AAAA,gBACb,cAAc;AAAA,kBACd,IAAI,eAAe,SAAS;AAAA,kBAC5B,gBAAgB;AAAA,gBAAA,CAChB;AAAA,cAAA,EAAA,CACF,EAAA,CACD;AAAA,mCACC,YAAA,EAAW,UAAA;AAAA,gBAAA;AAAA,gBACT;AAAA,gBACF;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACA,MAAM,yEAAyE,cAAc;AAAA,oBAC7F,QAAO;AAAA,oBACP,KAAI;AAAA,oBACJ,OAAO,EAAE,YAAY,EAAA;AAAA,oBAErB,8BAAC,cAAA,CAAA,CAAa;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACf,EAAA,CACD;AAAA,YAAA,EAAA,CACD;AAAA,UAAA;AAAA,QAAA;AAAA,MACD;AAAA,IAAA;AAAA,EAAA,GAEF;AAEF;"}
@@ -52,7 +52,7 @@ function transformToUrl(input, replaceSlash = true) {
52
52
  input = input.replace(/-+/g, "-");
53
53
  return input;
54
54
  }
55
- const version = "0.11.1";
55
+ const version = "0.11.3";
56
56
  const strapi$1 = { "name": "webatlas", "displayName": "Webatlas" };
57
57
  const pluginPkg = {
58
58
  version,
@@ -3943,7 +3943,7 @@ const Panel = ({ config }) => {
3943
3943
  try {
3944
3944
  const route2 = await getRelatedRoute(initialValues.documentId);
3945
3945
  if (!route2) return;
3946
- initialPath.current = initialValues.webatlas.path || route2.uidPath;
3946
+ initialPath.current = route2.uidPath;
3947
3947
  setRoute(route2);
3948
3948
  setIsOverride(route2.isOverride || false);
3949
3949
  dispatchPath({ type: "SET_OVERRIDEPATH", payload: route2.path || "" });
@@ -3964,8 +3964,9 @@ const Panel = ({ config }) => {
3964
3964
  } catch (err) {
3965
3965
  setRoute(null);
3966
3966
  strapi.log.error(err);
3967
+ } finally {
3968
+ setInitialLoadComplete(true);
3967
3969
  }
3968
- setInitialLoadComplete(true);
3969
3970
  }
3970
3971
  fetchRelatedRute();
3971
3972
  }, [config]);
@@ -4083,7 +4084,7 @@ const pluginPermissions = {
4083
4084
  "settings.general": [{ action: `plugin::${PLUGIN_ID}.settings.general`, subject: null }],
4084
4085
  "settings.navigation": [{ action: `plugin::${PLUGIN_ID}.settings.navigation`, subject: null }]
4085
4086
  };
4086
- const CMEditViewAside = ({ documentId, model, activeTab }) => {
4087
+ const CMEditViewAside = ({ model }) => {
4087
4088
  const { contentTypes } = useAllContentTypes();
4088
4089
  const { config } = usePluginConfig();
4089
4090
  const { formatMessage } = useIntl();
@@ -4096,36 +4097,6 @@ const CMEditViewAside = ({ documentId, model, activeTab }) => {
4096
4097
  const contentType = contentTypes?.find((ct) => ct.uid === model);
4097
4098
  setIsAllowedContentType(!!contentType?.pluginOptions?.webatlas?.enabled);
4098
4099
  }, [contentTypes, model]);
4099
- useEffect(() => {
4100
- const isWebatlasLabel = (label) => label.textContent?.startsWith("webatlas");
4101
- const cleanupLabels = () => {
4102
- const labels = document.querySelectorAll("label");
4103
- labels.forEach((label) => {
4104
- if (!isWebatlasLabel(label)) return;
4105
- const container = label.parentElement?.parentElement;
4106
- const parent = container?.parentElement;
4107
- const greatGrandParent = parent?.parentElement?.parentElement;
4108
- if (!container || !parent) return;
4109
- const parentWebatlasCount = Array.from(parent.querySelectorAll("label")).filter(
4110
- isWebatlasLabel
4111
- ).length;
4112
- const childrenCount = parent.children.length;
4113
- if (greatGrandParent && greatGrandParent?.querySelectorAll("label").length === Array.from(greatGrandParent.querySelectorAll("label")).filter(isWebatlasLabel).length) {
4114
- greatGrandParent.remove();
4115
- } else if (childrenCount === 1 || childrenCount === 2 && parentWebatlasCount === 2) {
4116
- parent.remove();
4117
- } else {
4118
- container.remove();
4119
- }
4120
- });
4121
- };
4122
- const timeoutId = setTimeout(() => {
4123
- cleanupLabels();
4124
- const secondTimeoutId = setTimeout(cleanupLabels, 1e3);
4125
- return () => clearTimeout(secondTimeoutId);
4126
- }, 100);
4127
- return () => clearTimeout(timeoutId);
4128
- }, [documentId, model, activeTab]);
4129
4100
  useEffect(() => {
4130
4101
  if (!config) return;
4131
4102
  setIsActiveContentType(false);
@@ -4170,7 +4141,7 @@ const index = {
4170
4141
  id: `${PLUGIN_ID}.link.paths`,
4171
4142
  defaultMessage: "Paths"
4172
4143
  },
4173
- Component: () => import("./index-9_HhKDUC.mjs"),
4144
+ Component: () => import("./index-BdyLsiR4.mjs"),
4174
4145
  permissions: [pluginPermissions["page.routes"][0]]
4175
4146
  });
4176
4147
  app.addMenuLink({
@@ -4180,7 +4151,7 @@ const index = {
4180
4151
  id: `${PLUGIN_ID}.link.navigation`,
4181
4152
  defaultMessage: "Navigation"
4182
4153
  },
4183
- Component: () => import("./index-oEJT_mvw.mjs"),
4154
+ Component: () => import("./index-DkfE_arE.mjs"),
4184
4155
  permissions: [pluginPermissions["page.navigation"][0]]
4185
4156
  });
4186
4157
  app.addSettingsLink(
@@ -4198,7 +4169,7 @@ const index = {
4198
4169
  },
4199
4170
  id: `${PLUGIN_ID}-general`,
4200
4171
  to: `${PLUGIN_ID}/general`,
4201
- Component: () => import("./index-Bmg-ERct.mjs"),
4172
+ Component: () => import("./index-BMTlUOrK.mjs"),
4202
4173
  permissions: [pluginPermissions["settings.general"][0]]
4203
4174
  }
4204
4175
  );
@@ -4209,7 +4180,7 @@ const index = {
4209
4180
  },
4210
4181
  id: `${PLUGIN_ID}-navigation`,
4211
4182
  to: `${PLUGIN_ID}/navigation`,
4212
- Component: () => import("./index-Cz_k_jjp.mjs"),
4183
+ Component: () => import("./index-DkEReTkt.mjs"),
4213
4184
  permissions: [pluginPermissions["settings.navigation"][0]]
4214
4185
  });
4215
4186
  app.registerPlugin({
@@ -4250,4 +4221,4 @@ export {
4250
4221
  pluginPermissions as p,
4251
4222
  useApi as u
4252
4223
  };
4253
- //# sourceMappingURL=index-B79ELMEC.mjs.map
4224
+ //# sourceMappingURL=index-BX3hiURm.mjs.map