@wordpress/edit-site 5.31.0 → 5.32.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 (280) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-editor/editor-canvas.js +8 -1
  3. package/build/components/block-editor/editor-canvas.js.map +1 -1
  4. package/build/components/block-editor/site-editor-canvas.js +15 -4
  5. package/build/components/block-editor/site-editor-canvas.js.map +1 -1
  6. package/build/components/editor/index.js +12 -3
  7. package/build/components/editor/index.js.map +1 -1
  8. package/build/components/editor-canvas-container/index.js +1 -2
  9. package/build/components/editor-canvas-container/index.js.map +1 -1
  10. package/build/components/global-styles/background-panel.js +38 -0
  11. package/build/components/global-styles/background-panel.js.map +1 -0
  12. package/build/components/global-styles/font-families.js +1 -1
  13. package/build/components/global-styles/font-families.js.map +1 -1
  14. package/build/components/global-styles/font-library-modal/context.js +38 -9
  15. package/build/components/global-styles/font-library-modal/context.js.map +1 -1
  16. package/build/components/global-styles/font-library-modal/utils/index.js +20 -2
  17. package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  18. package/build/components/global-styles/palette.js +3 -1
  19. package/build/components/global-styles/palette.js.map +1 -1
  20. package/build/components/global-styles/preview-colors.js +2 -2
  21. package/build/components/global-styles/preview-colors.js.map +1 -1
  22. package/build/components/global-styles/root-menu.js +8 -2
  23. package/build/components/global-styles/root-menu.js.map +1 -1
  24. package/build/components/global-styles/screen-background.js +34 -0
  25. package/build/components/global-styles/screen-background.js.map +1 -0
  26. package/build/components/global-styles/screen-color-palette.js +2 -2
  27. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  28. package/build/components/global-styles/screen-colors.js +6 -4
  29. package/build/components/global-styles/screen-colors.js.map +1 -1
  30. package/build/components/global-styles/screen-style-variations.js +3 -37
  31. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  32. package/build/components/global-styles/screen-typography.js +6 -6
  33. package/build/components/global-styles/screen-typography.js.map +1 -1
  34. package/build/components/global-styles/style-variations-container.js +5 -2
  35. package/build/components/global-styles/style-variations-container.js.map +1 -1
  36. package/build/components/global-styles/ui.js +4 -1
  37. package/build/components/global-styles/ui.js.map +1 -1
  38. package/build/components/global-styles/variations/variations-color.js +10 -3
  39. package/build/components/global-styles/variations/variations-color.js.map +1 -1
  40. package/build/components/global-styles/variations/variations-typography.js +9 -2
  41. package/build/components/global-styles/variations/variations-typography.js.map +1 -1
  42. package/build/components/keyboard-shortcut-help-modal/index.js +3 -0
  43. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  44. package/build/components/layout/animation.js +129 -0
  45. package/build/components/layout/animation.js.map +1 -0
  46. package/build/components/layout/index.js +9 -17
  47. package/build/components/layout/index.js.map +1 -1
  48. package/build/components/layout/router.js +21 -18
  49. package/build/components/layout/router.js.map +1 -1
  50. package/build/components/page-pages/index.js +19 -17
  51. package/build/components/page-pages/index.js.map +1 -1
  52. package/build/components/page-patterns/index.js +18 -28
  53. package/build/components/page-patterns/index.js.map +1 -1
  54. package/build/components/page-patterns/search-items.js +16 -58
  55. package/build/components/page-patterns/search-items.js.map +1 -1
  56. package/build/components/page-templates-template-parts/actions.js +54 -41
  57. package/build/components/page-templates-template-parts/actions.js.map +1 -1
  58. package/build/components/page-templates-template-parts/index.js +26 -59
  59. package/build/components/page-templates-template-parts/index.js.map +1 -1
  60. package/build/components/plugin-template-setting-panel/index.js +12 -1
  61. package/build/components/plugin-template-setting-panel/index.js.map +1 -1
  62. package/build/components/save-button/index.js +45 -16
  63. package/build/components/save-button/index.js.map +1 -1
  64. package/build/components/save-hub/index.js +8 -112
  65. package/build/components/save-hub/index.js.map +1 -1
  66. package/build/components/sidebar/index.js +1 -5
  67. package/build/components/sidebar/index.js.map +1 -1
  68. package/build/components/sidebar-dataviews/default-views.js +1 -1
  69. package/build/components/sidebar-dataviews/default-views.js.map +1 -1
  70. package/build/components/sidebar-dataviews/index.js +1 -1
  71. package/build/components/sidebar-dataviews/index.js.map +1 -1
  72. package/build/components/sidebar-edit-mode/index.js +1 -2
  73. package/build/components/sidebar-edit-mode/index.js.map +1 -1
  74. package/build/components/sidebar-edit-mode/page-panels/index.js +5 -15
  75. package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  76. package/build/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
  77. package/build/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  78. package/build/components/sidebar-edit-mode/template-panel/index.js +10 -16
  79. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  80. package/build/components/sidebar-navigation-screen-details-footer/index.js +5 -1
  81. package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  82. package/build/components/sidebar-navigation-screen-global-styles/index.js +10 -5
  83. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  84. package/build/components/sidebar-navigation-screen-patterns/index.js +1 -5
  85. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  86. package/build/components/style-book/index.js +1 -1
  87. package/build/components/style-book/index.js.map +1 -1
  88. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +2 -2
  89. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  90. package/build/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
  91. package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  92. package/build/hooks/index.js +0 -1
  93. package/build/hooks/index.js.map +1 -1
  94. package/build/store/selectors.js +1 -9
  95. package/build/store/selectors.js.map +1 -1
  96. package/build-module/components/block-editor/editor-canvas.js +8 -1
  97. package/build-module/components/block-editor/editor-canvas.js.map +1 -1
  98. package/build-module/components/block-editor/site-editor-canvas.js +15 -4
  99. package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
  100. package/build-module/components/editor/index.js +13 -4
  101. package/build-module/components/editor/index.js.map +1 -1
  102. package/build-module/components/editor-canvas-container/index.js +1 -2
  103. package/build-module/components/editor-canvas-container/index.js.map +1 -1
  104. package/build-module/components/global-styles/background-panel.js +31 -0
  105. package/build-module/components/global-styles/background-panel.js.map +1 -0
  106. package/build-module/components/global-styles/font-families.js +1 -1
  107. package/build-module/components/global-styles/font-families.js.map +1 -1
  108. package/build-module/components/global-styles/font-library-modal/context.js +38 -9
  109. package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
  110. package/build-module/components/global-styles/font-library-modal/utils/index.js +20 -2
  111. package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
  112. package/build-module/components/global-styles/palette.js +3 -1
  113. package/build-module/components/global-styles/palette.js.map +1 -1
  114. package/build-module/components/global-styles/preview-colors.js +2 -2
  115. package/build-module/components/global-styles/preview-colors.js.map +1 -1
  116. package/build-module/components/global-styles/root-menu.js +9 -3
  117. package/build-module/components/global-styles/root-menu.js.map +1 -1
  118. package/build-module/components/global-styles/screen-background.js +26 -0
  119. package/build-module/components/global-styles/screen-background.js.map +1 -0
  120. package/build-module/components/global-styles/screen-color-palette.js +2 -2
  121. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  122. package/build-module/components/global-styles/screen-colors.js +6 -4
  123. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  124. package/build-module/components/global-styles/screen-style-variations.js +4 -38
  125. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  126. package/build-module/components/global-styles/screen-typography.js +6 -6
  127. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  128. package/build-module/components/global-styles/style-variations-container.js +5 -2
  129. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  130. package/build-module/components/global-styles/ui.js +4 -1
  131. package/build-module/components/global-styles/ui.js.map +1 -1
  132. package/build-module/components/global-styles/variations/variations-color.js +10 -3
  133. package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
  134. package/build-module/components/global-styles/variations/variations-typography.js +9 -2
  135. package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
  136. package/build-module/components/keyboard-shortcut-help-modal/index.js +3 -0
  137. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  138. package/build-module/components/layout/animation.js +122 -0
  139. package/build-module/components/layout/animation.js.map +1 -0
  140. package/build-module/components/layout/index.js +9 -17
  141. package/build-module/components/layout/index.js.map +1 -1
  142. package/build-module/components/layout/router.js +21 -18
  143. package/build-module/components/layout/router.js.map +1 -1
  144. package/build-module/components/page-pages/index.js +19 -17
  145. package/build-module/components/page-pages/index.js.map +1 -1
  146. package/build-module/components/page-patterns/index.js +20 -30
  147. package/build-module/components/page-patterns/index.js.map +1 -1
  148. package/build-module/components/page-patterns/search-items.js +14 -55
  149. package/build-module/components/page-patterns/search-items.js.map +1 -1
  150. package/build-module/components/page-templates-template-parts/actions.js +54 -40
  151. package/build-module/components/page-templates-template-parts/actions.js.map +1 -1
  152. package/build-module/components/page-templates-template-parts/index.js +29 -62
  153. package/build-module/components/page-templates-template-parts/index.js.map +1 -1
  154. package/build-module/components/plugin-template-setting-panel/index.js +12 -1
  155. package/build-module/components/plugin-template-setting-panel/index.js.map +1 -1
  156. package/build-module/components/save-button/index.js +46 -17
  157. package/build-module/components/save-button/index.js.map +1 -1
  158. package/build-module/components/save-hub/index.js +10 -114
  159. package/build-module/components/save-hub/index.js.map +1 -1
  160. package/build-module/components/sidebar/index.js +1 -5
  161. package/build-module/components/sidebar/index.js.map +1 -1
  162. package/build-module/components/sidebar-dataviews/default-views.js +1 -1
  163. package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
  164. package/build-module/components/sidebar-dataviews/index.js +1 -1
  165. package/build-module/components/sidebar-dataviews/index.js.map +1 -1
  166. package/build-module/components/sidebar-edit-mode/index.js +1 -2
  167. package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
  168. package/build-module/components/sidebar-edit-mode/page-panels/index.js +8 -18
  169. package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
  170. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js +7 -5
  171. package/build-module/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
  172. package/build-module/components/sidebar-edit-mode/template-panel/index.js +11 -17
  173. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  174. package/build-module/components/sidebar-navigation-screen-details-footer/index.js +5 -1
  175. package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
  176. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +10 -5
  177. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  178. package/build-module/components/sidebar-navigation-screen-patterns/index.js +1 -5
  179. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  180. package/build-module/components/style-book/index.js +1 -1
  181. package/build-module/components/style-book/index.js.map +1 -1
  182. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +2 -2
  183. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  184. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
  185. package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
  186. package/build-module/hooks/index.js +0 -1
  187. package/build-module/hooks/index.js.map +1 -1
  188. package/build-module/store/selectors.js +1 -9
  189. package/build-module/store/selectors.js.map +1 -1
  190. package/build-style/style-rtl.css +116 -104
  191. package/build-style/style.css +116 -104
  192. package/package.json +44 -44
  193. package/src/components/block-editor/editor-canvas.js +14 -2
  194. package/src/components/block-editor/site-editor-canvas.js +10 -7
  195. package/src/components/editor/index.js +11 -4
  196. package/src/components/editor-canvas-container/index.js +0 -1
  197. package/src/components/global-styles/background-panel.js +34 -0
  198. package/src/components/global-styles/font-families.js +1 -1
  199. package/src/components/global-styles/font-library-modal/context.js +43 -14
  200. package/src/components/global-styles/font-library-modal/style.scss +1 -1
  201. package/src/components/global-styles/font-library-modal/utils/index.js +17 -4
  202. package/src/components/global-styles/palette.js +3 -1
  203. package/src/components/global-styles/preview-colors.js +2 -2
  204. package/src/components/global-styles/root-menu.js +12 -1
  205. package/src/components/global-styles/screen-background.js +29 -0
  206. package/src/components/global-styles/screen-color-palette.js +2 -2
  207. package/src/components/global-styles/screen-colors.js +4 -4
  208. package/src/components/global-styles/screen-style-variations.js +4 -36
  209. package/src/components/global-styles/screen-typography.js +6 -9
  210. package/src/components/global-styles/style-variations-container.js +2 -1
  211. package/src/components/global-styles/style.scss +14 -12
  212. package/src/components/global-styles/ui.js +5 -0
  213. package/src/components/global-styles/variations/style.scss +32 -17
  214. package/src/components/global-styles/variations/variations-color.js +4 -2
  215. package/src/components/global-styles/variations/variations-typography.js +4 -1
  216. package/src/components/header-edit-mode/style.scss +28 -17
  217. package/src/components/keyboard-shortcut-help-modal/index.js +4 -0
  218. package/src/components/layout/animation.js +122 -0
  219. package/src/components/layout/index.js +12 -27
  220. package/src/components/layout/router.js +25 -19
  221. package/src/components/layout/style.scss +2 -0
  222. package/src/components/page-pages/index.js +27 -43
  223. package/src/components/page-patterns/index.js +20 -28
  224. package/src/components/page-patterns/search-items.js +13 -58
  225. package/src/components/page-templates-template-parts/actions.js +106 -91
  226. package/src/components/page-templates-template-parts/index.js +34 -78
  227. package/src/components/page-templates-template-parts/style.scss +5 -0
  228. package/src/components/plugin-template-setting-panel/index.js +14 -1
  229. package/src/components/save-button/index.js +55 -26
  230. package/src/components/save-hub/index.js +20 -164
  231. package/src/components/sidebar/index.js +0 -5
  232. package/src/components/sidebar-dataviews/default-views.js +1 -1
  233. package/src/components/sidebar-dataviews/index.js +1 -1
  234. package/src/components/sidebar-edit-mode/index.js +0 -2
  235. package/src/components/sidebar-edit-mode/page-panels/index.js +29 -60
  236. package/src/components/sidebar-edit-mode/page-panels/page-content.js +10 -10
  237. package/src/components/sidebar-edit-mode/template-panel/index.js +23 -33
  238. package/src/components/sidebar-edit-mode/template-panel/style.scss +1 -29
  239. package/src/components/sidebar-navigation-screen/style.scss +12 -9
  240. package/src/components/sidebar-navigation-screen-details-footer/index.js +6 -2
  241. package/src/components/sidebar-navigation-screen-global-styles/index.js +7 -13
  242. package/src/components/sidebar-navigation-screen-patterns/index.js +0 -7
  243. package/src/components/style-book/index.js +1 -3
  244. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +2 -2
  245. package/src/components/sync-state-with-url/use-sync-path-with-url.js +1 -1
  246. package/src/hooks/index.js +0 -1
  247. package/src/store/selectors.js +3 -15
  248. package/src/style.scss +0 -1
  249. package/build/components/actions/index.js +0 -319
  250. package/build/components/actions/index.js.map +0 -1
  251. package/build/components/sidebar-edit-mode/sidebar-card/index.js +0 -48
  252. package/build/components/sidebar-edit-mode/sidebar-card/index.js.map +0 -1
  253. package/build/components/sidebar-edit-mode/template-panel/template-areas.js +0 -70
  254. package/build/components/sidebar-edit-mode/template-panel/template-areas.js.map +0 -1
  255. package/build/components/sidebar-navigation-screen-pages/index.js +0 -175
  256. package/build/components/sidebar-navigation-screen-pages/index.js.map +0 -1
  257. package/build/hooks/template-part-edit.js +0 -82
  258. package/build/hooks/template-part-edit.js.map +0 -1
  259. package/build/store/utils.js +0 -71
  260. package/build/store/utils.js.map +0 -1
  261. package/build-module/components/actions/index.js +0 -308
  262. package/build-module/components/actions/index.js.map +0 -1
  263. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js +0 -40
  264. package/build-module/components/sidebar-edit-mode/sidebar-card/index.js.map +0 -1
  265. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js +0 -63
  266. package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js.map +0 -1
  267. package/build-module/components/sidebar-navigation-screen-pages/index.js +0 -167
  268. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +0 -1
  269. package/build-module/hooks/template-part-edit.js +0 -75
  270. package/build-module/hooks/template-part-edit.js.map +0 -1
  271. package/build-module/store/utils.js +0 -64
  272. package/build-module/store/utils.js.map +0 -1
  273. package/src/components/actions/index.js +0 -409
  274. package/src/components/sidebar-edit-mode/sidebar-card/index.js +0 -53
  275. package/src/components/sidebar-edit-mode/sidebar-card/style.scss +0 -36
  276. package/src/components/sidebar-edit-mode/template-panel/template-areas.js +0 -86
  277. package/src/components/sidebar-navigation-screen-pages/index.js +0 -238
  278. package/src/hooks/template-part-edit.js +0 -89
  279. package/src/store/test/utils.js +0 -191
  280. package/src/store/utils.js +0 -69
