@strapi/content-manager 5.33.3 → 5.34.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 (164) hide show
  1. package/dist/admin/components/LeftMenu.js +13 -8
  2. package/dist/admin/components/LeftMenu.js.map +1 -1
  3. package/dist/admin/components/LeftMenu.mjs +13 -8
  4. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  5. package/dist/admin/history/components/VersionHeader.js +1 -0
  6. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  7. package/dist/admin/history/components/VersionHeader.mjs +1 -0
  8. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  9. package/dist/admin/pages/EditView/EditViewPage.js +71 -71
  10. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  11. package/dist/admin/pages/EditView/EditViewPage.mjs +73 -73
  12. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  13. package/dist/admin/pages/EditView/components/DocumentActions.js +29 -21
  14. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  15. package/dist/admin/pages/EditView/components/DocumentActions.mjs +30 -22
  16. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  17. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js +23 -1
  18. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -1
  19. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.mjs +23 -1
  20. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.mjs.map +1 -1
  21. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.js +30 -6
  22. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.js.map +1 -1
  23. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.mjs +30 -6
  24. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.mjs.map +1 -1
  25. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js +14 -1
  26. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js.map +1 -1
  27. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.mjs +14 -1
  28. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.mjs.map +1 -1
  29. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +157 -7
  30. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
  31. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +154 -5
  32. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -1
  33. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.js +28 -20
  34. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.js.map +1 -1
  35. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.mjs +25 -17
  36. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.mjs.map +1 -1
  37. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +6 -3
  38. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  39. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +7 -4
  40. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  41. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +12 -12
  42. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +13 -13
  44. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +2 -2
  46. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +1 -1
  48. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/types.js +4 -8
  50. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/types.js.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/types.mjs +4 -7
  52. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/types.mjs.map +1 -1
  53. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +2 -12
  54. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  55. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +2 -12
  56. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +48 -1
  58. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  59. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +49 -2
  60. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  61. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +47 -13
  62. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  63. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +49 -15
  64. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  65. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +1 -0
  66. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  67. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +1 -0
  68. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  69. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +10 -1
  70. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +10 -1
  72. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  73. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +5 -1
  74. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +5 -1
  76. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js +19 -7
  78. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs +19 -7
  80. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs.map +1 -1
  81. package/dist/admin/pages/EditView/components/Header.js +91 -44
  82. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  83. package/dist/admin/pages/EditView/components/Header.mjs +92 -45
  84. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  85. package/dist/admin/pages/EditView/components/InputRenderer.js +6 -2
  86. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  87. package/dist/admin/pages/EditView/components/InputRenderer.mjs +6 -2
  88. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  89. package/dist/admin/pages/EditView/utils/data.js +22 -0
  90. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  91. package/dist/admin/pages/EditView/utils/data.mjs +22 -1
  92. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  93. package/dist/admin/pages/ListView/ListViewPage.js +6 -4
  94. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  95. package/dist/admin/pages/ListView/ListViewPage.mjs +6 -4
  96. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  97. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.d.ts +9 -1
  98. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +9 -1
  99. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.d.ts +1 -1
  100. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/types.d.ts +2 -4
  101. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +2 -1
  102. package/dist/admin/src/pages/EditView/utils/data.d.ts +6 -1
  103. package/dist/admin/translations/de.json.js +165 -32
  104. package/dist/admin/translations/de.json.js.map +1 -1
  105. package/dist/admin/translations/de.json.mjs +165 -32
  106. package/dist/admin/translations/de.json.mjs.map +1 -1
  107. package/dist/admin/translations/zh-Hans.json.js +0 -44
  108. package/dist/admin/translations/zh-Hans.json.js.map +1 -1
  109. package/dist/admin/translations/zh-Hans.json.mjs +0 -44
  110. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -1
  111. package/dist/server/controllers/collection-types.js +16 -13
  112. package/dist/server/controllers/collection-types.js.map +1 -1
  113. package/dist/server/controllers/collection-types.mjs +16 -13
  114. package/dist/server/controllers/collection-types.mjs.map +1 -1
  115. package/dist/server/controllers/relations.js +5 -2
  116. package/dist/server/controllers/relations.js.map +1 -1
  117. package/dist/server/controllers/relations.mjs +5 -2
  118. package/dist/server/controllers/relations.mjs.map +1 -1
  119. package/dist/server/controllers/utils/document-status.js +28 -0
  120. package/dist/server/controllers/utils/document-status.js.map +1 -0
  121. package/dist/server/controllers/utils/document-status.mjs +26 -0
  122. package/dist/server/controllers/utils/document-status.mjs.map +1 -0
  123. package/dist/server/services/components.js +68 -20
  124. package/dist/server/services/components.js.map +1 -1
  125. package/dist/server/services/components.mjs +69 -21
  126. package/dist/server/services/components.mjs.map +1 -1
  127. package/dist/server/services/permission-checker.js +23 -0
  128. package/dist/server/services/permission-checker.js.map +1 -1
  129. package/dist/server/services/permission-checker.mjs +23 -0
  130. package/dist/server/services/permission-checker.mjs.map +1 -1
  131. package/dist/server/services/utils/store.js +51 -4
  132. package/dist/server/services/utils/store.js.map +1 -1
  133. package/dist/server/services/utils/store.mjs +51 -4
  134. package/dist/server/services/utils/store.mjs.map +1 -1
  135. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  136. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  137. package/dist/server/src/controllers/utils/document-status.d.ts +10 -0
  138. package/dist/server/src/controllers/utils/document-status.d.ts.map +1 -0
  139. package/dist/server/src/index.d.ts +1 -0
  140. package/dist/server/src/index.d.ts.map +1 -1
  141. package/dist/server/src/services/components.d.ts +6 -0
  142. package/dist/server/src/services/components.d.ts.map +1 -1
  143. package/dist/server/src/services/index.d.ts +1 -0
  144. package/dist/server/src/services/index.d.ts.map +1 -1
  145. package/dist/server/src/services/permission-checker.d.ts +1 -0
  146. package/dist/server/src/services/permission-checker.d.ts.map +1 -1
  147. package/dist/server/src/services/utils/store.d.ts +5 -1
  148. package/dist/server/src/services/utils/store.d.ts.map +1 -1
  149. package/package.json +7 -7
  150. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withImages.js +0 -17
  151. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withImages.js.map +0 -1
  152. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withImages.mjs +0 -15
  153. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withImages.mjs.map +0 -1
  154. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withLinks.js +0 -75
  155. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withLinks.js.map +0 -1
  156. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withLinks.mjs +0 -73
  157. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/plugins/withLinks.mjs.map +0 -1
  158. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js +0 -88
  159. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.js.map +0 -1
  160. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs +0 -84
  161. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/utils/links.mjs.map +0 -1
  162. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/plugins/withImages.d.ts +0 -11
  163. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/plugins/withLinks.d.ts +0 -9
  164. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/links.d.ts +0 -12
