@wordpress/patterns 2.32.0 → 2.32.1-next.47f435fc9.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 (105) hide show
  1. package/build/api/index.js +35 -29
  2. package/build/api/index.js.map +7 -1
  3. package/build/components/allow-overrides-modal.js +149 -112
  4. package/build/components/allow-overrides-modal.js.map +7 -1
  5. package/build/components/category-selector.js +59 -38
  6. package/build/components/category-selector.js.map +7 -1
  7. package/build/components/create-pattern-modal.js +162 -111
  8. package/build/components/create-pattern-modal.js.map +7 -1
  9. package/build/components/duplicate-pattern-modal.js +85 -66
  10. package/build/components/duplicate-pattern-modal.js.map +7 -1
  11. package/build/components/index.js +50 -33
  12. package/build/components/index.js.map +7 -1
  13. package/build/components/overrides-panel.js +44 -39
  14. package/build/components/overrides-panel.js.map +7 -1
  15. package/build/components/pattern-convert-button.js +144 -133
  16. package/build/components/pattern-convert-button.js.map +7 -1
  17. package/build/components/pattern-overrides-block-controls.js +109 -109
  18. package/build/components/pattern-overrides-block-controls.js.map +7 -1
  19. package/build/components/pattern-overrides-controls.js +86 -69
  20. package/build/components/pattern-overrides-controls.js.map +7 -1
  21. package/build/components/patterns-manage-button.js +96 -97
  22. package/build/components/patterns-manage-button.js.map +7 -1
  23. package/build/components/rename-pattern-category-modal.js +122 -111
  24. package/build/components/rename-pattern-category-modal.js.map +7 -1
  25. package/build/components/rename-pattern-modal.js +95 -73
  26. package/build/components/rename-pattern-modal.js.map +7 -1
  27. package/build/components/reset-overrides-control.js +61 -57
  28. package/build/components/reset-overrides-control.js.map +7 -1
  29. package/build/constants.js +57 -23
  30. package/build/constants.js.map +7 -1
  31. package/build/index.js +27 -24
  32. package/build/index.js.map +7 -1
  33. package/build/lock-unlock.js +31 -15
  34. package/build/lock-unlock.js.map +7 -1
  35. package/build/private-apis.js +71 -48
  36. package/build/private-apis.js.map +7 -1
  37. package/build/private-hooks.js +57 -69
  38. package/build/private-hooks.js.map +7 -1
  39. package/build/store/actions.js +72 -85
  40. package/build/store/actions.js.map +7 -1
  41. package/build/store/constants.js +27 -10
  42. package/build/store/constants.js.map +7 -1
  43. package/build/store/index.js +50 -44
  44. package/build/store/index.js.map +7 -1
  45. package/build/store/reducer.js +30 -14
  46. package/build/store/reducer.js.map +7 -1
  47. package/build/store/selectors.js +26 -13
  48. package/build/store/selectors.js.map +7 -1
  49. package/build-module/api/index.js +14 -25
  50. package/build-module/api/index.js.map +7 -1
  51. package/build-module/components/allow-overrides-modal.js +131 -103
  52. package/build-module/components/allow-overrides-modal.js.map +7 -1
  53. package/build-module/components/category-selector.js +35 -29
  54. package/build-module/components/category-selector.js.map +7 -1
  55. package/build-module/components/create-pattern-modal.js +137 -99
  56. package/build-module/components/create-pattern-modal.js.map +7 -1
  57. package/build-module/components/duplicate-pattern-modal.js +53 -58
  58. package/build-module/components/duplicate-pattern-modal.js.map +7 -1
  59. package/build-module/components/index.js +22 -26
  60. package/build-module/components/index.js.map +7 -1
  61. package/build-module/components/overrides-panel.js +30 -34
  62. package/build-module/components/overrides-panel.js.map +7 -1
  63. package/build-module/components/pattern-convert-button.js +120 -125
  64. package/build-module/components/pattern-convert-button.js.map +7 -1
  65. package/build-module/components/pattern-overrides-block-controls.js +100 -103
  66. package/build-module/components/pattern-overrides-block-controls.js.map +7 -1
  67. package/build-module/components/pattern-overrides-controls.js +69 -58
  68. package/build-module/components/pattern-overrides-controls.js.map +7 -1
  69. package/build-module/components/patterns-manage-button.js +78 -91
  70. package/build-module/components/patterns-manage-button.js.map +7 -1
  71. package/build-module/components/rename-pattern-category-modal.js +106 -101
  72. package/build-module/components/rename-pattern-category-modal.js.map +7 -1
  73. package/build-module/components/rename-pattern-modal.js +80 -64
  74. package/build-module/components/rename-pattern-modal.js.map +7 -1
  75. package/build-module/components/reset-overrides-control.js +46 -51
  76. package/build-module/components/reset-overrides-control.js.map +7 -1
  77. package/build-module/constants.js +29 -18
  78. package/build-module/constants.js.map +7 -1
  79. package/build-module/index.js +6 -6
  80. package/build-module/index.js.map +7 -1
  81. package/build-module/lock-unlock.js +8 -7
  82. package/build-module/lock-unlock.js.map +7 -1
  83. package/build-module/private-apis.js +31 -18
  84. package/build-module/private-apis.js.map +7 -1
  85. package/build-module/private-hooks.js +35 -64
  86. package/build-module/private-hooks.js.map +7 -1
  87. package/build-module/store/actions.js +44 -74
  88. package/build-module/store/actions.js.map +7 -1
  89. package/build-module/store/constants.js +5 -5
  90. package/build-module/store/constants.js.map +7 -1
  91. package/build-module/store/index.js +13 -32
  92. package/build-module/store/index.js.map +7 -1
  93. package/build-module/store/reducer.js +9 -8
  94. package/build-module/store/reducer.js.map +7 -1
  95. package/build-module/store/selectors.js +5 -9
  96. package/build-module/store/selectors.js.map +7 -1
  97. package/build-style/style-rtl.css +3 -138
  98. package/build-style/style.css +3 -138
  99. package/package.json +24 -17
  100. package/src/components/style.scss +5 -0
  101. package/src/style.scss +2 -1
  102. package/build/index.native.js +0 -18
  103. package/build/index.native.js.map +0 -1
  104. package/build-module/index.native.js +0 -11
  105. package/build-module/index.native.js.map +0 -1
