@wordpress/edit-post 6.8.0 → 6.9.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.
- package/CHANGELOG.md +2 -0
- package/README.md +1 -1
- package/build/components/keyboard-shortcut-help-modal/config.js +12 -0
- package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
- package/build/components/sidebar/plugin-post-status-info/index.js +2 -2
- package/build/components/sidebar/plugin-post-status-info/index.js.map +1 -1
- package/build/components/sidebar/post-schedule/index.js +6 -6
- package/build/components/sidebar/post-schedule/index.js.map +1 -1
- package/build/components/sidebar/post-status/index.js +4 -2
- package/build/components/sidebar/post-status/index.js.map +1 -1
- package/build/components/sidebar/post-template/create-modal.js +116 -0
- package/build/components/sidebar/post-template/create-modal.js.map +1 -0
- package/build/components/sidebar/post-template/form.js +123 -0
- package/build/components/sidebar/post-template/form.js.map +1 -0
- package/build/components/sidebar/post-template/index.js +123 -0
- package/build/components/sidebar/post-template/index.js.map +1 -0
- package/build/components/sidebar/settings-sidebar/index.js +1 -3
- package/build/components/sidebar/settings-sidebar/index.js.map +1 -1
- package/build/components/start-page-options/index.js +31 -13
- package/build/components/start-page-options/index.js.map +1 -1
- package/build/editor.js +1 -1
- package/build/editor.js.map +1 -1
- package/build/editor.native.js +1 -1
- package/build/editor.native.js.map +1 -1
- package/build/store/selectors.js +8 -8
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/config.js +12 -0
- package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
- package/build-module/components/sidebar/plugin-post-status-info/index.js +2 -2
- package/build-module/components/sidebar/plugin-post-status-info/index.js.map +1 -1
- package/build-module/components/sidebar/post-schedule/index.js +7 -4
- package/build-module/components/sidebar/post-schedule/index.js.map +1 -1
- package/build-module/components/sidebar/post-status/index.js +3 -2
- package/build-module/components/sidebar/post-status/index.js.map +1 -1
- package/build-module/components/sidebar/post-template/create-modal.js +104 -0
- package/build-module/components/sidebar/post-template/create-modal.js.map +1 -0
- package/build-module/components/sidebar/post-template/form.js +106 -0
- package/build-module/components/sidebar/post-template/form.js.map +1 -0
- package/build-module/components/sidebar/post-template/index.js +109 -0
- package/build-module/components/sidebar/post-template/index.js.map +1 -0
- package/build-module/components/sidebar/settings-sidebar/index.js +1 -2
- package/build-module/components/sidebar/settings-sidebar/index.js.map +1 -1
- package/build-module/components/start-page-options/index.js +32 -14
- package/build-module/components/start-page-options/index.js.map +1 -1
- package/build-module/editor.js +2 -2
- package/build-module/editor.js.map +1 -1
- package/build-module/editor.native.js +2 -2
- package/build-module/editor.native.js.map +1 -1
- package/build-module/store/selectors.js +8 -7
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +56 -44
- package/build-style/style.css +56 -44
- package/package.json +27 -27
- package/src/components/keyboard-shortcut-help-modal/config.js +8 -0
- package/src/components/keyboard-shortcut-help-modal/test/__snapshots__/index.js.snap +14 -0
- package/src/components/sidebar/plugin-post-status-info/index.js +2 -2
- package/src/components/sidebar/post-schedule/index.js +5 -3
- package/src/components/sidebar/post-schedule/style.scss +18 -3
- package/src/components/sidebar/post-status/index.js +3 -1
- package/src/components/sidebar/post-template/create-modal.js +146 -0
- package/src/components/sidebar/post-template/form.js +140 -0
- package/src/components/sidebar/post-template/index.js +101 -0
- package/src/components/sidebar/post-template/style.scss +46 -0
- package/src/components/sidebar/post-visibility/style.scss +4 -4
- package/src/components/sidebar/settings-sidebar/index.js +0 -2
- package/src/components/start-page-options/index.js +46 -22
- package/src/editor.js +2 -2
- package/src/editor.native.js +2 -2
- package/src/store/selectors.js +5 -8
- package/src/style.scss +1 -1
- package/build/components/sidebar/template/actions.js +0 -172
- package/build/components/sidebar/template/actions.js.map +0 -1
- package/build/components/sidebar/template/index.js +0 -164
- package/build/components/sidebar/template/index.js.map +0 -1
- package/build-module/components/sidebar/template/actions.js +0 -158
- package/build-module/components/sidebar/template/actions.js.map +0 -1
- package/build-module/components/sidebar/template/index.js +0 -145
- package/build-module/components/sidebar/template/index.js.map +0 -1
- package/src/components/sidebar/template/actions.js +0 -206
- package/src/components/sidebar/template/index.js +0 -160
- package/src/components/sidebar/template/style.scss +0 -43
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -268,7 +268,7 @@ _Returns_
|
|
|
268
268
|
|
|
269
269
|
### PluginPostStatusInfo
|
|
270
270
|
|
|
271
|
-
Renders a row in the
|
|
271
|
+
Renders a row in the Summary panel of the Document sidebar.
|
|
272
272
|
It should be noted that this is named and implemented around the function it serves
|
|
273
273
|
and not its location, which may change in future iterations.
|
|
274
274
|
|
|
@@ -45,6 +45,18 @@ const textFormattingShortcuts = [{
|
|
|
45
45
|
character: 'u'
|
|
46
46
|
},
|
|
47
47
|
description: (0, _i18n.__)('Underline the selected text.')
|
|
48
|
+
}, {
|
|
49
|
+
keyCombination: {
|
|
50
|
+
modifier: 'access',
|
|
51
|
+
character: 'd'
|
|
52
|
+
},
|
|
53
|
+
description: (0, _i18n.__)('Strikethrough the selected text.')
|
|
54
|
+
}, {
|
|
55
|
+
keyCombination: {
|
|
56
|
+
modifier: 'access',
|
|
57
|
+
character: 'x'
|
|
58
|
+
},
|
|
59
|
+
description: (0, _i18n.__)('Make the selected text inline code.')
|
|
48
60
|
}];
|
|
49
61
|
exports.textFormattingShortcuts = textFormattingShortcuts;
|
|
50
62
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-post/src/components/keyboard-shortcut-help-modal/config.js"],"names":["textFormattingShortcuts","keyCombination","modifier","character","description"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAGO,MAAMA,uBAAuB,GAAG,CACtC;AACCC,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,8BAAJ;AAFd,CADsC,EAKtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,gCAAJ;AAFd,CALsC,EAStC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,wCAAJ;AAFd,CATsC,EAatC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,cAAZ;AAA4BC,IAAAA,SAAS,EAAE;AAAvC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,gBAAJ;AAFd,CAbsC,EAiBtC;AACCH,EAAAA,cAAc,EAAE;AAAEE,IAAAA,SAAS,EAAE;AAAb,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,iCAAJ;AAFd,CAjBsC,EAqBtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,8BAAJ;AAFd,CArBsC,CAAhC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport const textFormattingShortcuts = [\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'b' },\n\t\tdescription: __( 'Make the selected text bold.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'i' },\n\t\tdescription: __( 'Make the selected text italic.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'k' },\n\t\tdescription: __( 'Convert the selected text into a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primaryShift', character: 'k' },\n\t\tdescription: __( 'Remove a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { character: '[[' },\n\t\tdescription: __( 'Insert a link to a post or page' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'u' },\n\t\tdescription: __( 'Underline the selected text.' ),\n\t},\n];\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-post/src/components/keyboard-shortcut-help-modal/config.js"],"names":["textFormattingShortcuts","keyCombination","modifier","character","description"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAGO,MAAMA,uBAAuB,GAAG,CACtC;AACCC,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,8BAAJ;AAFd,CADsC,EAKtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,gCAAJ;AAFd,CALsC,EAStC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,wCAAJ;AAFd,CATsC,EAatC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,cAAZ;AAA4BC,IAAAA,SAAS,EAAE;AAAvC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,gBAAJ;AAFd,CAbsC,EAiBtC;AACCH,EAAAA,cAAc,EAAE;AAAEE,IAAAA,SAAS,EAAE;AAAb,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,iCAAJ;AAFd,CAjBsC,EAqBtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,8BAAJ;AAFd,CArBsC,EAyBtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,kCAAJ;AAFd,CAzBsC,EA6BtC;AACCH,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAE,cAAI,qCAAJ;AAFd,CA7BsC,CAAhC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport const textFormattingShortcuts = [\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'b' },\n\t\tdescription: __( 'Make the selected text bold.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'i' },\n\t\tdescription: __( 'Make the selected text italic.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'k' },\n\t\tdescription: __( 'Convert the selected text into a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primaryShift', character: 'k' },\n\t\tdescription: __( 'Remove a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { character: '[[' },\n\t\tdescription: __( 'Insert a link to a post or page' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'u' },\n\t\tdescription: __( 'Underline the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'd' },\n\t\tdescription: __( 'Strikethrough the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'x' },\n\t\tdescription: __( 'Make the selected text inline code.' ),\n\t},\n];\n"]}
|
|
@@ -10,7 +10,7 @@ var _element = require("@wordpress/element");
|
|
|
10
10
|
var _components = require("@wordpress/components");
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* Defines as extensibility slot for the
|
|
13
|
+
* Defines as extensibility slot for the Summary panel.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -21,7 +21,7 @@ const {
|
|
|
21
21
|
Slot
|
|
22
22
|
} = (0, _components.createSlotFill)('PluginPostStatusInfo');
|
|
23
23
|
/**
|
|
24
|
-
* Renders a row in the
|
|
24
|
+
* Renders a row in the Summary panel of the Document sidebar.
|
|
25
25
|
* It should be noted that this is named and implemented around the function it serves
|
|
26
26
|
* and not its location, which may change in future iterations.
|
|
27
27
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-post/src/components/sidebar/plugin-post-status-info/index.js"],"names":["Fill","Slot","PluginPostStatusInfo","children","className"],"mappings":";;;;;;;;;AAOA;;AAPA;AACA;AACA;;AAEA;AACA;AACA;AAGO,MAAM;AAAEA,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IAAiB,gCAAgB,sBAAhB,CAAvB;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACA,MAAMC,oBAAoB,GAAG;AAAA,MAAE;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAF;AAAA,SAC5B,4BAAC,IAAD,QACC,4BAAC,oBAAD;AAAU,IAAA,SAAS,EAAGA;AAAtB,KAAoCD,QAApC,CADD,CAD4B;AAAA,CAA7B;;AAMAD,oBAAoB,CAACD,IAArB,GAA4BA,IAA5B;eAEeC,oB","sourcesContent":["/**\n * Defines as extensibility slot for the
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-post/src/components/sidebar/plugin-post-status-info/index.js"],"names":["Fill","Slot","PluginPostStatusInfo","children","className"],"mappings":";;;;;;;;;AAOA;;AAPA;AACA;AACA;;AAEA;AACA;AACA;AAGO,MAAM;AAAEA,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IAAiB,gCAAgB,sBAAhB,CAAvB;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACA,MAAMC,oBAAoB,GAAG;AAAA,MAAE;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAF;AAAA,SAC5B,4BAAC,IAAD,QACC,4BAAC,oBAAD;AAAU,IAAA,SAAS,EAAGA;AAAtB,KAAoCD,QAApC,CADD,CAD4B;AAAA,CAA7B;;AAMAD,oBAAoB,CAACD,IAArB,GAA4BA,IAA5B;eAEeC,oB","sourcesContent":["/**\n * Defines as extensibility slot for the Summary panel.\n */\n\n/**\n * WordPress dependencies\n */\nimport { createSlotFill, PanelRow } from '@wordpress/components';\n\nexport const { Fill, Slot } = createSlotFill( 'PluginPostStatusInfo' );\n\n/**\n * Renders a row in the Summary panel of the Document sidebar.\n * It should be noted that this is named and implemented around the function it serves\n * and not its location, which may change in future iterations.\n *\n * @param {Object} props Component properties.\n * @param {string} [props.className] An optional class name added to the row.\n * @param {WPElement} props.children Children to be rendered.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var PluginPostStatusInfo = wp.editPost.PluginPostStatusInfo;\n *\n * function MyPluginPostStatusInfo() {\n * \treturn wp.element.createElement(\n * \t\tPluginPostStatusInfo,\n * \t\t{\n * \t\t\tclassName: 'my-plugin-post-status-info',\n * \t\t},\n * \t\t__( 'My post status info' )\n * \t)\n * }\n * ```\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { PluginPostStatusInfo } from '@wordpress/edit-post';\n *\n * const MyPluginPostStatusInfo = () => (\n * \t<PluginPostStatusInfo\n * \t\tclassName=\"my-plugin-post-status-info\"\n * \t>\n * \t\t{ __( 'My post status info' ) }\n * \t</PluginPostStatusInfo>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\nconst PluginPostStatusInfo = ( { children, className } ) => (\n\t<Fill>\n\t\t<PanelRow className={ className }>{ children }</PanelRow>\n\t</Fill>\n);\n\nPluginPostStatusInfo.Slot = Slot;\n\nexport default PluginPostStatusInfo;\n"]}
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.default = void 0;
|
|
6
|
+
exports.default = PostSchedule;
|
|
8
7
|
|
|
9
8
|
var _element = require("@wordpress/element");
|
|
10
9
|
|
|
@@ -19,6 +18,9 @@ var _editor = require("@wordpress/editor");
|
|
|
19
18
|
*/
|
|
20
19
|
function PostSchedule() {
|
|
21
20
|
const anchorRef = (0, _element.useRef)();
|
|
21
|
+
const fullLabel = (0, _editor.usePostScheduleLabel)({
|
|
22
|
+
full: true
|
|
23
|
+
});
|
|
22
24
|
return (0, _element.createElement)(_editor.PostScheduleCheck, null, (0, _element.createElement)(_components.PanelRow, {
|
|
23
25
|
className: "edit-post-post-schedule",
|
|
24
26
|
ref: anchorRef
|
|
@@ -37,7 +39,8 @@ function PostSchedule() {
|
|
|
37
39
|
className: "edit-post-post-schedule__toggle",
|
|
38
40
|
onClick: onToggle,
|
|
39
41
|
"aria-expanded": isOpen,
|
|
40
|
-
variant: "tertiary"
|
|
42
|
+
variant: "tertiary",
|
|
43
|
+
label: fullLabel
|
|
41
44
|
}, (0, _element.createElement)(_editor.PostScheduleLabel, null)));
|
|
42
45
|
},
|
|
43
46
|
renderContent: _ref2 => {
|
|
@@ -50,7 +53,4 @@ function PostSchedule() {
|
|
|
50
53
|
}
|
|
51
54
|
})));
|
|
52
55
|
}
|
|
53
|
-
|
|
54
|
-
var _default = PostSchedule;
|
|
55
|
-
exports.default = _default;
|
|
56
56
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-post/src/components/sidebar/post-schedule/index.js"],"names":["PostSchedule","anchorRef","onToggle","isOpen","onClose"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-post/src/components/sidebar/post-schedule/index.js"],"names":["PostSchedule","anchorRef","fullLabel","full","onToggle","isOpen","onClose"],"mappings":";;;;;;;AAKA;;AAFA;;AACA;;AAEA;;AANA;AACA;AACA;AAWe,SAASA,YAAT,GAAwB;AACtC,QAAMC,SAAS,GAAG,sBAAlB;AAEA,QAAMC,SAAS,GAAG,kCAAsB;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAAtB,CAAlB;AAEA,SACC,4BAAC,yBAAD,QACC,4BAAC,oBAAD;AAAU,IAAA,SAAS,EAAC,yBAApB;AAA8C,IAAA,GAAG,EAAGF;AAApD,KACC,0CAAQ,cAAI,SAAJ,CAAR,CADD,EAEC,4BAAC,oBAAD;AACC,IAAA,YAAY,EAAG;AAAEA,MAAAA;AAAF,KADhB;AAEC,IAAA,QAAQ,EAAC,aAFV;AAGC,IAAA,gBAAgB,EAAC,iCAHlB;AAIC,IAAA,YAAY,EAAG;AAAA,UAAE;AAAEG,QAAAA,QAAF;AAAYC,QAAAA;AAAZ,OAAF;AAAA,aACd,qDACC,4BAAC,kBAAD;AACC,QAAA,SAAS,EAAC,iCADX;AAEC,QAAA,OAAO,EAAGD,QAFX;AAGC,yBAAgBC,MAHjB;AAIC,QAAA,OAAO,EAAC,UAJT;AAKC,QAAA,KAAK,EAAGH;AALT,SAOC,4BAAC,yBAAD,OAPD,CADD,CADc;AAAA,KAJhB;AAiBC,IAAA,aAAa,EAAG;AAAA,UAAE;AAAEI,QAAAA;AAAF,OAAF;AAAA,aACf,4BAAC,oBAAD;AAAkB,QAAA,OAAO,EAAGA;AAA5B,QADe;AAAA;AAjBjB,IAFD,CADD,CADD;AA4BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelRow, Dropdown, Button } from '@wordpress/components';\nimport { useRef } from '@wordpress/element';\nimport {\n\tPostSchedule as PostScheduleForm,\n\tPostScheduleLabel,\n\tPostScheduleCheck,\n\tusePostScheduleLabel,\n} from '@wordpress/editor';\n\nexport default function PostSchedule() {\n\tconst anchorRef = useRef();\n\n\tconst fullLabel = usePostScheduleLabel( { full: true } );\n\n\treturn (\n\t\t<PostScheduleCheck>\n\t\t\t<PanelRow className=\"edit-post-post-schedule\" ref={ anchorRef }>\n\t\t\t\t<span>{ __( 'Publish' ) }</span>\n\t\t\t\t<Dropdown\n\t\t\t\t\tpopoverProps={ { anchorRef } }\n\t\t\t\t\tposition=\"bottom left\"\n\t\t\t\t\tcontentClassName=\"edit-post-post-schedule__dialog\"\n\t\t\t\t\trenderToggle={ ( { onToggle, isOpen } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"edit-post-post-schedule__toggle\"\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tlabel={ fullLabel }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PostScheduleLabel />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<PostScheduleForm onClose={ onClose } />\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</PanelRow>\n\t\t</PostScheduleCheck>\n\t);\n}\n"]}
|
|
@@ -37,6 +37,8 @@ var _pluginPostStatusInfo = _interopRequireDefault(require("../plugin-post-statu
|
|
|
37
37
|
|
|
38
38
|
var _store = require("../../../store");
|
|
39
39
|
|
|
40
|
+
var _postTemplate = _interopRequireDefault(require("../post-template"));
|
|
41
|
+
|
|
40
42
|
/**
|
|
41
43
|
* WordPress dependencies
|
|
42
44
|
*/
|
|
@@ -57,10 +59,10 @@ function PostStatus(_ref) {
|
|
|
57
59
|
} = _ref;
|
|
58
60
|
return (0, _element.createElement)(_components.PanelBody, {
|
|
59
61
|
className: "edit-post-post-status",
|
|
60
|
-
title: (0, _i18n.__)('
|
|
62
|
+
title: (0, _i18n.__)('Summary'),
|
|
61
63
|
opened: isOpened,
|
|
62
64
|
onToggle: onTogglePanel
|
|
63
|
-
}, (0, _element.createElement)(_pluginPostStatusInfo.default.Slot, null, fills => (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_postVisibility.default, null), (0, _element.createElement)(_postSchedule.default, null), (0, _element.createElement)(_postFormat.default, null), (0, _element.createElement)(_postSticky.default, null), (0, _element.createElement)(_postPendingStatus.default, null), (0, _element.createElement)(_postSlug.default, null), (0, _element.createElement)(_postAuthor.default, null), fills, (0, _element.createElement)(_postTrash.default, null))));
|
|
65
|
+
}, (0, _element.createElement)(_pluginPostStatusInfo.default.Slot, null, fills => (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_postVisibility.default, null), (0, _element.createElement)(_postSchedule.default, null), (0, _element.createElement)(_postTemplate.default, null), (0, _element.createElement)(_postFormat.default, null), (0, _element.createElement)(_postSticky.default, null), (0, _element.createElement)(_postPendingStatus.default, null), (0, _element.createElement)(_postSlug.default, null), (0, _element.createElement)(_postAuthor.default, null), fills, (0, _element.createElement)(_postTrash.default, null))));
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
var _default = (0, _compose.compose)([(0, _data.withSelect)(select => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-post/src/components/sidebar/post-status/index.js"],"names":["PANEL_NAME","PostStatus","isOpened","onTogglePanel","fills","select","isEditorPanelRemoved","isEditorPanelOpened","editPostStore","isRemoved","dispatch","toggleEditorPanelOpened"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-post/src/components/sidebar/post-status/index.js"],"names":["PANEL_NAME","PostStatus","isOpened","onTogglePanel","fills","select","isEditorPanelRemoved","isEditorPanelOpened","editPostStore","isRemoved","dispatch","toggleEditorPanelOpened"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AArBA;AACA;AACA;;AAMA;AACA;AACA;;AAaA;AACA;AACA;AACA,MAAMA,UAAU,GAAG,aAAnB;;AAEA,SAASC,UAAT,OAAmD;AAAA,MAA9B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAA8B;AAClD,SACC,4BAAC,qBAAD;AACC,IAAA,SAAS,EAAC,uBADX;AAEC,IAAA,KAAK,EAAG,cAAI,SAAJ,CAFT;AAGC,IAAA,MAAM,EAAGD,QAHV;AAIC,IAAA,QAAQ,EAAGC;AAJZ,KAMC,4BAAC,6BAAD,CAAsB,IAAtB,QACKC,KAAF,IACD,qDACC,4BAAC,uBAAD,OADD,EAEC,4BAAC,qBAAD,OAFD,EAGC,4BAAC,qBAAD,OAHD,EAIC,4BAAC,mBAAD,OAJD,EAKC,4BAAC,mBAAD,OALD,EAMC,4BAAC,0BAAD,OAND,EAOC,4BAAC,iBAAD,OAPD,EAQC,4BAAC,mBAAD,OARD,EASGA,KATH,EAUC,4BAAC,kBAAD,OAVD,CAFF,CAND,CADD;AAyBA;;eAEc,sBAAS,CACvB,sBAAcC,MAAF,IAAc;AACzB;AACA;AACA,QAAM;AAAEC,IAAAA,oBAAF;AAAwBC,IAAAA;AAAxB,MACLF,MAAM,CAAEG,YAAF,CADP;AAEA,SAAO;AACNC,IAAAA,SAAS,EAAEH,oBAAoB,CAAEN,UAAF,CADzB;AAENE,IAAAA,QAAQ,EAAEK,mBAAmB,CAAEP,UAAF;AAFvB,GAAP;AAIA,CATD,CADuB,EAWvB,0BAAa;AAAA,MAAE;AAAES,IAAAA;AAAF,GAAF;AAAA,SAAqB,CAAEA,SAAvB;AAAA,CAAb,CAXuB,EAYvB,wBAAgBC,QAAF,KAAkB;AAC/BP,EAAAA,aAAa,GAAG;AACf,WAAOO,QAAQ,CAAEF,YAAF,CAAR,CAA0BG,uBAA1B,CACNX,UADM,CAAP;AAGA;;AAL8B,CAAlB,CAAd,CAZuB,CAAT,EAmBVC,UAnBU,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PostVisibility from '../post-visibility';\nimport PostTrash from '../post-trash';\nimport PostSchedule from '../post-schedule';\nimport PostSticky from '../post-sticky';\nimport PostAuthor from '../post-author';\nimport PostSlug from '../post-slug';\nimport PostFormat from '../post-format';\nimport PostPendingStatus from '../post-pending-status';\nimport PluginPostStatusInfo from '../plugin-post-status-info';\nimport { store as editPostStore } from '../../../store';\nimport PostTemplate from '../post-template';\n\n/**\n * Module Constants\n */\nconst PANEL_NAME = 'post-status';\n\nfunction PostStatus( { isOpened, onTogglePanel } ) {\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName=\"edit-post-post-status\"\n\t\t\ttitle={ __( 'Summary' ) }\n\t\t\topened={ isOpened }\n\t\t\tonToggle={ onTogglePanel }\n\t\t>\n\t\t\t<PluginPostStatusInfo.Slot>\n\t\t\t\t{ ( fills ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<PostVisibility />\n\t\t\t\t\t\t<PostSchedule />\n\t\t\t\t\t\t<PostTemplate />\n\t\t\t\t\t\t<PostFormat />\n\t\t\t\t\t\t<PostSticky />\n\t\t\t\t\t\t<PostPendingStatus />\n\t\t\t\t\t\t<PostSlug />\n\t\t\t\t\t\t<PostAuthor />\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t<PostTrash />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PluginPostStatusInfo.Slot>\n\t\t</PanelBody>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\t// We use isEditorPanelRemoved to hide the panel if it was programatically removed. We do\n\t\t// not use isEditorPanelEnabled since this panel should not be disabled through the UI.\n\t\tconst { isEditorPanelRemoved, isEditorPanelOpened } =\n\t\t\tselect( editPostStore );\n\t\treturn {\n\t\t\tisRemoved: isEditorPanelRemoved( PANEL_NAME ),\n\t\t\tisOpened: isEditorPanelOpened( PANEL_NAME ),\n\t\t};\n\t} ),\n\tifCondition( ( { isRemoved } ) => ! isRemoved ),\n\twithDispatch( ( dispatch ) => ( {\n\t\tonTogglePanel() {\n\t\t\treturn dispatch( editPostStore ).toggleEditorPanelOpened(\n\t\t\t\tPANEL_NAME\n\t\t\t);\n\t\t},\n\t} ) ),\n] )( PostStatus );\n"]}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = PostTemplateCreateModal;
|
|
7
|
+
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
|
|
10
|
+
var _data = require("@wordpress/data");
|
|
11
|
+
|
|
12
|
+
var _editor = require("@wordpress/editor");
|
|
13
|
+
|
|
14
|
+
var _blocks = require("@wordpress/blocks");
|
|
15
|
+
|
|
16
|
+
var _components = require("@wordpress/components");
|
|
17
|
+
|
|
18
|
+
var _i18n = require("@wordpress/i18n");
|
|
19
|
+
|
|
20
|
+
var _url = require("@wordpress/url");
|
|
21
|
+
|
|
22
|
+
var _store = require("../../../store");
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* WordPress dependencies
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Internal dependencies
|
|
30
|
+
*/
|
|
31
|
+
const DEFAULT_TITLE = (0, _i18n.__)('Custom Template');
|
|
32
|
+
|
|
33
|
+
function PostTemplateCreateModal(_ref) {
|
|
34
|
+
let {
|
|
35
|
+
onClose
|
|
36
|
+
} = _ref;
|
|
37
|
+
const defaultBlockTemplate = (0, _data.useSelect)(select => select(_editor.store).getEditorSettings().defaultBlockTemplate, []);
|
|
38
|
+
const {
|
|
39
|
+
__unstableCreateTemplate,
|
|
40
|
+
__unstableSwitchToTemplateMode
|
|
41
|
+
} = (0, _data.useDispatch)(_store.store);
|
|
42
|
+
const [title, setTitle] = (0, _element.useState)('');
|
|
43
|
+
const [isBusy, setIsBusy] = (0, _element.useState)(false);
|
|
44
|
+
|
|
45
|
+
const cancel = () => {
|
|
46
|
+
setTitle('');
|
|
47
|
+
onClose();
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const submit = async event => {
|
|
51
|
+
event.preventDefault();
|
|
52
|
+
|
|
53
|
+
if (isBusy) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
setIsBusy(true);
|
|
58
|
+
const newTemplateContent = defaultBlockTemplate !== null && defaultBlockTemplate !== void 0 ? defaultBlockTemplate : (0, _blocks.serialize)([(0, _blocks.createBlock)('core/group', {
|
|
59
|
+
tagName: 'header',
|
|
60
|
+
layout: {
|
|
61
|
+
inherit: true
|
|
62
|
+
}
|
|
63
|
+
}, [(0, _blocks.createBlock)('core/site-title'), (0, _blocks.createBlock)('core/site-tagline')]), (0, _blocks.createBlock)('core/separator'), (0, _blocks.createBlock)('core/group', {
|
|
64
|
+
tagName: 'main'
|
|
65
|
+
}, [(0, _blocks.createBlock)('core/group', {
|
|
66
|
+
layout: {
|
|
67
|
+
inherit: true
|
|
68
|
+
}
|
|
69
|
+
}, [(0, _blocks.createBlock)('core/post-title')]), (0, _blocks.createBlock)('core/post-content', {
|
|
70
|
+
layout: {
|
|
71
|
+
inherit: true
|
|
72
|
+
}
|
|
73
|
+
})])]);
|
|
74
|
+
await __unstableCreateTemplate({
|
|
75
|
+
slug: (0, _url.cleanForSlug)(title || DEFAULT_TITLE),
|
|
76
|
+
content: newTemplateContent,
|
|
77
|
+
title: title || DEFAULT_TITLE
|
|
78
|
+
});
|
|
79
|
+
setIsBusy(false);
|
|
80
|
+
cancel();
|
|
81
|
+
|
|
82
|
+
__unstableSwitchToTemplateMode(true);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
return (0, _element.createElement)(_components.Modal, {
|
|
86
|
+
title: (0, _i18n.__)('Create custom template'),
|
|
87
|
+
closeLabel: (0, _i18n.__)('Close'),
|
|
88
|
+
onRequestClose: cancel,
|
|
89
|
+
className: "edit-post-post-template__create-modal"
|
|
90
|
+
}, (0, _element.createElement)("form", {
|
|
91
|
+
className: "edit-post-post-template__create-form",
|
|
92
|
+
onSubmit: submit
|
|
93
|
+
}, (0, _element.createElement)(_components.Flex, {
|
|
94
|
+
align: "flex-start",
|
|
95
|
+
gap: 8
|
|
96
|
+
}, (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.TextControl, {
|
|
97
|
+
label: (0, _i18n.__)('Name'),
|
|
98
|
+
value: title,
|
|
99
|
+
onChange: setTitle,
|
|
100
|
+
placeholder: DEFAULT_TITLE,
|
|
101
|
+
disabled: isBusy,
|
|
102
|
+
help: (0, _i18n.__)('Describe the purpose of the template, e.g. "Full Width". Custom templates can be applied to any post or page.')
|
|
103
|
+
}))), (0, _element.createElement)(_components.Flex, {
|
|
104
|
+
justify: "flex-end",
|
|
105
|
+
expanded: false
|
|
106
|
+
}, (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.Button, {
|
|
107
|
+
variant: "tertiary",
|
|
108
|
+
onClick: cancel
|
|
109
|
+
}, (0, _i18n.__)('Cancel'))), (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.Button, {
|
|
110
|
+
variant: "primary",
|
|
111
|
+
type: "submit",
|
|
112
|
+
isBusy: isBusy,
|
|
113
|
+
"aria-disabled": isBusy
|
|
114
|
+
}, (0, _i18n.__)('Create'))))));
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=create-modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-post/src/components/sidebar/post-template/create-modal.js"],"names":["DEFAULT_TITLE","PostTemplateCreateModal","onClose","defaultBlockTemplate","select","editorStore","getEditorSettings","__unstableCreateTemplate","__unstableSwitchToTemplateMode","editPostStore","title","setTitle","isBusy","setIsBusy","cancel","submit","event","preventDefault","newTemplateContent","tagName","layout","inherit","slug","content"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { useState } from '@wordpress/element';\nimport { serialize, createBlock } from '@wordpress/blocks';\nimport {\n\tModal,\n\tFlex,\n\tFlexItem,\n\tTextControl,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { cleanForSlug } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../../store';\n\nconst DEFAULT_TITLE = __( 'Custom Template' );\n\nexport default function PostTemplateCreateModal( { onClose } ) {\n\tconst defaultBlockTemplate = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getEditorSettings().defaultBlockTemplate,\n\t\t[]\n\t);\n\n\tconst { __unstableCreateTemplate, __unstableSwitchToTemplateMode } =\n\t\tuseDispatch( editPostStore );\n\n\tconst [ title, setTitle ] = useState( '' );\n\n\tconst [ isBusy, setIsBusy ] = useState( false );\n\n\tconst cancel = () => {\n\t\tsetTitle( '' );\n\t\tonClose();\n\t};\n\n\tconst submit = async ( event ) => {\n\t\tevent.preventDefault();\n\n\t\tif ( isBusy ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsBusy( true );\n\n\t\tconst newTemplateContent =\n\t\t\tdefaultBlockTemplate ??\n\t\t\tserialize( [\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\ttagName: 'header',\n\t\t\t\t\t\tlayout: { inherit: true },\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock( 'core/site-title' ),\n\t\t\t\t\t\tcreateBlock( 'core/site-tagline' ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t\t\tcreateBlock( 'core/separator' ),\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\ttagName: 'main',\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlayout: { inherit: true },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[ createBlock( 'core/post-title' ) ]\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcreateBlock( 'core/post-content', {\n\t\t\t\t\t\t\tlayout: { inherit: true },\n\t\t\t\t\t\t} ),\n\t\t\t\t\t]\n\t\t\t\t),\n\t\t\t] );\n\n\t\tawait __unstableCreateTemplate( {\n\t\t\tslug: cleanForSlug( title || DEFAULT_TITLE ),\n\t\t\tcontent: newTemplateContent,\n\t\t\ttitle: title || DEFAULT_TITLE,\n\t\t} );\n\n\t\tsetIsBusy( false );\n\t\tcancel();\n\n\t\t__unstableSwitchToTemplateMode( true );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Create custom template' ) }\n\t\t\tcloseLabel={ __( 'Close' ) }\n\t\t\tonRequestClose={ cancel }\n\t\t\tclassName=\"edit-post-post-template__create-modal\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"edit-post-post-template__create-form\"\n\t\t\t\tonSubmit={ submit }\n\t\t\t>\n\t\t\t\t<Flex align=\"flex-start\" gap={ 8 }>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\tplaceholder={ DEFAULT_TITLE }\n\t\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Describe the purpose of the template, e.g. \"Full Width\". Custom templates can be applied to any post or page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\n\t\t\t\t<Flex justify=\"flex-end\" expanded={ false }>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ cancel }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\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\tisBusy={ isBusy }\n\t\t\t\t\t\t\taria-disabled={ isBusy }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = PostTemplateForm;
|
|
9
|
+
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
|
|
12
|
+
var _blockEditor = require("@wordpress/block-editor");
|
|
13
|
+
|
|
14
|
+
var _i18n = require("@wordpress/i18n");
|
|
15
|
+
|
|
16
|
+
var _icons = require("@wordpress/icons");
|
|
17
|
+
|
|
18
|
+
var _components = require("@wordpress/components");
|
|
19
|
+
|
|
20
|
+
var _data = require("@wordpress/data");
|
|
21
|
+
|
|
22
|
+
var _editor = require("@wordpress/editor");
|
|
23
|
+
|
|
24
|
+
var _coreData = require("@wordpress/core-data");
|
|
25
|
+
|
|
26
|
+
var _store = require("../../../store");
|
|
27
|
+
|
|
28
|
+
var _createModal = _interopRequireDefault(require("./create-modal"));
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* WordPress dependencies
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Internal dependencies
|
|
36
|
+
*/
|
|
37
|
+
function PostTemplateForm(_ref) {
|
|
38
|
+
var _options$find, _selectedOption$value;
|
|
39
|
+
|
|
40
|
+
let {
|
|
41
|
+
onClose
|
|
42
|
+
} = _ref;
|
|
43
|
+
const {
|
|
44
|
+
isPostsPage,
|
|
45
|
+
availableTemplates,
|
|
46
|
+
fetchedTemplates,
|
|
47
|
+
selectedTemplateSlug,
|
|
48
|
+
canCreate,
|
|
49
|
+
canEdit
|
|
50
|
+
} = (0, _data.useSelect)(select => {
|
|
51
|
+
const editorSettings = select(_editor.store).getEditorSettings();
|
|
52
|
+
const siteSettings = select(_coreData.store).getEntityRecord('root', 'site');
|
|
53
|
+
|
|
54
|
+
const _isPostsPage = select(_editor.store).getCurrentPostId() === (siteSettings === null || siteSettings === void 0 ? void 0 : siteSettings.page_for_posts);
|
|
55
|
+
|
|
56
|
+
const canCreateTemplates = select(_coreData.store).canUser('create', 'templates');
|
|
57
|
+
return {
|
|
58
|
+
isPostsPage: _isPostsPage,
|
|
59
|
+
availableTemplates: editorSettings.availableTemplates,
|
|
60
|
+
fetchedTemplates: select(_coreData.store).getEntityRecords('postType', 'wp_template', {
|
|
61
|
+
post_type: select(_editor.store).getCurrentPostType(),
|
|
62
|
+
per_page: -1
|
|
63
|
+
}),
|
|
64
|
+
selectedTemplateSlug: select(_editor.store).getEditedPostAttribute('template'),
|
|
65
|
+
canCreate: canCreateTemplates && !_isPostsPage,
|
|
66
|
+
canEdit: canCreateTemplates && editorSettings.supportsTemplateMode && !!select(_store.store).getEditedPostTemplate()
|
|
67
|
+
};
|
|
68
|
+
}, []);
|
|
69
|
+
const options = (0, _element.useMemo)(() => Object.entries({ ...availableTemplates,
|
|
70
|
+
...Object.fromEntries((fetchedTemplates !== null && fetchedTemplates !== void 0 ? fetchedTemplates : []).map(_ref2 => {
|
|
71
|
+
let {
|
|
72
|
+
slug,
|
|
73
|
+
title
|
|
74
|
+
} = _ref2;
|
|
75
|
+
return [slug, title.rendered];
|
|
76
|
+
}))
|
|
77
|
+
}).map(_ref3 => {
|
|
78
|
+
let [slug, title] = _ref3;
|
|
79
|
+
return {
|
|
80
|
+
value: slug,
|
|
81
|
+
label: title
|
|
82
|
+
};
|
|
83
|
+
}), [availableTemplates, fetchedTemplates]);
|
|
84
|
+
const selectedOption = (_options$find = options.find(option => option.value === selectedTemplateSlug)) !== null && _options$find !== void 0 ? _options$find : options.find(option => !option.value); // The default option has '' value.
|
|
85
|
+
|
|
86
|
+
const {
|
|
87
|
+
editPost
|
|
88
|
+
} = (0, _data.useDispatch)(_editor.store);
|
|
89
|
+
const {
|
|
90
|
+
__unstableSwitchToTemplateMode
|
|
91
|
+
} = (0, _data.useDispatch)(_store.store);
|
|
92
|
+
const [isCreateModalOpen, setIsCreateModalOpen] = (0, _element.useState)(false);
|
|
93
|
+
return (0, _element.createElement)("div", {
|
|
94
|
+
className: "edit-post-post-template__form"
|
|
95
|
+
}, (0, _element.createElement)(_blockEditor.__experimentalInspectorPopoverHeader, {
|
|
96
|
+
title: (0, _i18n.__)('Template'),
|
|
97
|
+
help: (0, _i18n.__)('Templates define the way content is displayed when viewing your site.'),
|
|
98
|
+
actions: canCreate ? [{
|
|
99
|
+
icon: _icons.addTemplate,
|
|
100
|
+
label: (0, _i18n.__)('Add template'),
|
|
101
|
+
onClick: () => setIsCreateModalOpen(true)
|
|
102
|
+
}] : [],
|
|
103
|
+
onClose: onClose
|
|
104
|
+
}), isPostsPage ? (0, _element.createElement)(_components.Notice, {
|
|
105
|
+
className: "edit-post-post-template__notice",
|
|
106
|
+
status: "warning",
|
|
107
|
+
isDismissible: false
|
|
108
|
+
}, (0, _i18n.__)('The posts page template cannot be changed.')) : (0, _element.createElement)(_components.SelectControl, {
|
|
109
|
+
hideLabelFromVision: true,
|
|
110
|
+
label: (0, _i18n.__)('Template'),
|
|
111
|
+
value: (_selectedOption$value = selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value) !== null && _selectedOption$value !== void 0 ? _selectedOption$value : '',
|
|
112
|
+
options: options,
|
|
113
|
+
onChange: slug => editPost({
|
|
114
|
+
template: slug || ''
|
|
115
|
+
})
|
|
116
|
+
}), canEdit && (0, _element.createElement)("p", null, (0, _element.createElement)(_components.Button, {
|
|
117
|
+
variant: "link",
|
|
118
|
+
onClick: () => __unstableSwitchToTemplateMode()
|
|
119
|
+
}, (0, _i18n.__)('Edit template'))), isCreateModalOpen && (0, _element.createElement)(_createModal.default, {
|
|
120
|
+
onClose: () => setIsCreateModalOpen(false)
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-post/src/components/sidebar/post-template/form.js"],"names":["PostTemplateForm","onClose","isPostsPage","availableTemplates","fetchedTemplates","selectedTemplateSlug","canCreate","canEdit","select","editorSettings","editorStore","getEditorSettings","siteSettings","coreStore","getEntityRecord","_isPostsPage","getCurrentPostId","page_for_posts","canCreateTemplates","canUser","getEntityRecords","post_type","getCurrentPostType","per_page","getEditedPostAttribute","supportsTemplateMode","editPostStore","getEditedPostTemplate","options","Object","entries","fromEntries","map","slug","title","rendered","value","label","selectedOption","find","option","editPost","__unstableSwitchToTemplateMode","isCreateModalOpen","setIsCreateModalOpen","icon","addTemplate","onClick","template"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useMemo } from '@wordpress/element';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { addTemplate } from '@wordpress/icons';\nimport { Notice, SelectControl, Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../../store';\nimport PostTemplateCreateModal from './create-modal';\n\nexport default function PostTemplateForm( { onClose } ) {\n\tconst {\n\t\tisPostsPage,\n\t\tavailableTemplates,\n\t\tfetchedTemplates,\n\t\tselectedTemplateSlug,\n\t\tcanCreate,\n\t\tcanEdit,\n\t} = useSelect( ( select ) => {\n\t\tconst editorSettings = select( editorStore ).getEditorSettings();\n\t\tconst siteSettings = select( coreStore ).getEntityRecord(\n\t\t\t'root',\n\t\t\t'site'\n\t\t);\n\t\tconst _isPostsPage =\n\t\t\tselect( editorStore ).getCurrentPostId() ===\n\t\t\tsiteSettings?.page_for_posts;\n\t\tconst canCreateTemplates = select( coreStore ).canUser(\n\t\t\t'create',\n\t\t\t'templates'\n\t\t);\n\t\treturn {\n\t\t\tisPostsPage: _isPostsPage,\n\t\t\tavailableTemplates: editorSettings.availableTemplates,\n\t\t\tfetchedTemplates: select( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\t{\n\t\t\t\t\tpost_type: select( editorStore ).getCurrentPostType(),\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t),\n\t\t\tselectedTemplateSlug:\n\t\t\t\tselect( editorStore ).getEditedPostAttribute( 'template' ),\n\t\t\tcanCreate: canCreateTemplates && ! _isPostsPage,\n\t\t\tcanEdit:\n\t\t\t\tcanCreateTemplates &&\n\t\t\t\teditorSettings.supportsTemplateMode &&\n\t\t\t\t!! select( editPostStore ).getEditedPostTemplate(),\n\t\t};\n\t}, [] );\n\n\tconst options = useMemo(\n\t\t() =>\n\t\t\tObject.entries( {\n\t\t\t\t...availableTemplates,\n\t\t\t\t...Object.fromEntries(\n\t\t\t\t\t( fetchedTemplates ?? [] ).map( ( { slug, title } ) => [\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\ttitle.rendered,\n\t\t\t\t\t] )\n\t\t\t\t),\n\t\t\t} ).map( ( [ slug, title ] ) => ( { value: slug, label: title } ) ),\n\t\t[ availableTemplates, fetchedTemplates ]\n\t);\n\n\tconst selectedOption =\n\t\toptions.find( ( option ) => option.value === selectedTemplateSlug ) ??\n\t\toptions.find( ( option ) => ! option.value ); // The default option has '' value.\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { __unstableSwitchToTemplateMode } = useDispatch( editPostStore );\n\n\tconst [ isCreateModalOpen, setIsCreateModalOpen ] = useState( false );\n\n\treturn (\n\t\t<div className=\"edit-post-post-template__form\">\n\t\t\t<InspectorPopoverHeader\n\t\t\t\ttitle={ __( 'Template' ) }\n\t\t\t\thelp={ __(\n\t\t\t\t\t'Templates define the way content is displayed when viewing your site.'\n\t\t\t\t) }\n\t\t\t\tactions={\n\t\t\t\t\tcanCreate\n\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ticon: addTemplate,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Add template' ),\n\t\t\t\t\t\t\t\t\tonClick: () => setIsCreateModalOpen( true ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t ]\n\t\t\t\t\t\t: []\n\t\t\t\t}\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t\t{ isPostsPage ? (\n\t\t\t\t<Notice\n\t\t\t\t\tclassName=\"edit-post-post-template__notice\"\n\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\tisDismissible={ false }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'The posts page template cannot be changed.' ) }\n\t\t\t\t</Notice>\n\t\t\t) : (\n\t\t\t\t<SelectControl\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\tlabel={ __( 'Template' ) }\n\t\t\t\t\tvalue={ selectedOption?.value ?? '' }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tonChange={ ( slug ) =>\n\t\t\t\t\t\teditPost( { template: slug || '' } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ canEdit && (\n\t\t\t\t<p>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ () => __unstableSwitchToTemplateMode() }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit template' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</p>\n\t\t\t) }\n\t\t\t{ isCreateModalOpen && (\n\t\t\t\t<PostTemplateCreateModal\n\t\t\t\t\tonClose={ () => setIsCreateModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = PostTemplate;
|
|
9
|
+
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
|
|
12
|
+
var _components = require("@wordpress/components");
|
|
13
|
+
|
|
14
|
+
var _i18n = require("@wordpress/i18n");
|
|
15
|
+
|
|
16
|
+
var _data = require("@wordpress/data");
|
|
17
|
+
|
|
18
|
+
var _editor = require("@wordpress/editor");
|
|
19
|
+
|
|
20
|
+
var _coreData = require("@wordpress/core-data");
|
|
21
|
+
|
|
22
|
+
var _form = _interopRequireDefault(require("./form"));
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* WordPress dependencies
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Internal dependencies
|
|
30
|
+
*/
|
|
31
|
+
function PostTemplate() {
|
|
32
|
+
const anchorRef = (0, _element.useRef)();
|
|
33
|
+
const isVisible = (0, _data.useSelect)(select => {
|
|
34
|
+
var _select$canUser;
|
|
35
|
+
|
|
36
|
+
const postTypeSlug = select(_editor.store).getCurrentPostType();
|
|
37
|
+
const postType = select(_coreData.store).getPostType(postTypeSlug);
|
|
38
|
+
|
|
39
|
+
if (!(postType !== null && postType !== void 0 && postType.viewable)) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const settings = select(_editor.store).getEditorSettings();
|
|
44
|
+
const hasTemplates = !!settings.availableTemplates && Object.keys(settings.availableTemplates).length > 0;
|
|
45
|
+
|
|
46
|
+
if (hasTemplates) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const canCreateTemplates = (_select$canUser = select(_coreData.store).canUser('create', 'templates')) !== null && _select$canUser !== void 0 ? _select$canUser : false;
|
|
51
|
+
return canCreateTemplates;
|
|
52
|
+
}, []);
|
|
53
|
+
|
|
54
|
+
if (!isVisible) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return (0, _element.createElement)(_components.PanelRow, {
|
|
59
|
+
className: "edit-post-post-template",
|
|
60
|
+
ref: anchorRef
|
|
61
|
+
}, (0, _element.createElement)("span", null, (0, _i18n.__)('Template')), (0, _element.createElement)(_components.Dropdown, {
|
|
62
|
+
popoverProps: {
|
|
63
|
+
anchorRef
|
|
64
|
+
},
|
|
65
|
+
position: "bottom left",
|
|
66
|
+
className: "edit-post-post-template__dropdown",
|
|
67
|
+
contentClassName: "edit-post-post-template__dialog",
|
|
68
|
+
renderToggle: _ref => {
|
|
69
|
+
let {
|
|
70
|
+
isOpen,
|
|
71
|
+
onToggle
|
|
72
|
+
} = _ref;
|
|
73
|
+
return (0, _element.createElement)(PostTemplateToggle, {
|
|
74
|
+
isOpen: isOpen,
|
|
75
|
+
onClick: onToggle
|
|
76
|
+
});
|
|
77
|
+
},
|
|
78
|
+
renderContent: _ref2 => {
|
|
79
|
+
let {
|
|
80
|
+
onClose
|
|
81
|
+
} = _ref2;
|
|
82
|
+
return (0, _element.createElement)(_form.default, {
|
|
83
|
+
onClose: onClose
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function PostTemplateToggle(_ref3) {
|
|
90
|
+
let {
|
|
91
|
+
isOpen,
|
|
92
|
+
onClick
|
|
93
|
+
} = _ref3;
|
|
94
|
+
const templateTitle = (0, _data.useSelect)(select => {
|
|
95
|
+
var _select$getEntityReco;
|
|
96
|
+
|
|
97
|
+
const templateSlug = select(_editor.store).getEditedPostAttribute('template');
|
|
98
|
+
const settings = select(_editor.store).getEditorSettings();
|
|
99
|
+
|
|
100
|
+
if (settings.availableTemplates[templateSlug]) {
|
|
101
|
+
return settings.availableTemplates[templateSlug];
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const template = (_select$getEntityReco = select(_coreData.store).getEntityRecords('postType', 'wp_template', {
|
|
105
|
+
per_page: -1
|
|
106
|
+
})) === null || _select$getEntityReco === void 0 ? void 0 : _select$getEntityReco.find(_ref4 => {
|
|
107
|
+
let {
|
|
108
|
+
slug
|
|
109
|
+
} = _ref4;
|
|
110
|
+
return slug === templateSlug;
|
|
111
|
+
});
|
|
112
|
+
return template === null || template === void 0 ? void 0 : template.title.rendered;
|
|
113
|
+
}, []);
|
|
114
|
+
return (0, _element.createElement)(_components.Button, {
|
|
115
|
+
className: "edit-post-post-template__toggle",
|
|
116
|
+
variant: "tertiary",
|
|
117
|
+
"aria-expanded": isOpen,
|
|
118
|
+
"aria-label": templateTitle ? (0, _i18n.sprintf)( // translators: %s: Name of the currently selected template.
|
|
119
|
+
(0, _i18n.__)('Select template: %s'), templateTitle) : (0, _i18n.__)('Select template'),
|
|
120
|
+
onClick: onClick
|
|
121
|
+
}, templateTitle !== null && templateTitle !== void 0 ? templateTitle : (0, _i18n.__)('(none)'));
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-post/src/components/sidebar/post-template/index.js"],"names":["PostTemplate","anchorRef","isVisible","select","postTypeSlug","editorStore","getCurrentPostType","postType","coreStore","getPostType","viewable","settings","getEditorSettings","hasTemplates","availableTemplates","Object","keys","length","canCreateTemplates","canUser","isOpen","onToggle","onClose","PostTemplateToggle","onClick","templateTitle","templateSlug","getEditedPostAttribute","template","getEntityRecords","per_page","find","slug","title","rendered"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { PanelRow, Dropdown, Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostTemplateForm from './form';\n\nexport default function PostTemplate() {\n\tconst anchorRef = useRef();\n\n\tconst isVisible = useSelect( ( select ) => {\n\t\tconst postTypeSlug = select( editorStore ).getCurrentPostType();\n\t\tconst postType = select( coreStore ).getPostType( postTypeSlug );\n\t\tif ( ! postType?.viewable ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst settings = select( editorStore ).getEditorSettings();\n\t\tconst hasTemplates =\n\t\t\t!! settings.availableTemplates &&\n\t\t\tObject.keys( settings.availableTemplates ).length > 0;\n\t\tif ( hasTemplates ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst canCreateTemplates =\n\t\t\tselect( coreStore ).canUser( 'create', 'templates' ) ?? false;\n\t\treturn canCreateTemplates;\n\t}, [] );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelRow className=\"edit-post-post-template\" ref={ anchorRef }>\n\t\t\t<span>{ __( 'Template' ) }</span>\n\t\t\t<Dropdown\n\t\t\t\tpopoverProps={ { anchorRef } }\n\t\t\t\tposition=\"bottom left\"\n\t\t\t\tclassName=\"edit-post-post-template__dropdown\"\n\t\t\t\tcontentClassName=\"edit-post-post-template__dialog\"\n\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t<PostTemplateToggle\n\t\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t<PostTemplateForm onClose={ onClose } />\n\t\t\t\t) }\n\t\t\t/>\n\t\t</PanelRow>\n\t);\n}\n\nfunction PostTemplateToggle( { isOpen, onClick } ) {\n\tconst templateTitle = useSelect( ( select ) => {\n\t\tconst templateSlug =\n\t\t\tselect( editorStore ).getEditedPostAttribute( 'template' );\n\n\t\tconst settings = select( editorStore ).getEditorSettings();\n\t\tif ( settings.availableTemplates[ templateSlug ] ) {\n\t\t\treturn settings.availableTemplates[ templateSlug ];\n\t\t}\n\n\t\tconst template = select( coreStore )\n\t\t\t.getEntityRecords( 'postType', 'wp_template', { per_page: -1 } )\n\t\t\t?.find( ( { slug } ) => slug === templateSlug );\n\n\t\treturn template?.title.rendered;\n\t}, [] );\n\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"edit-post-post-template__toggle\"\n\t\t\tvariant=\"tertiary\"\n\t\t\taria-expanded={ isOpen }\n\t\t\taria-label={\n\t\t\t\ttemplateTitle\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the currently selected template.\n\t\t\t\t\t\t\t__( 'Select template: %s' ),\n\t\t\t\t\t\t\ttemplateTitle\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Select template' )\n\t\t\t}\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ templateTitle ?? __( '(none)' ) }\n\t\t</Button>\n\t);\n}\n"]}
|
|
@@ -41,8 +41,6 @@ var _pluginDocumentSettingPanel = _interopRequireDefault(require("../plugin-docu
|
|
|
41
41
|
|
|
42
42
|
var _pluginSidebar = _interopRequireDefault(require("../plugin-sidebar"));
|
|
43
43
|
|
|
44
|
-
var _template = _interopRequireDefault(require("../template"));
|
|
45
|
-
|
|
46
44
|
var _templateSummary = _interopRequireDefault(require("../template-summary"));
|
|
47
45
|
|
|
48
46
|
var _i18n = require("@wordpress/i18n");
|
|
@@ -106,7 +104,7 @@ const SettingsSidebar = () => {
|
|
|
106
104
|
toggleShortcut: keyboardShortcut,
|
|
107
105
|
icon: _icons.cog,
|
|
108
106
|
isActiveByDefault: SIDEBAR_ACTIVE_BY_DEFAULT
|
|
109
|
-
}, !isTemplateMode && sidebarName === 'edit-post/document' && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_postStatus.default, null), (0, _element.createElement)(
|
|
107
|
+
}, !isTemplateMode && sidebarName === 'edit-post/document' && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_postStatus.default, null), (0, _element.createElement)(_pluginDocumentSettingPanel.default.Slot, null), (0, _element.createElement)(_lastRevision.default, null), (0, _element.createElement)(_postLink.default, null), (0, _element.createElement)(_postTaxonomies.default, null), (0, _element.createElement)(_featuredImage.default, null), (0, _element.createElement)(_postExcerpt.default, null), (0, _element.createElement)(_discussionPanel.default, null), (0, _element.createElement)(_pageAttributes.default, null), (0, _element.createElement)(_metaBoxes.default, {
|
|
110
108
|
location: "side"
|
|
111
109
|
})), isTemplateMode && sidebarName === 'edit-post/document' && (0, _element.createElement)(_templateSummary.default, null), sidebarName === 'edit-post/block' && (0, _element.createElement)(_blockEditor.BlockInspector, null));
|
|
112
110
|
};
|