@wordpress/editor 11.0.1-next.253d9b6e21.0 → 12.0.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 (213) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +1 -1
  3. package/build/components/character-count/index.js +1 -1
  4. package/build/components/character-count/index.js.map +1 -1
  5. package/build/components/editor-help/add-blocks.native.js +6 -5
  6. package/build/components/editor-help/add-blocks.native.js.map +1 -1
  7. package/build/components/editor-help/customize-blocks.native.js +7 -6
  8. package/build/components/editor-help/customize-blocks.native.js.map +1 -1
  9. package/build/components/editor-help/help-detail-navigation-screen.native.js +29 -15
  10. package/build/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  11. package/build/components/editor-help/help-get-support-button.native.js +46 -0
  12. package/build/components/editor-help/help-get-support-button.native.js.map +1 -0
  13. package/build/components/editor-help/help-topic-row.native.js +3 -2
  14. package/build/components/editor-help/help-topic-row.native.js.map +1 -1
  15. package/build/components/editor-help/index.native.js +83 -23
  16. package/build/components/editor-help/index.native.js.map +1 -1
  17. package/build/components/editor-help/intro-to-blocks.native.js +19 -9
  18. package/build/components/editor-help/intro-to-blocks.native.js.map +1 -1
  19. package/build/components/editor-help/move-blocks.native.js +6 -5
  20. package/build/components/editor-help/move-blocks.native.js.map +1 -1
  21. package/build/components/editor-help/remove-blocks.native.js +6 -5
  22. package/build/components/editor-help/remove-blocks.native.js.map +1 -1
  23. package/build/components/editor-help/view-sections.native.js +23 -5
  24. package/build/components/editor-help/view-sections.native.js.map +1 -1
  25. package/build/components/global-keyboard-shortcuts/save-shortcut.js +12 -14
  26. package/build/components/global-keyboard-shortcuts/save-shortcut.js.map +1 -1
  27. package/build/components/global-keyboard-shortcuts/visual-editor-shortcuts.js +0 -4
  28. package/build/components/global-keyboard-shortcuts/visual-editor-shortcuts.js.map +1 -1
  29. package/build/components/index.js +9 -0
  30. package/build/components/index.js.map +1 -1
  31. package/build/components/local-autosave-monitor/index.js +1 -2
  32. package/build/components/local-autosave-monitor/index.js.map +1 -1
  33. package/build/components/post-format/index.js +3 -1
  34. package/build/components/post-format/index.js.map +1 -1
  35. package/build/components/post-locked-modal/index.js +1 -1
  36. package/build/components/post-locked-modal/index.js.map +1 -1
  37. package/build/components/post-saved-state/index.js +37 -46
  38. package/build/components/post-saved-state/index.js.map +1 -1
  39. package/build/components/post-title/index.js +51 -25
  40. package/build/components/post-title/index.js.map +1 -1
  41. package/build/components/provider/index.native.js +18 -7
  42. package/build/components/provider/index.native.js.map +1 -1
  43. package/build/components/provider/use-block-editor-settings.js +32 -5
  44. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  45. package/build/components/word-count/index.js +1 -1
  46. package/build/components/word-count/index.js.map +1 -1
  47. package/build/store/actions.js +13 -38
  48. package/build/store/actions.js.map +1 -1
  49. package/build/store/defaults.js +7 -2
  50. package/build/store/defaults.js.map +1 -1
  51. package/build/store/selectors.js +4 -93
  52. package/build/store/selectors.js.map +1 -1
  53. package/build/{store/utils → utils}/get-template-part-icon.js +0 -0
  54. package/build/utils/get-template-part-icon.js.map +1 -0
  55. package/build/utils/index.js +8 -0
  56. package/build/utils/index.js.map +1 -1
  57. package/build-module/components/character-count/index.js +1 -1
  58. package/build-module/components/character-count/index.js.map +1 -1
  59. package/build-module/components/editor-help/add-blocks.native.js +7 -6
  60. package/build-module/components/editor-help/add-blocks.native.js.map +1 -1
  61. package/build-module/components/editor-help/customize-blocks.native.js +8 -7
  62. package/build-module/components/editor-help/customize-blocks.native.js.map +1 -1
  63. package/build-module/components/editor-help/help-detail-navigation-screen.native.js +31 -18
  64. package/build-module/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
  65. package/build-module/components/editor-help/help-get-support-button.native.js +34 -0
  66. package/build-module/components/editor-help/help-get-support-button.native.js.map +1 -0
  67. package/build-module/components/editor-help/help-topic-row.native.js +3 -2
  68. package/build-module/components/editor-help/help-topic-row.native.js.map +1 -1
  69. package/build-module/components/editor-help/index.native.js +77 -25
  70. package/build-module/components/editor-help/index.native.js.map +1 -1
  71. package/build-module/components/editor-help/intro-to-blocks.native.js +19 -10
  72. package/build-module/components/editor-help/intro-to-blocks.native.js.map +1 -1
  73. package/build-module/components/editor-help/move-blocks.native.js +7 -6
  74. package/build-module/components/editor-help/move-blocks.native.js.map +1 -1
  75. package/build-module/components/editor-help/remove-blocks.native.js +7 -6
  76. package/build-module/components/editor-help/remove-blocks.native.js.map +1 -1
  77. package/build-module/components/editor-help/view-sections.native.js +22 -5
  78. package/build-module/components/editor-help/view-sections.native.js.map +1 -1
  79. package/build-module/components/global-keyboard-shortcuts/save-shortcut.js +12 -14
  80. package/build-module/components/global-keyboard-shortcuts/save-shortcut.js.map +1 -1
  81. package/build-module/components/global-keyboard-shortcuts/visual-editor-shortcuts.js +0 -4
  82. package/build-module/components/global-keyboard-shortcuts/visual-editor-shortcuts.js.map +1 -1
  83. package/build-module/components/index.js +1 -0
  84. package/build-module/components/index.js.map +1 -1
  85. package/build-module/components/local-autosave-monitor/index.js +1 -2
  86. package/build-module/components/local-autosave-monitor/index.js.map +1 -1
  87. package/build-module/components/post-format/index.js +4 -2
  88. package/build-module/components/post-format/index.js.map +1 -1
  89. package/build-module/components/post-locked-modal/index.js +1 -1
  90. package/build-module/components/post-locked-modal/index.js.map +1 -1
  91. package/build-module/components/post-saved-state/index.js +38 -46
  92. package/build-module/components/post-saved-state/index.js.map +1 -1
  93. package/build-module/components/post-title/index.js +51 -22
  94. package/build-module/components/post-title/index.js.map +1 -1
  95. package/build-module/components/provider/index.native.js +18 -7
  96. package/build-module/components/provider/index.native.js.map +1 -1
  97. package/build-module/components/provider/use-block-editor-settings.js +31 -5
  98. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  99. package/build-module/components/word-count/index.js +1 -1
  100. package/build-module/components/word-count/index.js.map +1 -1
  101. package/build-module/store/actions.js +13 -36
  102. package/build-module/store/actions.js.map +1 -1
  103. package/build-module/store/defaults.js +7 -2
  104. package/build-module/store/defaults.js.map +1 -1
  105. package/build-module/store/selectors.js +3 -85
  106. package/build-module/store/selectors.js.map +1 -1
  107. package/build-module/{store/utils → utils}/get-template-part-icon.js +0 -0
  108. package/build-module/utils/get-template-part-icon.js.map +1 -0
  109. package/build-module/utils/index.js +1 -0
  110. package/build-module/utils/index.js.map +1 -1
  111. package/build-style/style-rtl.css +9 -60
  112. package/build-style/style.css +9 -60
  113. package/package.json +30 -30
  114. package/src/components/character-count/index.js +3 -2
  115. package/src/components/editor-help/add-blocks.native.js +17 -12
  116. package/src/components/editor-help/customize-blocks.native.js +16 -13
  117. package/src/components/editor-help/help-detail-navigation-screen.native.js +45 -15
  118. package/src/components/editor-help/help-get-support-button.native.js +38 -0
  119. package/src/components/editor-help/help-topic-row.native.js +2 -2
  120. package/src/components/editor-help/images/add-dark.png +0 -0
  121. package/src/components/editor-help/images/add-dark@2x.png +0 -0
  122. package/src/components/editor-help/images/add-dark@3x.png +0 -0
  123. package/src/components/editor-help/images/add-light.png +0 -0
  124. package/src/components/editor-help/images/add-light@2x.png +0 -0
  125. package/src/components/editor-help/images/add-light@3x.png +0 -0
  126. package/src/components/editor-help/images/block-layout-collage.png +0 -0
  127. package/src/components/editor-help/images/block-layout-collage@2x.png +0 -0
  128. package/src/components/editor-help/images/block-layout-collage@3x.png +0 -0
  129. package/src/components/editor-help/images/build-layouts-dark.png +0 -0
  130. package/src/components/editor-help/images/build-layouts-dark@2x.png +0 -0
  131. package/src/components/editor-help/images/build-layouts-dark@3x.png +0 -0
  132. package/src/components/editor-help/images/build-layouts-light.png +0 -0
  133. package/src/components/editor-help/images/build-layouts-light@2x.png +0 -0
  134. package/src/components/editor-help/images/build-layouts-light@3x.png +0 -0
  135. package/src/components/editor-help/images/edit-media-dark.png +0 -0
  136. package/src/components/editor-help/images/edit-media-dark@2x.png +0 -0
  137. package/src/components/editor-help/images/edit-media-dark@3x.png +0 -0
  138. package/src/components/editor-help/images/edit-media-light.png +0 -0
  139. package/src/components/editor-help/images/edit-media-light@2x.png +0 -0
  140. package/src/components/editor-help/images/edit-media-light@3x.png +0 -0
  141. package/src/components/editor-help/images/embed-media-dark.png +0 -0
  142. package/src/components/editor-help/images/embed-media-dark@2x.png +0 -0
  143. package/src/components/editor-help/images/embed-media-dark@3x.png +0 -0
  144. package/src/components/editor-help/images/embed-media-light.png +0 -0
  145. package/src/components/editor-help/images/embed-media-light@2x.png +0 -0
  146. package/src/components/editor-help/images/embed-media-light@3x.png +0 -0
  147. package/src/components/editor-help/images/move-dark.png +0 -0
  148. package/src/components/editor-help/images/move-dark@2x.png +0 -0
  149. package/src/components/editor-help/images/move-dark@3x.png +0 -0
  150. package/src/components/editor-help/images/move-light.png +0 -0
  151. package/src/components/editor-help/images/move-light@2x.png +0 -0
  152. package/src/components/editor-help/images/move-light@3x.png +0 -0
  153. package/src/components/editor-help/images/options-dark.png +0 -0
  154. package/src/components/editor-help/images/options-dark@2x.png +0 -0
  155. package/src/components/editor-help/images/options-dark@3x.png +0 -0
  156. package/src/components/editor-help/images/options-light.png +0 -0
  157. package/src/components/editor-help/images/options-light@2x.png +0 -0
  158. package/src/components/editor-help/images/options-light@3x.png +0 -0
  159. package/src/components/editor-help/images/rich-text-dark.png +0 -0
  160. package/src/components/editor-help/images/rich-text-dark@2x.png +0 -0
  161. package/src/components/editor-help/images/rich-text-dark@3x.png +0 -0
  162. package/src/components/editor-help/images/rich-text-light.png +0 -0
  163. package/src/components/editor-help/images/rich-text-light@2x.png +0 -0
  164. package/src/components/editor-help/images/rich-text-light@3x.png +0 -0
  165. package/src/components/editor-help/images/settings-dark.png +0 -0
  166. package/src/components/editor-help/images/settings-dark@2x.png +0 -0
  167. package/src/components/editor-help/images/settings-dark@3x.png +0 -0
  168. package/src/components/editor-help/images/settings-light.png +0 -0
  169. package/src/components/editor-help/images/settings-light@2x.png +0 -0
  170. package/src/components/editor-help/images/settings-light@3x.png +0 -0
  171. package/src/components/editor-help/index.native.js +129 -35
  172. package/src/components/editor-help/intro-to-blocks.native.js +63 -43
  173. package/src/components/editor-help/move-blocks.native.js +12 -7
  174. package/src/components/editor-help/remove-blocks.native.js +11 -8
  175. package/src/components/editor-help/style.android.scss +6 -0
  176. package/src/components/editor-help/style.ios.scss +6 -0
  177. package/src/components/editor-help/style.scss +47 -34
  178. package/src/components/editor-help/test/index.native.js +80 -0
  179. package/src/components/editor-help/view-sections.native.js +47 -4
  180. package/src/components/global-keyboard-shortcuts/save-shortcut.js +34 -42
  181. package/src/components/global-keyboard-shortcuts/visual-editor-shortcuts.js +8 -16
  182. package/src/components/index.js +1 -0
  183. package/src/components/local-autosave-monitor/index.js +1 -3
  184. package/src/components/post-format/index.js +6 -2
  185. package/src/components/post-format/style.scss +1 -0
  186. package/src/components/post-locked-modal/index.js +1 -1
  187. package/src/components/post-saved-state/index.js +41 -55
  188. package/src/components/post-saved-state/style.scss +8 -1
  189. package/src/components/post-saved-state/test/__snapshots__/index.js.snap +20 -0
  190. package/src/components/post-saved-state/test/index.js +2 -2
  191. package/src/components/post-title/index.js +45 -30
  192. package/src/components/post-title/style.scss +1 -70
  193. package/src/components/provider/index.native.js +17 -5
  194. package/src/components/provider/use-block-editor-settings.js +25 -0
  195. package/src/components/word-count/index.js +3 -2
  196. package/src/store/actions.js +13 -41
  197. package/src/store/defaults.js +7 -2
  198. package/src/store/selectors.js +2 -112
  199. package/src/{store/utils → utils}/get-template-part-icon.js +0 -0
  200. package/src/utils/index.js +1 -0
  201. package/build/store/utils/get-template-part-icon.js.map +0 -1
  202. package/build-module/store/utils/get-template-part-icon.js.map +0 -1
  203. package/src/components/editor-help/images/add-blocks.png +0 -0
  204. package/src/components/editor-help/images/customize-blocks.png +0 -0
  205. package/src/components/editor-help/images/cut-copy-duplicate-blocks.png +0 -0
  206. package/src/components/editor-help/images/edit-or-replace-media.png +0 -0
  207. package/src/components/editor-help/images/intro-blocks-1.png +0 -0
  208. package/src/components/editor-help/images/intro-blocks-2.png +0 -0
  209. package/src/components/editor-help/images/intro-blocks-3.png +0 -0
  210. package/src/components/editor-help/images/intro-blocks-4.png +0 -0
  211. package/src/components/editor-help/images/move-blocks.png +0 -0
  212. package/src/components/editor-help/images/remove-blocks.png +0 -0
  213. package/src/components/editor-help/images/what-is-a-block.png +0 -0
