@mattisvensson/strapi-plugin-webatlas 0.11.2 → 0.11.4

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.
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,10 +56,13 @@ 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
- - Node.js `>=22.0.0`
63
+ - Strapi `>=5.42.1`
64
+ - Node.js `>=22.x.x` and `<=24.x.x`
65
+ - NPM `>=6.0.0`
64
66
 
65
67
  ## 🔧 Configuration
66
68
 
@@ -118,7 +120,7 @@ Query parameters:
118
120
  - `fields` (string, optional): Comma-separated list of fields to include in the response.
119
121
  - `status` (string, optional): `draft` or `published`. Default is `published`. Returns the draft or published version of the entity.
120
122
 
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.
123
+ 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
124
 
123
125
  #### Fetch navigation
124
126
 
@@ -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({
@@ -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({
@@ -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,
@@ -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({
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { useState, useEffect, useMemo } from "react";
3
- import { g as getTranslation, u as useApi, d as debounce, p as pluginPermissions } from "./index-B79ELMEC.mjs";
3
+ import { g as getTranslation, u as useApi, d as debounce, p as pluginPermissions } from "./index-BX3hiURm.mjs";
4
4
  import { Page, Layouts, useNotification } from "@strapi/strapi/admin";
5
5
  import { Grid, Box, Field, Thead, Tr, Th, Typography, VisuallyHidden, Td, Flex, LinkButton, Table, Tbody, EmptyStateLayout } from "@strapi/design-system";
6
6
  import "@strapi/icons/symbols";
@@ -70,7 +70,7 @@ function transformToUrl(input, replaceSlash = true) {
70
70
  input = input.replace(/-+/g, "-");
71
71
  return input;
72
72
  }
73
- const version = "0.11.1";
73
+ const version = "0.11.3";
74
74
  const strapi$1 = { "name": "webatlas", "displayName": "Webatlas" };
75
75
  const pluginPkg = {
76
76
  version,
@@ -3961,7 +3961,7 @@ const Panel = ({ config }) => {
3961
3961
  try {
3962
3962
  const route2 = await getRelatedRoute(initialValues.documentId);
3963
3963
  if (!route2) return;
3964
- initialPath.current = initialValues.webatlas.path || route2.uidPath;
3964
+ initialPath.current = route2.uidPath;
3965
3965
  setRoute(route2);
3966
3966
  setIsOverride(route2.isOverride || false);
3967
3967
  dispatchPath({ type: "SET_OVERRIDEPATH", payload: route2.path || "" });
@@ -3982,8 +3982,9 @@ const Panel = ({ config }) => {
3982
3982
  } catch (err) {
3983
3983
  setRoute(null);
3984
3984
  strapi.log.error(err);
3985
+ } finally {
3986
+ setInitialLoadComplete(true);
3985
3987
  }
3986
- setInitialLoadComplete(true);
3987
3988
  }
3988
3989
  fetchRelatedRute();
3989
3990
  }, [config]);
@@ -4101,7 +4102,7 @@ const pluginPermissions = {
4101
4102
  "settings.general": [{ action: `plugin::${PLUGIN_ID}.settings.general`, subject: null }],
4102
4103
  "settings.navigation": [{ action: `plugin::${PLUGIN_ID}.settings.navigation`, subject: null }]
4103
4104
  };
4104
- const CMEditViewAside = ({ documentId, model, activeTab }) => {
4105
+ const CMEditViewAside = ({ model }) => {
4105
4106
  const { contentTypes } = useAllContentTypes();
4106
4107
  const { config } = usePluginConfig();
4107
4108
  const { formatMessage } = reactIntl.useIntl();
@@ -4114,36 +4115,6 @@ const CMEditViewAside = ({ documentId, model, activeTab }) => {
4114
4115
  const contentType = contentTypes?.find((ct) => ct.uid === model);
4115
4116
  setIsAllowedContentType(!!contentType?.pluginOptions?.webatlas?.enabled);
4116
4117
  }, [contentTypes, model]);
4117
- React.useEffect(() => {
4118
- const isWebatlasLabel = (label) => label.textContent?.startsWith("webatlas");
4119
- const cleanupLabels = () => {
4120
- const labels = document.querySelectorAll("label");
4121
- labels.forEach((label) => {
4122
- if (!isWebatlasLabel(label)) return;
4123
- const container = label.parentElement?.parentElement;
4124
- const parent = container?.parentElement;
4125
- const greatGrandParent = parent?.parentElement?.parentElement;
4126
- if (!container || !parent) return;
4127
- const parentWebatlasCount = Array.from(parent.querySelectorAll("label")).filter(
4128
- isWebatlasLabel
4129
- ).length;
4130
- const childrenCount = parent.children.length;
4131
- if (greatGrandParent && greatGrandParent?.querySelectorAll("label").length === Array.from(greatGrandParent.querySelectorAll("label")).filter(isWebatlasLabel).length) {
4132
- greatGrandParent.remove();
4133
- } else if (childrenCount === 1 || childrenCount === 2 && parentWebatlasCount === 2) {
4134
- parent.remove();
4135
- } else {
4136
- container.remove();
4137
- }
4138
- });
4139
- };
4140
- const timeoutId = setTimeout(() => {
4141
- cleanupLabels();
4142
- const secondTimeoutId = setTimeout(cleanupLabels, 1e3);
4143
- return () => clearTimeout(secondTimeoutId);
4144
- }, 100);
4145
- return () => clearTimeout(timeoutId);
4146
- }, [documentId, model, activeTab]);
4147
4118
  React.useEffect(() => {
4148
4119
  if (!config) return;
4149
4120
  setIsActiveContentType(false);
@@ -4188,7 +4159,7 @@ const index = {
4188
4159
  id: `${PLUGIN_ID}.link.paths`,
4189
4160
  defaultMessage: "Paths"
4190
4161
  },
4191
- Component: () => Promise.resolve().then(() => require("./index-BEVoxEAm.js")),
4162
+ Component: () => Promise.resolve().then(() => require("./index-DBG6vBGU.js")),
4192
4163
  permissions: [pluginPermissions["page.routes"][0]]
4193
4164
  });
4194
4165
  app.addMenuLink({
@@ -4198,7 +4169,7 @@ const index = {
4198
4169
  id: `${PLUGIN_ID}.link.navigation`,
4199
4170
  defaultMessage: "Navigation"
4200
4171
  },
4201
- Component: () => Promise.resolve().then(() => require("./index-C8YjuuOx.js")),
4172
+ Component: () => Promise.resolve().then(() => require("./index-uW7YJoRU.js")),
4202
4173
  permissions: [pluginPermissions["page.navigation"][0]]
4203
4174
  });
4204
4175
  app.addSettingsLink(
@@ -4216,7 +4187,7 @@ const index = {
4216
4187
  },
4217
4188
  id: `${PLUGIN_ID}-general`,
4218
4189
  to: `${PLUGIN_ID}/general`,
4219
- Component: () => Promise.resolve().then(() => require("./index-YdWxpvOH.js")),
4190
+ Component: () => Promise.resolve().then(() => require("./index-CEBh9c4X.js")),
4220
4191
  permissions: [pluginPermissions["settings.general"][0]]
4221
4192
  }
4222
4193
  );
@@ -4227,7 +4198,7 @@ const index = {
4227
4198
  },
4228
4199
  id: `${PLUGIN_ID}-navigation`,
4229
4200
  to: `${PLUGIN_ID}/navigation`,
4230
- Component: () => Promise.resolve().then(() => require("./index-D2hB1vTw.js")),
4201
+ Component: () => Promise.resolve().then(() => require("./index-Sj2FxwAu.js")),
4231
4202
  permissions: [pluginPermissions["settings.navigation"][0]]
4232
4203
  });
4233
4204
  app.registerPlugin({
@@ -4,11 +4,11 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const React = require("react");
5
5
  const designSystem = require("@strapi/design-system");
6
6
  const admin = require("@strapi/strapi/admin");
7
- const index = require("./index-Cx_mktdk.js");
7
+ const index = require("./index-BkPtrXJO.js");
8
8
  const reactIntl = require("react-intl");
9
9
  require("@strapi/icons/symbols");
10
10
  const FullLoader = require("./FullLoader-Da2n70bJ.js");
11
- const SettingTitle = require("./SettingTitle-B0quw3f8.js");
11
+ const SettingTitle = require("./SettingTitle-BdiDHFXF.js");
12
12
  const icons = require("@strapi/icons");
13
13
  function ContentTypeAccordion({
14
14
  contentType,
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const React = require("react");
5
- const index = require("./index-Cx_mktdk.js");
5
+ const index = require("./index-BkPtrXJO.js");
6
6
  const admin = require("@strapi/strapi/admin");
7
7
  const designSystem = require("@strapi/design-system");
8
8
  require("@strapi/icons/symbols");
@@ -2,11 +2,11 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useReducer, useState, useRef, useEffect } from "react";
3
3
  import { Field } from "@strapi/design-system";
4
4
  import { useNotification, Page } from "@strapi/strapi/admin";
5
- import { c as usePluginConfig, g as getTranslation, p as pluginPermissions } from "./index-B79ELMEC.mjs";
5
+ import { c as usePluginConfig, g as getTranslation, p as pluginPermissions } 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
  function reducer(newConfig, action) {
11
11
  switch (action.type) {
12
12
  case "SET_MAX_DEPTH":
@@ -5,7 +5,7 @@ import { Box, Typography, Dialog, Button, Modal, Flex, SingleSelect, SingleSelec
5
5
  import { useState, useEffect, createContext, useRef, useContext, useMemo, useReducer, useCallback, forwardRef } from "react";
6
6
  import { createPortal } from "react-dom";
7
7
  import { useIntl } from "react-intl";
8
- import { u as useApi, g as getTranslation, P as PLUGIN_ID, d as debounce, a as duplicateCheck, T as Tooltip, b as PathInfo, c as usePluginConfig, p as pluginPermissions } from "./index-B79ELMEC.mjs";
8
+ import { u as useApi, g as getTranslation, P as PLUGIN_ID, d as debounce, a as duplicateCheck, T as Tooltip, b as PathInfo, c as usePluginConfig, p as pluginPermissions } from "./index-BX3hiURm.mjs";
9
9
  import { useNotification, useFetchClient, Page, Layouts } from "@strapi/strapi/admin";
10
10
  import { C as Center, F as FullLoader } from "./FullLoader-Btjb2W2p.mjs";
11
11
  import { EmptyDocuments } from "@strapi/icons/symbols";
@@ -1194,9 +1194,9 @@ function requireLodash() {
1194
1194
  (function(module, exports$1) {
1195
1195
  (function() {
1196
1196
  var undefined$1;
1197
- var VERSION = "4.17.21";
1197
+ var VERSION = "4.18.1";
1198
1198
  var LARGE_ARRAY_SIZE = 200;
1199
- var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`";
1199
+ var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`", INVALID_TEMPL_IMPORTS_ERROR_TEXT = "Invalid `imports` option passed into `_.template`";
1200
1200
  var HASH_UNDEFINED = "__lodash_hash_undefined__";
1201
1201
  var MAX_MEMOIZE_SIZE = 500;
1202
1202
  var PLACEHOLDER = "__lodash_placeholder__";
@@ -3122,8 +3122,21 @@ function requireLodash() {
3122
3122
  }
3123
3123
  function baseUnset(object, path) {
3124
3124
  path = castPath(path, object);
3125
- object = parent(object, path);
3126
- return object == null || delete object[toKey(last(path))];
3125
+ var index = -1, length = path.length;
3126
+ if (!length) {
3127
+ return true;
3128
+ }
3129
+ while (++index < length) {
3130
+ var key = toKey(path[index]);
3131
+ if (key === "__proto__" && !hasOwnProperty.call(object, "__proto__")) {
3132
+ return false;
3133
+ }
3134
+ if ((key === "constructor" || key === "prototype") && index < length - 1) {
3135
+ return false;
3136
+ }
3137
+ }
3138
+ var obj = parent(object, path);
3139
+ return obj == null || delete obj[toKey(last(path))];
3127
3140
  }
3128
3141
  function baseUpdate(object, path, updater, customizer) {
3129
3142
  return baseSet(object, path, updater(baseGet(object, path)), customizer);
@@ -4450,7 +4463,7 @@ function requireLodash() {
4450
4463
  var index = -1, length = pairs == null ? 0 : pairs.length, result2 = {};
4451
4464
  while (++index < length) {
4452
4465
  var pair = pairs[index];
4453
- result2[pair[0]] = pair[1];
4466
+ baseAssignValue(result2, pair[0], pair[1]);
4454
4467
  }
4455
4468
  return result2;
4456
4469
  }
@@ -5834,8 +5847,13 @@ function requireLodash() {
5834
5847
  options = undefined$1;
5835
5848
  }
5836
5849
  string = toString(string);
5837
- options = assignInWith({}, options, settings, customDefaultsAssignIn);
5838
- var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys);
5850
+ options = assignWith({}, options, settings, customDefaultsAssignIn);
5851
+ var imports = assignWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys);
5852
+ arrayEach(importsKeys, function(key) {
5853
+ if (reForbiddenIdentifierChars.test(key)) {
5854
+ throw new Error2(INVALID_TEMPL_IMPORTS_ERROR_TEXT);
5855
+ }
5856
+ });
5839
5857
  var isEscaping, isEvaluating, index = 0, interpolate = options.interpolate || reNoMatch, source = "__p += '";
5840
5858
  var reDelimiters = RegExp2(
5841
5859
  (options.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options.evaluate || reNoMatch).source + "|$",
@@ -4,11 +4,11 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const React = require("react");
5
5
  const designSystem = require("@strapi/design-system");
6
6
  const admin = require("@strapi/strapi/admin");
7
- const index = require("./index-Cx_mktdk.js");
7
+ const index = require("./index-BkPtrXJO.js");
8
8
  const reactIntl = require("react-intl");
9
9
  require("@strapi/icons/symbols");
10
10
  const FullLoader = require("./FullLoader-Da2n70bJ.js");
11
- const SettingTitle = require("./SettingTitle-B0quw3f8.js");
11
+ const SettingTitle = require("./SettingTitle-BdiDHFXF.js");
12
12
  function reducer(newConfig, action) {
13
13
  switch (action.type) {
14
14
  case "SET_MAX_DEPTH":
@@ -7,7 +7,7 @@ const designSystem = require("@strapi/design-system");
7
7
  const React = require("react");
8
8
  const ReactDOM = require("react-dom");
9
9
  const reactIntl = require("react-intl");
10
- const index = require("./index-Cx_mktdk.js");
10
+ const index = require("./index-BkPtrXJO.js");
11
11
  const admin = require("@strapi/strapi/admin");
12
12
  const FullLoader = require("./FullLoader-Da2n70bJ.js");
13
13
  const symbols = require("@strapi/icons/symbols");
@@ -1196,9 +1196,9 @@ function requireLodash() {
1196
1196
  (function(module2, exports$1) {
1197
1197
  (function() {
1198
1198
  var undefined$1;
1199
- var VERSION = "4.17.21";
1199
+ var VERSION = "4.18.1";
1200
1200
  var LARGE_ARRAY_SIZE = 200;
1201
- var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`";
1201
+ var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`", INVALID_TEMPL_IMPORTS_ERROR_TEXT = "Invalid `imports` option passed into `_.template`";
1202
1202
  var HASH_UNDEFINED = "__lodash_hash_undefined__";
1203
1203
  var MAX_MEMOIZE_SIZE = 500;
1204
1204
  var PLACEHOLDER = "__lodash_placeholder__";
@@ -3124,8 +3124,21 @@ function requireLodash() {
3124
3124
  }
3125
3125
  function baseUnset(object, path) {
3126
3126
  path = castPath(path, object);
3127
- object = parent(object, path);
3128
- return object == null || delete object[toKey(last(path))];
3127
+ var index2 = -1, length = path.length;
3128
+ if (!length) {
3129
+ return true;
3130
+ }
3131
+ while (++index2 < length) {
3132
+ var key = toKey(path[index2]);
3133
+ if (key === "__proto__" && !hasOwnProperty.call(object, "__proto__")) {
3134
+ return false;
3135
+ }
3136
+ if ((key === "constructor" || key === "prototype") && index2 < length - 1) {
3137
+ return false;
3138
+ }
3139
+ }
3140
+ var obj = parent(object, path);
3141
+ return obj == null || delete obj[toKey(last(path))];
3129
3142
  }
3130
3143
  function baseUpdate(object, path, updater, customizer) {
3131
3144
  return baseSet(object, path, updater(baseGet(object, path)), customizer);
@@ -4452,7 +4465,7 @@ function requireLodash() {
4452
4465
  var index2 = -1, length = pairs == null ? 0 : pairs.length, result2 = {};
4453
4466
  while (++index2 < length) {
4454
4467
  var pair = pairs[index2];
4455
- result2[pair[0]] = pair[1];
4468
+ baseAssignValue(result2, pair[0], pair[1]);
4456
4469
  }
4457
4470
  return result2;
4458
4471
  }
@@ -5836,8 +5849,13 @@ function requireLodash() {
5836
5849
  options = undefined$1;
5837
5850
  }
5838
5851
  string = toString(string);
5839
- options = assignInWith({}, options, settings, customDefaultsAssignIn);
5840
- var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys);
5852
+ options = assignWith({}, options, settings, customDefaultsAssignIn);
5853
+ var imports = assignWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys);
5854
+ arrayEach(importsKeys, function(key) {
5855
+ if (reForbiddenIdentifierChars.test(key)) {
5856
+ throw new Error2(INVALID_TEMPL_IMPORTS_ERROR_TEXT);
5857
+ }
5858
+ });
5841
5859
  var isEscaping, isEvaluating, index2 = 0, interpolate = options.interpolate || reNoMatch, source = "__p += '";
5842
5860
  var reDelimiters = RegExp2(
5843
5861
  (options.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options.evaluate || reNoMatch).source + "|$",
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const index = require("./index-Cx_mktdk.js");
3
+ const index = require("./index-BkPtrXJO.js");
4
4
  exports.default = index.index;
@@ -1,4 +1,4 @@
1
- import { i } from "./index-B79ELMEC.mjs";
1
+ import { i } from "./index-BX3hiURm.mjs";
2
2
  export {
3
3
  i as default
4
4
  };