@mattisvensson/strapi-plugin-webatlas 0.9.5 → 0.10.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 (117) hide show
  1. package/README.md +24 -36
  2. package/dist/_chunks/FullLoader-Cmsf8xS6.js +0 -1
  3. package/dist/_chunks/FullLoader-CrPED_dY.mjs +0 -1
  4. package/dist/_chunks/{SettingTitle-CiMKrd_1.mjs → SettingTitle-CdR3SVn_.mjs} +1 -2
  5. package/dist/_chunks/{SettingTitle-CAoYbTar.js → SettingTitle-RU1azFIM.js} +1 -1
  6. package/dist/_chunks/{de-C-uxto84.mjs → de-B5pRvs13.mjs} +13 -8
  7. package/dist/_chunks/{de-CGXL_3o_.js → de-CqU1FU8C.js} +13 -8
  8. package/dist/_chunks/{en-B1CHnIH7.mjs → en-BE-zzIv8.mjs} +13 -8
  9. package/dist/_chunks/{en-DWEd5BXK.js → en-C7I90FwV.js} +13 -8
  10. package/dist/_chunks/{index-Bqsd7oPS.mjs → index-B07UVUOa.mjs} +387 -230
  11. package/dist/_chunks/{index-DJBnQbrp.mjs → index-BmyxSosC.mjs} +3 -3
  12. package/dist/_chunks/{index-BOZDZiAv.js → index-BucL4va6.js} +38 -82
  13. package/dist/_chunks/{index-DU58LJ2w.mjs → index-BvcX9hcc.mjs} +61 -25
  14. package/dist/_chunks/{index-ezabqLEP.js → index-BxpDM360.js} +386 -228
  15. package/dist/_chunks/{index-qrC_n9-7.mjs → index-CIM-JzLK.mjs} +38 -82
  16. package/dist/_chunks/{index-qrrfKpw1.mjs → index-CNKWb8pn.mjs} +615 -321
  17. package/dist/_chunks/{index-m2ivL3ht.js → index-D-vJE_K8.js} +3 -3
  18. package/dist/_chunks/{index-BkB1x9Sn.js → index-IRSCe8PX.js} +610 -316
  19. package/dist/_chunks/{index-CC073vGB.js → index-d09V61nm.js} +61 -24
  20. package/dist/admin/index.js +1 -2
  21. package/dist/admin/index.mjs +1 -2
  22. package/dist/admin/src/components/CMEditViewAside/NewPathInfo.d.ts +2 -0
  23. package/dist/admin/src/components/CMEditViewAside/OverrideCheckbox.d.ts +7 -0
  24. package/dist/admin/src/components/CMEditViewAside/Panel.d.ts +5 -0
  25. package/dist/admin/src/components/CMEditViewAside/PathInput.d.ts +11 -0
  26. package/dist/admin/src/components/CMEditViewAside/RouteStructure.d.ts +3 -0
  27. package/dist/admin/src/components/CMEditViewAside/UidPathDisplay.d.ts +4 -0
  28. package/dist/admin/src/components/PathInfo.d.ts +2 -3
  29. package/dist/admin/src/components/modals/externalItem/index.d.ts +1 -1
  30. package/dist/admin/src/components/modals/internalItem/ItemDetails.d.ts +13 -0
  31. package/dist/admin/src/components/modals/internalItem/internalItemCreate.d.ts +1 -1
  32. package/dist/admin/src/components/modals/internalItem/internalItemEdit.d.ts +1 -1
  33. package/dist/admin/src/components/modals/useModalSharedLogic.d.ts +1 -1
  34. package/dist/admin/src/components/modals/wrapperItem/index.d.ts +1 -1
  35. package/dist/admin/src/hooks/useApi.d.ts +4 -3
  36. package/dist/admin/src/pages/Navigation/RouteItem.d.ts +1 -15
  37. package/dist/admin/src/pages/Navigation/RouteItemBadge.d.ts +4 -0
  38. package/dist/admin/src/pages/Navigation/RouteItemIcon.d.ts +5 -0
  39. package/dist/admin/src/pages/Navigation/RouteItemMenu.d.ts +10 -0
  40. package/dist/admin/src/pages/Navigation/RouteItemStatus.d.ts +5 -0
  41. package/dist/admin/src/pages/Navigation/SortableRouteItem.d.ts +1 -1
  42. package/dist/admin/src/types/index.d.ts +3 -0
  43. package/dist/admin/src/types/modal.d.ts +56 -0
  44. package/dist/admin/src/types/navigation.d.ts +18 -0
  45. package/dist/admin/src/types/panel.d.ts +41 -0
  46. package/dist/admin/src/types/route.d.ts +1 -1
  47. package/dist/admin/src/utils/buildBreadcrumbString.d.ts +16 -0
  48. package/dist/admin/src/utils/createTempNavItemObject.d.ts +6 -8
  49. package/dist/admin/src/utils/duplicateCheck.d.ts +10 -4
  50. package/dist/admin/src/utils/findParentNavItem.d.ts +13 -0
  51. package/dist/admin/src/utils/index.d.ts +3 -2
  52. package/dist/server/index.js +636 -209
  53. package/dist/server/index.mjs +636 -209
  54. package/dist/server/src/content-types/index.d.ts +18 -0
  55. package/dist/server/src/content-types/route/index.d.ts +18 -0
  56. package/dist/server/src/content-types/route/schema.d.ts +18 -0
  57. package/dist/server/src/controllers/admin.d.ts +3 -2
  58. package/dist/server/src/controllers/index.d.ts +3 -2
  59. package/dist/server/src/index.d.ts +24 -4
  60. package/dist/server/src/migrations/001-canonical-path.d.ts +7 -0
  61. package/dist/server/src/migrations/index.d.ts +3 -0
  62. package/dist/server/src/services/admin.d.ts +3 -2
  63. package/dist/server/src/services/index.d.ts +3 -2
  64. package/dist/server/src/utils/buildCanonicalPath.d.ts +1 -0
  65. package/dist/server/src/utils/buildNavigationPath.d.ts +5 -0
  66. package/dist/server/src/utils/cascadeCanonicalPathUpdates.d.ts +1 -0
  67. package/dist/server/src/utils/getNonInternalRouteIds.d.ts +1 -0
  68. package/dist/server/src/utils/getRouteAncestors.d.ts +1 -0
  69. package/dist/server/src/utils/getRouteDescendants.d.ts +1 -0
  70. package/dist/server/src/utils/index.d.ts +10 -2
  71. package/dist/server/src/utils/navigationItemStructure.d.ts +27 -0
  72. package/dist/server/src/utils/routeHandler.d.ts +4 -2
  73. package/dist/server/src/utils/validateRouteDependencies.d.ts +4 -0
  74. package/dist/types/index.d.ts +0 -1
  75. package/dist/types/navigation.d.ts +13 -12
  76. package/dist/types/route.d.ts +7 -2
  77. package/dist/types/strapi.d.ts +1 -2
  78. package/dist/utils/index.d.ts +1 -2
  79. package/package.json +1 -1
  80. package/dist/_chunks/FullLoader-Cmsf8xS6.js.map +0 -1
  81. package/dist/_chunks/FullLoader-CrPED_dY.mjs.map +0 -1
  82. package/dist/_chunks/SettingTitle-ByAhjihc.js +0 -68
  83. package/dist/_chunks/SettingTitle-ByAhjihc.js.map +0 -1
  84. package/dist/_chunks/SettingTitle-CiMKrd_1.mjs.map +0 -1
  85. package/dist/_chunks/SettingTitle-ZM5Yf2b4.mjs +0 -68
  86. package/dist/_chunks/de-C-uxto84.mjs.map +0 -1
  87. package/dist/_chunks/de-CGXL_3o_.js.map +0 -1
  88. package/dist/_chunks/en-B1CHnIH7.mjs.map +0 -1
  89. package/dist/_chunks/en-DWEd5BXK.js.map +0 -1
  90. package/dist/_chunks/index-BqceJPRl.js +0 -235
  91. package/dist/_chunks/index-BqceJPRl.js.map +0 -1
  92. package/dist/_chunks/index-Bqsd7oPS.mjs.map +0 -1
  93. package/dist/_chunks/index-CK1wisw5.mjs +0 -129
  94. package/dist/_chunks/index-CK1wisw5.mjs.map +0 -1
  95. package/dist/_chunks/index-CQ2raqxe.js +0 -129
  96. package/dist/_chunks/index-CQ2raqxe.js.map +0 -1
  97. package/dist/_chunks/index-Ca9T36AU.mjs +0 -263
  98. package/dist/_chunks/index-Ca9T36AU.mjs.map +0 -1
  99. package/dist/_chunks/index-DDN4T6c7.mjs +0 -4188
  100. package/dist/_chunks/index-DH4Rd7aA.mjs +0 -8311
  101. package/dist/_chunks/index-DH4Rd7aA.mjs.map +0 -1
  102. package/dist/_chunks/index-DU58LJ2w.mjs.map +0 -1
  103. package/dist/_chunks/index-DnE_cDwy.js +0 -8311
  104. package/dist/_chunks/index-DnE_cDwy.js.map +0 -1
  105. package/dist/_chunks/index-DzpXVfQ_.js +0 -263
  106. package/dist/_chunks/index-DzpXVfQ_.js.map +0 -1
  107. package/dist/_chunks/index-R7qsEu2N.js +0 -4205
  108. package/dist/_chunks/index-R7qsEu2N.js.map +0 -1
  109. package/dist/_chunks/index-fbC3magu.mjs +0 -234
  110. package/dist/admin/index.js.map +0 -1
  111. package/dist/admin/index.mjs.map +0 -1
  112. package/dist/admin/src/components/CMEditViewAside/Path.d.ts +0 -5
  113. package/dist/admin/src/utils/countChildren.d.ts +0 -2
  114. package/dist/server/index.js.map +0 -1
  115. package/dist/server/index.mjs.map +0 -1
  116. package/dist/types/modal.d.ts +0 -36
  117. package/dist/utils/getPath.d.ts +0 -1
