@plaudit/gutenberg-api-extensions 2.58.1 → 2.59.1

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.
@@ -0,0 +1,19 @@
1
+ import { registerBlockBindingsSource } from "@wordpress/blocks";
2
+ export type DbSource = {
3
+ label: string;
4
+ value: string;
5
+ help?: string;
6
+ };
7
+ export declare function registerCustomBlockBindingsSource(args: Parameters<typeof registerBlockBindingsSource>[0] & {
8
+ dbSources?: DbSource[];
9
+ }): void;
10
+ declare global {
11
+ interface Window {
12
+ plauditCustomBlockBindingsInformation?: {
13
+ [name in string]: {
14
+ dbSources?: DbSource[];
15
+ };
16
+ };
17
+ }
18
+ }
19
+ export declare function installCustomBlockBindingsSupport(): void;
@@ -0,0 +1,200 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import apiFetch from "@wordpress/api-fetch";
3
+ import { getBlockBindingsSources, registerBlockBindingsSource } from "@wordpress/blocks";
4
+ import { InspectorAdvancedControls } from "@wordpress/block-editor";
5
+ import { __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, SelectControl, Spinner, TextControl } from '@wordpress/components';
6
+ import { createHigherOrderComponent } from "@wordpress/compose";
7
+ import { select } from "@wordpress/data";
8
+ import { store as editorStore } from "@wordpress/editor";
9
+ import { memo, useCallback, useEffect, useMemo, useRef, useState } from "@wordpress/element";
10
+ import { addFilter } from "@wordpress/hooks";
11
+ const BLOCK_BINDINGS_ALLOWED_BLOCKS = {
12
+ 'core/paragraph': ['content'],
13
+ 'core/heading': ['content'],
14
+ 'core/image': ['id', 'url', 'title', 'alt'],
15
+ 'core/button': ['url', 'text', 'linkTarget', 'rel']
16
+ };
17
+ export function registerCustomBlockBindingsSource(args) {
18
+ const { dbSources, ...actualArgs } = args;
19
+ registerBlockBindingsSource('getValue' in actualArgs ? actualArgs : { ...actualArgs, getValue: () => ({}) });
20
+ getCustomBlockBindingsInformation()[actualArgs.name] = { dbSources };
21
+ }
22
+ function getCustomBlockBindingsInformation() {
23
+ return window.plauditCustomBlockBindingsInformation ?? (window.plauditCustomBlockBindingsInformation = {});
24
+ }
25
+ export function installCustomBlockBindingsSupport() {
26
+ if (window.plauditCustomBlockBindingsSupportInstalled) {
27
+ return;
28
+ }
29
+ window.plauditCustomBlockBindingsSupportInstalled = true;
30
+ const selectableOptionsCache = {
31
+ cache: new Map(),
32
+ capacity: 20,
33
+ fetch(current_post, source) {
34
+ const key = `/plaudit/base/v1/custom-bindings/source/options?current_post=${current_post}&source=${source}`;
35
+ if (this.cache.has(key)) {
36
+ const res = this.cache.get(key);
37
+ // This pushes the key to the back of the list
38
+ this.cache.delete(key);
39
+ this.cache.set(key, res);
40
+ return res;
41
+ }
42
+ if (this.cache.size === this.capacity) {
43
+ this.cache.delete(this.cache.keys().next().value);
44
+ }
45
+ const res = apiFetch({ path: "/plaudit/base/v1/custom-bindings/source/options", data: { current_post, source }, method: "POST" });
46
+ this.cache.set(key, res);
47
+ res.catch(() => this.cache.delete(key)); //This is to ensure that we don't cache error responses
48
+ return res;
49
+ }
50
+ };
51
+ addFilter('editor.BlockEdit', 'plaudit/gutenberg-api-extensions/basic-custom-block-bindings-support', createHigherOrderComponent(BlockEdit => (blockEditProps) => {
52
+ const availableBindingsList = BLOCK_BINDINGS_ALLOWED_BLOCKS[blockEditProps.name];
53
+ if (!availableBindingsList?.length) {
54
+ return _jsx(BlockEdit, { ...blockEditProps });
55
+ }
56
+ const { attributes, setAttributes } = blockEditProps;
57
+ const resetAll = useCallback(() => {
58
+ const { metadata: { bindings, ...metadata } = {} } = attributes;
59
+ if (bindings !== undefined) {
60
+ const updatedBindings = Object.entries(bindings).filter(([k]) => !availableBindingsList.includes(k));
61
+ if (updatedBindings.length) {
62
+ setAttributes({ metadata: { ...metadata, bindings: Object.fromEntries(updatedBindings) } });
63
+ }
64
+ else {
65
+ setAttributes({ metadata: !metadata || !Object.keys(metadata).length ? undefined : metadata });
66
+ }
67
+ }
68
+ }, [availableBindingsList, attributes, setAttributes]);
69
+ const currentPost = select(editorStore).getCurrentPost();
70
+ const bindingConfigs = useMemo(() => availableBindingsList.map(binding => {
71
+ const onDeselect = () => {
72
+ const { metadata: { bindings, ...metadata } = {} } = attributes;
73
+ if (bindings !== undefined) {
74
+ const updatedBindings = Object.entries(bindings).filter(([k]) => k !== binding);
75
+ if (updatedBindings.length) {
76
+ setAttributes({ metadata: { ...metadata, bindings: Object.fromEntries(updatedBindings) } });
77
+ }
78
+ else {
79
+ setAttributes({ metadata: !metadata || !Object.keys(metadata).length ? undefined : metadata });
80
+ }
81
+ }
82
+ };
83
+ return [
84
+ { label: binding, hasValue: () => blockEditProps.attributes['metadata']?.['bindings']?.[binding] !== undefined, onDeselect },
85
+ {
86
+ label: binding,
87
+ value: blockEditProps.attributes['metadata']?.['bindings']?.[binding],
88
+ updateBinding: (value) => {
89
+ if (value?.source === undefined) {
90
+ onDeselect();
91
+ }
92
+ else {
93
+ const { metadata: { bindings, ...metadata } = {} } = attributes;
94
+ setAttributes({ metadata: { ...metadata, bindings: { ...bindings, [binding]: value } } });
95
+ }
96
+ },
97
+ currentPost
98
+ }
99
+ ];
100
+ }), [availableBindingsList, blockEditProps.attributes, currentPost]);
101
+ return _jsxs(_Fragment, { children: [_jsx(BlockEdit, { ...blockEditProps }), _jsx(InspectorAdvancedControls, { children: _jsx(ToolsPanel, { label: "Custom Block Bindings", resetAll: resetAll, children: bindingConfigs.map(([bindingConfig, bbtConfig]) => _jsx(ToolsPanelItem, { ...bindingConfig, children: _jsx(BlockBindingTool, { ...bbtConfig }) })) }) })] });
102
+ }, 'plauditGutenbergApiExtensionsBasicBlockBindingsSupport'));
103
+ const BlockBindingTool = memo(({ label, value, updateBinding, currentPost }) => {
104
+ const bindingSources = Object.entries(getBlockBindingsSources())
105
+ .filter(([key]) => key !== 'core/pattern-overrides' && key !== 'core/post-meta')
106
+ .map(([key, { label }]) => ({ label, value: key }));
107
+ const [[selectableOptions, dbSources], setSelectableOptions] = useState([[], undefined]);
108
+ const fetchSourceOptionsAbortController = useRef(0);
109
+ const controls = [
110
+ _jsx(SelectControl, { label: "Source", __nextHasNoMarginBottom: true, onChange: source => updateBinding({ source }), options: [
111
+ {
112
+ disabled: true,
113
+ label: "Select a Binding Source",
114
+ value: ''
115
+ },
116
+ ...bindingSources
117
+ ], value: value?.source ?? '' }, "source")
118
+ ];
119
+ useEffect(() => {
120
+ const src = value?.source;
121
+ if (!src) {
122
+ setSelectableOptions([[], undefined]);
123
+ }
124
+ else {
125
+ setSelectableOptions(['loading', undefined]);
126
+ const myNumber = ++fetchSourceOptionsAbortController.current;
127
+ selectableOptionsCache.fetch(currentPost, src)
128
+ .then(response => {
129
+ if (fetchSourceOptionsAbortController.current === myNumber) {
130
+ setSelectableOptions([response.map(option => {
131
+ if (typeof option.disabled === 'string') {
132
+ return { ...option, label: `${option.label} (${option.disabled})`, disabled: true };
133
+ }
134
+ return option;
135
+ }), getCustomBlockBindingsInformation()[src]?.dbSources]);
136
+ }
137
+ })
138
+ .catch(err => {
139
+ if (fetchSourceOptionsAbortController.current === myNumber) {
140
+ console.error(err);
141
+ setSelectableOptions([[], undefined]);
142
+ }
143
+ });
144
+ }
145
+ }, [value?.source ?? '', currentPost]);
146
+ const subfieldKeys = useMemo(() => {
147
+ if (Array.isArray(selectableOptions)) {
148
+ const key = value?.args?.['key'];
149
+ return key ? selectableOptions.find(option => option.value === key)?.subfields ?? [] : [];
150
+ }
151
+ return [];
152
+ }, [selectableOptions, value?.args?.['key']]);
153
+ if (selectableOptions === 'loading') {
154
+ controls.push(_jsxs("p", { children: [_jsx(Spinner, {}), " Loading Binding Options"] }));
155
+ }
156
+ else if (selectableOptions === 'error') {
157
+ controls.push(_jsx("p", { style: { color: '#CC1818' }, children: "An error occurred while loading binding options" }));
158
+ }
159
+ else if (selectableOptions.length) {
160
+ controls.push(_jsx(SelectControl, { label: "Field", __nextHasNoMarginBottom: true, onChange: key => updateBinding({
161
+ ...value,
162
+ args: { key }
163
+ }), options: [
164
+ {
165
+ disabled: true,
166
+ label: "Select a Field",
167
+ value: ''
168
+ },
169
+ ...selectableOptions
170
+ ], value: value?.args?.['key'] ?? '' }, "field"));
171
+ if (subfieldKeys.length) {
172
+ if (subfieldKeys === 'custom') {
173
+ controls.push(_jsx(TextControl, { label: "Subfield", __nextHasNoMarginBottom: true, onChange: subfield => updateBinding({ ...value, args: { ...value?.args, subfield } }), value: value?.args?.['subfield'] ?? '', help: "Please enter the name of a subfield. You may need to inspect the raw data from this binding to determine the subfield." }, "subfield"));
174
+ }
175
+ else {
176
+ controls.push(_jsx(SelectControl, { label: "Subfield", __nextHasNoMarginBottom: true, onChange: subfield => updateBinding({ ...value, args: { ...value?.args, subfield } }), options: [
177
+ {
178
+ disabled: true,
179
+ label: "Select a Subfield",
180
+ value: ''
181
+ },
182
+ ...subfieldKeys
183
+ ], value: value?.args?.['subfield'] ?? '' }, "subfield"));
184
+ }
185
+ }
186
+ if (value?.args?.['key'] && dbSources?.length) {
187
+ controls.push(_jsx(SelectControl, { label: "DB Source", __nextHasNoMarginBottom: true, onChange: db_source => updateBinding({ ...value, args: { ...value?.args, db_source } }), options: dbSources, value: value?.args?.['db_source'] ?? dbSources[0].value, help: dbSources.find(dbs => dbs.value === value?.args?.['db_source'])?.help }, "db-source"));
188
+ }
189
+ else if (value?.args?.['db_source']) {
190
+ const { db_source, ...updatedArgs } = value.args;
191
+ updateBinding({ ...value, args: updatedArgs });
192
+ }
193
+ }
194
+ else if (value?.source) {
195
+ controls.push(_jsx("p", { children: "No Options Found" }));
196
+ }
197
+ return _jsxs("fieldset", { className: "custom-bindings-configuration-chain", style: { border: "revert", padding: "revert", margin: "revert" }, children: [_jsx("legend", { children: label }), controls] });
198
+ });
199
+ }
200
+ //# sourceMappingURL=basic-custom-block-bindings-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic-custom-block-bindings-support.js","sourceRoot":"","sources":["../../src/blocks/basic-custom-block-bindings-support.tsx"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export * from "./shared-exportable-types";
4
4
  export * from "./simple-native-property-api";