@@ -1,38 +1,55 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var components_exports = {};
29
+ __export(components_exports, {
30
+ default: () => PatternsMenuItems
6
31
  });
7
- exports.default = PatternsMenuItems;
8
- var _blockEditor = require("@wordpress/block-editor");
9
- var _patternConvertButton = _interopRequireDefault(require("./pattern-convert-button"));
10
- var _patternsManageButton = _interopRequireDefault(require("./patterns-manage-button"));
11
- var _jsxRuntime = require("react/jsx-runtime");
12
- /**
13
- * WordPress dependencies
14
- */
15
-
16
- /**
17
- * Internal dependencies
18
- */
19
-
20
- function PatternsMenuItems({
21
- rootClientId
22
- }) {
23
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockSettingsMenuControls, {
24
- children: ({
25
- selectedClientIds,
26
- onClose
27
- }) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
28
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_patternConvertButton.default, {
32
+ module.exports = __toCommonJS(components_exports);
33
+ var import_jsx_runtime = require("react/jsx-runtime");
34
+ var import_block_editor = require("@wordpress/block-editor");
35
+ var import_pattern_convert_button = __toESM(require("./pattern-convert-button"));
36
+ var import_patterns_manage_button = __toESM(require("./patterns-manage-button"));
37
+ function PatternsMenuItems({ rootClientId }) {
38
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockSettingsMenuControls, { children: ({ selectedClientIds, onClose }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
39
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
40
+ import_pattern_convert_button.default,
41
+ {
29
42
  clientIds: selectedClientIds,
30
- rootClientId: rootClientId,
43
+ rootClientId,
31
44
  closeBlockSettingsMenu: onClose
32
- }), selectedClientIds.length === 1 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_patternsManageButton.default, {
45
+ }
46
+ ),
47
+ selectedClientIds.length === 1 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
48
+ import_patterns_manage_button.default,
49
+ {
33
50
  clientId: selectedClientIds[0]
34
- })]
35
- })
36
- });
51
+ }
52
+ )
53
+ ] }) });
37
54
  }
38
- //# sourceMappingURL=index.js.map
55
+ //# sourceMappingURL=index.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["_blockEditor","require","_patternConvertButton","_interopRequireDefault","_patternsManageButton","_jsxRuntime","PatternsMenuItems","rootClientId","jsx","BlockSettingsMenuControls","children","selectedClientIds","onClose","jsxs","Fragment","default","clientIds","closeBlockSettingsMenu","length","clientId"],"sources":["@wordpress/patterns/src/components/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockSettingsMenuControls } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport PatternConvertButton from './pattern-convert-button';\nimport PatternsManageButton from './patterns-manage-button';\n\nexport default function PatternsMenuItems( { rootClientId } ) {\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds, onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<PatternConvertButton\n\t\t\t\t\t\tclientIds={ selectedClientIds }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tcloseBlockSettingsMenu={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t\t{ selectedClientIds.length === 1 && (\n\t\t\t\t\t\t<PatternsManageButton\n\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAKA,IAAAC,qBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAA4D,IAAAI,WAAA,GAAAJ,OAAA;AAT5D;AACA;AACA;;AAGA;AACA;AACA;;AAIe,SAASK,iBAAiBA,CAAE;EAAEC;AAAa,CAAC,EAAG;EAC7D,oBACC,IAAAF,WAAA,CAAAG,GAAA,EAACR,YAAA,CAAAS,yBAAyB;IAAAC,QAAA,EACvBA,CAAE;MAAEC,iBAAiB;MAAEC;IAAQ,CAAC,kBACjC,IAAAP,WAAA,CAAAQ,IAAA,EAAAR,WAAA,CAAAS,QAAA;MAAAJ,QAAA,gBACC,IAAAL,WAAA,CAAAG,GAAA,EAACN,qBAAA,CAAAa,OAAoB;QACpBC,SAAS,EAAGL,iBAAmB;QAC/BJ,YAAY,EAAGA,YAAc;QAC7BU,sBAAsB,EAAGL;MAAS,CAClC,CAAC,EACAD,iBAAiB,CAACO,MAAM,KAAK,CAAC,iBAC/B,IAAAb,WAAA,CAAAG,GAAA,EAACJ,qBAAA,CAAAW,OAAoB;QACpBI,QAAQ,EAAGR,iBAAiB,CAAE,CAAC;MAAI,CACnC,CACD;IAAA,CACA;EACF,CACyB,CAAC;AAE9B","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/index.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { BlockSettingsMenuControls } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport PatternConvertButton from './pattern-convert-button';\nimport PatternsManageButton from './patterns-manage-button';\n\nexport default function PatternsMenuItems( { rootClientId } ) {\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds, onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<PatternConvertButton\n\t\t\t\t\t\tclientIds={ selectedClientIds }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tcloseBlockSettingsMenu={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t\t{ selectedClientIds.length === 1 && (\n\t\t\t\t\t\t<PatternsManageButton\n\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAeI;AAZJ,0BAA0C;AAK1C,oCAAiC;AACjC,oCAAiC;AAElB,SAAR,kBAAoC,EAAE,aAAa,GAAI;AAC7D,SACC,4CAAC,iDACE,WAAE,EAAE,mBAAmB,QAAQ,MAChC,4EACC;AAAA;AAAA,MAAC,8BAAAA;AAAA,MAAA;AAAA,QACA,WAAY;AAAA,QACZ;AAAA,QACA,wBAAyB;AAAA;AAAA,IAC1B;AAAA,IACE,kBAAkB,WAAW,KAC9B;AAAA,MAAC,8BAAAC;AAAA,MAAA;AAAA,QACA,UAAW,kBAAmB,CAAE;AAAA;AAAA,IACjC;AAAA,KAEF,GAEF;AAEF;",
6
+ "names": ["PatternConvertButton", "PatternsManageButton"]
7
+ }
@@ -1,45 +1,50 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var overrides_panel_exports = {};
19
+ __export(overrides_panel_exports, {
20
+ default: () => OverridesPanel
5
21
  });