@@ -46,6 +46,10 @@ declare const _default: {
46
46
  type: string;
47
47
  configurable: boolean;
48
48
  };
49
+ canonicalPath: {
50
+ type: string;
51
+ configurable: boolean;
52
+ };
49
53
  slug: {
50
54
  type: string;
51
55
  configurable: boolean;
@@ -78,6 +82,20 @@ declare const _default: {
78
82
  configurable: boolean;
79
83
  required: boolean;
80
84
  };
85
+ parent: {
86
+ type: string;
87
+ relation: string;
88
+ target: string;
89
+ inversedBy: string;
90
+ configurable: boolean;
91
+ };
92
+ children: {
93
+ type: string;
94
+ relation: string;
95
+ target: string;
96
+ mappedBy: string;
97
+ configurable: boolean;
98
+ };
81
99
  };
82
100
  };
83
101
  };
@@ -45,6 +45,10 @@ declare const _default: {
45
45
  type: string;
46
46
  configurable: boolean;
47
47
  };
48
+ canonicalPath: {
49
+ type: string;
50
+ configurable: boolean;
51
+ };
48
52
  slug: {
49
53
  type: string;
50
54
  configurable: boolean;
@@ -77,6 +81,20 @@ declare const _default: {
77
81
  configurable: boolean;
78
82
  required: boolean;
79
83
  };
84
+ parent: {
85
+ type: string;
86
+ relation: string;
87
+ target: string;
88
+ inversedBy: string;
89
+ configurable: boolean;
90
+ };
91
+ children: {
92
+ type: string;
93
+ relation: string;
94
+ target: string;
95
+ mappedBy: string;
96
+ configurable: boolean;
97
+ };
80
98
  };
