@mattisvensson/strapi-plugin-webatlas 0.8.0 → 0.8.2

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 (84) hide show
  1. package/dist/_chunks/FullLoader-Cmsf8xS6.js +12 -0
  2. package/dist/_chunks/FullLoader-Cmsf8xS6.js.map +1 -0
  3. package/dist/_chunks/FullLoader-CrPED_dY.mjs +1 -0
  4. package/dist/_chunks/FullLoader-CrPED_dY.mjs.map +1 -0
  5. package/dist/_chunks/SettingTitle-BaaQ_99D.mjs +69 -0
  6. package/dist/_chunks/SettingTitle-BaaQ_99D.mjs.map +1 -0
  7. package/dist/_chunks/SettingTitle-D5oNwpzC.js +67 -0
  8. package/dist/_chunks/SettingTitle-DDZxIqee.js +68 -0
  9. package/dist/_chunks/SettingTitle-DDZxIqee.js.map +1 -0
  10. package/dist/_chunks/SettingTitle-IwvX4Kb5.mjs +68 -0
  11. package/dist/_chunks/{de-C1QgkRoj.mjs → de-B9pq-AJZ.mjs} +11 -2
  12. package/dist/_chunks/de-B9pq-AJZ.mjs.map +1 -0
  13. package/dist/_chunks/de-DlQxM8Tg.js +131 -0
  14. package/dist/_chunks/de-DlQxM8Tg.js.map +1 -0
  15. package/dist/_chunks/{en--8p5hbLP.mjs → en-Dmbcf7gp.mjs} +11 -2
  16. package/dist/_chunks/en-Dmbcf7gp.mjs.map +1 -0
  17. package/dist/_chunks/en-DrhxIwOr.js +131 -0
  18. package/dist/_chunks/en-DrhxIwOr.js.map +1 -0
  19. package/dist/_chunks/index--XAogZgv.js +247 -0
  20. package/dist/_chunks/index--XAogZgv.js.map +1 -0
  21. package/dist/_chunks/index-2lVgPz4a.js +128 -0
  22. package/dist/_chunks/index-B1dEY-gs.js +246 -0
  23. package/dist/_chunks/index-B1mbYb2_.js +293 -0
  24. package/dist/_chunks/index-B2tjc_lG.mjs +247 -0
  25. package/dist/_chunks/index-B2tjc_lG.mjs.map +1 -0
  26. package/dist/_chunks/index-BFuwbmZy.js +12241 -0
  27. package/dist/_chunks/{index-DSPh-fHL.mjs → index-D2Meknib.mjs} +11 -9
  28. package/dist/_chunks/index-D2SIGcj3.mjs +12242 -0
  29. package/dist/_chunks/index-D2SIGcj3.mjs.map +1 -0
  30. package/dist/_chunks/index-DH0mFrgH.js +129 -0
  31. package/dist/_chunks/index-DH0mFrgH.js.map +1 -0
  32. package/dist/_chunks/index-DKtlnMlv.js +12242 -0
  33. package/dist/_chunks/index-DKtlnMlv.js.map +1 -0
  34. package/dist/_chunks/index-DOMrViWi.js +4207 -0
  35. package/dist/_chunks/index-DOMrViWi.js.map +1 -0
  36. package/dist/_chunks/index-DXRtXlZW.mjs +129 -0
  37. package/dist/_chunks/index-DXRtXlZW.mjs.map +1 -0
  38. package/dist/_chunks/index-Df365kgY.js +294 -0
  39. package/dist/_chunks/index-Df365kgY.js.map +1 -0
  40. package/dist/_chunks/{index-VcxUbdMO.mjs → index-Dm_GIRd4.mjs} +35 -30
  41. package/dist/_chunks/index-Dt-mlR1F.mjs +4191 -0
  42. package/dist/_chunks/index-Dt-mlR1F.mjs.map +1 -0
  43. package/dist/_chunks/index-QFbHwlyj.mjs +294 -0
  44. package/dist/_chunks/index-QFbHwlyj.mjs.map +1 -0
  45. package/dist/_chunks/{index-7rox7tGX.mjs → index-QU9SZ_H9.mjs} +93 -52
  46. package/dist/_chunks/{index-Z3qq1ab8.mjs → index-_49Fvwqq.mjs} +47 -36
  47. package/dist/_chunks/{index-DGSjLYNl.mjs → index-aAKsnALd.mjs} +1 -1
  48. package/dist/_chunks/index-g8wz2qoC.js +4206 -0
  49. package/dist/admin/index.js +5 -0
  50. package/dist/admin/index.js.map +1 -0
  51. package/dist/admin/index.mjs +2 -1
  52. package/dist/admin/index.mjs.map +1 -0
  53. package/dist/admin/src/components/modals/NavEdit.d.ts +1 -1
  54. package/dist/admin/src/pages/Navigation/RouteItem.d.ts +1 -0
  55. package/dist/admin/src/pages/Settings/ContentBox.d.ts +5 -0
  56. package/dist/admin/src/pages/Settings/PageWrapper.d.ts +2 -1
  57. package/dist/admin/src/pages/Settings/SettingTitle.d.ts +4 -0
  58. package/dist/admin/src/pages/Settings/index.d.ts +4 -0
  59. package/dist/pluginId.d.ts +2 -1
  60. package/dist/server/index.js +63 -45
  61. package/dist/server/index.js.map +1 -0
  62. package/dist/server/index.mjs +63 -45
  63. package/dist/server/index.mjs.map +1 -0
  64. package/dist/server/src/utils/index.d.ts +6 -0
  65. package/dist/server/src/utils/navItemHandler.d.ts +1 -1
  66. package/dist/server/src/utils/reduceDepthOfOrphanedItems.d.ts +2 -0
  67. package/package.json +1 -1
  68. package/dist/_chunks/PageWrapper-B6nLPFak.mjs +0 -55
  69. package/dist/_chunks/PageWrapper-BMzPDWn4.js +0 -0
  70. package/dist/_chunks/PageWrapper-BMzPDWn4.js.map +0 -0
  71. package/dist/_chunks/de-DYxCPOdb.js +0 -0
  72. package/dist/_chunks/de-DYxCPOdb.js.map +0 -0
  73. package/dist/_chunks/en-Be-athEA.js +0 -0
  74. package/dist/_chunks/en-Be-athEA.js.map +0 -0
  75. package/dist/_chunks/index-Bu-uQ9jA.js +0 -0
  76. package/dist/_chunks/index-Bu-uQ9jA.js.map +0 -0
  77. package/dist/_chunks/index-C53yDU_z.js +0 -0
  78. package/dist/_chunks/index-C53yDU_z.js.map +0 -0
  79. package/dist/_chunks/index-CAz59RSr.js +0 -0
  80. package/dist/_chunks/index-CAz59RSr.js.map +0 -0
  81. package/dist/_chunks/index-DKfUSLPc.js +0 -0
  82. package/dist/_chunks/index-DKfUSLPc.js.map +0 -0
  83. package/dist/_chunks/index-DPMhcaxW.js +0 -0
  84. package/dist/_chunks/index-DPMhcaxW.js.map +0 -0
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const React = require("react");
5
+ const designSystem = require("@strapi/design-system");
6
+ const admin = require("@strapi/strapi/admin");
7
+ const index = require("./index-DOMrViWi.js");
8
+ const reactIntl = require("react-intl");
9
+ require("@strapi/icons/symbols");
10
+ const FullLoader = require("./FullLoader-Cmsf8xS6.js");
11
+ const SettingTitle = require("./SettingTitle-DDZxIqee.js");
12
+ function reducer(newConfig, action) {
13
+ switch (action.type) {
14
+ case "SET_MAX_DEPTH":
15
+ if (!newConfig) return null;
16
+ return {
17
+ ...newConfig,
18
+ navigation: { ...newConfig.navigation, maxDepth: action.payload },
19
+ selectedContentTypes: newConfig.selectedContentTypes || []
20
+ };
21
+ case "SET_CONFIG":
22
+ return action.payload;
23
+ default:
24
+ throw new Error();
25
+ }
26
+ }
27
+ const Settings = () => {
28
+ const { config: fetchedConfig, setConfig, loading, fetchError } = index.usePluginConfig();
29
+ const [config, dispatch] = React.useReducer(reducer, fetchedConfig);
30
+ const { toggleNotification } = admin.useNotification();
31
+ const { formatMessage } = reactIntl.useIntl();
32
+ const [isSaving, setIsSaving] = React.useState(false);
33
+ const initialConfig = React.useRef(fetchedConfig);
34
+ React.useEffect(() => {
35
+ initialConfig.current = fetchedConfig;
36
+ if (fetchedConfig)
37
+ dispatch({ type: "SET_CONFIG", payload: fetchedConfig });
38
+ }, [fetchedConfig]);
39
+ React.useEffect(() => {
40
+ if (fetchError) {
41
+ toggleNotification({
42
+ type: "danger",
43
+ message: formatMessage({
44
+ id: index.getTranslation("notification.error"),
45
+ defaultMessage: "An error occurred"
46
+ }) + ": " + fetchError
47
+ });
48
+ }
49
+ }, [fetchError, toggleNotification, formatMessage]);
50
+ async function save() {
51
+ if (!config) return;
52
+ setIsSaving(true);
53
+ try {
54
+ await setConfig({ navigation: config.navigation });
55
+ initialConfig.current = config;
56
+ toggleNotification({
57
+ type: "success",
58
+ message: formatMessage({
59
+ id: index.getTranslation("notification.settings.saved"),
60
+ defaultMessage: "Settings saved successfully"
61
+ })
62
+ });
63
+ setIsSaving(false);
64
+ } catch (err) {
65
+ setIsSaving(false);
66
+ toggleNotification({
67
+ type: "danger",
68
+ message: formatMessage({
69
+ id: index.getTranslation("notification.error"),
70
+ defaultMessage: "An error occurred"
71
+ }) + ": " + err
72
+ });
73
+ console.error(err);
74
+ }
75
+ }
76
+ if (loading) {
77
+ return /* @__PURE__ */ jsxRuntime.jsx(
78
+ SettingTitle.PageWrapper,
79
+ {
80
+ isSaving,
81
+ subtitle: formatMessage({
82
+ id: index.getTranslation("loading"),
83
+ defaultMessage: "Loading..."
84
+ }),
85
+ disabledCondition: true,
86
+ children: /* @__PURE__ */ jsxRuntime.jsx(FullLoader.FullLoader, { height: 200 })
87
+ }
88
+ );
89
+ }
90
+ return /* @__PURE__ */ jsxRuntime.jsx(
91
+ SettingTitle.PageWrapper,
92
+ {
93
+ save,
94
+ isSaving,
95
+ subtitle: formatMessage({
96
+ id: index.getTranslation("settings.page.navigation.subtitle"),
97
+ defaultMessage: "Configure navigation settings"
98
+ }),
99
+ disabledCondition: JSON.stringify(config) === JSON.stringify(initialConfig.current),
100
+ children: /* @__PURE__ */ jsxRuntime.jsx(SettingTitle.ContentBox, { title: formatMessage({
101
+ id: index.getTranslation("settings.page.navigation.navigation"),
102
+ defaultMessage: "Navigation"
103
+ }), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { name: "maxNavDepth", children: [
104
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: /* @__PURE__ */ jsxRuntime.jsx(SettingTitle.SettingTitle, { children: formatMessage({
105
+ id: index.getTranslation("settings.page.navigation.maxNavDepth.label"),
106
+ defaultMessage: "Max depth of navigation tree"
107
+ }) }) }),
108
+ /* @__PURE__ */ jsxRuntime.jsx(
109
+ designSystem.Field.Input,
110
+ {
111
+ id: "maxNavDepth",
112
+ type: "number",
113
+ min: 0,
114
+ step: 1,
115
+ value: config?.navigation?.maxDepth !== void 0 ? config.navigation.maxDepth + 1 : "",
116
+ onChange: (e) => dispatch({ type: "SET_MAX_DEPTH", payload: Number(e.target.value) - 1 }),
117
+ onBlur: (e) => {
118
+ if (e.target.value === "") return;
119
+ dispatch({ type: "SET_MAX_DEPTH", payload: Number(e.target.value) - 1 });
120
+ }
121
+ }
122
+ ),
123
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
124
+ ] }) })
125
+ }
126
+ );
127
+ };
128
+ exports.default = Settings;
129
+ //# sourceMappingURL=index-DH0mFrgH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DH0mFrgH.js","sources":["../../admin/src/pages/Settings/Navigation/index.tsx"],"sourcesContent":["/*\n *\n * Settings\n * This file contains the navigation settings page for the Webatlas plugin.\n * It allows users to set the max depth of the navigation tree.\n *\n*/\n\nimport { useEffect, useState, useReducer, useRef } from 'react';\nimport { Field } from '@strapi/design-system';\nimport { useNotification } from '@strapi/strapi/admin'\nimport usePluginConfig from '../../../hooks/usePluginConfig';\nimport type { PluginConfig } from '../../../../../types';\nimport { getTranslation } from '../../../utils';\nimport { useIntl } from 'react-intl';\nimport { FullLoader } from '../../../components/UI';\nimport { PageWrapper, ContentBox, SettingTitle } from '../';\n\ntype Action =\n | { type: 'SET_MAX_DEPTH'; payload: number }\n | { type: 'SET_CONFIG'; payload: PluginConfig }\n\nfunction reducer(newConfig: PluginConfig | null, action: Action): PluginConfig | null {\n switch (action.type) {\n case 'SET_MAX_DEPTH':\n if (!newConfig) return null;\n return { \n ...newConfig, \n navigation: { ...newConfig.navigation, maxDepth: action.payload },\n selectedContentTypes: newConfig.selectedContentTypes || []\n };\n case 'SET_CONFIG':\n return action.payload;\n default:\n throw new Error();\n }\n}\n\nconst Settings = () => {\n const { config: fetchedConfig, setConfig, loading, fetchError } = usePluginConfig();\n const [config, dispatch] = useReducer(reducer, fetchedConfig);\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const [isSaving, setIsSaving] = useState(false);\n const initialConfig = useRef<PluginConfig | null>(fetchedConfig);\n\n useEffect(() => {\n initialConfig.current = fetchedConfig;\n\n if (fetchedConfig)\n dispatch({ type: 'SET_CONFIG', payload: fetchedConfig });\n }, [fetchedConfig]);\n\n useEffect(() => {\n if (fetchError) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: getTranslation('notification.error'),\n defaultMessage: 'An error occurred',\n }) + ': ' + fetchError,\n });\n }\n }, [fetchError, toggleNotification, formatMessage]);\n\n async function save() {\n if (!config) return\n\n setIsSaving(true);\n try {\n await setConfig({ navigation: config.navigation })\n initialConfig.current = config;\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('notification.settings.saved'),\n defaultMessage: 'Settings saved successfully',\n }),\n });\n setIsSaving(false);\n } catch (err) {\n setIsSaving(false);\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: getTranslation('notification.error'),\n defaultMessage: 'An error occurred',\n }) + ': ' + err,\n });\n console.error(err);\n }\n }\n\n if (loading) {\n return <PageWrapper\n isSaving={isSaving}\n subtitle={formatMessage({\n id: getTranslation('loading'),\n defaultMessage: 'Loading...',\n })}\n disabledCondition={true}\n >\n <FullLoader height={200} />\n </PageWrapper>\n }\n\n return (\n <PageWrapper\n save={save}\n isSaving={isSaving}\n subtitle={formatMessage({\n id: getTranslation('settings.page.navigation.subtitle'),\n defaultMessage: 'Configure navigation settings',\n })}\n disabledCondition={JSON.stringify(config) === JSON.stringify(initialConfig.current)}\n >\n <ContentBox title={formatMessage({\n id: getTranslation('settings.page.navigation.navigation'),\n defaultMessage: 'Navigation',\n })}>\n <Field.Root name=\"maxNavDepth\">\n <Field.Label>\n <SettingTitle>\n {formatMessage({\n id: getTranslation('settings.page.navigation.maxNavDepth.label'),\n defaultMessage: 'Max depth of navigation tree',\n })}\n </SettingTitle>\n </Field.Label>\n <Field.Input\n id=\"maxNavDepth\"\n type=\"number\"\n min={0}\n step={1}\n value={config?.navigation?.maxDepth !== undefined ? config.navigation.maxDepth + 1 : ''}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => dispatch({ type: 'SET_MAX_DEPTH', payload: Number(e.target.value) - 1 })}\n onBlur={(e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.value === '') return\n dispatch({ type: 'SET_MAX_DEPTH', payload: Number(e.target.value) - 1 })}\n }\n />\n <Field.Hint/>\n </Field.Root>\n </ContentBox>\n </PageWrapper>\n );\n};\n\nexport default Settings;\n"],"names":["usePluginConfig","useReducer","useNotification","useIntl","useState","useRef","useEffect","getTranslation","jsx","PageWrapper","FullLoader","ContentBox","jsxs","Field","SettingTitle"],"mappings":"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"}