6
- exports.default = OverridesPanel;
7
- var _blockEditor = require("@wordpress/block-editor");
8
- var _components = require("@wordpress/components");
9
- var _data = require("@wordpress/data");
10
- var _element = require("@wordpress/element");
11
- var _i18n = require("@wordpress/i18n");
12
- var _api = require("../api");
13
- var _lockUnlock = require("../lock-unlock");
14
- var _jsxRuntime = require("react/jsx-runtime");
15
- /**
16
- * WordPress dependencies
17
- */
18
-
19
- /**
20
- * Internal dependencies
21
- */
22
-
23
- const {
24
- BlockQuickNavigation
25
- } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
22
+ module.exports = __toCommonJS(overrides_panel_exports);
23
+ var import_jsx_runtime = require("react/jsx-runtime");
24
+ var import_block_editor = require("@wordpress/block-editor");
25
+ var import_components = require("@wordpress/components");
26
+ var import_data = require("@wordpress/data");
27
+ var import_element = require("@wordpress/element");
28
+ var import_i18n = require("@wordpress/i18n");
29
+ var import_api = require("../api");
30
+ var import_lock_unlock = require("../lock-unlock");
31
+ const { BlockQuickNavigation } = (0, import_lock_unlock.unlock)(import_block_editor.privateApis);
26
32
  function OverridesPanel() {
27
- const allClientIds = (0, _data.useSelect)(select => select(_blockEditor.store).getClientIdsWithDescendants(), []);
28
- const {
29
- getBlock
30
- } = (0, _data.useSelect)(_blockEditor.store);
31
- const clientIdsWithOverrides = (0, _element.useMemo)(() => allClientIds.filter(clientId => {
32
- const block = getBlock(clientId);
33
- return (0, _api.isOverridableBlock)(block);
34
- }), [allClientIds, getBlock]);
33
+ const allClientIds = (0, import_data.useSelect)(
34
+ (select) => select(import_block_editor.store).getClientIdsWithDescendants(),
35
+ []
36
+ );
37
+ const { getBlock } = (0, import_data.useSelect)(import_block_editor.store);
38
+ const clientIdsWithOverrides = (0, import_element.useMemo)(
39
+ () => allClientIds.filter((clientId) => {
40
+ const block = getBlock(clientId);
41
+ return (0, import_api.isOverridableBlock)(block);
42
+ }),
43
+ [allClientIds, getBlock]
44
+ );
35
45
  if (!clientIdsWithOverrides?.length) {
36
46
  return null;
37
47
  }
38
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.PanelBody, {
39
- title: (0, _i18n.__)('Overrides'),
40
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BlockQuickNavigation, {
41
- clientIds: clientIdsWithOverrides
42
- })
43
- });
48
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.PanelBody, { title: (0, import_i18n.__)("Overrides"), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BlockQuickNavigation, { clientIds: clientIdsWithOverrides }) });
44
49
  }
