@mattisvensson/strapi-plugin-webatlas 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/README.md +2 -1
  2. package/dist/{_chunks → admin}/FullLoader-Cmsf8xS6.js +1 -0
  3. package/dist/admin/FullLoader-Cmsf8xS6.js.map +1 -0
  4. package/dist/{_chunks → admin}/FullLoader-CrPED_dY.mjs +1 -0
  5. package/dist/admin/FullLoader-CrPED_dY.mjs.map +1 -0
  6. package/dist/{_chunks/SettingTitle-CdR3SVn_.mjs → admin/SettingTitle-B1IaU3qs.mjs} +3 -2
  7. package/dist/admin/SettingTitle-B1IaU3qs.mjs.map +1 -0
  8. package/dist/{_chunks/SettingTitle-RU1azFIM.js → admin/SettingTitle-BjE_2u6R.js} +3 -2
  9. package/dist/admin/SettingTitle-BjE_2u6R.js.map +1 -0
  10. package/dist/{_chunks → admin}/de-B5pRvs13.mjs +1 -0
  11. package/dist/admin/de-B5pRvs13.mjs.map +1 -0
  12. package/dist/{_chunks → admin}/de-CqU1FU8C.js +1 -0
  13. package/dist/admin/de-CqU1FU8C.js.map +1 -0
  14. package/dist/{_chunks → admin}/en-BE-zzIv8.mjs +1 -0
  15. package/dist/admin/en-BE-zzIv8.mjs.map +1 -0
  16. package/dist/{_chunks → admin}/en-C7I90FwV.js +1 -0
  17. package/dist/admin/en-C7I90FwV.js.map +1 -0
  18. package/dist/admin/index-AVI3QJ0R.js +9369 -0
  19. package/dist/admin/index-AVI3QJ0R.js.map +1 -0
  20. package/dist/{_chunks/index-BucL4va6.js → admin/index-B90eSO4a.js} +6 -5
  21. package/dist/admin/index-B90eSO4a.js.map +1 -0
  22. package/dist/admin/index-BIEUXWe7.mjs +9369 -0
  23. package/dist/admin/index-BIEUXWe7.mjs.map +1 -0
  24. package/dist/{_chunks/index-BmyxSosC.mjs → admin/index-BbnlyBrZ.mjs} +3 -2
  25. package/dist/admin/index-BbnlyBrZ.mjs.map +1 -0
  26. package/dist/{_chunks/index-BvcX9hcc.mjs → admin/index-Cf9j0bn2.mjs} +4 -3
  27. package/dist/admin/index-Cf9j0bn2.mjs.map +1 -0
  28. package/dist/{_chunks/index-D-vJE_K8.js → admin/index-D8bG0YFB.js} +3 -2
  29. package/dist/admin/index-D8bG0YFB.js.map +1 -0
  30. package/dist/{_chunks/index-B07UVUOa.mjs → admin/index-DCYCtKrj.mjs} +137 -236
  31. package/dist/admin/index-DCYCtKrj.mjs.map +1 -0
  32. package/dist/{_chunks/index-d09V61nm.js → admin/index-JLpXBQVL.js} +4 -3
  33. package/dist/admin/index-JLpXBQVL.js.map +1 -0
  34. package/dist/{_chunks/index-CIM-JzLK.mjs → admin/index-Y_PYIiRA.mjs} +6 -5
  35. package/dist/admin/index-Y_PYIiRA.mjs.map +1 -0
  36. package/dist/{_chunks/index-BxpDM360.js → admin/index-Yq-QR8t0.js} +137 -236
  37. package/dist/admin/index-Yq-QR8t0.js.map +1 -0
  38. package/dist/admin/index.js +4 -2
  39. package/dist/admin/index.js.map +1 -0
  40. package/dist/admin/index.mjs +2 -1
  41. package/dist/admin/index.mjs.map +1 -0
  42. package/dist/server/index.js +5005 -4568
  43. package/dist/server/index.js.map +1 -0
  44. package/dist/server/index.mjs +5003 -4567
  45. package/dist/server/index.mjs.map +1 -0
  46. package/package.json +19 -7
  47. package/dist/_chunks/index-CNKWb8pn.mjs +0 -8604
  48. package/dist/_chunks/index-IRSCe8PX.js +0 -8604
  49. package/dist/admin/src/components/CMEditViewAside/NewPathInfo.d.ts +0 -2
  50. package/dist/admin/src/components/CMEditViewAside/OverrideCheckbox.d.ts +0 -7
  51. package/dist/admin/src/components/CMEditViewAside/Panel.d.ts +0 -5
  52. package/dist/admin/src/components/CMEditViewAside/PathInput.d.ts +0 -11
  53. package/dist/admin/src/components/CMEditViewAside/RouteStructure.d.ts +0 -3
  54. package/dist/admin/src/components/CMEditViewAside/UidPathDisplay.d.ts +0 -4
  55. package/dist/admin/src/components/CMEditViewAside/index.d.ts +0 -3
  56. package/dist/admin/src/components/Initializer.d.ts +0 -5
  57. package/dist/admin/src/components/PathInfo.d.ts +0 -6
  58. package/dist/admin/src/components/PluginIcon.d.ts +0 -3
  59. package/dist/admin/src/components/Tooltip.d.ts +0 -3
  60. package/dist/admin/src/components/UI/Center.d.ts +0 -5
  61. package/dist/admin/src/components/UI/EmptyBox.d.ts +0 -5
  62. package/dist/admin/src/components/UI/FullLoader.d.ts +0 -3
  63. package/dist/admin/src/components/UI/index.d.ts +0 -4
  64. package/dist/admin/src/components/modals/Delete.d.ts +0 -14
  65. package/dist/admin/src/components/modals/NavCreate.d.ts +0 -1
  66. package/dist/admin/src/components/modals/NavEdit.d.ts +0 -7
  67. package/dist/admin/src/components/modals/NavModal.d.ts +0 -17
  68. package/dist/admin/src/components/modals/NavOverview.d.ts +0 -8
  69. package/dist/admin/src/components/modals/externalItem/index.d.ts +0 -15
  70. package/dist/admin/src/components/modals/index.d.ts +0 -12
  71. package/dist/admin/src/components/modals/internalItem/ItemDetails.d.ts +0 -13
  72. package/dist/admin/src/components/modals/internalItem/internalItemCreate.d.ts +0 -3
  73. package/dist/admin/src/components/modals/internalItem/internalItemEdit.d.ts +0 -3
  74. package/dist/admin/src/components/modals/useModalSharedLogic.d.ts +0 -2
  75. package/dist/admin/src/components/modals/withModalSharedLogic.d.ts +0 -3
  76. package/dist/admin/src/components/modals/wrapperItem/index.d.ts +0 -15
  77. package/dist/admin/src/contexts/index.d.ts +0 -13
  78. package/dist/admin/src/hooks/index.d.ts +0 -6
  79. package/dist/admin/src/hooks/useAllContentTypes.d.ts +0 -7
  80. package/dist/admin/src/hooks/useAllEntities.d.ts +0 -7
  81. package/dist/admin/src/hooks/useApi.d.ts +0 -18
  82. package/dist/admin/src/hooks/useNavigations.d.ts +0 -7
  83. package/dist/admin/src/hooks/usePluginConfig.d.ts +0 -9
  84. package/dist/admin/src/index.d.ts +0 -12
  85. package/dist/admin/src/pages/Navigation/Page.d.ts +0 -2
  86. package/dist/admin/src/pages/Navigation/PageWrapper.d.ts +0 -7
  87. package/dist/admin/src/pages/Navigation/RouteItem.d.ts +0 -3
  88. package/dist/admin/src/pages/Navigation/RouteItemBadge.d.ts +0 -4
  89. package/dist/admin/src/pages/Navigation/RouteItemIcon.d.ts +0 -5
  90. package/dist/admin/src/pages/Navigation/RouteItemMenu.d.ts +0 -10
  91. package/dist/admin/src/pages/Navigation/RouteItemStatus.d.ts +0 -5
  92. package/dist/admin/src/pages/Navigation/SortableRouteItem.d.ts +0 -2
  93. package/dist/admin/src/pages/Navigation/index.d.ts +0 -2
  94. package/dist/admin/src/pages/Paths/PageWrapper.d.ts +0 -4
  95. package/dist/admin/src/pages/Paths/PathTable.d.ts +0 -8
  96. package/dist/admin/src/pages/Paths/SearchInput.d.ts +0 -6
  97. package/dist/admin/src/pages/Paths/TableHeader.d.ts +0 -5
  98. package/dist/admin/src/pages/Paths/TableRow.d.ts +0 -4
  99. package/dist/admin/src/pages/Paths/compareBy.d.ts +0 -3
  100. package/dist/admin/src/pages/Paths/index.d.ts +0 -2
  101. package/dist/admin/src/pages/Settings/ContentBox.d.ts +0 -5
  102. package/dist/admin/src/pages/Settings/General/ContentTypeAccordion.d.ts +0 -7
  103. package/dist/admin/src/pages/Settings/General/index.d.ts +0 -2
  104. package/dist/admin/src/pages/Settings/Navigation/index.d.ts +0 -2
  105. package/dist/admin/src/pages/Settings/PageWrapper.d.ts +0 -8
  106. package/dist/admin/src/pages/Settings/SettingTitle.d.ts +0 -4
  107. package/dist/admin/src/pages/Settings/index.d.ts +0 -4
  108. package/dist/admin/src/permissions.d.ts +0 -23
  109. package/dist/admin/src/types/index.d.ts +0 -4
  110. package/dist/admin/src/types/modal.d.ts +0 -56
  111. package/dist/admin/src/types/navigation.d.ts +0 -18
  112. package/dist/admin/src/types/panel.d.ts +0 -41
  113. package/dist/admin/src/types/route.d.ts +0 -2
  114. package/dist/admin/src/utils/buildBreadcrumbString.d.ts +0 -16
  115. package/dist/admin/src/utils/createTempNavItemObject.d.ts +0 -22
  116. package/dist/admin/src/utils/debounce.d.ts +0 -1
  117. package/dist/admin/src/utils/dnd.d.ts +0 -13
  118. package/dist/admin/src/utils/duplicateCheck.d.ts +0 -15
  119. package/dist/admin/src/utils/findParentNavItem.d.ts +0 -13
  120. package/dist/admin/src/utils/getTranslation.d.ts +0 -2
  121. package/dist/admin/src/utils/index.d.ts +0 -8
  122. package/dist/admin/src/utils/typeChecks.d.ts +0 -3
  123. package/dist/server/src/bootstrap.d.ts +0 -5
  124. package/dist/server/src/config/index.d.ts +0 -10
  125. package/dist/server/src/content-types/index.d.ts +0 -202
  126. package/dist/server/src/content-types/navigation/index.d.ts +0 -50
  127. package/dist/server/src/content-types/navigation/schema.d.ts +0 -48
  128. package/dist/server/src/content-types/navitem/index.d.ts +0 -51
  129. package/dist/server/src/content-types/navitem/schema.d.ts +0 -49
  130. package/dist/server/src/content-types/route/index.d.ts +0 -101
  131. package/dist/server/src/content-types/route/schema.d.ts +0 -99
  132. package/dist/server/src/controllers/admin.d.ts +0 -15
  133. package/dist/server/src/controllers/client.d.ts +0 -8
  134. package/dist/server/src/controllers/index.d.ts +0 -23
  135. package/dist/server/src/destroy.d.ts +0 -5
  136. package/dist/server/src/index.d.ts +0 -301
  137. package/dist/server/src/middlewares/index.d.ts +0 -2
  138. package/dist/server/src/migrations/001-canonical-path.d.ts +0 -7
  139. package/dist/server/src/migrations/index.d.ts +0 -3
  140. package/dist/server/src/policies/has-permissions.d.ts +0 -2
  141. package/dist/server/src/policies/index.d.ts +0 -4
  142. package/dist/server/src/register.d.ts +0 -5
  143. package/dist/server/src/routes/admin.d.ts +0 -17
  144. package/dist/server/src/routes/client.d.ts +0 -12
  145. package/dist/server/src/routes/index.d.ts +0 -30
  146. package/dist/server/src/services/admin.d.ts +0 -18
  147. package/dist/server/src/services/client.d.ts +0 -8
  148. package/dist/server/src/services/index.d.ts +0 -25
  149. package/dist/server/src/utils/buildCanonicalPath.d.ts +0 -1
  150. package/dist/server/src/utils/buildNavigationPath.d.ts +0 -5
  151. package/dist/server/src/utils/buildStructuredNavigation.d.ts +0 -11
  152. package/dist/server/src/utils/cascadeCanonicalPathUpdates.d.ts +0 -1
  153. package/dist/server/src/utils/cleanRootKeys.d.ts +0 -1
  154. package/dist/server/src/utils/duplicateCheck.d.ts +0 -1
  155. package/dist/server/src/utils/extractRouteAndItems.d.ts +0 -2
  156. package/dist/server/src/utils/getNonInternalRouteIds.d.ts +0 -1
  157. package/dist/server/src/utils/getRouteAncestors.d.ts +0 -1
  158. package/dist/server/src/utils/getRouteDescendants.d.ts +0 -1
  159. package/dist/server/src/utils/index.d.ts +0 -19
  160. package/dist/server/src/utils/navItemHandler.d.ts +0 -5
  161. package/dist/server/src/utils/navigationItemStructure.d.ts +0 -27
  162. package/dist/server/src/utils/pluginHelpers.d.ts +0 -3
  163. package/dist/server/src/utils/populateDeep.d.ts +0 -4
  164. package/dist/server/src/utils/reduceDepthOfOrphanedItems.d.ts +0 -2
  165. package/dist/server/src/utils/removeWaFields.d.ts +0 -1
  166. package/dist/server/src/utils/routeHandler.d.ts +0 -5
  167. package/dist/server/src/utils/validateRouteDependencies.d.ts +0 -4
  168. package/dist/types/api.d.ts +0 -7
  169. package/dist/types/index.d.ts +0 -4
  170. package/dist/types/navigation.d.ts +0 -66
  171. package/dist/types/route.d.ts +0 -37
  172. package/dist/types/strapi.d.ts +0 -52
  173. package/dist/utils/index.d.ts +0 -4
  174. package/dist/utils/pluginConstants.d.ts +0 -3
  175. package/dist/utils/pluginId.d.ts +0 -4
  176. package/dist/utils/transformToUrl.d.ts +0 -1