@@ -1 +1 @@
1
- {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/relations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAC;;uCA+Ib,GAAG,OAAO,KAAK,EAAE;IA4H1D;;;;OAIG;uBACsB,GAAG;sBAwIJ,GAAG;;AA1Q7B,wBAkXE"}
1
+ {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/relations.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAC;;uCAiJb,GAAG,OAAO,KAAK,EAAE;IA4H1D;;;;OAIG;uBACsB,GAAG;sBAwIJ,GAAG;;AA1Q7B,wBAkXE"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Index items by documentId for lookup
3
+ *
4
+ * @param items - Array of items with documentId property
5
+ * @returns Map of documentId -> items array
6
+ */
7
+ export declare const indexByDocumentId: <T extends {
8
+ documentId?: string | null | undefined;
9
+ }>(items: T[]) => Map<string, T[]>;
10
+ //# sourceMappingURL=document-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-status.d.ts","sourceRoot":"","sources":["../../../../../server/src/controllers/utils/document-status.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;UACrB,CAAC,EAAE,KACT,IAAI,MAAM,EAAE,CAAC,EAAE,CAmBjB,CAAC"}
@@ -282,6 +282,7 @@ declare const _default: () => {
282
282
  } & {
283
283
  [key: string]: any;
284
284
  }) | undefined, field: string) => any;