45
- //# sourceMappingURL=overrides-panel.js.map
50
+ //# sourceMappingURL=overrides-panel.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["_blockEditor","require","_components","_data","_element","_i18n","_api","_lockUnlock","_jsxRuntime","BlockQuickNavigation","unlock","blockEditorPrivateApis","OverridesPanel","allClientIds","useSelect","select","blockEditorStore","getClientIdsWithDescendants","getBlock","clientIdsWithOverrides","useMemo","filter","clientId","block","isOverridableBlock","length","jsx","PanelBody","title","__","children","clientIds"],"sources":["@wordpress/patterns/src/components/overrides-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { PanelBody } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isOverridableBlock } from '../api';\nimport { unlock } from '../lock-unlock';\n\nconst { BlockQuickNavigation } = unlock( blockEditorPrivateApis );\n\nexport default function OverridesPanel() {\n\tconst allClientIds = useSelect(\n\t\t( select ) => select( blockEditorStore ).getClientIdsWithDescendants(),\n\t\t[]\n\t);\n\tconst { getBlock } = useSelect( blockEditorStore );\n\tconst clientIdsWithOverrides = useMemo(\n\t\t() =>\n\t\t\tallClientIds.filter( ( clientId ) => {\n\t\t\t\tconst block = getBlock( clientId );\n\t\t\t\treturn isOverridableBlock( block );\n\t\t\t} ),\n\t\t[ allClientIds, getBlock ]\n\t);\n\n\tif ( ! clientIdsWithOverrides?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Overrides' ) }>\n\t\t\t<BlockQuickNavigation clientIds={ clientIdsWithOverrides } />\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAIA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAKA,IAAAK,IAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAAwC,IAAAO,WAAA,GAAAP,OAAA;AAhBxC;AACA;AACA;;AAUA;AACA;AACA;;AAIA,MAAM;EAAEQ;AAAqB,CAAC,GAAG,IAAAC,kBAAM,EAAEC,wBAAuB,CAAC;AAElD,SAASC,cAAcA,CAAA,EAAG;EACxC,MAAMC,YAAY,GAAG,IAAAC,eAAS,EAC3BC,MAAM,IAAMA,MAAM,CAAEC,kBAAiB,CAAC,CAACC,2BAA2B,CAAC,CAAC,EACtE,EACD,CAAC;EACD,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAJ,eAAS,EAAEE,kBAAiB,CAAC;EAClD,MAAMG,sBAAsB,GAAG,IAAAC,gBAAO,EACrC,MACCP,YAAY,CAACQ,MAAM,CAAIC,QAAQ,IAAM;IACpC,MAAMC,KAAK,GAAGL,QAAQ,CAAEI,QAAS,CAAC;IAClC,OAAO,IAAAE,uBAAkB,EAAED,KAAM,CAAC;EACnC,CAAE,CAAC,EACJ,CAAEV,YAAY,EAAEK,QAAQ,CACzB,CAAC;EAED,IAAK,CAAEC,sBAAsB,EAAEM,MAAM,EAAG;IACvC,OAAO,IAAI;EACZ;EAEA,oBACC,IAAAjB,WAAA,CAAAkB,GAAA,EAACxB,WAAA,CAAAyB,SAAS;IAACC,KAAK,EAAG,IAAAC,QAAE,EAAE,WAAY,CAAG;IAAAC,QAAA,eACrC,IAAAtB,WAAA,CAAAkB,GAAA,EAACjB,oBAAoB;MAACsB,SAAS,EAAGZ;IAAwB,CAAE;EAAC,CACnD,CAAC;AAEd","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/overrides-panel.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { PanelBody } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isOverridableBlock } from '../api';\nimport { unlock } from '../lock-unlock';\n\nconst { BlockQuickNavigation } = unlock( blockEditorPrivateApis );\n\nexport default function OverridesPanel() {\n\tconst allClientIds = useSelect(\n\t\t( select ) => select( blockEditorStore ).getClientIdsWithDescendants(),\n\t\t[]\n\t);\n\tconst { getBlock } = useSelect( blockEditorStore );\n\tconst clientIdsWithOverrides = useMemo(\n\t\t() =>\n\t\t\tallClientIds.filter( ( clientId ) => {\n\t\t\t\tconst block = getBlock( clientId );\n\t\t\t\treturn isOverridableBlock( block );\n\t\t\t} ),\n\t\t[ allClientIds, getBlock ]\n\t);\n\n\tif ( ! clientIdsWithOverrides?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Overrides' ) }>\n\t\t\t<BlockQuickNavigation clientIds={ clientIdsWithOverrides } />\n\t\t</PanelBody>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAyCG;AAtCH,0BAGO;AACP,wBAA0B;AAC1B,kBAA0B;AAC1B,qBAAwB;AACxB,kBAAmB;AAKnB,iBAAmC;AACnC,yBAAuB;AAEvB,MAAM,EAAE,qBAAqB,QAAI,2BAAQ,oBAAAA,WAAuB;AAEjD,SAAR,iBAAkC;AACxC,QAAM,mBAAe;AAAA,IACpB,CAAE,WAAY,OAAQ,oBAAAC,KAAiB,EAAE,4BAA4B;AAAA,IACrE,CAAC;AAAA,EACF;AACA,QAAM,EAAE,SAAS,QAAI,uBAAW,oBAAAA,KAAiB;AACjD,QAAM,6BAAyB;AAAA,IAC9B,MACC,aAAa,OAAQ,CAAE,aAAc;AACpC,YAAM,QAAQ,SAAU,QAAS;AACjC,iBAAO,+BAAoB,KAAM;AAAA,IAClC,CAAE;AAAA,IACH,CAAE,cAAc,QAAS;AAAA,EAC1B;AAEA,MAAK,CAAE,wBAAwB,QAAS;AACvC,WAAO;AAAA,EACR;AAEA,SACC,4CAAC,+BAAU,WAAQ,gBAAI,WAAY,GAClC,sDAAC,wBAAqB,WAAY,wBAAyB,GAC5D;AAEF;",
6
+ "names": ["blockEditorPrivateApis", "blockEditorStore"]
7
+ }
@@ -1,161 +1,172 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var pattern_convert_button_exports = {};
29
+ __export(pattern_convert_button_exports, {
30
+ default: () => PatternConvertButton
6
31
  });
