@mattisvensson/strapi-plugin-webatlas 0.11.1 → 0.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -6
- package/dist/admin/{SettingTitle-B0quw3f8.js → SettingTitle-BdiDHFXF.js} +2 -2
- package/dist/admin/{SettingTitle-B0quw3f8.js.map → SettingTitle-BdiDHFXF.js.map} +1 -1
- package/dist/admin/{SettingTitle-HMfQOJnK.mjs → SettingTitle-CcNfx_4T.mjs} +2 -2
- package/dist/admin/{SettingTitle-HMfQOJnK.mjs.map → SettingTitle-CcNfx_4T.mjs.map} +1 -1
- package/dist/admin/{index-Bmg-ERct.mjs → index-BMTlUOrK.mjs} +3 -3
- package/dist/admin/{index-Bmg-ERct.mjs.map → index-BMTlUOrK.mjs.map} +1 -1
- package/dist/admin/{index-B79ELMEC.mjs → index-BX3hiURm.mjs} +10 -39
- package/dist/admin/index-BX3hiURm.mjs.map +1 -0
- package/dist/admin/{index-9_HhKDUC.mjs → index-BdyLsiR4.mjs} +2 -2
- package/dist/admin/{index-9_HhKDUC.mjs.map → index-BdyLsiR4.mjs.map} +1 -1
- package/dist/admin/{index-Cx_mktdk.js → index-BkPtrXJO.js} +10 -39
- package/dist/admin/index-BkPtrXJO.js.map +1 -0
- package/dist/admin/{index-YdWxpvOH.js → index-CEBh9c4X.js} +3 -3
- package/dist/admin/{index-YdWxpvOH.js.map → index-CEBh9c4X.js.map} +1 -1
- package/dist/admin/{index-BEVoxEAm.js → index-DBG6vBGU.js} +2 -2
- package/dist/admin/{index-BEVoxEAm.js.map → index-DBG6vBGU.js.map} +1 -1
- package/dist/admin/{index-Cz_k_jjp.mjs → index-DkEReTkt.mjs} +3 -3
- package/dist/admin/{index-Cz_k_jjp.mjs.map → index-DkEReTkt.mjs.map} +1 -1
- package/dist/admin/{index-oEJT_mvw.mjs → index-DkfE_arE.mjs} +27 -9
- package/dist/admin/index-DkfE_arE.mjs.map +1 -0
- package/dist/admin/{index-D2hB1vTw.js → index-Sj2FxwAu.js} +3 -3
- package/dist/admin/{index-D2hB1vTw.js.map → index-Sj2FxwAu.js.map} +1 -1
- package/dist/admin/{index-C8YjuuOx.js → index-uW7YJoRU.js} +27 -9
- package/dist/admin/index-uW7YJoRU.js.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/server/index.js +636 -1502
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +636 -1502
- package/dist/server/index.mjs.map +1 -1
- package/package.json +14 -13
- package/dist/admin/index-B79ELMEC.mjs.map +0 -1
- package/dist/admin/index-C8YjuuOx.js.map +0 -1
- package/dist/admin/index-Cx_mktdk.js.map +0 -1
- package/dist/admin/index-oEJT_mvw.mjs.map +0 -1
|
@@ -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,4 +242,4 @@ const Paths = () => {
|
|
|
242
242
|
export {
|
|
243
243
|
Paths as default
|
|
244
244
|
};
|
|
245
|
-
//# sourceMappingURL=index-
|
|
245
|
+
//# sourceMappingURL=index-BdyLsiR4.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-9_HhKDUC.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":";;;;;;;;;;AAIA,SAAwB,YAAY,EAAE,YAA2C;AAChF,QAAM,EAAE,cAAA,IAAkB,QAAA;AAE1B,SACC,qBAAC,KAAK,MAAL,EACA,UAAA;AAAA,IAAA;AAAA,MAAC,QAAQ;AAAA,MAAR;AAAA,QACA,OAAO,cAAc;AAAA,UACpB,IAAI,eAAe,kBAAkB;AAAA,UACrC,gBAAgB;AAAA,QAAA,CAChB;AAAA,QACD,UAAU,cAAc;AAAA,UACvB,IAAI,eAAe,qBAAqB;AAAA,UACxC,gBAAgB;AAAA,QAAA,CAChB;AAAA,MAAA;AAAA,IAAA;AAAA,wBAED,QAAQ,SAAR,EACA,UAAA,oBAAA,UAAA,EAAG,UAAS,EAAA,CACb;AAAA,EAAA,GACD;AAEF;ACrBA,SAAwB,UAAU,OAAqB,WAA2B;AACjF,MAAI,CAAC,OAAO;AACX,WAAO,MAAM;AAAA,EACd;AACA,MAAI,UAAU,QAAQ;AACrB,WAAO,CAAC,GAAU,MAAa;AAC9B,aAAO,cAAc,QAAQ,EAAE,KAAK,cAAc,EAAE,IAAI,IAAI,EAAE,KAAK,cAAc,EAAE,IAAI;AAAA,IACxF;AAAA,EACD;AACA,SAAO,CAAC,GAAU,MAAa;AAC9B,UAAM,SAAS,EAAE,KAAK;AACtB,UAAM,SAAS,EAAE,KAAK;AAEtB,QAAI,UAAU,QAAQ,UAAU,MAAM;AACrC,aAAO;AAAA,IACR;AACA,QAAI,UAAU,MAAM;AACnB,aAAO,cAAc,QAAQ,IAAI;AAAA,IAClC;AACA,QAAI,UAAU,MAAM;AACnB,aAAO,cAAc,QAAQ,KAAK;AAAA,IACnC;AAEA,QAAI,OAAO,WAAW,YAAY,OAAO,WAAW,UAAU;AAC7D,aAAO,cAAc,QAAQ,OAAO,cAAc,MAAM,IAAI,OAAO,cAAc,MAAM;AAAA,IACxF;AACA,WAAO;AAAA,EACR;AACD;AC1BA,SAAS,YAAY;AAAA,EACpB;AAAA,EACA;AACD,GAGG;AACF,QAAM,EAAE,cAAA,IAAkB,QAAA;AAE1B,SACC,oBAAC,KAAK,MAAL,EAAU,OAAO,EAAE,cAAc,OAAA,GACjC,UAAA,oBAAC,KAAK,MAAL,EAAU,KAAK,GAAG,GAAG,IACrB,UAAA,oBAAC,KAAA,EAAI,OAAM,QACV,UAAA,oBAAC,MAAM,MAAN,EACA,UAAA;AAAA,IAAC,MAAM;AAAA,IAAN;AAAA,MACA,MAAK;AAAA,MACL,aAAa,cAAc;AAAA,QAC1B,IAAI,eAAe,8BAA8B;AAAA,QACjD,gBAAgB;AAAA,MAAA,CAChB;AAAA,MACD,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WACC,cACC;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,MAAK;AAAA,UACL,SAAS,MACR,mBAAmB;AAAA,YAClB,QAAQ,EAAE,OAAO,GAAA;AAAA,UAAG,CACmB;AAAA,UAEzC,OAAO;AAAA,YACN,OAAO;AAAA,YACP,YAAY;AAAA,YACZ,QAAQ;AAAA,YACR,QAAQ;AAAA,UAAA;AAAA,UAET,cAAW;AAAA,UAEX,8BAAC,OAAA,CAAA,CAAM;AAAA,QAAA;AAAA,MAAA,IAEL;AAAA,IAAA;AAAA,EAAA,GAGP,EAAA,CACD,EAAA,CACD,GACD;AAEF;AChDA,SAAwB,YAAY;AAAA,EACnC;AAAA,EACA;AACD,GAGG;AACF,QAAM,EAAE,cAAA,IAAkB,QAAA;AAE1B,SACC,oBAAC,OAAA,EACA,UAAA,qBAAC,IAAA,EACA,UAAA;AAAA,IAAA,qBAAC,MAAG,SAAS,MAAM,WAAW,OAAO,GAAG,QAAO,WAC9C,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAClB,UAAA,cAAc;AAAA,QACd,IAAI,eAAe,OAAO;AAAA,QAC1B,gBAAgB;AAAA,MAAA,CAChB,GACF;AAAA,MACC,YAAY,WAAW,oBAAC,aAAA,CAAA,CAAY;AAAA,IAAA,GACtC;AAAA,IACA,qBAAC,MAAG,SAAS,MAAM,WAAW,eAAe,GAAG,QAAO,WACtD,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAClB,UAAA,cAAc;AAAA,QACd,IAAI,eAAe,eAAe;AAAA,QAClC,gBAAgB;AAAA,MAAA,CAChB,GACF;AAAA,MACC,YAAY,mBAAmB,oBAAC,aAAA,CAAA,CAAY;AAAA,IAAA,GAC9C;AAAA,IACA,qBAAC,MAAG,SAAS,MAAM,WAAW,MAAM,GAAG,QAAO,WAC7C,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAClB,UAAA,cAAc;AAAA,QACd,IAAI,eAAe,MAAM;AAAA,QACzB,gBAAgB;AAAA,MAAA,CAChB,GACF;AAAA,MACC,YAAY,UAAU,oBAAC,aAAA,CAAA,CAAY;AAAA,IAAA,GACrC;AAAA,IACA,qBAAC,MAAG,SAAS,MAAM,WAAW,MAAM,GAAG,QAAO,WAC7C,UAAA;AAAA,MAAA,oBAAC,YAAA,EAAW,SAAQ,SAClB,UAAA,cAAc;AAAA,QACd,IAAI,eAAe,wBAAwB;AAAA,QAC3C,gBAAgB;AAAA,MAAA,CAChB,GACF;AAAA,MACC,YAAY,UAAU,oBAAC,aAAA,CAAA,CAAY;AAAA,IAAA,GACrC;AAAA,IACA,oBAAC,IAAA,EACA,UAAA,oBAAC,gBAAA,EACC,UAAA,cAAc;AAAA,MACd,IAAI,eAAe,SAAS;AAAA,MAC5B,gBAAgB;AAAA,IAAA,CAChB,GACF,EAAA,CACD;AAAA,EAAA,EAAA,CACD,EAAA,CACD;AAEF;AC3DA,SAAwB,SAAS,EAAE,SAA2B;AAC7D,QAAM,EAAE,cAAA,IAAkB,QAAA;AAE1B,8BACE,IAAA,EACC,UAAA;AAAA,IAAA,CAAC,MAAM,OAAO,MAAM,eAAe,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,8BAC1D,IAAA,EACA,UAAA,oBAAC,YAAA,EAAW,OAAO,OAAO,WAAU,cAClC,UAAA,SAAS,IAAA,CACX,EAAA,GAHQ,KAIT,CACA;AAAA,IACD,oBAAC,MACA,UAAA,oBAAC,YAAA,EAAW,OAAO,MAAM,MAAM,WAAU,cACvC,UAAA,cAAc;AAAA,MACd,IAAI,eAAe,aAAa,MAAM,IAAI,EAAE;AAAA,MAC5C,gBAAgB;AAAA,IAAA,CAChB,GACF,EAAA,CACD;AAAA,IACA,oBAAC,IAAA,EACA,UAAA,oBAAC,MAAA,EAAK,KAAK,GAAG,gBAAe,OAC3B,UAAA,MAAM,SAAS,cACf;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,SAAQ;AAAA,QACR,+BAAY,QAAA,EAAO;AAAA,QACnB,MAAM,2CAA2C,MAAM,kBAAkB,IAAI,MAAM,iBAAiB;AAAA,QAEnG,UAAA,cAAc;AAAA,UACd,IAAI,eAAe,MAAM;AAAA,UACzB,gBAAgB;AAAA,QAAA,CAChB;AAAA,MAAA;AAAA,IAAA,GAGJ,EAAA,CACD;AAAA,EAAA,GACD;AAEF;ACpCA,SAAS,UAAU;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AACD,GAIG;AACF,QAAM,EAAE,cAAA,IAAkB,QAAA;AAE1B,QAAM,kBAAkB;AAExB,8BACE,OAAA,EAAM,UAAU,iBAAiB,UAAU,OAAO,QAClD,UAAA;AAAA,IAAA,oBAAC,aAAA,EAAY,SAAkB,WAAA,CAAwB;AAAA,IACvD,oBAAC,SACC,UAAA,OAAO,SAAS,IAChB,OAAO,IAAI,CAAC,UAAiB,oBAAC,YAAwB,SAAV,MAAM,EAAkB,CAAE,wBAErE,IAAA,EACA,UAAA,oBAAC,IAAA,EAAG,SAAS,iBACZ,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,QAAO;AAAA,QACP,SAAS,cAAc;AAAA,UACtB,IAAI,eAAe,uBAAuB;AAAA,UAC1C,gBAAgB;AAAA,QAAA,CAChB;AAAA,MAAA;AAAA,IAAA,EACF,CACD,GACD,EAAA,CAEF;AAAA,EAAA,GACD;AAEF;AClBA,MAAM,QAAQ,MAAM;AACnB,QAAM,EAAE,aAAA,IAAiB,OAAA;AACzB,QAAM,EAAE,cAAA,IAAkB,QAAA;AAC1B,QAAM,EAAE,mBAAA,IAAuB,gBAAA;AAE/B,QAAM,CAAC,WAAW,YAAY,IAAI,SAAkB,CAAA,CAAE;AACtD,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAkB,CAAA,CAAE;AAChD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,IAAI;AAC3C,QAAM,CAAC,cAAc,eAAe,IAAI,gBAAA;AACxC,QAAM,eAAe,aAAa,IAAI,QAAQ,KAAK;AACnD,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,YAAY;AAC3D,QAAM,CAAC,SAAS,UAAU,IAAI,SAAuB,eAAe;AACpE,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAyB,KAAK;AAExE,YAAU,MAAM;AACf,UAAM,QAAQ,YAAY,YAAA;AAC1B;AAAA,MACC,UAAU;AAAA,QACT,CAAC,UACA,KAAK,UAAU,MAAM,EAAE,EAAE,YAAA,EAAc,SAAS,KAAK,KACrD,MAAM,MAAM,YAAA,EAAc,SAAS,KAAK,KACxC,MAAM,KAAK,cAAc,SAAS,KAAK,KACvC,MAAM,kBAAkB,YAAA,EAAc,SAAS,KAAK,KACpD,MAAM,mBAAmB,YAAA,EAAc,SAAS,KAAK;AAAA,MAAA;AAAA,IACvD;AAAA,EAEF,GAAG,CAAC,aAAa,SAAS,CAAC;AAE3B,QAAM,2BAA2B;AAAA,IAChC,MACC,SAAS,CAAC,UAAkB;AAC3B,cAAQ,gBAAgB,EAAE,QAAQ,MAAA,CAAO,IAAI,gBAAgB,EAAE;AAAA,IAChE,GAAG,GAAG;AAAA,IACP,CAAC,eAAe;AAAA,EAAA;AAGjB,QAAM,qBAAqB,CAAC,MAA2C;AACtE,UAAM,QAAQ,EAAE,OAAO;AACvB,mBAAe,KAAK;AACpB,6BAAyB,KAAK;AAAA,EAC/B;AAEA,YAAU,MAAM;AACf,mBAAe,cAAc;AAC5B,UAAI;AACH,cAAM,OAAO,MAAM,aAAA;AACnB,qBAAa,IAAI;AACjB,kBAAU,IAAI;AAAA,MACf,SAAS,KAAK;AACb,eAAO,IAAI,MAAM,0BAA0B,GAAG;AAC9C,2BAAmB;AAAA,UAClB,MAAM;AAAA,UACN,SAAS,cAAc;AAAA,YACtB,IAAI,eAAe,gCAAgC;AAAA,YACnD,gBAAgB;AAAA,UAAA,CAChB;AAAA,QAAA,CACD;AAAA,MACF,UAAA;AACC,mBAAW,KAAK;AAAA,MACjB;AAAA,IACD;AACA,gBAAA;AAAA,EACD,GAAG,CAAA,CAAE;AAEL,QAAM,aAAa,CAAC,QAAsB;AACzC,qBAAiB,CAAC,SAAU,SAAS,QAAQ,SAAS,KAAM;AAC5D,eAAW,GAAG;AAAA,EACf;AAEA,QAAM,eAAe,QAAQ,MAAM;AAClC,WAAO,UAAU,CAAC,GAAG,MAAM,EAAE,KAAK,UAAU,SAAS,aAAa,CAAC,IAAI;AAAA,EACxE,GAAG,CAAC,QAAQ,SAAS,aAAa,CAAC;AAEnC,MAAI,SAAS;AACZ,WACC,oBAAC,aAAA,EACA,UAAA,oBAAC,YAAA,CAAA,CAAW,GACb;AAAA,EAEF;AAEA,SACC,oBAAC,KAAK,SAAL,EAAa,aAAa,kBAAkB,aAAa,GACzD,UAAA,qBAAC,aAAA,EACA,UAAA;AAAA,IAAA,oBAAC,aAAA,EAAY,oBAAwC,YAAA,CAA0B;AAAA,IAC/E,oBAAC,WAAA,EAAU,QAAQ,cAAc,SAAkB,WAAA,CAAwB;AAAA,EAAA,EAAA,CAC5E,EAAA,CACD;AAEF;"}
|
|
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,4 +4237,4 @@ exports.pluginPermissions = pluginPermissions;
|
|
|
4266
4237
|
exports.useAllContentTypes = useAllContentTypes;
|
|
4267
4238
|
exports.useApi = useApi;
|
|
4268
4239
|
exports.usePluginConfig = usePluginConfig;
|
|
4269
|
-
//# sourceMappingURL=index-
|
|
4240
|
+
//# sourceMappingURL=index-BkPtrXJO.js.map
|