5
5
  export * from "./snp-data-store";
6
6
  export * from "./utilities";
7
+ export { type DbSource, installCustomBlockBindingsSupport, registerCustomBlockBindingsSource } from "./basic-custom-block-bindings-support";
7
8
  /**
8
9
  * @deprecated use installGutenbergExtensions() instead
9
10
  */
@@ -4,6 +4,7 @@ export * from "./shared-exportable-types";
4
4
  export * from "./simple-native-property-api";
5
5
  export * from "./snp-data-store";
6
6
  export * from "./utilities";
7
+ export { installCustomBlockBindingsSupport, registerCustomBlockBindingsSource } from "./basic-custom-block-bindings-support";
7
8
  import { installGutenbergExtensions } from "../index";
8
9
  /**
9
10
  * @deprecated use installGutenbergExtensions() instead
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAC,0BAA0B,EAAC,MAAM,UAAU,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,+BAA+B;IAC9C,0BAA0B,EAAE,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAgB,iCAAiC,EAAE,iCAAiC,EAAC,MAAM,uCAAuC,CAAC;AAE1I,OAAO,EAAC,0BAA0B,EAAC,MAAM,UAAU,CAAC;AAEpD;;GAEG;AACH,MAAM,UAAU,+BAA+B;IAC9C,0BAA0B,EAAE,CAAC;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plaudit/gutenberg-api-extensions",
3
- "version": "2.58.1",
3
+ "version": "2.59.1",
4
4
  "license": "UNLICENSED",
5
5
  "scripts": {
6
6
  "prepublishOnly": "rm -rf build && mkdir build && tsc",
@@ -92,3 +92,13 @@
92
92
  vertical-align: middle;
93
93
  }
94
94
  }
95
+
96
+ .custom-bindings-configuration-chain {
97
+ display: flex;
98
+ gap: 8px;
99
+ flex-direction: column;
100
+
101
+ & > .components-base-control > .components-base-control__field > [data-wp-component="InputBase"] {
102
+ gap: 4px;
103
+ }
104
+ }