285
+ requiresEntity: (action: string) => boolean;
285
286
  sanitizeOutput: (data: {
286
287
  id: import("@strapi/types/dist/data").ID;
287
288
  } & {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,wBAUE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,wBAUE"}
@@ -22,6 +22,12 @@ declare const _default: ({ strapi }: {
22
22
  options?: object | undefined;
23
23
  category: string;
24
24
  }>;
25
+ /**
26
+ * Batch load component configurations.
27
+ *
28
+ * Collects all component UIDs upfront, then loads configurations in a single
29
+ * batch query instead of sequential queries per component.
30
+ */
25
31
  findComponentsConfigurations(model: Struct.ComponentSchema): Promise<Record<string, Configuration & {
26
32
  category: string;
27
33
  isComponent: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../server/src/services/components.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;qCAmB/B;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;;uBAO9B,IAAI,SAAS;iCAQG,OAAO,eAAe;;;;;;;;mCAW5C,OAAO,eAAe,oBACf,mBAAmB;;;;;;;;wCAOG,OAAO,eAAe;kBAGhC,MAAM;qBAAe,OAAO;;;;AArC9D,wBA4EG"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../../server/src/services/components.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;qCAmB/B;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;;uBAO9B,IAAI,SAAS;iCAQG,OAAO,eAAe;;;;;;;;mCAW5C,OAAO,eAAe,oBACf,mBAAmB;;;;;;;;IAOvC;;;;;OAKG;wCACuC,OAAO,eAAe;kBAmD9B,MAAM;qBAAe,OAAO;;;;AA3FhE,wBAoIG"}
@@ -174,6 +174,7 @@ declare const _default: {
174
174
  } & {
175
175
  [key: string]: any;
176
176
  }) | undefined, field: string) => any;
177
+ requiresEntity: (action: string) => boolean;
177
178
  sanitizeOutput: (data: {
178
179
  id: import("@strapi/types/dist/data").ID;
179
180
  } & {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,wBAeE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,wBAeE"}
@@ -21,6 +21,7 @@ declare const _default: ({ strapi }: {
21
21
  } & {
22
22
  [key: string]: any;
23
23
  }) | undefined, field: string) => any;
24
+ requiresEntity: (action: string) => boolean;
24
25
  sanitizeOutput: (data: {
25
26
  id: import("@strapi/types/dist/data").ID;
26
27
  } & {
@@ -1 +1 @@
1
- {"version":3,"file":"permission-checker.d.ts","sourceRoot":"","sources":["../../../../server/src/services/permission-checker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAC;AAaxD,KAAK,KAAK,GAAG;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;qCAoH0B;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAnD,wBAEG"}
1
+ {"version":3,"file":"permission-checker.d.ts","sourceRoot":"","sources":["../../../../server/src/services/permission-checker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAC;AAaxD,KAAK,KAAK,GAAG;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;qCA6I0B;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAnD,wBAEG"}
@@ -4,8 +4,12 @@ declare const _default: {
4
4
  getModelConfiguration: (key: any) => Promise<{
5
5
  settings: {};
6
6
  metadatas: {};
7
- layouts: {};
7
+ layouts: {
8
+ list: never[];
9
+ edit: never[];
10
+ };
8
11
  }>;
12
+ getModelConfigurations: (keys: string[]) => Promise<Record<string, any>>;
9
13
  setModelConfiguration: (key: string, value: any) => Promise<void>;
10
14
  deleteKey: (key: any) => Promise<any>;
11
15
  keys: {
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/utils/store.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AA4DA,wBAOE"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../../server/src/services/utils/store.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA8GA,wBAQE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/content-manager",
3
- "version": "5.33.3",
3
+ "version": "5.34.0",
4
4
  "description": "A powerful UI to easily manage your data.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -67,10 +67,10 @@
67
67
  "@radix-ui/react-toolbar": "1.0.4",
68
68
  "@reduxjs/toolkit": "1.9.7",
69
69
  "@sindresorhus/slugify": "1.1.0",
70
- "@strapi/design-system": "2.0.1",
71
- "@strapi/icons": "2.0.1",
72
- "@strapi/types": "5.33.3",
73
- "@strapi/utils": "5.33.3",
70
+ "@strapi/design-system": "2.1.2",
71
+ "@strapi/icons": "2.1.2",
72
+ "@strapi/types": "5.34.0",
73
+ "@strapi/utils": "5.34.0",
74
74
  "codemirror5": "npm:codemirror@^5.65.11",
75
75
  "date-fns": "2.30.0",
76
76
  "fractional-indexing": "3.2.0",
@@ -104,8 +104,8 @@
104
104
  "yup": "0.32.9"
105
105
  },
106
106
  "devDependencies": {
107
- "@strapi/admin": "5.33.3",
108
- "@strapi/database": "5.33.3",
107
+ "@strapi/admin": "5.34.0",
108
+ "@strapi/database": "5.34.0",
109
109
  "@testing-library/react": "16.3.0",
110
110
  "@types/jest": "29.5.2",
111
111
  "@types/lodash": "^4.14.191",
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Images are void elements. They handle the rendering of their children instead of Slate.
5
- * See the Slate documentation for more information:
6
- * - https://docs.slatejs.org/api/nodes/element#void-vs-not-void
7
- * - https://docs.slatejs.org/api/nodes/element#rendering-void-elements
8
- */ const withImages = (editor)=>{
9
- const { isVoid } = editor;
10
- editor.isVoid = (element)=>{
11
- return element.type === 'image' ? true : isVoid(element);
12
- };
13
- return editor;
14
- };
15
-
16
- exports.withImages = withImages;
17
- //# sourceMappingURL=withImages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withImages.js","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/BlocksInput/plugins/withImages.ts"],"sourcesContent":["import { type Editor } from 'slate';\n\n/**\n * Images are void elements. They handle the rendering of their children instead of Slate.\n * See the Slate documentation for more information:\n * - https://docs.slatejs.org/api/nodes/element#void-vs-not-void\n * - https://docs.slatejs.org/api/nodes/element#rendering-void-elements\n */\nconst withImages = (editor: Editor) => {\n const { isVoid } = editor;\n\n editor.isVoid = (element) => {\n return element.type === 'image' ? true : isVoid(element);\n };\n\n return editor;\n};\n\nexport { withImages };\n"],"names":["withImages","editor","isVoid","element","type"],"mappings":";;AAEA;;;;;IAMA,MAAMA,aAAa,CAACC,MAAAA,GAAAA;IAClB,MAAM,EAAEC,MAAM,EAAE,GAAGD,MAAAA;IAEnBA,MAAOC,CAAAA,MAAM,GAAG,CAACC,OAAAA,GAAAA;AACf,QAAA,OAAOA,OAAQC,CAAAA,IAAI,KAAK,OAAA,GAAU,OAAOF,MAAOC,CAAAA,OAAAA,CAAAA;AAClD,KAAA;IAEA,OAAOF,MAAAA;AACT;;;;"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Images are void elements. They handle the rendering of their children instead of Slate.
3
- * See the Slate documentation for more information:
4
- * - https://docs.slatejs.org/api/nodes/element#void-vs-not-void
5
- * - https://docs.slatejs.org/api/nodes/element#rendering-void-elements
6
- */ const withImages = (editor)=>{
7
- const { isVoid } = editor;
8
- editor.isVoid = (element)=>{
9
- return element.type === 'image' ? true : isVoid(element);
10
- };
11
- return editor;
12
- };
13
-
14
- export { withImages };
15
- //# sourceMappingURL=withImages.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withImages.mjs","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/BlocksInput/plugins/withImages.ts"],"sourcesContent":["import { type Editor } from 'slate';\n\n/**\n * Images are void elements. They handle the rendering of their children instead of Slate.\n * See the Slate documentation for more information:\n * - https://docs.slatejs.org/api/nodes/element#void-vs-not-void\n * - https://docs.slatejs.org/api/nodes/element#rendering-void-elements\n */\nconst withImages = (editor: Editor) => {\n const { isVoid } = editor;\n\n editor.isVoid = (element) => {\n return element.type === 'image' ? true : isVoid(element);\n };\n\n return editor;\n};\n\nexport { withImages };\n"],"names":["withImages","editor","isVoid","element","type"],"mappings":"AAEA;;;;;IAMA,MAAMA,aAAa,CAACC,MAAAA,GAAAA;IAClB,MAAM,EAAEC,MAAM,EAAE,GAAGD,MAAAA;IAEnBA,MAAOC,CAAAA,MAAM,GAAG,CAACC,OAAAA,GAAAA;AACf,QAAA,OAAOA,OAAQC,CAAAA,IAAI,KAAK,OAAA,GAAU,OAAOF,MAAOC,CAAAA,OAAAA,CAAAA;AAClD,KAAA;IAEA,OAAOF,MAAAA;AACT;;;;"}
@@ -1,75 +0,0 @@
1
- 'use strict';
2
-
3
- var slate = require('slate');
4
- var links = require('../utils/links.js');
5
-
6
- const withLinks = (editor)=>{
7
- const { isInline, apply, insertText, insertData } = editor;
8
- // Links are inline elements, so we need to override the isInline method for slate
9
- editor.isInline = (element)=>{
10
- return element.type === 'link' ? true : isInline(element);
11
- };
12
- // We keep a track of the last inserted link path
13
- // So we can show the popover on the link component if that link is the last one inserted
14
- editor.lastInsertedLinkPath = null;
15
- // We intercept the apply method, so everytime we insert a new link, we save its path
16
- editor.apply = (operation)=>{
17
- if (operation.type === 'insert_node') {
18
- if (!slate.Editor.isEditor(operation.node) && operation.node.type === 'link' && editor.shouldSaveLinkPath) {
19
- editor.lastInsertedLinkPath = operation.path;
20
- }
21
- } else if (operation.type === 'move_node') {
22
- // We need to update the last inserted link path when link is moved
23
- // If link is the first word in the paragraph we dont need to update the path
24
- if (slate.Path.hasPrevious(operation.path) && editor.lastInsertedLinkPath && editor.shouldSaveLinkPath) {
25
- editor.lastInsertedLinkPath = slate.Path.transform(editor.lastInsertedLinkPath, operation);
26
- }
27
- }
28
- apply(operation);
29
- };
30
- editor.insertText = (text)=>{
31
- // When selection is at the end of a link and user types a space, we want to break the link
32
- if (editor.selection && slate.Range.isCollapsed(editor.selection) && text === ' ') {
33
- const linksInSelection = Array.from(slate.Editor.nodes(editor, {
34
- at: editor.selection,
35
- match: (node)=>!slate.Editor.isEditor(node) && node.type === 'link'
36
- }));
37
- const selectionIsInLink = editor.selection && linksInSelection.length > 0;
38
- const selectionIsAtEndOfLink = selectionIsInLink && slate.Point.equals(editor.selection.anchor, slate.Editor.end(editor, linksInSelection[0][1]));
39
- if (selectionIsAtEndOfLink) {
40
- slate.Transforms.insertNodes(editor, {
41
- text: ' ',
42
- type: 'text'
43
- }, {
44
- at: slate.Path.next(linksInSelection[0][1]),
45
- select: true
46
- });
47
- return;
48
- }
49
- }
50
- insertText(text);
51
- };
52
- // Add data as a clickable link if its a valid URL
53
- editor.insertData = (data)=>{
54
- const pastedText = data.getData('text/plain');
55
- if (pastedText) {
56
- try {
57
- // eslint-disable-next-line no-new
58
- new URL(pastedText);
59
- // Do not show link popup on copy-paste a link, so do not save its path
60
- editor.shouldSaveLinkPath = false;
61
- links.insertLink(editor, {
62
- url: pastedText
63
- });
64
- return;
65
- } catch (error) {
66
- // continue normal data insertion
67
- }
68
- }
69
- insertData(data);
70
- };
71
- return editor;
72
- };
73
-
74
- exports.withLinks = withLinks;
75
- //# sourceMappingURL=withLinks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withLinks.js","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/BlocksInput/plugins/withLinks.ts"],"sourcesContent":["import { type BaseEditor, Path, Transforms, Range, Point, Editor } from 'slate';\n\nimport { insertLink } from '../utils/links';\n\ninterface LinkEditor extends BaseEditor {\n lastInsertedLinkPath: Path | null;\n shouldSaveLinkPath: boolean;\n}\n\nconst withLinks = (editor: Editor) => {\n const { isInline, apply, insertText, insertData } = editor;\n\n // Links are inline elements, so we need to override the isInline method for slate\n editor.isInline = (element) => {\n return element.type === 'link' ? true : isInline(element);\n };\n\n // We keep a track of the last inserted link path\n // So we can show the popover on the link component if that link is the last one inserted\n editor.lastInsertedLinkPath = null;\n\n // We intercept the apply method, so everytime we insert a new link, we save its path\n editor.apply = (operation) => {\n if (operation.type === 'insert_node') {\n if (\n !Editor.isEditor(operation.node) &&\n operation.node.type === 'link' &&\n editor.shouldSaveLinkPath\n ) {\n editor.lastInsertedLinkPath = operation.path;\n }\n } else if (operation.type === 'move_node') {\n // We need to update the last inserted link path when link is moved\n // If link is the first word in the paragraph we dont need to update the path\n if (\n Path.hasPrevious(operation.path) &&\n editor.lastInsertedLinkPath &&\n editor.shouldSaveLinkPath\n ) {\n editor.lastInsertedLinkPath = Path.transform(editor.lastInsertedLinkPath, operation);\n }\n }\n\n apply(operation);\n };\n\n editor.insertText = (text) => {\n // When selection is at the end of a link and user types a space, we want to break the link\n if (editor.selection && Range.isCollapsed(editor.selection) && text === ' ') {\n const linksInSelection = Array.from(\n Editor.nodes(editor, {\n at: editor.selection,\n match: (node) => !Editor.isEditor(node) && node.type === 'link',\n })\n );\n\n const selectionIsInLink = editor.selection && linksInSelection.length > 0;\n const selectionIsAtEndOfLink =\n selectionIsInLink &&\n Point.equals(editor.selection.anchor, Editor.end(editor, linksInSelection[0][1]));\n\n if (selectionIsAtEndOfLink) {\n Transforms.insertNodes(\n editor,\n { text: ' ', type: 'text' },\n { at: Path.next(linksInSelection[0][1]), select: true }\n );\n\n return;\n }\n }\n\n insertText(text);\n };\n\n // Add data as a clickable link if its a valid URL\n editor.insertData = (data) => {\n const pastedText = data.getData('text/plain');\n\n if (pastedText) {\n try {\n // eslint-disable-next-line no-new\n new URL(pastedText);\n // Do not show link popup on copy-paste a link, so do not save its path\n editor.shouldSaveLinkPath = false;\n insertLink(editor, { url: pastedText });\n return;\n } catch (error) {\n // continue normal data insertion\n }\n }\n\n insertData(data);\n };\n\n return editor;\n};\n\nexport { withLinks, type LinkEditor };\n"],"names":["withLinks","editor","isInline","apply","insertText","insertData","element","type","lastInsertedLinkPath","operation","Editor","isEditor","node","shouldSaveLinkPath","path","Path","hasPrevious","transform","text","selection","Range","isCollapsed","linksInSelection","Array","from","nodes","at","match","selectionIsInLink","length","selectionIsAtEndOfLink","Point","equals","anchor","end","Transforms","insertNodes","next","select","data","pastedText","getData","URL","insertLink","url","error"],"mappings":"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"}
@@ -1,73 +0,0 @@
1
- import { Editor, Path, Range, Point, Transforms } from 'slate';
2
- import { insertLink } from '../utils/links.mjs';
3
-
4
- const withLinks = (editor)=>{
5
- const { isInline, apply, insertText, insertData } = editor;
6
- // Links are inline elements, so we need to override the isInline method for slate
7
- editor.isInline = (element)=>{
8
- return element.type === 'link' ? true : isInline(element);
9
- };
10
- // We keep a track of the last inserted link path
11
- // So we can show the popover on the link component if that link is the last one inserted
12
- editor.lastInsertedLinkPath = null;
13
- // We intercept the apply method, so everytime we insert a new link, we save its path
14
- editor.apply = (operation)=>{
15
- if (operation.type === 'insert_node') {
16
- if (!Editor.isEditor(operation.node) && operation.node.type === 'link' && editor.shouldSaveLinkPath) {
17
- editor.lastInsertedLinkPath = operation.path;
18
- }
19
- } else if (operation.type === 'move_node') {
20
- // We need to update the last inserted link path when link is moved
21
- // If link is the first word in the paragraph we dont need to update the path
22
- if (Path.hasPrevious(operation.path) && editor.lastInsertedLinkPath && editor.shouldSaveLinkPath) {
23
- editor.lastInsertedLinkPath = Path.transform(editor.lastInsertedLinkPath, operation);
24
- }
25
- }
26
- apply(operation);
27
- };
28
- editor.insertText = (text)=>{
29
- // When selection is at the end of a link and user types a space, we want to break the link
30
- if (editor.selection && Range.isCollapsed(editor.selection) && text === ' ') {
31
- const linksInSelection = Array.from(Editor.nodes(editor, {
32
- at: editor.selection,
33
- match: (node)=>!Editor.isEditor(node) && node.type === 'link'
34
- }));
35
- const selectionIsInLink = editor.selection && linksInSelection.length > 0;
36
- const selectionIsAtEndOfLink = selectionIsInLink && Point.equals(editor.selection.anchor, Editor.end(editor, linksInSelection[0][1]));
37
- if (selectionIsAtEndOfLink) {
38
- Transforms.insertNodes(editor, {
39
- text: ' ',
40
- type: 'text'
41
- }, {
42
- at: Path.next(linksInSelection[0][1]),
43
- select: true
44
- });
45
- return;
46
- }
47
- }
48
- insertText(text);
49
- };
50
- // Add data as a clickable link if its a valid URL
51
- editor.insertData = (data)=>{
52
- const pastedText = data.getData('text/plain');
53
- if (pastedText) {
54
- try {
55
- // eslint-disable-next-line no-new
56
- new URL(pastedText);
57
- // Do not show link popup on copy-paste a link, so do not save its path
58
- editor.shouldSaveLinkPath = false;
59
- insertLink(editor, {
60
- url: pastedText
61
- });
62
- return;
63
- } catch (error) {
64
- // continue normal data insertion
65
- }
66
- }
67
- insertData(data);
68
- };
69
- return editor;
70
- };
71
-
72
- export { withLinks };
73
- //# sourceMappingURL=withLinks.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withLinks.mjs","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/BlocksInput/plugins/withLinks.ts"],"sourcesContent":["import { type BaseEditor, Path, Transforms, Range, Point, Editor } from 'slate';\n\nimport { insertLink } from '../utils/links';\n\ninterface LinkEditor extends BaseEditor {\n lastInsertedLinkPath: Path | null;\n shouldSaveLinkPath: boolean;\n}\n\nconst withLinks = (editor: Editor) => {\n const { isInline, apply, insertText, insertData } = editor;\n\n // Links are inline elements, so we need to override the isInline method for slate\n editor.isInline = (element) => {\n return element.type === 'link' ? true : isInline(element);\n };\n\n // We keep a track of the last inserted link path\n // So we can show the popover on the link component if that link is the last one inserted\n editor.lastInsertedLinkPath = null;\n\n // We intercept the apply method, so everytime we insert a new link, we save its path\n editor.apply = (operation) => {\n if (operation.type === 'insert_node') {\n if (\n !Editor.isEditor(operation.node) &&\n operation.node.type === 'link' &&\n editor.shouldSaveLinkPath\n ) {\n editor.lastInsertedLinkPath = operation.path;\n }\n } else if (operation.type === 'move_node') {\n // We need to update the last inserted link path when link is moved\n // If link is the first word in the paragraph we dont need to update the path\n if (\n Path.hasPrevious(operation.path) &&\n editor.lastInsertedLinkPath &&\n editor.shouldSaveLinkPath\n ) {\n editor.lastInsertedLinkPath = Path.transform(editor.lastInsertedLinkPath, operation);\n }\n }\n\n apply(operation);\n };\n\n editor.insertText = (text) => {\n // When selection is at the end of a link and user types a space, we want to break the link\n if (editor.selection && Range.isCollapsed(editor.selection) && text === ' ') {\n const linksInSelection = Array.from(\n Editor.nodes(editor, {\n at: editor.selection,\n match: (node) => !Editor.isEditor(node) && node.type === 'link',\n })\n );\n\n const selectionIsInLink = editor.selection && linksInSelection.length > 0;\n const selectionIsAtEndOfLink =\n selectionIsInLink &&\n Point.equals(editor.selection.anchor, Editor.end(editor, linksInSelection[0][1]));\n\n if (selectionIsAtEndOfLink) {\n Transforms.insertNodes(\n editor,\n { text: ' ', type: 'text' },\n { at: Path.next(linksInSelection[0][1]), select: true }\n );\n\n return;\n }\n }\n\n insertText(text);\n };\n\n // Add data as a clickable link if its a valid URL\n editor.insertData = (data) => {\n const pastedText = data.getData('text/plain');\n\n if (pastedText) {\n try {\n // eslint-disable-next-line no-new\n new URL(pastedText);\n // Do not show link popup on copy-paste a link, so do not save its path\n editor.shouldSaveLinkPath = false;\n insertLink(editor, { url: pastedText });\n return;\n } catch (error) {\n // continue normal data insertion\n }\n }\n\n insertData(data);\n };\n\n return editor;\n};\n\nexport { withLinks, type LinkEditor };\n"],"names":["withLinks","editor","isInline","apply","insertText","insertData","element","type","lastInsertedLinkPath","operation","Editor","isEditor","node","shouldSaveLinkPath","path","Path","hasPrevious","transform","text","selection","Range","isCollapsed","linksInSelection","Array","from","nodes","at","match","selectionIsInLink","length","selectionIsAtEndOfLink","Point","equals","anchor","end","Transforms","insertNodes","next","select","data","pastedText","getData","URL","insertLink","url","error"],"mappings":"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"}
@@ -1,88 +0,0 @@
1
- 'use strict';
2
-
3
- var slate = require('slate');
4
-
5
- const removeLink = (editor)=>{
6
- slate.Transforms.unwrapNodes(editor, {
7
- match: (node)=>!slate.Editor.isEditor(node) && slate.Element.isElement(node) && node.type === 'link'
8
- });
9
- };
10
- const insertLink = (editor, { url })=>{
11
- if (editor.selection) {
12
- // We want to remove all link on the selection
13
- const linkNodes = Array.from(slate.Editor.nodes(editor, {
14
- at: editor.selection,
15
- match: (node)=>!slate.Editor.isEditor(node) && node.type === 'link'
16
- }));
17
- linkNodes.forEach(([, path])=>{
18
- slate.Transforms.unwrapNodes(editor, {
19
- at: path
20
- });
21
- });
22
- if (slate.Range.isCollapsed(editor.selection)) {
23
- const link = {
24
- type: 'link',
25
- url: url ?? '',
26
- children: [
27
- {
28
- type: 'text',
29
- text: url
30
- }
31
- ],
32
- rel: '',
33
- target: ''
34
- };
35
- slate.Transforms.insertNodes(editor, link);
36
- } else {
37
- slate.Transforms.wrapNodes(editor, {
38
- type: 'link',
39
- url: url ?? ''
40
- }, {
41
- split: true
42
- });
43
- }
44
- }
45
- };
46
- const editLink = (editor, link)=>{
47
- const { url, text, rel, target } = link;
48
- if (!editor.selection) {
49
- return;
50
- }
51
- const linkEntry = slate.Editor.above(editor, {
52
- match: (node)=>!slate.Editor.isEditor(node) && node.type === 'link'
53
- });
54
- if (linkEntry) {
55
- const [, linkPath] = linkEntry;
56
- slate.Transforms.setNodes(editor, {
57
- url,
58
- rel,
59
- target
60
- }, {
61
- at: linkPath
62
- });
63
- // If link text is different, we remove the old text and insert the new one
64
- if (text !== '' && text !== slate.Editor.string(editor, linkPath)) {
65
- const linkNodeChildrens = Array.from(slate.Node.children(editor, linkPath, {
66
- reverse: true
67
- }));
68
- linkNodeChildrens.forEach(([, childPath])=>{
69
- slate.Transforms.removeNodes(editor, {
70
- at: childPath
71
- });
72
- });
73
- slate.Transforms.insertNodes(editor, [
74
- {
75
- type: 'text',
76
- text
77
- }
78
- ], {
79
- at: linkPath.concat(0)
80
- });
81
- }
82
- }
83
- };
84
-
85
- exports.editLink = editLink;
86
- exports.insertLink = insertLink;
87
- exports.removeLink = removeLink;
88
- //# sourceMappingURL=links.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"links.js","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/links.ts"],"sourcesContent":["import { Transforms, Editor, Element as SlateElement, Node, Range } from 'slate';\n\nimport { type Block } from './types';\n\nconst removeLink = (editor: Editor) => {\n Transforms.unwrapNodes(editor, {\n match: (node) => !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'link',\n });\n};\n\nconst insertLink = (editor: Editor, { url }: { url: string }) => {\n if (editor.selection) {\n // We want to remove all link on the selection\n const linkNodes = Array.from(\n Editor.nodes(editor, {\n at: editor.selection,\n match: (node) => !Editor.isEditor(node) && node.type === 'link',\n })\n );\n\n linkNodes.forEach(([, path]) => {\n Transforms.unwrapNodes(editor, { at: path });\n });\n\n if (Range.isCollapsed(editor.selection)) {\n const link: Block<'link'> = {\n type: 'link',\n url: url ?? '',\n children: [{ type: 'text', text: url }],\n rel: '',\n target: '',\n };\n\n Transforms.insertNodes(editor, link);\n } else {\n Transforms.wrapNodes(editor, { type: 'link', url: url ?? '' } as Block<'link'>, {\n split: true,\n });\n }\n }\n};\n\nconst editLink = (\n editor: Editor,\n link: { url: string; text: string; rel: string; target: string }\n) => {\n const { url, text, rel, target } = link;\n\n if (!editor.selection) {\n return;\n }\n\n const linkEntry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'link',\n });\n\n if (linkEntry) {\n const [, linkPath] = linkEntry;\n Transforms.setNodes(editor, { url, rel, target }, { at: linkPath });\n\n // If link text is different, we remove the old text and insert the new one\n if (text !== '' && text !== Editor.string(editor, linkPath)) {\n const linkNodeChildrens = Array.from(Node.children(editor, linkPath, { reverse: true }));\n\n linkNodeChildrens.forEach(([, childPath]) => {\n Transforms.removeNodes(editor, { at: childPath });\n });\n\n Transforms.insertNodes(editor, [{ type: 'text', text }], { at: linkPath.concat(0) });\n }\n }\n};\n\nexport { insertLink, editLink, removeLink };\n"],"names":["removeLink","editor","Transforms","unwrapNodes","match","node","Editor","isEditor","SlateElement","isElement","type","insertLink","url","selection","linkNodes","Array","from","nodes","at","forEach","path","Range","isCollapsed","link","children","text","rel","target","insertNodes","wrapNodes","split","editLink","linkEntry","above","linkPath","setNodes","string","linkNodeChildrens","Node","reverse","childPath","removeNodes","concat"],"mappings":"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"}
@@ -1,84 +0,0 @@
1
- import { Editor, Transforms, Range, Element, Node } from 'slate';
2
-
3
- const removeLink = (editor)=>{
4
- Transforms.unwrapNodes(editor, {
5
- match: (node)=>!Editor.isEditor(node) && Element.isElement(node) && node.type === 'link'
6
- });
7
- };
8
- const insertLink = (editor, { url })=>{
9
- if (editor.selection) {
10
- // We want to remove all link on the selection
11
- const linkNodes = Array.from(Editor.nodes(editor, {
12
- at: editor.selection,
13
- match: (node)=>!Editor.isEditor(node) && node.type === 'link'
14
- }));
15
- linkNodes.forEach(([, path])=>{
16
- Transforms.unwrapNodes(editor, {
17
- at: path
18
- });
19
- });
20
- if (Range.isCollapsed(editor.selection)) {
21
- const link = {
22
- type: 'link',
23
- url: url ?? '',
24
- children: [
25
- {
26
- type: 'text',
27
- text: url
28
- }
29
- ],
30
- rel: '',
31
- target: ''
32
- };
33
- Transforms.insertNodes(editor, link);
34
- } else {
35
- Transforms.wrapNodes(editor, {
36
- type: 'link',
37
- url: url ?? ''
38
- }, {
39
- split: true
40
- });
41
- }
42
- }
43
- };
44
- const editLink = (editor, link)=>{
45
- const { url, text, rel, target } = link;
46
- if (!editor.selection) {
47
- return;
48
- }
49
- const linkEntry = Editor.above(editor, {
50
- match: (node)=>!Editor.isEditor(node) && node.type === 'link'
51
- });
52
- if (linkEntry) {
53
- const [, linkPath] = linkEntry;
54
- Transforms.setNodes(editor, {
55
- url,
56
- rel,
57
- target
58
- }, {
59
- at: linkPath
60
- });
61
- // If link text is different, we remove the old text and insert the new one
62
- if (text !== '' && text !== Editor.string(editor, linkPath)) {
63
- const linkNodeChildrens = Array.from(Node.children(editor, linkPath, {
64
- reverse: true
65
- }));
66
- linkNodeChildrens.forEach(([, childPath])=>{
67
- Transforms.removeNodes(editor, {
68
- at: childPath
69
- });
70
- });
71
- Transforms.insertNodes(editor, [
72
- {
73
- type: 'text',
74
- text
75
- }
76
- ], {
77
- at: linkPath.concat(0)
78
- });
79
- }
80
- }
81
- };
82
-
83
- export { editLink, insertLink, removeLink };
84
- //# sourceMappingURL=links.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"links.mjs","sources":["../../../../../../../../admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/links.ts"],"sourcesContent":["import { Transforms, Editor, Element as SlateElement, Node, Range } from 'slate';\n\nimport { type Block } from './types';\n\nconst removeLink = (editor: Editor) => {\n Transforms.unwrapNodes(editor, {\n match: (node) => !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'link',\n });\n};\n\nconst insertLink = (editor: Editor, { url }: { url: string }) => {\n if (editor.selection) {\n // We want to remove all link on the selection\n const linkNodes = Array.from(\n Editor.nodes(editor, {\n at: editor.selection,\n match: (node) => !Editor.isEditor(node) && node.type === 'link',\n })\n );\n\n linkNodes.forEach(([, path]) => {\n Transforms.unwrapNodes(editor, { at: path });\n });\n\n if (Range.isCollapsed(editor.selection)) {\n const link: Block<'link'> = {\n type: 'link',\n url: url ?? '',\n children: [{ type: 'text', text: url }],\n rel: '',\n target: '',\n };\n\n Transforms.insertNodes(editor, link);\n } else {\n Transforms.wrapNodes(editor, { type: 'link', url: url ?? '' } as Block<'link'>, {\n split: true,\n });\n }\n }\n};\n\nconst editLink = (\n editor: Editor,\n link: { url: string; text: string; rel: string; target: string }\n) => {\n const { url, text, rel, target } = link;\n\n if (!editor.selection) {\n return;\n }\n\n const linkEntry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'link',\n });\n\n if (linkEntry) {\n const [, linkPath] = linkEntry;\n Transforms.setNodes(editor, { url, rel, target }, { at: linkPath });\n\n // If link text is different, we remove the old text and insert the new one\n if (text !== '' && text !== Editor.string(editor, linkPath)) {\n const linkNodeChildrens = Array.from(Node.children(editor, linkPath, { reverse: true }));\n\n linkNodeChildrens.forEach(([, childPath]) => {\n Transforms.removeNodes(editor, { at: childPath });\n });\n\n Transforms.insertNodes(editor, [{ type: 'text', text }], { at: linkPath.concat(0) });\n }\n }\n};\n\nexport { insertLink, editLink, removeLink };\n"],"names":["removeLink","editor","Transforms","unwrapNodes","match","node","Editor","isEditor","SlateElement","isElement","type","insertLink","url","selection","linkNodes","Array","from","nodes","at","forEach","path","Range","isCollapsed","link","children","text","rel","target","insertNodes","wrapNodes","split","editLink","linkEntry","above","linkPath","setNodes","string","linkNodeChildrens","Node","reverse","childPath","removeNodes","concat"],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { type Editor } from 'slate';
2
- /**
3
- * Images are void elements. They handle the rendering of their children instead of Slate.
4
- * See the Slate documentation for more information:
5
- * - https://docs.slatejs.org/api/nodes/element#void-vs-not-void
6
- * - https://docs.slatejs.org/api/nodes/element#rendering-void-elements
7
- */
8
- declare const withImages: (editor: Editor) => Omit<import("slate").BaseEditor & import("slate-react").ReactEditor & import("slate-history").HistoryEditor & import("./withLinks").LinkEditor, "children"> & {
9
- children: import("@strapi/types/dist/schema/attribute").BlocksValue;
10
- };
11
- export { withImages };
@@ -1,9 +0,0 @@
1
- import { type BaseEditor, Path, Editor } from 'slate';
2
- interface LinkEditor extends BaseEditor {
3
- lastInsertedLinkPath: Path | null;
4
- shouldSaveLinkPath: boolean;
5
- }
6
- declare const withLinks: (editor: Editor) => Omit<BaseEditor & import("slate-react").ReactEditor & import("slate-history").HistoryEditor & LinkEditor, "children"> & {
7
- children: import("@strapi/types/dist/schema/attribute").BlocksValue;
8
- };
9
- export { withLinks, type LinkEditor };
@@ -1,12 +0,0 @@
1
- import { Editor } from 'slate';
2
- declare const removeLink: (editor: Editor) => void;
3
- declare const insertLink: (editor: Editor, { url }: {
4
- url: string;
5
- }) => void;
6
- declare const editLink: (editor: Editor, link: {
7
- url: string;
8
- text: string;
9
- rel: string;
10
- target: string;
11
- }) => void;
12
- export { insertLink, editLink, removeLink };