7
- exports.default = PatternConvertButton;
8
- var _blocks = require("@wordpress/blocks");
9
- var _blockEditor = require("@wordpress/block-editor");
10
- var _element = require("@wordpress/element");
11
- var _components = require("@wordpress/components");
12
- var _icons = require("@wordpress/icons");
13
- var _data = require("@wordpress/data");
14
- var _coreData = require("@wordpress/core-data");
15
- var _i18n = require("@wordpress/i18n");
16
- var _notices = require("@wordpress/notices");
17
- var _store = require("../store");
18
- var _createPatternModal = _interopRequireDefault(require("./create-pattern-modal"));
19
- var _lockUnlock = require("../lock-unlock");
20
- var _constants = require("../constants");
21
- var _jsxRuntime = require("react/jsx-runtime");
22
- /**
23
- * WordPress dependencies
24
- */
25
-
26
- /**
27
- * Internal dependencies
28
- */
29
-
30
- /**
31
- * Menu control to convert block(s) to a pattern block.
32
- *
33
- * @param {Object} props Component props.
34
- * @param {string[]} props.clientIds Client ids of selected blocks.
35
- * @param {string} props.rootClientId ID of the currently selected top-level block.
36
- * @param {()=>void} props.closeBlockSettingsMenu Callback to close the block settings menu dropdown.
37
- * @return {import('react').ComponentType} The menu control or null.
38
- */function PatternConvertButton({
32
+ module.exports = __toCommonJS(pattern_convert_button_exports);
33
+ var import_jsx_runtime = require("react/jsx-runtime");
34
+ var import_blocks = require("@wordpress/blocks");
35
+ var import_block_editor = require("@wordpress/block-editor");
36
+ var import_element = require("@wordpress/element");
37
+ var import_components = require("@wordpress/components");
38
+ var import_icons = require("@wordpress/icons");
39
+ var import_data = require("@wordpress/data");
40
+ var import_core_data = require("@wordpress/core-data");
41
+ var import_i18n = require("@wordpress/i18n");
42
+ var import_notices = require("@wordpress/notices");
43
+ var import_store = require("../store");
44
+ var import_create_pattern_modal = __toESM(require("./create-pattern-modal"));
45
+ var import_lock_unlock = require("../lock-unlock");
46
+ var import_constants = require("../constants");
47
+ function PatternConvertButton({
39
48
  clientIds,
40
49
  rootClientId,
41
50
  closeBlockSettingsMenu
42
51
  }) {
43
- const {
44
- createSuccessNotice
45
- } = (0, _data.useDispatch)(_notices.store);
46
- const {
47
- replaceBlocks,
48
- updateBlockAttributes
49
- } = (0, _data.useDispatch)(_blockEditor.store);
50
- // Ignore reason: false positive of the lint rule.
51
- // eslint-disable-next-line @wordpress/no-unused-vars-before-return
52
- const {
53
- setEditingPattern
54
- } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
55
- const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
56
- const {
57
- getBlockAttributes
58
- } = (0, _data.useSelect)(_blockEditor.store);
59
- const canConvert = (0, _data.useSelect)(select => {
60
- var _getBlocksByClientId;
61
- const {
62
- canUser
63
- } = select(_coreData.store);
64
- const {
65
- getBlocksByClientId,
66
- canInsertBlockType,
67
- getBlockRootClientId
68
- } = select(_blockEditor.store);
69
- const rootId = rootClientId || (clientIds.length > 0 ? getBlockRootClientId(clientIds[0]) : undefined);
70
- const blocks = (_getBlocksByClientId = getBlocksByClientId(clientIds)) !== null && _getBlocksByClientId !== void 0 ? _getBlocksByClientId : [];
71
-
72
- // Check if the block has reusable support defined.
73
- const hasReusableBlockSupport = blockName => {
74
- const blockType = (0, _blocks.getBlockType)(blockName);
75
- const hasParent = blockType && 'parent' in blockType;
76
-
77
- // If the block has a parent, check with false as default, otherwise with true.
78
- return (0, _blocks.hasBlockSupport)(blockName, 'reusable', !hasParent);
79
- };
80
- const isSyncedPattern = blocks.length === 1 && blocks[0] && (0, _blocks.isReusableBlock)(blocks[0]) && !!select(_coreData.store).getEntityRecord('postType', 'wp_block', blocks[0].attributes.ref);
81
- const isUnsyncedPattern = window?.__experimentalContentOnlyPatternInsertion && blocks.length === 1 && blocks?.[0]?.attributes?.metadata?.patternName;
82
- const _canConvert =
83
- // Hide when this is already a pattern.
84
- !isUnsyncedPattern && !isSyncedPattern &&
85
- // Hide when patterns are disabled.
86
- canInsertBlockType('core/block', rootId) && blocks.every(block =>
87
- // Guard against the case where a regular block has *just* been converted.
88
- !!block &&
89
- // Hide on invalid blocks.
90
- block.isValid &&
91
- // Hide when block doesn't support being made into a pattern.
92
- hasReusableBlockSupport(block.name)) &&
93
- // Hide when current doesn't have permission to do that.
94
- // Blocks refers to the wp_block post type, this checks the ability to create a post of that type.
95
- !!canUser('create', {
96
- kind: 'postType',
97
- name: 'wp_block'
98
- });
99
- return _canConvert;
100
- }, [clientIds, rootClientId]);
101
- const {
102
- getBlocksByClientId
103
- } = (0, _data.useSelect)(_blockEditor.store);
104
- const getContent = (0, _element.useCallback)(() => (0, _blocks.serialize)(getBlocksByClientId(clientIds)), [getBlocksByClientId, clientIds]);
52
+ const { createSuccessNotice } = (0, import_data.useDispatch)(import_notices.store);
53
+ const { replaceBlocks, updateBlockAttributes } = (0, import_data.useDispatch)(import_block_editor.store);
54
+ const { setEditingPattern } = (0, import_lock_unlock.unlock)((0, import_data.useDispatch)(import_store.store));
55
+ const [isModalOpen, setIsModalOpen] = (0, import_element.useState)(false);
56
+ const { getBlockAttributes } = (0, import_data.useSelect)(import_block_editor.store);
57
+ const canConvert = (0, import_data.useSelect)(
58
+ (select) => {
59
+ const { canUser } = select(import_core_data.store);
60
+ const {
61
+ getBlocksByClientId: getBlocksByClientId2,
62
+ canInsertBlockType,
63
+ getBlockRootClientId
64
+ } = select(import_block_editor.store);
65
+ const rootId = rootClientId || (clientIds.length > 0 ? getBlockRootClientId(clientIds[0]) : void 0);
66
+ const blocks = getBlocksByClientId2(clientIds) ?? [];
67
+ const hasReusableBlockSupport = (blockName) => {
68
+ const blockType = (0, import_blocks.getBlockType)(blockName);
69
+ const hasParent = blockType && "parent" in blockType;
70
+ return (0, import_blocks.hasBlockSupport)(blockName, "reusable", !hasParent);
71
+ };
72
+ const isSyncedPattern = blocks.length === 1 && blocks[0] && (0, import_blocks.isReusableBlock)(blocks[0]) && !!select(import_core_data.store).getEntityRecord(
73
+ "postType",
74
+ "wp_block",
75
+ blocks[0].attributes.ref
76
+ );
77
+ const isUnsyncedPattern = window?.__experimentalContentOnlyPatternInsertion && blocks.length === 1 && blocks?.[0]?.attributes?.metadata?.patternName;
78
+ const _canConvert = (
79
+ // Hide when this is already a pattern.
80
+ !isUnsyncedPattern && !isSyncedPattern && // Hide when patterns are disabled.
81
+ canInsertBlockType("core/block", rootId) && blocks.every(
82
+ (block) => (
83
+ // Guard against the case where a regular block has *just* been converted.
84
+ !!block && // Hide on invalid blocks.
85
+ block.isValid && // Hide when block doesn't support being made into a pattern.
86
+ hasReusableBlockSupport(block.name)
87
+ )
88
+ ) && // Hide when current doesn't have permission to do that.
89
+ // Blocks refers to the wp_block post type, this checks the ability to create a post of that type.
90
+ !!canUser("create", {
91
+ kind: "postType",
92
+ name: "wp_block"
93
+ })
94
+ );
95
+ return _canConvert;
96
+ },
97
+ [clientIds, rootClientId]
98
+ );
99
+ const { getBlocksByClientId } = (0, import_data.useSelect)(import_block_editor.store);
100
+ const getContent = (0, import_element.useCallback)(
101
+ () => (0, import_blocks.serialize)(getBlocksByClientId(clientIds)),
102
+ [getBlocksByClientId, clientIds]
103
+ );
105
104
  if (!canConvert) {
106
105
  return null;
107
106
  }
108
- const handleSuccess = ({
109
- pattern
110
- }) => {
111
- if (pattern.wp_pattern_sync_status === _constants.PATTERN_SYNC_TYPES.unsynced) {
107
+ const handleSuccess = ({ pattern }) => {
108
+ if (pattern.wp_pattern_sync_status === import_constants.PATTERN_SYNC_TYPES.unsynced) {
112
109
  if (clientIds?.length === 1) {
113
110
  const existingAttributes = getBlockAttributes(clientIds[0]);
114
111
  updateBlockAttributes(clientIds[0], {
115
112
  metadata: {
116
- ...(existingAttributes?.metadata ? existingAttributes.metadata : {}),
113
+ ...existingAttributes?.metadata ? existingAttributes.metadata : {},
117
114
  patternName: `core/block/${pattern.id}`,
118
115
  name: pattern.title.raw
119
116
  }
120
117
  });
121
118
  }
122
119
  } else {
123
- const newBlock = (0, _blocks.createBlock)('core/block', {
120
+ const newBlock = (0, import_blocks.createBlock)("core/block", {
124
121
  ref: pattern.id
125
122
  });
126
123
  replaceBlocks(clientIds, newBlock);
127
124
  setEditingPattern(newBlock.clientId, true);
128
125
  closeBlockSettingsMenu();
129
126
  }
130
- createSuccessNotice(pattern.wp_pattern_sync_status === _constants.PATTERN_SYNC_TYPES.unsynced ? (0, _i18n.sprintf)(
131
- // translators: %s: the name the user has given to the pattern.
132
- (0, _i18n.__)('Unsynced pattern created: %s'), pattern.title.raw) : (0, _i18n.sprintf)(
133
- // translators: %s: the name the user has given to the pattern.
134
- (0, _i18n.__)('Synced pattern created: %s'), pattern.title.raw), {
135
- type: 'snackbar',
136
- id: 'convert-to-pattern-success'
137
- });
127
+ createSuccessNotice(
128
+ pattern.wp_pattern_sync_status === import_constants.PATTERN_SYNC_TYPES.unsynced ? (0, import_i18n.sprintf)(
129
+ // translators: %s: the name the user has given to the pattern.
130
+ (0, import_i18n.__)("Unsynced pattern created: %s"),
131
+ pattern.title.raw
132
+ ) : (0, import_i18n.sprintf)(
133
+ // translators: %s: the name the user has given to the pattern.
134
+ (0, import_i18n.__)("Synced pattern created: %s"),
135
+ pattern.title.raw
136
+ ),
137
+ {
138
+ type: "snackbar",
139
+ id: "convert-to-pattern-success"
140
+ }
141
+ );
138
142
  setIsModalOpen(false);
139
143
  };
140
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
141
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
142
- icon: _icons.symbol,
143
- onClick: () => setIsModalOpen(true),
144
- "aria-expanded": isModalOpen,
145
- "aria-haspopup": "dialog",
146
- children: (0, _i18n.__)('Create pattern')
147
- }), isModalOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_createPatternModal.default, {
148
- content: getContent,
149
- onSuccess: pattern => {
150
- handleSuccess(pattern);
151
- },
152
- onError: () => {
153
- setIsModalOpen(false);
154
- },
155
- onClose: () => {
156
- setIsModalOpen(false);
144
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
145
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
146
+ import_components.MenuItem,
147
+ {
148
+ icon: import_icons.symbol,
149
+ onClick: () => setIsModalOpen(true),
150
+ "aria-expanded": isModalOpen,
151
+ "aria-haspopup": "dialog",
152
+ children: (0, import_i18n.__)("Create pattern")
153
+ }
154
+ ),
155
+ isModalOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
156
+ import_create_pattern_modal.default,
157
+ {
158
+ content: getContent,
159
+ onSuccess: (pattern) => {
160
+ handleSuccess(pattern);
161
+ },
162
+ onError: () => {
163
+ setIsModalOpen(false);
164
+ },
165
+ onClose: () => {
166
+ setIsModalOpen(false);
167
+ }
157
168
  }
158
- })]
159
- });
169
+ )
170
+ ] });
160
171
  }