@@ -41,6 +41,9 @@ const templatePartIcons = {
41
41
  };
42
42
  const EMPTY_ARRAY = [];
43
43
  const defaultConfigPerViewType = {
44
+ [_constants.LAYOUT_TABLE]: {
45
+ primaryField: 'title'
46
+ },
44
47
  [_constants.LAYOUT_GRID]: {
45
48
  mediaField: 'preview',
46
49
  primaryField: 'title'
@@ -112,7 +115,8 @@ function Preview({
112
115
  postType: item.type,
113
116
  postId: isUserPattern ? item.id : item.name,
114
117
  categoryId,
115
- categoryType: isTemplatePart ? item.type : _constants.PATTERN_TYPES.theme
118
+ categoryType: isTemplatePart ? item.type : _constants.PATTERN_TYPES.theme,
119
+ canvas: 'edit'
116
120
  });
117
121
  return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)("div", {
118
122
  className: `page-patterns-preview-field is-viewtype-${viewType}`,
@@ -124,7 +128,8 @@ function Preview({
124
128
  onClick: onClick,
125
129
  ariaDescribedBy: ariaDescriptions.length ? ariaDescriptions.map((_, index) => `${descriptionId}-${index}`).join(' ') : undefined
126
130
  }, isEmpty && isTemplatePart && (0, _i18n.__)('Empty template part'), isEmpty && !isTemplatePart && (0, _i18n.__)('Empty pattern'), !isEmpty && (0, _react.createElement)(_blockEditor.BlockPreview, {
127
- blocks: item.blocks
131
+ blocks: item.blocks,
132
+ viewportWidth: item.viewportWidth
128
133
  }))), ariaDescriptions.map((ariaDescription, index) => (0, _react.createElement)("div", {
129
134
  key: index,
130
135
  hidden: true,
@@ -145,7 +150,8 @@ function Title({
145
150
  postType: item.type,
146
151
  postId: isUserPattern ? item.id : item.name,
147
152
  categoryId,
148
- categoryType: isTemplatePart ? item.type : _constants.PATTERN_TYPES.theme
153
+ categoryType: isTemplatePart ? item.type : _constants.PATTERN_TYPES.theme,
154
+ canvas: 'edit'
149
155
  });
150
156
  if (!isUserPattern && templatePartIcons[categoryId]) {
151
157
  itemIcon = templatePartIcons[categoryId];
@@ -262,30 +268,14 @@ function DataviewsPatterns() {
262
268
  data,
263
269
  paginationInfo
264
270
  } = (0, _element.useMemo)(() => {
265
- if (!patterns) {
266
- return {
267
- data: EMPTY_ARRAY,
268
- paginationInfo: {
269
- totalItems: 0,
270
- totalPages: 0
271
- }
272
- };
273
- }
274
- let filteredData = [...patterns];
275
- // Handle sorting.
276
- if (view.sort) {
277
- filteredData = (0, _dataviews.sortByTextFields)({
278
- data: filteredData,
279
- view,
280
- fields,
281
- textFields: ['title', 'author']
282
- });
283
- }
284
- // Handle pagination.
285
- return (0, _dataviews.getPaginationResults)({
286
- data: filteredData,
287
- view
288
- });
271
+ // Since filters are applied server-side,
272
+ // we need to remove them from the view
273
+ const viewWithoutFilters = {
274
+ ...view
275
+ };
276
+ delete viewWithoutFilters.search;
277
+ viewWithoutFilters.filters = [];
278
+ return (0, _dataviews.filterSortAndPaginate)(patterns, viewWithoutFilters, fields);
289
279
  }, [patterns, view, fields]);
290
280
  const actions = (0, _element.useMemo)(() => [_dataviewsPatternActions.renameAction, _dataviewsPatternActions.duplicatePatternAction, _dataviewsPatternActions.duplicateTemplatePartAction, _dataviewsPatternActions.exportJSONaction, _dataviewsPatternActions.resetAction, _dataviewsPatternActions.deleteAction], []);
291
281
  const onChangeView = (0, _element.useCallback)(newView => {
@@ -325,7 +315,7 @@ function DataviewsPatterns() {
325
315
  view: view,
326
316
  onChangeView: onChangeView,
327
317
  deferredRendering: true,
328
- supportedLayouts: [_constants.LAYOUT_GRID]
318
+ supportedLayouts: [_constants.LAYOUT_GRID, _constants.LAYOUT_TABLE]
329
319
  })));
330
320
  }
331
321
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_url","_i18n","_element","_blockEditor","_dataviews","_icons","_compose","_page","_interopRequireDefault","_constants","_dataviewsPatternActions","_usePatternSettings","_lockUnlock","_usePatterns","_header","_link","ExperimentalBlockEditorProvider","useGlobalStyle","unlock","blockEditorPrivateApis","templatePartIcons","header","footer","uncategorized","EMPTY_ARRAY","defaultConfigPerViewType","LAYOUT_GRID","mediaField","primaryField","DEFAULT_VIEW","type","search","page","perPage","hiddenFields","layout","filters","SYNC_FILTERS","value","PATTERN_SYNC_TYPES","full","label","_x","description","__","unsynced","PreviewWrapper","item","onClick","ariaDescribedBy","children","PATTERN_TYPES","theme","_react","createElement","className","title","Preview","categoryId","viewType","descriptionId","useId","isUserPattern","user","isNonUserPattern","isTemplatePart","TEMPLATE_PART_POST_TYPE","isEmpty","blocks","length","isCustomPattern","isCustom","ariaDescriptions","push","backgroundColor","useLink","postType","postId","id","name","categoryType","Fragment","style","map","_","index","join","undefined","BlockPreview","ariaDescription","key","hidden","Title","itemIcon","syncStatus","symbol","__experimentalHStack","alignment","justify","spacing","Flex","as","gap","Button","variant","tabIndex","Tooltip","placement","text","Icon","icon","lockSmall","size","DataviewsPatterns","PATTERN_DEFAULT_CATEGORY","getQueryArgs","window","location","href","view","setView","useState","isUncategorizedThemePatterns","previousCategoryId","usePrevious","viewSyncStatus","find","field","patterns","isResolving","usePatterns","fields","useMemo","_fields","render","enableSorting","enableHiding","ENUMERATION_TYPE","elements","filterBy","operators","OPERATOR_IS","isPrimary","useEffect","data","paginationInfo","totalItems","totalPages","filteredData","sort","sortByTextFields","textFields","getPaginationResults","actions","renameAction","duplicatePatternAction","duplicateTemplatePartAction","exportJSONaction","resetAction","deleteAction","onChangeView","useCallback","newView","settings","usePatternSettings","default","hideTitleFromUI","titleId","DataViews","getItemId","isLoading","deferredRendering","supportedLayouts"],"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\tButton,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { getQueryArgs } from '@wordpress/url';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n\tuseId,\n\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tDataViews,\n\tsortByTextFields,\n\tgetPaginationResults,\n} from '@wordpress/dataviews';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport {\n\tLAYOUT_GRID,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tENUMERATION_TYPE,\n\tOPERATOR_IS,\n} from '../../utils/constants';\nimport {\n\texportJSONaction,\n\trenameAction,\n\tresetAction,\n\tdeleteAction,\n\tduplicatePatternAction,\n\tduplicateTemplatePartAction,\n} from './dataviews-pattern-actions';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport usePatterns from './use-patterns';\nimport PatternsHeader from './header';\nimport { useLink } from '../routes/link';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst templatePartIcons = { header, footer, uncategorized };\nconst EMPTY_ARRAY = [];\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t},\n};\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_GRID,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\thiddenFields: [ 'sync-status' ],\n\tlayout: {\n\t\t...defaultConfigPerViewType[ LAYOUT_GRID ],\n\t},\n\tfilters: [],\n};\n\nconst SYNC_FILTERS = [\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.full,\n\t\tlabel: _x( 'Synced', 'Option that shows all synchronized patterns' ),\n\t\tdescription: __( 'Patterns that are kept in sync across the site.' ),\n\t},\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.unsynced,\n\t\tlabel: _x(\n\t\t\t'Not synced',\n\t\t\t'Option that shows all patterns that are not synchronized'\n\t\t),\n\t\tdescription: __(\n\t\t\t'Patterns that can be changed freely without affecting the site.'\n\t\t),\n\t},\n];\n\nfunction PreviewWrapper( { item, onClick, ariaDescribedBy, children } ) {\n\tif ( item.type === PATTERN_TYPES.theme ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<button\n\t\t\tclassName=\"page-patterns-preview-field__button\"\n\t\t\ttype=\"button\"\n\t\t\tonClick={ onClick }\n\t\t\taria-label={ item.title }\n\t\t\taria-describedby={ ariaDescribedBy }\n\t\t>\n\t\t\t{ children }\n\t\t</button>\n\t);\n}\n\nfunction Preview( { item, categoryId, viewType } ) {\n\tconst descriptionId = useId();\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isEmpty = ! item.blocks?.length;\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst ariaDescriptions = [];\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `page-patterns-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t<PreviewWrapper\n\t\t\t\t\titem={ item }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tariaDescribedBy={\n\t\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ item.blocks } /> }\n\t\t\t\t</PreviewWrapper>\n\t\t\t</div>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction Title( { item, categoryId } ) {\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tlet itemIcon;\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\treturn (\n\t\t<HStack alignment=\"center\" justify=\"flex-start\" spacing={ 2 }>\n\t\t\t<Flex\n\t\t\t\tas=\"div\"\n\t\t\t\tgap={ 0 }\n\t\t\t\tjustify=\"left\"\n\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t>\n\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\titem.title\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n\nexport default function DataviewsPatterns() {\n\tconst { categoryType, categoryId = PATTERN_DEFAULT_CATEGORY } =\n\t\tgetQueryArgs( window.location.href );\n\tconst type = categoryType || PATTERN_TYPES.theme;\n\tconst [ view, setView ] = useState( DEFAULT_VIEW );\n\tconst isUncategorizedThemePatterns =\n\t\ttype === PATTERN_TYPES.theme && categoryId === 'uncategorized';\n\tconst previousCategoryId = usePrevious( categoryId );\n\tconst viewSyncStatus = view.filters?.find(\n\t\t( { field } ) => field === 'sync-status'\n\t)?.value;\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tisUncategorizedThemePatterns ? '' : categoryId,\n\t\t{\n\t\t\tsearch: view.search,\n\t\t\tsyncStatus: viewSyncStatus,\n\t\t}\n\t);\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Preview\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\tviewType={ view.type }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tenableSorting: false,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } categoryId={ categoryId } />\n\t\t\t\t),\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t];\n\t\tif ( type === PATTERN_TYPES.theme ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Sync Status' ),\n\t\t\t\tid: 'sync-status',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\t// User patterns can have their sync statuses checked directly.\n\t\t\t\t\t// Non-user patterns are all unsynced for the time being.\n\t\t\t\t\treturn (\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) => value === item.syncStatus\n\t\t\t\t\t\t)?.label ||\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) =>\n\t\t\t\t\t\t\t\tvalue === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t\t).label\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements: SYNC_FILTERS,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ OPERATOR_IS ],\n\t\t\t\t\tisPrimary: true,\n\t\t\t\t},\n\t\t\t\tenableSorting: false,\n\t\t\t} );\n\t\t}\n\t\treturn _fields;\n\t}, [ view.type, categoryId, type ] );\n\t// Reset the page number when the category changes.\n\tuseEffect( () => {\n\t\tif ( previousCategoryId !== categoryId ) {\n\t\t\tsetView( DEFAULT_VIEW );\n\t\t}\n\t}, [ categoryId, previousCategoryId ] );\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\tif ( ! patterns ) {\n\t\t\treturn {\n\t\t\t\tdata: EMPTY_ARRAY,\n\t\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t\t};\n\t\t}\n\t\tlet filteredData = [ ...patterns ];\n\t\t// Handle sorting.\n\t\tif ( view.sort ) {\n\t\t\tfilteredData = sortByTextFields( {\n\t\t\t\tdata: filteredData,\n\t\t\t\tview,\n\t\t\t\tfields,\n\t\t\t\ttextFields: [ 'title', 'author' ],\n\t\t\t} );\n\t\t}\n\t\t// Handle pagination.\n\t\treturn getPaginationResults( {\n\t\t\tdata: filteredData,\n\t\t\tview,\n\t\t} );\n\t}, [ patterns, view, fields ] );\n\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\trenameAction,\n\t\t\tduplicatePatternAction,\n\t\t\tduplicateTemplatePartAction,\n\t\t\texportJSONaction,\n\t\t\tresetAction,\n\t\t\tdeleteAction,\n\t\t],\n\t\t[]\n\t);\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView ]\n\t);\n\tconst id = useId();\n\tconst settings = usePatternSettings();\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\tclassName=\"edit-site-page-patterns-dataviews\"\n\t\t\t\thideTitleFromUI\n\t\t\t>\n\t\t\t\t<PatternsHeader\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\ttitleId={ `${ id }-title` }\n\t\t\t\t\tdescriptionId={ `${ id }-description` }\n\t\t\t\t/>\n\t\t\t\t<DataViews\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ data || EMPTY_ARRAY }\n\t\t\t\t\tgetItemId={ ( item ) => item.name }\n\t\t\t\t\tisLoading={ isResolving }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tdeferredRendering\n\t\t\t\t\tsupportedLayouts={ [ LAYOUT_GRID ] }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_components","require","_url","_i18n","_element","_blockEditor","_dataviews","_icons","_compose","_page","_interopRequireDefault","_constants","_dataviewsPatternActions","_usePatternSettings","_lockUnlock","_usePatterns","_header","_link","ExperimentalBlockEditorProvider","useGlobalStyle","unlock","blockEditorPrivateApis","templatePartIcons","header","footer","uncategorized","EMPTY_ARRAY","defaultConfigPerViewType","LAYOUT_TABLE","primaryField","LAYOUT_GRID","mediaField","DEFAULT_VIEW","type","search","page","perPage","hiddenFields","layout","filters","SYNC_FILTERS","value","PATTERN_SYNC_TYPES","full","label","_x","description","__","unsynced","PreviewWrapper","item","onClick","ariaDescribedBy","children","PATTERN_TYPES","theme","_react","createElement","className","title","Preview","categoryId","viewType","descriptionId","useId","isUserPattern","user","isNonUserPattern","isTemplatePart","TEMPLATE_PART_POST_TYPE","isEmpty","blocks","length","isCustomPattern","isCustom","ariaDescriptions","push","backgroundColor","useLink","postType","postId","id","name","categoryType","canvas","Fragment","style","map","_","index","join","undefined","BlockPreview","viewportWidth","ariaDescription","key","hidden","Title","itemIcon","syncStatus","symbol","__experimentalHStack","alignment","justify","spacing","Flex","as","gap","Button","variant","tabIndex","Tooltip","placement","text","Icon","icon","lockSmall","size","DataviewsPatterns","PATTERN_DEFAULT_CATEGORY","getQueryArgs","window","location","href","view","setView","useState","isUncategorizedThemePatterns","previousCategoryId","usePrevious","viewSyncStatus","find","field","patterns","isResolving","usePatterns","fields","useMemo","_fields","render","enableSorting","enableHiding","ENUMERATION_TYPE","elements","filterBy","operators","OPERATOR_IS","isPrimary","useEffect","data","paginationInfo","viewWithoutFilters","filterSortAndPaginate","actions","renameAction","duplicatePatternAction","duplicateTemplatePartAction","exportJSONaction","resetAction","deleteAction","onChangeView","useCallback","newView","settings","usePatternSettings","default","hideTitleFromUI","titleId","DataViews","getItemId","isLoading","deferredRendering","supportedLayouts"],"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\tButton,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { getQueryArgs } from '@wordpress/url';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n\tuseId,\n\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport {\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tENUMERATION_TYPE,\n\tOPERATOR_IS,\n} from '../../utils/constants';\nimport {\n\texportJSONaction,\n\trenameAction,\n\tresetAction,\n\tdeleteAction,\n\tduplicatePatternAction,\n\tduplicateTemplatePartAction,\n} from './dataviews-pattern-actions';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport usePatterns from './use-patterns';\nimport PatternsHeader from './header';\nimport { useLink } from '../routes/link';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst templatePartIcons = { header, footer, uncategorized };\nconst EMPTY_ARRAY = [];\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_TABLE ]: {\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t},\n};\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_GRID,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\thiddenFields: [ 'sync-status' ],\n\tlayout: {\n\t\t...defaultConfigPerViewType[ LAYOUT_GRID ],\n\t},\n\tfilters: [],\n};\n\nconst SYNC_FILTERS = [\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.full,\n\t\tlabel: _x( 'Synced', 'Option that shows all synchronized patterns' ),\n\t\tdescription: __( 'Patterns that are kept in sync across the site.' ),\n\t},\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.unsynced,\n\t\tlabel: _x(\n\t\t\t'Not synced',\n\t\t\t'Option that shows all patterns that are not synchronized'\n\t\t),\n\t\tdescription: __(\n\t\t\t'Patterns that can be changed freely without affecting the site.'\n\t\t),\n\t},\n];\n\nfunction PreviewWrapper( { item, onClick, ariaDescribedBy, children } ) {\n\tif ( item.type === PATTERN_TYPES.theme ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<button\n\t\t\tclassName=\"page-patterns-preview-field__button\"\n\t\t\ttype=\"button\"\n\t\t\tonClick={ onClick }\n\t\t\taria-label={ item.title }\n\t\t\taria-describedby={ ariaDescribedBy }\n\t\t>\n\t\t\t{ children }\n\t\t</button>\n\t);\n}\n\nfunction Preview( { item, categoryId, viewType } ) {\n\tconst descriptionId = useId();\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isEmpty = ! item.blocks?.length;\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst ariaDescriptions = [];\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t\tcanvas: 'edit',\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `page-patterns-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t<PreviewWrapper\n\t\t\t\t\titem={ item }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\tariaDescribedBy={\n\t\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\t\t\tviewportWidth={ item.viewportWidth }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PreviewWrapper>\n\t\t\t</div>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction Title( { item, categoryId } ) {\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tlet itemIcon;\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t\tcanvas: 'edit',\n\t} );\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\treturn (\n\t\t<HStack alignment=\"center\" justify=\"flex-start\" spacing={ 2 }>\n\t\t\t<Flex\n\t\t\t\tas=\"div\"\n\t\t\t\tgap={ 0 }\n\t\t\t\tjustify=\"left\"\n\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t>\n\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\titem.title\n\t\t\t\t) : (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n\nexport default function DataviewsPatterns() {\n\tconst { categoryType, categoryId = PATTERN_DEFAULT_CATEGORY } =\n\t\tgetQueryArgs( window.location.href );\n\tconst type = categoryType || PATTERN_TYPES.theme;\n\tconst [ view, setView ] = useState( DEFAULT_VIEW );\n\tconst isUncategorizedThemePatterns =\n\t\ttype === PATTERN_TYPES.theme && categoryId === 'uncategorized';\n\tconst previousCategoryId = usePrevious( categoryId );\n\tconst viewSyncStatus = view.filters?.find(\n\t\t( { field } ) => field === 'sync-status'\n\t)?.value;\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tisUncategorizedThemePatterns ? '' : categoryId,\n\t\t{\n\t\t\tsearch: view.search,\n\t\t\tsyncStatus: viewSyncStatus,\n\t\t}\n\t);\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Preview\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\tviewType={ view.type }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tenableSorting: false,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } categoryId={ categoryId } />\n\t\t\t\t),\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t];\n\t\tif ( type === PATTERN_TYPES.theme ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Sync Status' ),\n\t\t\t\tid: 'sync-status',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\t// User patterns can have their sync statuses checked directly.\n\t\t\t\t\t// Non-user patterns are all unsynced for the time being.\n\t\t\t\t\treturn (\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) => value === item.syncStatus\n\t\t\t\t\t\t)?.label ||\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) =>\n\t\t\t\t\t\t\t\tvalue === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t\t).label\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements: SYNC_FILTERS,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ OPERATOR_IS ],\n\t\t\t\t\tisPrimary: true,\n\t\t\t\t},\n\t\t\t\tenableSorting: false,\n\t\t\t} );\n\t\t}\n\t\treturn _fields;\n\t}, [ view.type, categoryId, type ] );\n\t// Reset the page number when the category changes.\n\tuseEffect( () => {\n\t\tif ( previousCategoryId !== categoryId ) {\n\t\t\tsetView( DEFAULT_VIEW );\n\t\t}\n\t}, [ categoryId, previousCategoryId ] );\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\t// Since filters are applied server-side,\n\t\t// we need to remove them from the view\n\t\tconst viewWithoutFilters = { ...view };\n\t\tdelete viewWithoutFilters.search;\n\t\tviewWithoutFilters.filters = [];\n\t\treturn filterSortAndPaginate( patterns, viewWithoutFilters, fields );\n\t}, [ patterns, view, fields ] );\n\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\trenameAction,\n\t\t\tduplicatePatternAction,\n\t\t\tduplicateTemplatePartAction,\n\t\t\texportJSONaction,\n\t\t\tresetAction,\n\t\t\tdeleteAction,\n\t\t],\n\t\t[]\n\t);\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView ]\n\t);\n\tconst id = useId();\n\tconst settings = usePatternSettings();\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\tclassName=\"edit-site-page-patterns-dataviews\"\n\t\t\t\thideTitleFromUI\n\t\t\t>\n\t\t\t\t<PatternsHeader\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\ttitleId={ `${ id }-title` }\n\t\t\t\t\tdescriptionId={ `${ id }-description` }\n\t\t\t\t/>\n\t\t\t\t<DataViews\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ data || EMPTY_ARRAY }\n\t\t\t\t\tgetItemId={ ( item ) => item.name }\n\t\t\t\t\tisLoading={ isResolving }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tdeferredRendering\n\t\t\t\t\tsupportedLayouts={ [ LAYOUT_GRID, LAYOUT_TABLE ] }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":"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"}
@@ -1,17 +1,26 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.searchItems = exports.getNormalizedSearchTerms = void 0;
8
- var _removeAccents = _interopRequireDefault(require("remove-accents"));
9
- var _changeCase = require("change-case");
6
+ exports.searchItems = void 0;
7
+ var _blockEditor = require("@wordpress/block-editor");
8
+ var _lockUnlock = require("../../lock-unlock");
10
9
  var _constants = require("../../utils/constants");
