@plaudit/gutenberg-api-extensions 2.63.0 → 2.64.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.
- package/build/blocks/SNPGroupComponent.js +13 -2
- package/build/blocks/SNPGroupComponent.js.map +1 -1
- package/build/blocks/basic-custom-block-bindings-support.d.ts +1 -10
- package/build/blocks/basic-custom-block-bindings-support.js +8 -12
- package/build/blocks/basic-custom-block-bindings-support.js.map +1 -1
- package/build/blocks/common-native-property-constructors.d.ts +17 -6
- package/build/blocks/common-native-property-constructors.js +128 -29
- package/build/blocks/common-native-property-constructors.js.map +1 -1
- package/build/blocks/data-controller.d.ts +3 -2
- package/build/blocks/data-controller.js +21 -2
- package/build/blocks/data-controller.js.map +1 -1
- package/build/blocks/layered-styles-impl.js +6 -5
- package/build/blocks/layered-styles-impl.js.map +1 -1
- package/build/blocks/layout/LaidOutProperty.d.ts +1 -0
- package/build/blocks/layout/LaidOutProperty.js +16 -5
- package/build/blocks/layout/LaidOutProperty.js.map +1 -1
- package/build/blocks/layout/LaidOutPropertyRow.d.ts +2 -1
- package/build/blocks/layout/LaidOutPropertyRow.js +3 -3
- package/build/blocks/layout/LaidOutPropertyRow.js.map +1 -1
- package/build/blocks/layout/ToolsPanelContext.d.ts +9 -0
- package/build/blocks/layout/ToolsPanelContext.js +18 -0
- package/build/blocks/layout/ToolsPanelContext.js.map +1 -0
- package/build/blocks/simple-native-property-api.d.ts +2 -0
- package/build/blocks/simple-native-property-api.js +4 -40
- package/build/blocks/simple-native-property-api.js.map +1 -1
- package/build/blocks/simple-native-property-impl.js +43 -138
- package/build/blocks/simple-native-property-impl.js.map +1 -1
- package/build/blocks/simple-native-property-internal-shared.d.ts +12 -17
- package/build/blocks/simple-native-property-internal-shared.js +0 -18
- package/build/blocks/simple-native-property-internal-shared.js.map +1 -1
- package/build/controls/PromisableComponent.d.ts +3 -2
- package/build/controls/PromisableComponent.js +13 -5
- package/build/controls/PromisableComponent.js.map +1 -1
- package/build/controls/hooks/useSortableItemsModel.js +59 -56
- package/build/controls/hooks/useSortableItemsModel.js.map +1 -1
- package/build/editor/post-featured-image.js +3 -2
- package/build/editor/post-featured-image.js.map +1 -1
- package/build/editor/simple-gutenberg-endpoints-api.d.ts +6 -0
- package/build/editor/simple-gutenberg-endpoints-api.js +15 -0
- package/build/editor/simple-gutenberg-endpoints-api.js.map +1 -0
- package/build/editor/simple-gutenberg-endpoints-impl.d.ts +23 -0
- package/build/editor/simple-gutenberg-endpoints-impl.js +47 -0
- package/build/editor/simple-gutenberg-endpoints-impl.js.map +1 -0
- package/build/index.d.ts +3 -11
- package/build/index.js +10 -4
- package/build/index.js.map +1 -1
- package/build/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.d.ts +26 -0
- package/build/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.js +14 -0
- package/build/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.js.map +1 -0
- package/build/lib/gutenberg-api-extensions-state/layered-block-styles-logic.d.ts +22 -0
- package/build/lib/gutenberg-api-extensions-state/layered-block-styles-logic.js +14 -0
- package/build/lib/gutenberg-api-extensions-state/layered-block-styles-logic.js.map +1 -0
- package/build/lib/gutenberg-api-extensions-state/snp-logic.d.ts +41 -0
- package/build/lib/gutenberg-api-extensions-state/snp-logic.js +168 -0
- package/build/lib/gutenberg-api-extensions-state/snp-logic.js.map +1 -0
- package/build/lib/gutenberg-api-extensions-state.d.ts +106 -0
- package/build/lib/gutenberg-api-extensions-state.js +104 -0
- package/build/lib/gutenberg-api-extensions-state.js.map +1 -0
- package/build/lib/helpers.d.ts +1 -0
- package/build/lib/helpers.js +10 -0
- package/build/lib/helpers.js.map +1 -0
- package/build/lib/suspense.d.ts +6 -0
- package/build/lib/suspense.js +12 -0
- package/build/lib/suspense.js.map +1 -1
- package/build/lib/useful-types.d.ts +9 -0
- package/build/lib/useful-types.js +2 -0
- package/build/lib/useful-types.js.map +1 -0
- package/package.json +1 -4
- package/styles/editor.pcss +4 -0
|
@@ -1,55 +1,67 @@
|
|
|
1
1
|
import { useEffect, useMemo, useReducer } from "@wordpress/element";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { Immer } from "immer";
|
|
3
|
+
import { clone } from "../../lib/helpers";
|
|
4
4
|
export function useSortableItemsModel({ onAdd, onChange, onRemove, onReorder, emptyValue, value }) {
|
|
5
5
|
const [state, dispatch] = useReducer((prevState, action) => {
|
|
6
6
|
switch (action.type) {
|
|
7
|
-
case "add":
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
7
|
+
case "add": {
|
|
8
|
+
const newItemIndex = action.index ?? prevState.value?.length ?? 0;
|
|
9
|
+
const newValue = prevState.value?.toSpliced(newItemIndex, 0, action.value) ?? [action.value];
|
|
10
|
+
const nextItemKey = prevState.nextItemKey + 1;
|
|
11
|
+
onAdd?.(newItemIndex, action.value);
|
|
12
|
+
onChange?.(newValue);
|
|
13
|
+
return {
|
|
14
|
+
...prevState,
|
|
15
|
+
value: newValue,
|
|
16
|
+
keyedValues: prevState.keyedValues.concat([[action.value, nextItemKey]]),
|
|
17
|
+
nextItemKey
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
case "remove": {
|
|
21
|
+
const newValue = prevState.value?.toSpliced(action.index, 1) ?? [];
|
|
22
|
+
onRemove?.(action.index);
|
|
23
|
+
onChange?.(newValue);
|
|
24
|
+
return {
|
|
25
|
+
...prevState,
|
|
26
|
+
value: newValue,
|
|
27
|
+
keyedValues: prevState.keyedValues.toSpliced(action.index, 1)
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
case "move": {
|
|
31
|
+
const { newIndex, oldIndex } = action;
|
|
32
|
+
if (newIndex === oldIndex) {
|
|
33
|
+
return prevState;
|
|
34
|
+
}
|
|
35
|
+
const newValue = swap(prevState.value ?? [], newIndex, oldIndex);
|
|
36
|
+
const changesStart = Math.min(newIndex, oldIndex);
|
|
37
|
+
newValue.splice(changesStart, newValue.length, ...newValue.slice(changesStart).map(v => clone(v)));
|
|
38
|
+
onReorder?.(oldIndex, newIndex);
|
|
39
|
+
onChange?.(newValue);
|
|
40
|
+
return {
|
|
41
|
+
...prevState,
|
|
42
|
+
value: newValue,
|
|
43
|
+
keyedValues: swap(prevState.keyedValues, newIndex, oldIndex).map(([_, k], i) => [newValue[i], k])
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
case "change": {
|
|
47
|
+
const newValue = (prevState.value ?? []).toSpliced(action.index, 1, action.value);
|
|
48
|
+
onChange?.(newValue);
|
|
49
|
+
return {
|
|
50
|
+
...prevState,
|
|
51
|
+
value: newValue,
|
|
52
|
+
keyedValues: prevState.keyedValues.map((v, i) => i === action.index ? [action.value, v[1]] : v)
|
|
53
|
+
};
|
|
54
|
+
}
|
|
44
55
|
case "commit":
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
56
|
+
const newValue = action.keyedValues.map(([v]) => v);
|
|
57
|
+
onChange?.(newValue);
|
|
58
|
+
return {
|
|
59
|
+
...prevState,
|
|
60
|
+
value: newValue,
|
|
61
|
+
keyedValues: action.keyedValues
|
|
62
|
+
};
|
|
51
63
|
case "refresh":
|
|
52
|
-
const nextState = produce(prevState, (draft) => {
|
|
64
|
+
const nextState = (new Immer({ autoFreeze: false })).produce(prevState, (draft) => {
|
|
53
65
|
for (const [key, value] of Object.entries(action.listeners)) {
|
|
54
66
|
draft.listeners[key] = value;
|
|
55
67
|
}
|
|
@@ -67,7 +79,7 @@ export function useSortableItemsModel({ onAdd, onChange, onRemove, onReorder, em
|
|
|
67
79
|
}
|
|
68
80
|
}
|
|
69
81
|
return nextState;
|
|
70
|
-
default:
|
|
82
|
+
default:
|
|
71
83
|
return prevState;
|
|
72
84
|
}
|
|
73
85
|
}, { keyedValues: [], listeners: {}, nextItemKey: 0 });
|
|
@@ -132,13 +144,4 @@ function swap(value, newIndex, oldIndex) {
|
|
|
132
144
|
}
|
|
133
145
|
return splicedValue;
|
|
134
146
|
}
|
|
135
|
-
function clone(value) {
|
|
136
|
-
if (value === null || value === undefined) {
|
|
137
|
-
return value;
|
|
138
|
-
}
|
|
139
|
-
else if (Array.isArray(value)) {
|
|
140
|
-
return value.map(v => clone(v));
|
|
141
|
-
}
|
|
142
|
-
return typeof value === 'object' ? Object.fromEntries(Object.entries(value).map(([k, v]) => [k, clone(v)])) : value;
|
|
143
|
-
}
|
|
144
147
|
//# sourceMappingURL=useSortableItemsModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSortableItemsModel.js","sourceRoot":"","sources":["../../../src/controls/hooks/useSortableItemsModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAElE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"useSortableItemsModel.js","sourceRoot":"","sources":["../../../src/controls/hooks/useSortableItemsModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { PostFeaturedImageCheck, store as editorStore } from "@wordpress/editor"
|
|
|
5
5
|
import { useEffect, useMemo, useState } from "@wordpress/element";
|
|
6
6
|
import { addFilter, applyFilters } from "@wordpress/hooks";
|
|
7
7
|
import { __ } from "@wordpress/i18n";
|
|
8
|
+
import { store as apiStore } from "../lib/gutenberg-api-extensions-state";
|
|
8
9
|
function getMediaDetails(media, postId) {
|
|
9
10
|
if (!media) {
|
|
10
11
|
return {};
|
|
@@ -52,10 +53,10 @@ function getImageSize(defaultSize, media, postId) {
|
|
|
52
53
|
return filteredSize;
|
|
53
54
|
}
|
|
54
55
|
export function installPostFeaturedImageCardFocusTargeting() {
|
|
55
|
-
if (
|
|
56
|
+
if (select(apiStore).featureProp("post-featured-image-card-focus-targeting", "installed")) {
|
|
56
57
|
return;
|
|
57
58
|
}
|
|
58
|
-
|
|
59
|
+
dispatch(apiStore).setFeatureProp("post-featured-image-card-focus-targeting", "installed", true);
|
|
59
60
|
function wrapPostFeaturedImage(OriginalComponent) {
|
|
60
61
|
return (props) => {
|
|
61
62
|
const [inFocusMode, setInFocusMode] = useState(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-featured-image.js","sourceRoot":"","sources":["../../src/editor/post-featured-image.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAExE,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,sBAAsB,EAAE,KAAK,IAAI,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAC,SAAS,EAAE,YAAY,EAAC,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAC,EAAE,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"post-featured-image.js","sourceRoot":"","sources":["../../src/editor/post-featured-image.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import apiFetch from "@wordpress/api-fetch";
|
|
2
|
+
export type ApiCallArgs = [string, string][] | Record<string, string> | string | undefined;
|
|
3
|
+
export declare function registerSimpleGutenbergApiEndpoint<T>(name: string, endpoint: ((args: ApiCallArgs, key: string) => T) | Parameters<typeof apiFetch<T>>[0], options?: {
|
|
4
|
+
namespace?: string;
|
|
5
|
+
transformer?: (response: Awaited<T>, args: ApiCallArgs, key: string) => unknown;
|
|
6
|
+
}): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import apiFetch from "@wordpress/api-fetch";
|
|
2
|
+
import { addFilter } from "@wordpress/hooks";
|
|
3
|
+
export function registerSimpleGutenbergApiEndpoint(name, endpoint, options) {
|
|
4
|
+
const namespace = options?.namespace ? options.namespace : `simple-gutenberg-api-endpoint-${name}`;
|
|
5
|
+
if (typeof endpoint === 'function') {
|
|
6
|
+
addFilter(`plaudit-common.simple-gutenberg-apis.endpoint.${name}.fetcher`, namespace, endpoint);
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
addFilter(`plaudit-common.simple-gutenberg-apis.endpoint.${name}.fetcher`, namespace, () => apiFetch(endpoint));
|
|
10
|
+
}
|
|
11
|
+
if (options?.transformer) {
|
|
12
|
+
addFilter(`plaudit-common.simple-gutenberg-apis.endpoint.${name}.transformer`, namespace, options.transformer);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=simple-gutenberg-endpoints-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-gutenberg-endpoints-api.js","sourceRoot":"","sources":["../../src/editor/simple-gutenberg-endpoints-api.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAG3C,MAAM,UAAU,kCAAkC,CACjD,IAAY,EAAE,QAAmF,EACjG,OAA+G;IAE/G,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,iCAAiC,IAAI,EAAE,CAAC;IACnG,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACpC,SAAS,CAAC,iDAAiD,IAAI,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjG,CAAC;SAAM,CAAC;QACP,SAAS,CAAC,iDAAiD,IAAI,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjH,CAAC;IACD,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;QAC1B,SAAS,CAAC,iDAAiD,IAAI,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAChH,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ApiCallArgs } from "./simple-gutenberg-endpoints-api";
|
|
2
|
+
type ResponseCacheEntry = {
|
|
3
|
+
args: ApiCallArgs;
|
|
4
|
+
value: unknown;
|
|
5
|
+
};
|
|
6
|
+
type State = {
|
|
7
|
+
[key in string]: {
|
|
8
|
+
[argsKey in string]: ResponseCacheEntry;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
type SetterAction<K extends keyof State> = {
|
|
12
|
+
type: 'SET';
|
|
13
|
+
key: K;
|
|
14
|
+
args: ApiCallArgs;
|
|
15
|
+
value: State[K][string];
|
|
16
|
+
};
|
|
17
|
+
export declare function installSimpleGutenbergApisSupport(): void;
|
|
18
|
+
export declare const store: import("@wordpress/data/build-types/types").StoreDescriptor<import("@wordpress/data/build-types/types").ReduxStoreConfig<State, {
|
|
19
|
+
set<K extends keyof State>(key: K, args: ApiCallArgs, value: State[K][string]): SetterAction<K>;
|
|
20
|
+
}, {
|
|
21
|
+
get(state: State, key: keyof State, args?: ApiCallArgs): unknown;
|
|
22
|
+
}>>;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { createReduxStore, dispatch, register, select } from '@wordpress/data';
|
|
2
|
+
import { applyFilters, hasFilter } from "@wordpress/hooks";
|
|
3
|
+
import { store as apiStore } from "../lib/gutenberg-api-extensions-state";
|
|
4
|
+
function argsToKey(args) {
|
|
5
|
+
return args ? new URLSearchParams(args).toString() : "";
|
|
6
|
+
}
|
|
7
|
+
export function installSimpleGutenbergApisSupport() {
|
|
8
|
+
if (select(apiStore).featureProp("simple-gutenberg-apis-support", "installed")) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
dispatch(apiStore).setFeatureProp("simple-gutenberg-apis-support", "installed", true);
|
|
12
|
+
register(store);
|
|
13
|
+
}
|
|
14
|
+
//TODO: Should I merge this into the library-wide store?
|
|
15
|
+
const DEFAULT_STATE = {};
|
|
16
|
+
const actions = {
|
|
17
|
+
set(key, args, value) {
|
|
18
|
+
return { type: 'SET', key, args, value };
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export const store = createReduxStore('simple-gutenberg-apis', {
|
|
22
|
+
initialState: DEFAULT_STATE,
|
|
23
|
+
reducer(state, action) {
|
|
24
|
+
switch (action.type) {
|
|
25
|
+
case "SET":
|
|
26
|
+
return { ...state, [action.key]: { ...state[action.key], [argsToKey(action.args)]: action.value } };
|
|
27
|
+
}
|
|
28
|
+
return state;
|
|
29
|
+
},
|
|
30
|
+
actions,
|
|
31
|
+
selectors: {
|
|
32
|
+
get(state, key, args) {
|
|
33
|
+
return state[key]?.[argsToKey(args)]?.value;
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
resolvers: {
|
|
37
|
+
get: (key, args) => async ({ dispatch }) => {
|
|
38
|
+
const filterPrefix = `plaudit-common.simple-gutenberg-apis.endpoint.${key}.`;
|
|
39
|
+
if (!hasFilter(filterPrefix + "fetcher")) {
|
|
40
|
+
throw new Error(`Attempted to fetch data from an unmapped endpoint: ${key}`);
|
|
41
|
+
}
|
|
42
|
+
const rawResponse = await applyFilters(filterPrefix + "fetcher", args, key);
|
|
43
|
+
dispatch.set(key, args, { args, value: await applyFilters(filterPrefix + "transformer", rawResponse, args, key) });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=simple-gutenberg-endpoints-impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-gutenberg-endpoints-impl.js","sourceRoot":"","sources":["../../src/editor/simple-gutenberg-endpoints-impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAC,YAAY,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAIzD,OAAO,EAAC,KAAK,IAAI,QAAQ,EAAC,MAAM,uCAAuC,CAAC;AAMxE,SAAS,SAAS,CAAC,IAAiB;IACnC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AACD,MAAM,UAAU,iCAAiC;IAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,+BAA+B,EAAE,WAAW,CAAC,EAAE,CAAC;QAChF,OAAO;IACR,CAAC;IACD,QAAQ,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,+BAA+B,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IACtF,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED,wDAAwD;AACxD,MAAM,aAAa,GAAU,EAAE,CAAC;AAChC,MAAM,OAAO,GAAG;IACf,GAAG,CAAwB,GAAM,EAAE,IAAiB,EAAE,KAAuB;QAC5E,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;IACxC,CAAC;CACD,CAAC;AACF,MAAM,CAAC,MAAM,KAAK,GAAG,gBAAgB,CAAC,uBAAuB,EAAE;IAC9D,YAAY,EAAE,aAAa;IAC3B,OAAO,CAAC,KAAY,EAAE,MAA2E;QAChG,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,KAAK;gBACT,OAAO,EAAC,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAC,EAAC,CAAC;QAClG,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO;IACP,SAAS,EAAE;QACV,GAAG,CAAC,KAAY,EAAE,GAAgB,EAAE,IAAkB;YACrD,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;QAC7C,CAAC;KACD;IACD,SAAS,EAAE;QACV,GAAG,EAAE,CAAC,GAAgB,EAAE,IAAkB,EAAE,EAAE,CAAC,KAAK,EAAE,EAAC,QAAQ,EAA6B,EAAE,EAAE;YAC/F,MAAM,YAAY,GAAG,iDAAiD,GAAG,GAAG,CAAC;YAC7E,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,sDAAsD,GAAG,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,YAAY,GAAG,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5E,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC,YAAY,GAAG,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,EAAC,CAAC,CAAC;QAClH,CAAC;KACD;CACD,CAAC,CAAC"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
export * from "./blocks";
|
|
2
2
|
export * from "./controls";
|
|
3
|
+
export * from "./editor/simple-gutenberg-endpoints-api";
|
|
3
4
|
export * from "./lib/plaudit-icons";
|
|
4
|
-
|
|
5
|
+
export * from "./lib/suspense";
|
|
6
|
+
export type * from "./lib/useful-types";
|
|
5
7
|
export declare function installGutenbergExtensions(): void;
|
|
6
|
-
declare module 'react' {
|
|
7
|
-
interface HTMLAttributes<T> {
|
|
8
|
-
onPointerEnterCapture?: (e: ReactPointerEvent<T>) => void;
|
|
9
|
-
onPointerLeaveCapture?: (e: ReactPointerEvent<T>) => void;
|
|
10
|
-
}
|
|
11
|
-
interface RefAttributes<T> {
|
|
12
|
-
onPointerEnterCapture?: (e: ReactPointerEvent<T>) => void;
|
|
13
|
-
onPointerLeaveCapture?: (e: ReactPointerEvent<T>) => void;
|
|
14
|
-
}
|
|
15
|
-
}
|
package/build/index.js
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
|
+
import { dispatch, select } from "@wordpress/data";
|
|
2
|
+
import { installSimpleNativePropertiesSupport } from "./blocks/simple-native-property-impl";
|
|
3
|
+
import { installPostFeaturedImageCardFocusTargeting } from "./editor/post-featured-image";
|
|
4
|
+
import { installSimpleGutenbergApisSupport } from "./editor/simple-gutenberg-endpoints-impl";
|
|
5
|
+
import { store as apiStore } from "./lib/gutenberg-api-extensions-state";
|
|
1
6
|
export * from "./blocks";
|
|
2
7
|
export * from "./controls";
|
|
8
|
+
export * from "./editor/simple-gutenberg-endpoints-api";
|
|
3
9
|
export * from "./lib/plaudit-icons";
|
|
4
|
-
|
|
5
|
-
import { installPostFeaturedImageCardFocusTargeting } from "./editor/post-featured-image";
|
|
10
|
+
export * from "./lib/suspense";
|
|
6
11
|
export function installGutenbergExtensions() {
|
|
7
|
-
if (
|
|
12
|
+
if (select(apiStore).featureProp("gutenberg-api-extensions", "installed")) {
|
|
8
13
|
return;
|
|
9
14
|
}
|
|
10
|
-
|
|
15
|
+
dispatch(apiStore).setFeatureProp("gutenberg-api-extensions", "installed", true);
|
|
11
16
|
installSimpleNativePropertiesSupport();
|
|
12
17
|
installPostFeaturedImageCardFocusTargeting();
|
|
18
|
+
installSimpleGutenbergApisSupport();
|
|
13
19
|
}
|
|
14
20
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAC,oCAAoC,EAAC,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAC,0CAA0C,EAAC,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAC,iCAAiC,EAAC,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAAC,KAAK,IAAI,QAAQ,EAAC,MAAM,sCAAsC,CAAC;AAEvE,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,yCAAyC,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAG/B,MAAM,UAAU,0BAA0B;IACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,0BAA0B,EAAE,WAAW,CAAC,EAAE,CAAC;QAC3E,OAAO;IACR,CAAC;IACD,QAAQ,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,0BAA0B,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAEjF,oCAAoC,EAAE,CAAC;IACvC,0CAA0C,EAAE,CAAC;IAC7C,iCAAiC,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { registerBlockBindingsSource } from "@wordpress/blocks";
|
|
2
|
+
import type { DbSource } from "../../blocks";
|
|
3
|
+
import type { State } from "../gutenberg-api-extensions-state";
|
|
4
|
+
export type CustomBlockBindingsSupportLogicActions = {
|
|
5
|
+
type: 'ADD_CUSTOM_BLOCK_BINDINGS_SOURCE';
|
|
6
|
+
name: string;
|
|
7
|
+
value: {
|
|
8
|
+
dbSources?: DbSource[];
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export declare const customBlockBindingsSupportLogicActions: {
|
|
12
|
+
registerCustomBlockBindingsSource(args: Parameters<typeof registerBlockBindingsSource>[0] & {
|
|
13
|
+
dbSources?: DbSource[];
|
|
14
|
+
}): {
|
|
15
|
+
type: string;
|
|
16
|
+
name: string;
|
|
17
|
+
value: {
|
|
18
|
+
dbSources: (DBSource[] & DbSource[]) | undefined;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export declare const customBlockBindingsSupportLogicSelectors: {
|
|
23
|
+
customBlockBindingsSource(state: State, name: string): {
|
|
24
|
+
dbSources?: DbSource[];
|
|
25
|
+
} | undefined;
|
|
26
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { registerBlockBindingsSource } from "@wordpress/blocks";
|
|
2
|
+
export const customBlockBindingsSupportLogicActions = {
|
|
3
|
+
registerCustomBlockBindingsSource(args) {
|
|
4
|
+
const { dbSources, ...actualArgs } = args;
|
|
5
|
+
registerBlockBindingsSource('getValue' in actualArgs ? actualArgs : { ...actualArgs, getValue: () => ({}) });
|
|
6
|
+
return { type: 'ADD_CUSTOM_BLOCK_BINDINGS_SOURCE', name: actualArgs.name, value: { dbSources } };
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
export const customBlockBindingsSupportLogicSelectors = {
|
|
10
|
+
customBlockBindingsSource(state, name) {
|
|
11
|
+
return state.customBlockBindingsSupport[name];
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=custom-block-bindings-support-logic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-block-bindings-support-logic.js","sourceRoot":"","sources":["../../../src/lib/gutenberg-api-extensions-state/custom-block-bindings-support-logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAC,MAAM,mBAAmB,CAAC;AAQ9D,MAAM,CAAC,MAAM,sCAAsC,GAAG;IACrD,iCAAiC,CAAC,IAAgF;QACjH,MAAM,EAAC,SAAS,EAAE,GAAG,UAAU,EAAC,GAAG,IAAI,CAAC;QACxC,2BAA2B,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAC,GAAG,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;QAC3G,OAAO,EAAC,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAC,SAAS,EAAC,EAAC,CAAC;IAC9F,CAAC;CACD,CAAC;AACF,MAAM,CAAC,MAAM,wCAAwC,GAAG;IACvD,yBAAyB,CAAC,KAAY,EAAE,IAAY;QACnD,OAAO,KAAK,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BlockName, PDSimpleNativeProperty } from "../../blocks";
|
|
2
|
+
import { NamedBlockAction, State } from "../gutenberg-api-extensions-state";
|
|
3
|
+
export type LayeredBlockStylesLogicActions = NamedBlockAction<'ADD_LAYERED_BLOCK_STYLES', {
|
|
4
|
+
properties: PDSimpleNativeProperty[];
|
|
5
|
+
}> | NamedBlockAction<'SET_LAYERED_BLOCK_STYLES', {
|
|
6
|
+
properties: {
|
|
7
|
+
[name in string]: PDSimpleNativeProperty;
|
|
8
|
+
};
|
|
9
|
+
}>;
|
|
10
|
+
export declare const layeredBlockStylesLogicActions: {
|
|
11
|
+
addLayeredBlockStyles(blockName: BlockName, properties: PDSimpleNativeProperty[]): {
|
|
12
|
+
type: string;
|
|
13
|
+
blockName: `${string}/${string}`;
|
|
14
|
+
properties: PDSimpleNativeProperty[];
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export declare const layeredBlockStylesLogicSelectors: {
|
|
18
|
+
blockStylesLayer(state: State, blockName: BlockName, layerName: string): PDSimpleNativeProperty | undefined;
|
|
19
|
+
blockStylesLayers(state: State, blockName: BlockName): {
|
|
20
|
+
[x: string]: PDSimpleNativeProperty;
|
|
21
|
+
} | undefined;
|
|
22
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const layeredBlockStylesLogicActions = {
|
|
2
|
+
addLayeredBlockStyles(blockName, properties) {
|
|
3
|
+
return { type: 'ADD_LAYERED_BLOCK_STYLES', blockName, properties };
|
|
4
|
+
}
|
|
5
|
+
};
|
|
6
|
+
export const layeredBlockStylesLogicSelectors = {
|
|
7
|
+
blockStylesLayer(state, blockName, layerName) {
|
|
8
|
+
return state.layeredBlockStyles[blockName]?.[layerName];
|
|
9
|
+
},
|
|
10
|
+
blockStylesLayers(state, blockName) {
|
|
11
|
+
return state.layeredBlockStyles[blockName];
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=layered-block-styles-logic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layered-block-styles-logic.js","sourceRoot":"","sources":["../../../src/lib/gutenberg-api-extensions-state/layered-block-styles-logic.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC7C,qBAAqB,CAAC,SAAoB,EAAE,UAAoC;QAC/E,OAAO,EAAC,IAAI,EAAE,0BAA0B,EAAE,SAAS,EAAE,UAAU,EAAC,CAAC;IAClE,CAAC;CACD,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC/C,gBAAgB,CAAC,KAAY,EAAE,SAAoB,EAAE,SAAiB;QACrE,OAAO,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IACD,iBAAiB,CAAC,KAAY,EAAE,SAAoB;QACnD,OAAO,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BlockName, PropertiesParameter, SimpleNativePanel, SimpleNativeTab } from "../../blocks";
|
|
2
|
+
import { ExtraPropTransformsConfig, PerBlockExtraPropTransforms, PreppedSimpleNativePanelsAndTabs } from "../../blocks/simple-native-property-internal-shared";
|
|
3
|
+
import { RegisterBlockAttrs } from "../../blocks/snp-api";
|
|
4
|
+
import { BareProperties, NamedBlockAction, State } from "../gutenberg-api-extensions-state";
|
|
5
|
+
export type SNPLogicActions = {
|
|
6
|
+
type: 'ADD_PROPERTIES';
|
|
7
|
+
blockName: BlockName | BlockName[];
|
|
8
|
+
properties: BareProperties;
|
|
9
|
+
} | NamedBlockAction<'SET_PREPPED_PROPERTIES', {
|
|
10
|
+
properties: PreppedSimpleNativePanelsAndTabs | false;
|
|
11
|
+
}> | NamedBlockAction<'ADD_OR_UPDATE_EXTRA_PROP_TRANSFORM', {
|
|
12
|
+
propPath: string;
|
|
13
|
+
extraPropTransform: ExtraPropTransformsConfig[string];
|
|
14
|
+
}> | NamedBlockAction<'SET_EXTRA_PROP_TRANSFORMS', {
|
|
15
|
+
extraPropTransforms: ExtraPropTransformsConfig;
|
|
16
|
+
}> | NamedBlockAction<'SET_COMPUTED_EXTRA_PROP_TRANSFORMS', {
|
|
17
|
+
computedExtraPropTransforms: PerBlockExtraPropTransforms | false | undefined;
|
|
18
|
+
}>;
|
|
19
|
+
export declare const snpLogicActions: {
|
|
20
|
+
addProperties(blockName: BlockName | BlockName[], properties: BareProperties): SNPLogicActions;
|
|
21
|
+
addOrUpdateExtraPropTransform(blockName: BlockName, propPath: string, extraPropTransform: ExtraPropTransformsConfig[string]): SNPLogicActions;
|
|
22
|
+
setComputedExtraPropTransforms(blockName: BlockName, computedExtraPropTransforms: PerBlockExtraPropTransforms | false): SNPLogicActions;
|
|
23
|
+
setPreppedProperties(blockName: BlockName, properties: PreppedSimpleNativePanelsAndTabs | false): SNPLogicActions;
|
|
24
|
+
};
|
|
25
|
+
export declare const snpLogicSelectors: {
|
|
26
|
+
desiccatedProperties(state: State, blockName: BlockName): (SimpleNativePanel | SimpleNativeTab)[] | undefined;
|
|
27
|
+
preppedProperties(state: State, blockName: BlockName): false | PreppedSimpleNativePanelsAndTabs;
|
|
28
|
+
extraPropTransforms(state: State, blockName: BlockName): ExtraPropTransformsConfig | undefined;
|
|
29
|
+
computedExtraPropTransforms(state: State, blockName: BlockName): false | PerBlockExtraPropTransforms;
|
|
30
|
+
};
|
|
31
|
+
export declare function addProperties(block: BlockName, properties: PropertiesParameter, simpleNativePanelsAndTabs: State['desiccatedProperties']): void;
|
|
32
|
+
/**
|
|
33
|
+
* This performs the one-time prep for rendering the registered SNP panels and tabs for a Block.
|
|
34
|
+
*
|
|
35
|
+
* @param block the name of the block to prep
|
|
36
|
+
* @param items the properties sourced from the datastore
|
|
37
|
+
* @returns either false or an object with at least one declared panel or tab.
|
|
38
|
+
* This guarantee is made in order to avoid having to perform more convoluted checks in the render methods
|
|
39
|
+
*/
|
|
40
|
+
export declare function prepSimpleNativePanelsAndTabs(block: BlockName, items: Array<SimpleNativePanel | SimpleNativeTab> | undefined): PreppedSimpleNativePanelsAndTabs | false;
|
|
41
|
+
export declare function computeExtraPropTransforms(blockType: RegisterBlockAttrs, extraPropTransforms: ExtraPropTransformsConfig | undefined): PerBlockExtraPropTransforms | false;
|