161
- //# sourceMappingURL=pattern-convert-button.js.map
172
+ //# sourceMappingURL=pattern-convert-button.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["_blocks","require","_blockEditor","_element","_components","_icons","_data","_coreData","_i18n","_notices","_store","_createPatternModal","_interopRequireDefault","_lockUnlock","_constants","_jsxRuntime","PatternConvertButton","clientIds","rootClientId","closeBlockSettingsMenu","createSuccessNotice","useDispatch","noticesStore","replaceBlocks","updateBlockAttributes","blockEditorStore","setEditingPattern","unlock","patternsStore","isModalOpen","setIsModalOpen","useState","getBlockAttributes","useSelect","canConvert","select","_getBlocksByClientId","canUser","coreStore","getBlocksByClientId","canInsertBlockType","getBlockRootClientId","rootId","length","undefined","blocks","hasReusableBlockSupport","blockName","blockType","getBlockType","hasParent","hasBlockSupport","isSyncedPattern","isReusableBlock","getEntityRecord","attributes","ref","isUnsyncedPattern","window","__experimentalContentOnlyPatternInsertion","metadata","patternName","_canConvert","every","block","isValid","name","kind","getContent","useCallback","serialize","handleSuccess","pattern","wp_pattern_sync_status","PATTERN_SYNC_TYPES","unsynced","existingAttributes","id","title","raw","newBlock","createBlock","clientId","sprintf","__","type","jsxs","Fragment","children","jsx","MenuItem","icon","symbol","onClick","default","content","onSuccess","onError","onClose"],"sources":["@wordpress/patterns/src/components/pattern-convert-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\thasBlockSupport,\n\tisReusableBlock,\n\tcreateBlock,\n\tserialize,\n\tgetBlockType,\n} from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState, useCallback } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n/**\n * Internal dependencies\n */\nimport { store as patternsStore } from '../store';\nimport CreatePatternModal from './create-pattern-modal';\nimport { unlock } from '../lock-unlock';\nimport { PATTERN_SYNC_TYPES } from '../constants';\n\n/**\n * Menu control to convert block(s) to a pattern block.\n *\n * @param {Object} props Component props.\n * @param {string[]} props.clientIds Client ids of selected blocks.\n * @param {string} props.rootClientId ID of the currently selected top-level block.\n * @param {()=>void} props.closeBlockSettingsMenu Callback to close the block settings menu dropdown.\n * @return {import('react').ComponentType} The menu control or null.\n */\nexport default function PatternConvertButton( {\n\tclientIds,\n\trootClientId,\n\tcloseBlockSettingsMenu,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { replaceBlocks, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\t// Ignore reason: false positive of the lint rule.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { setEditingPattern } = unlock( useDispatch( patternsStore ) );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst { getBlockAttributes } = useSelect( blockEditorStore );\n\tconst canConvert = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst rootId =\n\t\t\t\trootClientId ||\n\t\t\t\t( clientIds.length > 0\n\t\t\t\t\t? getBlockRootClientId( clientIds[ 0 ] )\n\t\t\t\t\t: undefined );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds ) ?? [];\n\n\t\t\t// Check if the block has reusable support defined.\n\t\t\tconst hasReusableBlockSupport = ( blockName ) => {\n\t\t\t\tconst blockType = getBlockType( blockName );\n\t\t\t\tconst hasParent = blockType && 'parent' in blockType;\n\n\t\t\t\t// If the block has a parent, check with false as default, otherwise with true.\n\t\t\t\treturn hasBlockSupport( blockName, 'reusable', ! hasParent );\n\t\t\t};\n\n\t\t\tconst isSyncedPattern =\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks[ 0 ] &&\n\t\t\t\tisReusableBlock( blocks[ 0 ] ) &&\n\t\t\t\t!! select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblocks[ 0 ].attributes.ref\n\t\t\t\t);\n\n\t\t\tconst isUnsyncedPattern =\n\t\t\t\twindow?.__experimentalContentOnlyPatternInsertion &&\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks?.[ 0 ]?.attributes?.metadata?.patternName;\n\n\t\t\tconst _canConvert =\n\t\t\t\t// Hide when this is already a pattern.\n\t\t\t\t! isUnsyncedPattern &&\n\t\t\t\t! isSyncedPattern &&\n\t\t\t\t// Hide when patterns are disabled.\n\t\t\t\tcanInsertBlockType( 'core/block', rootId ) &&\n\t\t\t\tblocks.every(\n\t\t\t\t\t( block ) =>\n\t\t\t\t\t\t// Guard against the case where a regular block has *just* been converted.\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t// Hide on invalid blocks.\n\t\t\t\t\t\tblock.isValid &&\n\t\t\t\t\t\t// Hide when block doesn't support being made into a pattern.\n\t\t\t\t\t\thasReusableBlockSupport( block.name )\n\t\t\t\t) &&\n\t\t\t\t// Hide when current doesn't have permission to do that.\n\t\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\t\t!! canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_block',\n\t\t\t\t} );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst getContent = useCallback(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\t[ getBlocksByClientId, clientIds ]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\tconst handleSuccess = ( { pattern } ) => {\n\t\tif ( pattern.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced ) {\n\t\t\tif ( clientIds?.length === 1 ) {\n\t\t\t\tconst existingAttributes = getBlockAttributes( clientIds[ 0 ] );\n\t\t\t\tupdateBlockAttributes( clientIds[ 0 ], {\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...( existingAttributes?.metadata\n\t\t\t\t\t\t\t? existingAttributes.metadata\n\t\t\t\t\t\t\t: {} ),\n\t\t\t\t\t\tpatternName: `core/block/${ pattern.id }`,\n\t\t\t\t\t\tname: pattern.title.raw,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\t\t\tconst newBlock = createBlock( 'core/block', {\n\t\t\t\tref: pattern.id,\n\t\t\t} );\n\n\t\t\treplaceBlocks( clientIds, newBlock );\n\t\t\tsetEditingPattern( newBlock.clientId, true );\n\t\t\tcloseBlockSettingsMenu();\n\t\t}\n\n\t\tcreateSuccessNotice(\n\t\t\tpattern.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Unsynced pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Synced pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'convert-to-pattern-success',\n\t\t\t}\n\t\t);\n\t\tsetIsModalOpen( false );\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbol }\n\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create pattern' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tcontent={ getContent }\n\t\t\t\t\tonSuccess={ ( pattern ) => {\n\t\t\t\t\t\thandleSuccess( pattern );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/pattern-convert-button.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\thasBlockSupport,\n\tisReusableBlock,\n\tcreateBlock,\n\tserialize,\n\tgetBlockType,\n} from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useState, useCallback } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { symbol } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n/**\n * Internal dependencies\n */\nimport { store as patternsStore } from '../store';\nimport CreatePatternModal from './create-pattern-modal';\nimport { unlock } from '../lock-unlock';\nimport { PATTERN_SYNC_TYPES } from '../constants';\n\n/**\n * Menu control to convert block(s) to a pattern block.\n *\n * @param {Object} props Component props.\n * @param {string[]} props.clientIds Client ids of selected blocks.\n * @param {string} props.rootClientId ID of the currently selected top-level block.\n * @param {()=>void} props.closeBlockSettingsMenu Callback to close the block settings menu dropdown.\n * @return {import('react').ComponentType} The menu control or null.\n */\nexport default function PatternConvertButton( {\n\tclientIds,\n\trootClientId,\n\tcloseBlockSettingsMenu,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { replaceBlocks, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\t// Ignore reason: false positive of the lint rule.\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { setEditingPattern } = unlock( useDispatch( patternsStore ) );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst { getBlockAttributes } = useSelect( blockEditorStore );\n\tconst canConvert = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst rootId =\n\t\t\t\trootClientId ||\n\t\t\t\t( clientIds.length > 0\n\t\t\t\t\t? getBlockRootClientId( clientIds[ 0 ] )\n\t\t\t\t\t: undefined );\n\n\t\t\tconst blocks = getBlocksByClientId( clientIds ) ?? [];\n\n\t\t\t// Check if the block has reusable support defined.\n\t\t\tconst hasReusableBlockSupport = ( blockName ) => {\n\t\t\t\tconst blockType = getBlockType( blockName );\n\t\t\t\tconst hasParent = blockType && 'parent' in blockType;\n\n\t\t\t\t// If the block has a parent, check with false as default, otherwise with true.\n\t\t\t\treturn hasBlockSupport( blockName, 'reusable', ! hasParent );\n\t\t\t};\n\n\t\t\tconst isSyncedPattern =\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks[ 0 ] &&\n\t\t\t\tisReusableBlock( blocks[ 0 ] ) &&\n\t\t\t\t!! select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblocks[ 0 ].attributes.ref\n\t\t\t\t);\n\n\t\t\tconst isUnsyncedPattern =\n\t\t\t\twindow?.__experimentalContentOnlyPatternInsertion &&\n\t\t\t\tblocks.length === 1 &&\n\t\t\t\tblocks?.[ 0 ]?.attributes?.metadata?.patternName;\n\n\t\t\tconst _canConvert =\n\t\t\t\t// Hide when this is already a pattern.\n\t\t\t\t! isUnsyncedPattern &&\n\t\t\t\t! isSyncedPattern &&\n\t\t\t\t// Hide when patterns are disabled.\n\t\t\t\tcanInsertBlockType( 'core/block', rootId ) &&\n\t\t\t\tblocks.every(\n\t\t\t\t\t( block ) =>\n\t\t\t\t\t\t// Guard against the case where a regular block has *just* been converted.\n\t\t\t\t\t\t!! block &&\n\t\t\t\t\t\t// Hide on invalid blocks.\n\t\t\t\t\t\tblock.isValid &&\n\t\t\t\t\t\t// Hide when block doesn't support being made into a pattern.\n\t\t\t\t\t\thasReusableBlockSupport( block.name )\n\t\t\t\t) &&\n\t\t\t\t// Hide when current doesn't have permission to do that.\n\t\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\t\t!! canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_block',\n\t\t\t\t} );\n\n\t\t\treturn _canConvert;\n\t\t},\n\t\t[ clientIds, rootClientId ]\n\t);\n\tconst { getBlocksByClientId } = useSelect( blockEditorStore );\n\tconst getContent = useCallback(\n\t\t() => serialize( getBlocksByClientId( clientIds ) ),\n\t\t[ getBlocksByClientId, clientIds ]\n\t);\n\n\tif ( ! canConvert ) {\n\t\treturn null;\n\t}\n\n\tconst handleSuccess = ( { pattern } ) => {\n\t\tif ( pattern.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced ) {\n\t\t\tif ( clientIds?.length === 1 ) {\n\t\t\t\tconst existingAttributes = getBlockAttributes( clientIds[ 0 ] );\n\t\t\t\tupdateBlockAttributes( clientIds[ 0 ], {\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...( existingAttributes?.metadata\n\t\t\t\t\t\t\t? existingAttributes.metadata\n\t\t\t\t\t\t\t: {} ),\n\t\t\t\t\t\tpatternName: `core/block/${ pattern.id }`,\n\t\t\t\t\t\tname: pattern.title.raw,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\t\t\tconst newBlock = createBlock( 'core/block', {\n\t\t\t\tref: pattern.id,\n\t\t\t} );\n\n\t\t\treplaceBlocks( clientIds, newBlock );\n\t\t\tsetEditingPattern( newBlock.clientId, true );\n\t\t\tcloseBlockSettingsMenu();\n\t\t}\n\n\t\tcreateSuccessNotice(\n\t\t\tpattern.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Unsynced pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: the name the user has given to the pattern.\n\t\t\t\t\t\t__( 'Synced pattern created: %s' ),\n\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t ),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'convert-to-pattern-success',\n\t\t\t}\n\t\t);\n\t\tsetIsModalOpen( false );\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbol }\n\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create pattern' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tcontent={ getContent }\n\t\t\t\t\tonSuccess={ ( pattern ) => {\n\t\t\t\t\t\thandleSuccess( pattern );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["noticesStore", "blockEditorStore", "patternsStore", "coreStore", "getBlocksByClientId", "CreatePatternModal"]
7
+ }