@@ -23,18 +23,25 @@ const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
23
23
  );
24
24
  });
25
25
  };
26
- function transformToUrl(input) {
26
+ function transformToUrl(input, replaceSlash = true) {
27
27
  const specialCharMap = {
28
28
  "ü": "ue",
29
29
  "ä": "ae",
30
- "ö": "oe"
30
+ "ö": "oe",
31
+ "ß": "ss"
31
32
  };
32
33
  if (!input || typeof input !== "string") return "";
33
34
  input = input.toLowerCase();
34
35
  input = input.replace(/\/+/g, "/");
35
36
  input = input.startsWith("/") ? input.slice(1) : input;
36
37
  input = input.endsWith("/") ? input.slice(0, -1) : input;
37
- input = input.replace(/\//g, "-");
38
+ if (replaceSlash) {
39
+ input = input.replace(/\//g, "-");
40
+ } else {
41
+ input = input.replace(/\/+/g, "/");
42
+ input = input.startsWith("/") ? input.slice(1) : input;
43
+ input = input.endsWith("/") ? input.slice(0, -1) : input;
44
+ }
38
45
  for (const char in specialCharMap) {
39
46
  const regex = new RegExp(char, "g");
40
47
  input = input.replace(regex, specialCharMap[char]);
@@ -45,122 +52,11 @@ function transformToUrl(input) {
45
52
  input = input.replace(/-+/g, "-");
46
53
  return input;
47
54
  }
48
- const version = "0.9.6";
49
- const keywords = [];
50
- const type = "commonjs";
51
- const exports = {
52
- "./package.json": "./package.json",
53
- "./strapi-admin": {
54
- types: "./dist/admin/src/index.d.ts",
55
- source: "./admin/src/index.tsx",
56
- "import": "./dist/admin/index.mjs",
57
- require: "./dist/admin/index.js",
58
- "default": "./dist/admin/index.js"
59
- },
60
- "./strapi-server": {
61
- types: "./dist/server/src/index.d.ts",
62
- source: "./server/src/index.ts",
63
- "import": "./dist/server/index.mjs",
64
- require: "./dist/server/index.js",
65
- "default": "./dist/server/index.js"
66
- }
67
- };
68
- const files = [
69
- "dist"
70
- ];
71
- const scripts = {
72
- build: "strapi-plugin build && yalc push --publish",
73
- watch: "strapi-plugin watch",
74
- "watch:link": "strapi-plugin watch:link",
75
- verify: "strapi-plugin verify",
76
- "test:ts:front": "tsc -p admin/tsconfig.json",
77
- "test:ts:back": "tsc -p server/tsconfig.json",
78
- "test:jest": "ENV_PATH=./playground/.env jest --verbose --runInBand --forceExit",
79
- "test:cypress": "cypress run",
80
- "test:cypress:open": "cypress open",
81
- preversion: "yarn build",
82
- postversion: "git push && git push --tags"
83
- };
84
- const dependencies = {
85
- "@dnd-kit/core": "^6.3.1",
86
- "@dnd-kit/sortable": "^10.0.0",
87
- "@dnd-kit/utilities": "^3.2.2",
88
- "@strapi/design-system": "^2.0.0-rc.14",
89
- "@strapi/icons": "^2.0.0-rc.14",
90
- "react-intl": "^7.1.0"
91
- };
92
- const devDependencies = {
93
- "@strapi/sdk-plugin": "^5.0.0",
94
- "@strapi/strapi": "^5.0.0",
95
- "@strapi/typescript-utils": "^5.0.0",
96
- "@types/react": "^19.0.0",
97
- "@types/react-dom": "^19.0.0",
98
- cypress: "^13.9.0",
99
- "cypress-terminal-report": "^6.0.2",
100
- jest: "^29.7.0",
101
- prettier: "^3.4.2",
102
- react: "^19.0.0",
103
- "react-router-dom": "^6.0.0",
104
- supertest: "^7.0.0",
105
- typescript: "^5.7.2"
106
- };
107
- const peerDependencies = {
108
- "@strapi/strapi": "^5.0.0",
109
- react: "^17.0.0 || ^18.0.0",
110
- "react-dom": "^17.0.0 || ^18.0.0",
111
- "react-router-dom": "^6.0.0",
112
- "styled-components": "^6.0.0"
113
- };
114
- const description = "A strapi plugin to manage URL routes and navigations.";
115
- const strapi$1 = {
116
- name: "webatlas",
117
- displayName: "Webatlas",
118
- description: "A strapi plugin to manage URL routes and navigations.",
119
- kind: "plugin"
120
- };
121
- const name = "@mattisvensson/strapi-plugin-webatlas";
122
- const license = "MIT";
123
- const repository = {
124
- type: "git",
125
- url: "git+ssh://git@github.com:mattisvensson/strapi-plugin-webatlas.git"
126
- };
127
- const bugs = {
128
- url: "https://github.com/mattisvensson/strapi-plugin-webatlas/issues"
129
- };
130
- const homepage = "https://github.com/mattisvensson/strapi-plugin-webatlas#readme";
131
- const author = {
132
- name: "Matti Svensson",
133
- email: "mattisvensson@web.de",
134
- url: "https://mattisvensson.dev"
135
- };
136
- const maintainers = [
137
- {
138
- name: "Matti Svensson",
139
- email: "mattisvensson@web.de",
140
- url: "https://mattisvensson.dev"
141
- }
142
- ];
143
- const packageManager = "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e";
55
+ const version = "0.11.0";
56
+ const strapi$1 = { "name": "webatlas", "displayName": "Webatlas" };
144
57
  const pluginPkg = {
145
58
  version,
146
- keywords,
147
- type,
148
- exports,
149
- files,
150
- scripts,
151
- dependencies,
152
- devDependencies,
153
- peerDependencies,
154
- description,
155
- strapi: strapi$1,
156
- name,
157
- license,
158
- repository,
159
- bugs,
160
- homepage,
161
- author,
162
- maintainers,
163
- packageManager
59
+ strapi: strapi$1
164
60
  };
165
61
  const PLUGIN_ID = pluginPkg.strapi.name.replace(/^(@[^-,.][\w,-]+\/|strapi-)plugin-/i, "") || "webatlas";
166
62
  const PLUGIN_NAME = pluginPkg.strapi.displayName;
@@ -329,10 +225,10 @@ function usePluginConfig() {
329
225
  throw new Error(`Couldn't fetch plugin config`);
330
226
  }
331
227
  const allowedContentTypes = contentTypesArray.filter(
332
- (type2) => type2.pluginOptions?.webatlas?.enabled === true
228
+ (type) => type.pluginOptions?.webatlas?.enabled === true
333
229
  );
334
- const contentTypeUids = new Set(allowedContentTypes.map((type2) => type2.uid));
335
- const activeContentTypes = config2.selectedContentTypes.filter((type2) => contentTypeUids.has(type2.uid));
230
+ const contentTypeUids = new Set(allowedContentTypes.map((type) => type.uid));
231
+ const activeContentTypes = config2.selectedContentTypes.filter((type) => contentTypeUids.has(type.uid));
336
232
  const displayConfig = {
337
233
  ...config2,
338
234
  selectedContentTypes: activeContentTypes
@@ -386,7 +282,7 @@ async function duplicateCheck({
386
282
  }
387
283
  const getTranslation = (id) => `${PLUGIN_ID}.${id}`;
388
284
  function PathInfo({ validationState, replacement }) {
389
- const [color, setColor] = useState(null);
285
+ const [color, setColor] = useState("neutral800");
390
286
  const [text, setText] = useState(null);
391
287
  const { formatMessage } = useIntl();
392
288
  useEffect(() => {
@@ -891,14 +787,14 @@ function $5cb92bef7577960e$var$dispatchUpdate() {
891
787
  const event = new CustomEvent($5cb92bef7577960e$var$CONTEXT_UPDATE);
892
788
  document.dispatchEvent(event);
893
789
  }
894
- function $5cb92bef7577960e$var$handleAndDispatchCustomEvent(name2, handler, detail, { discrete }) {
790
+ function $5cb92bef7577960e$var$handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
895
791
  const target = detail.originalEvent.target;
896
- const event = new CustomEvent(name2, {
792
+ const event = new CustomEvent(name, {
897
793
  bubbles: false,
898
794
  cancelable: true,
899
795
  detail
900
796
  });
901
- if (handler) target.addEventListener(name2, handler, {
797
+ if (handler) target.addEventListener(name, handler, {
902
798
  once: true
903
799
  });
904
800
  if (discrete) $8927f6f2acc4f386$export$6d1a0317bde7de7f(target, event);
@@ -1126,7 +1022,7 @@ const computePosition$1 = async (reference, floating, config) => {
1126
1022
  let resetCount = 0;
1127
1023
  for (let i = 0; i < validMiddleware.length; i++) {
1128
1024
  const {
1129
- name: name2,
1025
+ name,
1130
1026
  fn
1131
1027
  } = validMiddleware[i];
1132
1028
  const {
@@ -1152,8 +1048,8 @@ const computePosition$1 = async (reference, floating, config) => {
1152
1048
  y = nextY != null ? nextY : y;
1153
1049
  middlewareData = {
1154
1050
  ...middlewareData,
1155
- [name2]: {
1156
- ...middlewareData[name2],
1051
+ [name]: {
1052
+ ...middlewareData[name],
1157
1053
  ...data
1158
1054
  }
1159
1055
  };
@@ -3253,7 +3149,7 @@ const $ea1ef594cf570d83$export$439d29a4e110a164 = /* @__PURE__ */ forwardRef((pr
3253
3149
  }));
3254
3150
  });
3255
3151
  const $ea1ef594cf570d83$export$be92b6f5f03c0fe9 = $ea1ef594cf570d83$export$439d29a4e110a164;
3256
- const [$a093c7e1ec25a057$var$createTooltipContext, $a093c7e1ec25a057$export$1c540a2224f0d865] = $c512c27ab02ef895$export$50c7b4e9d9f19c1("Tooltip", [
3152
+ const [$a093c7e1ec25a057$var$createTooltipContext] = $c512c27ab02ef895$export$50c7b4e9d9f19c1("Tooltip", [
3257
3153
  $cf1ac5d9fe0e8206$export$722aac194ae923
3258
3154
  ]);
3259
3155
  const $a093c7e1ec25a057$var$usePopperScope = $cf1ac5d9fe0e8206$export$722aac194ae923();
@@ -3744,7 +3640,7 @@ const $a093c7e1ec25a057$export$be92b6f5f03c0fe9 = $a093c7e1ec25a057$export$28c66
3744
3640
  const $a093c7e1ec25a057$export$41fb9f06171c75f4 = $a093c7e1ec25a057$export$8c610744efcf8a1d;
3745
3641
  const $a093c7e1ec25a057$export$602eac185826482c = $a093c7e1ec25a057$export$7b36b8f925ab7497;
3746
3642
  const $a093c7e1ec25a057$export$7c6e2c02157bb7d2 = $a093c7e1ec25a057$export$e9003e2be37ec060;
3747
- function Tooltip({ description: description2 }) {
3643
+ function Tooltip({ description }) {
3748
3644
  return /* @__PURE__ */ jsx($a093c7e1ec25a057$export$2881499e37b75b9a, { children: /* @__PURE__ */ jsxs($a093c7e1ec25a057$export$be92b6f5f03c0fe9, { children: [
3749
3645
  /* @__PURE__ */ jsx($a093c7e1ec25a057$export$41fb9f06171c75f4, { asChild: true, children: /* @__PURE__ */ jsx(Information, { "aria-hidden": "true" }) }),
3750
3646
  /* @__PURE__ */ jsx($a093c7e1ec25a057$export$602eac185826482c, { children: /* @__PURE__ */ jsx($a093c7e1ec25a057$export$7c6e2c02157bb7d2, { sideOffset: 5, style: { zIndex: 9999 }, children: /* @__PURE__ */ jsx(
@@ -3756,7 +3652,7 @@ function Tooltip({ description: description2 }) {
3756
3652
  hasRadius: true,
3757
3653
  shadow: "filterShadow",
3758
3654
  maxWidth: "300px",
3759
- children: /* @__PURE__ */ jsx(Typography, { textColor: "neutral0", children: description2 })
3655
+ children: /* @__PURE__ */ jsx(Typography, { textColor: "neutral0", children: description })
3760
3656
  }
3761
3657
  ) }) })
3762
3658
  ] }) });
@@ -3796,10 +3692,7 @@ function PathInput({ path, dispatchPath, isOverride, config }) {
3796
3692
  value: displayedPath,
3797
3693
  onChange: (e) => dispatchPath({ type: "SET_OVERRIDEPATH", payload: e.target.value }),
3798
3694
  disabled: !isOverride,
3799
- onBlur: (e) => {
3800
- if (e.target.value === path.prevValue) return;
3801
- dispatchPath({ type: "DEFAULT", payload: e.target.value });
3802
- },
3695
+ onBlur: (e) => dispatchPath({ type: "SET_OVERRIDEPATH", payload: transformToUrl(e.target.value) }),
3803
3696
  style: { outline: inputBorder }
3804
3697
  }
3805
3698
  ),
@@ -3808,11 +3701,17 @@ function PathInput({ path, dispatchPath, isOverride, config }) {
3808
3701
  }
3809
3702
  );
3810
3703
  }
3811
- function RouteStructure({ routes, selectedParent, setSelectedParent, canonicalPath, prohibitedRouteIds }) {
3704
+ function RouteStructure({
3705
+ routes,
3706
+ selectedParent,
3707
+ setSelectedParent,
3708
+ canonicalPath,
3709
+ prohibitedRouteIds
3710
+ }) {
3812
3711
  const { formatMessage } = useIntl();
3813
- const sortedRoutes = useMemo(() => {
3814
- return [...routes].sort((a, b) => a.title.localeCompare(b.title));
3815
- }, [routes]);
3712
+ const filteredRoutes = useMemo(() => {
3713
+ return [...routes].sort((a, b) => a.title.localeCompare(b.title)).filter((route) => !prohibitedRouteIds?.includes(route.documentId) || route.documentId === selectedParent?.documentId);
3714
+ }, [routes, prohibitedRouteIds, selectedParent]);
3816
3715
  const handleSelectParent = (value) => {
3817
3716
  const parentRoute = routes.find((route) => route.documentId === value) || null;
3818
3717
  setSelectedParent(parentRoute);
@@ -3833,16 +3732,14 @@ function RouteStructure({ routes, selectedParent, setSelectedParent, canonicalPa
3833
3732
  id: getTranslation("components.CMEditViewAside.path.input.parentSelect.rootPath"),
3834
3733
  defaultMessage: "None (root path)"
3835
3734
  }) }),
3836
- sortedRoutes.filter((route) => !prohibitedRouteIds?.includes(route.documentId) || route.documentId === selectedParent?.documentId).map(
3837
- (route) => /* @__PURE__ */ jsx(
3838
- SingleSelectOption,
3839
- {
3840
- value: route.documentId,
3841
- children: route.title
3842
- },
3843
- route.documentId
3844
- )
3845
- )
3735
+ filteredRoutes.map((route) => /* @__PURE__ */ jsx(
3736
+ SingleSelectOption,
3737
+ {
3738
+ value: route.documentId,
3739
+ children: route.title
3740
+ },
3741
+ route.documentId
3742
+ ))
3846
3743
  ]
3847
3744
  }
3848
3745
  )
@@ -3870,9 +3767,10 @@ function RouteStructure({ routes, selectedParent, setSelectedParent, canonicalPa
3870
3767
  ] })
3871
3768
  ] });
3872
3769
  }
3873
- function getCanonicalPath(selectedParent, sourceFieldValue) {
3874
- const parentPath = selectedParent ? selectedParent.canonicalPath + "/" : "";
3875
- return `${parentPath}${transformToUrl(sourceFieldValue)}`;
3770
+ function buildPath(type, slug, parent) {
3771
+ const parentSlug = type === "canonical" ? parent?.canonicalPath : parent?.path;
3772
+ const parentPath = parentSlug ? `${parentSlug}/` : "";
3773
+ return `${parentPath}${transformToUrl(slug)}`;
3876
3774
  }
3877
3775
  function reducer(state, action) {
3878
3776
  switch (action.type) {
@@ -3903,6 +3801,8 @@ function reducer(state, action) {
3903
3801
  return { ...state, replacement: action.payload };
3904
3802
  case "SET_UIDPATH":
3905
3803
  return { ...state, uidPath: action.payload };
3804
+ case "SET_SLUG":
3805
+ return { ...state, slug: action.payload };
3906
3806
  case "SET_CANONICALPATH":
3907
3807
  return { ...state, canonicalPath: action.payload };
3908
3808
  case "SET_OVERRIDEPATH":
@@ -3948,66 +3848,76 @@ const Panel = ({ config }) => {
3948
3848
  replacement: null,
3949
3849
  uidPath: "",
3950
3850
  canonicalPath: "",
3851
+ slug: "",
3951
3852
  overridePath: ""
3952
3853
  });
3953
3854
  const hasUserChangedField = useRef(false);
3855
+ const hasUserInteracted = useRef(false);
3954
3856
  const initialPath = useRef("");
3955
3857
  const prevSourceValueRef = useRef(null);
3956
- const sourceFieldValue = useMemo(() => {
3957
- const key = config?.default;
3958
- if (!key) return "";
3959
- const currentValue = values[key];
3960
- if (!currentValue) return "";
3961
- return currentValue;
3962
- }, [values, config]);
3963
- const debouncedCheckPath = useCallback(debounce(checkPath, 250), []);
3964
- const debouncedCheckCanonicalPath = useCallback(debounce(checkCanonicalPath, 250), []);
3858
+ const sourceFieldValue = values[config?.default] || "";
3859
+ const initialSourceFieldValue = initialValues[config?.default] || "";
3860
+ const latestCheckPathRef = useRef(checkPath);
3861
+ latestCheckPathRef.current = checkPath;
3862
+ const debouncedCheckPath = useRef(debounce((p, id) => latestCheckPathRef.current(p, id), 250)).current;
3863
+ const latestCheckCanonicalRef = useRef(checkCanonicalPath);
3864
+ latestCheckCanonicalRef.current = checkCanonicalPath;
3865
+ const debouncedCheckCanonicalPath = useRef(debounce((p, id) => latestCheckCanonicalRef.current(p, id), 250)).current;
3965
3866
  useEffect(() => {
3966
- if (isOverride) onChange("webatlas_path", path.overridePath);
3967
- onChange("webatlas_override", isOverride);
3968
- onChange("webatlas_parent", selectedParent?.documentId || null);
3969
- }, [path.value, path.overridePath, isOverride, selectedParent]);
3970
- const debouncedValueEffect = useMemo(() => debounce((currentValues) => {
3971
- const key = config?.default;
3972
- if (!key) return;
3973
- const currentValue = currentValues[key];
3974
- if (!currentValue) {
3975
- dispatchPath({ type: "NO_URL_CHECK", payload: "" });
3976
- return;
3977
- }
3978
- if (initialLoadComplete && (hasUserChangedField.current || !route) && prevSourceValueRef.current !== currentValue && !isOverride) {
3979
- const path2 = getCanonicalPath(selectedParent, currentValue);
3980
- if (currentValue === initialValues[key]) {
3981
- dispatchPath({ type: "NO_URL_CHECK", payload: path2 });
3982
- } else {
3983
- dispatchPath({ type: "DEFAULT", payload: path2 });
3984
- }
3985
- prevSourceValueRef.current = currentValue;
3867
+ async function fetchAllRoutes() {
3868
+ const allRoutes = await getAllRoutes();
3869
+ setRoutes(allRoutes);
3986
3870
  }
3987
- }, 500), [config?.default, initialValues, isOverride, initialLoadComplete, route, selectedParent]);
3871
+ fetchAllRoutes();
3872
+ }, []);
3988
3873
  useEffect(() => {
3989
- const key = config?.default;
3990
- if (!key) return;
3991
- const currentValue = values[key];
3992
- const initialValue = initialValues[key];
3993
- if (currentValue !== initialValue && currentValue && !isOverride) {
3994
- onChange("webatlas_path", transformToUrl(currentValue));
3874
+ const slug = transformToUrl(sourceFieldValue);
3875
+ const overridePath = transformToUrl(path.overridePath || "", false);
3876
+ const data = {
3877
+ path: isOverride ? overridePath : path.value,
3878
+ isOverride,
3879
+ parentDocumentId: selectedParent?.documentId || null,
3880
+ slug: isOverride ? overridePath : slug
3881
+ };
3882
+ if (hasUserChangedField.current || hasUserInteracted.current) {
3883
+ onChange("webatlas", data);
3995
3884
  }
3885
+ }, [path.value, path.overridePath, isOverride, selectedParent, sourceFieldValue, hasUserChangedField, hasUserInteracted]);
3886
+ useEffect(() => {
3996
3887
  if (!initialLoadComplete) return;
3997
- if (currentValue !== initialValue) {
3888
+ if (sourceFieldValue !== initialSourceFieldValue) {
3998
3889
  hasUserChangedField.current = true;
3999
3890
  }
4000
- debouncedValueEffect(values);
4001
- }, [values, debouncedValueEffect, initialLoadComplete, selectedParent]);
3891
+ if (!sourceFieldValue) {
3892
+ dispatchPath({ type: "NO_URL_CHECK", payload: "" });
3893
+ return;
3894
+ }
3895
+ if (initialLoadComplete && (hasUserChangedField.current || !route) && prevSourceValueRef.current !== sourceFieldValue && !isOverride) {
3896
+ const newPath = buildPath("path", sourceFieldValue, selectedParent);
3897
+ const type = sourceFieldValue === initialSourceFieldValue ? "NO_URL_CHECK" : "DEFAULT";
3898
+ const slug = transformToUrl(sourceFieldValue);
3899
+ dispatchPath({ type, payload: newPath });
3900
+ dispatchPath({ type: "SET_SLUG", payload: slug });
3901
+ dispatchPath({ type: "SET_OVERRIDEPATH", payload: slug });
3902
+ prevSourceValueRef.current = sourceFieldValue;
3903
+ }
3904
+ const canonicalPath = buildPath("canonical", sourceFieldValue, selectedParent);
3905
+ dispatchPath({ type: "SET_CANONICALPATH", payload: canonicalPath });
3906
+ debouncedCheckCanonicalPath(canonicalPath, route?.documentId || null);
3907
+ }, [sourceFieldValue, initialSourceFieldValue, initialLoadComplete, selectedParent, isOverride, route]);
4002
3908
  useEffect(() => {
3909
+ if (!initialLoadComplete) return;
4003
3910
  if (path.needsUrlCheck && path.value) {
4004
3911
  if (path.uidPath === path.value || initialPath.current === path.value) return;
4005
3912
  debouncedCheckPath(path.value, route?.documentId || null);
4006
3913
  dispatchPath({ type: "RESET_URL_CHECK_FLAG" });
3914
+ } else {
3915
+ setValidationState("idle");
3916
+ dispatchPath({ type: "SET_REPLACEMENT", payload: null });
4007
3917
  }
4008
- }, [path.needsUrlCheck, path.value, path.uidPath, route]);
3918
+ }, [path.needsUrlCheck, path.value, path.uidPath, route, initialLoadComplete]);
4009
3919
  useEffect(() => {
4010
- async function getTypes() {
3920
+ async function fetchRelatedRute() {
4011
3921
  if (!initialValues.documentId) {
4012
3922
  setInitialLoadComplete(true);
4013
3923
  return;
@@ -4018,12 +3928,11 @@ const Panel = ({ config }) => {
4018
3928
  initialPath.current = initialValues.webatlas_path || route2.uidPath;
4019
3929
  setRoute(route2);
4020
3930
  setIsOverride(route2.isOverride || false);
4021
- if (route2.isOverride) {
4022
- dispatchPath({ type: "SET_OVERRIDEPATH", payload: route2.path || "" });
4023
- } else {
4024
- dispatchPath({ type: "NO_TRANSFORM_AND_CHECK", payload: route2.path || "" });
4025
- }
3931
+ dispatchPath({ type: "SET_OVERRIDEPATH", payload: route2.path || "" });
3932
+ dispatchPath({ type: "NO_TRANSFORM_AND_CHECK", payload: route2.path || "" });
4026
3933
  dispatchPath({ type: "SET_UIDPATH", payload: route2.uidPath || "" });
3934
+ dispatchPath({ type: "SET_SLUG", payload: route2.slug || "" });
3935
+ dispatchPath({ type: "SET_CANONICALPATH", payload: route2.canonicalPath || "" });
4027
3936
  const key = config?.default;
4028
3937
  if (key) {
4029
3938
  prevSourceValueRef.current = values[key];
@@ -4034,27 +3943,13 @@ const Panel = ({ config }) => {
4034
3943
  }
4035
3944
  setInitialLoadComplete(true);
4036
3945
  }
4037
- getTypes();
3946
+ fetchRelatedRute();
4038
3947
  }, [config]);
4039
3948
  useEffect(() => {
4040
- if (initialValues.webatlas_parent && routes.length > 0 && !selectedParent) {
4041
- const parentRoute = routes.find((route2) => route2.documentId === initialValues.webatlas_parent);
4042
- if (parentRoute) {
4043
- setSelectedParent(parentRoute);
4044
- const canonicalPath = getCanonicalPath(parentRoute, sourceFieldValue);
4045
- dispatchPath({ type: "DEFAULT", payload: canonicalPath });
4046
- }
4047
- }
4048
- }, [initialValues, routes]);
4049
- useEffect(() => {
4050
- if (initialValues.webatlas_path) dispatchPath({ type: "NO_URL_CHECK", payload: initialValues.webatlas_path });
4051
- if (initialValues.webatlas_override) setIsOverride(initialValues.webatlas_override);
4052
- async function fetchAllRoutes() {
4053
- const allRoutes = await getAllRoutes();
4054
- setRoutes(allRoutes);
4055
- }
4056
- fetchAllRoutes();
4057
- }, []);
3949
+ if (!route || !routes.length) return;
3950
+ const parentRoute = routes.find((singleRoute) => singleRoute.documentId === route.parent?.documentId);
3951
+ setSelectedParent(parentRoute || null);
3952
+ }, [route, routes]);
4058
3953
  useEffect(() => {
4059
3954
  async function fetchProhibitedRouteIds() {
4060
3955
  const prohibitedIds = await getProhibitedRouteIds(route?.documentId);
@@ -4064,27 +3959,26 @@ const Panel = ({ config }) => {
4064
3959
  }, [route]);
4065
3960
  useEffect(() => {
4066
3961
  if (!sourceFieldValue) return;
4067
- const canonicalPath = getCanonicalPath(selectedParent, sourceFieldValue);
4068
- !isOverride && dispatchPath({ type: "DEFAULT", payload: canonicalPath });
4069
- dispatchPath({ type: "SET_CANONICALPATH", payload: canonicalPath });
4070
- debouncedCheckCanonicalPath(canonicalPath, route?.documentId || null);
4071
- dispatchPath({ type: "RESET_URL_CHECK_FLAG" });
3962
+ if (!isOverride) {
3963
+ const newPath = buildPath("path", sourceFieldValue, selectedParent);
3964
+ dispatchPath({ type: "DEFAULT", payload: newPath });
3965
+ }
4072
3966
  }, [selectedParent, sourceFieldValue, route, isOverride]);
4073
- async function checkCanonicalPath(path2, documentId) {
3967
+ async function checkCanonicalPath(path2, routeDocumentId) {
4074
3968
  if (!path2) return;
4075
3969
  try {
4076
- const result = await duplicateCheck({ fetchFunction: get, path: path2, routeDocumentId: documentId, withoutTransform: true });
3970
+ const result = await duplicateCheck({ fetchFunction: get, path: path2, routeDocumentId, withoutTransform: true });
4077
3971
  dispatchPath({ type: "SET_CANONICALPATH", payload: result });
4078
3972
  } catch (err) {
4079
3973
  strapi.log.error(err);
4080
3974
  }
4081
3975
  }
4082
- async function checkPath(path2, route2) {
3976
+ async function checkPath(path2, routeDocumentId) {
4083
3977
  if (!path2) return;
4084
3978
  setValidationState("checking");
4085
3979
  dispatchPath({ type: "SET_REPLACEMENT", payload: "" });
4086
3980
  try {
4087
- const data = await duplicateCheck({ fetchFunction: get, path: path2, routeDocumentId: route2, withoutTransform: true });
3981
+ const data = await duplicateCheck({ fetchFunction: get, path: path2, routeDocumentId, withoutTransform: true });
4088
3982
  if (!data || data === path2) return;
4089
3983
  dispatchPath({ type: "NO_URL_CHECK", payload: data });
4090
3984
  dispatchPath({ type: "SET_REPLACEMENT", payload: data });
@@ -4101,7 +3995,7 @@ const Panel = ({ config }) => {
4101
3995
  return /* @__PURE__ */ jsx(
4102
3996
  Box,
4103
3997
  {
4104
- as: "aside",
3998
+ tag: "aside",
4105
3999
  "aria-labelledby": "URL Route",
4106
4000
  width: "100%",
4107
4001
  children: /* @__PURE__ */ jsxs(
@@ -4121,7 +4015,10 @@ const Panel = ({ config }) => {
4121
4015
  canonicalPath: path.canonicalPath,
4122
4016
  routes,
4123
4017
  selectedParent,
4124
- setSelectedParent,
4018
+ setSelectedParent: (val) => {
4019
+ hasUserInteracted.current = true;
4020
+ setSelectedParent(val);
4021
+ },
4125
4022
  prohibitedRouteIds
4126
4023
  }
4127
4024
  ),
@@ -4148,7 +4045,10 @@ const Panel = ({ config }) => {
4148
4045
  OverrideCheckbox,
4149
4046
  {
4150
4047
  isOverride,
4151
- setIsOverride,
4048
+ setIsOverride: (val) => {
4049
+ hasUserInteracted.current = true;
4050
+ setIsOverride(val);
4051
+ },
4152
4052
  disabledCondition: !canCreate && !canUpdate
4153
4053
  }
4154
4054
  ),
@@ -4183,7 +4083,7 @@ const CMEditViewAside = ({ documentId, model }) => {
4183
4083
  setIsAllowedContentType(!!contentType?.pluginOptions?.webatlas?.enabled);
4184
4084
  }, [contentTypes, model]);
4185
4085
  useEffect(() => {
4186
- const isWebatlasLabel = (label) => label.textContent?.startsWith("webatlas_");
4086
+ const isWebatlasLabel = (label) => label.textContent?.startsWith("webatlas");
4187
4087
  const cleanupLabels = () => {
4188
4088
  const labels = document.querySelectorAll("label");
4189
4089
  labels.forEach((label) => {
@@ -4214,10 +4114,10 @@ const CMEditViewAside = ({ documentId, model }) => {
4214
4114
  if (!config) return;
4215
4115
  setIsActiveContentType(false);
4216
4116
  setContentTypeConfig(null);
4217
- config?.selectedContentTypes?.forEach((type2) => {
4218
- if (type2.uid === model) {
4117
+ config?.selectedContentTypes?.forEach((type) => {
4118
+ if (type.uid === model) {
4219
4119
  setIsActiveContentType(true);
4220
- setContentTypeConfig(type2);
4120
+ setContentTypeConfig(type);
4221
4121
  }
4222
4122
  });
4223
4123
  setIsLoading(false);
@@ -4253,7 +4153,7 @@ const index = {
4253
4153
  id: `${PLUGIN_ID}.link.paths`,
4254
4154
  defaultMessage: "Paths"
4255
4155
  },
4256
- Component: () => import("./index-BvcX9hcc.mjs"),
4156
+ Component: () => import("./index-Cf9j0bn2.mjs"),
4257
4157
  permissions: [
4258
4158
  pluginPermissions["page.routes"][0]
4259
4159
  ]
@@ -4265,7 +4165,7 @@ const index = {
4265
4165
  id: `${PLUGIN_ID}.link.navigation`,
4266
4166
  defaultMessage: "Navigation"
4267
4167
  },
4268
- Component: () => import("./index-CNKWb8pn.mjs"),
4168
+ Component: () => import("./index-BIEUXWe7.mjs"),
4269
4169
  permissions: [
4270
4170
  pluginPermissions["page.navigation"][0]
4271
4171
  ]
@@ -4285,7 +4185,7 @@ const index = {
4285
4185
  },
4286
4186
  id: `${PLUGIN_ID}-general`,
4287
4187
  to: `${PLUGIN_ID}/general`,
4288
- Component: () => import("./index-CIM-JzLK.mjs"),
4188
+ Component: () => import("./index-Y_PYIiRA.mjs"),
4289
4189
  permissions: [
4290
4190
  pluginPermissions["settings.general"][0]
4291
4191
  ]
@@ -4300,7 +4200,7 @@ const index = {
4300
4200
  },
4301
4201
  id: `${PLUGIN_ID}-navigation`,
4302
4202
  to: `${PLUGIN_ID}/navigation`,
4303
- Component: () => import("./index-BmyxSosC.mjs"),
4203
+ Component: () => import("./index-BbnlyBrZ.mjs"),
4304
4204
  permissions: [
4305
4205
  pluginPermissions["settings.navigation"][0]
4306
4206
  ]
@@ -4344,3 +4244,4 @@ export {
4344
4244
  pluginPermissions as p,
4345
4245
  useApi as u
4346
4246
  };
4247
+ //# sourceMappingURL=index-DCYCtKrj.mjs.map