81
99
  };
82
100
  };
@@ -44,6 +44,10 @@ declare const _default: {
44
44
  type: string;
45
45
  configurable: boolean;
46
46
  };
47
+ canonicalPath: {
48
+ type: string;
49
+ configurable: boolean;
50
+ };
47
51
  slug: {
48
52
  type: string;
49
53
  configurable: boolean;
@@ -76,6 +80,20 @@ declare const _default: {
76
80
  configurable: boolean;
77
81
  required: boolean;
78
82
  };
83
+ parent: {
84
+ type: string;
85
+ relation: string;
86
+ target: string;
87
+ inversedBy: string;
88
+ configurable: boolean;
89
+ };
90
+ children: {
91
+ type: string;
92
+ relation: string;
93
+ target: string;
94
+ mappedBy: string;
95
+ configurable: boolean;
96
+ };
79
97
  };
80
98
  };
81
99
  export default _default;
@@ -1,9 +1,10 @@
1
1
  declare const admin: () => {
2
2
  updateConfig(ctx: any): Promise<any>;
3
3
  getConfig(ctx: any): Promise<any>;
4
- getRoutes(ctx: any): Promise<any>;
5
- updateRoute(ctx: any): Promise<any>;
4
+ getRoute(ctx: any): Promise<any>;
5
+ getAllRoutes(ctx: any): Promise<any>;
6
6
  getRelatedRoute(ctx: any): Promise<any>;
7
+ getProhibitedRouteIds(ctx: any): Promise<any>;
7
8
  getNavigation(ctx: any): Promise<any>;
8
9
  createNavigation(ctx: any): Promise<any>;
9
10
  updateNavigation(ctx: any): Promise<any>;
@@ -2,9 +2,10 @@ declare const _default: {
2
2
  admin: () => {
3
3
  updateConfig(ctx: any): Promise<any>;
4
4
  getConfig(ctx: any): Promise<any>;
5
- getRoutes(ctx: any): Promise<any>;
6
- updateRoute(ctx: any): Promise<any>;
5
+ getRoute(ctx: any): Promise<any>;
6
+ getAllRoutes(ctx: any): Promise<any>;
7
7
  getRelatedRoute(ctx: any): Promise<any>;
8
+ getProhibitedRouteIds(ctx: any): Promise<any>;
8
9
  getNavigation(ctx: any): Promise<any>;
9
10
  createNavigation(ctx: any): Promise<any>;
10
11
  updateNavigation(ctx: any): Promise<any>;
@@ -21,9 +21,10 @@ declare const _default: {
21
21
  admin: () => {
22
22
  updateConfig(ctx: any): Promise<any>;
23
23
  getConfig(ctx: any): Promise<any>;
24
- getRoutes(ctx: any): Promise<any>;
25
- updateRoute(ctx: any): Promise<any>;
24
+ getRoute(ctx: any): Promise<any>;
25
+ getAllRoutes(ctx: any): Promise<any>;
26
26
  getRelatedRoute(ctx: any): Promise<any>;
27
+ getProhibitedRouteIds(ctx: any): Promise<any>;
27
28
  getNavigation(ctx: any): Promise<any>;
28
29
  createNavigation(ctx: any): Promise<any>;
29
30
  updateNavigation(ctx: any): Promise<any>;
@@ -73,9 +74,10 @@ declare const _default: {
73
74
  }) => {
74
75
  updateConfig(newConfig: Partial<import("../../types").PluginConfig>): Promise<import("../../types").PluginConfig | "Error. Couldn't update config">;
75
76
  getConfig(): Promise<any>;
76
- getRoutes(): Promise<any>;
77
- updateRoute(documentId: string, data: any): Promise<any>;
77
+ getRoute(documentId: string): Promise<any>;
78
+ getAllRoutes(): Promise<any>;
78
79
  getRelatedRoute(documentId: string): Promise<any>;
80
+ getProhibitedRouteIds(documentId: string): Promise<string[]>;
79
81
  getNavigation(documentId?: string, variant?: import("../../types").StructuredNavigationVariant | "namesOnly"): Promise<any>;
80
82
  createNavigation(name: string, visible: boolean): Promise<any>;
81
83
  updateNavigation(documentId: string, data: import("../../types").NavigationInput): Promise<any>;
@@ -138,6 +140,10 @@ declare const _default: {
138
140
  type: string;
139
141
  configurable: boolean;
140
142
  };
143
+ canonicalPath: {
144
+ type: string;
145
+ configurable: boolean;
146
+ };
141
147
  slug: {
142
148
  type: string;
143
149
  configurable: boolean;
@@ -170,6 +176,20 @@ declare const _default: {
170
176
  configurable: boolean;
171
177
  required: boolean;
172
178
  };
179
+ parent: {
180
+ type: string;
181
+ relation: string;
182
+ target: string;
183
+ inversedBy: string;
184
+ configurable: boolean;
185
+ };
186
+ children: {
187
+ type: string;
188
+ relation: string;
189
+ target: string;
190
+ mappedBy: string;
191
+ configurable: boolean;
192
+ };
173
193
  };
174
194
  };
175
195
  };
@@ -0,0 +1,7 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ declare const _default: {
3
+ version: string;
4
+ description: string;
5
+ up(strapi: Core.Strapi): Promise<void>;
6
+ };
7
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ export declare const runMigrations: (strapi: Core.Strapi) => Promise<void>;
3
+ export default runMigrations;
@@ -4,9 +4,10 @@ declare const _default: ({ strapi }: {
4
4
  }) => {
5
5
  updateConfig(newConfig: Partial<PluginConfig>): Promise<PluginConfig | "Error. Couldn't update config">;
6
6
  getConfig(): Promise<any>;
7
- getRoutes(): Promise<any>;
8
- updateRoute(documentId: string, data: any): Promise<any>;
7
+ getRoute(documentId: string): Promise<any>;
8
+ getAllRoutes(): Promise<any>;
9
9
  getRelatedRoute(documentId: string): Promise<any>;
10
+ getProhibitedRouteIds(documentId: string | undefined): Promise<string[]>;
10
11
  getNavigation(documentId?: string, variant?: StructuredNavigationVariant | "namesOnly"): Promise<any>;
11
12
  createNavigation(name: string, visible: boolean): Promise<any>;
12
13
  updateNavigation(documentId: string, data: NavigationInput): Promise<any>;
@@ -4,9 +4,10 @@ declare const _default: {
4
4
  }) => {
5
5
  updateConfig(newConfig: Partial<import("../../../types").PluginConfig>): Promise<import("../../../types").PluginConfig | "Error. Couldn't update config">;
6
6
  getConfig(): Promise<any>;
7
- getRoutes(): Promise<any>;
8
- updateRoute(documentId: string, data: any): Promise<any>;
7
+ getRoute(documentId: string): Promise<any>;
8
+ getAllRoutes(): Promise<any>;
9
9
  getRelatedRoute(documentId: string): Promise<any>;
10
+ getProhibitedRouteIds(documentId: string): Promise<string[]>;
10
11
  getNavigation(documentId?: string, variant?: import("../../../types").StructuredNavigationVariant | "namesOnly"): Promise<any>;
11
12
  createNavigation(name: string, visible: boolean): Promise<any>;
12
13
  updateNavigation(documentId: string, data: import("../../../types").NavigationInput): Promise<any>;
@@ -0,0 +1 @@
1
+ export default function buildCanonicalPath(slug: string, parentDocumentId: string): Promise<string>;
@@ -0,0 +1,5 @@
1
+ export default function buildNavigationPath({ slug, routeDocumentId, calculatedParent, }: {
2
+ slug: string;
3
+ routeDocumentId?: string;
4
+ calculatedParent: string | null;
5
+ }): Promise<string>;
@@ -0,0 +1 @@
1
+ export default function cascadeCanonicalPathUpdates(parentRouteId: string, newParentCanonicalPath: string): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function getNonInternalRouteIds(): Promise<string[]>;
@@ -0,0 +1 @@
1
+ export default function getRouteAncestors(routeId: string): Promise<string[]>;
@@ -0,0 +1 @@
1
+ export default function getRouteDescendants(routeId: string): Promise<string[]>;
@@ -2,10 +2,18 @@ import duplicateCheck from "./duplicateCheck";
2
2
  import { createNavItem, updateNavItem, deleteNavItem } from "./navItemHandler";
3
3
  import { getAdminService, getClientService } from "./pluginHelpers";
4
4
  import reduceDepthOfOrphanedItems from "./reduceDepthOfOrphanedItems";
5
- import { createExternalRoute } from "./routeHandler";
5
+ import { createExternalRoute, updateRoute, deleteRoute } from "./routeHandler";
6
6
  import buildStructuredNavigation from './buildStructuredNavigation';
7
7
  import extractRouteAndItems from './extractRouteAndItems';
8
8
  import getFullPopulateObject from './populateDeep';
9
9
  import cleanRootKeys from './cleanRootKeys';
10
10
  import removeWaFields from './removeWaFields';
11
- export { duplicateCheck, createNavItem, updateNavItem, deleteNavItem, getAdminService, getClientService, reduceDepthOfOrphanedItems, createExternalRoute, buildStructuredNavigation, extractRouteAndItems, getFullPopulateObject, cleanRootKeys, removeWaFields, };
11
+ import buildCanonicalPath from './buildCanonicalPath';
12
+ import cascadeCanonicalPathUpdates from "./cascadeCanonicalPathUpdates";
13
+ import getRouteAncestors from "./getRouteAncestors";
14
+ import getRouteDescendants from "./getRouteDescendants";
15
+ import getNonInternalRouteIds from "./getNonInternalRouteIds";
16
+ import validateRouteDependencies from "./validateRouteDependencies";
17
+ import buildNavigationPath from "./buildNavigationPath";
18
+ import { handleItemDeletion, handleItemUpdate, calculateParentAndOrder } from "./navigationItemStructure";
19
+ export { duplicateCheck, createNavItem, updateNavItem, deleteNavItem, getAdminService, getClientService, reduceDepthOfOrphanedItems, createExternalRoute, updateRoute, deleteRoute, buildStructuredNavigation, extractRouteAndItems, getFullPopulateObject, cleanRootKeys, removeWaFields, buildCanonicalPath, cascadeCanonicalPathUpdates, getRouteAncestors, getRouteDescendants, getNonInternalRouteIds, validateRouteDependencies, buildNavigationPath, handleItemDeletion, handleItemUpdate, calculateParentAndOrder, };
@@ -0,0 +1,27 @@
1
+ import type { NestedNavItem } from "../../../types";
2
+ export declare function handleItemDeletion(navigationItems: NestedNavItem[]): Promise<{
3
+ success: boolean;
4
+ items: NestedNavItem[];
5
+ errors: string[];
6
+ }>;
7
+ export declare function handleItemUpdate({ item, calculatedParent, calculatedOrder, navigationId, newNavItemsMap, }: {
8
+ item: NestedNavItem;
9
+ calculatedParent: string | null;
10
+ calculatedOrder: number;
11
+ navigationId: string;
12
+ newNavItemsMap: Map<string, NestedNavItem>;
13
+ }): Promise<{
14
+ success: boolean;
15
+ errors: string[];
16
+ }>;
17
+ export declare function calculateParentAndOrder({ navigationItems, item, index, parentIds, groupIndices, newNavItemsMap }: {
18
+ navigationItems: NestedNavItem[];
19
+ item: NestedNavItem;
20
+ index: number;
21
+ parentIds: string[];
22
+ groupIndices: number[];
23
+ newNavItemsMap: Map<string, NestedNavItem>;
24
+ }): {
25
+ calculatedParent: string;
26
+ calculatedOrder: number;
27
+ };
@@ -1,3 +1,5 @@
1
- import type { RouteSettings } from "../../../types";
1
+ import type { Route, RouteSettings } from "../../../types";
2
2
  declare function createExternalRoute(data: RouteSettings): Promise<import("@strapi/types/dist/modules/documents").AnyDocument>;
3
- export { createExternalRoute };
3
+ declare function updateRoute(documentId: string, data: RouteSettings): Promise<Route>;
4
+ declare function deleteRoute(documentId: string): Promise<boolean>;
5
+ export { createExternalRoute, updateRoute, deleteRoute, };
@@ -0,0 +1,4 @@
1
+ export default function validateRouteDependencies({ routeId, newParentId }: {
2
+ routeId?: string | null;
3
+ newParentId: string;
4
+ }): Promise<boolean>;
@@ -1,5 +1,4 @@
1
1
  export * from './navigation';
2
2
  export * from './route';
3
- export * from './modal';
4
3
  export * from './api';
5
4
  export * from './strapi';
@@ -49,17 +49,18 @@ export type NestedNavItem = {
49
49
  status: 'published' | 'draft' | 'modified' | null;
50
50
  depth?: number;
51
51
  order: number;
52
- deleted?: boolean;
53
- update?: {
54
- title?: string;
55
- slug?: string;
56
- path?: string;
57
- isOverride?: boolean;
58
- };
59
- isNew?: {
60
- route: string | null;
61
- parent: string | null;
62
- navigation: string | null;
63
- };
52
+ clientModifications?: ClientModifications;
53
+ initialClientModifications?: ClientModifications;
54
+ };
55
+ export type ClientModifications = {
56
+ type: 'create' | 'update' | 'delete';
57
+ title?: string;
58
+ slug?: string;
59
+ path?: string;
60
+ isOverride?: boolean;
61
+ route?: string | null;
62
+ parent?: string | null;
63
+ navigation?: string | null;
64
+ autoGenerated?: boolean;
64
65
  };
65
66
  export type StructuredNavigationVariant = 'nested' | 'flat';
@@ -5,15 +5,18 @@ export type Route = {
5
5
  slug: string;
6
6
  path: string;
7
7
  uidPath: string;
8
+ canonicalPath: string;
8
9
  relatedContentType: string;
9
10
  relatedId: number;
10
11
  relatedDocumentId: string;
11
- type: 'internal' | 'external' | 'wrapper';
12
+ type: RouteType;
12
13
  active: boolean;
13
14
  isOverride: boolean;
14
15
  navitem: {
15
16
  id: number;
16
17
  } | null;
18
+ parent?: Route;
19
+ children?: Route[];
17
20
  createdAt: string;
18
21
  updatedAt: string;
19
22
  };
@@ -28,5 +31,7 @@ export type RouteSettings = {
28
31
  isOverride?: boolean;
29
32
  active?: boolean;
30
33
  navitem?: number;
31
- type?: 'internal' | 'external' | 'wrapper';
34
+ type?: RouteType;
35
+ parent?: string;
32
36
  };
37
+ export type RouteType = 'internal' | 'external' | 'wrapper';
@@ -23,14 +23,13 @@ export type ConfigContentType = {
23
23
  uid: string;
24
24
  label: string;
25
25
  default: string;
26
- pattern?: string;
27
26
  };
28
27
  export type PluginConfig = {
29
28
  selectedContentTypes: ConfigContentType[];
30
29
  navigation: {
31
30
  maxDepth: number;
32
31
  };
33
- migrationVersion: string;
32
+ migrationVersion?: string;
34
33
  };
35
34
  export type Entity = {
36
35
  id: number;
@@ -1,5 +1,4 @@
1
- import getPath from './getPath';
2
1
  import transformToUrl from './transformToUrl';
3
2
  import { waNavigation, waNavItem, waRoute } from './pluginConstants';
4
3
  import { PLUGIN_ID, PLUGIN_NAME, PLUGIN_VERSION } from './pluginId';
5
- export { getPath, transformToUrl, waNavigation, waNavItem, waRoute, PLUGIN_ID, PLUGIN_NAME, PLUGIN_VERSION };
4
+ export { transformToUrl, waNavigation, waNavItem, waRoute, PLUGIN_ID, PLUGIN_NAME, PLUGIN_VERSION };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.9.5",
2
+ "version": "0.10.0",
3
3
  "keywords": [],
4
4
  "type": "commonjs",
5
5
  "exports": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"FullLoader-Cmsf8xS6.js","sources":["../../admin/src/components/UI/Center.tsx","../../admin/src/components/UI/FullLoader.tsx"],"sourcesContent":["import { Flex } from '@strapi/design-system';\n\nexport default function Center({ height = 400, children }: { height?: number, children: React.ReactNode }) {\n\n return (\n <Flex direction=\"column\" minHeight={`${height}px`} justifyContent=\"center\">\n {children}\n </Flex>\n )\n}","import { Loader, Box } from '@strapi/design-system';\nimport Center from './Center';\n\nexport default function FullLoader({ height }: { height?: number }) {\n return (\n <Center height={height}>\n <Loader>Loading...</Loader>\n </Center>\n );\n}"],"names":["jsx","Flex","Loader"],"mappings":";;;AAEA,SAAwB,OAAO,EAAE,SAAS,KAAK,YAA4D;AAGvG,SAAAA,2BAAA,IAACC,aAAK,MAAA,EAAA,WAAU,UAAS,WAAW,GAAG,MAAM,MAAM,gBAAe,UAC/D,SACH,CAAA;AAEJ;ACNwB,SAAA,WAAW,EAAE,UAA+B;AAClE,wCACG,QAAO,EAAA,QACN,UAACD,+BAAAE,aAAAA,QAAA,EAAO,wBAAU,EACpB,CAAA;AAEJ;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FullLoader-CrPED_dY.mjs","sources":["../../admin/src/components/UI/Center.tsx","../../admin/src/components/UI/FullLoader.tsx"],"sourcesContent":["import { Flex } from '@strapi/design-system';\n\nexport default function Center({ height = 400, children }: { height?: number, children: React.ReactNode }) {\n\n return (\n <Flex direction=\"column\" minHeight={`${height}px`} justifyContent=\"center\">\n {children}\n </Flex>\n )\n}","import { Loader, Box } from '@strapi/design-system';\nimport Center from './Center';\n\nexport default function FullLoader({ height }: { height?: number }) {\n return (\n <Center height={height}>\n <Loader>Loading...</Loader>\n </Center>\n );\n}"],"names":[],"mappings":";;AAEA,SAAwB,OAAO,EAAE,SAAS,KAAK,YAA4D;AAGvG,SAAA,oBAAC,MAAK,EAAA,WAAU,UAAS,WAAW,GAAG,MAAM,MAAM,gBAAe,UAC/D,SACH,CAAA;AAEJ;ACNwB,SAAA,WAAW,EAAE,UAA+B;AAClE,6BACG,QAAO,EAAA,QACN,UAAC,oBAAA,QAAA,EAAO,wBAAU,EACpB,CAAA;AAEJ;"}
@@ -1,68 +0,0 @@
1
- "use strict";
2
- const jsxRuntime = require("react/jsx-runtime");
3
- const designSystem = require("@strapi/design-system");
4
- const admin = require("@strapi/strapi/admin");
5
- const index = require("./index-R7qsEu2N.js");
6
- const reactIntl = require("react-intl");
7
- const icons = require("@strapi/icons");
8
- function PageWrapper({
9
- save,
10
- isSaving,
11
- disabledCondition,
12
- subtitle,
13
- children
14
- }) {
15
- const { formatMessage } = reactIntl.useIntl();
16
- return /* @__PURE__ */ jsxRuntime.jsxs(admin.Page.Main, { children: [
17
- /* @__PURE__ */ jsxRuntime.jsx(
18
- admin.Layouts.Header,
19
- {
20
- title: index.PLUGIN_NAME,
21
- subtitle,
22
- primaryAction: disabledCondition !== void 0 && save && /* @__PURE__ */ jsxRuntime.jsx(
23
- designSystem.Button,
24
- {
25
- type: "submit",
26
- onClick: () => save(),
27
- loading: isSaving,
28
- disabled: disabledCondition || isSaving,
29
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}),
30
- children: formatMessage({
31
- id: index.getTranslation("save"),
32
- defaultMessage: "Save"
33
- })
34
- }
35
- )
36
- }
37
- ),
38
- /* @__PURE__ */ jsxRuntime.jsx(admin.Layouts.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children }) })
39
- ] });
40
- }
41
- function ContentBox({ title, children }) {
42
- return /* @__PURE__ */ jsxRuntime.jsxs(
43
- designSystem.Flex,
44
- {
45
- background: "neutral0",
46
- hasRadius: true,
47
- paddingTop: 6,
48
- paddingBottom: 6,
49
- paddingLeft: 7,
50
- paddingRight: 7,
51
- shadow: "tableShadow",
52
- direction: "column",
53
- alignItems: "stretch",
54
- gap: 4,
55
- children: [
56
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", as: "h3", children: title }),
57
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { children })
58
- ]
59
- }
60
- );
61
- }
62
- function SettingTitle({ children }) {
63
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children });
64
- }
65
- exports.ContentBox = ContentBox;
66
- exports.PageWrapper = PageWrapper;
67
- exports.SettingTitle = SettingTitle;
68
- //# sourceMappingURL=SettingTitle-ByAhjihc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingTitle-ByAhjihc.js","sources":["../../admin/src/pages/Settings/PageWrapper.tsx","../../admin/src/pages/Settings/ContentBox.tsx","../../admin/src/pages/Settings/SettingTitle.tsx"],"sourcesContent":["import { Button, Flex } from '@strapi/design-system';\nimport { Page, Layouts} from '@strapi/strapi/admin'\nimport { PLUGIN_NAME } from '../../../../utils/pluginId';\nimport { getTranslation } from '../../utils';\nimport { useIntl } from 'react-intl';\nimport { Check } from '@strapi/icons';\n\nexport default function PageWrapper({ \n save, \n isSaving,\n disabledCondition,\n subtitle,\n children\n}: {\n save?: () => void, \n isSaving: boolean,\n disabledCondition: boolean,\n subtitle: string,\n children: React.ReactNode \n}) {\n\n const { formatMessage } = useIntl();\n \n return (\n <Page.Main>\n <Layouts.Header\n title={PLUGIN_NAME}\n subtitle={subtitle}\n primaryAction={ disabledCondition !== undefined && save &&\n <Button\n type=\"submit\"\n onClick={() => save()}\n loading={isSaving}\n disabled={disabledCondition || isSaving}\n startIcon={<Check />}\n >\n {/* <Check /> */}\n {formatMessage({\n id: getTranslation('save'),\n defaultMessage: 'Save',\n })}\n </Button>\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {children}\n </Flex>\n </Layouts.Content>\n </Page.Main>\n )\n}","import { Typography, Flex, Box } from '@strapi/design-system';\n\nexport default function ContentBox({ title, children }: { title: string, children: React.ReactNode }) {\n return <Flex\n background='neutral0'\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"tableShadow\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n >\n <Typography variant=\"delta\" as=\"h3\">\n {title}\n </Typography>\n <Box>\n {children}\n </Box>\n </Flex>\n}","import { Typography } from '@strapi/design-system'\n\nexport default function SettingTitle({ children }: { children: React.ReactNode }) {\n return (\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {children}\n </Typography>\n )\n}"],"names":["useIntl","jsxs","Page","jsx","Layouts","PLUGIN_NAME","Button","Check","getTranslation","Flex","Typography","Box"],"mappings":";;;;;;;AAOA,SAAwB,YAAY;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMG;AAEK,QAAA,EAAE,cAAc,IAAIA,kBAAQ;AAGhC,SAAAC,gCAACC,MAAAA,KAAK,MAAL,EACC,UAAA;AAAA,IAAAC,2BAAA;AAAA,MAACC,MAAAA,QAAQ;AAAA,MAAR;AAAA,QACC,OAAOC,MAAA;AAAA,QACP;AAAA,QACA,eAAgB,sBAAsB,UAAa,QACjDF,2BAAA;AAAA,UAACG,aAAA;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAS,MAAM,KAAK;AAAA,YACpB,SAAS;AAAA,YACT,UAAU,qBAAqB;AAAA,YAC/B,0CAAYC,MAAM,OAAA,EAAA;AAAA,YAGjB,UAAc,cAAA;AAAA,cACb,IAAIC,qBAAe,MAAM;AAAA,cACzB,gBAAgB;AAAA,YACjB,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAEJ;AAAA,IACCL,2BAAA,IAAAC,MAAA,QAAQ,SAAR,EACC,UAACD,2BAAAA,IAAAM,aAAAA,MAAA,EAAK,WAAU,UAAS,YAAW,WAAU,KAAK,GAChD,UACH,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;ACjDA,SAAwB,WAAW,EAAE,OAAO,YAA0D;AAC7F,SAAAR,2BAAA;AAAA,IAACQ,aAAA;AAAA,IAAA;AAAA,MACN,YAAW;AAAA,MACX,WAAS;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd,QAAO;AAAA,MACP,WAAU;AAAA,MACV,YAAW;AAAA,MACX,KAAK;AAAA,MAEL,UAAA;AAAA,QAAAN,+BAACO,aAAAA,YAAW,EAAA,SAAQ,SAAQ,IAAG,MAC5B,UACH,OAAA;AAAA,QACAP,+BAACQ,aAAAA,OACE,SACH,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AACF;ACpBwB,SAAA,aAAa,EAAE,YAA2C;AAChF,wCACGD,aAAW,YAAA,EAAA,SAAQ,SAAQ,WAAU,cACnC,UACH;AAEJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingTitle-CiMKrd_1.mjs","sources":["../../admin/src/pages/Settings/PageWrapper.tsx","../../admin/src/pages/Settings/ContentBox.tsx","../../admin/src/pages/Settings/SettingTitle.tsx"],"sourcesContent":["import { Button, Flex } from '@strapi/design-system';\nimport { Page, Layouts} from '@strapi/strapi/admin'\nimport { PLUGIN_NAME } from '../../../../utils/pluginId';\nimport { getTranslation } from '../../utils';\nimport { useIntl } from 'react-intl';\nimport { Check } from '@strapi/icons';\n\nexport default function PageWrapper({ \n save, \n isSaving,\n disabledCondition,\n subtitle,\n children\n}: {\n save?: () => void, \n isSaving: boolean,\n disabledCondition: boolean,\n subtitle: string,\n children: React.ReactNode \n}) {\n\n const { formatMessage } = useIntl();\n \n return (\n <Page.Main>\n <Layouts.Header\n title={PLUGIN_NAME}\n subtitle={subtitle}\n primaryAction={ disabledCondition !== undefined && save &&\n <Button\n type=\"submit\"\n onClick={() => save()}\n loading={isSaving}\n disabled={disabledCondition || isSaving}\n startIcon={<Check />}\n >\n {/* <Check /> */}\n {formatMessage({\n id: getTranslation('save'),\n defaultMessage: 'Save',\n })}\n </Button>\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {children}\n </Flex>\n </Layouts.Content>\n </Page.Main>\n )\n}","import { Typography, Flex, Box } from '@strapi/design-system';\n\nexport default function ContentBox({ title, children }: { title: string, children: React.ReactNode }) {\n return <Flex\n background='neutral0'\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"tableShadow\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n >\n <Typography variant=\"delta\" as=\"h3\">\n {title}\n </Typography>\n <Box>\n {children}\n </Box>\n </Flex>\n}","import { Typography } from '@strapi/design-system'\n\nexport default function SettingTitle({ children }: { children: React.ReactNode }) {\n return (\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {children}\n </Typography>\n )\n}"],"names":[],"mappings":";;;;;;AAOA,SAAwB,YAAY;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMG;AAEK,QAAA,EAAE,cAAc,IAAI,QAAQ;AAGhC,SAAA,qBAAC,KAAK,MAAL,EACC,UAAA;AAAA,IAAA;AAAA,MAAC,QAAQ;AAAA,MAAR;AAAA,QACC,OAAO;AAAA,QACP;AAAA,QACA,eAAgB,sBAAsB,UAAa,QACjD;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAS,MAAM,KAAK;AAAA,YACpB,SAAS;AAAA,YACT,UAAU,qBAAqB;AAAA,YAC/B,+BAAY,OAAM,EAAA;AAAA,YAGjB,UAAc,cAAA;AAAA,cACb,IAAI,eAAe,MAAM;AAAA,cACzB,gBAAgB;AAAA,YACjB,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAEJ;AAAA,IACC,oBAAA,QAAQ,SAAR,EACC,UAAC,oBAAA,MAAA,EAAK,WAAU,UAAS,YAAW,WAAU,KAAK,GAChD,UACH,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;ACjDA,SAAwB,WAAW,EAAE,OAAO,YAA0D;AAC7F,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACN,YAAW;AAAA,MACX,WAAS;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MACb,cAAc;AAAA,MACd,QAAO;AAAA,MACP,WAAU;AAAA,MACV,YAAW;AAAA,MACX,KAAK;AAAA,MAEL,UAAA;AAAA,QAAA,oBAAC,YAAW,EAAA,SAAQ,SAAQ,IAAG,MAC5B,UACH,OAAA;AAAA,QACA,oBAAC,OACE,SACH,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AACF;ACpBwB,SAAA,aAAa,EAAE,YAA2C;AAChF,6BACG,YAAW,EAAA,SAAQ,SAAQ,WAAU,cACnC,UACH;AAEJ;"}
@@ -1,68 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { Button, Flex, Typography, Box } from "@strapi/design-system";
3
- import { Page, Layouts } from "@strapi/strapi/admin";
4
- import { f as PLUGIN_NAME, g as getTranslation } from "./index-DDN4T6c7.mjs";
5
- import { useIntl } from "react-intl";
6
- import { Check } from "@strapi/icons";
7
- function PageWrapper({
8
- save,
9
- isSaving,
10
- disabledCondition,
11
- subtitle,
12
- children
13
- }) {
14
- const { formatMessage } = useIntl();
15
- return /* @__PURE__ */ jsxs(Page.Main, { children: [
16
- /* @__PURE__ */ jsx(
17
- Layouts.Header,
18
- {
19
- title: PLUGIN_NAME,
20
- subtitle,
21
- primaryAction: disabledCondition !== void 0 && save && /* @__PURE__ */ jsx(
22
- Button,
23
- {
24
- type: "submit",
25
- onClick: () => save(),
26
- loading: isSaving,
27
- disabled: disabledCondition || isSaving,
28
- startIcon: /* @__PURE__ */ jsx(Check, {}),
29
- children: formatMessage({
30
- id: getTranslation("save"),
31
- defaultMessage: "Save"
32
- })
33
- }
34
- )
35
- }
36
- ),
37
- /* @__PURE__ */ jsx(Layouts.Content, { children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 6, children }) })
38
- ] });
39
- }
40
- function ContentBox({ title, children }) {
41
- return /* @__PURE__ */ jsxs(
42
- Flex,
43
- {
44
- background: "neutral0",
45
- hasRadius: true,
46
- paddingTop: 6,
47
- paddingBottom: 6,
48
- paddingLeft: 7,
49
- paddingRight: 7,
50
- shadow: "tableShadow",
51
- direction: "column",
52
- alignItems: "stretch",
53
- gap: 4,
54
- children: [
55
- /* @__PURE__ */ jsx(Typography, { variant: "delta", as: "h3", children: title }),
56
- /* @__PURE__ */ jsx(Box, { children })
57
- ]
58
- }
59
- );
60
- }
61
- function SettingTitle({ children }) {
62
- return /* @__PURE__ */ jsx(Typography, { variant: "sigma", textColor: "neutral600", children });
63
- }
64
- export {
65
- ContentBox as C,
66
- PageWrapper as P,
67
- SettingTitle as S
68
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"de-C-uxto84.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"de-CGXL_3o_.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"en-B1CHnIH7.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"en-DWEd5BXK.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}