@mattisvensson/strapi-plugin-webatlas 0.11.2 → 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.
- package/README.md +7 -6
- package/dist/admin/FullLoader-Btjb2W2p.mjs +1 -0
- package/dist/admin/FullLoader-Btjb2W2p.mjs.map +1 -0
- package/dist/admin/FullLoader-Da2n70bJ.js +1 -0
- package/dist/admin/FullLoader-Da2n70bJ.js.map +1 -0
- package/dist/admin/{SettingTitle-B0quw3f8.js → SettingTitle-BdiDHFXF.js} +2 -1
- package/dist/admin/SettingTitle-BdiDHFXF.js.map +1 -0
- package/dist/admin/{SettingTitle-HMfQOJnK.mjs → SettingTitle-CcNfx_4T.mjs} +2 -1
- package/dist/admin/SettingTitle-CcNfx_4T.mjs.map +1 -0
- package/dist/admin/de-B5pRvs13.mjs +1 -0
- package/dist/admin/de-B5pRvs13.mjs.map +1 -0
- package/dist/admin/de-CqU1FU8C.js +1 -0
- package/dist/admin/de-CqU1FU8C.js.map +1 -0
- package/dist/admin/en-BE-zzIv8.mjs +1 -0
- package/dist/admin/en-BE-zzIv8.mjs.map +1 -0
- package/dist/admin/en-C7I90FwV.js +1 -0
- package/dist/admin/en-C7I90FwV.js.map +1 -0
- package/dist/admin/{index-Bmg-ERct.mjs → index-BMTlUOrK.mjs} +3 -2
- package/dist/admin/index-BMTlUOrK.mjs.map +1 -0
- package/dist/admin/{index-B79ELMEC.mjs → index-BX3hiURm.mjs} +10 -38
- package/dist/admin/index-BX3hiURm.mjs.map +1 -0
- package/dist/admin/{index-9_HhKDUC.mjs → index-BdyLsiR4.mjs} +2 -1
- package/dist/admin/index-BdyLsiR4.mjs.map +1 -0
- package/dist/admin/{index-Cx_mktdk.js → index-BkPtrXJO.js} +10 -38
- package/dist/admin/index-BkPtrXJO.js.map +1 -0
- package/dist/admin/{index-YdWxpvOH.js → index-CEBh9c4X.js} +3 -2
- package/dist/admin/index-CEBh9c4X.js.map +1 -0
- package/dist/admin/{index-BEVoxEAm.js → index-DBG6vBGU.js} +2 -1
- package/dist/admin/index-DBG6vBGU.js.map +1 -0
- package/dist/admin/{index-Cz_k_jjp.mjs → index-DkEReTkt.mjs} +3 -2
- package/dist/admin/index-DkEReTkt.mjs.map +1 -0
- package/dist/admin/{index-oEJT_mvw.mjs → index-DkfE_arE.mjs} +27 -8
- package/dist/admin/index-DkfE_arE.mjs.map +1 -0
- package/dist/admin/{index-D2hB1vTw.js → index-Sj2FxwAu.js} +3 -2
- package/dist/admin/index-Sj2FxwAu.js.map +1 -0
- package/dist/admin/{index-C8YjuuOx.js → index-uW7YJoRU.js} +27 -8
- package/dist/admin/index-uW7YJoRU.js.map +1 -0
- package/dist/admin/index.js +2 -1
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/index.mjs +2 -1
- package/dist/admin/index.mjs.map +1 -0
- package/dist/server/index.js +554 -1390
- package/dist/server/index.js.map +1 -0
- package/dist/server/index.mjs +554 -1390
- package/dist/server/index.mjs.map +1 -0
- package/package.json +14 -13
- package/dist/admin/src/index.d.ts +0 -12
- package/dist/server/src/index.d.ts +0 -305
|
@@ -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-
|
|
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";
|
|
@@ -242,3 +242,4 @@ const Paths = () => {
|
|
|
242
242
|
export {
|
|
243
243
|
Paths as default
|
|
244
244
|
};
|
|
245
|
+
//# sourceMappingURL=index-BdyLsiR4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BdyLsiR4.mjs","sources":["../../admin/src/pages/Paths/PageWrapper.tsx","../../admin/src/pages/Paths/compareBy.ts","../../admin/src/pages/Paths/SearchInput.tsx","../../admin/src/pages/Paths/TableHeader.tsx","../../admin/src/pages/Paths/TableRow.tsx","../../admin/src/pages/Paths/PathTable.tsx","../../admin/src/pages/Paths/index.tsx"],"sourcesContent":["import { Layouts, Page } from '@strapi/strapi/admin'\nimport { getTranslation } from '../../utils'\nimport { useIntl } from 'react-intl'\n\nexport default function PageWrapper({ children }: { children: React.ReactNode }) {\n\tconst { formatMessage } = useIntl()\n\n\treturn (\n\t\t<Page.Main>\n\t\t\t<Layouts.Header\n\t\t\t\ttitle={formatMessage({\n\t\t\t\t\tid: getTranslation('paths.page.title'),\n\t\t\t\t\tdefaultMessage: 'Paths',\n\t\t\t\t})}\n\t\t\t\tsubtitle={formatMessage({\n\t\t\t\t\tid: getTranslation('paths.page.subtitle'),\n\t\t\t\t\tdefaultMessage: 'Overview of all existing paths',\n\t\t\t\t})}\n\t\t\t/>\n\t\t\t<Layouts.Content>\n\t\t\t\t<>{children}</>\n\t\t\t</Layouts.Content>\n\t\t</Page.Main>\n\t)\n}\n","import type { Route } from '../../../../types'\nimport type { RouteSortKey } from '../../types'\n\nexport default function compareBy(field: RouteSortKey, direction: 'asc' | 'desc') {\n\tif (!field) {\n\t\treturn () => 0\n\t}\n\tif (field === 'type') {\n\t\treturn (a: Route, b: Route) => {\n\t\t\treturn direction === 'asc' ? a.type.localeCompare(b.type) : b.type.localeCompare(a.type)\n\t\t}\n\t}\n\treturn (a: Route, b: Route) => {\n\t\tconst aValue = a[field]\n\t\tconst bValue = b[field]\n\n\t\tif (aValue == null && bValue == null) {\n\t\t\treturn 0\n\t\t}\n\t\tif (aValue == null) {\n\t\t\treturn direction === 'asc' ? 1 : -1\n\t\t}\n\t\tif (bValue == null) {\n\t\t\treturn direction === 'asc' ? -1 : 1\n\t\t}\n\n\t\tif (typeof aValue === 'string' && typeof bValue === 'string') {\n\t\t\treturn direction === 'asc' ? aValue.localeCompare(bValue) : bValue.localeCompare(aValue)\n\t\t}\n\t\treturn 0\n\t}\n}\n","import { Box, Grid, Field } from '@strapi/design-system'\nimport { Cross } from '@strapi/icons'\nimport { useIntl } from 'react-intl'\nimport { getTranslation } from '../../utils'\n\nfunction SearchInput({\n\tsearchQuery,\n\thandleSearchChange,\n}: {\n\tsearchQuery: string\n\thandleSearchChange: (e: React.ChangeEvent<HTMLInputElement>) => void\n}) {\n\tconst { formatMessage } = useIntl()\n\n\treturn (\n\t\t<Grid.Root style={{ marginBottom: '16px' }}>\n\t\t\t<Grid.Item col={4} s={12}>\n\t\t\t\t<Box width=\"100%\">\n\t\t\t\t\t<Field.Root>\n\t\t\t\t\t\t<Field.Input\n\t\t\t\t\t\t\tname=\"search\"\n\t\t\t\t\t\t\tplaceholder={formatMessage({\n\t\t\t\t\t\t\t\tid: getTranslation('paths.page.searchPlaceholder'),\n\t\t\t\t\t\t\t\tdefaultMessage: 'Search paths',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tvalue={searchQuery}\n\t\t\t\t\t\t\tonChange={handleSearchChange}\n\t\t\t\t\t\t\tendAction={\n\t\t\t\t\t\t\t\tsearchQuery ? (\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\t\t\t\thandleSearchChange({\n\t\t\t\t\t\t\t\t\t\t\t\ttarget: { value: '' },\n\t\t\t\t\t\t\t\t\t\t\t} as React.ChangeEvent<HTMLInputElement>)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tcolor: 'inherit',\n\t\t\t\t\t\t\t\t\t\t\tbackground: 'none',\n\t\t\t\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\t\t\t\tcursor: 'pointer',\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\taria-label=\"Clear search\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Cross />\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Field.Root>\n\t\t\t\t</Box>\n\t\t\t</Grid.Item>\n\t\t</Grid.Root>\n\t)\n}\n\nexport default SearchInput\n","import type { RouteSortKey } from '../../types'\nimport { Typography, Thead, Tr, Th, VisuallyHidden } from '@strapi/design-system'\nimport { getTranslation } from '../../utils'\nimport { useIntl } from 'react-intl'\nimport { ChevronDown } from '@strapi/icons'\n\nexport default function TableHeader({\n\tsortKey,\n\thandleSort,\n}: {\n\tsortKey: RouteSortKey\n\thandleSort: (key: RouteSortKey) => void\n}) {\n\tconst { formatMessage } = useIntl()\n\n\treturn (\n\t\t<Thead>\n\t\t\t<Tr>\n\t\t\t\t<Th onClick={() => handleSort('title')} cursor=\"pointer\">\n\t\t\t\t\t<Typography variant=\"sigma\">\n\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\tid: getTranslation('title'),\n\t\t\t\t\t\t\tdefaultMessage: 'Title',\n\t\t\t\t\t\t})}\n\t\t\t\t\t</Typography>\n\t\t\t\t\t{sortKey === 'title' && <ChevronDown />}\n\t\t\t\t</Th>\n\t\t\t\t<Th onClick={() => handleSort('canonicalPath')} cursor=\"pointer\">\n\t\t\t\t\t<Typography variant=\"sigma\">\n\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\tid: getTranslation('canonicalPath'),\n\t\t\t\t\t\t\tdefaultMessage: 'Canonical Path',\n\t\t\t\t\t\t})}\n\t\t\t\t\t</Typography>\n\t\t\t\t\t{sortKey === 'canonicalPath' && <ChevronDown />}\n\t\t\t\t</Th>\n\t\t\t\t<Th onClick={() => handleSort('path')} cursor=\"pointer\">\n\t\t\t\t\t<Typography variant=\"sigma\">\n\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\tid: getTranslation('path'),\n\t\t\t\t\t\t\tdefaultMessage: 'Path',\n\t\t\t\t\t\t})}\n\t\t\t\t\t</Typography>\n\t\t\t\t\t{sortKey === 'path' && <ChevronDown />}\n\t\t\t\t</Th>\n\t\t\t\t<Th onClick={() => handleSort('type')} cursor=\"pointer\">\n\t\t\t\t\t<Typography variant=\"sigma\">\n\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\tid: getTranslation('paths.page.column.type'),\n\t\t\t\t\t\t\tdefaultMessage: 'Type',\n\t\t\t\t\t\t})}\n\t\t\t\t\t</Typography>\n\t\t\t\t\t{sortKey === 'type' && <ChevronDown />}\n\t\t\t\t</Th>\n\t\t\t\t<Th>\n\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\tid: getTranslation('actions'),\n\t\t\t\t\t\t\tdefaultMessage: 'Actions',\n\t\t\t\t\t\t})}\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</Th>\n\t\t\t</Tr>\n\t\t</Thead>\n\t)\n}\n","import type { Route } from '../../../../types'\nimport { Typography, Tr, Td, Flex, LinkButton } from '@strapi/design-system'\nimport { getTranslation } from '../../utils'\nimport { useIntl } from 'react-intl'\nimport { Pencil } from '@strapi/icons'\n\nexport default function TableRow({ route }: { route: Route }) {\n\tconst { formatMessage } = useIntl()\n\n\treturn (\n\t\t<Tr>\n\t\t\t{[route.title, route.canonicalPath, route.path].map((field, index) => (\n\t\t\t\t<Td key={index}>\n\t\t\t\t\t<Typography title={field} textColor=\"neutral800\">\n\t\t\t\t\t\t{field || '-'}\n\t\t\t\t\t</Typography>\n\t\t\t\t</Td>\n\t\t\t))}\n\t\t\t<Td>\n\t\t\t\t<Typography title={route.type} textColor=\"neutral800\">\n\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\tid: getTranslation(`path.type.${route.type}`),\n\t\t\t\t\t\tdefaultMessage: '-',\n\t\t\t\t\t})}\n\t\t\t\t</Typography>\n\t\t\t</Td>\n\t\t\t<Td>\n\t\t\t\t<Flex gap={2} justifyContent=\"end\">\n\t\t\t\t\t{route.type === 'internal' && (\n\t\t\t\t\t\t<LinkButton\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tstartIcon={<Pencil />}\n\t\t\t\t\t\t\thref={`/admin/content-manager/collection-types/${route.relatedContentType}/${route.relatedDocumentId}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{formatMessage({\n\t\t\t\t\t\t\t\tid: getTranslation('edit'),\n\t\t\t\t\t\t\t\tdefaultMessage: 'Edit',\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</LinkButton>\n\t\t\t\t\t)}\n\t\t\t\t</Flex>\n\t\t\t</Td>\n\t\t</Tr>\n\t)\n}\n","import type { Route } from '../../../../types'\nimport type { RouteSortKey } from '../../types'\nimport { Table, Tbody, EmptyStateLayout, Tr, Td } from '@strapi/design-system'\nimport TableHeader from './TableHeader'\nimport TableRow from './TableRow'\nimport { useIntl } from 'react-intl'\nimport { getTranslation } from '../../utils'\n\nfunction PathTable({\n\troutes,\n\tsortKey,\n\thandleSort,\n}: {\n\troutes: Route[]\n\tsortKey: RouteSortKey\n\thandleSort: (key: RouteSortKey) => void\n}) {\n\tconst { formatMessage } = useIntl()\n\n\tconst TABLE_COL_COUNT = 5\n\n\treturn (\n\t\t<Table colCount={TABLE_COL_COUNT} rowCount={routes.length}>\n\t\t\t<TableHeader sortKey={sortKey} handleSort={handleSort} />\n\t\t\t<Tbody>\n\t\t\t\t{routes.length > 0 ? (\n\t\t\t\t\troutes.map((route: Route) => <TableRow key={route.id} route={route} />)\n\t\t\t\t) : (\n\t\t\t\t\t<Tr>\n\t\t\t\t\t\t<Td colSpan={TABLE_COL_COUNT}>\n\t\t\t\t\t\t\t<EmptyStateLayout\n\t\t\t\t\t\t\t\tshadow=\"none\"\n\t\t\t\t\t\t\t\tcontent={formatMessage({\n\t\t\t\t\t\t\t\t\tid: getTranslation('paths.page.emptyPaths'),\n\t\t\t\t\t\t\t\t\tdefaultMessage: 'No paths found',\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Td>\n\t\t\t\t\t</Tr>\n\t\t\t\t)}\n\t\t\t</Tbody>\n\t\t</Table>\n\t)\n}\n\nexport default PathTable\n","/*\n *\n * Routes\n * This file contains the Routes page of the Webatlas plugin for Strapi.\n * It displays a table of all existing routes with their details and allows editing.\n *\n */\n\nimport type { Route } from '../../../../types'\nimport type { RouteSortKey } from '../../types'\nimport { useState, useEffect } from 'react'\nimport { useApi } from '../../hooks'\nimport { FullLoader } from '../../components/UI'\nimport { getTranslation } from '../../utils'\nimport { useIntl } from 'react-intl'\nimport { useNotification, Page } from '@strapi/strapi/admin'\nimport PageWrapper from './PageWrapper'\nimport { useSearchParams } from 'react-router-dom'\nimport debounce from '../../utils/debounce'\nimport { useMemo } from 'react'\nimport compareBy from './compareBy'\nimport pluginPermissions from '../../permissions'\nimport SearchInput from './SearchInput'\nimport PathTable from './PathTable'\n\nconst Paths = () => {\n\tconst { getAllRoutes } = useApi()\n\tconst { formatMessage } = useIntl()\n\tconst { toggleNotification } = useNotification()\n\n\tconst [allRoutes, setAllRoutes] = useState<Route[]>([])\n\tconst [routes, setRoutes] = useState<Route[]>([])\n\tconst [loading, setLoading] = useState(true)\n\tconst [searchParams, setSearchParams] = useSearchParams()\n\tconst initialQuery = searchParams.get('search') || ''\n\tconst [searchQuery, setSearchQuery] = useState(initialQuery)\n\tconst [sortKey, setSortKey] = useState<RouteSortKey>('canonicalPath')\n\tconst [sortDirection, setSortDirection] = useState<'asc' | 'desc'>('asc')\n\n\tuseEffect(() => {\n\t\tconst query = searchQuery.toLowerCase()\n\t\tsetRoutes(\n\t\t\tallRoutes.filter(\n\t\t\t\t(route) =>\n\t\t\t\t\tJSON.stringify(route.id).toLowerCase().includes(query) ||\n\t\t\t\t\troute.title.toLowerCase().includes(query) ||\n\t\t\t\t\troute.path.toLowerCase().includes(query) ||\n\t\t\t\t\troute.relatedDocumentId.toLowerCase().includes(query) ||\n\t\t\t\t\troute.relatedContentType.toLowerCase().includes(query),\n\t\t\t),\n\t\t)\n\t}, [searchQuery, allRoutes])\n\n\tconst debouncedSetSearchParams = useMemo(\n\t\t() =>\n\t\t\tdebounce((value: string) => {\n\t\t\t\tvalue ? setSearchParams({ search: value }) : setSearchParams({})\n\t\t\t}, 300),\n\t\t[setSearchParams],\n\t)\n\n\tconst handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst value = e.target.value\n\t\tsetSearchQuery(value)\n\t\tdebouncedSetSearchParams(value)\n\t}\n\n\tuseEffect(() => {\n\t\tasync function fetchRoutes() {\n\t\t\ttry {\n\t\t\t\tconst data = await getAllRoutes()\n\t\t\t\tsetAllRoutes(data)\n\t\t\t\tsetRoutes(data)\n\t\t\t} catch (err) {\n\t\t\t\tstrapi.log.error('Failed to fetch paths:', err)\n\t\t\t\ttoggleNotification({\n\t\t\t\t\ttype: 'danger',\n\t\t\t\t\tmessage: formatMessage({\n\t\t\t\t\t\tid: getTranslation('notification.paths.fetchFailed'),\n\t\t\t\t\t\tdefaultMessage: 'Failed to fetch paths',\n\t\t\t\t\t}),\n\t\t\t\t})\n\t\t\t} finally {\n\t\t\t\tsetLoading(false)\n\t\t\t}\n\t\t}\n\t\tfetchRoutes()\n\t}, [])\n\n\tconst handleSort = (key: RouteSortKey) => {\n\t\tsetSortDirection((prev) => (prev === 'asc' ? 'desc' : 'asc'))\n\t\tsetSortKey(key)\n\t}\n\n\tconst sortedRoutes = useMemo(() => {\n\t\treturn sortKey ? [...routes].sort(compareBy(sortKey, sortDirection)) : routes\n\t}, [routes, sortKey, sortDirection])\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<PageWrapper>\n\t\t\t\t<FullLoader />\n\t\t\t</PageWrapper>\n\t\t)\n\t}\n\n\treturn (\n\t\t<Page.Protect permissions={pluginPermissions['page.routes']}>\n\t\t\t<PageWrapper>\n\t\t\t\t<SearchInput handleSearchChange={handleSearchChange} searchQuery={searchQuery} />\n\t\t\t\t<PathTable routes={sortedRoutes} sortKey={sortKey} handleSort={handleSort} />\n\t\t\t</PageWrapper>\n\t\t</Page.Protect>\n\t)\n}\n\nexport default Paths\n"],"names":[],"mappings":"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"}
|
|
@@ -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.
|
|
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 =
|
|
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 = ({
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
4201
|
+
Component: () => Promise.resolve().then(() => require("./index-Sj2FxwAu.js")),
|
|
4231
4202
|
permissions: [pluginPermissions["settings.navigation"][0]]
|
|
4232
4203
|
});
|
|
4233
4204
|
app.registerPlugin({
|
|
@@ -4266,3 +4237,4 @@ exports.pluginPermissions = pluginPermissions;
|
|
|
4266
4237
|
exports.useAllContentTypes = useAllContentTypes;
|
|
4267
4238
|
exports.useApi = useApi;
|
|
4268
4239
|
exports.usePluginConfig = usePluginConfig;
|
|
4240
|
+
//# sourceMappingURL=index-BkPtrXJO.js.map
|