@wordpress/customize-widgets 5.32.0 → 5.32.1-next.ff1cebbba.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/build/components/block-appender/index.js +33 -27
- package/build/components/block-appender/index.js.map +7 -1
- package/build/components/block-inspector-button/index.js +51 -36
- package/build/components/block-inspector-button/index.js.map +7 -1
- package/build/components/customize-widgets/index.js +83 -61
- package/build/components/customize-widgets/index.js.map +7 -1
- package/build/components/customize-widgets/use-clear-selected-block.js +56 -63
- package/build/components/customize-widgets/use-clear-selected-block.js.map +7 -1
- package/build/components/error-boundary/index.js +46 -45
- package/build/components/error-boundary/index.js.map +7 -1
- package/build/components/focus-control/index.js +69 -57
- package/build/components/focus-control/index.js.map +7 -1
- package/build/components/focus-control/use-blocks-focus-control.js +38 -31
- package/build/components/focus-control/use-blocks-focus-control.js.map +7 -1
- package/build/components/header/index.js +110 -71
- package/build/components/header/index.js.map +7 -1
- package/build/components/inserter/index.js +77 -53
- package/build/components/inserter/index.js.map +7 -1
- package/build/components/inserter/use-inserter.js +46 -29
- package/build/components/inserter/use-inserter.js.map +7 -1
- package/build/components/keyboard-shortcut-help-modal/config.js +74 -71
- package/build/components/keyboard-shortcut-help-modal/config.js.map +7 -1
- package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +61 -44
- package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +7 -1
- package/build/components/keyboard-shortcut-help-modal/index.js +155 -110
- package/build/components/keyboard-shortcut-help-modal/index.js.map +7 -1
- package/build/components/keyboard-shortcut-help-modal/shortcut.js +76 -56
- package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +7 -1
- package/build/components/keyboard-shortcuts/index.js +60 -51
- package/build/components/keyboard-shortcuts/index.js.map +7 -1
- package/build/components/more-menu/index.js +151 -90
- package/build/components/more-menu/index.js.map +7 -1
- package/build/components/sidebar-block-editor/index.js +133 -105
- package/build/components/sidebar-block-editor/index.js.map +7 -1
- package/build/components/sidebar-block-editor/sidebar-adapter.js +73 -67
- package/build/components/sidebar-block-editor/sidebar-adapter.js.map +7 -1
- package/build/components/sidebar-block-editor/sidebar-editor-provider.js +51 -33
- package/build/components/sidebar-block-editor/sidebar-editor-provider.js.map +7 -1
- package/build/components/sidebar-block-editor/use-sidebar-block-editor.js +100 -79
- package/build/components/sidebar-block-editor/use-sidebar-block-editor.js.map +7 -1
- package/build/components/sidebar-controls/index.js +45 -31
- package/build/components/sidebar-controls/index.js.map +7 -1
- package/build/components/welcome-guide/index.js +86 -58
- package/build/components/welcome-guide/index.js.map +7 -1
- package/build/controls/inserter-outer-section.js +49 -58
- package/build/controls/inserter-outer-section.js.map +7 -1
- package/build/controls/inspector-section.js +30 -36
- package/build/controls/inspector-section.js.map +7 -1
- package/build/controls/sidebar-control.js +51 -30
- package/build/controls/sidebar-control.js.map +7 -1
- package/build/controls/sidebar-section.js +71 -39
- package/build/controls/sidebar-section.js.map +7 -1
- package/build/filters/index.js +4 -6
- package/build/filters/index.js.map +7 -1
- package/build/filters/move-to-sidebar.js +77 -79
- package/build/filters/move-to-sidebar.js.map +7 -1
- package/build/filters/replace-media-upload.js +9 -11
- package/build/filters/replace-media-upload.js.map +7 -1
- package/build/filters/wide-widget-display.js +20 -25
- package/build/filters/wide-widget-display.js.map +7 -1
- package/build/index.js +81 -70
- package/build/index.js.map +7 -1
- package/build/lock-unlock.js +31 -15
- package/build/lock-unlock.js.map +7 -1
- package/build/store/actions.js +27 -44
- package/build/store/actions.js.map +7 -1
- package/build/store/constants.js +27 -10
- package/build/store/constants.js.map +7 -1
- package/build/store/index.js +44 -40
- package/build/store/index.js.map +7 -1
- package/build/store/reducer.js +25 -19
- package/build/store/reducer.js.map +7 -1
- package/build/store/selectors.js +31 -44
- package/build/store/selectors.js.map +7 -1
- package/build/utils.js +45 -73
- package/build/utils.js.map +7 -1
- package/build-module/components/block-appender/index.js +17 -20
- package/build-module/components/block-appender/index.js.map +7 -1
- package/build-module/components/block-inspector-button/index.js +33 -30
- package/build-module/components/block-inspector-button/index.js.map +7 -1
- package/build-module/components/customize-widgets/index.js +52 -51
- package/build-module/components/customize-widgets/index.js.map +7 -1
- package/build-module/components/customize-widgets/use-clear-selected-block.js +38 -58
- package/build-module/components/customize-widgets/use-clear-selected-block.js.map +7 -1
- package/build-module/components/error-boundary/index.js +27 -37
- package/build-module/components/error-boundary/index.js.map +7 -1
- package/build-module/components/focus-control/index.js +50 -45
- package/build-module/components/focus-control/index.js.map +7 -1
- package/build-module/components/focus-control/use-blocks-focus-control.js +17 -22
- package/build-module/components/focus-control/use-blocks-focus-control.js.map +7 -1
- package/build-module/components/header/index.js +81 -63
- package/build-module/components/header/index.js.map +7 -1
- package/build-module/components/inserter/index.js +59 -47
- package/build-module/components/inserter/index.js.map +7 -1
- package/build-module/components/inserter/use-inserter.js +28 -23
- package/build-module/components/inserter/use-inserter.js.map +7 -1
- package/build-module/components/keyboard-shortcut-help-modal/config.js +62 -75
- package/build-module/components/keyboard-shortcut-help-modal/config.js.map +7 -1
- package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +33 -37
- package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +7 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js +130 -103
- package/build-module/components/keyboard-shortcut-help-modal/index.js.map +7 -1
- package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +58 -50
- package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +7 -1
- package/build-module/components/keyboard-shortcuts/index.js +44 -44
- package/build-module/components/keyboard-shortcuts/index.js.map +7 -1
- package/build-module/components/more-menu/index.js +129 -84
- package/build-module/components/more-menu/index.js.map +7 -1
- package/build-module/components/sidebar-block-editor/index.js +109 -96
- package/build-module/components/sidebar-block-editor/index.js.map +7 -1
- package/build-module/components/sidebar-block-editor/sidebar-adapter.js +54 -59
- package/build-module/components/sidebar-block-editor/sidebar-adapter.js.map +7 -1
- package/build-module/components/sidebar-block-editor/sidebar-editor-provider.js +22 -25
- package/build-module/components/sidebar-block-editor/sidebar-editor-provider.js.map +7 -1
- package/build-module/components/sidebar-block-editor/use-sidebar-block-editor.js +70 -70
- package/build-module/components/sidebar-block-editor/use-sidebar-block-editor.js.map +7 -1
- package/build-module/components/sidebar-controls/index.js +24 -25
- package/build-module/components/sidebar-controls/index.js.map +7 -1
- package/build-module/components/welcome-guide/index.js +68 -52
- package/build-module/components/welcome-guide/index.js.map +7 -1
- package/build-module/controls/inserter-outer-section.js +31 -52
- package/build-module/controls/inserter-outer-section.js.map +7 -1
- package/build-module/controls/inspector-section.js +13 -32
- package/build-module/controls/inspector-section.js.map +7 -1
- package/build-module/controls/sidebar-control.js +22 -22
- package/build-module/controls/sidebar-control.js.map +7 -1
- package/build-module/controls/sidebar-section.js +43 -32
- package/build-module/controls/sidebar-section.js.map +7 -1
- package/build-module/filters/index.js +4 -7
- package/build-module/filters/index.js.map +7 -1
- package/build-module/filters/move-to-sidebar.js +83 -76
- package/build-module/filters/move-to-sidebar.js.map +7 -1
- package/build-module/filters/replace-media-upload.js +8 -7
- package/build-module/filters/replace-media-upload.js.map +7 -1
- package/build-module/filters/wide-widget-display.js +20 -22
- package/build-module/filters/wide-widget-display.js.map +7 -1
- package/build-module/index.js +53 -51
- package/build-module/index.js.map +7 -1
- package/build-module/lock-unlock.js +8 -7
- package/build-module/lock-unlock.js.map +7 -1
- package/build-module/store/actions.js +6 -40
- package/build-module/store/actions.js.map +7 -1
- package/build-module/store/constants.js +5 -5
- package/build-module/store/constants.js.map +7 -1
- package/build-module/store/index.js +10 -30
- package/build-module/store/index.js.map +7 -1
- package/build-module/store/reducer.js +7 -14
- package/build-module/store/reducer.js.map +7 -1
- package/build-module/store/selectors.js +10 -40
- package/build-module/store/selectors.js.map +7 -1
- package/build-module/utils.js +21 -66
- package/build-module/utils.js.map +7 -1
- package/build-style/style-rtl.css +14 -149
- package/build-style/style.css +14 -149
- package/package.json +30 -23
- package/src/components/block-inspector-button/style.scss +3 -0
- package/src/components/header/style.scss +5 -0
- package/src/components/inserter/style.scss +3 -0
- package/src/components/keyboard-shortcut-help-modal/style.scss +2 -0
- package/src/components/more-menu/style.scss +2 -0
- package/src/components/sidebar-block-editor/style.scss +2 -0
- package/src/components/welcome-guide/style.scss +2 -0
- package/src/controls/style.scss +2 -0
- package/src/style.scss +10 -8
|
@@ -1,73 +1,71 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
import BlockInspectorButton from
|
|
17
|
-
import Header from
|
|
18
|
-
import useInserter from
|
|
19
|
-
import SidebarEditorProvider from
|
|
20
|
-
import WelcomeGuide from
|
|
21
|
-
import KeyboardShortcuts from
|
|
22
|
-
import BlockAppender from
|
|
23
|
-
import { unlock } from
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
} = unlock(
|
|
28
|
-
|
|
29
|
-
BlockKeyboardShortcuts
|
|
30
|
-
} = unlock(blockLibraryPrivateApis);
|
|
31
|
-
export default function SidebarBlockEditor({
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useViewportMatch } from "@wordpress/compose";
|
|
3
|
+
import { store as coreStore } from "@wordpress/core-data";
|
|
4
|
+
import { useSelect } from "@wordpress/data";
|
|
5
|
+
import { useMemo, createPortal } from "@wordpress/element";
|
|
6
|
+
import {
|
|
7
|
+
BlockList,
|
|
8
|
+
BlockToolbar,
|
|
9
|
+
BlockInspector,
|
|
10
|
+
privateApis as blockEditorPrivateApis,
|
|
11
|
+
__unstableBlockSettingsMenuFirstItem
|
|
12
|
+
} from "@wordpress/block-editor";
|
|
13
|
+
import { uploadMedia } from "@wordpress/media-utils";
|
|
14
|
+
import { store as preferencesStore } from "@wordpress/preferences";
|
|
15
|
+
import { privateApis as blockLibraryPrivateApis } from "@wordpress/block-library";
|
|
16
|
+
import BlockInspectorButton from "../block-inspector-button";
|
|
17
|
+
import Header from "../header";
|
|
18
|
+
import useInserter from "../inserter/use-inserter";
|
|
19
|
+
import SidebarEditorProvider from "./sidebar-editor-provider";
|
|
20
|
+
import WelcomeGuide from "../welcome-guide";
|
|
21
|
+
import KeyboardShortcuts from "../keyboard-shortcuts";
|
|
22
|
+
import BlockAppender from "../block-appender";
|
|
23
|
+
import { unlock } from "../../lock-unlock";
|
|
24
|
+
const { ExperimentalBlockCanvas: BlockCanvas } = unlock(
|
|
25
|
+
blockEditorPrivateApis
|
|
26
|
+
);
|
|
27
|
+
const { BlockKeyboardShortcuts } = unlock(blockLibraryPrivateApis);
|
|
28
|
+
function SidebarBlockEditor({
|
|
32
29
|
blockEditorSettings,
|
|
33
30
|
sidebar,
|
|
34
31
|
inserter,
|
|
35
32
|
inspector
|
|
36
33
|
}) {
|
|
37
34
|
const [isInserterOpened, setIsInserterOpened] = useInserter(inserter);
|
|
38
|
-
const isMediumViewport = useViewportMatch(
|
|
35
|
+
const isMediumViewport = useViewportMatch("small");
|
|
39
36
|
const {
|
|
40
37
|
hasUploadPermissions,
|
|
41
38
|
isFixedToolbarActive,
|
|
42
39
|
keepCaretInsideBlock,
|
|
43
40
|
isWelcomeGuideActive
|
|
44
|
-
} = useSelect(select => {
|
|
45
|
-
|
|
46
|
-
const {
|
|
47
|
-
get
|
|
48
|
-
} = select(preferencesStore);
|
|
41
|
+
} = useSelect((select) => {
|
|
42
|
+
const { get } = select(preferencesStore);
|
|
49
43
|
return {
|
|
50
|
-
hasUploadPermissions:
|
|
51
|
-
kind:
|
|
52
|
-
name:
|
|
53
|
-
})
|
|
54
|
-
isFixedToolbarActive: !!get(
|
|
55
|
-
|
|
56
|
-
|
|
44
|
+
hasUploadPermissions: select(coreStore).canUser("create", {
|
|
45
|
+
kind: "postType",
|
|
46
|
+
name: "attachment"
|
|
47
|
+
}) ?? true,
|
|
48
|
+
isFixedToolbarActive: !!get(
|
|
49
|
+
"core/customize-widgets",
|
|
50
|
+
"fixedToolbar"
|
|
51
|
+
),
|
|
52
|
+
keepCaretInsideBlock: !!get(
|
|
53
|
+
"core/customize-widgets",
|
|
54
|
+
"keepCaretInsideBlock"
|
|
55
|
+
),
|
|
56
|
+
isWelcomeGuideActive: !!get(
|
|
57
|
+
"core/customize-widgets",
|
|
58
|
+
"welcomeGuide"
|
|
59
|
+
)
|
|
57
60
|
};
|
|
58
61
|
}, []);
|
|
59
62
|
const settings = useMemo(() => {
|
|
60
63
|
let mediaUploadBlockEditor;
|
|
61
64
|
if (hasUploadPermissions) {
|
|
62
|
-
mediaUploadBlockEditor = ({
|
|
63
|
-
onError,
|
|
64
|
-
...argumentsObject
|
|
65
|
-
}) => {
|
|
65
|
+
mediaUploadBlockEditor = ({ onError, ...argumentsObject }) => {
|
|
66
66
|
uploadMedia({
|
|
67
67
|
wpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,
|
|
68
|
-
onError: ({
|
|
69
|
-
message
|
|
70
|
-
}) => onError(message),
|
|
68
|
+
onError: ({ message }) => onError(message),
|
|
71
69
|
...argumentsObject
|
|
72
70
|
});
|
|
73
71
|
};
|
|
@@ -78,54 +76,69 @@ export default function SidebarBlockEditor({
|
|
|
78
76
|
mediaUpload: mediaUploadBlockEditor,
|
|
79
77
|
hasFixedToolbar: isFixedToolbarActive || !isMediumViewport,
|
|
80
78
|
keepCaretInsideBlock,
|
|
81
|
-
editorTool:
|
|
79
|
+
editorTool: "edit",
|
|
82
80
|
__unstableHasCustomAppender: true
|
|
83
81
|
};
|
|
84
|
-
}, [
|
|
82
|
+
}, [
|
|
83
|
+
hasUploadPermissions,
|
|
84
|
+
blockEditorSettings,
|
|
85
|
+
isFixedToolbarActive,
|
|
86
|
+
isMediumViewport,
|
|
87
|
+
keepCaretInsideBlock,
|
|
88
|
+
setIsInserterOpened
|
|
89
|
+
]);
|
|
85
90
|
if (isWelcomeGuideActive) {
|
|
86
|
-
return
|
|
87
|
-
sidebar: sidebar
|
|
88
|
-
});
|
|
91
|
+
return /* @__PURE__ */ jsx(WelcomeGuide, { sidebar });
|
|
89
92
|
}
|
|
90
|
-
return
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
93
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
94
|
+
/* @__PURE__ */ jsx(KeyboardShortcuts.Register, {}),
|
|
95
|
+
/* @__PURE__ */ jsx(BlockKeyboardShortcuts, {}),
|
|
96
|
+
/* @__PURE__ */ jsxs(SidebarEditorProvider, { sidebar, settings, children: [
|
|
97
|
+
/* @__PURE__ */ jsx(
|
|
98
|
+
KeyboardShortcuts,
|
|
99
|
+
{
|
|
100
|
+
undo: sidebar.undo,
|
|
101
|
+
redo: sidebar.redo,
|
|
102
|
+
save: sidebar.save
|
|
103
|
+
}
|
|
104
|
+
),
|
|
105
|
+
/* @__PURE__ */ jsx(
|
|
106
|
+
Header,
|
|
107
|
+
{
|
|
108
|
+
sidebar,
|
|
109
|
+
inserter,
|
|
110
|
+
isInserterOpened,
|
|
111
|
+
setIsInserterOpened,
|
|
112
|
+
isFixedToolbarActive: isFixedToolbarActive || !isMediumViewport
|
|
113
|
+
}
|
|
114
|
+
),
|
|
115
|
+
(isFixedToolbarActive || !isMediumViewport) && /* @__PURE__ */ jsx(BlockToolbar, { hideDragHandle: true }),
|
|
116
|
+
/* @__PURE__ */ jsx(
|
|
117
|
+
BlockCanvas,
|
|
118
|
+
{
|
|
119
|
+
shouldIframe: false,
|
|
120
|
+
styles: settings.defaultEditorStyles,
|
|
121
|
+
height: "100%",
|
|
122
|
+
children: /* @__PURE__ */ jsx(BlockList, { renderAppender: BlockAppender })
|
|
123
|
+
}
|
|
124
|
+
),
|
|
125
|
+
createPortal(
|
|
126
|
+
// This is a temporary hack to prevent button component inside <BlockInspector>
|
|
127
|
+
// from submitting form when type="button" is not specified.
|
|
128
|
+
/* @__PURE__ */ jsx("form", { onSubmit: (event) => event.preventDefault(), children: /* @__PURE__ */ jsx(BlockInspector, {}) }),
|
|
129
|
+
inspector.contentContainer[0]
|
|
130
|
+
)
|
|
131
|
+
] }),
|
|
132
|
+
/* @__PURE__ */ jsx(__unstableBlockSettingsMenuFirstItem, { children: ({ onClose }) => /* @__PURE__ */ jsx(
|
|
133
|
+
BlockInspectorButton,
|
|
134
|
+
{
|
|
135
|
+
inspector,
|
|
126
136
|
closeMenu: onClose
|
|
127
|
-
}
|
|
128
|
-
})
|
|
129
|
-
});
|
|
137
|
+
}
|
|
138
|
+
) })
|
|
139
|
+
] });
|
|
130
140
|
}
|
|
131
|
-
|
|
141
|
+
export {
|
|
142
|
+
SidebarBlockEditor as default
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/sidebar-block-editor/index.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, createPortal } from '@wordpress/element';\nimport {\n\tBlockList,\n\tBlockToolbar,\n\tBlockInspector,\n\tprivateApis as blockEditorPrivateApis,\n\t__unstableBlockSettingsMenuFirstItem,\n} from '@wordpress/block-editor';\nimport { uploadMedia } from '@wordpress/media-utils';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { privateApis as blockLibraryPrivateApis } from '@wordpress/block-library';\n\n/**\n * Internal dependencies\n */\nimport BlockInspectorButton from '../block-inspector-button';\nimport Header from '../header';\nimport useInserter from '../inserter/use-inserter';\nimport SidebarEditorProvider from './sidebar-editor-provider';\nimport WelcomeGuide from '../welcome-guide';\nimport KeyboardShortcuts from '../keyboard-shortcuts';\nimport BlockAppender from '../block-appender';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockCanvas: BlockCanvas } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst { BlockKeyboardShortcuts } = unlock( blockLibraryPrivateApis );\n\nexport default function SidebarBlockEditor( {\n\tblockEditorSettings,\n\tsidebar,\n\tinserter,\n\tinspector,\n} ) {\n\tconst [ isInserterOpened, setIsInserterOpened ] = useInserter( inserter );\n\tconst isMediumViewport = useViewportMatch( 'small' );\n\tconst {\n\t\thasUploadPermissions,\n\t\tisFixedToolbarActive,\n\t\tkeepCaretInsideBlock,\n\t\tisWelcomeGuideActive,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\treturn {\n\t\t\thasUploadPermissions:\n\t\t\t\tselect( coreStore ).canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'attachment',\n\t\t\t\t} ) ?? true,\n\t\t\tisFixedToolbarActive: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tkeepCaretInsideBlock: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'keepCaretInsideBlock'\n\t\t\t),\n\t\t\tisWelcomeGuideActive: !! get(\n\t\t\t\t'core/customize-widgets',\n\t\t\t\t'welcomeGuide'\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst settings = useMemo( () => {\n\t\tlet mediaUploadBlockEditor;\n\t\tif ( hasUploadPermissions ) {\n\t\t\tmediaUploadBlockEditor = ( { onError, ...argumentsObject } ) => {\n\t\t\t\tuploadMedia( {\n\t\t\t\t\twpAllowedMimeTypes: blockEditorSettings.allowedMimeTypes,\n\t\t\t\t\tonError: ( { message } ) => onError( message ),\n\t\t\t\t\t...argumentsObject,\n\t\t\t\t} );\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t...blockEditorSettings,\n\t\t\t__experimentalSetIsInserterOpened: setIsInserterOpened,\n\t\t\tmediaUpload: mediaUploadBlockEditor,\n\t\t\thasFixedToolbar: isFixedToolbarActive || ! isMediumViewport,\n\t\t\tkeepCaretInsideBlock,\n\t\t\teditorTool: 'edit',\n\t\t\t__unstableHasCustomAppender: true,\n\t\t};\n\t}, [\n\t\thasUploadPermissions,\n\t\tblockEditorSettings,\n\t\tisFixedToolbarActive,\n\t\tisMediumViewport,\n\t\tkeepCaretInsideBlock,\n\t\tsetIsInserterOpened,\n\t] );\n\n\tif ( isWelcomeGuideActive ) {\n\t\treturn <WelcomeGuide sidebar={ sidebar } />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<KeyboardShortcuts.Register />\n\t\t\t<BlockKeyboardShortcuts />\n\n\t\t\t<SidebarEditorProvider sidebar={ sidebar } settings={ settings }>\n\t\t\t\t<KeyboardShortcuts\n\t\t\t\t\tundo={ sidebar.undo }\n\t\t\t\t\tredo={ sidebar.redo }\n\t\t\t\t\tsave={ sidebar.save }\n\t\t\t\t/>\n\n\t\t\t\t<Header\n\t\t\t\t\tsidebar={ sidebar }\n\t\t\t\t\tinserter={ inserter }\n\t\t\t\t\tisInserterOpened={ isInserterOpened }\n\t\t\t\t\tsetIsInserterOpened={ setIsInserterOpened }\n\t\t\t\t\tisFixedToolbarActive={\n\t\t\t\t\t\tisFixedToolbarActive || ! isMediumViewport\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ ( isFixedToolbarActive || ! isMediumViewport ) && (\n\t\t\t\t\t<BlockToolbar hideDragHandle />\n\t\t\t\t) }\n\t\t\t\t<BlockCanvas\n\t\t\t\t\tshouldIframe={ false }\n\t\t\t\t\tstyles={ settings.defaultEditorStyles }\n\t\t\t\t\theight=\"100%\"\n\t\t\t\t>\n\t\t\t\t\t<BlockList renderAppender={ BlockAppender } />\n\t\t\t\t</BlockCanvas>\n\n\t\t\t\t{ createPortal(\n\t\t\t\t\t// This is a temporary hack to prevent button component inside <BlockInspector>\n\t\t\t\t\t// from submitting form when type=\"button\" is not specified.\n\t\t\t\t\t<form onSubmit={ ( event ) => event.preventDefault() }>\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t</form>,\n\t\t\t\t\tinspector.contentContainer[ 0 ]\n\t\t\t\t) }\n\t\t\t</SidebarEditorProvider>\n\n\t\t\t<__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<BlockInspectorButton\n\t\t\t\t\t\tinspector={ inspector }\n\t\t\t\t\t\tcloseMenu={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</__unstableBlockSettingsMenuFirstItem>\n\t\t</>\n\t);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*/
|
|
4
|
-
import { settingIdToWidgetId } from '../../utils';
|
|
5
|
-
const {
|
|
6
|
-
wp
|
|
7
|
-
} = window;
|
|
1
|
+
import { settingIdToWidgetId } from "../../utils";
|
|
2
|
+
const { wp } = window;
|
|
8
3
|
function parseWidgetId(widgetId) {
|
|
9
4
|
const matches = widgetId.match(/^(.+)-(\d+)$/);
|
|
10
5
|
if (matches) {
|
|
@@ -13,32 +8,15 @@ function parseWidgetId(widgetId) {
|
|
|
13
8
|
number: parseInt(matches[2], 10)
|
|
14
9
|
};
|
|
15
10
|
}
|
|
16
|
-
|
|
17
|
-
// Likely an old single widget.
|
|
18
|
-
return {
|
|
19
|
-
idBase: widgetId
|
|
20
|
-
};
|
|
11
|
+
return { idBase: widgetId };
|
|
21
12
|
}
|
|
22
13
|
function widgetIdToSettingId(widgetId) {
|
|
23
|
-
const {
|
|
24
|
-
idBase,
|
|
25
|
-
number
|
|
26
|
-
} = parseWidgetId(widgetId);
|
|
14
|
+
const { idBase, number } = parseWidgetId(widgetId);
|
|
27
15
|
if (number) {
|
|
28
16
|
return `widget_${idBase}[${number}]`;
|
|
29
17
|
}
|
|
30
18
|
return `widget_${idBase}`;
|
|
31
19
|
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* This is a custom debounce function to call different callbacks depending on
|
|
35
|
-
* whether it's the _leading_ call or not.
|
|
36
|
-
*
|
|
37
|
-
* @param {Function} leading The callback that gets called first.
|
|
38
|
-
* @param {Function} callback The callback that gets called after the first time.
|
|
39
|
-
* @param {number} timeout The debounced time in milliseconds.
|
|
40
|
-
* @return {Function} The debounced function.
|
|
41
|
-
*/
|
|
42
20
|
function debounce(leading, callback, timeout) {
|
|
43
21
|
let isLeading = false;
|
|
44
22
|
let timerID;
|
|
@@ -57,20 +35,27 @@ function debounce(leading, callback, timeout) {
|
|
|
57
35
|
};
|
|
58
36
|
return debounced;
|
|
59
37
|
}
|
|
60
|
-
|
|
38
|
+
class SidebarAdapter {
|
|
61
39
|
constructor(setting, api) {
|
|
62
40
|
this.setting = setting;
|
|
63
41
|
this.api = api;
|
|
64
42
|
this.locked = false;
|
|
65
|
-
this.widgetsCache = new WeakMap();
|
|
66
|
-
this.subscribers = new Set();
|
|
67
|
-
this.history = [
|
|
43
|
+
this.widgetsCache = /* @__PURE__ */ new WeakMap();
|
|
44
|
+
this.subscribers = /* @__PURE__ */ new Set();
|
|
45
|
+
this.history = [
|
|
46
|
+
this._getWidgetIds().map(
|
|
47
|
+
(widgetId) => this.getWidget(widgetId)
|
|
48
|
+
)
|
|
49
|
+
];
|
|
68
50
|
this.historyIndex = 0;
|
|
69
|
-
this.historySubscribers = new Set();
|
|
70
|
-
|
|
71
|
-
|
|
51
|
+
this.historySubscribers = /* @__PURE__ */ new Set();
|
|
52
|
+
this._debounceSetHistory = debounce(
|
|
53
|
+
this._pushHistory,
|
|
54
|
+
this._replaceHistory,
|
|
55
|
+
1e3
|
|
56
|
+
);
|
|
72
57
|
this.setting.bind(this._handleSettingChange.bind(this));
|
|
73
|
-
this.api.bind(
|
|
58
|
+
this.api.bind("change", this._handleAllSettingsChange.bind(this));
|
|
74
59
|
this.undo = this.undo.bind(this);
|
|
75
60
|
this.redo = this.redo.bind(this);
|
|
76
61
|
this.save = this.save.bind(this);
|
|
@@ -93,12 +78,19 @@ export default class SidebarAdapter {
|
|
|
93
78
|
return this.setting.get();
|
|
94
79
|
}
|
|
95
80
|
_pushHistory() {
|
|
96
|
-
this.history = [
|
|
81
|
+
this.history = [
|
|
82
|
+
...this.history.slice(0, this.historyIndex + 1),
|
|
83
|
+
this._getWidgetIds().map(
|
|
84
|
+
(widgetId) => this.getWidget(widgetId)
|
|
85
|
+
)
|
|
86
|
+
];
|
|
97
87
|
this.historyIndex += 1;
|
|
98
|
-
this.historySubscribers.forEach(listener => listener());
|
|
88
|
+
this.historySubscribers.forEach((listener) => listener());
|
|
99
89
|
}
|
|
100
90
|
_replaceHistory() {
|
|
101
|
-
this.history[this.historyIndex] = this._getWidgetIds().map(
|
|
91
|
+
this.history[this.historyIndex] = this._getWidgetIds().map(
|
|
92
|
+
(widgetId) => this.getWidget(widgetId)
|
|
93
|
+
);
|
|
102
94
|
}
|
|
103
95
|
_handleSettingChange() {
|
|
104
96
|
if (this.locked) {
|
|
@@ -112,7 +104,7 @@ export default class SidebarAdapter {
|
|
|
112
104
|
if (this.locked) {
|
|
113
105
|
return;
|
|
114
106
|
}
|
|
115
|
-
if (!setting.id.startsWith(
|
|
107
|
+
if (!setting.id.startsWith("widget_")) {
|
|
116
108
|
return;
|
|
117
109
|
}
|
|
118
110
|
const widgetId = settingIdToWidgetId(setting.id);
|
|
@@ -128,16 +120,24 @@ export default class SidebarAdapter {
|
|
|
128
120
|
id_base: widget.idBase
|
|
129
121
|
});
|
|
130
122
|
let number = widget.number;
|
|
131
|
-
if (widgetModel.get(
|
|
132
|
-
widgetModel.set(
|
|
133
|
-
|
|
123
|
+
if (widgetModel.get("is_multi") && !number) {
|
|
124
|
+
widgetModel.set(
|
|
125
|
+
"multi_number",
|
|
126
|
+
widgetModel.get("multi_number") + 1
|
|
127
|
+
);
|
|
128
|
+
number = widgetModel.get("multi_number");
|
|
134
129
|
}
|
|
135
130
|
const settingId = number ? `widget_${widget.idBase}[${number}]` : `widget_${widget.idBase}`;
|
|
136
131
|
const settingArgs = {
|
|
137
|
-
transport: wp.customize.Widgets.data.selectiveRefreshableWidgets[widgetModel.get(
|
|
132
|
+
transport: wp.customize.Widgets.data.selectiveRefreshableWidgets[widgetModel.get("id_base")] ? "postMessage" : "refresh",
|
|
138
133
|
previewer: this.setting.previewer
|
|
139
134
|
};
|
|
140
|
-
const setting = this.api.create(
|
|
135
|
+
const setting = this.api.create(
|
|
136
|
+
settingId,
|
|
137
|
+
settingId,
|
|
138
|
+
"",
|
|
139
|
+
settingArgs
|
|
140
|
+
);
|
|
141
141
|
setting.set(widget.instance);
|
|
142
142
|
const widgetId = settingIdToWidgetId(settingId);
|
|
143
143
|
return widgetId;
|
|
@@ -153,20 +153,14 @@ export default class SidebarAdapter {
|
|
|
153
153
|
}
|
|
154
154
|
_updateWidget(widget) {
|
|
155
155
|
const prevWidget = this.getWidget(widget.id);
|
|
156
|
-
|
|
157
|
-
// Bail out update if nothing changed.
|
|
158
156
|
if (prevWidget === widget) {
|
|
159
157
|
return widget.id;
|
|
160
158
|
}
|
|
161
|
-
|
|
162
|
-
// Update existing setting if only the widget's instance changed.
|
|
163
159
|
if (prevWidget.idBase && widget.idBase && prevWidget.idBase === widget.idBase) {
|
|
164
160
|
const settingId = widgetIdToSettingId(widget.id);
|
|
165
161
|
this.api(settingId).set(widget.instance);
|
|
166
162
|
return widget.id;
|
|
167
163
|
}
|
|
168
|
-
|
|
169
|
-
// Otherwise delete and re-create.
|
|
170
164
|
this._removeWidget(widget);
|
|
171
165
|
return this._createWidget(widget);
|
|
172
166
|
}
|
|
@@ -174,10 +168,7 @@ export default class SidebarAdapter {
|
|
|
174
168
|
if (!widgetId) {
|
|
175
169
|
return null;
|
|
176
170
|
}
|
|
177
|
-
const {
|
|
178
|
-
idBase,
|
|
179
|
-
number
|
|
180
|
-
} = parseWidgetId(widgetId);
|
|
171
|
+
const { idBase, number } = parseWidgetId(widgetId);
|
|
181
172
|
const settingId = widgetIdToSettingId(widgetId);
|
|
182
173
|
const setting = this.api(settingId);
|
|
183
174
|
if (!setting) {
|
|
@@ -199,7 +190,7 @@ export default class SidebarAdapter {
|
|
|
199
190
|
_updateWidgets(nextWidgets) {
|
|
200
191
|
this.locked = true;
|
|
201
192
|
const addedWidgetIds = [];
|
|
202
|
-
const nextWidgetIds = nextWidgets.map(nextWidget => {
|
|
193
|
+
const nextWidgetIds = nextWidgets.map((nextWidget) => {
|
|
203
194
|
if (nextWidget.id && this.getWidget(nextWidget.id)) {
|
|
204
195
|
addedWidgetIds.push(null);
|
|
205
196
|
return this._updateWidget(nextWidget);
|
|
@@ -208,8 +199,10 @@ export default class SidebarAdapter {
|
|
|
208
199
|
addedWidgetIds.push(widgetId);
|
|
209
200
|
return widgetId;
|
|
210
201
|
});
|
|
211
|
-
const deletedWidgets = this.getWidgets().filter(
|
|
212
|
-
|
|
202
|
+
const deletedWidgets = this.getWidgets().filter(
|
|
203
|
+
(widget) => !nextWidgetIds.includes(widget.id)
|
|
204
|
+
);
|
|
205
|
+
deletedWidgets.forEach((widget) => this._removeWidget(widget));
|
|
213
206
|
this.setting.set(nextWidgetIds);
|
|
214
207
|
this.locked = false;
|
|
215
208
|
return addedWidgetIds;
|
|
@@ -219,7 +212,6 @@ export default class SidebarAdapter {
|
|
|
219
212
|
this._debounceSetHistory();
|
|
220
213
|
return addedWidgetIds;
|
|
221
214
|
}
|
|
222
|
-
|
|
223
215
|
/**
|
|
224
216
|
* Undo/Redo related features
|
|
225
217
|
*/
|
|
@@ -235,7 +227,7 @@ export default class SidebarAdapter {
|
|
|
235
227
|
const widgets = this.history[this.historyIndex];
|
|
236
228
|
this._updateWidgets(widgets);
|
|
237
229
|
this._emit(currentWidgets, this.getWidgets());
|
|
238
|
-
this.historySubscribers.forEach(listener => listener());
|
|
230
|
+
this.historySubscribers.forEach((listener) => listener());
|
|
239
231
|
this._debounceSetHistory.cancel();
|
|
240
232
|
}
|
|
241
233
|
undo() {
|
|
@@ -260,4 +252,7 @@ export default class SidebarAdapter {
|
|
|
260
252
|
this.api.previewer.save();
|
|
261
253
|
}
|
|
262
254
|
}
|
|
263
|
-
|
|
255
|
+
export {
|
|
256
|
+
SidebarAdapter as default
|
|
257
|
+
};
|
|
258
|
+
//# sourceMappingURL=sidebar-adapter.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"names":["settingIdToWidgetId","wp","window","parseWidgetId","widgetId","matches","match","idBase","number","parseInt","widgetIdToSettingId","debounce","leading","callback","timeout","isLeading","timerID","debounced","args","result","apply","clearTimeout","setTimeout","cancel","SidebarAdapter","constructor","setting","api","locked","widgetsCache","WeakMap","subscribers","Set","history","_getWidgetIds","map","getWidget","historyIndex","historySubscribers","_debounceSetHistory","_pushHistory","_replaceHistory","bind","_handleSettingChange","_handleAllSettingsChange","undo","redo","save","subscribe","add","delete","getWidgets","_emit","get","slice","forEach","listener","prevWidgets","id","startsWith","includes","_createWidget","widget","widgetModel","customize","Widgets","availableWidgets","findWhere","id_base","set","settingId","settingArgs","transport","data","selectiveRefreshableWidgets","previewer","create","instance","_removeWidget","remove","_updateWidget","prevWidget","has","_updateWidgets","nextWidgets","addedWidgetIds","nextWidgetIds","nextWidget","push","deletedWidgets","filter","setWidgets","hasUndo","hasRedo","length","_seek","currentWidgets","widgets","subscribeHistory"],"sources":["@wordpress/customize-widgets/src/components/sidebar-block-editor/sidebar-adapter.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst { wp } = window;\n\nfunction parseWidgetId( widgetId ) {\n\tconst matches = widgetId.match( /^(.+)-(\\d+)$/ );\n\tif ( matches ) {\n\t\treturn {\n\t\t\tidBase: matches[ 1 ],\n\t\t\tnumber: parseInt( matches[ 2 ], 10 ),\n\t\t};\n\t}\n\n\t// Likely an old single widget.\n\treturn { idBase: widgetId };\n}\n\nfunction widgetIdToSettingId( widgetId ) {\n\tconst { idBase, number } = parseWidgetId( widgetId );\n\tif ( number ) {\n\t\treturn `widget_${ idBase }[${ number }]`;\n\t}\n\n\treturn `widget_${ idBase }`;\n}\n\n/**\n * This is a custom debounce function to call different callbacks depending on\n * whether it's the _leading_ call or not.\n *\n * @param {Function} leading The callback that gets called first.\n * @param {Function} callback The callback that gets called after the first time.\n * @param {number} timeout The debounced time in milliseconds.\n * @return {Function} The debounced function.\n */\nfunction debounce( leading, callback, timeout ) {\n\tlet isLeading = false;\n\tlet timerID;\n\n\tfunction debounced( ...args ) {\n\t\tconst result = ( isLeading ? callback : leading ).apply( this, args );\n\n\t\tisLeading = true;\n\n\t\tclearTimeout( timerID );\n\n\t\ttimerID = setTimeout( () => {\n\t\t\tisLeading = false;\n\t\t}, timeout );\n\n\t\treturn result;\n\t}\n\n\tdebounced.cancel = () => {\n\t\tisLeading = false;\n\t\tclearTimeout( timerID );\n\t};\n\n\treturn debounced;\n}\n\nexport default class SidebarAdapter {\n\tconstructor( setting, api ) {\n\t\tthis.setting = setting;\n\t\tthis.api = api;\n\n\t\tthis.locked = false;\n\t\tthis.widgetsCache = new WeakMap();\n\t\tthis.subscribers = new Set();\n\n\t\tthis.history = [\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex = 0;\n\t\tthis.historySubscribers = new Set();\n\t\t// Debounce the input for 1 second.\n\t\tthis._debounceSetHistory = debounce(\n\t\t\tthis._pushHistory,\n\t\t\tthis._replaceHistory,\n\t\t\t1000\n\t\t);\n\n\t\tthis.setting.bind( this._handleSettingChange.bind( this ) );\n\t\tthis.api.bind( 'change', this._handleAllSettingsChange.bind( this ) );\n\n\t\tthis.undo = this.undo.bind( this );\n\t\tthis.redo = this.redo.bind( this );\n\t\tthis.save = this.save.bind( this );\n\t}\n\n\tsubscribe( callback ) {\n\t\tthis.subscribers.add( callback );\n\n\t\treturn () => {\n\t\t\tthis.subscribers.delete( callback );\n\t\t};\n\t}\n\n\tgetWidgets() {\n\t\treturn this.history[ this.historyIndex ];\n\t}\n\n\t_emit( ...args ) {\n\t\tfor ( const callback of this.subscribers ) {\n\t\t\tcallback( ...args );\n\t\t}\n\t}\n\n\t_getWidgetIds() {\n\t\treturn this.setting.get();\n\t}\n\n\t_pushHistory() {\n\t\tthis.history = [\n\t\t\t...this.history.slice( 0, this.historyIndex + 1 ),\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex += 1;\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t}\n\n\t_replaceHistory() {\n\t\tthis.history[ this.historyIndex ] = this._getWidgetIds().map(\n\t\t\t( widgetId ) => this.getWidget( widgetId )\n\t\t);\n\t}\n\n\t_handleSettingChange() {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_handleAllSettingsChange( setting ) {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! setting.id.startsWith( 'widget_' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst widgetId = settingIdToWidgetId( setting.id );\n\t\tif ( ! this.setting.get().includes( widgetId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_createWidget( widget ) {\n\t\tconst widgetModel = wp.customize.Widgets.availableWidgets.findWhere( {\n\t\t\tid_base: widget.idBase,\n\t\t} );\n\n\t\tlet number = widget.number;\n\t\tif ( widgetModel.get( 'is_multi' ) && ! number ) {\n\t\t\twidgetModel.set(\n\t\t\t\t'multi_number',\n\t\t\t\twidgetModel.get( 'multi_number' ) + 1\n\t\t\t);\n\t\t\tnumber = widgetModel.get( 'multi_number' );\n\t\t}\n\n\t\tconst settingId = number\n\t\t\t? `widget_${ widget.idBase }[${ number }]`\n\t\t\t: `widget_${ widget.idBase }`;\n\n\t\tconst settingArgs = {\n\t\t\ttransport: wp.customize.Widgets.data.selectiveRefreshableWidgets[\n\t\t\t\twidgetModel.get( 'id_base' )\n\t\t\t]\n\t\t\t\t? 'postMessage'\n\t\t\t\t: 'refresh',\n\t\t\tpreviewer: this.setting.previewer,\n\t\t};\n\t\tconst setting = this.api.create(\n\t\t\tsettingId,\n\t\t\tsettingId,\n\t\t\t'',\n\t\t\tsettingArgs\n\t\t);\n\t\tsetting.set( widget.instance );\n\n\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\treturn widgetId;\n\t}\n\n\t_removeWidget( widget ) {\n\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( setting ) {\n\t\t\tconst instance = setting.get();\n\t\t\tthis.widgetsCache.delete( instance );\n\t\t}\n\n\t\tthis.api.remove( settingId );\n\t}\n\n\t_updateWidget( widget ) {\n\t\tconst prevWidget = this.getWidget( widget.id );\n\n\t\t// Bail out update if nothing changed.\n\t\tif ( prevWidget === widget ) {\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Update existing setting if only the widget's instance changed.\n\t\tif (\n\t\t\tprevWidget.idBase &&\n\t\t\twidget.idBase &&\n\t\t\tprevWidget.idBase === widget.idBase\n\t\t) {\n\t\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\t\tthis.api( settingId ).set( widget.instance );\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Otherwise delete and re-create.\n\t\tthis._removeWidget( widget );\n\t\treturn this._createWidget( widget );\n\t}\n\n\tgetWidget( widgetId ) {\n\t\tif ( ! widgetId ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { idBase, number } = parseWidgetId( widgetId );\n\t\tconst settingId = widgetIdToSettingId( widgetId );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( ! setting ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst instance = setting.get();\n\n\t\tif ( this.widgetsCache.has( instance ) ) {\n\t\t\treturn this.widgetsCache.get( instance );\n\t\t}\n\n\t\tconst widget = {\n\t\t\tid: widgetId,\n\t\t\tidBase,\n\t\t\tnumber,\n\t\t\tinstance,\n\t\t};\n\n\t\tthis.widgetsCache.set( instance, widget );\n\n\t\treturn widget;\n\t}\n\n\t_updateWidgets( nextWidgets ) {\n\t\tthis.locked = true;\n\n\t\tconst addedWidgetIds = [];\n\n\t\tconst nextWidgetIds = nextWidgets.map( ( nextWidget ) => {\n\t\t\tif ( nextWidget.id && this.getWidget( nextWidget.id ) ) {\n\t\t\t\taddedWidgetIds.push( null );\n\n\t\t\t\treturn this._updateWidget( nextWidget );\n\t\t\t}\n\n\t\t\tconst widgetId = this._createWidget( nextWidget );\n\n\t\t\taddedWidgetIds.push( widgetId );\n\n\t\t\treturn widgetId;\n\t\t} );\n\n\t\tconst deletedWidgets = this.getWidgets().filter(\n\t\t\t( widget ) => ! nextWidgetIds.includes( widget.id )\n\t\t);\n\t\tdeletedWidgets.forEach( ( widget ) => this._removeWidget( widget ) );\n\n\t\tthis.setting.set( nextWidgetIds );\n\n\t\tthis.locked = false;\n\n\t\treturn addedWidgetIds;\n\t}\n\n\tsetWidgets( nextWidgets ) {\n\t\tconst addedWidgetIds = this._updateWidgets( nextWidgets );\n\n\t\tthis._debounceSetHistory();\n\n\t\treturn addedWidgetIds;\n\t}\n\n\t/**\n\t * Undo/Redo related features\n\t */\n\thasUndo() {\n\t\treturn this.historyIndex > 0;\n\t}\n\n\thasRedo() {\n\t\treturn this.historyIndex < this.history.length - 1;\n\t}\n\n\t_seek( historyIndex ) {\n\t\tconst currentWidgets = this.getWidgets();\n\n\t\tthis.historyIndex = historyIndex;\n\n\t\tconst widgets = this.history[ this.historyIndex ];\n\n\t\tthis._updateWidgets( widgets );\n\n\t\tthis._emit( currentWidgets, this.getWidgets() );\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t\tthis._debounceSetHistory.cancel();\n\t}\n\n\tundo() {\n\t\tif ( ! this.hasUndo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex - 1 );\n\t}\n\n\tredo() {\n\t\tif ( ! this.hasRedo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex + 1 );\n\t}\n\n\tsubscribeHistory( listener ) {\n\t\tthis.historySubscribers.add( listener );\n\n\t\treturn () => {\n\t\t\tthis.historySubscribers.delete( listener );\n\t\t};\n\t}\n\n\tsave() {\n\t\tthis.api.previewer.save();\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/sidebar-block-editor/sidebar-adapter.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * Internal dependencies\n */\nimport { settingIdToWidgetId } from '../../utils';\n\nconst { wp } = window;\n\nfunction parseWidgetId( widgetId ) {\n\tconst matches = widgetId.match( /^(.+)-(\\d+)$/ );\n\tif ( matches ) {\n\t\treturn {\n\t\t\tidBase: matches[ 1 ],\n\t\t\tnumber: parseInt( matches[ 2 ], 10 ),\n\t\t};\n\t}\n\n\t// Likely an old single widget.\n\treturn { idBase: widgetId };\n}\n\nfunction widgetIdToSettingId( widgetId ) {\n\tconst { idBase, number } = parseWidgetId( widgetId );\n\tif ( number ) {\n\t\treturn `widget_${ idBase }[${ number }]`;\n\t}\n\n\treturn `widget_${ idBase }`;\n}\n\n/**\n * This is a custom debounce function to call different callbacks depending on\n * whether it's the _leading_ call or not.\n *\n * @param {Function} leading The callback that gets called first.\n * @param {Function} callback The callback that gets called after the first time.\n * @param {number} timeout The debounced time in milliseconds.\n * @return {Function} The debounced function.\n */\nfunction debounce( leading, callback, timeout ) {\n\tlet isLeading = false;\n\tlet timerID;\n\n\tfunction debounced( ...args ) {\n\t\tconst result = ( isLeading ? callback : leading ).apply( this, args );\n\n\t\tisLeading = true;\n\n\t\tclearTimeout( timerID );\n\n\t\ttimerID = setTimeout( () => {\n\t\t\tisLeading = false;\n\t\t}, timeout );\n\n\t\treturn result;\n\t}\n\n\tdebounced.cancel = () => {\n\t\tisLeading = false;\n\t\tclearTimeout( timerID );\n\t};\n\n\treturn debounced;\n}\n\nexport default class SidebarAdapter {\n\tconstructor( setting, api ) {\n\t\tthis.setting = setting;\n\t\tthis.api = api;\n\n\t\tthis.locked = false;\n\t\tthis.widgetsCache = new WeakMap();\n\t\tthis.subscribers = new Set();\n\n\t\tthis.history = [\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex = 0;\n\t\tthis.historySubscribers = new Set();\n\t\t// Debounce the input for 1 second.\n\t\tthis._debounceSetHistory = debounce(\n\t\t\tthis._pushHistory,\n\t\t\tthis._replaceHistory,\n\t\t\t1000\n\t\t);\n\n\t\tthis.setting.bind( this._handleSettingChange.bind( this ) );\n\t\tthis.api.bind( 'change', this._handleAllSettingsChange.bind( this ) );\n\n\t\tthis.undo = this.undo.bind( this );\n\t\tthis.redo = this.redo.bind( this );\n\t\tthis.save = this.save.bind( this );\n\t}\n\n\tsubscribe( callback ) {\n\t\tthis.subscribers.add( callback );\n\n\t\treturn () => {\n\t\t\tthis.subscribers.delete( callback );\n\t\t};\n\t}\n\n\tgetWidgets() {\n\t\treturn this.history[ this.historyIndex ];\n\t}\n\n\t_emit( ...args ) {\n\t\tfor ( const callback of this.subscribers ) {\n\t\t\tcallback( ...args );\n\t\t}\n\t}\n\n\t_getWidgetIds() {\n\t\treturn this.setting.get();\n\t}\n\n\t_pushHistory() {\n\t\tthis.history = [\n\t\t\t...this.history.slice( 0, this.historyIndex + 1 ),\n\t\t\tthis._getWidgetIds().map( ( widgetId ) =>\n\t\t\t\tthis.getWidget( widgetId )\n\t\t\t),\n\t\t];\n\t\tthis.historyIndex += 1;\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t}\n\n\t_replaceHistory() {\n\t\tthis.history[ this.historyIndex ] = this._getWidgetIds().map(\n\t\t\t( widgetId ) => this.getWidget( widgetId )\n\t\t);\n\t}\n\n\t_handleSettingChange() {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_handleAllSettingsChange( setting ) {\n\t\tif ( this.locked ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! setting.id.startsWith( 'widget_' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst widgetId = settingIdToWidgetId( setting.id );\n\t\tif ( ! this.setting.get().includes( widgetId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst prevWidgets = this.getWidgets();\n\n\t\tthis._pushHistory();\n\n\t\tthis._emit( prevWidgets, this.getWidgets() );\n\t}\n\n\t_createWidget( widget ) {\n\t\tconst widgetModel = wp.customize.Widgets.availableWidgets.findWhere( {\n\t\t\tid_base: widget.idBase,\n\t\t} );\n\n\t\tlet number = widget.number;\n\t\tif ( widgetModel.get( 'is_multi' ) && ! number ) {\n\t\t\twidgetModel.set(\n\t\t\t\t'multi_number',\n\t\t\t\twidgetModel.get( 'multi_number' ) + 1\n\t\t\t);\n\t\t\tnumber = widgetModel.get( 'multi_number' );\n\t\t}\n\n\t\tconst settingId = number\n\t\t\t? `widget_${ widget.idBase }[${ number }]`\n\t\t\t: `widget_${ widget.idBase }`;\n\n\t\tconst settingArgs = {\n\t\t\ttransport: wp.customize.Widgets.data.selectiveRefreshableWidgets[\n\t\t\t\twidgetModel.get( 'id_base' )\n\t\t\t]\n\t\t\t\t? 'postMessage'\n\t\t\t\t: 'refresh',\n\t\t\tpreviewer: this.setting.previewer,\n\t\t};\n\t\tconst setting = this.api.create(\n\t\t\tsettingId,\n\t\t\tsettingId,\n\t\t\t'',\n\t\t\tsettingArgs\n\t\t);\n\t\tsetting.set( widget.instance );\n\n\t\tconst widgetId = settingIdToWidgetId( settingId );\n\n\t\treturn widgetId;\n\t}\n\n\t_removeWidget( widget ) {\n\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( setting ) {\n\t\t\tconst instance = setting.get();\n\t\t\tthis.widgetsCache.delete( instance );\n\t\t}\n\n\t\tthis.api.remove( settingId );\n\t}\n\n\t_updateWidget( widget ) {\n\t\tconst prevWidget = this.getWidget( widget.id );\n\n\t\t// Bail out update if nothing changed.\n\t\tif ( prevWidget === widget ) {\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Update existing setting if only the widget's instance changed.\n\t\tif (\n\t\t\tprevWidget.idBase &&\n\t\t\twidget.idBase &&\n\t\t\tprevWidget.idBase === widget.idBase\n\t\t) {\n\t\t\tconst settingId = widgetIdToSettingId( widget.id );\n\t\t\tthis.api( settingId ).set( widget.instance );\n\t\t\treturn widget.id;\n\t\t}\n\n\t\t// Otherwise delete and re-create.\n\t\tthis._removeWidget( widget );\n\t\treturn this._createWidget( widget );\n\t}\n\n\tgetWidget( widgetId ) {\n\t\tif ( ! widgetId ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { idBase, number } = parseWidgetId( widgetId );\n\t\tconst settingId = widgetIdToSettingId( widgetId );\n\t\tconst setting = this.api( settingId );\n\n\t\tif ( ! setting ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst instance = setting.get();\n\n\t\tif ( this.widgetsCache.has( instance ) ) {\n\t\t\treturn this.widgetsCache.get( instance );\n\t\t}\n\n\t\tconst widget = {\n\t\t\tid: widgetId,\n\t\t\tidBase,\n\t\t\tnumber,\n\t\t\tinstance,\n\t\t};\n\n\t\tthis.widgetsCache.set( instance, widget );\n\n\t\treturn widget;\n\t}\n\n\t_updateWidgets( nextWidgets ) {\n\t\tthis.locked = true;\n\n\t\tconst addedWidgetIds = [];\n\n\t\tconst nextWidgetIds = nextWidgets.map( ( nextWidget ) => {\n\t\t\tif ( nextWidget.id && this.getWidget( nextWidget.id ) ) {\n\t\t\t\taddedWidgetIds.push( null );\n\n\t\t\t\treturn this._updateWidget( nextWidget );\n\t\t\t}\n\n\t\t\tconst widgetId = this._createWidget( nextWidget );\n\n\t\t\taddedWidgetIds.push( widgetId );\n\n\t\t\treturn widgetId;\n\t\t} );\n\n\t\tconst deletedWidgets = this.getWidgets().filter(\n\t\t\t( widget ) => ! nextWidgetIds.includes( widget.id )\n\t\t);\n\t\tdeletedWidgets.forEach( ( widget ) => this._removeWidget( widget ) );\n\n\t\tthis.setting.set( nextWidgetIds );\n\n\t\tthis.locked = false;\n\n\t\treturn addedWidgetIds;\n\t}\n\n\tsetWidgets( nextWidgets ) {\n\t\tconst addedWidgetIds = this._updateWidgets( nextWidgets );\n\n\t\tthis._debounceSetHistory();\n\n\t\treturn addedWidgetIds;\n\t}\n\n\t/**\n\t * Undo/Redo related features\n\t */\n\thasUndo() {\n\t\treturn this.historyIndex > 0;\n\t}\n\n\thasRedo() {\n\t\treturn this.historyIndex < this.history.length - 1;\n\t}\n\n\t_seek( historyIndex ) {\n\t\tconst currentWidgets = this.getWidgets();\n\n\t\tthis.historyIndex = historyIndex;\n\n\t\tconst widgets = this.history[ this.historyIndex ];\n\n\t\tthis._updateWidgets( widgets );\n\n\t\tthis._emit( currentWidgets, this.getWidgets() );\n\n\t\tthis.historySubscribers.forEach( ( listener ) => listener() );\n\t\tthis._debounceSetHistory.cancel();\n\t}\n\n\tundo() {\n\t\tif ( ! this.hasUndo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex - 1 );\n\t}\n\n\tredo() {\n\t\tif ( ! this.hasRedo() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._seek( this.historyIndex + 1 );\n\t}\n\n\tsubscribeHistory( listener ) {\n\t\tthis.historySubscribers.add( listener );\n\n\t\treturn () => {\n\t\t\tthis.historySubscribers.delete( listener );\n\t\t};\n\t}\n\n\tsave() {\n\t\tthis.api.previewer.save();\n\t}\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,32 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
*/
|
|
9
|
-
import useSidebarBlockEditor from './use-sidebar-block-editor';
|
|
10
|
-
import useBlocksFocusControl from '../focus-control/use-blocks-focus-control';
|
|
11
|
-
import { unlock } from '../../lock-unlock';
|
|
12
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
-
const {
|
|
14
|
-
ExperimentalBlockEditorProvider
|
|
15
|
-
} = unlock(blockEditorPrivateApis);
|
|
16
|
-
export default function SidebarEditorProvider({
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { privateApis as blockEditorPrivateApis } from "@wordpress/block-editor";
|
|
3
|
+
import useSidebarBlockEditor from "./use-sidebar-block-editor";
|
|
4
|
+
import useBlocksFocusControl from "../focus-control/use-blocks-focus-control";
|
|
5
|
+
import { unlock } from "../../lock-unlock";
|
|
6
|
+
const { ExperimentalBlockEditorProvider } = unlock(blockEditorPrivateApis);
|
|
7
|
+
function SidebarEditorProvider({
|
|
17
8
|
sidebar,
|
|
18
9
|
settings,
|
|
19
10
|
children
|
|
20
11
|
}) {
|
|
21
12
|
const [blocks, onInput, onChange] = useSidebarBlockEditor(sidebar);
|
|
22
13
|
useBlocksFocusControl(blocks);
|
|
23
|
-
return
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
14
|
+
return /* @__PURE__ */ jsx(
|
|
15
|
+
ExperimentalBlockEditorProvider,
|
|
16
|
+
{
|
|
17
|
+
value: blocks,
|
|
18
|
+
onInput,
|
|
19
|
+
onChange,
|
|
20
|
+
settings,
|
|
21
|
+
useSubRegistry: false,
|
|
22
|
+
children
|
|
23
|
+
}
|
|
24
|
+
);
|
|
31
25
|
}
|
|
32
|
-
|
|
26
|
+
export {
|
|
27
|
+
SidebarEditorProvider as default
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=sidebar-editor-provider.js.map
|