@@ -29,13 +29,14 @@ var _viewSections = require("./view-sections");
29
29
  * Internal dependencies
30
30
  */
31
31
  const RemoveBlocks = () => {
32
- return (0, _element.createElement)(_reactNative.View, {
32
+ return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_viewSections.HelpDetailImage, {
33
+ source: require('./images/options-light.png'),
34
+ sourceDarkMode: require('./images/options-dark.png')
35
+ }), (0, _element.createElement)(_reactNative.View, {
33
36
  style: _style.default.helpDetailContainer
34
- }, (0, _element.createElement)(_viewSections.HelpDetailImage, {
35
- source: require('./images/remove-blocks.png')
36
- }), (0, _element.createElement)(_viewSections.HelpDetailBodyText, {
37
+ }, (0, _element.createElement)(_viewSections.HelpDetailBodyText, {
37
38
  text: (0, _i18n.__)('To remove a block, select the block and click the three dots in the bottom right of the block to view the settings. From there, choose the option to remove the block.')
38
- }));
39
+ })));
39
40
  };
40
41
 
41
42
  var _default = RemoveBlocks;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/editor-help/remove-blocks.native.js"],"names":["RemoveBlocks","styles","helpDetailContainer","require"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AAKA;;AACA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AAIA,MAAMA,YAAY,GAAG,MAAM;AAC1B,SACC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGC,eAAOC;AAArB,KACC,4BAAC,6BAAD;AACC,IAAA,MAAM,EAAGC,OAAO,CAAE,4BAAF;AADjB,IADD,EAIC,4BAAC,gCAAD;AACC,IAAA,IAAI,EAAG,cACN,wKADM;AADR,IAJD,CADD;AAYA,CAbD;;eAeeH,Y","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport { HelpDetailBodyText, HelpDetailImage } from './view-sections';\n\nconst RemoveBlocks = () => {\n\treturn (\n\t\t<View style={ styles.helpDetailContainer }>\n\t\t\t<HelpDetailImage\n\t\t\t\tsource={ require( './images/remove-blocks.png' ) }\n\t\t\t/>\n\t\t\t<HelpDetailBodyText\n\t\t\t\ttext={ __(\n\t\t\t\t\t'To remove a block, select the block and click the three dots in the bottom right of the block to view the settings. From there, choose the option to remove the block.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t</View>\n\t);\n};\n\nexport default RemoveBlocks;\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/editor-help/remove-blocks.native.js"],"names":["RemoveBlocks","require","styles","helpDetailContainer"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AAKA;;AACA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AAIA,MAAMA,YAAY,GAAG,MAAM;AAC1B,SACC,qDACC,4BAAC,6BAAD;AACC,IAAA,MAAM,EAAGC,OAAO,CAAE,4BAAF,CADjB;AAEC,IAAA,cAAc,EAAGA,OAAO,CAAE,2BAAF;AAFzB,IADD,EAKC,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGC,eAAOC;AAArB,KACC,4BAAC,gCAAD;AACC,IAAA,IAAI,EAAG,cACN,wKADM;AADR,IADD,CALD,CADD;AAeA,CAhBD;;eAkBeH,Y","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport { HelpDetailBodyText, HelpDetailImage } from './view-sections';\n\nconst RemoveBlocks = () => {\n\treturn (\n\t\t<>\n\t\t\t<HelpDetailImage\n\t\t\t\tsource={ require( './images/options-light.png' ) }\n\t\t\t\tsourceDarkMode={ require( './images/options-dark.png' ) }\n\t\t\t/>\n\t\t\t<View style={ styles.helpDetailContainer }>\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'To remove a block, select the block and click the three dots in the bottom right of the block to view the settings. From there, choose the option to remove the block.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</>\n\t);\n};\n\nexport default RemoveBlocks;\n"]}
@@ -11,20 +11,28 @@ var _element = require("@wordpress/element");
11
11
 
12
12
  var _reactNative = require("react-native");
13
13
 
14
+ var _compose = require("@wordpress/compose");
15
+
14
16
  var _style = _interopRequireDefault(require("./style.scss"));
15
17
 
16
18
  /**
17
19
  * External dependencies
18
20
  */
19
21
 
22
+ /**
23
+ * WordPress dependencies
24
+ */
25
+
20
26
  /**
21
27
  * Internal dependencies
22
28
  */
23
29
  const HelpDetailBodyText = ({
24
30
  text
25
31
  }) => {
32
+ const bodyStyle = (0, _compose.usePreferredColorSchemeStyle)(_style.default.helpDetailBody, _style.default.helpDetailBodyDark);
26
33
  return (0, _element.createElement)(_reactNative.Text, {
27
- style: _style.default.helpDetailBody
34
+ selectable: true,
35
+ style: bodyStyle
28
36
  }, text);
29
37
  };
30
38
 
@@ -33,19 +41,29 @@ exports.HelpDetailBodyText = HelpDetailBodyText;
33
41
  const HelpDetailSectionHeadingText = ({
34
42
  text
35
43
  }) => {
44
+ const headingStyle = (0, _compose.usePreferredColorSchemeStyle)(_style.default.helpDetailSectionHeading, _style.default.helpDetailSectionHeadingDark);
36
45
  return (0, _element.createElement)(_reactNative.Text, {
37
- style: _style.default.helpDetailSectionHeading
46
+ accessibilityRole: "header",
47
+ selectable: true,
48
+ style: headingStyle
38
49
  }, text);
39
50
  };
40
51
 
41
52
  exports.HelpDetailSectionHeadingText = HelpDetailSectionHeadingText;
42
53
 
43
54
  const HelpDetailImage = ({
44
- source
55
+ accessible,
56
+ accessibilityLabel,
57
+ source,
58
+ sourceDarkMode
45
59
  }) => {
60
+ const imageStyle = (0, _compose.usePreferredColorSchemeStyle)(_style.default.helpDetailImage, _style.default.helpDetailImageDark);
61
+ const darkModeEnabled = (0, _compose.usePreferredColorScheme)() === 'dark';
46
62
  return (0, _element.createElement)(_reactNative.Image, {
47
- source: source,
48
- style: _style.default.helpDetailImage
63
+ accessible: accessible,
64
+ accessibilityLabel: accessibilityLabel,
65
+ source: darkModeEnabled && sourceDarkMode ? sourceDarkMode : source,
66
+ style: imageStyle
49
67
  });
50
68
  };
51
69
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/editor-help/view-sections.native.js"],"names":["HelpDetailBodyText","text","styles","helpDetailBody","HelpDetailSectionHeadingText","helpDetailSectionHeading","HelpDetailImage","source","helpDetailImage"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AARA;AACA;AACA;;AAGA;AACA;AACA;AAGO,MAAMA,kBAAkB,GAAG,CAAE;AAAEC,EAAAA;AAAF,CAAF,KAAgB;AACjD,SAAO,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGC,eAAOC;AAArB,KAAwCF,IAAxC,CAAP;AACA,CAFM;;;;AAIA,MAAMG,4BAA4B,GAAG,CAAE;AAAEH,EAAAA;AAAF,CAAF,KAAgB;AAC3D,SAAO,4BAAC,iBAAD;AAAM,IAAA,KAAK,EAAGC,eAAOG;AAArB,KAAkDJ,IAAlD,CAAP;AACA,CAFM;;;;AAIA,MAAMK,eAAe,GAAG,CAAE;AAAEC,EAAAA;AAAF,CAAF,KAAkB;AAChD,SAAO,4BAAC,kBAAD;AAAO,IAAA,MAAM,EAAGA,MAAhB;AAAyB,IAAA,KAAK,EAAGL,eAAOM;AAAxC,IAAP;AACA,CAFM","sourcesContent":["/**\n * External dependencies\n */\nimport { Text, Image } from 'react-native';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nexport const HelpDetailBodyText = ( { text } ) => {\n\treturn <Text style={ styles.helpDetailBody }>{ text }</Text>;\n};\n\nexport const HelpDetailSectionHeadingText = ( { text } ) => {\n\treturn <Text style={ styles.helpDetailSectionHeading }>{ text }</Text>;\n};\n\nexport const HelpDetailImage = ( { source } ) => {\n\treturn <Image source={ source } style={ styles.helpDetailImage } />;\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/editor-help/view-sections.native.js"],"names":["HelpDetailBodyText","text","bodyStyle","styles","helpDetailBody","helpDetailBodyDark","HelpDetailSectionHeadingText","headingStyle","helpDetailSectionHeading","helpDetailSectionHeadingDark","HelpDetailImage","accessible","accessibilityLabel","source","sourceDarkMode","imageStyle","helpDetailImage","helpDetailImageDark","darkModeEnabled"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AAQA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;AAGO,MAAMA,kBAAkB,GAAG,CAAE;AAAEC,EAAAA;AAAF,CAAF,KAAgB;AACjD,QAAMC,SAAS,GAAG,2CACjBC,eAAOC,cADU,EAEjBD,eAAOE,kBAFU,CAAlB;AAIA,SACC,4BAAC,iBAAD;AAAM,IAAA,UAAU,MAAhB;AAAiB,IAAA,KAAK,EAAGH;AAAzB,KACGD,IADH,CADD;AAKA,CAVM;;;;AAYA,MAAMK,4BAA4B,GAAG,CAAE;AAAEL,EAAAA;AAAF,CAAF,KAAgB;AAC3D,QAAMM,YAAY,GAAG,2CACpBJ,eAAOK,wBADa,EAEpBL,eAAOM,4BAFa,CAArB;AAIA,SACC,4BAAC,iBAAD;AAAM,IAAA,iBAAiB,EAAC,QAAxB;AAAiC,IAAA,UAAU,MAA3C;AAA4C,IAAA,KAAK,EAAGF;AAApD,KACGN,IADH,CADD;AAKA,CAVM;;;;AAYA,MAAMS,eAAe,GAAG,CAAE;AAChCC,EAAAA,UADgC;AAEhCC,EAAAA,kBAFgC;AAGhCC,EAAAA,MAHgC;AAIhCC,EAAAA;AAJgC,CAAF,KAKxB;AACN,QAAMC,UAAU,GAAG,2CAClBZ,eAAOa,eADW,EAElBb,eAAOc,mBAFW,CAAnB;AAIA,QAAMC,eAAe,GAAG,4CAA8B,MAAtD;AACA,SACC,4BAAC,kBAAD;AACC,IAAA,UAAU,EAAGP,UADd;AAEC,IAAA,kBAAkB,EAAGC,kBAFtB;AAGC,IAAA,MAAM,EACLM,eAAe,IAAIJ,cAAnB,GAAoCA,cAApC,GAAqDD,MAJvD;AAMC,IAAA,KAAK,EAAGE;AANT,IADD;AAUA,CArBM","sourcesContent":["/**\n * External dependencies\n */\nimport { Text, Image } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tusePreferredColorScheme,\n\tusePreferredColorSchemeStyle,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nexport const HelpDetailBodyText = ( { text } ) => {\n\tconst bodyStyle = usePreferredColorSchemeStyle(\n\t\tstyles.helpDetailBody,\n\t\tstyles.helpDetailBodyDark\n\t);\n\treturn (\n\t\t<Text selectable style={ bodyStyle }>\n\t\t\t{ text }\n\t\t</Text>\n\t);\n};\n\nexport const HelpDetailSectionHeadingText = ( { text } ) => {\n\tconst headingStyle = usePreferredColorSchemeStyle(\n\t\tstyles.helpDetailSectionHeading,\n\t\tstyles.helpDetailSectionHeadingDark\n\t);\n\treturn (\n\t\t<Text accessibilityRole=\"header\" selectable style={ headingStyle }>\n\t\t\t{ text }\n\t\t</Text>\n\t);\n};\n\nexport const HelpDetailImage = ( {\n\taccessible,\n\taccessibilityLabel,\n\tsource,\n\tsourceDarkMode,\n} ) => {\n\tconst imageStyle = usePreferredColorSchemeStyle(\n\t\tstyles.helpDetailImage,\n\t\tstyles.helpDetailImageDark\n\t);\n\tconst darkModeEnabled = usePreferredColorScheme() === 'dark';\n\treturn (\n\t\t<Image\n\t\t\taccessible={ accessible }\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tsource={\n\t\t\t\tdarkModeEnabled && sourceDarkMode ? sourceDarkMode : source\n\t\t\t}\n\t\t\tstyle={ imageStyle }\n\t\t/>\n\t);\n};\n"]}
@@ -29,24 +29,24 @@ function SaveShortcut({
29
29
  } = (0, _data.useDispatch)(_store.store);
30
30
  const {
31
31
  isEditedPostDirty,
32
- getPostEdits
33
- } = (0, _data.useSelect)(select => {
34
- const {
35
- isEditedPostDirty: _isEditedPostDirty,
36
- getPostEdits: _getPostEdits
37
- } = select(_store.store);
38
- return {
39
- isEditedPostDirty: _isEditedPostDirty,
40
- getPostEdits: _getPostEdits
41
- };
42
- }, []);
32
+ getPostEdits,
33
+ isPostSavingLocked
34
+ } = (0, _data.useSelect)(_store.store);
43
35
  (0, _keyboardShortcuts.useShortcut)('core/editor/save', event => {
44
- event.preventDefault(); // TODO: This should be handled in the `savePost` effect in
36
+ event.preventDefault();
37
+ /**
38
+ * Do not save the post if post saving is locked.
39
+ */
40
+
41
+ if (isPostSavingLocked()) {
42
+ return;
43
+ } // TODO: This should be handled in the `savePost` effect in
45
44
  // considering `isSaveable`. See note on `isEditedPostSaveable`
46
45
  // selector about dirtiness and meta-boxes.
47
46
  //
48
47
  // See: `isEditedPostSaveable`
49
48
 
49
+
50
50
  if (!isEditedPostDirty()) {
51
51
  return;
52
52
  } // The text editor requires that editor blocks are updated for a
@@ -65,8 +65,6 @@ function SaveShortcut({
65
65
  }
66
66
 
67
67
  savePost();
68
- }, {
69
- bindGlobal: true
70
68
  });
71
69
  return null;
72
70
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/global-keyboard-shortcuts/save-shortcut.js"],"names":["SaveShortcut","resetBlocksOnSave","resetEditorBlocks","savePost","editorStore","isEditedPostDirty","getPostEdits","select","_isEditedPostDirty","_getPostEdits","event","preventDefault","postEdits","content","blocks","bindGlobal"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AAKA;;AAVA;AACA;AACA;;AAKA;AACA;AACA;AAGA,SAASA,YAAT,CAAuB;AAAEC,EAAAA;AAAF,CAAvB,EAA+C;AAC9C,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MAAkC,uBAAaC,YAAb,CAAxC;AACA,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MAAsC,qBAAaC,MAAF,IAAc;AACpE,UAAM;AACLF,MAAAA,iBAAiB,EAAEG,kBADd;AAELF,MAAAA,YAAY,EAAEG;AAFT,QAGFF,MAAM,CAAEH,YAAF,CAHV;AAKA,WAAO;AACNC,MAAAA,iBAAiB,EAAEG,kBADb;AAENF,MAAAA,YAAY,EAAEG;AAFR,KAAP;AAIA,GAV2C,EAUzC,EAVyC,CAA5C;AAYA,sCACC,kBADD,EAEGC,KAAF,IAAa;AACZA,IAAAA,KAAK,CAACC,cAAN,GADY,CAGZ;AACA;AACA;AACA;AACA;;AACA,QAAK,CAAEN,iBAAiB,EAAxB,EAA6B;AAC5B;AACA,KAVW,CAYZ;AACA;AACA;AACA;;;AACA,QAAKJ,iBAAL,EAAyB;AACxB,YAAMW,SAAS,GAAGN,YAAY,EAA9B;;AACA,UACCM,SAAS,CAACC,OAAV,IACA,OAAOD,SAAS,CAACC,OAAjB,KAA6B,QAF9B,EAGE;AACD,cAAMC,MAAM,GAAG,mBAAOF,SAAS,CAACC,OAAjB,CAAf;AACAX,QAAAA,iBAAiB,CAAEY,MAAF,CAAjB;AACA;AACD;;AAEDX,IAAAA,QAAQ;AACR,GA9BF,EA+BC;AAAEY,IAAAA,UAAU,EAAE;AAAd,GA/BD;AAkCA,SAAO,IAAP;AACA;;eAEcf,Y","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction SaveShortcut( { resetBlocksOnSave } ) {\n\tconst { resetEditorBlocks, savePost } = useDispatch( editorStore );\n\tconst { isEditedPostDirty, getPostEdits } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisEditedPostDirty: _isEditedPostDirty,\n\t\t\tgetPostEdits: _getPostEdits,\n\t\t} = select( editorStore );\n\n\t\treturn {\n\t\t\tisEditedPostDirty: _isEditedPostDirty,\n\t\t\tgetPostEdits: _getPostEdits,\n\t\t};\n\t}, [] );\n\n\tuseShortcut(\n\t\t'core/editor/save',\n\t\t( event ) => {\n\t\t\tevent.preventDefault();\n\n\t\t\t// TODO: This should be handled in the `savePost` effect in\n\t\t\t// considering `isSaveable`. See note on `isEditedPostSaveable`\n\t\t\t// selector about dirtiness and meta-boxes.\n\t\t\t//\n\t\t\t// See: `isEditedPostSaveable`\n\t\t\tif ( ! isEditedPostDirty() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// The text editor requires that editor blocks are updated for a\n\t\t\t// save to work correctly. Usually this happens when the textarea\n\t\t\t// for the code editors blurs, but the shortcut can be used without\n\t\t\t// blurring the textarea.\n\t\t\tif ( resetBlocksOnSave ) {\n\t\t\t\tconst postEdits = getPostEdits();\n\t\t\t\tif (\n\t\t\t\t\tpostEdits.content &&\n\t\t\t\t\ttypeof postEdits.content === 'string'\n\t\t\t\t) {\n\t\t\t\t\tconst blocks = parse( postEdits.content );\n\t\t\t\t\tresetEditorBlocks( blocks );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsavePost();\n\t\t},\n\t\t{ bindGlobal: true }\n\t);\n\n\treturn null;\n}\n\nexport default SaveShortcut;\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/global-keyboard-shortcuts/save-shortcut.js"],"names":["SaveShortcut","resetBlocksOnSave","resetEditorBlocks","savePost","editorStore","isEditedPostDirty","getPostEdits","isPostSavingLocked","event","preventDefault","postEdits","content","blocks"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AAKA;;AAVA;AACA;AACA;;AAKA;AACA;AACA;AAGA,SAASA,YAAT,CAAuB;AAAEC,EAAAA;AAAF,CAAvB,EAA+C;AAC9C,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MAAkC,uBAAaC,YAAb,CAAxC;AACA,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA,YAArB;AAAmCC,IAAAA;AAAnC,MAA0D,qBAC/DH,YAD+D,CAAhE;AAIA,sCAAa,kBAAb,EAAmCI,KAAF,IAAa;AAC7CA,IAAAA,KAAK,CAACC,cAAN;AAEA;AACF;AACA;;AACE,QAAKF,kBAAkB,EAAvB,EAA4B;AAC3B;AACA,KAR4C,CAU7C;AACA;AACA;AACA;AACA;;;AACA,QAAK,CAAEF,iBAAiB,EAAxB,EAA6B;AAC5B;AACA,KAjB4C,CAmB7C;AACA;AACA;AACA;;;AACA,QAAKJ,iBAAL,EAAyB;AACxB,YAAMS,SAAS,GAAGJ,YAAY,EAA9B;;AACA,UAAKI,SAAS,CAACC,OAAV,IAAqB,OAAOD,SAAS,CAACC,OAAjB,KAA6B,QAAvD,EAAkE;AACjE,cAAMC,MAAM,GAAG,mBAAOF,SAAS,CAACC,OAAjB,CAAf;AACAT,QAAAA,iBAAiB,CAAEU,MAAF,CAAjB;AACA;AACD;;AAEDT,IAAAA,QAAQ;AACR,GAhCD;AAkCA,SAAO,IAAP;AACA;;eAEcH,Y","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction SaveShortcut( { resetBlocksOnSave } ) {\n\tconst { resetEditorBlocks, savePost } = useDispatch( editorStore );\n\tconst { isEditedPostDirty, getPostEdits, isPostSavingLocked } = useSelect(\n\t\teditorStore\n\t);\n\n\tuseShortcut( 'core/editor/save', ( event ) => {\n\t\tevent.preventDefault();\n\n\t\t/**\n\t\t * Do not save the post if post saving is locked.\n\t\t */\n\t\tif ( isPostSavingLocked() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// TODO: This should be handled in the `savePost` effect in\n\t\t// considering `isSaveable`. See note on `isEditedPostSaveable`\n\t\t// selector about dirtiness and meta-boxes.\n\t\t//\n\t\t// See: `isEditedPostSaveable`\n\t\tif ( ! isEditedPostDirty() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The text editor requires that editor blocks are updated for a\n\t\t// save to work correctly. Usually this happens when the textarea\n\t\t// for the code editors blurs, but the shortcut can be used without\n\t\t// blurring the textarea.\n\t\tif ( resetBlocksOnSave ) {\n\t\t\tconst postEdits = getPostEdits();\n\t\t\tif ( postEdits.content && typeof postEdits.content === 'string' ) {\n\t\t\t\tconst blocks = parse( postEdits.content );\n\t\t\t\tresetEditorBlocks( blocks );\n\t\t\t}\n\t\t}\n\n\t\tsavePost();\n\t} );\n\n\treturn null;\n}\n\nexport default SaveShortcut;\n"]}
@@ -32,14 +32,10 @@ function VisualEditorGlobalKeyboardShortcuts() {
32
32
  (0, _keyboardShortcuts.useShortcut)('core/editor/undo', event => {
33
33
  undo();
34
34
  event.preventDefault();
35
- }, {
36
- bindGlobal: true
37
35
  });
38
36
  (0, _keyboardShortcuts.useShortcut)('core/editor/redo', event => {
39
37
  redo();
40
38
  event.preventDefault();
41
- }, {
42
- bindGlobal: true
43
39
  });
44
40
  return (0, _element.createElement)(_saveShortcut.default, null);
45
41
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/global-keyboard-shortcuts/visual-editor-shortcuts.js"],"names":["VisualEditorGlobalKeyboardShortcuts","redo","undo","editorStore","event","preventDefault","bindGlobal"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAVA;AACA;AACA;;AAIA;AACA;AACA;AAIA,SAASA,mCAAT,GAA+C;AAC9C,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAiB,uBAAaC,YAAb,CAAvB;AAEA,sCACC,kBADD,EAEGC,KAAF,IAAa;AACZF,IAAAA,IAAI;AACJE,IAAAA,KAAK,CAACC,cAAN;AACA,GALF,EAMC;AAAEC,IAAAA,UAAU,EAAE;AAAd,GAND;AASA,sCACC,kBADD,EAEGF,KAAF,IAAa;AACZH,IAAAA,IAAI;AACJG,IAAAA,KAAK,CAACC,cAAN;AACA,GALF,EAMC;AAAEC,IAAAA,UAAU,EAAE;AAAd,GAND;AASA,SAAO,4BAAC,qBAAD,OAAP;AACA;;eAEcN,mC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SaveShortcut from './save-shortcut';\nimport { store as editorStore } from '../../store';\n\nfunction VisualEditorGlobalKeyboardShortcuts() {\n\tconst { redo, undo } = useDispatch( editorStore );\n\n\tuseShortcut(\n\t\t'core/editor/undo',\n\t\t( event ) => {\n\t\t\tundo();\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t{ bindGlobal: true }\n\t);\n\n\tuseShortcut(\n\t\t'core/editor/redo',\n\t\t( event ) => {\n\t\t\tredo();\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t{ bindGlobal: true }\n\t);\n\n\treturn <SaveShortcut />;\n}\n\nexport default VisualEditorGlobalKeyboardShortcuts;\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/global-keyboard-shortcuts/visual-editor-shortcuts.js"],"names":["VisualEditorGlobalKeyboardShortcuts","redo","undo","editorStore","event","preventDefault"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAVA;AACA;AACA;;AAIA;AACA;AACA;AAIA,SAASA,mCAAT,GAA+C;AAC9C,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAiB,uBAAaC,YAAb,CAAvB;AAEA,sCAAa,kBAAb,EAAmCC,KAAF,IAAa;AAC7CF,IAAAA,IAAI;AACJE,IAAAA,KAAK,CAACC,cAAN;AACA,GAHD;AAKA,sCAAa,kBAAb,EAAmCD,KAAF,IAAa;AAC7CH,IAAAA,IAAI;AACJG,IAAAA,KAAK,CAACC,cAAN;AACA,GAHD;AAKA,SAAO,4BAAC,qBAAD,OAAP;AACA;;eAEcL,mC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SaveShortcut from './save-shortcut';\nimport { store as editorStore } from '../../store';\n\nfunction VisualEditorGlobalKeyboardShortcuts() {\n\tconst { redo, undo } = useDispatch( editorStore );\n\n\tuseShortcut( 'core/editor/undo', ( event ) => {\n\t\tundo();\n\t\tevent.preventDefault();\n\t} );\n\n\tuseShortcut( 'core/editor/redo', ( event ) => {\n\t\tredo();\n\t\tevent.preventDefault();\n\t} );\n\n\treturn <SaveShortcut />;\n}\n\nexport default VisualEditorGlobalKeyboardShortcuts;\n"]}
@@ -62,6 +62,7 @@ var _exportNames = {
62
62
  PostVisibilityLabel: true,
63
63
  PostVisibilityCheck: true,
64
64
  TableOfContents: true,
65
+ ThemeSupportCheck: true,
65
66
  UnsavedChangesWarning: true,
66
67
  WordCount: true,
67
68
  EditorProvider: true
@@ -402,6 +403,12 @@ Object.defineProperty(exports, "TableOfContents", {
402
403
  return _tableOfContents.default;
403
404
  }
404
405
  });
406
+ Object.defineProperty(exports, "ThemeSupportCheck", {
407
+ enumerable: true,
408
+ get: function () {
409
+ return _themeSupportCheck.default;
410
+ }
411
+ });
405
412
  Object.defineProperty(exports, "UnsavedChangesWarning", {
406
413
  enumerable: true,
407
414
  get: function () {
@@ -547,6 +554,8 @@ var _check14 = _interopRequireDefault(require("./post-visibility/check"));
547
554
 
548
555
  var _tableOfContents = _interopRequireDefault(require("./table-of-contents"));
549
556
 
557
+ var _themeSupportCheck = _interopRequireDefault(require("./theme-support-check"));
558
+
550
559
  var _unsavedChangesWarning = _interopRequireDefault(require("./unsaved-changes-warning"));
551
560
 
552
561
  var _wordCount = _interopRequireDefault(require("./word-count"));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["// Block Creation Components\nexport * from './autocompleters';\n\n// Post Related Components\nexport { default as AutosaveMonitor } from './autosave-monitor';\nexport { default as DocumentOutline } from './document-outline';\nexport { default as DocumentOutlineCheck } from './document-outline/check';\nexport { default as VisualEditorGlobalKeyboardShortcuts } from './global-keyboard-shortcuts/visual-editor-shortcuts';\nexport { default as TextEditorGlobalKeyboardShortcuts } from './global-keyboard-shortcuts/text-editor-shortcuts';\nexport { default as EditorKeyboardShortcutsRegister } from './global-keyboard-shortcuts/register-shortcuts';\nexport { default as EditorHistoryRedo } from './editor-history/redo';\nexport { default as EditorHistoryUndo } from './editor-history/undo';\nexport { default as EditorNotices } from './editor-notices';\nexport { default as EditorSnackbars } from './editor-snackbars';\nexport { default as EntitiesSavedStates } from './entities-saved-states';\nexport { default as ErrorBoundary } from './error-boundary';\nexport { default as LocalAutosaveMonitor } from './local-autosave-monitor';\nexport { default as PageAttributesCheck } from './page-attributes/check';\nexport { default as PageAttributesOrder } from './page-attributes/order';\nexport { default as PageAttributesParent } from './page-attributes/parent';\nexport { default as PageTemplate } from './post-template';\nexport { default as PostAuthor } from './post-author';\nexport { default as PostAuthorCheck } from './post-author/check';\nexport { default as PostComments } from './post-comments';\nexport { default as PostExcerpt } from './post-excerpt';\nexport { default as PostExcerptCheck } from './post-excerpt/check';\nexport { default as PostFeaturedImage } from './post-featured-image';\nexport { default as PostFeaturedImageCheck } from './post-featured-image/check';\nexport { default as PostFormat } from './post-format';\nexport { default as PostFormatCheck } from './post-format/check';\nexport { default as PostLastRevision } from './post-last-revision';\nexport { default as PostLastRevisionCheck } from './post-last-revision/check';\nexport { default as PostLockedModal } from './post-locked-modal';\nexport { default as PostPendingStatus } from './post-pending-status';\nexport { default as PostPendingStatusCheck } from './post-pending-status/check';\nexport { default as PostPingbacks } from './post-pingbacks';\nexport { default as PostPreviewButton } from './post-preview-button';\nexport { default as PostPublishButton } from './post-publish-button';\nexport { default as PostPublishButtonLabel } from './post-publish-button/label';\nexport { default as PostPublishPanel } from './post-publish-panel';\nexport { default as PostSavedState } from './post-saved-state';\nexport { default as PostSchedule } from './post-schedule';\nexport { default as PostScheduleCheck } from './post-schedule/check';\nexport { default as PostScheduleLabel } from './post-schedule/label';\nexport { default as PostSlug } from './post-slug';\nexport { default as PostSlugCheck } from './post-slug/check';\nexport { default as PostSticky } from './post-sticky';\nexport { default as PostStickyCheck } from './post-sticky/check';\nexport { default as PostSwitchToDraftButton } from './post-switch-to-draft-button';\nexport { default as PostTaxonomies } from './post-taxonomies';\nexport { default as PostTaxonomiesCheck } from './post-taxonomies/check';\nexport { default as PostTextEditor } from './post-text-editor';\nexport { default as PostTitle } from './post-title';\nexport { default as PostTrash } from './post-trash';\nexport { default as PostTrashCheck } from './post-trash/check';\nexport { default as PostTypeSupportCheck } from './post-type-support-check';\nexport { default as PostVisibility } from './post-visibility';\nexport { default as PostVisibilityLabel } from './post-visibility/label';\nexport { default as PostVisibilityCheck } from './post-visibility/check';\nexport { default as TableOfContents } from './table-of-contents';\nexport { default as UnsavedChangesWarning } from './unsaved-changes-warning';\nexport { default as WordCount } from './word-count';\n\n// State Related Components\nexport { default as EditorProvider } from './provider';\n\nexport * from './deprecated';\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["// Block Creation Components\nexport * from './autocompleters';\n\n// Post Related Components\nexport { default as AutosaveMonitor } from './autosave-monitor';\nexport { default as DocumentOutline } from './document-outline';\nexport { default as DocumentOutlineCheck } from './document-outline/check';\nexport { default as VisualEditorGlobalKeyboardShortcuts } from './global-keyboard-shortcuts/visual-editor-shortcuts';\nexport { default as TextEditorGlobalKeyboardShortcuts } from './global-keyboard-shortcuts/text-editor-shortcuts';\nexport { default as EditorKeyboardShortcutsRegister } from './global-keyboard-shortcuts/register-shortcuts';\nexport { default as EditorHistoryRedo } from './editor-history/redo';\nexport { default as EditorHistoryUndo } from './editor-history/undo';\nexport { default as EditorNotices } from './editor-notices';\nexport { default as EditorSnackbars } from './editor-snackbars';\nexport { default as EntitiesSavedStates } from './entities-saved-states';\nexport { default as ErrorBoundary } from './error-boundary';\nexport { default as LocalAutosaveMonitor } from './local-autosave-monitor';\nexport { default as PageAttributesCheck } from './page-attributes/check';\nexport { default as PageAttributesOrder } from './page-attributes/order';\nexport { default as PageAttributesParent } from './page-attributes/parent';\nexport { default as PageTemplate } from './post-template';\nexport { default as PostAuthor } from './post-author';\nexport { default as PostAuthorCheck } from './post-author/check';\nexport { default as PostComments } from './post-comments';\nexport { default as PostExcerpt } from './post-excerpt';\nexport { default as PostExcerptCheck } from './post-excerpt/check';\nexport { default as PostFeaturedImage } from './post-featured-image';\nexport { default as PostFeaturedImageCheck } from './post-featured-image/check';\nexport { default as PostFormat } from './post-format';\nexport { default as PostFormatCheck } from './post-format/check';\nexport { default as PostLastRevision } from './post-last-revision';\nexport { default as PostLastRevisionCheck } from './post-last-revision/check';\nexport { default as PostLockedModal } from './post-locked-modal';\nexport { default as PostPendingStatus } from './post-pending-status';\nexport { default as PostPendingStatusCheck } from './post-pending-status/check';\nexport { default as PostPingbacks } from './post-pingbacks';\nexport { default as PostPreviewButton } from './post-preview-button';\nexport { default as PostPublishButton } from './post-publish-button';\nexport { default as PostPublishButtonLabel } from './post-publish-button/label';\nexport { default as PostPublishPanel } from './post-publish-panel';\nexport { default as PostSavedState } from './post-saved-state';\nexport { default as PostSchedule } from './post-schedule';\nexport { default as PostScheduleCheck } from './post-schedule/check';\nexport { default as PostScheduleLabel } from './post-schedule/label';\nexport { default as PostSlug } from './post-slug';\nexport { default as PostSlugCheck } from './post-slug/check';\nexport { default as PostSticky } from './post-sticky';\nexport { default as PostStickyCheck } from './post-sticky/check';\nexport { default as PostSwitchToDraftButton } from './post-switch-to-draft-button';\nexport { default as PostTaxonomies } from './post-taxonomies';\nexport { default as PostTaxonomiesCheck } from './post-taxonomies/check';\nexport { default as PostTextEditor } from './post-text-editor';\nexport { default as PostTitle } from './post-title';\nexport { default as PostTrash } from './post-trash';\nexport { default as PostTrashCheck } from './post-trash/check';\nexport { default as PostTypeSupportCheck } from './post-type-support-check';\nexport { default as PostVisibility } from './post-visibility';\nexport { default as PostVisibilityLabel } from './post-visibility/label';\nexport { default as PostVisibilityCheck } from './post-visibility/check';\nexport { default as TableOfContents } from './table-of-contents';\nexport { default as ThemeSupportCheck } from './theme-support-check';\nexport { default as UnsavedChangesWarning } from './unsaved-changes-warning';\nexport { default as WordCount } from './word-count';\n\n// State Related Components\nexport { default as EditorProvider } from './provider';\n\nexport * from './deprecated';\n"]}
@@ -70,12 +70,11 @@ function useAutosaveNotice() {
70
70
  } = (0, _data.useSelect)(select => ({
71
71
  postId: select(_store.store).getCurrentPostId(),
72
72
  isEditedPostNew: select(_store.store).isEditedPostNew(),
73
- getEditedPostAttribute: select(_store.store).getEditedPostAttribute,
74
73
  hasRemoteAutosave: !!select(_store.store).getEditorSettings().autosave
75
74
  }), []);
76
75
  const {
77
76
  getEditedPostAttribute
78
- } = (0, _data.useSelect)('core/editor');
77
+ } = (0, _data.useSelect)(_store.store);
79
78
  const {
80
79
  createWarningNotice,
81
80
  removeNotice
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/local-autosave-monitor/index.js"],"names":["requestIdleCallback","window","requestAnimationFrame","hasSessionStorageSupport","sessionStorage","setItem","removeItem","error","useAutosaveNotice","postId","isEditedPostNew","hasRemoteAutosave","select","editorStore","getCurrentPostId","getEditedPostAttribute","getEditorSettings","autosave","createWarningNotice","removeNotice","noticesStore","editPost","resetEditorBlocks","localAutosave","JSON","parse","post_title","title","content","excerpt","edits","hasDifference","Object","keys","some","key","noticeId","id","actions","label","onClick","useAutosavePurge","isDirty","isAutosaving","didError","isEditedPostDirty","isAutosavingPost","didPostSaveRequestFail","lastIsDirty","lastIsAutosaving","current","wasEditedPostNew","prevPostId","LocalAutosaveMonitor","deferredAutosave","local","localAutosaveInterval","__experimentalLocalAutosaveInterval"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { once, uniqueId, omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\nimport { ifCondition, usePrevious } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { parse } from '@wordpress/blocks';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport AutosaveMonitor from '../autosave-monitor';\nimport { localAutosaveGet, localAutosaveClear } from '../../store/controls';\nimport { store as editorStore } from '../../store';\n\nconst requestIdleCallback = window.requestIdleCallback\n\t? window.requestIdleCallback\n\t: window.requestAnimationFrame;\n\n/**\n * Function which returns true if the current environment supports browser\n * sessionStorage, or false otherwise. The result of this function is cached and\n * reused in subsequent invocations.\n */\nconst hasSessionStorageSupport = once( () => {\n\ttry {\n\t\t// Private Browsing in Safari 10 and earlier will throw an error when\n\t\t// attempting to set into sessionStorage. The test here is intentional in\n\t\t// causing a thrown error as condition bailing from local autosave.\n\t\twindow.sessionStorage.setItem( '__wpEditorTestSessionStorage', '' );\n\t\twindow.sessionStorage.removeItem( '__wpEditorTestSessionStorage' );\n\t\treturn true;\n\t} catch ( error ) {\n\t\treturn false;\n\t}\n} );\n\n/**\n * Custom hook which manages the creation of a notice prompting the user to\n * restore a local autosave, if one exists.\n */\nfunction useAutosaveNotice() {\n\tconst { postId, isEditedPostNew, hasRemoteAutosave } = useSelect(\n\t\t( select ) => ( {\n\t\t\tpostId: select( editorStore ).getCurrentPostId(),\n\t\t\tisEditedPostNew: select( editorStore ).isEditedPostNew(),\n\t\t\tgetEditedPostAttribute: select( editorStore )\n\t\t\t\t.getEditedPostAttribute,\n\t\t\thasRemoteAutosave: !! select( editorStore ).getEditorSettings()\n\t\t\t\t.autosave,\n\t\t} ),\n\t\t[]\n\t);\n\tconst { getEditedPostAttribute } = useSelect( 'core/editor' );\n\n\tconst { createWarningNotice, removeNotice } = useDispatch( noticesStore );\n\tconst { editPost, resetEditorBlocks } = useDispatch( editorStore );\n\n\tuseEffect( () => {\n\t\tlet localAutosave = localAutosaveGet( postId, isEditedPostNew );\n\t\tif ( ! localAutosave ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tlocalAutosave = JSON.parse( localAutosave );\n\t\t} catch ( error ) {\n\t\t\t// Not usable if it can't be parsed.\n\t\t\treturn;\n\t\t}\n\n\t\tconst { post_title: title, content, excerpt } = localAutosave;\n\t\tconst edits = { title, content, excerpt };\n\n\t\t{\n\t\t\t// Only display a notice if there is a difference between what has been\n\t\t\t// saved and that which is stored in sessionStorage.\n\t\t\tconst hasDifference = Object.keys( edits ).some( ( key ) => {\n\t\t\t\treturn edits[ key ] !== getEditedPostAttribute( key );\n\t\t\t} );\n\n\t\t\tif ( ! hasDifference ) {\n\t\t\t\t// If there is no difference, it can be safely ejected from storage.\n\t\t\t\tlocalAutosaveClear( postId, isEditedPostNew );\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif ( hasRemoteAutosave ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst noticeId = uniqueId( 'wpEditorAutosaveRestore' );\n\t\tcreateWarningNotice(\n\t\t\t__(\n\t\t\t\t'The backup of this post in your browser is different from the version below.'\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: noticeId,\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Restore the backup' ),\n\t\t\t\t\t\tonClick() {\n\t\t\t\t\t\t\teditPost( omit( edits, [ 'content' ] ) );\n\t\t\t\t\t\t\tresetEditorBlocks( parse( edits.content ) );\n\t\t\t\t\t\t\tremoveNotice( noticeId );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t);\n\t}, [ isEditedPostNew, postId ] );\n}\n\n/**\n * Custom hook which ejects a local autosave after a successful save occurs.\n */\nfunction useAutosavePurge() {\n\tconst {\n\t\tpostId,\n\t\tisEditedPostNew,\n\t\tisDirty,\n\t\tisAutosaving,\n\t\tdidError,\n\t} = useSelect(\n\t\t( select ) => ( {\n\t\t\tpostId: select( editorStore ).getCurrentPostId(),\n\t\t\tisEditedPostNew: select( editorStore ).isEditedPostNew(),\n\t\t\tisDirty: select( editorStore ).isEditedPostDirty(),\n\t\t\tisAutosaving: select( editorStore ).isAutosavingPost(),\n\t\t\tdidError: select( editorStore ).didPostSaveRequestFail(),\n\t\t} ),\n\t\t[]\n\t);\n\n\tconst lastIsDirty = useRef( isDirty );\n\tconst lastIsAutosaving = useRef( isAutosaving );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! didError &&\n\t\t\t( ( lastIsAutosaving.current && ! isAutosaving ) ||\n\t\t\t\t( lastIsDirty.current && ! isDirty ) )\n\t\t) {\n\t\t\tlocalAutosaveClear( postId, isEditedPostNew );\n\t\t}\n\n\t\tlastIsDirty.current = isDirty;\n\t\tlastIsAutosaving.current = isAutosaving;\n\t}, [ isDirty, isAutosaving, didError ] );\n\n\t// Once the isEditedPostNew changes from true to false, let's clear the auto-draft autosave.\n\tconst wasEditedPostNew = usePrevious( isEditedPostNew );\n\tconst prevPostId = usePrevious( postId );\n\tuseEffect( () => {\n\t\tif ( prevPostId === postId && wasEditedPostNew && ! isEditedPostNew ) {\n\t\t\tlocalAutosaveClear( postId, true );\n\t\t}\n\t}, [ isEditedPostNew, postId ] );\n}\n\nfunction LocalAutosaveMonitor() {\n\tconst { autosave } = useDispatch( editorStore );\n\tconst deferredAutosave = useCallback( () => {\n\t\trequestIdleCallback( () => autosave( { local: true } ) );\n\t}, [] );\n\tuseAutosaveNotice();\n\tuseAutosavePurge();\n\n\tconst { localAutosaveInterval } = useSelect(\n\t\t( select ) => ( {\n\t\t\tlocalAutosaveInterval: select( editorStore ).getEditorSettings()\n\t\t\t\t.__experimentalLocalAutosaveInterval,\n\t\t} ),\n\t\t[]\n\t);\n\n\treturn (\n\t\t<AutosaveMonitor\n\t\t\tinterval={ localAutosaveInterval }\n\t\t\tautosave={ deferredAutosave }\n\t\t/>\n\t);\n}\n\nexport default ifCondition( hasSessionStorageSupport )( LocalAutosaveMonitor );\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/local-autosave-monitor/index.js"],"names":["requestIdleCallback","window","requestAnimationFrame","hasSessionStorageSupport","sessionStorage","setItem","removeItem","error","useAutosaveNotice","postId","isEditedPostNew","hasRemoteAutosave","select","editorStore","getCurrentPostId","getEditorSettings","autosave","getEditedPostAttribute","createWarningNotice","removeNotice","noticesStore","editPost","resetEditorBlocks","localAutosave","JSON","parse","post_title","title","content","excerpt","edits","hasDifference","Object","keys","some","key","noticeId","id","actions","label","onClick","useAutosavePurge","isDirty","isAutosaving","didError","isEditedPostDirty","isAutosavingPost","didPostSaveRequestFail","lastIsDirty","lastIsAutosaving","current","wasEditedPostNew","prevPostId","LocalAutosaveMonitor","deferredAutosave","local","localAutosaveInterval","__experimentalLocalAutosaveInterval"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { once, uniqueId, omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\nimport { ifCondition, usePrevious } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { parse } from '@wordpress/blocks';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport AutosaveMonitor from '../autosave-monitor';\nimport { localAutosaveGet, localAutosaveClear } from '../../store/controls';\nimport { store as editorStore } from '../../store';\n\nconst requestIdleCallback = window.requestIdleCallback\n\t? window.requestIdleCallback\n\t: window.requestAnimationFrame;\n\n/**\n * Function which returns true if the current environment supports browser\n * sessionStorage, or false otherwise. The result of this function is cached and\n * reused in subsequent invocations.\n */\nconst hasSessionStorageSupport = once( () => {\n\ttry {\n\t\t// Private Browsing in Safari 10 and earlier will throw an error when\n\t\t// attempting to set into sessionStorage. The test here is intentional in\n\t\t// causing a thrown error as condition bailing from local autosave.\n\t\twindow.sessionStorage.setItem( '__wpEditorTestSessionStorage', '' );\n\t\twindow.sessionStorage.removeItem( '__wpEditorTestSessionStorage' );\n\t\treturn true;\n\t} catch ( error ) {\n\t\treturn false;\n\t}\n} );\n\n/**\n * Custom hook which manages the creation of a notice prompting the user to\n * restore a local autosave, if one exists.\n */\nfunction useAutosaveNotice() {\n\tconst { postId, isEditedPostNew, hasRemoteAutosave } = useSelect(\n\t\t( select ) => ( {\n\t\t\tpostId: select( editorStore ).getCurrentPostId(),\n\t\t\tisEditedPostNew: select( editorStore ).isEditedPostNew(),\n\t\t\thasRemoteAutosave: !! select( editorStore ).getEditorSettings()\n\t\t\t\t.autosave,\n\t\t} ),\n\t\t[]\n\t);\n\tconst { getEditedPostAttribute } = useSelect( editorStore );\n\n\tconst { createWarningNotice, removeNotice } = useDispatch( noticesStore );\n\tconst { editPost, resetEditorBlocks } = useDispatch( editorStore );\n\n\tuseEffect( () => {\n\t\tlet localAutosave = localAutosaveGet( postId, isEditedPostNew );\n\t\tif ( ! localAutosave ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tlocalAutosave = JSON.parse( localAutosave );\n\t\t} catch ( error ) {\n\t\t\t// Not usable if it can't be parsed.\n\t\t\treturn;\n\t\t}\n\n\t\tconst { post_title: title, content, excerpt } = localAutosave;\n\t\tconst edits = { title, content, excerpt };\n\n\t\t{\n\t\t\t// Only display a notice if there is a difference between what has been\n\t\t\t// saved and that which is stored in sessionStorage.\n\t\t\tconst hasDifference = Object.keys( edits ).some( ( key ) => {\n\t\t\t\treturn edits[ key ] !== getEditedPostAttribute( key );\n\t\t\t} );\n\n\t\t\tif ( ! hasDifference ) {\n\t\t\t\t// If there is no difference, it can be safely ejected from storage.\n\t\t\t\tlocalAutosaveClear( postId, isEditedPostNew );\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif ( hasRemoteAutosave ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst noticeId = uniqueId( 'wpEditorAutosaveRestore' );\n\t\tcreateWarningNotice(\n\t\t\t__(\n\t\t\t\t'The backup of this post in your browser is different from the version below.'\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: noticeId,\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Restore the backup' ),\n\t\t\t\t\t\tonClick() {\n\t\t\t\t\t\t\teditPost( omit( edits, [ 'content' ] ) );\n\t\t\t\t\t\t\tresetEditorBlocks( parse( edits.content ) );\n\t\t\t\t\t\t\tremoveNotice( noticeId );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t);\n\t}, [ isEditedPostNew, postId ] );\n}\n\n/**\n * Custom hook which ejects a local autosave after a successful save occurs.\n */\nfunction useAutosavePurge() {\n\tconst {\n\t\tpostId,\n\t\tisEditedPostNew,\n\t\tisDirty,\n\t\tisAutosaving,\n\t\tdidError,\n\t} = useSelect(\n\t\t( select ) => ( {\n\t\t\tpostId: select( editorStore ).getCurrentPostId(),\n\t\t\tisEditedPostNew: select( editorStore ).isEditedPostNew(),\n\t\t\tisDirty: select( editorStore ).isEditedPostDirty(),\n\t\t\tisAutosaving: select( editorStore ).isAutosavingPost(),\n\t\t\tdidError: select( editorStore ).didPostSaveRequestFail(),\n\t\t} ),\n\t\t[]\n\t);\n\n\tconst lastIsDirty = useRef( isDirty );\n\tconst lastIsAutosaving = useRef( isAutosaving );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! didError &&\n\t\t\t( ( lastIsAutosaving.current && ! isAutosaving ) ||\n\t\t\t\t( lastIsDirty.current && ! isDirty ) )\n\t\t) {\n\t\t\tlocalAutosaveClear( postId, isEditedPostNew );\n\t\t}\n\n\t\tlastIsDirty.current = isDirty;\n\t\tlastIsAutosaving.current = isAutosaving;\n\t}, [ isDirty, isAutosaving, didError ] );\n\n\t// Once the isEditedPostNew changes from true to false, let's clear the auto-draft autosave.\n\tconst wasEditedPostNew = usePrevious( isEditedPostNew );\n\tconst prevPostId = usePrevious( postId );\n\tuseEffect( () => {\n\t\tif ( prevPostId === postId && wasEditedPostNew && ! isEditedPostNew ) {\n\t\t\tlocalAutosaveClear( postId, true );\n\t\t}\n\t}, [ isEditedPostNew, postId ] );\n}\n\nfunction LocalAutosaveMonitor() {\n\tconst { autosave } = useDispatch( editorStore );\n\tconst deferredAutosave = useCallback( () => {\n\t\trequestIdleCallback( () => autosave( { local: true } ) );\n\t}, [] );\n\tuseAutosaveNotice();\n\tuseAutosavePurge();\n\n\tconst { localAutosaveInterval } = useSelect(\n\t\t( select ) => ( {\n\t\t\tlocalAutosaveInterval: select( editorStore ).getEditorSettings()\n\t\t\t\t.__experimentalLocalAutosaveInterval,\n\t\t} ),\n\t\t[]\n\t);\n\n\treturn (\n\t\t<AutosaveMonitor\n\t\t\tinterval={ localAutosaveInterval }\n\t\t\tautosave={ deferredAutosave }\n\t\t/>\n\t);\n}\n\nexport default ifCondition( hasSessionStorageSupport )( LocalAutosaveMonitor );\n"]}
@@ -137,6 +137,8 @@ function PostFormat() {
137
137
  }, (0, _i18n.__)('Suggestion:'), ' ', (0, _element.createElement)(_components.Button, {
138
138
  variant: "link",
139
139
  onClick: () => onUpdatePostFormat(suggestion.id)
140
- }, suggestion.caption))));
140
+ }, (0, _i18n.sprintf)(
141
+ /* translators: %s: post format */
142
+ (0, _i18n.__)('Apply format: %s'), suggestion.caption)))));
141
143
  }
142
144
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-format/index.js"],"names":["POST_FORMATS","id","caption","sort","a","b","normalizedA","toUpperCase","normalizedB","PostFormat","instanceId","postFormatSelectorId","postFormat","suggestedFormat","supportedFormats","select","getEditedPostAttribute","getSuggestedPostFormat","editorStore","_postFormat","themeSupports","coreStore","getThemeSupports","formats","filter","format","suggestion","editPost","onUpdatePostFormat","map","label","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, get, includes, union } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Button, SelectControl } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostFormatCheck from './check';\nimport { store as editorStore } from '../../store';\n\n// All WP post formats, sorted alphabetically by translated name.\nexport const POST_FORMATS = [\n\t{ id: 'aside', caption: __( 'Aside' ) },\n\t{ id: 'audio', caption: __( 'Audio' ) },\n\t{ id: 'chat', caption: __( 'Chat' ) },\n\t{ id: 'gallery', caption: __( 'Gallery' ) },\n\t{ id: 'image', caption: __( 'Image' ) },\n\t{ id: 'link', caption: __( 'Link' ) },\n\t{ id: 'quote', caption: __( 'Quote' ) },\n\t{ id: 'standard', caption: __( 'Standard' ) },\n\t{ id: 'status', caption: __( 'Status' ) },\n\t{ id: 'video', caption: __( 'Video' ) },\n].sort( ( a, b ) => {\n\tconst normalizedA = a.caption.toUpperCase();\n\tconst normalizedB = b.caption.toUpperCase();\n\n\tif ( normalizedA < normalizedB ) {\n\t\treturn -1;\n\t}\n\tif ( normalizedA > normalizedB ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n} );\n\nexport default function PostFormat() {\n\tconst instanceId = useInstanceId( PostFormat );\n\tconst postFormatSelectorId = `post-format-selector-${ instanceId }`;\n\n\tconst { postFormat, suggestedFormat, supportedFormats } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostAttribute, getSuggestedPostFormat } = select(\n\t\t\t\teditorStore\n\t\t\t);\n\t\t\tconst _postFormat = getEditedPostAttribute( 'format' );\n\t\t\tconst themeSupports = select( coreStore ).getThemeSupports();\n\t\t\treturn {\n\t\t\t\tpostFormat: _postFormat ?? 'standard',\n\t\t\t\tsuggestedFormat: getSuggestedPostFormat(),\n\t\t\t\t// Ensure current format is always in the set.\n\t\t\t\t// The current format may not be a format supported by the theme.\n\t\t\t\tsupportedFormats: union(\n\t\t\t\t\t[ _postFormat ],\n\t\t\t\t\tget( themeSupports, [ 'formats' ], [] )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst formats = POST_FORMATS.filter( ( format ) =>\n\t\tincludes( supportedFormats, format.id )\n\t);\n\tconst suggestion = find(\n\t\tformats,\n\t\t( format ) => format.id === suggestedFormat\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tconst onUpdatePostFormat = ( format ) => editPost( { format } );\n\n\treturn (\n\t\t<PostFormatCheck>\n\t\t\t<div className=\"editor-post-format\">\n\t\t\t\t<div className=\"editor-post-format__content\">\n\t\t\t\t\t<label htmlFor={ postFormatSelectorId }>\n\t\t\t\t\t\t{ __( 'Post Format' ) }\n\t\t\t\t\t</label>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tvalue={ postFormat }\n\t\t\t\t\t\tonChange={ ( format ) => onUpdatePostFormat( format ) }\n\t\t\t\t\t\tid={ postFormatSelectorId }\n\t\t\t\t\t\toptions={ formats.map( ( format ) => ( {\n\t\t\t\t\t\t\tlabel: format.caption,\n\t\t\t\t\t\t\tvalue: format.id,\n\t\t\t\t\t\t} ) ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{ suggestion && suggestion.id !== postFormat && (\n\t\t\t\t\t<div className=\"editor-post-format__suggestion\">\n\t\t\t\t\t\t{ __( 'Suggestion:' ) }{ ' ' }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tonUpdatePostFormat( suggestion.id )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ suggestion.caption }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</PostFormatCheck>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-format/index.js"],"names":["POST_FORMATS","id","caption","sort","a","b","normalizedA","toUpperCase","normalizedB","PostFormat","instanceId","postFormatSelectorId","postFormat","suggestedFormat","supportedFormats","select","getEditedPostAttribute","getSuggestedPostFormat","editorStore","_postFormat","themeSupports","coreStore","getThemeSupports","formats","filter","format","suggestion","editPost","onUpdatePostFormat","map","label","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, get, includes, union } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button, SelectControl } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostFormatCheck from './check';\nimport { store as editorStore } from '../../store';\n\n// All WP post formats, sorted alphabetically by translated name.\nexport const POST_FORMATS = [\n\t{ id: 'aside', caption: __( 'Aside' ) },\n\t{ id: 'audio', caption: __( 'Audio' ) },\n\t{ id: 'chat', caption: __( 'Chat' ) },\n\t{ id: 'gallery', caption: __( 'Gallery' ) },\n\t{ id: 'image', caption: __( 'Image' ) },\n\t{ id: 'link', caption: __( 'Link' ) },\n\t{ id: 'quote', caption: __( 'Quote' ) },\n\t{ id: 'standard', caption: __( 'Standard' ) },\n\t{ id: 'status', caption: __( 'Status' ) },\n\t{ id: 'video', caption: __( 'Video' ) },\n].sort( ( a, b ) => {\n\tconst normalizedA = a.caption.toUpperCase();\n\tconst normalizedB = b.caption.toUpperCase();\n\n\tif ( normalizedA < normalizedB ) {\n\t\treturn -1;\n\t}\n\tif ( normalizedA > normalizedB ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n} );\n\nexport default function PostFormat() {\n\tconst instanceId = useInstanceId( PostFormat );\n\tconst postFormatSelectorId = `post-format-selector-${ instanceId }`;\n\n\tconst { postFormat, suggestedFormat, supportedFormats } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostAttribute, getSuggestedPostFormat } = select(\n\t\t\t\teditorStore\n\t\t\t);\n\t\t\tconst _postFormat = getEditedPostAttribute( 'format' );\n\t\t\tconst themeSupports = select( coreStore ).getThemeSupports();\n\t\t\treturn {\n\t\t\t\tpostFormat: _postFormat ?? 'standard',\n\t\t\t\tsuggestedFormat: getSuggestedPostFormat(),\n\t\t\t\t// Ensure current format is always in the set.\n\t\t\t\t// The current format may not be a format supported by the theme.\n\t\t\t\tsupportedFormats: union(\n\t\t\t\t\t[ _postFormat ],\n\t\t\t\t\tget( themeSupports, [ 'formats' ], [] )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst formats = POST_FORMATS.filter( ( format ) =>\n\t\tincludes( supportedFormats, format.id )\n\t);\n\tconst suggestion = find(\n\t\tformats,\n\t\t( format ) => format.id === suggestedFormat\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tconst onUpdatePostFormat = ( format ) => editPost( { format } );\n\n\treturn (\n\t\t<PostFormatCheck>\n\t\t\t<div className=\"editor-post-format\">\n\t\t\t\t<div className=\"editor-post-format__content\">\n\t\t\t\t\t<label htmlFor={ postFormatSelectorId }>\n\t\t\t\t\t\t{ __( 'Post Format' ) }\n\t\t\t\t\t</label>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tvalue={ postFormat }\n\t\t\t\t\t\tonChange={ ( format ) => onUpdatePostFormat( format ) }\n\t\t\t\t\t\tid={ postFormatSelectorId }\n\t\t\t\t\t\toptions={ formats.map( ( format ) => ( {\n\t\t\t\t\t\t\tlabel: format.caption,\n\t\t\t\t\t\t\tvalue: format.id,\n\t\t\t\t\t\t} ) ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{ suggestion && suggestion.id !== postFormat && (\n\t\t\t\t\t<div className=\"editor-post-format__suggestion\">\n\t\t\t\t\t\t{ __( 'Suggestion:' ) }{ ' ' }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tonUpdatePostFormat( suggestion.id )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: post format */\n\t\t\t\t\t\t\t\t__( 'Apply format: %s' ),\n\t\t\t\t\t\t\t\tsuggestion.caption\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</PostFormatCheck>\n\t);\n}\n"]}
@@ -79,7 +79,7 @@ function PostLockedModal() {
79
79
  activePostLock: getActivePostLock(),
80
80
  postType: getPostType(getEditedPostAttribute('type'))
81
81
  };
82
- });
82
+ }, []);
83
83
  (0, _element.useEffect)(() => {
84
84
  /**
85
85
  * Keep the lock refreshed.
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/editor/src/components/post-locked-modal/index.js"],"names":["PostLockedModal","instanceId","hookName","autosave","updatePostLock","editorStore","isLocked","isTakeover","user","postId","postLockUtils","activePostLock","postType","select","isPostLocked","isPostLockTakeover","getPostLockUser","getCurrentPostId","getActivePostLock","getEditedPostAttribute","getEditorSettings","getPostType","coreStore","sendPostLock","data","lock","post_id","receivePostLock","received","lock_error","avatar","avatar_src","new_lock","releasePostLock","window","FormData","append","unlockNonce","navigator","sendBeacon","ajaxUrl","xhr","XMLHttpRequest","open","send","addEventListener","removeEventListener","userDisplayName","name","userAvatar","unlockUrl","lockKey","post","action","_wpnonce","nonce","allPostsUrl","post_type","allPostsLabel"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Modal, Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useEffect } from '@wordpress/element';\nimport { addAction, removeAction } from '@wordpress/hooks';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getWPAdminURL } from '../../utils/url';\nimport PostPreviewButton from '../post-preview-button';\nimport { store as editorStore } from '../../store';\n\nexport default function PostLockedModal() {\n\tconst instanceId = useInstanceId( PostLockedModal );\n\tconst hookName = 'core/editor/post-locked-modal-' + instanceId;\n\tconst { autosave, updatePostLock } = useDispatch( editorStore );\n\tconst {\n\t\tisLocked,\n\t\tisTakeover,\n\t\tuser,\n\t\tpostId,\n\t\tpostLockUtils,\n\t\tactivePostLock,\n\t\tpostType,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisPostLocked,\n\t\t\tisPostLockTakeover,\n\t\t\tgetPostLockUser,\n\t\t\tgetCurrentPostId,\n\t\t\tgetActivePostLock,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\treturn {\n\t\t\tisLocked: isPostLocked(),\n\t\t\tisTakeover: isPostLockTakeover(),\n\t\t\tuser: getPostLockUser(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostLockUtils: getEditorSettings().postLockUtils,\n\t\t\tactivePostLock: getActivePostLock(),\n\t\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\t};\n\t} );\n\n\tuseEffect( () => {\n\t\t/**\n\t\t * Keep the lock refreshed.\n\t\t *\n\t\t * When the user does not send a heartbeat in a heartbeat-tick\n\t\t * the user is no longer editing and another user can start editing.\n\t\t *\n\t\t * @param {Object} data Data to send in the heartbeat request.\n\t\t */\n\t\tfunction sendPostLock( data ) {\n\t\t\tif ( isLocked ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdata[ 'wp-refresh-post-lock' ] = {\n\t\t\t\tlock: activePostLock,\n\t\t\t\tpost_id: postId,\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Refresh post locks: update the lock string or show the dialog if somebody has taken over editing.\n\t\t *\n\t\t * @param {Object} data Data received in the heartbeat request\n\t\t */\n\t\tfunction receivePostLock( data ) {\n\t\t\tif ( ! data[ 'wp-refresh-post-lock' ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst received = data[ 'wp-refresh-post-lock' ];\n\t\t\tif ( received.lock_error ) {\n\t\t\t\t// Auto save and display the takeover modal.\n\t\t\t\tautosave();\n\t\t\t\tupdatePostLock( {\n\t\t\t\t\tisLocked: true,\n\t\t\t\t\tisTakeover: true,\n\t\t\t\t\tuser: {\n\t\t\t\t\t\tavatar: received.lock_error.avatar_src,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} else if ( received.new_lock ) {\n\t\t\t\tupdatePostLock( {\n\t\t\t\t\tisLocked: false,\n\t\t\t\t\tactivePostLock: received.new_lock,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Unlock the post before the window is exited.\n\t\t */\n\t\tfunction releasePostLock() {\n\t\t\tif ( isLocked || ! activePostLock ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst data = new window.FormData();\n\t\t\tdata.append( 'action', 'wp-remove-post-lock' );\n\t\t\tdata.append( '_wpnonce', postLockUtils.unlockNonce );\n\t\t\tdata.append( 'post_ID', postId );\n\t\t\tdata.append( 'active_post_lock', activePostLock );\n\n\t\t\tif ( window.navigator.sendBeacon ) {\n\t\t\t\twindow.navigator.sendBeacon( postLockUtils.ajaxUrl, data );\n\t\t\t} else {\n\t\t\t\tconst xhr = new window.XMLHttpRequest();\n\t\t\t\txhr.open( 'POST', postLockUtils.ajaxUrl, false );\n\t\t\t\txhr.send( data );\n\t\t\t}\n\t\t}\n\n\t\t// Details on these events on the Heartbeat API docs\n\t\t// https://developer.wordpress.org/plugins/javascript/heartbeat-api/\n\t\taddAction( 'heartbeat.send', hookName, sendPostLock );\n\t\taddAction( 'heartbeat.tick', hookName, receivePostLock );\n\t\twindow.addEventListener( 'beforeunload', releasePostLock );\n\n\t\treturn () => {\n\t\t\tremoveAction( 'heartbeat.send', hookName );\n\t\t\tremoveAction( 'heartbeat.tick', hookName );\n\t\t\twindow.removeEventListener( 'beforeunload', releasePostLock );\n\t\t};\n\t}, [] );\n\n\tif ( ! isLocked ) {\n\t\treturn null;\n\t}\n\n\tconst userDisplayName = user.name;\n\tconst userAvatar = user.avatar;\n\n\tconst unlockUrl = addQueryArgs( 'post.php', {\n\t\t'get-post-lock': '1',\n\t\tlockKey: true,\n\t\tpost: postId,\n\t\taction: 'edit',\n\t\t_wpnonce: postLockUtils.nonce,\n\t} );\n\tconst allPostsUrl = getWPAdminURL( 'edit.php', {\n\t\tpost_type: get( postType, [ 'slug' ] ),\n\t} );\n\tconst allPostsLabel = __( 'Exit the Editor' );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={\n\t\t\t\tisTakeover\n\t\t\t\t\t? __( 'Someone else has taken over this post.' )\n\t\t\t\t\t: __( 'This post is already being edited.' )\n\t\t\t}\n\t\t\tfocusOnMount={ true }\n\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\tshouldCloseOnEsc={ false }\n\t\t\tisDismissible={ false }\n\t\t\tclassName=\"editor-post-locked-modal\"\n\t\t>\n\t\t\t{ !! userAvatar && (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ userAvatar }\n\t\t\t\t\talt={ __( 'Avatar' ) }\n\t\t\t\t\tclassName=\"editor-post-locked-modal__avatar\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! isTakeover && (\n\t\t\t\t<div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{ userDisplayName\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: user's display name */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'%s now has editing control of this post. Don’t worry, your changes up to this moment have been saved.'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tuserDisplayName\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Another user now has editing control of this post. Don’t worry, your changes up to this moment have been saved.'\n\t\t\t\t\t\t\t ) }\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"editor-post-locked-modal__buttons\">\n\t\t\t\t\t\t<Button variant=\"primary\" href={ allPostsUrl }>\n\t\t\t\t\t\t\t{ allPostsLabel }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ ! isTakeover && (\n\t\t\t\t<div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{ userDisplayName\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: user's display name */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'%s is currently working on this post, which means you cannot make changes, unless you take over.'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tuserDisplayName\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Another user is currently working on this post, which means you cannot make changes, unless you take over.'\n\t\t\t\t\t\t\t ) }\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"editor-post-locked-modal__buttons\">\n\t\t\t\t\t\t<Button variant=\"secondary\" href={ allPostsUrl }>\n\t\t\t\t\t\t\t{ allPostsLabel }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<PostPreviewButton />\n\t\t\t\t\t\t<Button variant=\"primary\" href={ unlockUrl }>\n\t\t\t\t\t\t\t{ __( 'Take Over' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</Modal>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/editor/src/components/post-locked-modal/index.js"],"names":["PostLockedModal","instanceId","hookName","autosave","updatePostLock","editorStore","isLocked","isTakeover","user","postId","postLockUtils","activePostLock","postType","select","isPostLocked","isPostLockTakeover","getPostLockUser","getCurrentPostId","getActivePostLock","getEditedPostAttribute","getEditorSettings","getPostType","coreStore","sendPostLock","data","lock","post_id","receivePostLock","received","lock_error","avatar","avatar_src","new_lock","releasePostLock","window","FormData","append","unlockNonce","navigator","sendBeacon","ajaxUrl","xhr","XMLHttpRequest","open","send","addEventListener","removeEventListener","userDisplayName","name","userAvatar","unlockUrl","lockKey","post","action","_wpnonce","nonce","allPostsUrl","post_type","allPostsLabel"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Modal, Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useEffect } from '@wordpress/element';\nimport { addAction, removeAction } from '@wordpress/hooks';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getWPAdminURL } from '../../utils/url';\nimport PostPreviewButton from '../post-preview-button';\nimport { store as editorStore } from '../../store';\n\nexport default function PostLockedModal() {\n\tconst instanceId = useInstanceId( PostLockedModal );\n\tconst hookName = 'core/editor/post-locked-modal-' + instanceId;\n\tconst { autosave, updatePostLock } = useDispatch( editorStore );\n\tconst {\n\t\tisLocked,\n\t\tisTakeover,\n\t\tuser,\n\t\tpostId,\n\t\tpostLockUtils,\n\t\tactivePostLock,\n\t\tpostType,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisPostLocked,\n\t\t\tisPostLockTakeover,\n\t\t\tgetPostLockUser,\n\t\t\tgetCurrentPostId,\n\t\t\tgetActivePostLock,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\treturn {\n\t\t\tisLocked: isPostLocked(),\n\t\t\tisTakeover: isPostLockTakeover(),\n\t\t\tuser: getPostLockUser(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostLockUtils: getEditorSettings().postLockUtils,\n\t\t\tactivePostLock: getActivePostLock(),\n\t\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t/**\n\t\t * Keep the lock refreshed.\n\t\t *\n\t\t * When the user does not send a heartbeat in a heartbeat-tick\n\t\t * the user is no longer editing and another user can start editing.\n\t\t *\n\t\t * @param {Object} data Data to send in the heartbeat request.\n\t\t */\n\t\tfunction sendPostLock( data ) {\n\t\t\tif ( isLocked ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdata[ 'wp-refresh-post-lock' ] = {\n\t\t\t\tlock: activePostLock,\n\t\t\t\tpost_id: postId,\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Refresh post locks: update the lock string or show the dialog if somebody has taken over editing.\n\t\t *\n\t\t * @param {Object} data Data received in the heartbeat request\n\t\t */\n\t\tfunction receivePostLock( data ) {\n\t\t\tif ( ! data[ 'wp-refresh-post-lock' ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst received = data[ 'wp-refresh-post-lock' ];\n\t\t\tif ( received.lock_error ) {\n\t\t\t\t// Auto save and display the takeover modal.\n\t\t\t\tautosave();\n\t\t\t\tupdatePostLock( {\n\t\t\t\t\tisLocked: true,\n\t\t\t\t\tisTakeover: true,\n\t\t\t\t\tuser: {\n\t\t\t\t\t\tavatar: received.lock_error.avatar_src,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} else if ( received.new_lock ) {\n\t\t\t\tupdatePostLock( {\n\t\t\t\t\tisLocked: false,\n\t\t\t\t\tactivePostLock: received.new_lock,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Unlock the post before the window is exited.\n\t\t */\n\t\tfunction releasePostLock() {\n\t\t\tif ( isLocked || ! activePostLock ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst data = new window.FormData();\n\t\t\tdata.append( 'action', 'wp-remove-post-lock' );\n\t\t\tdata.append( '_wpnonce', postLockUtils.unlockNonce );\n\t\t\tdata.append( 'post_ID', postId );\n\t\t\tdata.append( 'active_post_lock', activePostLock );\n\n\t\t\tif ( window.navigator.sendBeacon ) {\n\t\t\t\twindow.navigator.sendBeacon( postLockUtils.ajaxUrl, data );\n\t\t\t} else {\n\t\t\t\tconst xhr = new window.XMLHttpRequest();\n\t\t\t\txhr.open( 'POST', postLockUtils.ajaxUrl, false );\n\t\t\t\txhr.send( data );\n\t\t\t}\n\t\t}\n\n\t\t// Details on these events on the Heartbeat API docs\n\t\t// https://developer.wordpress.org/plugins/javascript/heartbeat-api/\n\t\taddAction( 'heartbeat.send', hookName, sendPostLock );\n\t\taddAction( 'heartbeat.tick', hookName, receivePostLock );\n\t\twindow.addEventListener( 'beforeunload', releasePostLock );\n\n\t\treturn () => {\n\t\t\tremoveAction( 'heartbeat.send', hookName );\n\t\t\tremoveAction( 'heartbeat.tick', hookName );\n\t\t\twindow.removeEventListener( 'beforeunload', releasePostLock );\n\t\t};\n\t}, [] );\n\n\tif ( ! isLocked ) {\n\t\treturn null;\n\t}\n\n\tconst userDisplayName = user.name;\n\tconst userAvatar = user.avatar;\n\n\tconst unlockUrl = addQueryArgs( 'post.php', {\n\t\t'get-post-lock': '1',\n\t\tlockKey: true,\n\t\tpost: postId,\n\t\taction: 'edit',\n\t\t_wpnonce: postLockUtils.nonce,\n\t} );\n\tconst allPostsUrl = getWPAdminURL( 'edit.php', {\n\t\tpost_type: get( postType, [ 'slug' ] ),\n\t} );\n\tconst allPostsLabel = __( 'Exit the Editor' );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={\n\t\t\t\tisTakeover\n\t\t\t\t\t? __( 'Someone else has taken over this post.' )\n\t\t\t\t\t: __( 'This post is already being edited.' )\n\t\t\t}\n\t\t\tfocusOnMount={ true }\n\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\tshouldCloseOnEsc={ false }\n\t\t\tisDismissible={ false }\n\t\t\tclassName=\"editor-post-locked-modal\"\n\t\t>\n\t\t\t{ !! userAvatar && (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ userAvatar }\n\t\t\t\t\talt={ __( 'Avatar' ) }\n\t\t\t\t\tclassName=\"editor-post-locked-modal__avatar\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! isTakeover && (\n\t\t\t\t<div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{ userDisplayName\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: user's display name */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'%s now has editing control of this post. Don’t worry, your changes up to this moment have been saved.'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tuserDisplayName\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Another user now has editing control of this post. Don’t worry, your changes up to this moment have been saved.'\n\t\t\t\t\t\t\t ) }\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"editor-post-locked-modal__buttons\">\n\t\t\t\t\t\t<Button variant=\"primary\" href={ allPostsUrl }>\n\t\t\t\t\t\t\t{ allPostsLabel }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ ! isTakeover && (\n\t\t\t\t<div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{ userDisplayName\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: user's display name */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'%s is currently working on this post, which means you cannot make changes, unless you take over.'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tuserDisplayName\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Another user is currently working on this post, which means you cannot make changes, unless you take over.'\n\t\t\t\t\t\t\t ) }\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"editor-post-locked-modal__buttons\">\n\t\t\t\t\t\t<Button variant=\"secondary\" href={ allPostsUrl }>\n\t\t\t\t\t\t\t{ allPostsLabel }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<PostPreviewButton />\n\t\t\t\t\t\t<Button variant=\"primary\" href={ unlockUrl }>\n\t\t\t\t\t\t\t{ __( 'Take Over' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</Modal>\n\t);\n}\n"]}
@@ -109,45 +109,16 @@ function PostSavedState({
109
109
  }
110
110
 
111
111
  return () => clearTimeout(timeoutId);
112
- }, [isSaving]);
112
+ }, [isSaving]); // Once the post has been submitted for review this button
113
+ // is not needed for the contributor role.
113
114
 
114
- if (isSaving) {
115
- // TODO: Classes generation should be common across all return
116
- // paths of this function, including proper naming convention for
117
- // the "Save Draft" button.
118
- const classes = (0, _classnames.default)('editor-post-saved-state', 'is-saving', (0, _components.__unstableGetAnimateClassName)({
119
- type: 'loading'
120
- }), {
121
- 'is-autosaving': isAutosaving
122
- });
123
- return (0, _element.createElement)("span", {
124
- className: classes
125
- }, (0, _element.createElement)(_icons.Icon, {
126
- icon: _icons.cloud
127
- }), isAutosaving ? (0, _i18n.__)('Autosaving') : (0, _i18n.__)('Saving'));
115
+ if (!hasPublishAction && isPending) {
116
+ return null;
128
117
  }
129
118
 
130
119
  if (isPublished || isScheduled) {
131
120
  return (0, _element.createElement)(_postSwitchToDraftButton.default, null);
132
121
  }
133
-
134
- if (!isSaveable) {
135
- return null;
136
- }
137
-
138
- if (forceSavedMessage || !isNew && !isDirty) {
139
- return (0, _element.createElement)("span", {
140
- className: "editor-post-saved-state is-saved"
141
- }, (0, _element.createElement)(_icons.Icon, {
142
- icon: _icons.check
143
- }), (0, _i18n.__)('Saved'));
144
- } // Once the post has been submitted for review this button
145
- // is not needed for the contributor role.
146
-
147
-
148
- if (!hasPublishAction && isPending) {
149
- return null;
150
- }
151
122
  /* translators: button label text should, if possible, be under 16 characters. */
152
123
 
153
124
 
@@ -155,22 +126,42 @@ function PostSavedState({
155
126
  /* translators: button label text should, if possible, be under 16 characters. */
156
127
 
157
128
  const shortLabel = (0, _i18n.__)('Save');
129
+ const isSaved = forceSavedMessage || !isNew && !isDirty;
130
+ const isSavedState = isSaving || isSaved;
131
+ const isDisabled = isSaving || isSaved || !isSaveable;
132
+ let text;
133
+
134
+ if (isSaving) {
135
+ text = isAutosaving ? (0, _i18n.__)('Autosaving') : (0, _i18n.__)('Saving');
136
+ } else if (isSaved) {
137
+ text = (0, _i18n.__)('Saved');
138
+ } else if (isLargeViewport) {
139
+ text = label;
140
+ } else if (showIconLabels) {
141
+ text = shortLabel;
142
+ } // Use common Button instance for all saved states so that focus is not
143
+ // lost.
158
144
 
159
- if (!isLargeViewport) {
160
- return (0, _element.createElement)(_components.Button, {
161
- className: "editor-post-save-draft",
162
- label: label,
163
- onClick: () => savePost(),
164
- shortcut: _keycodes.displayShortcut.primary('s'),
165
- icon: _icons.cloudUpload
166
- }, showIconLabels && shortLabel);
167
- }
168
145
 
169
146
  return (0, _element.createElement)(_components.Button, {
170
- className: "editor-post-save-draft",
171
- onClick: () => savePost(),
147
+ className: isSaveable || isSaving ? (0, _classnames.default)({
148
+ 'editor-post-save-draft': !isSavedState,
149
+ 'editor-post-saved-state': isSavedState,
150
+ 'is-saving': isSaving,
151
+ 'is-autosaving': isAutosaving,
152
+ 'is-saved': isSaved,
153
+ [(0, _components.__unstableGetAnimateClassName)({
154
+ type: 'loading'
155
+ })]: isSaving
156
+ }) : undefined,
157
+ onClick: isDisabled ? undefined : () => savePost(),
172
158
  shortcut: _keycodes.displayShortcut.primary('s'),
173
- variant: "tertiary"
174
- }, label);
159
+ variant: isLargeViewport ? 'tertiary' : undefined,
160
+ icon: isLargeViewport ? undefined : _icons.cloudUpload,
161
+ label: label,
162
+ "aria-disabled": isDisabled
163
+ }, isSavedState && (0, _element.createElement)(_icons.Icon, {
164
+ icon: isSaved ? _icons.check : _icons.cloud
165
+ }), text);
175
166
  }
176
167
  //# sourceMappingURL=index.js.map