strapi-plugin-navigation 2.0.11 → 2.1.0-beta.1

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 (268) hide show
  1. package/README.md +254 -41
  2. package/admin/src/components/Alert/styles.d.ts +2 -0
  3. package/admin/src/components/Alert/styles.js +14 -0
  4. package/admin/src/components/CollapseButton/index.d.ts +7 -0
  5. package/admin/src/components/CollapseButton/index.js +21 -22
  6. package/admin/src/components/ConfirmationDialog/index.d.ts +28 -0
  7. package/admin/src/components/ConfirmationDialog/index.js +32 -54
  8. package/admin/src/components/EmptyView/index.d.ts +3 -0
  9. package/admin/src/components/EmptyView/index.js +9 -7
  10. package/admin/src/components/Item/ItemCardBadge/index.d.ts +3 -0
  11. package/admin/src/components/Item/ItemCardBadge/index.js +11 -7
  12. package/admin/src/components/Item/ItemCardHeader/Wrapper.d.ts +3 -0
  13. package/admin/src/components/Item/ItemCardHeader/Wrapper.js +10 -6
  14. package/admin/src/components/Item/ItemCardHeader/index.d.ts +12 -0
  15. package/admin/src/components/Item/ItemCardHeader/index.js +34 -53
  16. package/admin/src/components/Item/ItemCardRemovedOverlay/index.d.ts +2 -0
  17. package/admin/src/components/Item/ItemCardRemovedOverlay/index.js +10 -4
  18. package/admin/src/components/Item/Wrapper.d.ts +3 -0
  19. package/admin/src/components/Item/Wrapper.js +10 -6
  20. package/admin/src/components/Item/index.d.ts +31 -0
  21. package/admin/src/components/Item/index.js +169 -242
  22. package/admin/src/components/NavigationItemList/Wrapper.d.ts +3 -0
  23. package/admin/src/components/NavigationItemList/Wrapper.js +9 -5
  24. package/admin/src/components/NavigationItemList/index.d.ts +35 -0
  25. package/admin/src/components/NavigationItemList/index.js +28 -66
  26. package/admin/src/components/RestartAlert/index.d.ts +3 -0
  27. package/admin/src/components/RestartAlert/index.js +10 -5
  28. package/admin/src/components/Search/index.d.ts +6 -0
  29. package/admin/src/components/Search/index.js +57 -46
  30. package/admin/src/components/icons/navigation.d.ts +6 -0
  31. package/admin/src/components/icons/navigation.js +11 -13
  32. package/admin/src/contexts/DataManagerContext.d.ts +3 -0
  33. package/admin/src/contexts/DataManagerContext.js +6 -5
  34. package/admin/src/hooks/useAllContentTypes.d.ts +6 -0
  35. package/admin/src/hooks/useAllContentTypes.js +10 -11
  36. package/admin/src/hooks/useDataManager.d.ts +3 -0
  37. package/admin/src/hooks/useDataManager.js +10 -6
  38. package/admin/src/hooks/useNavigationConfig.d.ts +10 -0
  39. package/admin/src/hooks/useNavigationConfig.js +52 -56
  40. package/admin/src/index.d.ts +14 -0
  41. package/admin/src/index.js +92 -76
  42. package/admin/src/pages/App/index.d.ts +3 -0
  43. package/admin/src/pages/App/index.js +43 -31
  44. package/admin/src/pages/DataManagerProvider/actions.d.ts +19 -0
  45. package/admin/src/pages/DataManagerProvider/actions.js +22 -26
  46. package/admin/src/pages/DataManagerProvider/index.d.ts +12 -0
  47. package/admin/src/pages/DataManagerProvider/index.js +280 -300
  48. package/admin/src/pages/DataManagerProvider/init.d.ts +3 -0
  49. package/admin/src/pages/DataManagerProvider/init.js +5 -3
  50. package/admin/src/pages/DataManagerProvider/reducer.d.ts +19 -0
  51. package/admin/src/pages/DataManagerProvider/reducer.js +119 -121
  52. package/admin/src/pages/SettingsPage/components/DisableI18nModal/index.d.ts +24 -0
  53. package/admin/src/pages/SettingsPage/components/DisableI18nModal/index.js +88 -0
  54. package/admin/src/pages/SettingsPage/index.d.ts +3 -0
  55. package/admin/src/pages/SettingsPage/index.js +242 -317
  56. package/admin/src/pages/SettingsPage/utils/functions.d.ts +5 -0
  57. package/admin/src/pages/SettingsPage/utils/functions.js +3 -8
  58. package/admin/src/pages/View/components/I18nCopyNavigationItems/index.d.ts +20 -0
  59. package/admin/src/pages/View/components/I18nCopyNavigationItems/index.js +60 -0
  60. package/admin/src/pages/View/components/NavigationContentHeader/index.d.ts +6 -0
  61. package/admin/src/pages/View/components/NavigationContentHeader/index.js +13 -17
  62. package/admin/src/pages/View/components/NavigationHeader/index.d.ts +12 -0
  63. package/admin/src/pages/View/components/NavigationHeader/index.js +74 -65
  64. package/admin/src/pages/View/components/NavigationHeader/styles.d.ts +2 -0
  65. package/admin/src/pages/View/components/NavigationHeader/styles.js +10 -5
  66. package/admin/src/pages/View/components/NavigationItemForm/index.d.ts +51 -0
  67. package/admin/src/pages/View/components/NavigationItemForm/index.js +322 -454
  68. package/admin/src/pages/View/components/NavigationItemForm/utils/form.d.ts +45 -0
  69. package/admin/src/pages/View/components/NavigationItemForm/utils/form.js +81 -52
  70. package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupFooter.d.ts +23 -0
  71. package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupFooter.js +24 -34
  72. package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupHeader.d.ts +4 -0
  73. package/admin/src/pages/View/components/NavigationItemPopup/NavigationItemPopupHeader.js +16 -16
  74. package/admin/src/pages/View/components/NavigationItemPopup/index.d.ts +27 -0
  75. package/admin/src/pages/View/components/NavigationItemPopup/index.js +59 -108
  76. package/admin/src/pages/View/index.d.ts +4 -0
  77. package/admin/src/pages/View/index.js +229 -304
  78. package/admin/src/pages/View/utils/enums.d.ts +9 -0
  79. package/admin/src/pages/View/utils/enums.js +11 -8
  80. package/admin/src/pages/View/utils/form.d.ts +2 -0
  81. package/admin/src/pages/View/utils/form.js +15 -12
  82. package/admin/src/pages/View/utils/index.d.ts +2 -0
  83. package/admin/src/pages/View/utils/index.js +11 -3
  84. package/admin/src/pages/View/utils/parsers.d.ts +44 -0
  85. package/admin/src/pages/View/utils/parsers.js +231 -277
  86. package/admin/src/permissions.d.ts +12 -0
  87. package/admin/src/permissions.js +11 -7
  88. package/admin/src/pluginId.d.ts +3 -0
  89. package/admin/src/pluginId.js +2 -2
  90. package/admin/src/translations/en.json +126 -102
  91. package/admin/src/translations/fr.json +44 -44
  92. package/admin/src/translations/index.d.ts +12 -0
  93. package/admin/src/translations/index.js +17 -11
  94. package/admin/src/utils/api.d.ts +8 -0
  95. package/admin/src/utils/api.js +54 -50
  96. package/admin/src/utils/getTrad.d.ts +3 -0
  97. package/admin/src/utils/getTrad.js +9 -5
  98. package/admin/src/utils/index.d.ts +5 -0
  99. package/admin/src/utils/index.js +21 -15
  100. package/package.json +19 -17
  101. package/permissions.d.ts +9 -0
  102. package/permissions.js +5 -4
  103. package/server/bootstrap/index.d.ts +4 -0
  104. package/server/bootstrap/index.js +41 -0
  105. package/server/config/index.d.ts +5 -0
  106. package/server/config/index.js +33 -9
  107. package/server/config/setupStrategy.d.ts +3 -0
  108. package/server/config/setupStrategy.js +38 -0
  109. package/server/content-types/audience/index.d.ts +27 -0
  110. package/server/content-types/audience/index.js +9 -8
  111. package/server/content-types/audience/schema.d.ts +25 -0
  112. package/server/content-types/audience/schema.js +26 -0
  113. package/server/content-types/index.d.ts +255 -0
  114. package/server/content-types/index.js +15 -12
  115. package/server/content-types/navigation/index.d.ts +64 -0
  116. package/server/content-types/navigation/index.js +11 -8
  117. package/server/content-types/navigation/lifecycle.d.ts +9 -0
  118. package/server/content-types/navigation/lifecycle.js +8 -12
  119. package/server/content-types/navigation/schema.d.ts +55 -0
  120. package/server/content-types/navigation/schema.js +56 -0
  121. package/server/content-types/navigation-item/index.d.ts +112 -0
  122. package/server/content-types/navigation-item/index.js +11 -8
  123. package/server/content-types/navigation-item/lifecycle.d.ts +16 -0
  124. package/server/content-types/navigation-item/lifecycle.js +28 -32
  125. package/server/content-types/navigation-item/schema.d.ts +97 -0
  126. package/server/content-types/navigation-item/schema.js +102 -0
  127. package/server/content-types/navigations-items-related/index.d.ts +56 -0
  128. package/server/content-types/navigations-items-related/index.js +11 -8
  129. package/server/content-types/navigations-items-related/lifecycle.d.ts +8 -0
  130. package/server/content-types/navigations-items-related/lifecycle.js +20 -17
  131. package/server/content-types/navigations-items-related/schema.d.ts +49 -0
  132. package/server/content-types/navigations-items-related/schema.js +50 -0
  133. package/server/controllers/admin.d.ts +4 -0
  134. package/server/controllers/admin.js +77 -0
  135. package/server/controllers/client.d.ts +4 -0
  136. package/server/controllers/client.js +34 -0
  137. package/server/controllers/index.d.ts +4 -0
  138. package/server/controllers/index.js +12 -6
  139. package/server/destroy.d.ts +3 -0
  140. package/server/destroy.js +5 -0
  141. package/server/graphql/config.d.ts +4 -0
  142. package/server/graphql/config.js +28 -0
  143. package/server/graphql/index.d.ts +2 -0
  144. package/server/graphql/index.js +18 -22
  145. package/server/graphql/queries/index.d.ts +3 -0
  146. package/server/graphql/queries/index.js +15 -15
  147. package/server/graphql/queries/render-navigation-child.d.ts +15 -0
  148. package/server/graphql/queries/render-navigation-child.js +24 -15
  149. package/server/graphql/queries/render-navigation.d.ts +23 -0
  150. package/server/graphql/queries/render-navigation.js +29 -15
  151. package/server/graphql/resolvers-config.d.ts +10 -0
  152. package/server/graphql/resolvers-config.js +5 -3
  153. package/server/graphql/setupStrategy.d.ts +3 -0
  154. package/server/graphql/setupStrategy.js +15 -0
  155. package/server/graphql/types/content-types-name-fields.d.ts +6 -0
  156. package/server/graphql/types/content-types-name-fields.js +13 -9
  157. package/server/graphql/types/content-types.d.ts +5 -0
  158. package/server/graphql/types/content-types.js +17 -15
  159. package/server/graphql/types/create-navigation-item.d.ts +5 -0
  160. package/server/graphql/types/create-navigation-item.js +18 -16
  161. package/server/graphql/types/create-navigation-related.d.ts +5 -0
  162. package/server/graphql/types/create-navigation-related.js +9 -7
  163. package/server/graphql/types/create-navigation.d.ts +5 -0
  164. package/server/graphql/types/create-navigation.js +8 -6
  165. package/server/graphql/types/index.d.ts +3 -0
  166. package/server/graphql/types/index.js +15 -13
  167. package/server/graphql/types/navigation-config.d.ts +5 -0
  168. package/server/graphql/types/navigation-config.js +10 -8
  169. package/server/graphql/types/navigation-details.d.ts +5 -0
  170. package/server/graphql/types/navigation-details.js +11 -9
  171. package/server/graphql/types/navigation-item-related-data.d.ts +5 -0
  172. package/server/graphql/types/navigation-item-related-data.js +9 -0
  173. package/server/graphql/types/navigation-item-related.d.ts +7 -0
  174. package/server/graphql/types/navigation-item-related.js +25 -0
  175. package/server/graphql/types/navigation-item.d.ts +5 -0
  176. package/server/graphql/types/navigation-item.js +28 -29
  177. package/server/graphql/types/navigation-render-type.d.ts +5 -0
  178. package/server/graphql/types/navigation-render-type.js +7 -4
  179. package/server/graphql/types/navigation.d.ts +5 -0
  180. package/server/graphql/types/navigation.js +10 -8
  181. package/server/i18n/constant.d.ts +2 -0
  182. package/server/i18n/constant.js +5 -0
  183. package/server/i18n/errors.d.ts +7 -0
  184. package/server/i18n/errors.js +14 -0
  185. package/server/i18n/graphQLEnhancers.d.ts +10 -0
  186. package/server/i18n/graphQLEnhancers.js +9 -0
  187. package/server/i18n/index.d.ts +8 -0
  188. package/server/i18n/index.js +23 -0
  189. package/server/i18n/navigationSetupStrategy.d.ts +3 -0
  190. package/server/i18n/navigationSetupStrategy.js +119 -0
  191. package/server/i18n/serviceEnhancers.d.ts +12 -0
  192. package/server/i18n/serviceEnhancers.js +117 -0
  193. package/server/i18n/types.d.ts +54 -0
  194. package/server/i18n/types.js +3 -0
  195. package/server/i18n/utils.d.ts +12 -0
  196. package/server/i18n/utils.js +29 -0
  197. package/server/index.d.ts +273 -0
  198. package/server/index.js +26 -0
  199. package/server/navigation/index.d.ts +2 -0
  200. package/server/navigation/index.js +18 -0
  201. package/server/navigation/setupStrategy.d.ts +3 -0
  202. package/server/navigation/setupStrategy.js +37 -0
  203. package/server/register/index.d.ts +3 -0
  204. package/server/register/index.js +4 -0
  205. package/server/routes/admin.d.ts +4 -0
  206. package/server/routes/admin.js +72 -61
  207. package/server/routes/client.d.ts +4 -0
  208. package/server/routes/client.js +25 -21
  209. package/server/routes/index.d.ts +6 -0
  210. package/server/routes/index.js +13 -4
  211. package/server/services/admin.d.ts +5 -0
  212. package/server/services/admin.js +183 -0
  213. package/server/services/client.d.ts +5 -0
  214. package/server/services/client.js +249 -0
  215. package/server/services/common.d.ts +5 -0
  216. package/server/services/common.js +313 -0
  217. package/server/services/index.d.ts +7 -0
  218. package/server/services/index.js +14 -6
  219. package/server/utils/constant.d.ts +27 -0
  220. package/server/utils/constant.js +24 -0
  221. package/server/utils/functions.d.ts +138 -0
  222. package/server/utils/functions.js +224 -0
  223. package/server/utils/index.d.ts +3 -0
  224. package/server/utils/index.js +19 -0
  225. package/strapi-admin.d.ts +3 -0
  226. package/strapi-admin.js +8 -1
  227. package/strapi-server.d.ts +273 -0
  228. package/strapi-server.js +6 -17
  229. package/tsconfig.tsbuildinfo +1 -0
  230. package/types/bootstrap.d.ts +13 -0
  231. package/types/bootstrap.js +3 -0
  232. package/types/config.d.ts +21 -0
  233. package/types/config.js +3 -0
  234. package/types/contentTypes.d.ts +85 -0
  235. package/types/contentTypes.js +3 -0
  236. package/types/controllers.d.ts +35 -0
  237. package/types/controllers.js +5 -0
  238. package/types/graphQL.d.ts +3 -0
  239. package/types/graphQL.js +3 -0
  240. package/types/i18n.d.ts +9 -0
  241. package/types/i18n.js +3 -0
  242. package/types/index.d.ts +9 -0
  243. package/types/index.js +25 -0
  244. package/types/services.d.ts +68 -0
  245. package/types/services.js +3 -0
  246. package/types/utils.d.ts +58 -0
  247. package/types/utils.js +26 -0
  248. package/utils/InvalidParamNavigationError.d.ts +4 -0
  249. package/utils/InvalidParamNavigationError.js +11 -0
  250. package/utils/NavigationError.d.ts +5 -0
  251. package/utils/NavigationError.js +7 -7
  252. package/__mocks__/pages.settings.json +0 -25
  253. package/__mocks__/strapi.js +0 -207
  254. package/jest.config.js +0 -14
  255. package/server/bootstrap.js +0 -52
  256. package/server/config.js +0 -9
  257. package/server/content-types/audience/lifecycle.js +0 -8
  258. package/server/content-types/audience/schema.json +0 -23
  259. package/server/content-types/navigation/schema.json +0 -45
  260. package/server/content-types/navigation-item/schema.json +0 -99
  261. package/server/content-types/navigations-items-related/schema.json +0 -47
  262. package/server/controllers/navigation.js +0 -105
  263. package/server/graphql/types/navigation-related.js +0 -25
  264. package/server/services/__tests__/functions.test.js +0 -48
  265. package/server/services/__tests__/navigation.test.js +0 -91
  266. package/server/services/navigation.js +0 -788
  267. package/server/services/utils/constant.js +0 -21
  268. package/server/services/utils/functions.js +0 -226