11
10
  /**
12
- * External dependencies
11
+ * WordPress dependencies
13
12
  */
14
13
 
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+
18
+ const {
19
+ extractWords,
20
+ getNormalizedSearchTerms,
21
+ normalizeString
22
+ } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
23
+
15
24
  /**
16
25
  * Internal dependencies
17
26
  */
@@ -22,57 +31,6 @@ const defaultGetTitle = item => item.title;
22
31
  const defaultGetDescription = item => item.description || '';
23
32
  const defaultGetKeywords = item => item.keywords || [];
24
33
  const defaultHasCategory = () => false;
25
-
26
- /**
27
- * Extracts words from an input string.
28
- *
29
- * @param {string} input The input string.
30
- *
31
- * @return {Array} Words, extracted from the input string.
32
- */
33
- function extractWords(input = '') {
34
- return (0, _changeCase.noCase)(input, {
35
- splitRegexp: [/([\p{Ll}\p{Lo}\p{N}])([\p{Lu}\p{Lt}])/gu,
36
- // One lowercase or digit, followed by one uppercase.
37
- /([\p{Lu}\p{Lt}])([\p{Lu}\p{Lt}][\p{Ll}\p{Lo}])/gu // One uppercase followed by one uppercase and one lowercase.
38
- ],
39
- stripRegexp: /(\p{C}|\p{P}|\p{S})+/giu // Anything that's not a punctuation, symbol or control/format character.
40
- }).split(' ').filter(Boolean);
41
- }
42
-
43
- /**
44
- * Sanitizes the search input string.
45
- *
46
- * @param {string} input The search input to normalize.
47
- *
48
- * @return {string} The normalized search input.
49
- */
50
- function normalizeSearchInput(input = '') {
51
- // Disregard diacritics.
52
- // Input: "média"
53
- input = (0, _removeAccents.default)(input);
54
-
55
- // Accommodate leading slash, matching autocomplete expectations.
56
- // Input: "/media"
57
- input = input.replace(/^\//, '');
58
-
59
- // Lowercase.
60
- // Input: "MEDIA"
61
- input = input.toLowerCase();
62
- return input;
63
- }
64
-
65
- /**
66
- * Converts the search term into a list of normalized terms.
67
- *
68
- * @param {string} input The search term to normalize.
69
- *
70
- * @return {string[]} The normalized list of search terms.
71
- */
72
- const getNormalizedSearchTerms = (input = '') => {
73
- return extractWords(normalizeSearchInput(input));
74
- };
75
- exports.getNormalizedSearchTerms = getNormalizedSearchTerms;
76
34
  const removeMatchingTerms = (unmatchedTerms, unprocessedTerms) => {
77
35
  return unmatchedTerms.filter(term => !getNormalizedSearchTerms(unprocessedTerms).some(unprocessedTerm => unprocessedTerm.includes(term)));
78
36
  };
@@ -143,8 +101,8 @@ function getItemSearchRank(item, searchTerm, config) {
143
101
  const title = getTitle(item);
144
102
  const description = getDescription(item);
145
103
  const keywords = getKeywords(item);
146
- const normalizedSearchInput = normalizeSearchInput(searchTerm);
147
- const normalizedTitle = normalizeSearchInput(title);
104
+ const normalizedSearchInput = normalizeString(searchTerm);
105
+ const normalizedTitle = normalizeString(title);
148
106
 
149
107
  // Prefers exact matches
150
108
  // Then prefers if the beginning of the title matches the search term
@@ -1 +1 @@
1
- {"version":3,"names":["_removeAccents","_interopRequireDefault","require","_changeCase","_constants","defaultGetName","item","name","defaultGetTitle","title","defaultGetDescription","description","defaultGetKeywords","keywords","defaultHasCategory","extractWords","input","noCase","splitRegexp","stripRegexp","split","filter","Boolean","normalizeSearchInput","removeAccents","replace","toLowerCase","getNormalizedSearchTerms","exports","removeMatchingTerms","unmatchedTerms","unprocessedTerms","term","some","unprocessedTerm","includes","searchItems","items","searchInput","config","normalizedSearchTerms","onlyFilterByCategory","categoryId","PATTERN_DEFAULT_CATEGORY","length","searchRankConfig","threshold","rankedItems","map","getItemSearchRank","rank","sort","rank1","rank2","searchTerm","getName","getTitle","getDescription","getKeywords","hasCategory","PATTERN_USER_CATEGORY","type","PATTERN_TYPES","user","normalizedSearchInput","normalizedTitle","startsWith","terms","join"],"sources":["@wordpress/edit-site/src/components/page-patterns/search-items.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\nimport { noCase } from 'change-case';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_USER_CATEGORY,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => item.name || '';\nconst defaultGetTitle = ( item ) => item.title;\nconst defaultGetDescription = ( item ) => item.description || '';\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultHasCategory = () => false;\n\n/**\n * Extracts words from an input string.\n *\n * @param {string} input The input string.\n *\n * @return {Array} Words, extracted from the input string.\n */\nfunction extractWords( input = '' ) {\n\treturn noCase( input, {\n\t\tsplitRegexp: [\n\t\t\t/([\\p{Ll}\\p{Lo}\\p{N}])([\\p{Lu}\\p{Lt}])/gu, // One lowercase or digit, followed by one uppercase.\n\t\t\t/([\\p{Lu}\\p{Lt}])([\\p{Lu}\\p{Lt}][\\p{Ll}\\p{Lo}])/gu, // One uppercase followed by one uppercase and one lowercase.\n\t\t],\n\t\tstripRegexp: /(\\p{C}|\\p{P}|\\p{S})+/giu, // Anything that's not a punctuation, symbol or control/format character.\n\t} )\n\t\t.split( ' ' )\n\t\t.filter( Boolean );\n}\n\n/**\n * Sanitizes the search input string.\n *\n * @param {string} input The search input to normalize.\n *\n * @return {string} The normalized search input.\n */\nfunction normalizeSearchInput( input = '' ) {\n\t// Disregard diacritics.\n\t// Input: \"média\"\n\tinput = removeAccents( input );\n\n\t// Accommodate leading slash, matching autocomplete expectations.\n\t// Input: \"/media\"\n\tinput = input.replace( /^\\//, '' );\n\n\t// Lowercase.\n\t// Input: \"MEDIA\"\n\tinput = input.toLowerCase();\n\n\treturn input;\n}\n\n/**\n * Converts the search term into a list of normalized terms.\n *\n * @param {string} input The search term to normalize.\n *\n * @return {string[]} The normalized list of search terms.\n */\nexport const getNormalizedSearchTerms = ( input = '' ) => {\n\treturn extractWords( normalizeSearchInput( input ) );\n};\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items Item list\n * @param {string} searchInput Search input.\n * @param {Object} config Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\t// Filter patterns by category: the default category indicates that all patterns will be shown.\n\tconst onlyFilterByCategory =\n\t\tconfig.categoryId !== PATTERN_DEFAULT_CATEGORY &&\n\t\t! normalizedSearchTerms.length;\n\tconst searchRankConfig = { ...config, onlyFilterByCategory };\n\n\t// If we aren't filtering on search terms, matching on category is satisfactory.\n\t// If we are, then we need more than a category match.\n\tconst threshold = onlyFilterByCategory ? 0 : 1;\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [\n\t\t\t\titem,\n\t\t\t\tgetItemSearchRank( item, searchInput, searchRankConfig ),\n\t\t\t];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > threshold );\n\n\t// If we didn't have terms to search on, there's no point sorting.\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn rankedItems.map( ( [ item ] ) => item );\n\t}\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config Search Config.\n *\n * @return {number} Search Rank.\n */\nfunction getItemSearchRank( item, searchTerm, config ) {\n\tconst {\n\t\tcategoryId,\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\thasCategory = defaultHasCategory,\n\t\tonlyFilterByCategory,\n\t} = config;\n\n\tlet rank =\n\t\tcategoryId === PATTERN_DEFAULT_CATEGORY ||\n\t\t( categoryId === PATTERN_USER_CATEGORY &&\n\t\t\titem.type === PATTERN_TYPES.user ) ||\n\t\thasCategory( item, categoryId )\n\t\t\t? 1\n\t\t\t: 0;\n\n\t// If an item doesn't belong to the current category or we don't have\n\t// search terms to filter by, return the initial rank value.\n\tif ( ! rank || onlyFilterByCategory ) {\n\t\treturn rank;\n\t}\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\n\tconst normalizedSearchInput = normalizeSearchInput( searchTerm );\n\tconst normalizedTitle = normalizeSearchInput( title );\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, description matches come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [ name, title, description, ...keywords ].join( ' ' );\n\t\tconst normalizedSearchTerms = extractWords( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\treturn rank;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_blockEditor","require","_lockUnlock","_constants","extractWords","getNormalizedSearchTerms","normalizeString","unlock","blockEditorPrivateApis","defaultGetName","item","name","defaultGetTitle","title","defaultGetDescription","description","defaultGetKeywords","keywords","defaultHasCategory","removeMatchingTerms","unmatchedTerms","unprocessedTerms","filter","term","some","unprocessedTerm","includes","searchItems","items","searchInput","config","normalizedSearchTerms","onlyFilterByCategory","categoryId","PATTERN_DEFAULT_CATEGORY","length","searchRankConfig","threshold","rankedItems","map","getItemSearchRank","rank","sort","rank1","rank2","exports","searchTerm","getName","getTitle","getDescription","getKeywords","hasCategory","PATTERN_USER_CATEGORY","type","PATTERN_TYPES","user","normalizedSearchInput","normalizedTitle","startsWith","terms","join"],"sources":["@wordpress/edit-site/src/components/page-patterns/search-items.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { extractWords, getNormalizedSearchTerms, normalizeString } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Internal dependencies\n */\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_USER_CATEGORY,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => item.name || '';\nconst defaultGetTitle = ( item ) => item.title;\nconst defaultGetDescription = ( item ) => item.description || '';\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultHasCategory = () => false;\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items Item list\n * @param {string} searchInput Search input.\n * @param {Object} config Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\t// Filter patterns by category: the default category indicates that all patterns will be shown.\n\tconst onlyFilterByCategory =\n\t\tconfig.categoryId !== PATTERN_DEFAULT_CATEGORY &&\n\t\t! normalizedSearchTerms.length;\n\tconst searchRankConfig = { ...config, onlyFilterByCategory };\n\n\t// If we aren't filtering on search terms, matching on category is satisfactory.\n\t// If we are, then we need more than a category match.\n\tconst threshold = onlyFilterByCategory ? 0 : 1;\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [\n\t\t\t\titem,\n\t\t\t\tgetItemSearchRank( item, searchInput, searchRankConfig ),\n\t\t\t];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > threshold );\n\n\t// If we didn't have terms to search on, there's no point sorting.\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn rankedItems.map( ( [ item ] ) => item );\n\t}\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config Search Config.\n *\n * @return {number} Search Rank.\n */\nfunction getItemSearchRank( item, searchTerm, config ) {\n\tconst {\n\t\tcategoryId,\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\thasCategory = defaultHasCategory,\n\t\tonlyFilterByCategory,\n\t} = config;\n\n\tlet rank =\n\t\tcategoryId === PATTERN_DEFAULT_CATEGORY ||\n\t\t( categoryId === PATTERN_USER_CATEGORY &&\n\t\t\titem.type === PATTERN_TYPES.user ) ||\n\t\thasCategory( item, categoryId )\n\t\t\t? 1\n\t\t\t: 0;\n\n\t// If an item doesn't belong to the current category or we don't have\n\t// search terms to filter by, return the initial rank value.\n\tif ( ! rank || onlyFilterByCategory ) {\n\t\treturn rank;\n\t}\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\n\tconst normalizedSearchInput = normalizeString( searchTerm );\n\tconst normalizedTitle = normalizeString( title );\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, description matches come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [ name, title, description, ...keywords ].join( ' ' );\n\t\tconst normalizedSearchTerms = extractWords( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\treturn rank;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AASA,IAAAE,UAAA,GAAAF,OAAA;AAjBA;AACA;AACA;;AAGA;AACA;AACA;;AAGA,MAAM;EAAEG,YAAY;EAAEC,wBAAwB;EAAEC;AAAgB,CAAC,GAAG,IAAAC,kBAAM,EACzEC,wBACD,CAAC;;AAED;AACA;AACA;;AAOA;AACA,MAAMC,cAAc,GAAKC,IAAI,IAAMA,IAAI,CAACC,IAAI,IAAI,EAAE;AAClD,MAAMC,eAAe,GAAKF,IAAI,IAAMA,IAAI,CAACG,KAAK;AAC9C,MAAMC,qBAAqB,GAAKJ,IAAI,IAAMA,IAAI,CAACK,WAAW,IAAI,EAAE;AAChE,MAAMC,kBAAkB,GAAKN,IAAI,IAAMA,IAAI,CAACO,QAAQ,IAAI,EAAE;AAC1D,MAAMC,kBAAkB,GAAGA,CAAA,KAAM,KAAK;AAEtC,MAAMC,mBAAmB,GAAGA,CAAEC,cAAc,EAAEC,gBAAgB,KAAM;EACnE,OAAOD,cAAc,CAACE,MAAM,CACzBC,IAAI,IACL,CAAElB,wBAAwB,CAAEgB,gBAAiB,CAAC,CAACG,IAAI,CAChDC,eAAe,IAAMA,eAAe,CAACC,QAAQ,CAAEH,IAAK,CACvD,CACF,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,WAAW,GAAGA,CAAEC,KAAK,GAAG,EAAE,EAAEC,WAAW,GAAG,EAAE,EAAEC,MAAM,GAAG,CAAC,CAAC,KAAM;EAC3E,MAAMC,qBAAqB,GAAG1B,wBAAwB,CAAEwB,WAAY,CAAC;EACrE;EACA,MAAMG,oBAAoB,GACzBF,MAAM,CAACG,UAAU,KAAKC,mCAAwB,IAC9C,CAAEH,qBAAqB,CAACI,MAAM;EAC/B,MAAMC,gBAAgB,GAAG;IAAE,GAAGN,MAAM;IAAEE;EAAqB,CAAC;;EAE5D;EACA;EACA,MAAMK,SAAS,GAAGL,oBAAoB,GAAG,CAAC,GAAG,CAAC;EAE9C,MAAMM,WAAW,GAAGV,KAAK,CACvBW,GAAG,CAAI7B,IAAI,IAAM;IACjB,OAAO,CACNA,IAAI,EACJ8B,iBAAiB,CAAE9B,IAAI,EAAEmB,WAAW,EAAEO,gBAAiB,CAAC,CACxD;EACF,CAAE,CAAC,CACFd,MAAM,CAAE,CAAE,GAAImB,IAAI,CAAE,KAAMA,IAAI,GAAGJ,SAAU,CAAC;;EAE9C;EACA,IAAKN,qBAAqB,CAACI,MAAM,KAAK,CAAC,EAAG;IACzC,OAAOG,WAAW,CAACC,GAAG,CAAE,CAAE,CAAE7B,IAAI,CAAE,KAAMA,IAAK,CAAC;EAC/C;EAEA4B,WAAW,CAACI,IAAI,CAAE,CAAE,GAAIC,KAAK,CAAE,EAAE,GAAIC,KAAK,CAAE,KAAMA,KAAK,GAAGD,KAAM,CAAC;EACjE,OAAOL,WAAW,CAACC,GAAG,CAAE,CAAE,CAAE7B,IAAI,CAAE,KAAMA,IAAK,CAAC;AAC/C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVAmC,OAAA,CAAAlB,WAAA,GAAAA,WAAA;AAWA,SAASa,iBAAiBA,CAAE9B,IAAI,EAAEoC,UAAU,EAAEhB,MAAM,EAAG;EACtD,MAAM;IACLG,UAAU;IACVc,OAAO,GAAGtC,cAAc;IACxBuC,QAAQ,GAAGpC,eAAe;IAC1BqC,cAAc,GAAGnC,qBAAqB;IACtCoC,WAAW,GAAGlC,kBAAkB;IAChCmC,WAAW,GAAGjC,kBAAkB;IAChCc;EACD,CAAC,GAAGF,MAAM;EAEV,IAAIW,IAAI,GACPR,UAAU,KAAKC,mCAAwB,IACrCD,UAAU,KAAKmB,gCAAqB,IACrC1C,IAAI,CAAC2C,IAAI,KAAKC,wBAAa,CAACC,IAAM,IACnCJ,WAAW,CAAEzC,IAAI,EAAEuB,UAAW,CAAC,GAC5B,CAAC,GACD,CAAC;;EAEL;EACA;EACA,IAAK,CAAEQ,IAAI,IAAIT,oBAAoB,EAAG;IACrC,OAAOS,IAAI;EACZ;EAEA,MAAM9B,IAAI,GAAGoC,OAAO,CAAErC,IAAK,CAAC;EAC5B,MAAMG,KAAK,GAAGmC,QAAQ,CAAEtC,IAAK,CAAC;EAC9B,MAAMK,WAAW,GAAGkC,cAAc,CAAEvC,IAAK,CAAC;EAC1C,MAAMO,QAAQ,GAAGiC,WAAW,CAAExC,IAAK,CAAC;EAEpC,MAAM8C,qBAAqB,GAAGlD,eAAe,CAAEwC,UAAW,CAAC;EAC3D,MAAMW,eAAe,GAAGnD,eAAe,CAAEO,KAAM,CAAC;;EAEhD;EACA;EACA;EACA,IAAK2C,qBAAqB,KAAKC,eAAe,EAAG;IAChDhB,IAAI,IAAI,EAAE;EACX,CAAC,MAAM,IAAKgB,eAAe,CAACC,UAAU,CAAEF,qBAAsB,CAAC,EAAG;IACjEf,IAAI,IAAI,EAAE;EACX,CAAC,MAAM;IACN,MAAMkB,KAAK,GAAG,CAAEhD,IAAI,EAAEE,KAAK,EAAEE,WAAW,EAAE,GAAGE,QAAQ,CAAE,CAAC2C,IAAI,CAAE,GAAI,CAAC;IACnE,MAAM7B,qBAAqB,GAAG3B,YAAY,CAAEoD,qBAAsB,CAAC;IACnE,MAAMpC,cAAc,GAAGD,mBAAmB,CACzCY,qBAAqB,EACrB4B,KACD,CAAC;IAED,IAAKvC,cAAc,CAACe,MAAM,KAAK,CAAC,EAAG;MAClCM,IAAI,IAAI,EAAE;IACX;EACD;EAEA,OAAOA,IAAI;AACZ"}
@@ -4,10 +4,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.renameTemplateAction = exports.deleteTemplateAction = void 0;
8
- exports.useResetTemplateAction = useResetTemplateAction;
7
+ exports.resetTemplateAction = exports.renameTemplateAction = exports.deleteTemplateAction = void 0;
9
8
  var _react = require("react");
10
- var _icons = require("@wordpress/icons");
11
9
  var _i18n = require("@wordpress/i18n");
12
10
  var _data = require("@wordpress/data");
13
11
  var _element = require("@wordpress/element");
@@ -28,58 +26,74 @@ var _constants = require("../../utils/constants");
28
26
  * Internal dependencies
29
27
  */
30
28
 
31
- function useResetTemplateAction() {
32
- const {
33
- revertTemplate
34
- } = (0, _data.useDispatch)(_store.store);
35
- const {
36
- saveEditedEntityRecord
37
- } = (0, _data.useDispatch)(_coreData.store);
38
- const {
39
- createSuccessNotice,
40
- createErrorNotice
41
- } = (0, _data.useDispatch)(_notices.store);
42
- return (0, _element.useMemo)(() => ({
43
- id: 'reset-template',
44
- label: (0, _i18n.__)('Reset'),
45
- isPrimary: true,
46
- icon: _icons.backup,
47
- isEligible: _isTemplateRevertable.default,
48
- supportsBulk: true,
49
- async callback(templates) {
29
+ const resetTemplateAction = exports.resetTemplateAction = {
30
+ id: 'reset-template',
31
+ label: (0, _i18n.__)('Clear customizations'),
32
+ isEligible: _isTemplateRevertable.default,
33
+ supportsBulk: true,
34
+ hideModalHeader: true,
35
+ RenderModal: ({
36
+ items,
37
+ closeModal,
38
+ onPerform
39
+ }) => {
40
+ const {
41
+ revertTemplate
42
+ } = (0, _data.useDispatch)(_store.store);
43
+ const {
44
+ saveEditedEntityRecord
45
+ } = (0, _data.useDispatch)(_coreData.store);
46
+ const {
47
+ createSuccessNotice,
48
+ createErrorNotice
49
+ } = (0, _data.useDispatch)(_notices.store);
50
+ const onConfirm = async () => {
50
51
  try {
51
- for (const template of templates) {
52
+ for (const template of items) {
52
53
  await revertTemplate(template, {
53
54
  allowUndo: false
54
55
  });
55
56
  await saveEditedEntityRecord('postType', template.type, template.id);
56
57
  }
57
- createSuccessNotice(templates.length > 1 ? (0, _i18n.sprintf)( /* translators: The number of items. */
58
- (0, _i18n.__)('%s items reverted.'), templates.length) : (0, _i18n.sprintf)( /* translators: The template/part's name. */
59
- (0, _i18n.__)('"%s" reverted.'), (0, _htmlEntities.decodeEntities)(templates[0].title.rendered)), {
58
+ createSuccessNotice(items.length > 1 ? (0, _i18n.sprintf)( /* translators: The number of items. */
59
+ (0, _i18n.__)('%s items reverted.'), items.length) : (0, _i18n.sprintf)( /* translators: The template/part's name. */
60
+ (0, _i18n.__)('"%s" reverted.'), (0, _htmlEntities.decodeEntities)(items[0].title.rendered)), {
60
61
  type: 'snackbar',
61
62
  id: 'edit-site-template-reverted'
62
63
  });
63
64
  } catch (error) {
64
65
  let fallbackErrorMessage;
65
- if (templates[0].type === _constants.TEMPLATE_POST_TYPE) {
66
- fallbackErrorMessage = templates.length === 1 ? (0, _i18n.__)('An error occurred while reverting the template.') : (0, _i18n.__)('An error occurred while reverting the templates.');
66
+ if (items[0].type === _constants.TEMPLATE_POST_TYPE) {
67
+ fallbackErrorMessage = items.length === 1 ? (0, _i18n.__)('An error occurred while reverting the template.') : (0, _i18n.__)('An error occurred while reverting the templates.');
67
68
  } else {
68
- fallbackErrorMessage = templates.length === 1 ? (0, _i18n.__)('An error occurred while reverting the template part.') : (0, _i18n.__)('An error occurred while reverting the template parts.');
69
+ fallbackErrorMessage = items.length === 1 ? (0, _i18n.__)('An error occurred while reverting the template part.') : (0, _i18n.__)('An error occurred while reverting the template parts.');
69
70
  }
70
71
  const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : fallbackErrorMessage;
71
72
  createErrorNotice(errorMessage, {
72
73
  type: 'snackbar'
73
74
  });
74
75
  }
75
- }
76
- }), [createErrorNotice, createSuccessNotice, revertTemplate, saveEditedEntityRecord]);
77
- }
76
+ };
77
+ return (0, _react.createElement)(_components.__experimentalVStack, {
78
+ spacing: "5"
79
+ }, (0, _react.createElement)(_components.__experimentalText, null, (0, _i18n.__)('Are you sure you want to clear these customizations?')), (0, _react.createElement)(_components.__experimentalHStack, {
80
+ justify: "right"
81
+ }, (0, _react.createElement)(_components.Button, {
82
+ variant: "tertiary",
83
+ onClick: closeModal
84
+ }, (0, _i18n.__)('Cancel')), (0, _react.createElement)(_components.Button, {
85
+ variant: "primary",
86
+ onClick: async () => {
87
+ await onConfirm(items);
88
+ onPerform?.();
89
+ closeModal();
90
+ }
91
+ }, (0, _i18n.__)('Clear'))));
92
+ }
93
+ };
78
94
  const deleteTemplateAction = exports.deleteTemplateAction = {
79
95
  id: 'delete-template',
80
96
  label: (0, _i18n.__)('Delete'),
81
- isPrimary: true,
82
- icon: _icons.trash,
83
97
  isEligible: _isTemplateRemovable.default,
84
98
  supportsBulk: true,
85
99
  hideModalHeader: true,
@@ -108,9 +122,7 @@ const deleteTemplateAction = exports.deleteTemplateAction = {
108
122
  await removeTemplates(templates, {
109
123
  allowUndo: false
110
124
  });
111
- if (onPerform) {
112
- onPerform();
113
- }
125
+ onPerform?.();
114
126
  closeModal();
115
127
  }
116
128
  }, (0, _i18n.__)('Delete'))));
@@ -157,8 +169,6 @@ const renameTemplateAction = exports.renameTemplateAction = {
157
169
  {
158
170
  throwOnError: true
159
171
  });
160
- // TODO: this action will be reused in template parts list, so
161
- // let's keep this for a bit, even it's always a `template` now.
162
172
  createSuccessNotice(template.type === _constants.TEMPLATE_POST_TYPE ? (0, _i18n.__)('Template renamed.') : (0, _i18n.__)('Template part renamed.'), {
163
173
  type: 'snackbar'
164
174
  });
@@ -176,6 +186,7 @@ const renameTemplateAction = exports.renameTemplateAction = {
176
186
  spacing: "5"
177
187
  }, (0, _react.createElement)(_components.TextControl, {
178
188
  __nextHasNoMarginBottom: true,
189
+ __next40pxDefaultSize: true,
179
190
  label: (0, _i18n.__)('Name'),
180
191
  value: editedTitle,
181
192
  onChange: setEditedTitle,
@@ -184,10 +195,12 @@ const renameTemplateAction = exports.renameTemplateAction = {
184
195
  justify: "right"
185
196
  }, (0, _react.createElement)(_components.Button, {
186
197
  variant: "tertiary",
187
- onClick: closeModal
198
+ onClick: closeModal,
199
+ __next40pxDefaultSize: true
188
200
  }, (0, _i18n.__)('Cancel')), (0, _react.createElement)(_components.Button, {
189
201
  variant: "primary",
190
- type: "submit"
202
+ type: "submit",
203
+ __next40pxDefaultSize: true
191
204
  }, (0, _i18n.__)('Save')))));
192
205
  }
193
206
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_icons","require","_i18n","_data","_element","_coreData","_notices","_htmlEntities","_components","_lockUnlock","_store","_isTemplateRevertable","_interopRequireDefault","_isTemplateRemovable","_constants","useResetTemplateAction","revertTemplate","useDispatch","editSiteStore","saveEditedEntityRecord","coreStore","createSuccessNotice","createErrorNotice","noticesStore","useMemo","id","label","__","isPrimary","icon","backup","isEligible","isTemplateRevertable","supportsBulk","callback","templates","template","allowUndo","type","length","sprintf","decodeEntities","title","rendered","error","fallbackErrorMessage","TEMPLATE_POST_TYPE","errorMessage","message","code","deleteTemplateAction","exports","trash","isTemplateRemovable","hideModalHeader","RenderModal","items","closeModal","onPerform","removeTemplates","unlock","_react","createElement","__experimentalVStack","spacing","__experimentalText","_n","__experimentalHStack","justify","Button","variant","onClick","renameTemplateAction","is_custom","editedTitle","setEditedTitle","useState","editEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","onTemplateRename","event","preventDefault","throwOnError","onSubmit","TextControl","__nextHasNoMarginBottom","value","onChange","required"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { backup, trash } from '@wordpress/icons';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport function useResetTemplateAction() {\n\tconst { revertTemplate } = useDispatch( editSiteStore );\n\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'reset-template',\n\t\t\tlabel: __( 'Reset' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tisEligible: isTemplateRevertable,\n\t\t\tsupportsBulk: true,\n\t\t\tasync callback( templates ) {\n\t\t\t\ttry {\n\t\t\t\t\tfor ( const template of templates ) {\n\t\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\ttemplates.length > 1\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t\t__( '%s items reverted.' ),\n\t\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t\t__( '\"%s\" reverted.' ),\n\t\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\t\ttemplates[ 0 ].title.rendered\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'edit-site-template-reverted',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\t\tif ( templates[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\t\ttemplates.length === 1\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t\t );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\t\ttemplates.length === 1\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t\t );\n\t\t\t\t\t}\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateErrorNotice,\n\t\t\tcreateSuccessNotice,\n\t\t\trevertTemplate,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n}\n\nexport const deleteTemplateAction = {\n\tid: 'delete-template',\n\tlabel: __( 'Delete' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible: isTemplateRemovable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items: templates, closeModal, onPerform } ) => {\n\t\tconst { removeTemplates } = unlock( useDispatch( editSiteStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ templates.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\ttemplates?.[ 0 ]?.title?.rendered\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tawait removeTemplates( templates, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tif ( onPerform ) {\n\t\t\t\t\t\t\t\tonPerform();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const renameTemplateAction = {\n\tid: 'rename-template',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( template ) => {\n\t\t// We can only remove templates or template parts that can be removed.\n\t\t// Additionally in the case of templates, we can only remove custom templates.\n\t\tif (\n\t\t\t! isTemplateRemovable( template ) ||\n\t\t\t( template.type === TEMPLATE_POST_TYPE && ! template.is_custom )\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\tRenderModal: ( { items: templates, closeModal } ) => {\n\t\tconst template = templates[ 0 ];\n\t\tconst title = decodeEntities( template.title.rendered );\n\t\tconst [ editedTitle, setEditedTitle ] = useState( title );\n\t\tconst {\n\t\t\teditEntityRecord,\n\t\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t\t} = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onTemplateRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: editedTitle,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetEditedTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t[ 'title' ], // Only save title to avoid persisting other edits.\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// TODO: this action will be reused in template parts list, so\n\t\t\t\t// let's keep this for a bit, even it's always a `template` now.\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template renamed.' )\n\t\t\t\t\t\t: __( 'Template part renamed.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'An error occurred while renaming the template.' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t\t );\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ onTemplateRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ editedTitle }\n\t\t\t\t\t\tonChange={ setEditedTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_data","_element","_coreData","_notices","_htmlEntities","_components","_lockUnlock","_store","_isTemplateRevertable","_interopRequireDefault","_isTemplateRemovable","_constants","resetTemplateAction","exports","id","label","__","isEligible","isTemplateRevertable","supportsBulk","hideModalHeader","RenderModal","items","closeModal","onPerform","revertTemplate","useDispatch","editSiteStore","saveEditedEntityRecord","coreStore","createSuccessNotice","createErrorNotice","noticesStore","onConfirm","template","allowUndo","type","length","sprintf","decodeEntities","title","rendered","error","fallbackErrorMessage","TEMPLATE_POST_TYPE","errorMessage","message","code","_react","createElement","__experimentalVStack","spacing","__experimentalText","__experimentalHStack","justify","Button","variant","onClick","deleteTemplateAction","isTemplateRemovable","templates","removeTemplates","unlock","_n","renameTemplateAction","is_custom","editedTitle","setEditedTitle","useState","editEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","onTemplateRename","event","preventDefault","throwOnError","onSubmit","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","required"],"sources":["@wordpress/edit-site/src/components/page-templates-template-parts/actions.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport const resetTemplateAction = {\n\tid: 'reset-template',\n\tlabel: __( 'Clear customizations' ),\n\tisEligible: isTemplateRevertable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items, closeModal, onPerform } ) => {\n\t\tconst { revertTemplate } = useDispatch( editSiteStore );\n\t\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst onConfirm = async () => {\n\t\t\ttry {\n\t\t\t\tfor ( const template of items ) {\n\t\t\t\t\tawait revertTemplate( template, {\n\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t} );\n\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\titems.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: The number of items. */\n\t\t\t\t\t\t\t\t__( '%s items reverted.' ),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t\t__( '\"%s\" reverted.' ),\n\t\t\t\t\t\t\t\tdecodeEntities( items[ 0 ].title.rendered )\n\t\t\t\t\t\t ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'edit-site-template-reverted',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tlet fallbackErrorMessage;\n\t\t\t\tif ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\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'An error occurred while reverting the templates.'\n\t\t\t\t\t\t\t );\n\t\t\t\t} else {\n\t\t\t\t\tfallbackErrorMessage =\n\t\t\t\t\t\titems.length === 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\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'An error occurred while reverting the template parts.'\n\t\t\t\t\t\t\t );\n\t\t\t\t}\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t};\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Are you sure you want to clear these customizations?'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tawait onConfirm( items );\n\t\t\t\t\t\t\tonPerform?.();\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const deleteTemplateAction = {\n\tid: 'delete-template',\n\tlabel: __( 'Delete' ),\n\tisEligible: isTemplateRemovable,\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tRenderModal: ( { items: templates, closeModal, onPerform } ) => {\n\t\tconst { removeTemplates } = unlock( useDispatch( editSiteStore ) );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ templates.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: number of items to delete.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Delete %d item?',\n\t\t\t\t\t\t\t\t\t'Delete %d items?',\n\t\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttemplates.length\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The template or template part's titles\n\t\t\t\t\t\t\t\t__( 'Delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\ttemplates?.[ 0 ]?.title?.rendered\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tawait removeTemplates( templates, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tonPerform?.();\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const renameTemplateAction = {\n\tid: 'rename-template',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( template ) => {\n\t\t// We can only remove templates or template parts that can be removed.\n\t\t// Additionally in the case of templates, we can only remove custom templates.\n\t\tif (\n\t\t\t! isTemplateRemovable( template ) ||\n\t\t\t( template.type === TEMPLATE_POST_TYPE && ! template.is_custom )\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\tRenderModal: ( { items: templates, closeModal } ) => {\n\t\tconst template = templates[ 0 ];\n\t\tconst title = decodeEntities( template.title.rendered );\n\t\tconst [ editedTitle, setEditedTitle ] = useState( title );\n\t\tconst {\n\t\t\teditEntityRecord,\n\t\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t\t} = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onTemplateRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: editedTitle,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetEditedTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t[ 'title' ], // Only save title to avoid persisting other edits.\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template renamed.' )\n\t\t\t\t\t\t: __( 'Template part renamed.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'An error occurred while renaming the template.' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t\t );\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ onTemplateRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ editedTitle }\n\t\t\t\t\t\tonChange={ setEditedTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n"],"mappings":"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"}