@wordpress/edit-post 6.17.0 → 6.18.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/build/components/block-manager/category.js +1 -1
- package/build/components/block-manager/category.js.map +1 -1
- package/build/components/block-manager/index.js +1 -1
- package/build/components/block-manager/index.js.map +1 -1
- package/build/components/header/header-toolbar/index.js +0 -6
- package/build/components/header/header-toolbar/index.js.map +1 -1
- package/build/components/header/index.js +5 -4
- package/build/components/header/index.js.map +1 -1
- package/build/components/header/more-menu/index.js +1 -3
- package/build/components/header/more-menu/index.js.map +1 -1
- package/build/components/header/writing-menu/index.js +13 -14
- package/build/components/header/writing-menu/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/shortcut.js +1 -7
- package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +3 -5
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/layout/index.js +1 -6
- package/build/components/layout/index.js.map +1 -1
- package/build/components/secondary-sidebar/list-view-outline.js +119 -0
- package/build/components/secondary-sidebar/list-view-outline.js.map +1 -0
- package/build/components/secondary-sidebar/list-view-sidebar.js +36 -11
- package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
- package/build/components/visual-editor/index.js +4 -1
- package/build/components/visual-editor/index.js.map +1 -1
- package/build/store/actions.js +23 -34
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +29 -8
- package/build/store/reducer.js.map +1 -1
- package/build-module/components/block-manager/category.js +2 -2
- package/build-module/components/block-manager/category.js.map +1 -1
- package/build-module/components/block-manager/index.js +2 -2
- package/build-module/components/block-manager/index.js.map +1 -1
- package/build-module/components/header/header-toolbar/index.js +1 -7
- package/build-module/components/header/header-toolbar/index.js.map +1 -1
- package/build-module/components/header/index.js +5 -4
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/header/more-menu/index.js +1 -3
- package/build-module/components/header/more-menu/index.js.map +1 -1
- package/build-module/components/header/writing-menu/index.js +13 -14
- package/build-module/components/header/writing-menu/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +1 -6
- package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +4 -6
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/layout/index.js +1 -6
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/secondary-sidebar/list-view-outline.js +108 -0
- package/build-module/components/secondary-sidebar/list-view-outline.js.map +1 -0
- package/build-module/components/secondary-sidebar/list-view-sidebar.js +34 -12
- package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
- package/build-module/components/visual-editor/index.js +3 -1
- package/build-module/components/visual-editor/index.js.map +1 -1
- package/build-module/store/actions.js +22 -32
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +30 -7
- package/build-module/store/reducer.js.map +1 -1
- package/build-style/style-rtl.css +60 -6
- package/build-style/style.css +60 -6
- package/package.json +27 -27
- package/src/components/block-manager/category.js +2 -2
- package/src/components/block-manager/index.js +2 -2
- package/src/components/header/fullscreen-mode-close/test/__snapshots__/index.js.snap +26 -0
- package/src/components/header/fullscreen-mode-close/test/index.js +10 -12
- package/src/components/header/header-toolbar/index.js +0 -8
- package/src/components/header/index.js +4 -1
- package/src/components/header/more-menu/index.js +1 -1
- package/src/components/header/style.scss +0 -1
- package/src/components/header/writing-menu/index.js +13 -11
- package/src/components/keyboard-shortcut-help-modal/shortcut.js +15 -18
- package/src/components/keyboard-shortcuts/index.js +6 -8
- package/src/components/layout/index.js +1 -8
- package/src/components/preferences-modal/test/__snapshots__/index.js.snap +48 -43
- package/src/components/secondary-sidebar/list-view-outline.js +98 -0
- package/src/components/secondary-sidebar/list-view-sidebar.js +47 -8
- package/src/components/secondary-sidebar/style.scss +64 -8
- package/src/components/sidebar/plugin-post-status-info/test/__snapshots__/index.js.snap +6 -4
- package/src/components/sidebar/plugin-post-status-info/test/index.js +1 -1
- package/src/components/visual-editor/index.js +9 -3
- package/src/store/actions.js +16 -21
- package/src/store/reducer.js +28 -8
- package/src/store/test/reducer.js +32 -2
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
import { createElement } from "@wordpress/element";
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* External dependencies
|
|
5
|
+
*/
|
|
6
|
+
import classnames from 'classnames';
|
|
3
7
|
/**
|
|
4
8
|
* WordPress dependencies
|
|
5
9
|
*/
|
|
10
|
+
|
|
6
11
|
import { __experimentalListView as ListView } from '@wordpress/block-editor';
|
|
7
12
|
import { Button } from '@wordpress/components';
|
|
8
|
-
import { useFocusOnMount, useFocusReturn,
|
|
13
|
+
import { useFocusOnMount, useFocusReturn, useMergeRefs } from '@wordpress/compose';
|
|
9
14
|
import { useDispatch } from '@wordpress/data';
|
|
10
15
|
import { __ } from '@wordpress/i18n';
|
|
11
16
|
import { closeSmall } from '@wordpress/icons';
|
|
12
17
|
import { ESCAPE } from '@wordpress/keycodes';
|
|
18
|
+
import { useState } from '@wordpress/element';
|
|
13
19
|
/**
|
|
14
20
|
* Internal dependencies
|
|
15
21
|
*/
|
|
16
22
|
|
|
17
23
|
import { store as editPostStore } from '../../store';
|
|
24
|
+
import ListViewOutline from './list-view-outline';
|
|
18
25
|
export default function ListViewSidebar() {
|
|
19
26
|
const {
|
|
20
27
|
setIsListViewOpened
|
|
@@ -30,26 +37,41 @@ export default function ListViewSidebar() {
|
|
|
30
37
|
}
|
|
31
38
|
}
|
|
32
39
|
|
|
33
|
-
const
|
|
34
|
-
const labelId = `edit-post-editor__list-view-panel-label-${instanceId}`;
|
|
40
|
+
const [tab, setTab] = useState('list-view');
|
|
35
41
|
return (// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
36
42
|
createElement("div", {
|
|
37
|
-
"aria-
|
|
43
|
+
"aria-label": __('List View'),
|
|
38
44
|
className: "edit-post-editor__list-view-panel",
|
|
39
45
|
onKeyDown: closeOnEscape
|
|
40
46
|
}, createElement("div", {
|
|
41
|
-
className: "edit-post-editor__list-view-panel-header",
|
|
47
|
+
className: "edit-post-editor__list-view-panel-header components-panel__header edit-post-sidebar__panel-tabs",
|
|
42
48
|
ref: headerFocusReturnRef
|
|
43
|
-
}, createElement(
|
|
44
|
-
id: labelId
|
|
45
|
-
}, __('List View')), createElement(Button, {
|
|
49
|
+
}, createElement(Button, {
|
|
46
50
|
icon: closeSmall,
|
|
47
51
|
label: __('Close List View Sidebar'),
|
|
48
52
|
onClick: () => setIsListViewOpened(false)
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
}), createElement("ul", null, createElement("li", null, createElement(Button, {
|
|
54
|
+
onClick: () => {
|
|
55
|
+
setTab('list-view');
|
|
56
|
+
},
|
|
57
|
+
className: classnames('edit-post-sidebar__panel-tab', {
|
|
58
|
+
'is-active': tab === 'list-view'
|
|
59
|
+
}),
|
|
60
|
+
"aria-current": tab === 'list-view'
|
|
61
|
+
}, __('List View'))), createElement("li", null, createElement(Button, {
|
|
62
|
+
onClick: () => {
|
|
63
|
+
setTab('outline');
|
|
64
|
+
},
|
|
65
|
+
className: classnames('edit-post-sidebar__panel-tab', {
|
|
66
|
+
'is-active': tab === 'outline'
|
|
67
|
+
}),
|
|
68
|
+
"aria-current": tab === 'outline'
|
|
69
|
+
}, __('Outline'))))), createElement("div", {
|
|
70
|
+
ref: useMergeRefs([contentFocusReturnRef, focusOnMountRef]),
|
|
71
|
+
className: "edit-post-editor__list-view-container"
|
|
72
|
+
}, tab === 'list-view' && createElement("div", {
|
|
73
|
+
className: "edit-post-editor__list-view-panel-content"
|
|
74
|
+
}, createElement(ListView, null)), tab === 'outline' && createElement(ListViewOutline, null)))
|
|
53
75
|
);
|
|
54
76
|
}
|
|
55
77
|
//# sourceMappingURL=list-view-sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-post/src/components/secondary-sidebar/list-view-sidebar.js"],"names":["__experimentalListView","ListView","Button","useFocusOnMount","useFocusReturn","
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-post/src/components/secondary-sidebar/list-view-sidebar.js"],"names":["classnames","__experimentalListView","ListView","Button","useFocusOnMount","useFocusReturn","useMergeRefs","useDispatch","__","closeSmall","ESCAPE","useState","store","editPostStore","ListViewOutline","ListViewSidebar","setIsListViewOpened","focusOnMountRef","headerFocusReturnRef","contentFocusReturnRef","closeOnEscape","event","keyCode","defaultPrevented","preventDefault","tab","setTab"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,sBAAsB,IAAIC,QAAnC,QAAmD,yBAAnD;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SACCC,eADD,EAECC,cAFD,EAGCC,YAHD,QAIO,oBAJP;AAKA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,UAAT,QAA2B,kBAA3B;AACA,SAASC,MAAT,QAAuB,qBAAvB;AACA,SAASC,QAAT,QAAyB,oBAAzB;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,aAAlB,QAAuC,aAAvC;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AAEA,eAAe,SAASC,eAAT,GAA2B;AACzC,QAAM;AAAEC,IAAAA;AAAF,MAA0BT,WAAW,CAAEM,aAAF,CAA3C;AAEA,QAAMI,eAAe,GAAGb,eAAe,CAAE,cAAF,CAAvC;AACA,QAAMc,oBAAoB,GAAGb,cAAc,EAA3C;AACA,QAAMc,qBAAqB,GAAGd,cAAc,EAA5C;;AACA,WAASe,aAAT,CAAwBC,KAAxB,EAAgC;AAC/B,QAAKA,KAAK,CAACC,OAAN,KAAkBZ,MAAlB,IAA4B,CAAEW,KAAK,CAACE,gBAAzC,EAA4D;AAC3DF,MAAAA,KAAK,CAACG,cAAN;AACAR,MAAAA,mBAAmB,CAAE,KAAF,CAAnB;AACA;AACD;;AAED,QAAM,CAAES,GAAF,EAAOC,MAAP,IAAkBf,QAAQ,CAAE,WAAF,CAAhC;AAEA,SACC;AACA;AACC,oBAAaH,EAAE,CAAE,WAAF,CADhB;AAEC,MAAA,SAAS,EAAC,mCAFX;AAGC,MAAA,SAAS,EAAGY;AAHb,OAKC;AACC,MAAA,SAAS,EAAC,iGADX;AAEC,MAAA,GAAG,EAAGF;AAFP,OAIC,cAAC,MAAD;AACC,MAAA,IAAI,EAAGT,UADR;AAEC,MAAA,KAAK,EAAGD,EAAE,CAAE,yBAAF,CAFX;AAGC,MAAA,OAAO,EAAG,MAAMQ,mBAAmB,CAAE,KAAF;AAHpC,MAJD,EASC,0BACC,0BACC,cAAC,MAAD;AACC,MAAA,OAAO,EAAG,MAAM;AACfU,QAAAA,MAAM,CAAE,WAAF,CAAN;AACA,OAHF;AAIC,MAAA,SAAS,EAAG1B,UAAU,CACrB,8BADqB,EAErB;AAAE,qBAAayB,GAAG,KAAK;AAAvB,OAFqB,CAJvB;AAQC,sBAAeA,GAAG,KAAK;AARxB,OAUGjB,EAAE,CAAE,WAAF,CAVL,CADD,CADD,EAeC,0BACC,cAAC,MAAD;AACC,MAAA,OAAO,EAAG,MAAM;AACfkB,QAAAA,MAAM,CAAE,SAAF,CAAN;AACA,OAHF;AAIC,MAAA,SAAS,EAAG1B,UAAU,CACrB,8BADqB,EAErB;AAAE,qBAAayB,GAAG,KAAK;AAAvB,OAFqB,CAJvB;AAQC,sBAAeA,GAAG,KAAK;AARxB,OAUGjB,EAAE,CAAE,SAAF,CAVL,CADD,CAfD,CATD,CALD,EA6CC;AACC,MAAA,GAAG,EAAGF,YAAY,CAAE,CACnBa,qBADmB,EAEnBF,eAFmB,CAAF,CADnB;AAKC,MAAA,SAAS,EAAC;AALX,OAOGQ,GAAG,KAAK,WAAR,IACD;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,cAAC,QAAD,OADD,CARF,EAYGA,GAAG,KAAK,SAAR,IAAqB,cAAC,eAAD,OAZxB,CA7CD;AAFD;AA+DA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalListView as ListView } from '@wordpress/block-editor';\nimport { Button } from '@wordpress/components';\nimport {\n\tuseFocusOnMount,\n\tuseFocusReturn,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../store';\nimport ListViewOutline from './list-view-outline';\n\nexport default function ListViewSidebar() {\n\tconst { setIsListViewOpened } = useDispatch( editPostStore );\n\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\tconst headerFocusReturnRef = useFocusReturn();\n\tconst contentFocusReturnRef = useFocusReturn();\n\tfunction closeOnEscape( event ) {\n\t\tif ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {\n\t\t\tevent.preventDefault();\n\t\t\tsetIsListViewOpened( false );\n\t\t}\n\t}\n\n\tconst [ tab, setTab ] = useState( 'list-view' );\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\taria-label={ __( 'List View' ) }\n\t\t\tclassName=\"edit-post-editor__list-view-panel\"\n\t\t\tonKeyDown={ closeOnEscape }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"edit-post-editor__list-view-panel-header components-panel__header edit-post-sidebar__panel-tabs\"\n\t\t\t\tref={ headerFocusReturnRef }\n\t\t\t>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tlabel={ __( 'Close List View Sidebar' ) }\n\t\t\t\t\tonClick={ () => setIsListViewOpened( false ) }\n\t\t\t\t/>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetTab( 'list-view' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'edit-post-sidebar__panel-tab',\n\t\t\t\t\t\t\t\t{ 'is-active': tab === 'list-view' }\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\taria-current={ tab === 'list-view' }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'List View' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetTab( 'outline' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'edit-post-sidebar__panel-tab',\n\t\t\t\t\t\t\t\t{ 'is-active': tab === 'outline' }\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\taria-current={ tab === 'outline' }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Outline' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\tcontentFocusReturnRef,\n\t\t\t\t\tfocusOnMountRef,\n\t\t\t\t] ) }\n\t\t\t\tclassName=\"edit-post-editor__list-view-container\"\n\t\t\t>\n\t\t\t\t{ tab === 'list-view' && (\n\t\t\t\t\t<div className=\"edit-post-editor__list-view-panel-content\">\n\t\t\t\t\t\t<ListView />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ tab === 'outline' && <ListViewOutline /> }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -17,6 +17,7 @@ import { useMergeRefs } from '@wordpress/compose';
|
|
|
17
17
|
import { arrowLeft } from '@wordpress/icons';
|
|
18
18
|
import { __ } from '@wordpress/i18n';
|
|
19
19
|
import { parse } from '@wordpress/blocks';
|
|
20
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
20
21
|
/**
|
|
21
22
|
* Internal dependencies
|
|
22
23
|
*/
|
|
@@ -127,13 +128,14 @@ export default function VisualEditor(_ref2) {
|
|
|
127
128
|
}
|
|
128
129
|
|
|
129
130
|
const supportsTemplateMode = getEditorSettings().supportsTemplateMode;
|
|
131
|
+
const canEditTemplate = select(coreStore).canUser('create', 'templates');
|
|
130
132
|
return {
|
|
131
133
|
deviceType: __experimentalGetPreviewDeviceType(),
|
|
132
134
|
isWelcomeGuideVisible: isFeatureActive('welcomeGuide'),
|
|
133
135
|
isTemplateMode: _isTemplateMode,
|
|
134
136
|
// Post template fetch returns a 404 on classic themes, which
|
|
135
137
|
// messes with e2e tests, so we check it's a block theme first.
|
|
136
|
-
editedPostTemplate: supportsTemplateMode ? getEditedPostTemplate() :
|
|
138
|
+
editedPostTemplate: supportsTemplateMode && canEditTemplate ? getEditedPostTemplate() : undefined,
|
|
137
139
|
wrapperBlockName: _wrapperBlockName,
|
|
138
140
|
wrapperUniqueId: getCurrentPostId()
|
|
139
141
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-post/src/components/visual-editor/index.js"],"names":["classnames","VisualEditorGlobalKeyboardShortcuts","PostTitle","store","editorStore","WritingFlow","BlockList","BlockTools","blockEditorStore","__unstableUseBlockSelectionClearer","useBlockSelectionClearer","__unstableUseTypewriter","useTypewriter","__unstableUseClipboardHandler","useClipboardHandler","__unstableUseTypingObserver","useTypingObserver","__unstableBlockSettingsMenuFirstItem","__experimentalUseResizeCanvas","useResizeCanvas","__unstableEditorStyles","EditorStyles","useSetting","__experimentalLayoutStyle","LayoutStyle","__unstableUseMouseMoveTypingReset","useMouseMoveTypingReset","__unstableIframe","Iframe","__experimentalRecursionProvider","RecursionProvider","__experimentaluseLayoutClasses","useLayoutClasses","__experimentaluseLayoutStyles","useLayoutStyles","useEffect","useRef","useMemo","Button","__unstableMotion","motion","useSelect","useDispatch","useMergeRefs","arrowLeft","__","parse","BlockInspectorButton","editPostStore","MaybeIframe","children","contentRef","shouldIframe","styles","assets","style","ref","flex","width","height","display","findPostContent","blocks","i","length","name","innerBlocks","nestedPostContent","VisualEditor","deviceType","isWelcomeGuideVisible","isTemplateMode","editedPostTemplate","wrapperBlockName","wrapperUniqueId","select","isFeatureActive","isEditingTemplate","__experimentalGetPreviewDeviceType","getEditedPostTemplate","getCurrentPostId","getCurrentPostType","getEditorSettings","_isTemplateMode","_wrapperBlockName","supportsTemplateMode","isCleanNewPost","hasMetaBoxes","themeHasDisabledLayoutStyles","themeSupportsLayout","isFocusMode","_settings","getSettings","disableLayoutStyles","supportsLayout","__unstableResolvedAssets","focusMode","clearSelectedBlock","setIsEditingTemplate","desktopCanvasStyles","margin","flexFlow","background","templateModeStyles","borderRadius","border","borderBottom","resizedCanvasStyles","globalLayoutSettings","previewMode","toLowerCase","animatedStyles","paddingBottom","blockSelectionClearerRef","fallbackLayout","type","postContentBlock","parseableContent","content","postContentLayoutClasses","blockListLayoutClass","postContentLayoutStyles","layout","attributes","postContentLayout","inherit","contentSize","wideSize","blockListLayout","titleRef","current","focus","padding","definitions","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tVisualEditorGlobalKeyboardShortcuts,\n\tPostTitle,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport {\n\tWritingFlow,\n\tBlockList,\n\tBlockTools,\n\tstore as blockEditorStore,\n\t__unstableUseBlockSelectionClearer as useBlockSelectionClearer,\n\t__unstableUseTypewriter as useTypewriter,\n\t__unstableUseClipboardHandler as useClipboardHandler,\n\t__unstableUseTypingObserver as useTypingObserver,\n\t__unstableBlockSettingsMenuFirstItem,\n\t__experimentalUseResizeCanvas as useResizeCanvas,\n\t__unstableEditorStyles as EditorStyles,\n\tuseSetting,\n\t__experimentalLayoutStyle as LayoutStyle,\n\t__unstableUseMouseMoveTypingReset as useMouseMoveTypingReset,\n\t__unstableIframe as Iframe,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentaluseLayoutClasses as useLayoutClasses,\n\t__experimentaluseLayoutStyles as useLayoutStyles,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useMemo } from '@wordpress/element';\nimport { Button, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { arrowLeft } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport BlockInspectorButton from './block-inspector-button';\nimport { store as editPostStore } from '../../store';\n\nfunction MaybeIframe( {\n\tchildren,\n\tcontentRef,\n\tshouldIframe,\n\tstyles,\n\tassets,\n\tstyle,\n} ) {\n\tconst ref = useMouseMoveTypingReset();\n\n\tif ( ! shouldIframe ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<EditorStyles styles={ styles } />\n\t\t\t\t<WritingFlow\n\t\t\t\t\tref={ contentRef }\n\t\t\t\t\tclassName=\"editor-styles-wrapper\"\n\t\t\t\t\tstyle={ { flex: '1', ...style } }\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</WritingFlow>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Iframe\n\t\t\thead={ <EditorStyles styles={ styles } /> }\n\t\t\tassets={ assets }\n\t\t\tref={ ref }\n\t\t\tcontentRef={ contentRef }\n\t\t\tstyle={ { width: '100%', height: '100%', display: 'block' } }\n\t\t\tname=\"editor-canvas\"\n\t\t>\n\t\t\t{ children }\n\t\t</Iframe>\n\t);\n}\n\n/**\n * Given an array of nested blocks, find the first Post Content\n * block inside it, recursing through any nesting levels.\n *\n * @param {Array} blocks A list of blocks.\n *\n * @return {Object} The Post Content block.\n */\nfunction findPostContent( blocks ) {\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\tif ( blocks[ i ].name === 'core/post-content' ) {\n\t\t\treturn blocks[ i ];\n\t\t}\n\t\tif ( blocks[ i ].innerBlocks.length ) {\n\t\t\tconst nestedPostContent = findPostContent(\n\t\t\t\tblocks[ i ].innerBlocks\n\t\t\t);\n\n\t\t\tif ( nestedPostContent ) {\n\t\t\t\treturn nestedPostContent;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default function VisualEditor( { styles } ) {\n\tconst {\n\t\tdeviceType,\n\t\tisWelcomeGuideVisible,\n\t\tisTemplateMode,\n\t\teditedPostTemplate = {},\n\t\twrapperBlockName,\n\t\twrapperUniqueId,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisFeatureActive,\n\t\t\tisEditingTemplate,\n\t\t\t__experimentalGetPreviewDeviceType,\n\t\t\tgetEditedPostTemplate,\n\t\t} = select( editPostStore );\n\t\tconst { getCurrentPostId, getCurrentPostType, getEditorSettings } =\n\t\t\tselect( editorStore );\n\t\tconst _isTemplateMode = isEditingTemplate();\n\t\tlet _wrapperBlockName;\n\n\t\tif ( getCurrentPostType() === 'wp_block' ) {\n\t\t\t_wrapperBlockName = 'core/block';\n\t\t} else if ( ! _isTemplateMode ) {\n\t\t\t_wrapperBlockName = 'core/post-content';\n\t\t}\n\n\t\tconst supportsTemplateMode = getEditorSettings().supportsTemplateMode;\n\n\t\treturn {\n\t\t\tdeviceType: __experimentalGetPreviewDeviceType(),\n\t\t\tisWelcomeGuideVisible: isFeatureActive( 'welcomeGuide' ),\n\t\t\tisTemplateMode: _isTemplateMode,\n\t\t\t// Post template fetch returns a 404 on classic themes, which\n\t\t\t// messes with e2e tests, so we check it's a block theme first.\n\t\t\teditedPostTemplate: supportsTemplateMode\n\t\t\t\t? getEditedPostTemplate()\n\t\t\t\t: {},\n\t\t\twrapperBlockName: _wrapperBlockName,\n\t\t\twrapperUniqueId: getCurrentPostId(),\n\t\t};\n\t}, [] );\n\tconst { isCleanNewPost } = useSelect( editorStore );\n\tconst hasMetaBoxes = useSelect(\n\t\t( select ) => select( editPostStore ).hasMetaBoxes(),\n\t\t[]\n\t);\n\tconst {\n\t\tthemeHasDisabledLayoutStyles,\n\t\tthemeSupportsLayout,\n\t\tassets,\n\t\tisFocusMode,\n\t} = useSelect( ( select ) => {\n\t\tconst _settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tthemeHasDisabledLayoutStyles: _settings.disableLayoutStyles,\n\t\t\tthemeSupportsLayout: _settings.supportsLayout,\n\t\t\tassets: _settings.__unstableResolvedAssets,\n\t\t\tisFocusMode: _settings.focusMode,\n\t\t};\n\t}, [] );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\tconst { setIsEditingTemplate } = useDispatch( editPostStore );\n\tconst desktopCanvasStyles = {\n\t\theight: '100%',\n\t\twidth: '100%',\n\t\tmargin: 0,\n\t\tdisplay: 'flex',\n\t\tflexFlow: 'column',\n\t\t// Default background color so that grey\n\t\t// .edit-post-editor-regions__content color doesn't show through.\n\t\tbackground: 'white',\n\t};\n\tconst templateModeStyles = {\n\t\t...desktopCanvasStyles,\n\t\tborderRadius: '2px 2px 0 0',\n\t\tborder: '1px solid #ddd',\n\t\tborderBottom: 0,\n\t};\n\tconst resizedCanvasStyles = useResizeCanvas( deviceType, isTemplateMode );\n\tconst globalLayoutSettings = useSetting( 'layout' );\n\tconst previewMode = 'is-' + deviceType.toLowerCase() + '-preview';\n\n\tlet animatedStyles = isTemplateMode\n\t\t? templateModeStyles\n\t\t: desktopCanvasStyles;\n\tif ( resizedCanvasStyles ) {\n\t\tanimatedStyles = resizedCanvasStyles;\n\t}\n\n\tlet paddingBottom;\n\n\t// Add a constant padding for the typewritter effect. When typing at the\n\t// bottom, there needs to be room to scroll up.\n\tif ( ! hasMetaBoxes && ! resizedCanvasStyles && ! isTemplateMode ) {\n\t\tpaddingBottom = '40vh';\n\t}\n\n\tconst ref = useRef();\n\tconst contentRef = useMergeRefs( [\n\t\tref,\n\t\tuseClipboardHandler(),\n\t\tuseTypewriter(),\n\t\tuseTypingObserver(),\n\t\tuseBlockSelectionClearer(),\n\t] );\n\n\tconst blockSelectionClearerRef = useBlockSelectionClearer();\n\n\t// fallbackLayout is used if there is no Post Content,\n\t// and for Post Title.\n\tconst fallbackLayout = useMemo( () => {\n\t\tif ( isTemplateMode ) {\n\t\t\treturn { type: 'default' };\n\t\t}\n\n\t\tif ( themeSupportsLayout ) {\n\t\t\t// We need to ensure support for wide and full alignments,\n\t\t\t// so we add the constrained type.\n\t\t\treturn { ...globalLayoutSettings, type: 'constrained' };\n\t\t}\n\t\t// Set default layout for classic themes so all alignments are supported.\n\t\treturn { type: 'default' };\n\t}, [ isTemplateMode, themeSupportsLayout, globalLayoutSettings ] );\n\n\tconst postContentBlock = useMemo( () => {\n\t\t// When in template editing mode, we can access the blocks directly.\n\t\tif ( editedPostTemplate?.blocks ) {\n\t\t\treturn findPostContent( editedPostTemplate?.blocks );\n\t\t}\n\t\t// If there are no blocks, we have to parse the content string.\n\t\t// Best double-check it's a string otherwise the parse function gets unhappy.\n\t\tconst parseableContent =\n\t\t\ttypeof editedPostTemplate?.content === 'string'\n\t\t\t\t? editedPostTemplate?.content\n\t\t\t\t: '';\n\n\t\treturn findPostContent( parse( parseableContent ) ) || {};\n\t}, [ editedPostTemplate?.content, editedPostTemplate?.blocks ] );\n\n\tconst postContentLayoutClasses = useLayoutClasses( postContentBlock );\n\n\tconst blockListLayoutClass = classnames(\n\t\t{\n\t\t\t'is-layout-flow': ! themeSupportsLayout,\n\t\t},\n\t\tthemeSupportsLayout && postContentLayoutClasses\n\t);\n\n\tconst postContentLayoutStyles = useLayoutStyles(\n\t\tpostContentBlock,\n\t\t'.block-editor-block-list__layout.is-root-container'\n\t);\n\n\tconst layout = postContentBlock?.attributes?.layout || {};\n\n\t// Update type for blocks using legacy layouts.\n\tconst postContentLayout = useMemo( () => {\n\t\treturn layout &&\n\t\t\t( layout?.type === 'constrained' ||\n\t\t\t\tlayout?.inherit ||\n\t\t\t\tlayout?.contentSize ||\n\t\t\t\tlayout?.wideSize )\n\t\t\t? { ...globalLayoutSettings, ...layout, type: 'constrained' }\n\t\t\t: { ...globalLayoutSettings, ...layout, type: 'default' };\n\t}, [\n\t\tlayout?.type,\n\t\tlayout?.inherit,\n\t\tlayout?.contentSize,\n\t\tlayout?.wideSize,\n\t\tglobalLayoutSettings,\n\t] );\n\n\t// If there is a Post Content block we use its layout for the block list;\n\t// if not, this must be a classic theme, in which case we use the fallback layout.\n\tconst blockListLayout = postContentBlock\n\t\t? postContentLayout\n\t\t: fallbackLayout;\n\n\tconst titleRef = useRef();\n\tuseEffect( () => {\n\t\tif ( isWelcomeGuideVisible || ! isCleanNewPost() ) {\n\t\t\treturn;\n\t\t}\n\t\ttitleRef?.current?.focus();\n\t}, [ isWelcomeGuideVisible, isCleanNewPost ] );\n\n\treturn (\n\t\t<BlockTools\n\t\t\t__unstableContentRef={ ref }\n\t\t\tclassName={ classnames( 'edit-post-visual-editor', {\n\t\t\t\t'is-template-mode': isTemplateMode,\n\t\t\t} ) }\n\t\t>\n\t\t\t<VisualEditorGlobalKeyboardShortcuts />\n\t\t\t<motion.div\n\t\t\t\tclassName=\"edit-post-visual-editor__content-area\"\n\t\t\t\tanimate={ {\n\t\t\t\t\tpadding: isTemplateMode ? '48px 48px 0' : '0',\n\t\t\t\t} }\n\t\t\t\tref={ blockSelectionClearerRef }\n\t\t\t>\n\t\t\t\t{ isTemplateMode && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"edit-post-visual-editor__exit-template-mode\"\n\t\t\t\t\t\ticon={ arrowLeft }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t\t\tsetIsEditingTemplate( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t<motion.div\n\t\t\t\t\tanimate={ animatedStyles }\n\t\t\t\t\tinitial={ desktopCanvasStyles }\n\t\t\t\t\tclassName={ previewMode }\n\t\t\t\t>\n\t\t\t\t\t<MaybeIframe\n\t\t\t\t\t\tshouldIframe={\n\t\t\t\t\t\t\tisTemplateMode ||\n\t\t\t\t\t\t\tdeviceType === 'Tablet' ||\n\t\t\t\t\t\t\tdeviceType === 'Mobile'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\t\tstyles={ styles }\n\t\t\t\t\t\tassets={ assets }\n\t\t\t\t\t\tstyle={ { paddingBottom } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ themeSupportsLayout &&\n\t\t\t\t\t\t\t! themeHasDisabledLayoutStyles &&\n\t\t\t\t\t\t\t! isTemplateMode && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\t\t\t\tselector=\".edit-post-visual-editor__post-title-wrapper, .block-editor-block-list__layout.is-root-container\"\n\t\t\t\t\t\t\t\t\t\tlayout={ fallbackLayout }\n\t\t\t\t\t\t\t\t\t\tlayoutDefinitions={\n\t\t\t\t\t\t\t\t\t\t\tglobalLayoutSettings?.definitions\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ postContentLayoutStyles && (\n\t\t\t\t\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\t\t\t\t\tlayout={ postContentLayout }\n\t\t\t\t\t\t\t\t\t\t\tcss={ postContentLayoutStyles }\n\t\t\t\t\t\t\t\t\t\t\tlayoutDefinitions={\n\t\t\t\t\t\t\t\t\t\t\t\tglobalLayoutSettings?.definitions\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! isTemplateMode && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t'edit-post-visual-editor__post-title-wrapper',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'is-focus-mode': isFocusMode,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tcontentEditable={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PostTitle ref={ titleRef } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<RecursionProvider\n\t\t\t\t\t\t\tblockName={ wrapperBlockName }\n\t\t\t\t\t\t\tuniqueId={ wrapperUniqueId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockList\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tisTemplateMode\n\t\t\t\t\t\t\t\t\t\t? 'wp-site-blocks'\n\t\t\t\t\t\t\t\t\t\t: `${ blockListLayoutClass } wp-block-post-content` // Ensure root level blocks receive default/flow blockGap styling rules.\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__experimentalLayout={ blockListLayout }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</RecursionProvider>\n\t\t\t\t\t</MaybeIframe>\n\t\t\t\t</motion.div>\n\t\t\t</motion.div>\n\t\t\t<__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<BlockInspectorButton onClick={ onClose } />\n\t\t\t\t) }\n\t\t\t</__unstableBlockSettingsMenuFirstItem>\n\t\t</BlockTools>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-post/src/components/visual-editor/index.js"],"names":["classnames","VisualEditorGlobalKeyboardShortcuts","PostTitle","store","editorStore","WritingFlow","BlockList","BlockTools","blockEditorStore","__unstableUseBlockSelectionClearer","useBlockSelectionClearer","__unstableUseTypewriter","useTypewriter","__unstableUseClipboardHandler","useClipboardHandler","__unstableUseTypingObserver","useTypingObserver","__unstableBlockSettingsMenuFirstItem","__experimentalUseResizeCanvas","useResizeCanvas","__unstableEditorStyles","EditorStyles","useSetting","__experimentalLayoutStyle","LayoutStyle","__unstableUseMouseMoveTypingReset","useMouseMoveTypingReset","__unstableIframe","Iframe","__experimentalRecursionProvider","RecursionProvider","__experimentaluseLayoutClasses","useLayoutClasses","__experimentaluseLayoutStyles","useLayoutStyles","useEffect","useRef","useMemo","Button","__unstableMotion","motion","useSelect","useDispatch","useMergeRefs","arrowLeft","__","parse","coreStore","BlockInspectorButton","editPostStore","MaybeIframe","children","contentRef","shouldIframe","styles","assets","style","ref","flex","width","height","display","findPostContent","blocks","i","length","name","innerBlocks","nestedPostContent","VisualEditor","deviceType","isWelcomeGuideVisible","isTemplateMode","editedPostTemplate","wrapperBlockName","wrapperUniqueId","select","isFeatureActive","isEditingTemplate","__experimentalGetPreviewDeviceType","getEditedPostTemplate","getCurrentPostId","getCurrentPostType","getEditorSettings","_isTemplateMode","_wrapperBlockName","supportsTemplateMode","canEditTemplate","canUser","undefined","isCleanNewPost","hasMetaBoxes","themeHasDisabledLayoutStyles","themeSupportsLayout","isFocusMode","_settings","getSettings","disableLayoutStyles","supportsLayout","__unstableResolvedAssets","focusMode","clearSelectedBlock","setIsEditingTemplate","desktopCanvasStyles","margin","flexFlow","background","templateModeStyles","borderRadius","border","borderBottom","resizedCanvasStyles","globalLayoutSettings","previewMode","toLowerCase","animatedStyles","paddingBottom","blockSelectionClearerRef","fallbackLayout","type","postContentBlock","parseableContent","content","postContentLayoutClasses","blockListLayoutClass","postContentLayoutStyles","layout","attributes","postContentLayout","inherit","contentSize","wideSize","blockListLayout","titleRef","current","focus","padding","definitions","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tVisualEditorGlobalKeyboardShortcuts,\n\tPostTitle,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport {\n\tWritingFlow,\n\tBlockList,\n\tBlockTools,\n\tstore as blockEditorStore,\n\t__unstableUseBlockSelectionClearer as useBlockSelectionClearer,\n\t__unstableUseTypewriter as useTypewriter,\n\t__unstableUseClipboardHandler as useClipboardHandler,\n\t__unstableUseTypingObserver as useTypingObserver,\n\t__unstableBlockSettingsMenuFirstItem,\n\t__experimentalUseResizeCanvas as useResizeCanvas,\n\t__unstableEditorStyles as EditorStyles,\n\tuseSetting,\n\t__experimentalLayoutStyle as LayoutStyle,\n\t__unstableUseMouseMoveTypingReset as useMouseMoveTypingReset,\n\t__unstableIframe as Iframe,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentaluseLayoutClasses as useLayoutClasses,\n\t__experimentaluseLayoutStyles as useLayoutStyles,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useMemo } from '@wordpress/element';\nimport { Button, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { arrowLeft } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { parse } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport BlockInspectorButton from './block-inspector-button';\nimport { store as editPostStore } from '../../store';\n\nfunction MaybeIframe( {\n\tchildren,\n\tcontentRef,\n\tshouldIframe,\n\tstyles,\n\tassets,\n\tstyle,\n} ) {\n\tconst ref = useMouseMoveTypingReset();\n\n\tif ( ! shouldIframe ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<EditorStyles styles={ styles } />\n\t\t\t\t<WritingFlow\n\t\t\t\t\tref={ contentRef }\n\t\t\t\t\tclassName=\"editor-styles-wrapper\"\n\t\t\t\t\tstyle={ { flex: '1', ...style } }\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</WritingFlow>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Iframe\n\t\t\thead={ <EditorStyles styles={ styles } /> }\n\t\t\tassets={ assets }\n\t\t\tref={ ref }\n\t\t\tcontentRef={ contentRef }\n\t\t\tstyle={ { width: '100%', height: '100%', display: 'block' } }\n\t\t\tname=\"editor-canvas\"\n\t\t>\n\t\t\t{ children }\n\t\t</Iframe>\n\t);\n}\n\n/**\n * Given an array of nested blocks, find the first Post Content\n * block inside it, recursing through any nesting levels.\n *\n * @param {Array} blocks A list of blocks.\n *\n * @return {Object} The Post Content block.\n */\nfunction findPostContent( blocks ) {\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\tif ( blocks[ i ].name === 'core/post-content' ) {\n\t\t\treturn blocks[ i ];\n\t\t}\n\t\tif ( blocks[ i ].innerBlocks.length ) {\n\t\t\tconst nestedPostContent = findPostContent(\n\t\t\t\tblocks[ i ].innerBlocks\n\t\t\t);\n\n\t\t\tif ( nestedPostContent ) {\n\t\t\t\treturn nestedPostContent;\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default function VisualEditor( { styles } ) {\n\tconst {\n\t\tdeviceType,\n\t\tisWelcomeGuideVisible,\n\t\tisTemplateMode,\n\t\teditedPostTemplate = {},\n\t\twrapperBlockName,\n\t\twrapperUniqueId,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisFeatureActive,\n\t\t\tisEditingTemplate,\n\t\t\t__experimentalGetPreviewDeviceType,\n\t\t\tgetEditedPostTemplate,\n\t\t} = select( editPostStore );\n\t\tconst { getCurrentPostId, getCurrentPostType, getEditorSettings } =\n\t\t\tselect( editorStore );\n\t\tconst _isTemplateMode = isEditingTemplate();\n\t\tlet _wrapperBlockName;\n\n\t\tif ( getCurrentPostType() === 'wp_block' ) {\n\t\t\t_wrapperBlockName = 'core/block';\n\t\t} else if ( ! _isTemplateMode ) {\n\t\t\t_wrapperBlockName = 'core/post-content';\n\t\t}\n\n\t\tconst supportsTemplateMode = getEditorSettings().supportsTemplateMode;\n\t\tconst canEditTemplate = select( coreStore ).canUser(\n\t\t\t'create',\n\t\t\t'templates'\n\t\t);\n\n\t\treturn {\n\t\t\tdeviceType: __experimentalGetPreviewDeviceType(),\n\t\t\tisWelcomeGuideVisible: isFeatureActive( 'welcomeGuide' ),\n\t\t\tisTemplateMode: _isTemplateMode,\n\t\t\t// Post template fetch returns a 404 on classic themes, which\n\t\t\t// messes with e2e tests, so we check it's a block theme first.\n\t\t\teditedPostTemplate:\n\t\t\t\tsupportsTemplateMode && canEditTemplate\n\t\t\t\t\t? getEditedPostTemplate()\n\t\t\t\t\t: undefined,\n\t\t\twrapperBlockName: _wrapperBlockName,\n\t\t\twrapperUniqueId: getCurrentPostId(),\n\t\t};\n\t}, [] );\n\tconst { isCleanNewPost } = useSelect( editorStore );\n\tconst hasMetaBoxes = useSelect(\n\t\t( select ) => select( editPostStore ).hasMetaBoxes(),\n\t\t[]\n\t);\n\tconst {\n\t\tthemeHasDisabledLayoutStyles,\n\t\tthemeSupportsLayout,\n\t\tassets,\n\t\tisFocusMode,\n\t} = useSelect( ( select ) => {\n\t\tconst _settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tthemeHasDisabledLayoutStyles: _settings.disableLayoutStyles,\n\t\t\tthemeSupportsLayout: _settings.supportsLayout,\n\t\t\tassets: _settings.__unstableResolvedAssets,\n\t\t\tisFocusMode: _settings.focusMode,\n\t\t};\n\t}, [] );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\tconst { setIsEditingTemplate } = useDispatch( editPostStore );\n\tconst desktopCanvasStyles = {\n\t\theight: '100%',\n\t\twidth: '100%',\n\t\tmargin: 0,\n\t\tdisplay: 'flex',\n\t\tflexFlow: 'column',\n\t\t// Default background color so that grey\n\t\t// .edit-post-editor-regions__content color doesn't show through.\n\t\tbackground: 'white',\n\t};\n\tconst templateModeStyles = {\n\t\t...desktopCanvasStyles,\n\t\tborderRadius: '2px 2px 0 0',\n\t\tborder: '1px solid #ddd',\n\t\tborderBottom: 0,\n\t};\n\tconst resizedCanvasStyles = useResizeCanvas( deviceType, isTemplateMode );\n\tconst globalLayoutSettings = useSetting( 'layout' );\n\tconst previewMode = 'is-' + deviceType.toLowerCase() + '-preview';\n\n\tlet animatedStyles = isTemplateMode\n\t\t? templateModeStyles\n\t\t: desktopCanvasStyles;\n\tif ( resizedCanvasStyles ) {\n\t\tanimatedStyles = resizedCanvasStyles;\n\t}\n\n\tlet paddingBottom;\n\n\t// Add a constant padding for the typewritter effect. When typing at the\n\t// bottom, there needs to be room to scroll up.\n\tif ( ! hasMetaBoxes && ! resizedCanvasStyles && ! isTemplateMode ) {\n\t\tpaddingBottom = '40vh';\n\t}\n\n\tconst ref = useRef();\n\tconst contentRef = useMergeRefs( [\n\t\tref,\n\t\tuseClipboardHandler(),\n\t\tuseTypewriter(),\n\t\tuseTypingObserver(),\n\t\tuseBlockSelectionClearer(),\n\t] );\n\n\tconst blockSelectionClearerRef = useBlockSelectionClearer();\n\n\t// fallbackLayout is used if there is no Post Content,\n\t// and for Post Title.\n\tconst fallbackLayout = useMemo( () => {\n\t\tif ( isTemplateMode ) {\n\t\t\treturn { type: 'default' };\n\t\t}\n\n\t\tif ( themeSupportsLayout ) {\n\t\t\t// We need to ensure support for wide and full alignments,\n\t\t\t// so we add the constrained type.\n\t\t\treturn { ...globalLayoutSettings, type: 'constrained' };\n\t\t}\n\t\t// Set default layout for classic themes so all alignments are supported.\n\t\treturn { type: 'default' };\n\t}, [ isTemplateMode, themeSupportsLayout, globalLayoutSettings ] );\n\n\tconst postContentBlock = useMemo( () => {\n\t\t// When in template editing mode, we can access the blocks directly.\n\t\tif ( editedPostTemplate?.blocks ) {\n\t\t\treturn findPostContent( editedPostTemplate?.blocks );\n\t\t}\n\t\t// If there are no blocks, we have to parse the content string.\n\t\t// Best double-check it's a string otherwise the parse function gets unhappy.\n\t\tconst parseableContent =\n\t\t\ttypeof editedPostTemplate?.content === 'string'\n\t\t\t\t? editedPostTemplate?.content\n\t\t\t\t: '';\n\n\t\treturn findPostContent( parse( parseableContent ) ) || {};\n\t}, [ editedPostTemplate?.content, editedPostTemplate?.blocks ] );\n\n\tconst postContentLayoutClasses = useLayoutClasses( postContentBlock );\n\n\tconst blockListLayoutClass = classnames(\n\t\t{\n\t\t\t'is-layout-flow': ! themeSupportsLayout,\n\t\t},\n\t\tthemeSupportsLayout && postContentLayoutClasses\n\t);\n\n\tconst postContentLayoutStyles = useLayoutStyles(\n\t\tpostContentBlock,\n\t\t'.block-editor-block-list__layout.is-root-container'\n\t);\n\n\tconst layout = postContentBlock?.attributes?.layout || {};\n\n\t// Update type for blocks using legacy layouts.\n\tconst postContentLayout = useMemo( () => {\n\t\treturn layout &&\n\t\t\t( layout?.type === 'constrained' ||\n\t\t\t\tlayout?.inherit ||\n\t\t\t\tlayout?.contentSize ||\n\t\t\t\tlayout?.wideSize )\n\t\t\t? { ...globalLayoutSettings, ...layout, type: 'constrained' }\n\t\t\t: { ...globalLayoutSettings, ...layout, type: 'default' };\n\t}, [\n\t\tlayout?.type,\n\t\tlayout?.inherit,\n\t\tlayout?.contentSize,\n\t\tlayout?.wideSize,\n\t\tglobalLayoutSettings,\n\t] );\n\n\t// If there is a Post Content block we use its layout for the block list;\n\t// if not, this must be a classic theme, in which case we use the fallback layout.\n\tconst blockListLayout = postContentBlock\n\t\t? postContentLayout\n\t\t: fallbackLayout;\n\n\tconst titleRef = useRef();\n\tuseEffect( () => {\n\t\tif ( isWelcomeGuideVisible || ! isCleanNewPost() ) {\n\t\t\treturn;\n\t\t}\n\t\ttitleRef?.current?.focus();\n\t}, [ isWelcomeGuideVisible, isCleanNewPost ] );\n\n\treturn (\n\t\t<BlockTools\n\t\t\t__unstableContentRef={ ref }\n\t\t\tclassName={ classnames( 'edit-post-visual-editor', {\n\t\t\t\t'is-template-mode': isTemplateMode,\n\t\t\t} ) }\n\t\t>\n\t\t\t<VisualEditorGlobalKeyboardShortcuts />\n\t\t\t<motion.div\n\t\t\t\tclassName=\"edit-post-visual-editor__content-area\"\n\t\t\t\tanimate={ {\n\t\t\t\t\tpadding: isTemplateMode ? '48px 48px 0' : '0',\n\t\t\t\t} }\n\t\t\t\tref={ blockSelectionClearerRef }\n\t\t\t>\n\t\t\t\t{ isTemplateMode && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"edit-post-visual-editor__exit-template-mode\"\n\t\t\t\t\t\ticon={ arrowLeft }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t\t\tsetIsEditingTemplate( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\t<motion.div\n\t\t\t\t\tanimate={ animatedStyles }\n\t\t\t\t\tinitial={ desktopCanvasStyles }\n\t\t\t\t\tclassName={ previewMode }\n\t\t\t\t>\n\t\t\t\t\t<MaybeIframe\n\t\t\t\t\t\tshouldIframe={\n\t\t\t\t\t\t\tisTemplateMode ||\n\t\t\t\t\t\t\tdeviceType === 'Tablet' ||\n\t\t\t\t\t\t\tdeviceType === 'Mobile'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t\t\tstyles={ styles }\n\t\t\t\t\t\tassets={ assets }\n\t\t\t\t\t\tstyle={ { paddingBottom } }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ themeSupportsLayout &&\n\t\t\t\t\t\t\t! themeHasDisabledLayoutStyles &&\n\t\t\t\t\t\t\t! isTemplateMode && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\t\t\t\tselector=\".edit-post-visual-editor__post-title-wrapper, .block-editor-block-list__layout.is-root-container\"\n\t\t\t\t\t\t\t\t\t\tlayout={ fallbackLayout }\n\t\t\t\t\t\t\t\t\t\tlayoutDefinitions={\n\t\t\t\t\t\t\t\t\t\t\tglobalLayoutSettings?.definitions\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ postContentLayoutStyles && (\n\t\t\t\t\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\t\t\t\t\tlayout={ postContentLayout }\n\t\t\t\t\t\t\t\t\t\t\tcss={ postContentLayoutStyles }\n\t\t\t\t\t\t\t\t\t\t\tlayoutDefinitions={\n\t\t\t\t\t\t\t\t\t\t\t\tglobalLayoutSettings?.definitions\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! isTemplateMode && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t'edit-post-visual-editor__post-title-wrapper',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'is-focus-mode': isFocusMode,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tcontentEditable={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PostTitle ref={ titleRef } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<RecursionProvider\n\t\t\t\t\t\t\tblockName={ wrapperBlockName }\n\t\t\t\t\t\t\tuniqueId={ wrapperUniqueId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockList\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tisTemplateMode\n\t\t\t\t\t\t\t\t\t\t? 'wp-site-blocks'\n\t\t\t\t\t\t\t\t\t\t: `${ blockListLayoutClass } wp-block-post-content` // Ensure root level blocks receive default/flow blockGap styling rules.\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__experimentalLayout={ blockListLayout }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</RecursionProvider>\n\t\t\t\t\t</MaybeIframe>\n\t\t\t\t</motion.div>\n\t\t\t</motion.div>\n\t\t\t<__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<BlockInspectorButton onClick={ onClose } />\n\t\t\t\t) }\n\t\t\t</__unstableBlockSettingsMenuFirstItem>\n\t\t</BlockTools>\n\t);\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { reduce } from 'lodash';
|
|
5
5
|
/**
|
|
6
6
|
* WordPress dependencies
|
|
7
7
|
*/
|
|
@@ -260,7 +260,7 @@ export const showBlockTypes = blockNames => _ref9 => {
|
|
|
260
260
|
registry
|
|
261
261
|
} = _ref9;
|
|
262
262
|
const existingBlockNames = (_registry$select$get4 = registry.select(preferencesStore).get('core/edit-post', 'hiddenBlockTypes')) !== null && _registry$select$get4 !== void 0 ? _registry$select$get4 : [];
|
|
263
|
-
const newBlockNames = existingBlockNames.filter(type => !
|
|
263
|
+
const newBlockNames = existingBlockNames.filter(type => !(Array.isArray(blockNames) ? blockNames : [blockNames]).includes(type));
|
|
264
264
|
registry.dispatch(preferencesStore).set('core/edit-post', 'hiddenBlockTypes', newBlockNames);
|
|
265
265
|
};
|
|
266
266
|
/**
|
|
@@ -276,35 +276,31 @@ export const hideBlockTypes = blockNames => _ref10 => {
|
|
|
276
276
|
registry
|
|
277
277
|
} = _ref10;
|
|
278
278
|
const existingBlockNames = (_registry$select$get5 = registry.select(preferencesStore).get('core/edit-post', 'hiddenBlockTypes')) !== null && _registry$select$get5 !== void 0 ? _registry$select$get5 : [];
|
|
279
|
-
const mergedBlockNames = new Set([...existingBlockNames, ...
|
|
279
|
+
const mergedBlockNames = new Set([...existingBlockNames, ...(Array.isArray(blockNames) ? blockNames : [blockNames])]);
|
|
280
280
|
registry.dispatch(preferencesStore).set('core/edit-post', 'hiddenBlockTypes', [...mergedBlockNames]);
|
|
281
281
|
};
|
|
282
282
|
/**
|
|
283
|
-
*
|
|
284
|
-
* what Meta boxes are available in which location.
|
|
283
|
+
* Stores info about which Meta boxes are available in which location.
|
|
285
284
|
*
|
|
286
285
|
* @param {Object} metaBoxesPerLocation Meta boxes per location.
|
|
287
286
|
*/
|
|
288
287
|
|
|
289
|
-
export
|
|
290
|
-
|
|
291
|
-
dispatch
|
|
292
|
-
} = _ref11;
|
|
293
|
-
return dispatch({
|
|
288
|
+
export function setAvailableMetaBoxesPerLocation(metaBoxesPerLocation) {
|
|
289
|
+
return {
|
|
294
290
|
type: 'SET_META_BOXES_PER_LOCATIONS',
|
|
295
291
|
metaBoxesPerLocation
|
|
296
|
-
}
|
|
297
|
-
}
|
|
292
|
+
};
|
|
293
|
+
}
|
|
298
294
|
/**
|
|
299
295
|
* Update a metabox.
|
|
300
296
|
*/
|
|
301
297
|
|
|
302
|
-
export const requestMetaBoxUpdates = () => async
|
|
298
|
+
export const requestMetaBoxUpdates = () => async _ref11 => {
|
|
303
299
|
let {
|
|
304
300
|
registry,
|
|
305
301
|
select,
|
|
306
302
|
dispatch
|
|
307
|
-
} =
|
|
303
|
+
} = _ref11;
|
|
308
304
|
dispatch({
|
|
309
305
|
type: 'REQUEST_META_BOX_UPDATES'
|
|
310
306
|
}); // Saves the wp_editor fields.
|
|
@@ -329,8 +325,8 @@ export const requestMetaBoxUpdates = () => async _ref12 => {
|
|
|
329
325
|
|
|
330
326
|
return memo;
|
|
331
327
|
}, new window.FormData());
|
|
332
|
-
additionalData.forEach(
|
|
333
|
-
let [key, value] =
|
|
328
|
+
additionalData.forEach(_ref12 => {
|
|
329
|
+
let [key, value] = _ref12;
|
|
334
330
|
return formData.append(key, value);
|
|
335
331
|
});
|
|
336
332
|
|
|
@@ -436,12 +432,12 @@ export function setIsEditingTemplate(value) {
|
|
|
436
432
|
|
|
437
433
|
export const __unstableSwitchToTemplateMode = function () {
|
|
438
434
|
let newTemplate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
439
|
-
return
|
|
435
|
+
return _ref13 => {
|
|
440
436
|
let {
|
|
441
437
|
registry,
|
|
442
438
|
select,
|
|
443
439
|
dispatch
|
|
444
|
-
} =
|
|
440
|
+
} = _ref13;
|
|
445
441
|
dispatch(setIsEditingTemplate(true));
|
|
446
442
|
const isWelcomeGuideActive = select.isFeatureActive('welcomeGuideTemplate');
|
|
447
443
|
|
|
@@ -459,10 +455,10 @@ export const __unstableSwitchToTemplateMode = function () {
|
|
|
459
455
|
* @param {Object?} template Template to create and assign.
|
|
460
456
|
*/
|
|
461
457
|
|
|
462
|
-
export const __unstableCreateTemplate = template => async
|
|
458
|
+
export const __unstableCreateTemplate = template => async _ref14 => {
|
|
463
459
|
let {
|
|
464
460
|
registry
|
|
465
|
-
} =
|
|
461
|
+
} = _ref14;
|
|
466
462
|
const savedTemplate = await registry.dispatch(coreStore).saveEntityRecord('postType', 'wp_template', template);
|
|
467
463
|
const post = registry.select(editorStore).getCurrentPost();
|
|
468
464
|
registry.dispatch(coreStore).editEntityRecord('postType', post.type, post.id, {
|
|
@@ -474,12 +470,12 @@ let metaBoxesInitialized = false;
|
|
|
474
470
|
* Initializes WordPress `postboxes` script and the logic for saving meta boxes.
|
|
475
471
|
*/
|
|
476
472
|
|
|
477
|
-
export const initializeMetaBoxes = () =>
|
|
473
|
+
export const initializeMetaBoxes = () => _ref15 => {
|
|
478
474
|
let {
|
|
479
475
|
registry,
|
|
480
476
|
select,
|
|
481
477
|
dispatch
|
|
482
|
-
} =
|
|
478
|
+
} = _ref15;
|
|
483
479
|
|
|
484
480
|
const isEditorReady = registry.select(editorStore).__unstableIsEditorReady();
|
|
485
481
|
|
|
@@ -500,19 +496,13 @@ export const initializeMetaBoxes = () => _ref16 => {
|
|
|
500
496
|
|
|
501
497
|
metaBoxesInitialized = true;
|
|
502
498
|
let wasSavingPost = registry.select(editorStore).isSavingPost();
|
|
503
|
-
let wasAutosavingPost = registry.select(editorStore).isAutosavingPost();
|
|
504
|
-
const hasMetaBoxes = select.hasMetaBoxes(); // Save metaboxes when performing a full save on the post.
|
|
499
|
+
let wasAutosavingPost = registry.select(editorStore).isAutosavingPost(); // Save metaboxes when performing a full save on the post.
|
|
505
500
|
|
|
506
501
|
registry.subscribe(async () => {
|
|
507
502
|
const isSavingPost = registry.select(editorStore).isSavingPost();
|
|
508
|
-
const isAutosavingPost = registry.select(editorStore).isAutosavingPost(); // Save metaboxes on save completion, except for autosaves
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
// account for updates on each state change.
|
|
512
|
-
//
|
|
513
|
-
// See: https://github.com/WordPress/WordPress/blob/5.1.1/wp-admin/includes/post.php#L2307-L2309.
|
|
514
|
-
|
|
515
|
-
const shouldTriggerMetaboxesSave = hasMetaBoxes && wasSavingPost && !isSavingPost && !wasAutosavingPost; // Save current state for next inspection.
|
|
503
|
+
const isAutosavingPost = registry.select(editorStore).isAutosavingPost(); // Save metaboxes on save completion, except for autosaves.
|
|
504
|
+
|
|
505
|
+
const shouldTriggerMetaboxesSave = wasSavingPost && !wasAutosavingPost && !isSavingPost && select.hasMetaBoxes(); // Save current state for next inspection.
|
|
516
506
|
|
|
517
507
|
wasSavingPost = isSavingPost;
|
|
518
508
|
wasAutosavingPost = isAutosavingPost;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/edit-post/src/store/actions.js"],"names":["castArray","reduce","__","apiFetch","store","interfaceStore","preferencesStore","speak","noticesStore","coreStore","blockEditorStore","editorStore","getMetaBoxContainer","editPostStore","openGeneralSidebar","name","registry","dispatch","enableComplementaryArea","closeGeneralSidebar","disableComplementaryArea","openModal","type","closeModal","openPublishSidebar","closePublishSidebar","togglePublishSidebar","toggleEditorPanelEnabled","panelName","inactivePanels","select","get","isPanelInactive","includes","updatedInactivePanels","filter","invactivePanelName","set","toggleEditorPanelOpened","openPanels","isPanelOpen","updatedOpenPanels","openPanelName","removeEditorPanel","toggleFeature","feature","toggle","switchEditorMode","mode","clearSelectedBlock","message","togglePinnedPluginItem","pluginName","isPinned","isItemPinned","updatePreferredStyleVariations","blockName","blockStyle","existingVariations","updatedVariations","showBlockTypes","blockNames","existingBlockNames","newBlockNames","hideBlockTypes","mergedBlockNames","Set","setAvailableMetaBoxesPerLocation","metaBoxesPerLocation","requestMetaBoxUpdates","window","tinyMCE","triggerSave","post","getCurrentPost","additionalData","comment_status","ping_status","sticky","author","Boolean","baseFormData","FormData","document","querySelector","activeMetaBoxLocations","getActiveMetaBoxLocations","formDataToMerge","map","location","formData","memo","currentFormData","key","value","append","forEach","url","_wpMetaBoxUrl","method","body","parse","metaBoxUpdatesSuccess","metaBoxUpdatesFailure","__experimentalSetPreviewDeviceType","deviceType","setIsInserterOpened","setIsListViewOpened","isOpen","setIsEditingTemplate","__unstableSwitchToTemplateMode","newTemplate","isWelcomeGuideActive","isFeatureActive","createSuccessNotice","__unstableCreateTemplate","template","savedTemplate","saveEntityRecord","editEntityRecord","id","slug","metaBoxesInitialized","initializeMetaBoxes","isEditorReady","__unstableIsEditorReady","postType","getCurrentPostType","postboxes","page","add_postbox_toggles","wasSavingPost","isSavingPost","wasAutosavingPost","isAutosavingPost","hasMetaBoxes","subscribe","shouldTriggerMetaboxesSave"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, reduce } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { speak } from '@wordpress/a11y';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { getMetaBoxContainer } from '../utils/meta-boxes';\nimport { store as editPostStore } from '.';\n\n/**\n * Returns an action object used in signalling that the user opened an editor sidebar.\n *\n * @param {?string} name Sidebar name to be opened.\n */\nexport const openGeneralSidebar =\n\t( name ) =>\n\t( { registry } ) =>\n\t\tregistry\n\t\t\t.dispatch( interfaceStore )\n\t\t\t.enableComplementaryArea( editPostStore.name, name );\n\n/**\n * Returns an action object signalling that the user closed the sidebar.\n */\nexport const closeGeneralSidebar =\n\t() =>\n\t( { registry } ) =>\n\t\tregistry\n\t\t\t.dispatch( interfaceStore )\n\t\t\t.disableComplementaryArea( editPostStore.name );\n\n/**\n * Returns an action object used in signalling that the user opened a modal.\n *\n * @param {string} name A string that uniquely identifies the modal.\n *\n * @return {Object} Action object.\n */\nexport function openModal( name ) {\n\treturn {\n\t\ttype: 'OPEN_MODAL',\n\t\tname,\n\t};\n}\n\n/**\n * Returns an action object signalling that the user closed a modal.\n *\n * @return {Object} Action object.\n */\nexport function closeModal() {\n\treturn {\n\t\ttype: 'CLOSE_MODAL',\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the user opened the publish\n * sidebar.\n *\n * @return {Object} Action object\n */\nexport function openPublishSidebar() {\n\treturn {\n\t\ttype: 'OPEN_PUBLISH_SIDEBAR',\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the user closed the\n * publish sidebar.\n *\n * @return {Object} Action object.\n */\nexport function closePublishSidebar() {\n\treturn {\n\t\ttype: 'CLOSE_PUBLISH_SIDEBAR',\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the user toggles the publish sidebar.\n *\n * @return {Object} Action object\n */\nexport function togglePublishSidebar() {\n\treturn {\n\t\ttype: 'TOGGLE_PUBLISH_SIDEBAR',\n\t};\n}\n\n/**\n * Returns an action object used to enable or disable a panel in the editor.\n *\n * @param {string} panelName A string that identifies the panel to enable or disable.\n *\n * @return {Object} Action object.\n */\nexport const toggleEditorPanelEnabled =\n\t( panelName ) =>\n\t( { registry } ) => {\n\t\tconst inactivePanels =\n\t\t\tregistry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core/edit-post', 'inactivePanels' ) ?? [];\n\n\t\tconst isPanelInactive = !! inactivePanels?.includes( panelName );\n\n\t\t// If the panel is inactive, remove it to enable it, else add it to\n\t\t// make it inactive.\n\t\tlet updatedInactivePanels;\n\t\tif ( isPanelInactive ) {\n\t\t\tupdatedInactivePanels = inactivePanels.filter(\n\t\t\t\t( invactivePanelName ) => invactivePanelName !== panelName\n\t\t\t);\n\t\t} else {\n\t\t\tupdatedInactivePanels = [ ...inactivePanels, panelName ];\n\t\t}\n\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( 'core/edit-post', 'inactivePanels', updatedInactivePanels );\n\t};\n\n/**\n * Opens a closed panel and closes an open panel.\n *\n * @param {string} panelName A string that identifies the panel to open or close.\n */\nexport const toggleEditorPanelOpened =\n\t( panelName ) =>\n\t( { registry } ) => {\n\t\tconst openPanels =\n\t\t\tregistry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core/edit-post', 'openPanels' ) ?? [];\n\n\t\tconst isPanelOpen = !! openPanels?.includes( panelName );\n\n\t\t// If the panel is open, remove it to close it, else add it to\n\t\t// make it open.\n\t\tlet updatedOpenPanels;\n\t\tif ( isPanelOpen ) {\n\t\t\tupdatedOpenPanels = openPanels.filter(\n\t\t\t\t( openPanelName ) => openPanelName !== panelName\n\t\t\t);\n\t\t} else {\n\t\t\tupdatedOpenPanels = [ ...openPanels, panelName ];\n\t\t}\n\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( 'core/edit-post', 'openPanels', updatedOpenPanels );\n\t};\n\n/**\n * Returns an action object used to remove a panel from the editor.\n *\n * @param {string} panelName A string that identifies the panel to remove.\n *\n * @return {Object} Action object.\n */\nexport function removeEditorPanel( panelName ) {\n\treturn {\n\t\ttype: 'REMOVE_PANEL',\n\t\tpanelName,\n\t};\n}\n\n/**\n * Triggers an action used to toggle a feature flag.\n *\n * @param {string} feature Feature name.\n */\nexport const toggleFeature =\n\t( feature ) =>\n\t( { registry } ) =>\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.toggle( 'core/edit-post', feature );\n\n/**\n * Triggers an action used to switch editor mode.\n *\n * @param {string} mode The editor mode.\n */\nexport const switchEditorMode =\n\t( mode ) =>\n\t( { registry } ) => {\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( 'core/edit-post', 'editorMode', mode );\n\n\t\t// Unselect blocks when we switch to the code editor.\n\t\tif ( mode !== 'visual' ) {\n\t\t\tregistry.dispatch( blockEditorStore ).clearSelectedBlock();\n\t\t}\n\n\t\tconst message =\n\t\t\tmode === 'visual'\n\t\t\t\t? __( 'Visual editor selected' )\n\t\t\t\t: __( 'Code editor selected' );\n\t\tspeak( message, 'assertive' );\n\t};\n\n/**\n * Triggers an action object used to toggle a plugin name flag.\n *\n * @param {string} pluginName Plugin name.\n */\nexport const togglePinnedPluginItem =\n\t( pluginName ) =>\n\t( { registry } ) => {\n\t\tconst isPinned = registry\n\t\t\t.select( interfaceStore )\n\t\t\t.isItemPinned( 'core/edit-post', pluginName );\n\n\t\tregistry\n\t\t\t.dispatch( interfaceStore )\n\t\t\t[ isPinned ? 'unpinItem' : 'pinItem' ](\n\t\t\t\t'core/edit-post',\n\t\t\t\tpluginName\n\t\t\t);\n\t};\n\n/**\n * Returns an action object used in signaling that a style should be auto-applied when a block is created.\n *\n * @param {string} blockName Name of the block.\n * @param {?string} blockStyle Name of the style that should be auto applied. If undefined, the \"auto apply\" setting of the block is removed.\n */\nexport const updatePreferredStyleVariations =\n\t( blockName, blockStyle ) =>\n\t( { registry } ) => {\n\t\tif ( ! blockName ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst existingVariations =\n\t\t\tregistry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core/edit-post', 'preferredStyleVariations' ) ?? {};\n\n\t\t// When the blockStyle is omitted, remove the block's preferred variation.\n\t\tif ( ! blockStyle ) {\n\t\t\tconst updatedVariations = {\n\t\t\t\t...existingVariations,\n\t\t\t};\n\n\t\t\tdelete updatedVariations[ blockName ];\n\n\t\t\tregistry\n\t\t\t\t.dispatch( preferencesStore )\n\t\t\t\t.set(\n\t\t\t\t\t'core/edit-post',\n\t\t\t\t\t'preferredStyleVariations',\n\t\t\t\t\tupdatedVariations\n\t\t\t\t);\n\t\t} else {\n\t\t\t// Else add the variation.\n\t\t\tregistry\n\t\t\t\t.dispatch( preferencesStore )\n\t\t\t\t.set( 'core/edit-post', 'preferredStyleVariations', {\n\t\t\t\t\t...existingVariations,\n\t\t\t\t\t[ blockName ]: blockStyle,\n\t\t\t\t} );\n\t\t}\n\t};\n\n/**\n * Update the provided block types to be visible.\n *\n * @param {string[]} blockNames Names of block types to show.\n */\nexport const showBlockTypes =\n\t( blockNames ) =>\n\t( { registry } ) => {\n\t\tconst existingBlockNames =\n\t\t\tregistry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core/edit-post', 'hiddenBlockTypes' ) ?? [];\n\n\t\tconst newBlockNames = existingBlockNames.filter(\n\t\t\t( type ) => ! castArray( blockNames ).includes( type )\n\t\t);\n\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( 'core/edit-post', 'hiddenBlockTypes', newBlockNames );\n\t};\n\n/**\n * Update the provided block types to be hidden.\n *\n * @param {string[]} blockNames Names of block types to hide.\n */\nexport const hideBlockTypes =\n\t( blockNames ) =>\n\t( { registry } ) => {\n\t\tconst existingBlockNames =\n\t\t\tregistry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core/edit-post', 'hiddenBlockTypes' ) ?? [];\n\n\t\tconst mergedBlockNames = new Set( [\n\t\t\t...existingBlockNames,\n\t\t\t...castArray( blockNames ),\n\t\t] );\n\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( 'core/edit-post', 'hiddenBlockTypes', [\n\t\t\t\t...mergedBlockNames,\n\t\t\t] );\n\t};\n\n/**\n * Returns an action object used in signaling\n * what Meta boxes are available in which location.\n *\n * @param {Object} metaBoxesPerLocation Meta boxes per location.\n */\nexport const setAvailableMetaBoxesPerLocation =\n\t( metaBoxesPerLocation ) =>\n\t( { dispatch } ) =>\n\t\tdispatch( {\n\t\t\ttype: 'SET_META_BOXES_PER_LOCATIONS',\n\t\t\tmetaBoxesPerLocation,\n\t\t} );\n\n/**\n * Update a metabox.\n */\nexport const requestMetaBoxUpdates =\n\t() =>\n\tasync ( { registry, select, dispatch } ) => {\n\t\tdispatch( {\n\t\t\ttype: 'REQUEST_META_BOX_UPDATES',\n\t\t} );\n\n\t\t// Saves the wp_editor fields.\n\t\tif ( window.tinyMCE ) {\n\t\t\twindow.tinyMCE.triggerSave();\n\t\t}\n\n\t\t// Additional data needed for backward compatibility.\n\t\t// If we do not provide this data, the post will be overridden with the default values.\n\t\tconst post = registry.select( editorStore ).getCurrentPost();\n\t\tconst additionalData = [\n\t\t\tpost.comment_status\n\t\t\t\t? [ 'comment_status', post.comment_status ]\n\t\t\t\t: false,\n\t\t\tpost.ping_status ? [ 'ping_status', post.ping_status ] : false,\n\t\t\tpost.sticky ? [ 'sticky', post.sticky ] : false,\n\t\t\tpost.author ? [ 'post_author', post.author ] : false,\n\t\t].filter( Boolean );\n\n\t\t// We gather all the metaboxes locations data and the base form data.\n\t\tconst baseFormData = new window.FormData(\n\t\t\tdocument.querySelector( '.metabox-base-form' )\n\t\t);\n\t\tconst activeMetaBoxLocations = select.getActiveMetaBoxLocations();\n\t\tconst formDataToMerge = [\n\t\t\tbaseFormData,\n\t\t\t...activeMetaBoxLocations.map(\n\t\t\t\t( location ) =>\n\t\t\t\t\tnew window.FormData( getMetaBoxContainer( location ) )\n\t\t\t),\n\t\t];\n\n\t\t// Merge all form data objects into a single one.\n\t\tconst formData = reduce(\n\t\t\tformDataToMerge,\n\t\t\t( memo, currentFormData ) => {\n\t\t\t\tfor ( const [ key, value ] of currentFormData ) {\n\t\t\t\t\tmemo.append( key, value );\n\t\t\t\t}\n\t\t\t\treturn memo;\n\t\t\t},\n\t\t\tnew window.FormData()\n\t\t);\n\t\tadditionalData.forEach( ( [ key, value ] ) =>\n\t\t\tformData.append( key, value )\n\t\t);\n\n\t\ttry {\n\t\t\t// Save the metaboxes.\n\t\t\tawait apiFetch( {\n\t\t\t\turl: window._wpMetaBoxUrl,\n\t\t\t\tmethod: 'POST',\n\t\t\t\tbody: formData,\n\t\t\t\tparse: false,\n\t\t\t} );\n\t\t\tdispatch.metaBoxUpdatesSuccess();\n\t\t} catch {\n\t\t\tdispatch.metaBoxUpdatesFailure();\n\t\t}\n\t};\n\n/**\n * Returns an action object used to signal a successful meta box update.\n *\n * @return {Object} Action object.\n */\nexport function metaBoxUpdatesSuccess() {\n\treturn {\n\t\ttype: 'META_BOX_UPDATES_SUCCESS',\n\t};\n}\n\n/**\n * Returns an action object used to signal a failed meta box update.\n *\n * @return {Object} Action object.\n */\nexport function metaBoxUpdatesFailure() {\n\treturn {\n\t\ttype: 'META_BOX_UPDATES_FAILURE',\n\t};\n}\n\n/**\n * Returns an action object used to toggle the width of the editing canvas.\n *\n * @param {string} deviceType\n *\n * @return {Object} Action object.\n */\nexport function __experimentalSetPreviewDeviceType( deviceType ) {\n\treturn {\n\t\ttype: 'SET_PREVIEW_DEVICE_TYPE',\n\t\tdeviceType,\n\t};\n}\n\n/**\n * Returns an action object used to open/close the inserter.\n *\n * @param {boolean|Object} value Whether the inserter should be\n * opened (true) or closed (false).\n * To specify an insertion point,\n * use an object.\n * @param {string} value.rootClientId The root client ID to insert at.\n * @param {number} value.insertionIndex The index to insert at.\n *\n * @return {Object} Action object.\n */\nexport function setIsInserterOpened( value ) {\n\treturn {\n\t\ttype: 'SET_IS_INSERTER_OPENED',\n\t\tvalue,\n\t};\n}\n\n/**\n * Returns an action object used to open/close the list view.\n *\n * @param {boolean} isOpen A boolean representing whether the list view should be opened or closed.\n * @return {Object} Action object.\n */\nexport function setIsListViewOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_LIST_VIEW_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Returns an action object used to switch to template editing.\n *\n * @param {boolean} value Is editing template.\n * @return {Object} Action object.\n */\nexport function setIsEditingTemplate( value ) {\n\treturn {\n\t\ttype: 'SET_IS_EDITING_TEMPLATE',\n\t\tvalue,\n\t};\n}\n\n/**\n * Switches to the template mode.\n *\n * @param {boolean} newTemplate Is new template.\n */\nexport const __unstableSwitchToTemplateMode =\n\t( newTemplate = false ) =>\n\t( { registry, select, dispatch } ) => {\n\t\tdispatch( setIsEditingTemplate( true ) );\n\t\tconst isWelcomeGuideActive = select.isFeatureActive(\n\t\t\t'welcomeGuideTemplate'\n\t\t);\n\t\tif ( ! isWelcomeGuideActive ) {\n\t\t\tconst message = newTemplate\n\t\t\t\t? __( \"Custom template created. You're in template mode now.\" )\n\t\t\t\t: __(\n\t\t\t\t\t\t'Editing template. Changes made here affect all posts and pages that use the template.'\n\t\t\t\t );\n\t\t\tregistry.dispatch( noticesStore ).createSuccessNotice( message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t}\n\t};\n\n/**\n * Create a block based template.\n *\n * @param {Object?} template Template to create and assign.\n */\nexport const __unstableCreateTemplate =\n\t( template ) =>\n\tasync ( { registry } ) => {\n\t\tconst savedTemplate = await registry\n\t\t\t.dispatch( coreStore )\n\t\t\t.saveEntityRecord( 'postType', 'wp_template', template );\n\t\tconst post = registry.select( editorStore ).getCurrentPost();\n\t\tregistry\n\t\t\t.dispatch( coreStore )\n\t\t\t.editEntityRecord( 'postType', post.type, post.id, {\n\t\t\t\ttemplate: savedTemplate.slug,\n\t\t\t} );\n\t};\n\nlet metaBoxesInitialized = false;\n\n/**\n * Initializes WordPress `postboxes` script and the logic for saving meta boxes.\n */\nexport const initializeMetaBoxes =\n\t() =>\n\t( { registry, select, dispatch } ) => {\n\t\tconst isEditorReady = registry\n\t\t\t.select( editorStore )\n\t\t\t.__unstableIsEditorReady();\n\n\t\tif ( ! isEditorReady ) {\n\t\t\treturn;\n\t\t}\n\t\t// Only initialize once.\n\t\tif ( metaBoxesInitialized ) {\n\t\t\treturn;\n\t\t}\n\t\tconst postType = registry.select( editorStore ).getCurrentPostType();\n\t\tif ( window.postboxes.page !== postType ) {\n\t\t\twindow.postboxes.add_postbox_toggles( postType );\n\t\t}\n\n\t\tmetaBoxesInitialized = true;\n\n\t\tlet wasSavingPost = registry.select( editorStore ).isSavingPost();\n\t\tlet wasAutosavingPost = registry\n\t\t\t.select( editorStore )\n\t\t\t.isAutosavingPost();\n\t\tconst hasMetaBoxes = select.hasMetaBoxes();\n\n\t\t// Save metaboxes when performing a full save on the post.\n\t\tregistry.subscribe( async () => {\n\t\t\tconst isSavingPost = registry.select( editorStore ).isSavingPost();\n\t\t\tconst isAutosavingPost = registry\n\t\t\t\t.select( editorStore )\n\t\t\t\t.isAutosavingPost();\n\n\t\t\t// Save metaboxes on save completion, except for autosaves that are not a post preview.\n\t\t\t//\n\t\t\t// Meta boxes are initialized once at page load. It is not necessary to\n\t\t\t// account for updates on each state change.\n\t\t\t//\n\t\t\t// See: https://github.com/WordPress/WordPress/blob/5.1.1/wp-admin/includes/post.php#L2307-L2309.\n\t\t\tconst shouldTriggerMetaboxesSave =\n\t\t\t\thasMetaBoxes &&\n\t\t\t\twasSavingPost &&\n\t\t\t\t! isSavingPost &&\n\t\t\t\t! wasAutosavingPost;\n\n\t\t\t// Save current state for next inspection.\n\t\t\twasSavingPost = isSavingPost;\n\t\t\twasAutosavingPost = isAutosavingPost;\n\n\t\t\tif ( shouldTriggerMetaboxesSave ) {\n\t\t\t\tawait dispatch.requestMetaBoxUpdates();\n\t\t\t}\n\t\t} );\n\n\t\tdispatch( {\n\t\t\ttype: 'META_BOXES_INITIALIZED',\n\t\t} );\n\t};\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/edit-post/src/store/actions.js"],"names":["reduce","__","apiFetch","store","interfaceStore","preferencesStore","speak","noticesStore","coreStore","blockEditorStore","editorStore","getMetaBoxContainer","editPostStore","openGeneralSidebar","name","registry","dispatch","enableComplementaryArea","closeGeneralSidebar","disableComplementaryArea","openModal","type","closeModal","openPublishSidebar","closePublishSidebar","togglePublishSidebar","toggleEditorPanelEnabled","panelName","inactivePanels","select","get","isPanelInactive","includes","updatedInactivePanels","filter","invactivePanelName","set","toggleEditorPanelOpened","openPanels","isPanelOpen","updatedOpenPanels","openPanelName","removeEditorPanel","toggleFeature","feature","toggle","switchEditorMode","mode","clearSelectedBlock","message","togglePinnedPluginItem","pluginName","isPinned","isItemPinned","updatePreferredStyleVariations","blockName","blockStyle","existingVariations","updatedVariations","showBlockTypes","blockNames","existingBlockNames","newBlockNames","Array","isArray","hideBlockTypes","mergedBlockNames","Set","setAvailableMetaBoxesPerLocation","metaBoxesPerLocation","requestMetaBoxUpdates","window","tinyMCE","triggerSave","post","getCurrentPost","additionalData","comment_status","ping_status","sticky","author","Boolean","baseFormData","FormData","document","querySelector","activeMetaBoxLocations","getActiveMetaBoxLocations","formDataToMerge","map","location","formData","memo","currentFormData","key","value","append","forEach","url","_wpMetaBoxUrl","method","body","parse","metaBoxUpdatesSuccess","metaBoxUpdatesFailure","__experimentalSetPreviewDeviceType","deviceType","setIsInserterOpened","setIsListViewOpened","isOpen","setIsEditingTemplate","__unstableSwitchToTemplateMode","newTemplate","isWelcomeGuideActive","isFeatureActive","createSuccessNotice","__unstableCreateTemplate","template","savedTemplate","saveEntityRecord","editEntityRecord","id","slug","metaBoxesInitialized","initializeMetaBoxes","isEditorReady","__unstableIsEditorReady","postType","getCurrentPostType","postboxes","page","add_postbox_toggles","wasSavingPost","isSavingPost","wasAutosavingPost","isAutosavingPost","subscribe","shouldTriggerMetaboxesSave","hasMetaBoxes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { reduce } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { speak } from '@wordpress/a11y';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { getMetaBoxContainer } from '../utils/meta-boxes';\nimport { store as editPostStore } from '.';\n\n/**\n * Returns an action object used in signalling that the user opened an editor sidebar.\n *\n * @param {?string} name Sidebar name to be opened.\n */\nexport const openGeneralSidebar =\n\t( name ) =>\n\t( { registry } ) =>\n\t\tregistry\n\t\t\t.dispatch( interfaceStore )\n\t\t\t.enableComplementaryArea( editPostStore.name, name );\n\n/**\n * Returns an action object signalling that the user closed the sidebar.\n */\nexport const closeGeneralSidebar =\n\t() =>\n\t( { registry } ) =>\n\t\tregistry\n\t\t\t.dispatch( interfaceStore )\n\t\t\t.disableComplementaryArea( editPostStore.name );\n\n/**\n * Returns an action object used in signalling that the user opened a modal.\n *\n * @param {string} name A string that uniquely identifies the modal.\n *\n * @return {Object} Action object.\n */\nexport function openModal( name ) {\n\treturn {\n\t\ttype: 'OPEN_MODAL',\n\t\tname,\n\t};\n}\n\n/**\n * Returns an action object signalling that the user closed a modal.\n *\n * @return {Object} Action object.\n */\nexport function closeModal() {\n\treturn {\n\t\ttype: 'CLOSE_MODAL',\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the user opened the publish\n * sidebar.\n *\n * @return {Object} Action object\n */\nexport function openPublishSidebar() {\n\treturn {\n\t\ttype: 'OPEN_PUBLISH_SIDEBAR',\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the user closed the\n * publish sidebar.\n *\n * @return {Object} Action object.\n */\nexport function closePublishSidebar() {\n\treturn {\n\t\ttype: 'CLOSE_PUBLISH_SIDEBAR',\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the user toggles the publish sidebar.\n *\n * @return {Object} Action object\n */\nexport function togglePublishSidebar() {\n\treturn {\n\t\ttype: 'TOGGLE_PUBLISH_SIDEBAR',\n\t};\n}\n\n/**\n * Returns an action object used to enable or disable a panel in the editor.\n *\n * @param {string} panelName A string that identifies the panel to enable or disable.\n *\n * @return {Object} Action object.\n */\nexport const toggleEditorPanelEnabled =\n\t( panelName ) =>\n\t( { registry } ) => {\n\t\tconst inactivePanels =\n\t\t\tregistry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core/edit-post', 'inactivePanels' ) ?? [];\n\n\t\tconst isPanelInactive = !! inactivePanels?.includes( panelName );\n\n\t\t// If the panel is inactive, remove it to enable it, else add it to\n\t\t// make it inactive.\n\t\tlet updatedInactivePanels;\n\t\tif ( isPanelInactive ) {\n\t\t\tupdatedInactivePanels = inactivePanels.filter(\n\t\t\t\t( invactivePanelName ) => invactivePanelName !== panelName\n\t\t\t);\n\t\t} else {\n\t\t\tupdatedInactivePanels = [ ...inactivePanels, panelName ];\n\t\t}\n\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( 'core/edit-post', 'inactivePanels', updatedInactivePanels );\n\t};\n\n/**\n * Opens a closed panel and closes an open panel.\n *\n * @param {string} panelName A string that identifies the panel to open or close.\n */\nexport const toggleEditorPanelOpened =\n\t( panelName ) =>\n\t( { registry } ) => {\n\t\tconst openPanels =\n\t\t\tregistry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core/edit-post', 'openPanels' ) ?? [];\n\n\t\tconst isPanelOpen = !! openPanels?.includes( panelName );\n\n\t\t// If the panel is open, remove it to close it, else add it to\n\t\t// make it open.\n\t\tlet updatedOpenPanels;\n\t\tif ( isPanelOpen ) {\n\t\t\tupdatedOpenPanels = openPanels.filter(\n\t\t\t\t( openPanelName ) => openPanelName !== panelName\n\t\t\t);\n\t\t} else {\n\t\t\tupdatedOpenPanels = [ ...openPanels, panelName ];\n\t\t}\n\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( 'core/edit-post', 'openPanels', updatedOpenPanels );\n\t};\n\n/**\n * Returns an action object used to remove a panel from the editor.\n *\n * @param {string} panelName A string that identifies the panel to remove.\n *\n * @return {Object} Action object.\n */\nexport function removeEditorPanel( panelName ) {\n\treturn {\n\t\ttype: 'REMOVE_PANEL',\n\t\tpanelName,\n\t};\n}\n\n/**\n * Triggers an action used to toggle a feature flag.\n *\n * @param {string} feature Feature name.\n */\nexport const toggleFeature =\n\t( feature ) =>\n\t( { registry } ) =>\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.toggle( 'core/edit-post', feature );\n\n/**\n * Triggers an action used to switch editor mode.\n *\n * @param {string} mode The editor mode.\n */\nexport const switchEditorMode =\n\t( mode ) =>\n\t( { registry } ) => {\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( 'core/edit-post', 'editorMode', mode );\n\n\t\t// Unselect blocks when we switch to the code editor.\n\t\tif ( mode !== 'visual' ) {\n\t\t\tregistry.dispatch( blockEditorStore ).clearSelectedBlock();\n\t\t}\n\n\t\tconst message =\n\t\t\tmode === 'visual'\n\t\t\t\t? __( 'Visual editor selected' )\n\t\t\t\t: __( 'Code editor selected' );\n\t\tspeak( message, 'assertive' );\n\t};\n\n/**\n * Triggers an action object used to toggle a plugin name flag.\n *\n * @param {string} pluginName Plugin name.\n */\nexport const togglePinnedPluginItem =\n\t( pluginName ) =>\n\t( { registry } ) => {\n\t\tconst isPinned = registry\n\t\t\t.select( interfaceStore )\n\t\t\t.isItemPinned( 'core/edit-post', pluginName );\n\n\t\tregistry\n\t\t\t.dispatch( interfaceStore )\n\t\t\t[ isPinned ? 'unpinItem' : 'pinItem' ](\n\t\t\t\t'core/edit-post',\n\t\t\t\tpluginName\n\t\t\t);\n\t};\n\n/**\n * Returns an action object used in signaling that a style should be auto-applied when a block is created.\n *\n * @param {string} blockName Name of the block.\n * @param {?string} blockStyle Name of the style that should be auto applied. If undefined, the \"auto apply\" setting of the block is removed.\n */\nexport const updatePreferredStyleVariations =\n\t( blockName, blockStyle ) =>\n\t( { registry } ) => {\n\t\tif ( ! blockName ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst existingVariations =\n\t\t\tregistry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core/edit-post', 'preferredStyleVariations' ) ?? {};\n\n\t\t// When the blockStyle is omitted, remove the block's preferred variation.\n\t\tif ( ! blockStyle ) {\n\t\t\tconst updatedVariations = {\n\t\t\t\t...existingVariations,\n\t\t\t};\n\n\t\t\tdelete updatedVariations[ blockName ];\n\n\t\t\tregistry\n\t\t\t\t.dispatch( preferencesStore )\n\t\t\t\t.set(\n\t\t\t\t\t'core/edit-post',\n\t\t\t\t\t'preferredStyleVariations',\n\t\t\t\t\tupdatedVariations\n\t\t\t\t);\n\t\t} else {\n\t\t\t// Else add the variation.\n\t\t\tregistry\n\t\t\t\t.dispatch( preferencesStore )\n\t\t\t\t.set( 'core/edit-post', 'preferredStyleVariations', {\n\t\t\t\t\t...existingVariations,\n\t\t\t\t\t[ blockName ]: blockStyle,\n\t\t\t\t} );\n\t\t}\n\t};\n\n/**\n * Update the provided block types to be visible.\n *\n * @param {string[]} blockNames Names of block types to show.\n */\nexport const showBlockTypes =\n\t( blockNames ) =>\n\t( { registry } ) => {\n\t\tconst existingBlockNames =\n\t\t\tregistry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core/edit-post', 'hiddenBlockTypes' ) ?? [];\n\n\t\tconst newBlockNames = existingBlockNames.filter(\n\t\t\t( type ) =>\n\t\t\t\t! (\n\t\t\t\t\tArray.isArray( blockNames ) ? blockNames : [ blockNames ]\n\t\t\t\t ).includes( type )\n\t\t);\n\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( 'core/edit-post', 'hiddenBlockTypes', newBlockNames );\n\t};\n\n/**\n * Update the provided block types to be hidden.\n *\n * @param {string[]} blockNames Names of block types to hide.\n */\nexport const hideBlockTypes =\n\t( blockNames ) =>\n\t( { registry } ) => {\n\t\tconst existingBlockNames =\n\t\t\tregistry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core/edit-post', 'hiddenBlockTypes' ) ?? [];\n\n\t\tconst mergedBlockNames = new Set( [\n\t\t\t...existingBlockNames,\n\t\t\t...( Array.isArray( blockNames ) ? blockNames : [ blockNames ] ),\n\t\t] );\n\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( 'core/edit-post', 'hiddenBlockTypes', [\n\t\t\t\t...mergedBlockNames,\n\t\t\t] );\n\t};\n\n/**\n * Stores info about which Meta boxes are available in which location.\n *\n * @param {Object} metaBoxesPerLocation Meta boxes per location.\n */\nexport function setAvailableMetaBoxesPerLocation( metaBoxesPerLocation ) {\n\treturn {\n\t\ttype: 'SET_META_BOXES_PER_LOCATIONS',\n\t\tmetaBoxesPerLocation,\n\t};\n}\n\n/**\n * Update a metabox.\n */\nexport const requestMetaBoxUpdates =\n\t() =>\n\tasync ( { registry, select, dispatch } ) => {\n\t\tdispatch( {\n\t\t\ttype: 'REQUEST_META_BOX_UPDATES',\n\t\t} );\n\n\t\t// Saves the wp_editor fields.\n\t\tif ( window.tinyMCE ) {\n\t\t\twindow.tinyMCE.triggerSave();\n\t\t}\n\n\t\t// Additional data needed for backward compatibility.\n\t\t// If we do not provide this data, the post will be overridden with the default values.\n\t\tconst post = registry.select( editorStore ).getCurrentPost();\n\t\tconst additionalData = [\n\t\t\tpost.comment_status\n\t\t\t\t? [ 'comment_status', post.comment_status ]\n\t\t\t\t: false,\n\t\t\tpost.ping_status ? [ 'ping_status', post.ping_status ] : false,\n\t\t\tpost.sticky ? [ 'sticky', post.sticky ] : false,\n\t\t\tpost.author ? [ 'post_author', post.author ] : false,\n\t\t].filter( Boolean );\n\n\t\t// We gather all the metaboxes locations data and the base form data.\n\t\tconst baseFormData = new window.FormData(\n\t\t\tdocument.querySelector( '.metabox-base-form' )\n\t\t);\n\t\tconst activeMetaBoxLocations = select.getActiveMetaBoxLocations();\n\t\tconst formDataToMerge = [\n\t\t\tbaseFormData,\n\t\t\t...activeMetaBoxLocations.map(\n\t\t\t\t( location ) =>\n\t\t\t\t\tnew window.FormData( getMetaBoxContainer( location ) )\n\t\t\t),\n\t\t];\n\n\t\t// Merge all form data objects into a single one.\n\t\tconst formData = reduce(\n\t\t\tformDataToMerge,\n\t\t\t( memo, currentFormData ) => {\n\t\t\t\tfor ( const [ key, value ] of currentFormData ) {\n\t\t\t\t\tmemo.append( key, value );\n\t\t\t\t}\n\t\t\t\treturn memo;\n\t\t\t},\n\t\t\tnew window.FormData()\n\t\t);\n\t\tadditionalData.forEach( ( [ key, value ] ) =>\n\t\t\tformData.append( key, value )\n\t\t);\n\n\t\ttry {\n\t\t\t// Save the metaboxes.\n\t\t\tawait apiFetch( {\n\t\t\t\turl: window._wpMetaBoxUrl,\n\t\t\t\tmethod: 'POST',\n\t\t\t\tbody: formData,\n\t\t\t\tparse: false,\n\t\t\t} );\n\t\t\tdispatch.metaBoxUpdatesSuccess();\n\t\t} catch {\n\t\t\tdispatch.metaBoxUpdatesFailure();\n\t\t}\n\t};\n\n/**\n * Returns an action object used to signal a successful meta box update.\n *\n * @return {Object} Action object.\n */\nexport function metaBoxUpdatesSuccess() {\n\treturn {\n\t\ttype: 'META_BOX_UPDATES_SUCCESS',\n\t};\n}\n\n/**\n * Returns an action object used to signal a failed meta box update.\n *\n * @return {Object} Action object.\n */\nexport function metaBoxUpdatesFailure() {\n\treturn {\n\t\ttype: 'META_BOX_UPDATES_FAILURE',\n\t};\n}\n\n/**\n * Returns an action object used to toggle the width of the editing canvas.\n *\n * @param {string} deviceType\n *\n * @return {Object} Action object.\n */\nexport function __experimentalSetPreviewDeviceType( deviceType ) {\n\treturn {\n\t\ttype: 'SET_PREVIEW_DEVICE_TYPE',\n\t\tdeviceType,\n\t};\n}\n\n/**\n * Returns an action object used to open/close the inserter.\n *\n * @param {boolean|Object} value Whether the inserter should be\n * opened (true) or closed (false).\n * To specify an insertion point,\n * use an object.\n * @param {string} value.rootClientId The root client ID to insert at.\n * @param {number} value.insertionIndex The index to insert at.\n *\n * @return {Object} Action object.\n */\nexport function setIsInserterOpened( value ) {\n\treturn {\n\t\ttype: 'SET_IS_INSERTER_OPENED',\n\t\tvalue,\n\t};\n}\n\n/**\n * Returns an action object used to open/close the list view.\n *\n * @param {boolean} isOpen A boolean representing whether the list view should be opened or closed.\n * @return {Object} Action object.\n */\nexport function setIsListViewOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_LIST_VIEW_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Returns an action object used to switch to template editing.\n *\n * @param {boolean} value Is editing template.\n * @return {Object} Action object.\n */\nexport function setIsEditingTemplate( value ) {\n\treturn {\n\t\ttype: 'SET_IS_EDITING_TEMPLATE',\n\t\tvalue,\n\t};\n}\n\n/**\n * Switches to the template mode.\n *\n * @param {boolean} newTemplate Is new template.\n */\nexport const __unstableSwitchToTemplateMode =\n\t( newTemplate = false ) =>\n\t( { registry, select, dispatch } ) => {\n\t\tdispatch( setIsEditingTemplate( true ) );\n\t\tconst isWelcomeGuideActive = select.isFeatureActive(\n\t\t\t'welcomeGuideTemplate'\n\t\t);\n\t\tif ( ! isWelcomeGuideActive ) {\n\t\t\tconst message = newTemplate\n\t\t\t\t? __( \"Custom template created. You're in template mode now.\" )\n\t\t\t\t: __(\n\t\t\t\t\t\t'Editing template. Changes made here affect all posts and pages that use the template.'\n\t\t\t\t );\n\t\t\tregistry.dispatch( noticesStore ).createSuccessNotice( message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t}\n\t};\n\n/**\n * Create a block based template.\n *\n * @param {Object?} template Template to create and assign.\n */\nexport const __unstableCreateTemplate =\n\t( template ) =>\n\tasync ( { registry } ) => {\n\t\tconst savedTemplate = await registry\n\t\t\t.dispatch( coreStore )\n\t\t\t.saveEntityRecord( 'postType', 'wp_template', template );\n\t\tconst post = registry.select( editorStore ).getCurrentPost();\n\t\tregistry\n\t\t\t.dispatch( coreStore )\n\t\t\t.editEntityRecord( 'postType', post.type, post.id, {\n\t\t\t\ttemplate: savedTemplate.slug,\n\t\t\t} );\n\t};\n\nlet metaBoxesInitialized = false;\n\n/**\n * Initializes WordPress `postboxes` script and the logic for saving meta boxes.\n */\nexport const initializeMetaBoxes =\n\t() =>\n\t( { registry, select, dispatch } ) => {\n\t\tconst isEditorReady = registry\n\t\t\t.select( editorStore )\n\t\t\t.__unstableIsEditorReady();\n\n\t\tif ( ! isEditorReady ) {\n\t\t\treturn;\n\t\t}\n\t\t// Only initialize once.\n\t\tif ( metaBoxesInitialized ) {\n\t\t\treturn;\n\t\t}\n\t\tconst postType = registry.select( editorStore ).getCurrentPostType();\n\t\tif ( window.postboxes.page !== postType ) {\n\t\t\twindow.postboxes.add_postbox_toggles( postType );\n\t\t}\n\n\t\tmetaBoxesInitialized = true;\n\n\t\tlet wasSavingPost = registry.select( editorStore ).isSavingPost();\n\t\tlet wasAutosavingPost = registry\n\t\t\t.select( editorStore )\n\t\t\t.isAutosavingPost();\n\n\t\t// Save metaboxes when performing a full save on the post.\n\t\tregistry.subscribe( async () => {\n\t\t\tconst isSavingPost = registry.select( editorStore ).isSavingPost();\n\t\t\tconst isAutosavingPost = registry\n\t\t\t\t.select( editorStore )\n\t\t\t\t.isAutosavingPost();\n\n\t\t\t// Save metaboxes on save completion, except for autosaves.\n\t\t\tconst shouldTriggerMetaboxesSave =\n\t\t\t\twasSavingPost &&\n\t\t\t\t! wasAutosavingPost &&\n\t\t\t\t! isSavingPost &&\n\t\t\t\tselect.hasMetaBoxes();\n\n\t\t\t// Save current state for next inspection.\n\t\t\twasSavingPost = isSavingPost;\n\t\t\twasAutosavingPost = isAutosavingPost;\n\n\t\t\tif ( shouldTriggerMetaboxesSave ) {\n\t\t\t\tawait dispatch.requestMetaBoxUpdates();\n\t\t\t}\n\t\t} );\n\n\t\tdispatch( {\n\t\t\ttype: 'META_BOXES_INITIALIZED',\n\t\t} );\n\t};\n"]}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { includes } from 'lodash';
|
|
5
1
|
/**
|
|
6
2
|
* WordPress dependencies
|
|
7
3
|
*/
|
|
8
|
-
|
|
9
4
|
import { combineReducers } from '@wordpress/data';
|
|
10
5
|
/**
|
|
11
6
|
* Reducer storing the list of all programmatically removed panels.
|
|
@@ -22,7 +17,7 @@ export function removedPanels() {
|
|
|
22
17
|
|
|
23
18
|
switch (action.type) {
|
|
24
19
|
case 'REMOVE_PANEL':
|
|
25
|
-
if (!includes(
|
|
20
|
+
if (!state.includes(action.panelName)) {
|
|
26
21
|
return [...state, action.panelName];
|
|
27
22
|
}
|
|
28
23
|
|
|
@@ -97,6 +92,24 @@ export function isSavingMetaBoxes() {
|
|
|
97
92
|
return state;
|
|
98
93
|
}
|
|
99
94
|
}
|
|
95
|
+
|
|
96
|
+
function mergeMetaboxes() {
|
|
97
|
+
let metaboxes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
98
|
+
let newMetaboxes = arguments.length > 1 ? arguments[1] : undefined;
|
|
99
|
+
const mergedMetaboxes = [...metaboxes];
|
|
100
|
+
|
|
101
|
+
for (const metabox of newMetaboxes) {
|
|
102
|
+
const existing = mergedMetaboxes.findIndex(box => box.id === metabox.id);
|
|
103
|
+
|
|
104
|
+
if (existing !== -1) {
|
|
105
|
+
mergedMetaboxes[existing] = metabox;
|
|
106
|
+
} else {
|
|
107
|
+
mergedMetaboxes.push(metabox);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return mergedMetaboxes;
|
|
112
|
+
}
|
|
100
113
|
/**
|
|
101
114
|
* Reducer keeping track of the meta boxes per location.
|
|
102
115
|
*
|
|
@@ -106,13 +119,23 @@ export function isSavingMetaBoxes() {
|
|
|
106
119
|
* @return {Object} Updated state.
|
|
107
120
|
*/
|
|
108
121
|
|
|
122
|
+
|
|
109
123
|
export function metaBoxLocations() {
|
|
110
124
|
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
111
125
|
let action = arguments.length > 1 ? arguments[1] : undefined;
|
|
112
126
|
|
|
113
127
|
switch (action.type) {
|
|
114
128
|
case 'SET_META_BOXES_PER_LOCATIONS':
|
|
115
|
-
|
|
129
|
+
{
|
|
130
|
+
const newState = { ...state
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
for (const [location, metaboxes] of Object.entries(action.metaBoxesPerLocation)) {
|
|
134
|
+
newState[location] = mergeMetaboxes(newState[location], metaboxes);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return newState;
|
|
138
|
+
}
|
|
116
139
|
}
|
|
117
140
|
|
|
118
141
|
return state;
|