@@ -0,0 +1,44 @@
1
+ export function transformItemToRESTPayload(item: any, parent?: undefined, master?: undefined, config?: {}, parentAttachedToMenu?: boolean): {
2
+ id: any;
3
+ parent: undefined;
4
+ master: undefined;
5
+ title: any;
6
+ type: any;
7
+ updated: any;
8
+ removed: any;
9
+ order: any;
10
+ uiRouterKey: any;
11
+ collapsed: any;
12
+ menuAttached: any;
13
+ audience: any;
14
+ path: any;
15
+ externalPath: any;
16
+ related: {
17
+ refId: any;
18
+ ref: any;
19
+ field: any;
20
+ }[] | undefined;
21
+ items: any;
22
+ };
23
+ export function transformToRESTPayload(payload: any, config?: {}): {
24
+ id: any;
25
+ name: any;
26
+ visible: any;
27
+ items: any;
28
+ };
29
+ export function transformItemToViewPayload(payload: any, items: any[] | undefined, config: any): any;
30
+ export function prepareItemToViewPayload(items?: any[], viewParentId?: null, config?: {}): any;
31
+ export function extractRelatedItemLabel(item?: {}, fields?: {}, config?: {}): any;
32
+ export function usedContentTypes(items?: any[]): any;
33
+ export function isRelationCorrect({ related, type }: {
34
+ related: any;
35
+ type: any;
36
+ }): boolean;
37
+ export function isRelationPublished({ relatedRef, relatedType, type, isCollection }: {
38
+ relatedRef: any;
39
+ relatedType?: {} | undefined;
40
+ type: any;
41
+ isCollection: any;
42
+ }): any;
43
+ export function validateNavigationStructure(items?: any[]): any;
44
+ //# sourceMappingURL=parsers.d.ts.map
@@ -1,306 +1,260 @@
1
- import { v4 as uuid, validate as isUuid } from 'uuid'
2
- import { find, get, isArray, isEmpty, isNil, isNumber, isObject, isString, last, omit, orderBy } from 'lodash';
3
- import { navigationItemType } from './enums';
4
-
5
- export const transformItemToRESTPayload = (
6
- item,
7
- parent = undefined,
8
- master = undefined,
9
- config = {},
10
- parentAttachedToMenu = true,
11
- ) => {
12
- const {
13
- id,
14
- title,
15
- type = navigationItemType.INTERNAL,
16
- updated = false,
17
- removed = false,
18
- uiRouterKey,
19
- menuAttached,
20
- path,
21
- externalPath,
22
- related,
23
- relatedType,
24
- order,
25
- audience = [],
26
- items = [],
27
- collapsed,
28
- } = item;
29
- const isExternal = type === navigationItemType.EXTERNAL;
30
- const isWrapper = type === navigationItemType.WRAPPER;
31
- const { contentTypes = [] } = config;
32
-
33
- const parsedRelated = Number(related);
34
- const relatedId = isExternal || isWrapper || isNaN(parsedRelated) ? related?.value || related : parsedRelated;
35
-
36
- const relatedContentType = relatedType ?
37
- find(contentTypes,
38
- ct => ct.uid === relatedType) :
39
- undefined;
40
- const itemAttachedToMenu = menuAttached && parentAttachedToMenu
41
- return {
42
- id,
43
- parent,
44
- master,
45
- title,
46
- type,
47
- updated,
48
- removed,
49
- order,
50
- uiRouterKey,
51
- collapsed,
52
- menuAttached: itemAttachedToMenu,
53
- audience: audience.map((audienceItem) =>
54
- isObject(audienceItem) ? audienceItem.value : audienceItem,
55
- ),
56
- path: isExternal ? undefined : path,
57
- externalPath: isExternal ? externalPath : undefined,
58
- related: isExternal || isWrapper
59
- ? undefined
60
- : [
61
- {
62
- refId: relatedId,
63
- ref: relatedContentType ? relatedContentType.uid : relatedType,
64
- field: relatedContentType && relatedContentType.relatedField ? relatedContentType.relatedField : 'navigation',
65
- },
66
- ],
67
- items: items.map((iItem) => transformItemToRESTPayload(iItem, id, master, config, itemAttachedToMenu)),
68
- };
69
- };
70
-
71
- export const transformToRESTPayload = (payload, config = {}) => {
72
- const { id, name, visible, items } = payload;
73
- return {
74
- id,
75
- name,
76
- visible,
77
- items: items.map((item) => transformItemToRESTPayload(item, null, id, config)),
78
- };
79
- };
80
-
81
- const linkRelations = (item, config) => {
82
- const { contentTypeItems = [], contentTypes = [] } = config;
83
- const { type, related, relatedType, relatedRef, isSingle } = item;
84
- let relation = {
85
- related: undefined,
86
- relatedRef: undefined,
87
- relatedType: undefined,
88
- };
89
-
90
- if (isSingle && relatedType) {
91
- const relatedContentType = contentTypes.find(_ => relatedType === _.uid) || {};
92
- const { singleRelatedItem = {} } = item;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateNavigationStructure = exports.isRelationPublished = exports.isRelationCorrect = exports.usedContentTypes = exports.extractRelatedItemLabel = exports.prepareItemToViewPayload = exports.transformItemToViewPayload = exports.transformToRESTPayload = exports.transformItemToRESTPayload = void 0;
4
+ const uuid_1 = require("uuid");
5
+ const lodash_1 = require("lodash");
6
+ const enums_1 = require("./enums");
7
+ const transformItemToRESTPayload = (item, parent = undefined, master = undefined, config = {}, parentAttachedToMenu = true) => {
8
+ const { id, title, type = enums_1.navigationItemType.INTERNAL, updated = false, removed = false, uiRouterKey, menuAttached, path, externalPath, related, relatedType, order, audience = [], items = [], collapsed, isSingle } = item;
9
+ const isExternal = type === enums_1.navigationItemType.EXTERNAL;
10
+ const isWrapper = type === enums_1.navigationItemType.WRAPPER;
11
+ const { contentTypes = [] } = config;
12
+ const parsedRelated = Number(related);
13
+ const relatedId = isExternal || isWrapper || isNaN(parsedRelated) ? related?.value || related : parsedRelated;
14
+ const relatedContentType = relatedType ?
15
+ (0, lodash_1.find)(contentTypes, ct => ct.uid === relatedType) :
16
+ undefined;
17
+ const itemAttachedToMenu = menuAttached && parentAttachedToMenu;
93
18
  return {
94
- ...item,
95
- relatedType,
96
- relatedRef: {
97
- ...singleRelatedItem,
98
- ...omit(relatedContentType, 'collectionName'),
99
- isSingle,
100
- __collectionUid: relatedContentType.uid,
101
- },
19
+ id,
20
+ parent,
21
+ master,
22
+ title,
23
+ type,
24
+ updated,
25
+ removed,
26
+ order,
27
+ uiRouterKey,
28
+ collapsed,
29
+ menuAttached: itemAttachedToMenu,
30
+ audience: audience.map((audienceItem) => (0, lodash_1.isObject)(audienceItem) ? audienceItem.value : audienceItem),
31
+ path: isExternal ? undefined : path,
32
+ externalPath: isExternal ? externalPath : undefined,
33
+ related: isExternal || isWrapper
34
+ ? undefined
35
+ : [
36
+ {
37
+ refId: isSingle && !relatedId ? 1 : relatedId,
38
+ ref: relatedContentType ? relatedContentType.uid : relatedType,
39
+ field: relatedContentType && relatedContentType.relatedField ? relatedContentType.relatedField : 'navigation',
40
+ },
41
+ ],
42
+ items: items.map((iItem) => (0, exports.transformItemToRESTPayload)(iItem, id, master, config, itemAttachedToMenu)),
102
43
  };
103
- }
104
-
105
- // we got empty array after remove object in relation
106
- // from API we got related as array but on edit it is primitive type
107
- if ((type !== navigationItemType.INTERNAL) || !related || (isObject(related) && isEmpty(related))) {
44
+ };
45
+ exports.transformItemToRESTPayload = transformItemToRESTPayload;
46
+ const transformToRESTPayload = (payload, config = {}) => {
47
+ const { id, name, visible, items } = payload;
108
48
  return {
109
- ...item,
110
- ...relation,
49
+ id,
50
+ name,
51
+ visible,
52
+ items: items.map((item) => (0, exports.transformItemToRESTPayload)(item, null, id, config)),
111
53
  };
112
- }
113
-
114
- const relatedItem = isArray(related) ? last(related) : related;
115
-
116
- const parsedRelated = Number(related);
117
- const relatedId = isNaN(parsedRelated) ? related : parsedRelated;
118
-
119
- const relationNotChanged = relatedRef && relatedItem ? relatedRef.id === relatedItem : false;
120
-
121
- if (relationNotChanged) {
122
- return item;
123
- }
124
-
125
- const shouldFindRelated = (isNumber(related) || isUuid(related) || isString(related)) && !relatedRef;
126
- const shouldBuildRelated = !relatedRef || (relatedRef && (relatedRef.id !== relatedId));
127
-
128
- if (shouldBuildRelated && !shouldFindRelated) {
129
- const relatedContentType = find(contentTypes,
130
- ct => ct.uid === relatedItem.__contentType, {});
131
- const { uid, labelSingular, isSingle } = relatedContentType;
132
- relation = {
133
- related: relatedItem.id,
134
- relatedRef: {
135
- ...relatedItem,
136
- __collectionUid: uid,
137
- isSingle,
138
- labelSingular,
139
- },
140
- relatedType: uid,
141
- };
142
- } else if (shouldFindRelated) {
143
- const relatedRef = find(contentTypeItems, cti => cti.id === relatedId);
144
- const relatedContentType = find(contentTypes, ct => ct.uid === relatedType);
145
- const { uid, contentTypeName, labelSingular, isSingle } = relatedContentType;
146
-
147
- relation = {
148
- relatedRef: {
149
- ...relatedRef,
150
- __collectionUid: uid,
151
- __contentType: contentTypeName,
152
- isSingle,
153
- labelSingular,
154
- },
54
+ };
55
+ exports.transformToRESTPayload = transformToRESTPayload;
56
+ const linkRelations = (item, config) => {
57
+ const { contentTypeItems = [], contentTypes = [] } = config;
58
+ const { type, related, relatedType, relatedRef, isSingle } = item;
59
+ let relation = {
60
+ related: undefined,
61
+ relatedRef: undefined,
62
+ relatedType: undefined,
155
63
  };
156
- } else {
64
+ if (isSingle && relatedType) {
65
+ const relatedContentType = contentTypes.find(_ => relatedType === _.uid) || {};
66
+ const { singleRelatedItem = {} } = item;
67
+ return {
68
+ ...item,
69
+ relatedType,
70
+ relatedRef: {
71
+ ...singleRelatedItem,
72
+ ...(0, lodash_1.omit)(relatedContentType, 'collectionName'),
73
+ isSingle,
74
+ __collectionUid: relatedContentType.uid,
75
+ },
76
+ };
77
+ }
78
+ if ((type !== enums_1.navigationItemType.INTERNAL) || !related || ((0, lodash_1.isObject)(related) && (0, lodash_1.isEmpty)(related))) {
79
+ return {
80
+ ...item,
81
+ ...relation,
82
+ };
83
+ }
84
+ const relatedItem = (0, lodash_1.isArray)(related) ? (0, lodash_1.last)(related) : related;
85
+ const parsedRelated = Number(related);
86
+ const relatedId = isNaN(parsedRelated) ? related : parsedRelated;
87
+ const relationNotChanged = relatedRef && relatedItem ? relatedRef.id === relatedItem : false;
88
+ if (relationNotChanged) {
89
+ return item;
90
+ }
91
+ const shouldFindRelated = ((0, lodash_1.isNumber)(related) || (0, uuid_1.validate)(related) || (0, lodash_1.isString)(related)) && !relatedRef;
92
+ const shouldBuildRelated = !relatedRef || (relatedRef && (relatedRef.id !== relatedId));
93
+ if (shouldBuildRelated && !shouldFindRelated) {
94
+ const relatedContentType = (0, lodash_1.find)(contentTypes, ct => ct.uid === relatedItem.__contentType, {});
95
+ const { uid, labelSingular, isSingle } = relatedContentType;
96
+ relation = {
97
+ related: relatedItem.id,
98
+ relatedRef: {
99
+ ...relatedItem,
100
+ __collectionUid: uid,
101
+ isSingle,
102
+ labelSingular,
103
+ },
104
+ relatedType: uid,
105
+ };
106
+ }
107
+ else if (shouldFindRelated) {
108
+ const relatedRef = (0, lodash_1.find)(contentTypeItems, cti => cti.id === relatedId);
109
+ const relatedContentType = (0, lodash_1.find)(contentTypes, ct => ct.uid === relatedType);
110
+ const { uid, contentTypeName, labelSingular, isSingle } = relatedContentType;
111
+ relation = {
112
+ relatedRef: {
113
+ ...relatedRef,
114
+ __collectionUid: uid,
115
+ __contentType: contentTypeName,
116
+ isSingle,
117
+ labelSingular,
118
+ },
119
+ };
120
+ }
121
+ else {
122
+ return {
123
+ ...item,
124
+ };
125
+ }
157
126
  return {
158
- ...item,
127
+ ...item,
128
+ ...relation,
159
129
  };
160
- }
161
-
162
- return {
163
- ...item,
164
- ...relation,
165
- };
166
130
  };
167
-
168
- const reOrderItems = (items = []) =>
169
- orderBy(items, ['order'], ['asc'])
131
+ const reOrderItems = (items = []) => (0, lodash_1.orderBy)(items, ['order'], ['asc'])
170
132
  .map((item, n) => {
171
- const order = n + 1;
172
- return {
133
+ const order = n + 1;
134
+ return {
173
135
  ...item,
174
136
  order,
175
137
  updated: item.updated || order !== item.order,
176
- };
177
- });
178
-
179
- export const transformItemToViewPayload = (payload, items = [], config) => {
180
- if (!payload.viewParentId) {
181
- if (payload.viewId) {
182
- const updatedRootLevel = items
183
- .map((item) => {
184
- if (item.viewId === payload.viewId) {
185
- return linkRelations({
186
- ...payload,
187
- }, config);
188
- }
189
- return {
190
- ...item,
191
- };
192
- });
193
- return reOrderItems(updatedRootLevel);
194
- }
195
- return [
196
- ...reOrderItems(items),
197
- linkRelations({
198
- ...payload,
199
- order: items.length + 1,
200
- viewId: uuid(),
201
- }, config),
202
- ];
203
- }
204
-
205
- const updatedLevel = items
206
- .map((item) => {
207
- const branchItems = item.items || [];
208
- if (payload.viewParentId === item.viewId) {
209
- if (!payload.viewId) {
210
- return {
211
- ...item,
212
- items: [
213
- ...reOrderItems(branchItems),
214
- linkRelations({
215
- ...payload,
216
- order: branchItems.length + 1,
217
- viewId: uuid(),
218
- }, config),
219
- ],
220
- };
138
+ };
139
+ });
140
+ const transformItemToViewPayload = (payload, items = [], config) => {
141
+ if (!payload.viewParentId) {
142
+ if (payload.viewId) {
143
+ const updatedRootLevel = items
144
+ .map((item) => {
145
+ if (item.viewId === payload.viewId) {
146
+ return linkRelations({
147
+ ...payload,
148
+ }, config);
149
+ }
150
+ return {
151
+ ...item,
152
+ };
153
+ });
154
+ return reOrderItems(updatedRootLevel);
221
155
  }
222
- const updatedBranchItems = branchItems
223
- .map((iItem) => {
224
- if (iItem.viewId === payload.viewId) {
225
- return linkRelations(payload, config);
156
+ return [
157
+ ...reOrderItems(items),
158
+ linkRelations({
159
+ ...payload,
160
+ order: items.length + 1,
161
+ viewId: (0, uuid_1.v4)(),
162
+ }, config),
163
+ ];
164
+ }
165
+ const updatedLevel = items
166
+ .map((item) => {
167
+ const branchItems = item.items || [];
168
+ if (payload.viewParentId === item.viewId) {
169
+ if (!payload.viewId) {
170
+ return {
171
+ ...item,
172
+ items: [
173
+ ...reOrderItems(branchItems),
174
+ linkRelations({
175
+ ...payload,
176
+ order: branchItems.length + 1,
177
+ viewId: (0, uuid_1.v4)(),
178
+ }, config),
179
+ ],
180
+ };
226
181
  }
182
+ const updatedBranchItems = branchItems
183
+ .map((iItem) => {
184
+ if (iItem.viewId === payload.viewId) {
185
+ return linkRelations(payload, config);
186
+ }
187
+ return {
188
+ ...iItem,
189
+ };
190
+ });
227
191
  return {
228
- ...iItem,
192
+ ...item,
193
+ items: reOrderItems(updatedBranchItems),
229
194
  };
230
- });
195
+ }
231
196
  return {
232
- ...item,
233
- items: reOrderItems(updatedBranchItems),
197
+ ...item,
198
+ items: (0, exports.transformItemToViewPayload)(payload, item.items, config),
234
199
  };
235
- }
236
- return {
237
- ...item,
238
- items: transformItemToViewPayload(payload, item.items, config),
239
- };
240
200
  });
241
- return reOrderItems(updatedLevel);
201
+ return reOrderItems(updatedLevel);
242
202
  };
243
-
244
- export const prepareItemToViewPayload = (items = [], viewParentId = null, config = {}) =>
245
- reOrderItems(items.map((item, n) => {
246
- const viewId = uuid();
203
+ exports.transformItemToViewPayload = transformItemToViewPayload;
204
+ const prepareItemToViewPayload = (items = [], viewParentId = null, config = {}) => reOrderItems(items.map((item, n) => {
205
+ const viewId = (0, uuid_1.v4)();
247
206
  return {
248
- ...linkRelations({
249
- viewId,
250
- viewParentId,
251
- ...item,
252
- order: item.order || (n + 1),
253
- updated: item.updated || isNil(item.order),
254
- }, config),
255
- items: prepareItemToViewPayload(item.items, viewId, config),
207
+ ...linkRelations({
208
+ viewId,
209
+ viewParentId,
210
+ ...item,
211
+ order: item.order || (n + 1),
212
+ updated: item.updated || (0, lodash_1.isNil)(item.order),
213
+ }, config),
214
+ items: (0, exports.prepareItemToViewPayload)(item.items, viewId, config),
256
215
  };
257
- }));
258
-
259
- export const extractRelatedItemLabel = (item = {}, fields = {}, config = {}) => {
260
- if (get(item, 'isSingle', false)) {
261
- return get(item, 'labelSingular', '');
262
- }
263
- const { contentTypes = [] } = config;
264
- const { __collectionUid } = item;
265
- const contentType = contentTypes.find(_ => _.uid === __collectionUid)
266
- const { default: defaultFields = [] } = fields;
267
- return get(fields, `${contentType ? contentType.uid : __collectionUid}`, defaultFields).map((_) => item[_]).filter((_) => _)[0] || '';
216
+ }));
217
+ exports.prepareItemToViewPayload = prepareItemToViewPayload;
218
+ const extractRelatedItemLabel = (item = {}, fields = {}, config = {}) => {
219
+ if ((0, lodash_1.get)(item, 'isSingle', false)) {
220
+ return (0, lodash_1.get)(item, 'labelSingular', '');
221
+ }
222
+ const { contentTypes = [] } = config;
223
+ const { __collectionUid } = item;
224
+ const contentType = contentTypes.find(_ => _.uid === __collectionUid);
225
+ const { default: defaultFields = [] } = fields;
226
+ return (0, lodash_1.get)(fields, `${contentType ? contentType.uid : __collectionUid}`, defaultFields).map((_) => item[_]).filter((_) => _)[0] || '';
268
227
  };
269
-
270
- export const usedContentTypes = (items = []) => items.flatMap(
271
- (item) => {
272
- const used = (item.items ? usedContentTypes(item.items) : []);
228
+ exports.extractRelatedItemLabel = extractRelatedItemLabel;
229
+ const usedContentTypes = (items = []) => items.flatMap((item) => {
230
+ const used = (item.items ? (0, exports.usedContentTypes)(item.items) : []);
273
231
  if (item.relatedRef) {
274
- return [item.relatedRef, ...used];
232
+ return [item.relatedRef, ...used];
275
233
  }
276
234
  return used;
277
- },
278
- );
279
-
280
- export const isRelationCorrect = ({ related, type }) => {
281
- const isRelationDefined = !isNil(related);
282
- return type !== navigationItemType.INTERNAL || (type === navigationItemType.INTERNAL && isRelationDefined);
235
+ });
236
+ exports.usedContentTypes = usedContentTypes;
237
+ const isRelationCorrect = ({ related, type }) => {
238
+ const isRelationDefined = !(0, lodash_1.isNil)(related);
239
+ return type !== enums_1.navigationItemType.INTERNAL || (type === enums_1.navigationItemType.INTERNAL && isRelationDefined);
283
240
  };
284
-
285
- export const isRelationPublished = ({ relatedRef, relatedType = {}, type, isCollection }) => {
286
- if (isCollection) {
287
- return relatedType.available || relatedRef.available;
288
- }
289
- if ((type === navigationItemType.INTERNAL)) {
290
- const isHandledByPublshFlow = relatedRef ? 'published_at' in relatedRef : false;
291
- if (isHandledByPublshFlow) {
292
- return get(relatedRef, 'published_at', true);
241
+ exports.isRelationCorrect = isRelationCorrect;
242
+ const isRelationPublished = ({ relatedRef, relatedType = {}, type, isCollection }) => {
243
+ if (isCollection) {
244
+ return relatedType.available || relatedRef.available;
245
+ }
246
+ if ((type === enums_1.navigationItemType.INTERNAL)) {
247
+ const isHandledByPublshFlow = relatedRef ? 'published_at' in relatedRef : false;
248
+ if (isHandledByPublshFlow) {
249
+ return (0, lodash_1.get)(relatedRef, 'published_at', true);
250
+ }
293
251
  }
294
- }
295
- return true;
252
+ return true;
296
253
  };
297
-
298
- export const validateNavigationStructure = (items = []) =>
299
- items.map(item =>
300
- (
301
- item.removed ||
302
- isRelationCorrect({ related: item.related, type: item.type }) ||
303
- (item.isSingle && isRelationCorrect({ related: item.relatedType, type: item.type }))
304
- ) &&
305
- validateNavigationStructure(item.items)
306
- ).filter(item => !item).length === 0;
254
+ exports.isRelationPublished = isRelationPublished;
255
+ const validateNavigationStructure = (items = []) => items.map(item => (item.removed ||
256
+ (0, exports.isRelationCorrect)({ related: item.related, type: item.type }) ||
257
+ (item.isSingle && (0, exports.isRelationCorrect)({ related: item.relatedType, type: item.type }))) &&
258
+ (0, exports.validateNavigationStructure)(item.items)).filter(item => !item).length === 0;
259
+ exports.validateNavigationStructure = validateNavigationStructure;
260
+ //# sourceMappingURL=parsers.js.map
@@ -0,0 +1,12 @@
1
+ export default pluginPermissions;
2
+ declare namespace pluginPermissions {
3
+ const access: {
4
+ action: string;
5
+ subject: null;
6
+ }[];
7
+ const update: {
8
+ action: string;
9
+ subject: null;
10
+ }[];
11
+ }
12
+ //# sourceMappingURL=permissions.d.ts.map
@@ -1,8 +1,12 @@
1
- const permissions = require('./../../permissions');
2
-
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const permissions_1 = __importDefault(require("../../permissions"));
3
7
  const pluginPermissions = {
4
- access: [{ action: permissions.render(permissions.navigation.read), subject: null }],
5
- update: [{ action: permissions.render(permissions.navigation.update), subject: null }],
6
- };
7
-
8
- export default pluginPermissions;
8
+ access: [{ action: permissions_1.default.render(permissions_1.default.navigation.read), subject: null }],
9
+ update: [{ action: permissions_1.default.render(permissions_1.default.navigation.update), subject: null }],
10
+ };
11
+ exports.default = pluginPermissions;
12
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1,3 @@
1
+ export = pluginId;
2
+ declare const pluginId: string;
3
+ //# sourceMappingURL=pluginId.d.ts.map
@@ -1,5 +1,5 @@
1
+ "use strict";
1
2
  const pluginPkg = require('../../package.json');
2
-
3
3
  const pluginId = pluginPkg.name.replace(/^strapi-plugin-/i, '');
4
-
5
4
  module.exports = pluginId;
5
+ //# sourceMappingURL=pluginId.js.map