@wordpress/editor 14.4.0 → 14.5.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 (222) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/bindings/post-meta.js +12 -0
  3. package/build/bindings/post-meta.js.map +1 -1
  4. package/build/components/blog-title/index.js +1 -1
  5. package/build/components/blog-title/index.js.map +1 -1
  6. package/build/components/commands/index.js +8 -2
  7. package/build/components/commands/index.js.map +1 -1
  8. package/build/components/document-bar/index.js +1 -1
  9. package/build/components/document-bar/index.js.map +1 -1
  10. package/build/components/header/index.js +2 -3
  11. package/build/components/header/index.js.map +1 -1
  12. package/build/components/page-attributes/parent.js +6 -2
  13. package/build/components/page-attributes/parent.js.map +1 -1
  14. package/build/components/post-actions/actions.js +38 -344
  15. package/build/components/post-actions/actions.js.map +1 -1
  16. package/build/components/post-actions/index.js +16 -6
  17. package/build/components/post-actions/index.js.map +1 -1
  18. package/build/components/post-author/hook.js +10 -3
  19. package/build/components/post-author/hook.js.map +1 -1
  20. package/build/components/post-author/panel.js +2 -1
  21. package/build/components/post-author/panel.js.map +1 -1
  22. package/build/components/post-card-panel/index.js +1 -1
  23. package/build/components/post-card-panel/index.js.map +1 -1
  24. package/build/components/post-comments/index.js +6 -20
  25. package/build/components/post-comments/index.js.map +1 -1
  26. package/build/components/post-status/index.js +17 -41
  27. package/build/components/post-status/index.js.map +1 -1
  28. package/build/components/post-template/create-new-template-modal.js +3 -0
  29. package/build/components/post-template/create-new-template-modal.js.map +1 -1
  30. package/build/components/post-url/panel.js +3 -2
  31. package/build/components/post-url/panel.js.map +1 -1
  32. package/build/components/preview-dropdown/index.js +82 -17
  33. package/build/components/preview-dropdown/index.js.map +1 -1
  34. package/build/components/provider/disable-non-page-content-blocks.js +14 -18
  35. package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
  36. package/build/components/site-discussion/index.js +6 -20
  37. package/build/components/site-discussion/index.js.map +1 -1
  38. package/build/components/template-content-panel/index.js +14 -12
  39. package/build/components/template-content-panel/index.js.map +1 -1
  40. package/build/components/visual-editor/index.js +2 -1
  41. package/build/components/visual-editor/index.js.map +1 -1
  42. package/build/dataviews/actions/export-pattern.native.js +9 -0
  43. package/build/dataviews/actions/export-pattern.native.js.map +1 -0
  44. package/build/dataviews/actions/permanently-delete-post.js +107 -0
  45. package/build/dataviews/actions/permanently-delete-post.js.map +1 -0
  46. package/build/dataviews/actions/restore-post.js +112 -0
  47. package/build/dataviews/actions/restore-post.js.map +1 -0
  48. package/build/dataviews/actions/trash-post.js +142 -0
  49. package/build/dataviews/actions/trash-post.js.map +1 -0
  50. package/build/dataviews/store/private-actions.js +45 -0
  51. package/build/dataviews/store/private-actions.js.map +1 -1
  52. package/build/dataviews/store/private-selectors.js +10 -10
  53. package/build/dataviews/store/private-selectors.js.map +1 -1
  54. package/build/dataviews/store/reducer.js +15 -1
  55. package/build/dataviews/store/reducer.js.map +1 -1
  56. package/build/dataviews/types.js.map +1 -1
  57. package/build/private-apis.js +0 -2
  58. package/build/private-apis.js.map +1 -1
  59. package/build/store/actions.js +16 -2
  60. package/build/store/actions.js.map +1 -1
  61. package/build/store/private-actions.js +8 -1
  62. package/build/store/private-actions.js.map +1 -1
  63. package/build/store/private-selectors.js +33 -2
  64. package/build/store/private-selectors.js.map +1 -1
  65. package/build-module/bindings/post-meta.js +12 -0
  66. package/build-module/bindings/post-meta.js.map +1 -1
  67. package/build-module/components/blog-title/index.js +1 -1
  68. package/build-module/components/blog-title/index.js.map +1 -1
  69. package/build-module/components/commands/index.js +8 -2
  70. package/build-module/components/commands/index.js.map +1 -1
  71. package/build-module/components/document-bar/index.js +1 -1
  72. package/build-module/components/document-bar/index.js.map +1 -1
  73. package/build-module/components/header/index.js +2 -3
  74. package/build-module/components/header/index.js.map +1 -1
  75. package/build-module/components/page-attributes/parent.js +7 -3
  76. package/build-module/components/page-attributes/parent.js.map +1 -1
  77. package/build-module/components/post-actions/actions.js +44 -350
  78. package/build-module/components/post-actions/actions.js.map +1 -1
  79. package/build-module/components/post-actions/index.js +16 -6
  80. package/build-module/components/post-actions/index.js.map +1 -1
  81. package/build-module/components/post-author/hook.js +10 -3
  82. package/build-module/components/post-author/hook.js.map +1 -1
  83. package/build-module/components/post-author/panel.js +2 -1
  84. package/build-module/components/post-author/panel.js.map +1 -1
  85. package/build-module/components/post-card-panel/index.js +1 -1
  86. package/build-module/components/post-card-panel/index.js.map +1 -1
  87. package/build-module/components/post-comments/index.js +7 -23
  88. package/build-module/components/post-comments/index.js.map +1 -1
  89. package/build-module/components/post-status/index.js +19 -43
  90. package/build-module/components/post-status/index.js.map +1 -1
  91. package/build-module/components/post-template/create-new-template-modal.js +3 -0
  92. package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
  93. package/build-module/components/post-url/panel.js +4 -5
  94. package/build-module/components/post-url/panel.js.map +1 -1
  95. package/build-module/components/preview-dropdown/index.js +84 -19
  96. package/build-module/components/preview-dropdown/index.js.map +1 -1
  97. package/build-module/components/provider/disable-non-page-content-blocks.js +15 -19
  98. package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
  99. package/build-module/components/site-discussion/index.js +7 -21
  100. package/build-module/components/site-discussion/index.js.map +1 -1
  101. package/build-module/components/template-content-panel/index.js +15 -13
  102. package/build-module/components/template-content-panel/index.js.map +1 -1
  103. package/build-module/components/visual-editor/index.js +2 -1
  104. package/build-module/components/visual-editor/index.js.map +1 -1
  105. package/build-module/dataviews/actions/export-pattern.native.js +3 -0
  106. package/build-module/dataviews/actions/export-pattern.native.js.map +1 -0
  107. package/build-module/dataviews/actions/permanently-delete-post.js +99 -0
  108. package/build-module/dataviews/actions/permanently-delete-post.js.map +1 -0
  109. package/build-module/dataviews/actions/restore-post.js +104 -0
  110. package/build-module/dataviews/actions/restore-post.js.map +1 -0
  111. package/build-module/dataviews/actions/trash-post.js +135 -0
  112. package/build-module/dataviews/actions/trash-post.js.map +1 -0
  113. package/build-module/dataviews/store/private-actions.js +40 -0
  114. package/build-module/dataviews/store/private-actions.js.map +1 -1
  115. package/build-module/dataviews/store/private-selectors.js +8 -9
  116. package/build-module/dataviews/store/private-selectors.js.map +1 -1
  117. package/build-module/dataviews/store/reducer.js +15 -1
  118. package/build-module/dataviews/store/reducer.js.map +1 -1
  119. package/build-module/dataviews/types.js.map +1 -1
  120. package/build-module/private-apis.js +0 -2
  121. package/build-module/private-apis.js.map +1 -1
  122. package/build-module/store/actions.js +16 -2
  123. package/build-module/store/actions.js.map +1 -1
  124. package/build-module/store/private-actions.js +8 -1
  125. package/build-module/store/private-actions.js.map +1 -1
  126. package/build-module/store/private-selectors.js +32 -2
  127. package/build-module/store/private-selectors.js.map +1 -1
  128. package/build-style/style-rtl.css +19 -3
  129. package/build-style/style.css +19 -3
  130. package/build-types/bindings/post-meta.d.ts +6 -0
  131. package/build-types/bindings/post-meta.d.ts.map +1 -1
  132. package/build-types/components/commands/index.d.ts.map +1 -1
  133. package/build-types/components/header/index.d.ts.map +1 -1
  134. package/build-types/components/page-attributes/parent.d.ts.map +1 -1
  135. package/build-types/components/post-actions/actions.d.ts.map +1 -1
  136. package/build-types/components/post-actions/index.d.ts.map +1 -1
  137. package/build-types/components/post-author/hook.d.ts +1 -1
  138. package/build-types/components/post-author/hook.d.ts.map +1 -1
  139. package/build-types/components/post-author/panel.d.ts.map +1 -1
  140. package/build-types/components/post-comments/index.d.ts.map +1 -1
  141. package/build-types/components/post-status/index.d.ts +2 -1
  142. package/build-types/components/post-status/index.d.ts.map +1 -1
  143. package/build-types/components/post-template/create-new-template-modal.d.ts.map +1 -1
  144. package/build-types/components/post-url/panel.d.ts.map +1 -1
  145. package/build-types/components/preview-dropdown/index.d.ts.map +1 -1
  146. package/build-types/components/provider/disable-non-page-content-blocks.d.ts.map +1 -1
  147. package/build-types/components/site-discussion/index.d.ts.map +1 -1
  148. package/build-types/components/template-content-panel/index.d.ts.map +1 -1
  149. package/build-types/components/visual-editor/index.d.ts.map +1 -1
  150. package/build-types/dataviews/actions/export-pattern.native.d.ts +3 -0
  151. package/build-types/dataviews/actions/export-pattern.native.d.ts.map +1 -0
  152. package/build-types/dataviews/actions/permanently-delete-post.d.ts +5 -0
  153. package/build-types/dataviews/actions/permanently-delete-post.d.ts.map +1 -0
  154. package/build-types/dataviews/actions/restore-post.d.ts +5 -0
  155. package/build-types/dataviews/actions/restore-post.d.ts.map +1 -0
  156. package/build-types/dataviews/actions/trash-post.d.ts +5 -0
  157. package/build-types/dataviews/actions/trash-post.d.ts.map +1 -0
  158. package/build-types/dataviews/store/private-actions.d.ts +8 -3
  159. package/build-types/dataviews/store/private-actions.d.ts.map +1 -1
  160. package/build-types/dataviews/store/private-selectors.d.ts +2 -1
  161. package/build-types/dataviews/store/private-selectors.d.ts.map +1 -1
  162. package/build-types/dataviews/store/reducer.d.ts +4 -1
  163. package/build-types/dataviews/store/reducer.d.ts.map +1 -1
  164. package/build-types/dataviews/types.d.ts +9 -0
  165. package/build-types/dataviews/types.d.ts.map +1 -1
  166. package/build-types/private-apis.d.ts.map +1 -1
  167. package/build-types/store/actions.d.ts.map +1 -1
  168. package/build-types/store/private-actions.d.ts.map +1 -1
  169. package/build-types/store/private-selectors.d.ts +11 -0
  170. package/build-types/store/private-selectors.d.ts.map +1 -1
  171. package/build-types/store/reducer.d.ts +1 -0
  172. package/build-types/store/reducer.d.ts.map +1 -1
  173. package/package.json +36 -36
  174. package/src/bindings/post-meta.js +20 -0
  175. package/src/components/blog-title/index.js +1 -1
  176. package/src/components/commands/index.js +4 -2
  177. package/src/components/document-bar/index.js +1 -1
  178. package/src/components/document-bar/style.scss +1 -1
  179. package/src/components/editor-interface/style.scss +5 -0
  180. package/src/components/header/index.js +1 -2
  181. package/src/components/list-view-sidebar/style.scss +4 -0
  182. package/src/components/page-attributes/parent.js +25 -7
  183. package/src/components/post-actions/actions.js +47 -470
  184. package/src/components/post-actions/index.js +19 -7
  185. package/src/components/post-author/hook.js +11 -3
  186. package/src/components/post-author/panel.js +3 -1
  187. package/src/components/post-card-panel/index.js +1 -1
  188. package/src/components/post-comments/index.js +7 -20
  189. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +2 -2
  190. package/src/components/post-status/index.js +11 -41
  191. package/src/components/post-template/create-new-template-modal.js +7 -1
  192. package/src/components/post-url/panel.js +8 -2
  193. package/src/components/preview-dropdown/index.js +113 -35
  194. package/src/components/preview-dropdown/style.scss +5 -0
  195. package/src/components/provider/disable-non-page-content-blocks.js +27 -24
  196. package/src/components/site-discussion/index.js +7 -19
  197. package/src/components/template-content-panel/index.js +36 -21
  198. package/src/components/visual-editor/index.js +8 -6
  199. package/src/components/visual-editor/style.scss +1 -3
  200. package/src/dataviews/actions/export-pattern.native.tsx +3 -0
  201. package/src/dataviews/actions/permanently-delete-post.tsx +116 -0
  202. package/src/dataviews/actions/restore-post.tsx +134 -0
  203. package/src/dataviews/actions/trash-post.tsx +196 -0
  204. package/src/dataviews/store/private-actions.ts +68 -0
  205. package/src/dataviews/store/private-selectors.ts +9 -17
  206. package/src/dataviews/store/reducer.ts +20 -1
  207. package/src/dataviews/types.ts +11 -0
  208. package/src/private-apis.js +0 -2
  209. package/src/store/actions.js +36 -13
  210. package/src/store/private-actions.js +8 -4
  211. package/src/store/private-selectors.js +45 -2
  212. package/src/store/test/private-selectors.js +78 -0
  213. package/tsconfig.tsbuildinfo +1 -1
  214. package/build/dataviews/actions/index.js +0 -32
  215. package/build/dataviews/actions/index.js.map +0 -1
  216. package/build-module/dataviews/actions/index.js +0 -24
  217. package/build-module/dataviews/actions/index.js.map +0 -1
  218. package/build-types/dataviews/actions/index.d.ts +0 -2
  219. package/build-types/dataviews/actions/index.d.ts.map +0 -1
  220. package/src/components/document-outline/test/__snapshots__/index.js.snap +0 -111
  221. package/src/components/document-outline/test/index.js +0 -185
  222. package/src/dataviews/actions/index.ts +0 -25
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = registerDefaultActions;
8
- var _data = require("@wordpress/data");
9
- var _deletePost = _interopRequireDefault(require("./delete-post"));
10
- var _exportPattern = _interopRequireDefault(require("./export-pattern"));
11
- var _resetPost = _interopRequireDefault(require("./reset-post"));
12
- var _store = require("../../store");
13
- var _lockUnlock = require("../../lock-unlock");
14
- /**
15
- * WordPress dependencies
16
- */
17
-
18
- /**
19
- * Internal dependencies
20
- */
21
-
22
- // @ts-ignore
23
-
24
- function registerDefaultActions() {
25
- const {
26
- registerEntityAction
27
- } = (0, _lockUnlock.unlock)((0, _data.dispatch)(_store.store));
28
- registerEntityAction('postType', 'wp_block', _exportPattern.default);
29
- registerEntityAction('postType', '*', _resetPost.default);
30
- registerEntityAction('postType', '*', _deletePost.default);
31
- }
32
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_data","require","_deletePost","_interopRequireDefault","_exportPattern","_resetPost","_store","_lockUnlock","registerDefaultActions","registerEntityAction","unlock","dispatch","editorStore","exportPattern","resetPost","deletePost"],"sources":["@wordpress/editor/src/dataviews/actions/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { type StoreDescriptor, dispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport deletePost from './delete-post';\nimport exportPattern from './export-pattern';\nimport resetPost from './reset-post';\n\n// @ts-ignore\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport default function registerDefaultActions() {\n\tconst { registerEntityAction } = unlock(\n\t\tdispatch( editorStore as StoreDescriptor )\n\t);\n\n\tregisterEntityAction( 'postType', 'wp_block', exportPattern );\n\tregisterEntityAction( 'postType', '*', resetPost );\n\tregisterEntityAction( 'postType', '*', deletePost );\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,cAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,UAAA,GAAAF,sBAAA,CAAAF,OAAA;AAGA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;;AAIe,SAASO,sBAAsBA,CAAA,EAAG;EAChD,MAAM;IAAEC;EAAqB,CAAC,GAAG,IAAAC,kBAAM,EACtC,IAAAC,cAAQ,EAAEC,YAA+B,CAC1C,CAAC;EAEDH,oBAAoB,CAAE,UAAU,EAAE,UAAU,EAAEI,sBAAc,CAAC;EAC7DJ,oBAAoB,CAAE,UAAU,EAAE,GAAG,EAAEK,kBAAU,CAAC;EAClDL,oBAAoB,CAAE,UAAU,EAAE,GAAG,EAAEM,mBAAW,CAAC;AACpD","ignoreList":[]}
@@ -1,24 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { dispatch } from '@wordpress/data';
5
-
6
- /**
7
- * Internal dependencies
8
- */
9
- import deletePost from './delete-post';
10
- import exportPattern from './export-pattern';
11
- import resetPost from './reset-post';
12
-
13
- // @ts-ignore
14
- import { store as editorStore } from '../../store';
15
- import { unlock } from '../../lock-unlock';
16
- export default function registerDefaultActions() {
17
- const {
18
- registerEntityAction
19
- } = unlock(dispatch(editorStore));
20
- registerEntityAction('postType', 'wp_block', exportPattern);
21
- registerEntityAction('postType', '*', resetPost);
22
- registerEntityAction('postType', '*', deletePost);
23
- }
24
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["dispatch","deletePost","exportPattern","resetPost","store","editorStore","unlock","registerDefaultActions","registerEntityAction"],"sources":["@wordpress/editor/src/dataviews/actions/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { type StoreDescriptor, dispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport deletePost from './delete-post';\nimport exportPattern from './export-pattern';\nimport resetPost from './reset-post';\n\n// @ts-ignore\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport default function registerDefaultActions() {\n\tconst { registerEntityAction } = unlock(\n\t\tdispatch( editorStore as StoreDescriptor )\n\t);\n\n\tregisterEntityAction( 'postType', 'wp_block', exportPattern );\n\tregisterEntityAction( 'postType', '*', resetPost );\n\tregisterEntityAction( 'postType', '*', deletePost );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAA+BA,QAAQ,QAAQ,iBAAiB;;AAEhE;AACA;AACA;AACA,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,aAAa,MAAM,kBAAkB;AAC5C,OAAOC,SAAS,MAAM,cAAc;;AAEpC;AACA,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAClD,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,eAAe,SAASC,sBAAsBA,CAAA,EAAG;EAChD,MAAM;IAAEC;EAAqB,CAAC,GAAGF,MAAM,CACtCN,QAAQ,CAAEK,WAA+B,CAC1C,CAAC;EAEDG,oBAAoB,CAAE,UAAU,EAAE,UAAU,EAAEN,aAAc,CAAC;EAC7DM,oBAAoB,CAAE,UAAU,EAAE,GAAG,EAAEL,SAAU,CAAC;EAClDK,oBAAoB,CAAE,UAAU,EAAE,GAAG,EAAEP,UAAW,CAAC;AACpD","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- export default function registerDefaultActions(): void;
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dataviews/actions/index.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,OAAO,UAAU,sBAAsB,SAQ7C"}
@@ -1,111 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`DocumentOutline header blocks present should match snapshot 1`] = `
4
- <ul>
5
- <li
6
- class="document-outline__item is-h2"
7
- >
8
- <a
9
- class="document-outline__button"
10
- href="#block-clientId_0"
11
- >
12
- <span
13
- aria-hidden="true"
14
- class="document-outline__emdash"
15
- />
16
- <strong
17
- class="document-outline__level"
18
- >
19
- H2
20
- </strong>
21
- <span
22
- class="document-outline__item-content"
23
- >
24
- Heading 2
25
- </span>
26
- </a>
27
- </li>
28
- <li
29
- class="document-outline__item is-h3"
30
- >
31
- <a
32
- class="document-outline__button"
33
- href="#block-clientId_1"
34
- >
35
- <span
36
- aria-hidden="true"
37
- class="document-outline__emdash"
38
- />
39
- <strong
40
- class="document-outline__level"
41
- >
42
- H3
43
- </strong>
44
- <span
45
- class="document-outline__item-content"
46
- >
47
- Heading 3
48
- </span>
49
- </a>
50
- </li>
51
- </ul>
52
- `;
53
-
54
- exports[`DocumentOutline header blocks present should render warnings for multiple h1 headings 1`] = `
55
- <ul>
56
- <li
57
- class="document-outline__item is-h1 is-invalid"
58
- >
59
- <a
60
- class="document-outline__button"
61
- href="#block-clientId_0"
62
- >
63
- <span
64
- aria-hidden="true"
65
- class="document-outline__emdash"
66
- />
67
- <strong
68
- class="document-outline__level"
69
- >
70
- H1
71
- </strong>
72
- <span
73
- class="document-outline__item-content"
74
- >
75
- Heading 1
76
- <br />
77
- <em>
78
- (Multiple H1 headings are not recommended)
79
- </em>
80
- </span>
81
- </a>
82
- </li>
83
- <li
84
- class="document-outline__item is-h1 is-invalid"
85
- >
86
- <a
87
- class="document-outline__button"
88
- href="#block-clientId_2"
89
- >
90
- <span
91
- aria-hidden="true"
92
- class="document-outline__emdash"
93
- />
94
- <strong
95
- class="document-outline__level"
96
- >
97
- H1
98
- </strong>
99
- <span
100
- class="document-outline__item-content"
101
- >
102
- Heading 1
103
- <br />
104
- <em>
105
- (Multiple H1 headings are not recommended)
106
- </em>
107
- </span>
108
- </a>
109
- </li>
110
- </ul>
111
- `;
@@ -1,185 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { render, screen, within } from '@testing-library/react';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import {
10
- createBlock,
11
- registerBlockType,
12
- unregisterBlockType,
13
- } from '@wordpress/blocks';
14
- import { useSelect } from '@wordpress/data';
15
-
16
- /**
17
- * Internal dependencies
18
- */
19
- import DocumentOutline from '../';
20
-
21
- jest.mock( '@wordpress/block-editor', () => ( {
22
- BlockTitle: () => 'Block Title',
23
- } ) );
24
- jest.mock( '@wordpress/data/src/components/use-select', () => jest.fn() );
25
-
26
- function setupMockSelect( blocks ) {
27
- useSelect.mockImplementation( ( mapSelect ) => {
28
- return mapSelect( () => ( {
29
- getBlocks: () => blocks,
30
- getEditedPostAttribute: () => null,
31
- getPostType: () => null,
32
- } ) );
33
- } );
34
- }
35
-
36
- describe( 'DocumentOutline', () => {
37
- let paragraph, headingH1, headingH2, headingH3, nestedHeading;
38
- beforeAll( () => {
39
- registerBlockType( 'core/heading', {
40
- category: 'text',
41
- title: 'Heading',
42
- edit: () => {},
43
- save: () => {},
44
- attributes: {
45
- level: {
46
- type: 'number',
47
- default: 2,
48
- },
49
- content: {
50
- type: 'string',
51
- },
52
- },
53
- } );
54
-
55
- registerBlockType( 'core/paragraph', {
56
- category: 'text',
57
- title: 'Paragraph',
58
- edit: () => {},
59
- save: () => {},
60
- } );
61
-
62
- registerBlockType( 'core/columns', {
63
- category: 'text',
64
- title: 'Paragraph',
65
- edit: () => {},
66
- save: () => {},
67
- } );
68
-
69
- paragraph = createBlock( 'core/paragraph' );
70
- headingH1 = createBlock( 'core/heading', {
71
- content: 'Heading 1',
72
- level: 1,
73
- } );
74
- headingH2 = createBlock( 'core/heading', {
75
- content: 'Heading 2',
76
- level: 2,
77
- } );
78
- headingH3 = createBlock( 'core/heading', {
79
- content: 'Heading 3',
80
- level: 3,
81
- } );
82
- nestedHeading = createBlock( 'core/columns', undefined, [ headingH3 ] );
83
- } );
84
-
85
- afterAll( () => {
86
- unregisterBlockType( 'core/heading' );
87
- unregisterBlockType( 'core/paragraph' );
88
- } );
89
-
90
- describe( 'no header blocks present', () => {
91
- it( 'should not render when no blocks provided', () => {
92
- setupMockSelect( [] );
93
- render( <DocumentOutline /> );
94
-
95
- expect( screen.queryByRole( 'list' ) ).not.toBeInTheDocument();
96
- } );
97
-
98
- it( 'should not render when no heading blocks provided', () => {
99
- const blocks = [ paragraph ].map( ( block, index ) => {
100
- // Set client IDs to a predictable value.
101
- return { ...block, clientId: `clientId_${ index }` };
102
- } );
103
- setupMockSelect( blocks );
104
- render( <DocumentOutline /> );
105
-
106
- expect( screen.queryByRole( 'list' ) ).not.toBeInTheDocument();
107
- } );
108
- } );
109
-
110
- describe( 'header blocks present', () => {
111
- it( 'should match snapshot', () => {
112
- const blocks = [ headingH2, headingH3 ].map( ( block, index ) => {
113
- // Set client IDs to a predictable value.
114
- return { ...block, clientId: `clientId_${ index }` };
115
- } );
116
- setupMockSelect( blocks );
117
- render( <DocumentOutline /> );
118
-
119
- expect( screen.getByRole( 'list' ) ).toMatchSnapshot();
120
- } );
121
-
122
- it( 'should render an item when only one heading provided', () => {
123
- const blocks = [ headingH2 ];
124
- setupMockSelect( blocks );
125
- render( <DocumentOutline /> );
126
-
127
- const tableOfContentItem = within(
128
- screen.getByRole( 'list' )
129
- ).getByRole( 'listitem' );
130
- expect( tableOfContentItem ).toBeInTheDocument();
131
- expect( tableOfContentItem ).toHaveTextContent( 'Heading 2' );
132
- } );
133
-
134
- it( 'should render two items when two headings and some paragraphs provided', () => {
135
- const blocks = [
136
- paragraph,
137
- headingH2,
138
- paragraph,
139
- headingH3,
140
- paragraph,
141
- ];
142
- setupMockSelect( blocks );
143
- render( <DocumentOutline /> );
144
-
145
- expect(
146
- within( screen.getByRole( 'list' ) ).getAllByRole( 'listitem' )
147
- ).toHaveLength( 2 );
148
- } );
149
-
150
- it( 'should render warnings for multiple h1 headings', () => {
151
- const blocks = [ headingH1, paragraph, headingH1, paragraph ].map(
152
- ( block, index ) => {
153
- // Set client IDs to a predictable value.
154
- return { ...block, clientId: `clientId_${ index }` };
155
- }
156
- );
157
- setupMockSelect( blocks );
158
- render( <DocumentOutline /> );
159
-
160
- expect( screen.getByRole( 'list' ) ).toMatchSnapshot();
161
- } );
162
- } );
163
-
164
- describe( 'nested headings', () => {
165
- it( 'should render even if the heading is nested', () => {
166
- const blocks = [ headingH2, nestedHeading ];
167
- setupMockSelect( blocks );
168
- render( <DocumentOutline /> );
169
-
170
- // Unnested heading and nested heading should appear as items.
171
- const tableOfContentItems = within(
172
- screen.getByRole( 'list' )
173
- ).getAllByRole( 'listitem' );
174
- expect( tableOfContentItems ).toHaveLength( 2 );
175
-
176
- // Unnested heading test.
177
- expect( tableOfContentItems[ 0 ] ).toHaveTextContent( 'H2' );
178
- expect( tableOfContentItems[ 0 ] ).toHaveTextContent( 'Heading 2' );
179
-
180
- // Nested heading test.
181
- expect( tableOfContentItems[ 1 ] ).toHaveTextContent( 'H3' );
182
- expect( tableOfContentItems[ 1 ] ).toHaveTextContent( 'Heading 3' );
183
- } );
184
- } );
185
- } );
@@ -1,25 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { type StoreDescriptor, dispatch } from '@wordpress/data';
5
-
6
- /**
7
- * Internal dependencies
8
- */
9
- import deletePost from './delete-post';
10
- import exportPattern from './export-pattern';
11
- import resetPost from './reset-post';
12
-
13
- // @ts-ignore
14
- import { store as editorStore } from '../../store';
15
- import { unlock } from '../../lock-unlock';
16
-
17
- export default function registerDefaultActions() {
18
- const { registerEntityAction } = unlock(
19
- dispatch( editorStore as StoreDescriptor )
20
- );
21
-
22
- registerEntityAction( 'postType', 'wp_block', exportPattern );
23
- registerEntityAction( 'postType', '*', resetPost );
24
- registerEntityAction( 'postType', '*', deletePost );
25
- }