@plaudit/gutenberg-api-extensions 2.8.0 → 2.10.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.
Files changed (91) hide show
  1. package/build/blocks/common-native-property-implementations.d.ts +118 -0
  2. package/build/blocks/common-native-property-implementations.js +141 -20
  3. package/build/blocks/common-native-property-implementations.js.map +1 -1
  4. package/build/blocks/index.d.ts +5 -0
  5. package/build/blocks/layered-styles.d.ts +31 -0
  6. package/build/blocks/layered-styles.js +9 -7
  7. package/build/blocks/layered-styles.js.map +1 -1
  8. package/build/blocks/simple-block.d.ts +22 -0
  9. package/build/blocks/simple-block.js +10 -6
  10. package/build/blocks/simple-block.js.map +1 -1
  11. package/build/blocks/simple-native-property.d.ts +30 -0
  12. package/build/blocks/simple-native-property.js +106 -95
  13. package/build/blocks/simple-native-property.js.map +1 -1
  14. package/build/controls/AsynchronousFormTokenField.d.ts +20 -0
  15. package/build/controls/AsynchronousFormTokenField.js +23 -12
  16. package/build/controls/AsynchronousFormTokenField.js.map +1 -1
  17. package/build/controls/ExtendedPostPicker.d.ts +13 -0
  18. package/build/controls/ExtendedPostPicker.js +5 -10
  19. package/build/controls/ExtendedPostPicker.js.map +1 -1
  20. package/build/controls/InspectorPanel.d.ts +6 -0
  21. package/build/controls/InspectorPanel.js +3 -2
  22. package/build/controls/InspectorPanel.js.map +1 -1
  23. package/build/controls/LazySuggestionsComboboxControl.d.ts +7 -0
  24. package/build/controls/LazySuggestionsComboboxControl.js +70 -0
  25. package/build/controls/LazySuggestionsComboboxControl.js.map +1 -0
  26. package/build/controls/PickOne.d.ts +19 -0
  27. package/build/controls/PickOne.js +8 -7
  28. package/build/controls/PickOne.js.map +1 -1
  29. package/build/controls/SimpleToggle.d.ts +3 -0
  30. package/build/controls/SimpleToggle.js +2 -2
  31. package/build/controls/SimpleToggle.js.map +1 -1
  32. package/build/controls/SortableItemsControl.d.ts +11 -0
  33. package/build/controls/SortableItemsControl.js +154 -0
  34. package/build/controls/SortableItemsControl.js.map +1 -0
  35. package/{src/controls/index.ts → build/controls/index.d.ts} +1 -0
  36. package/build/controls/index.js +1 -0
  37. package/build/controls/index.js.map +1 -1
  38. package/build/controls/shared.d.ts +8 -0
  39. package/build/controls/shared.js +7 -0
  40. package/build/controls/shared.js.map +1 -0
  41. package/build/controls/types.d.ts +12 -0
  42. package/build/lib/plaudit-icons/column-1.d.ts +2 -0
  43. package/build/lib/plaudit-icons/column-1.js +3 -2
  44. package/build/lib/plaudit-icons/column-1.js.map +1 -1
  45. package/build/lib/plaudit-icons/column-2.d.ts +2 -0
  46. package/build/lib/plaudit-icons/column-2.js +3 -2
  47. package/build/lib/plaudit-icons/column-2.js.map +1 -1
  48. package/build/lib/plaudit-icons/column-3.d.ts +2 -0
  49. package/build/lib/plaudit-icons/column-3.js +3 -2
  50. package/build/lib/plaudit-icons/column-3.js.map +1 -1
  51. package/build/lib/plaudit-icons/placement-center.d.ts +2 -0
  52. package/build/lib/plaudit-icons/placement-center.js +3 -2
  53. package/build/lib/plaudit-icons/placement-center.js.map +1 -1
  54. package/build/lib/plaudit-icons/placement-end.d.ts +2 -0
  55. package/build/lib/plaudit-icons/placement-end.js +3 -2
  56. package/build/lib/plaudit-icons/placement-end.js.map +1 -1
  57. package/build/lib/plaudit-icons/placement-start.d.ts +2 -0
  58. package/build/lib/plaudit-icons/placement-start.js +3 -2
  59. package/build/lib/plaudit-icons/placement-start.js.map +1 -1
  60. package/build/lib/plaudit-icons/placement-stretch.d.ts +2 -0
  61. package/build/lib/plaudit-icons/placement-stretch.js +3 -2
  62. package/build/lib/plaudit-icons/placement-stretch.js.map +1 -1
  63. package/build/lib/plaudit-icons/plaudit-icon.d.ts +2 -0
  64. package/build/lib/plaudit-icons/plaudit-icon.js +3 -2
  65. package/build/lib/plaudit-icons/plaudit-icon.js.map +1 -1
  66. package/build/lib/plaudit-icons/reusable-block-marker.d.ts +2 -0
  67. package/build/lib/plaudit-icons/reusable-block-marker.js +3 -2
  68. package/build/lib/plaudit-icons/reusable-block-marker.js.map +1 -1
  69. package/{src/lib/plaudit-icons.ts → build/lib/plaudit-icons.d.ts} +0 -4
  70. package/package.json +14 -14
  71. package/src/blocks/common-native-property-implementations.tsx +0 -271
  72. package/src/blocks/index.ts +0 -12
  73. package/src/blocks/layered-styles.tsx +0 -108
  74. package/src/blocks/simple-block.tsx +0 -72
  75. package/src/blocks/simple-native-property.tsx +0 -200
  76. package/src/controls/AsynchronousFormTokenField.tsx +0 -151
  77. package/src/controls/ExtendedPostPicker.tsx +0 -50
  78. package/src/controls/InspectorPanel.tsx +0 -16
  79. package/src/controls/PickOne.tsx +0 -80
  80. package/src/controls/SimpleToggle.tsx +0 -9
  81. package/src/controls/types.ts +0 -11
  82. package/src/lib/plaudit-icons/column-1.tsx +0 -8
  83. package/src/lib/plaudit-icons/column-2.tsx +0 -8
  84. package/src/lib/plaudit-icons/column-3.tsx +0 -8
  85. package/src/lib/plaudit-icons/placement-center.tsx +0 -5
  86. package/src/lib/plaudit-icons/placement-end.tsx +0 -5
  87. package/src/lib/plaudit-icons/placement-start.tsx +0 -5
  88. package/src/lib/plaudit-icons/placement-stretch.tsx +0 -5
  89. package/src/lib/plaudit-icons/plaudit-icon.tsx +0 -6
  90. package/src/lib/plaudit-icons/reusable-block-marker.tsx +0 -5
  91. /package/{src/index.ts → build/index.d.ts} +0 -0
@@ -0,0 +1,30 @@
1
+ import type { ActualBlockEditProps } from "./common-native-property-implementations";
2
+ import { type ReactElement } from "react";
3
+ export type InspectorPanelGroup = 'default' | 'advanced' | 'background' | 'border' | 'color' | 'dimensions' | 'effects' | 'filter' | 'list' | 'position' | 'settings' | 'styles' | 'typography';
4
+ type GenericSimpleNativeProperty<T, V extends 'string' | 'number' | 'boolean' | 'array' | 'object'> = {
5
+ name: string;
6
+ type: V;
7
+ enum?: T[];
8
+ default?: T;
9
+ alwaysStore?: boolean;
10
+ renderer(value: T | undefined, onChange: (v: T | undefined) => void): ReactElement;
11
+ condition?(blockEditProps: ActualBlockEditProps): boolean;
12
+ };
13
+ export type SimpleNativeProperty = GenericSimpleNativeProperty<string, 'string'> & {
14
+ enum?: string[];
15
+ } | GenericSimpleNativeProperty<number, 'number'> & {
16
+ enum?: number[];
17
+ } | GenericSimpleNativeProperty<boolean, 'boolean'> | GenericSimpleNativeProperty<any[], 'array'> | GenericSimpleNativeProperty<Record<string | number, unknown>, 'object'>;
18
+ export type SimpleNativePanel = {
19
+ title: string;
20
+ group?: InspectorPanelGroup;
21
+ initialOpen?: boolean;
22
+ properties: SimpleNativeProperty[];
23
+ condition?(blockEditProps: ActualBlockEditProps): boolean;
24
+ };
25
+ export declare function registerSimpleNativeProperties(config: {
26
+ block: `${string}/${string}` | Array<`${string}/${string}`>;
27
+ panel: SimpleNativePanel | Array<SimpleNativePanel>;
28
+ }): void;
29
+ export declare function installSimpleNativePropertiesSupport(): void;
30
+ export {};
@@ -1,8 +1,7 @@
1
- import { createElement as _createElement } from "react";
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
1
  import { createHigherOrderComponent } from "@wordpress/compose";
4
2
  import { addFilter } from "@wordpress/hooks";
5
3
  import { InspectorPanel } from "../controls";
4
+ import React from "react";
6
5
  export function registerSimpleNativeProperties(config) {
7
6
  const simpleNativePanels = window.plauditSimpleNativePanels ?? (window.plauditSimpleNativePanels = {});
8
7
  if (Array.isArray(config.block)) {
@@ -29,38 +28,41 @@ export function installSimpleNativePropertiesSupport() {
29
28
  }
30
29
  window.plauditSimpleNativePropertiesSupportInstalled = true;
31
30
  const simpleNativePanels = window.plauditSimpleNativePanels ?? (window.plauditSimpleNativePanels = {});
31
+ function attachSNP(property, injectableProperties) {
32
+ const attrPath = property.name.split('.');
33
+ if (attrPath.length === 1) {
34
+ injectableProperties[property.name] = { type: property.type, default: property.alwaysStore ? undefined : property.default };
35
+ if ('enum' in property) {
36
+ injectableProperties[property.name].enum = property.enum;
37
+ }
38
+ }
39
+ else {
40
+ let actualProp = injectableProperties[attrPath[0]];
41
+ if (actualProp === undefined) {
42
+ injectableProperties[attrPath[0]] = actualProp = { type: "object" };
43
+ }
44
+ else if (actualProp.type !== "object") {
45
+ throw new Error(`Property type collision on ${property.name}. Attempted treat the property as an object when it was already a ${actualProp.type}`);
46
+ }
47
+ if (property.default !== undefined) {
48
+ if (actualProp.default === undefined) {
49
+ actualProp.default = {};
50
+ }
51
+ let target = actualProp.default;
52
+ for (let i = 1; i < attrPath.length - 1; i++) {
53
+ target = target[attrPath[i]] = {};
54
+ }
55
+ target[attrPath[attrPath.length - 1]] = property.default;
56
+ }
57
+ }
58
+ }
32
59
  addFilter('blocks.registerBlockType', 'plaudit/gutenberg-api-extensions/attach-simple-native-properties', (atts) => {
33
60
  const blockSimpleNativePanels = simpleNativePanels[atts.name];
34
61
  if (blockSimpleNativePanels) {
35
62
  const injectableProperties = {};
36
63
  for (const blockSimpleNativePanel of blockSimpleNativePanels) {
37
64
  for (const property of blockSimpleNativePanel.properties) {
38
- const attrPath = property.name.split('.');
39
- if (attrPath.length === 1) {
40
- injectableProperties[property.name] = { type: property.type, default: property.alwaysStore ? undefined : property.default };
41
- if ('enum' in property) {
42
- injectableProperties[property.name].enum = property.enum;
43
- }
44
- }
45
- else {
46
- let actualProp = injectableProperties[attrPath[0]];
47
- if (actualProp === undefined) {
48
- injectableProperties[attrPath[0]] = actualProp = { type: "object" };
49
- }
50
- else if (actualProp.type !== "object") {
51
- throw new Error(`Property type collision on ${property.name}. Attempted treat the property as an object when it was already a ${actualProp.type}`);
52
- }
53
- if (property.default !== undefined) {
54
- if (actualProp.default === undefined) {
55
- actualProp.default = {};
56
- }
57
- let target = actualProp.default;
58
- for (let i = 1; i < attrPath.length - 1; i++) {
59
- target = target[attrPath[i]] = {};
60
- }
61
- target[attrPath[attrPath.length - 1]] = property.default;
62
- }
63
- }
65
+ attachSNP(property, injectableProperties);
64
66
  }
65
67
  }
66
68
  for (const [name, config] of Object.entries(injectableProperties)) {
@@ -83,78 +85,87 @@ export function installSimpleNativePropertiesSupport() {
83
85
  currentLayer[attrPath[attrPath.length - 1]] = value;
84
86
  blockEditProps.setAttributes({ [attrPath[0]]: payload });
85
87
  }
88
+ function getExistingValue(blockEditProps, prop) {
89
+ const propPath = prop.name.split('.');
90
+ if (propPath.length === 1) {
91
+ let existingValue = blockEditProps.attributes[prop.name];
92
+ if (existingValue === undefined && prop.default !== undefined) {
93
+ existingValue = prop.default;
94
+ blockEditProps.setAttributes({ [prop.name]: prop.default });
95
+ }
96
+ return existingValue;
97
+ }
98
+ else {
99
+ let graphExistingValue = blockEditProps.attributes[propPath[0]];
100
+ if (graphExistingValue === undefined) {
101
+ blockEditProps.attributes[propPath[0]] = graphExistingValue = {};
102
+ }
103
+ for (let i = 1; i < propPath.length; i++) {
104
+ if (graphExistingValue[propPath[i]] === undefined) {
105
+ for (; i < propPath.length - 1; i++) {
106
+ graphExistingValue = graphExistingValue[propPath[i]] = {};
107
+ }
108
+ graphExistingValue[propPath[propPath.length - 1]] = prop.default;
109
+ if (prop.default !== undefined) {
110
+ blockEditProps.setAttributes({ [propPath[0]]: blockEditProps.attributes[propPath[0]] });
111
+ }
112
+ break;
113
+ }
114
+ else {
115
+ graphExistingValue = graphExistingValue[propPath[i]];
116
+ }
117
+ }
118
+ return graphExistingValue ?? prop.default;
119
+ }
120
+ }
121
+ function renderPropertyComponent(blockEditProps, prop) {
122
+ let existingValue = getExistingValue(blockEditProps, prop);
123
+ let ele;
124
+ if (prop.type === "array") { // If the value is not an array or is a sparse array, then it will cause unrecoverable errors upon conversion to PHP
125
+ if (existingValue !== undefined && (!Array.isArray(existingValue) || existingValue.length > existingValue.filter(() => true).length)) {
126
+ throw new Error(`Invalid value passed to an array-type property: ${existingValue}`);
127
+ }
128
+ ele = prop.renderer(existingValue, value => setDottedAttribute(blockEditProps, prop.name, value));
129
+ }
130
+ else if (prop.type === "object") {
131
+ if (existingValue !== undefined && (Array.isArray(existingValue) || typeof existingValue !== 'object')) {
132
+ throw new Error(`Invalid value passed to an object-type property: ${existingValue}`);
133
+ }
134
+ ele = prop.renderer(existingValue, value => setDottedAttribute(blockEditProps, prop.name, value));
135
+ }
136
+ else if (prop.type === "boolean") {
137
+ if (typeof existingValue !== 'boolean' && existingValue !== undefined) {
138
+ existingValue = !!existingValue;
139
+ }
140
+ ele = prop.renderer(existingValue, value => setDottedAttribute(blockEditProps, prop.name, value));
141
+ }
142
+ else if (prop.type === "string") {
143
+ if (typeof existingValue !== 'string' && existingValue !== undefined) {
144
+ existingValue = existingValue.toString();
145
+ }
146
+ ele = prop.renderer(existingValue, value => setDottedAttribute(blockEditProps, prop.name, value));
147
+ }
148
+ else {
149
+ if (typeof existingValue !== 'number' && existingValue !== undefined) {
150
+ existingValue = parseFloat(existingValue);
151
+ }
152
+ ele = prop.renderer(existingValue, value => setDottedAttribute(blockEditProps, prop.name, value));
153
+ }
154
+ return prop.condition === undefined || prop.condition(blockEditProps) ? ele : undefined;
155
+ }
86
156
  addFilter('editor.BlockEdit', 'plaudit/gutenberg-api-extensions/simple-native-properties', createHigherOrderComponent(BlockEdit => (blockEditProps) => {
87
157
  const blockSimpleNativePanels = simpleNativePanels[blockEditProps.name];
88
158
  if (!blockSimpleNativePanels) {
89
- return _jsx(BlockEdit, { ...blockEditProps });
159
+ return React.createElement(BlockEdit, { ...blockEditProps });
90
160
  }
91
161
  let keyIndex = 0;
92
- return _jsxs(_Fragment, { children: [_jsx(BlockEdit, { ...blockEditProps }), ...blockSimpleNativePanels.map(p => {
93
- const items = p.properties.map(prop => {
94
- const propPath = prop.name.split('.');
95
- let existingValue;
96
- if (propPath.length === 1) {
97
- existingValue = blockEditProps.attributes[prop.name];
98
- if (existingValue === undefined) {
99
- existingValue = prop.default;
100
- blockEditProps.setAttributes({ [prop.name]: prop.default });
101
- }
102
- }
103
- else {
104
- let graphExistingValue = blockEditProps.attributes[propPath[0]];
105
- if (graphExistingValue === undefined) {
106
- blockEditProps.attributes[propPath[0]] = graphExistingValue = {};
107
- }
108
- for (let i = 1; i < propPath.length; i++) {
109
- if (graphExistingValue[propPath[i]] === undefined) {
110
- for (; i < propPath.length - 1; i++) {
111
- graphExistingValue = graphExistingValue[propPath[i]] = {};
112
- }
113
- graphExistingValue[propPath[propPath.length - 1]] = existingValue = prop.default;
114
- blockEditProps.setAttributes({ [propPath[0]]: blockEditProps.attributes[propPath[0]] });
115
- break;
116
- }
117
- else {
118
- graphExistingValue = graphExistingValue[propPath[i]];
119
- }
120
- }
121
- existingValue = graphExistingValue ?? prop.default;
122
- }
123
- let ele;
124
- if (prop.type === "array") { // If the value is not an array or is a sparse array, then it will cause unrecoverable errors upon conversion to PHP
125
- if (!Array.isArray(existingValue) || existingValue.length > existingValue.filter(() => true).length) {
126
- throw new Error(`Invalid value passed to an array-type property: ${existingValue}`);
127
- }
128
- ele = prop.renderer(existingValue, value => setDottedAttribute(blockEditProps, prop.name, value));
129
- }
130
- else if (prop.type === "object") {
131
- if (Array.isArray(existingValue) || typeof existingValue !== 'object') {
132
- throw new Error(`Invalid value passed to an object-type property: ${existingValue}`);
133
- }
134
- ele = prop.renderer(existingValue, value => setDottedAttribute(blockEditProps, prop.name, value));
135
- }
136
- else if (prop.type === "boolean") {
137
- if (typeof existingValue !== 'boolean' && existingValue !== undefined) {
138
- existingValue = !!existingValue;
139
- }
140
- ele = prop.renderer(existingValue, value => setDottedAttribute(blockEditProps, prop.name, value));
141
- }
142
- else if (prop.type === "string") {
143
- if (typeof existingValue !== 'string' && existingValue !== undefined) {
144
- existingValue = existingValue.toString();
145
- }
146
- ele = prop.renderer(existingValue, value => setDottedAttribute(blockEditProps, prop.name, value));
147
- }
148
- else {
149
- if (typeof existingValue !== 'number' && existingValue !== undefined) {
150
- existingValue = parseFloat(existingValue);
151
- }
152
- ele = prop.renderer(existingValue, value => setDottedAttribute(blockEditProps, prop.name, value));
153
- }
154
- return prop.condition === undefined || prop.condition(blockEditProps) ? ele : undefined;
155
- }).filter((ele) => ele !== undefined);
156
- return _createElement(InspectorPanel, { ...p, condition: () => items.length > 0 && (p.condition === undefined || p.condition(blockEditProps)), key: `plaudit-simple-native-property-${keyIndex++}` }, ...items);
157
- })] });
162
+ return React.createElement(React.Fragment, null,
163
+ React.createElement(BlockEdit, { ...blockEditProps }),
164
+ ...blockSimpleNativePanels.map(p => {
165
+ const items = p.properties.map(prop => renderPropertyComponent(blockEditProps, prop))
166
+ .filter((ele) => ele !== undefined);
167
+ return React.createElement(InspectorPanel, { ...p, condition: () => items.length > 0 && (p.condition === undefined || p.condition(blockEditProps)), key: `plaudit-simple-native-property-${keyIndex++}` }, ...items);
168
+ }));
158
169
  }, 'plauditGutenbergApiExtensionsSimpleNativeProperties'));
159
170
  }
160
171
  //# sourceMappingURL=simple-native-property.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"simple-native-property.js","sourceRoot":"","sources":["../../src/blocks/simple-native-property.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simple-native-property.js","sourceRoot":"","sources":["../../src/blocks/simple-native-property.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { TokenItem } from "@wordpress/components/build-types/form-token-field/types";
2
+ import React from "react";
3
+ export declare const enum ValidationState {
4
+ Valid = "success",
5
+ Invalid = "error",
6
+ Validating = "validating"
7
+ }
8
+ export interface AsynchronousFormTokenFieldProps {
9
+ label: string;
10
+ help?: string;
11
+ value?: string[];
12
+ onChange: (value: string[]) => void;
13
+ validationQuery(tokens: string[]): Promise<Array<TokenItem>>;
14
+ suggestionQuery(input: string): Promise<Array<string>>;
15
+ makeTokenFromSuggestion(suggestion: string): TokenItem;
16
+ validValues: Map<string, ValidationState>;
17
+ validator?: (value: string) => boolean;
18
+ multiple?: boolean;
19
+ }
20
+ export declare function AsynchronousFormTokenField(props: AsynchronousFormTokenFieldProps): React.JSX.Element;
@@ -1,8 +1,8 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
1
  import { Spinner, FormTokenField } from '@wordpress/components';
3
2
  import { __ } from "@wordpress/i18n";
4
3
  import { useEffect, useState } from '@wordpress/element';
5
4
  import debounce from "debounce";
5
+ import React from "react";
6
6
  // The strange values correspond to the literals that are expected by TokenItem.status, which allows the assignment code to be cleaner
7
7
  export var ValidationState;
8
8
  (function (ValidationState) {
@@ -83,30 +83,41 @@ export function AsynchronousFormTokenField(props) {
83
83
  }, 500)
84
84
  }));
85
85
  useEffect(() => {
86
- props.validationQuery(props.value).then(data => {
86
+ props.validationQuery(props.value ?? []).then(data => {
87
87
  const tokenLabels = new Map();
88
88
  for (const rep of data) {
89
89
  tokenLabels.set(rep.value, rep.title);
90
90
  props.validValues.set(rep.value, ValidationState.Valid);
91
91
  }
92
- for (const value of props.value) {
93
- if (!props.validValues.has(value)) {
94
- props.validValues.set(value, ValidationState.Invalid);
92
+ if (props.value) {
93
+ for (const value of props.value) {
94
+ if (!props.validValues.has(value)) {
95
+ props.validValues.set(value, ValidationState.Invalid);
96
+ }
95
97
  }
96
98
  }
97
- setCurrentTokens(props.value.map(value => ({ value, title: tokenLabels.get(value) ?? value, status: props.validValues.get(value) })));
99
+ setCurrentTokens(props.value?.map(value => ({ value, title: tokenLabels.get(value) ?? value, status: props.validValues.get(value) })) ?? []);
98
100
  setIsInitializing(false);
99
101
  });
100
102
  }, []);
101
103
  useEffect(() => myValidationRequestQueue.trigger(currentTokens), [currentTokens]);
102
104
  if (isInitializing) {
103
- return _jsx(Spinner, {});
105
+ return React.createElement(Spinner, null);
104
106
  }
105
107
  const tokenTitleMappings = new Map(currentTokens.map(currentToken => [currentToken.value, currentToken.title]));
106
- return _jsxs(_Fragment, { children: [_jsx(FormTokenField, { value: currentTokens, label: props.label, placeholder: "Start typing to see suggestions", suggestions: suggestions, onChange: tokens => {
107
- const tokenItems = tokens.map(token => typeof token === 'string' ? props.makeTokenFromSuggestion(token) : token);
108
- props.onChange(tokenItems.map(token => token.value));
109
- setCurrentTokens(tokenItems);
110
- }, __experimentalValidateInput: props.validator, __experimentalAutoSelectFirstMatch: true, displayTransform: token => tokenTitleMappings.get(token) ?? token, onInputChange: mySuggestionRequestQueue.debouncer }), isLoading && _jsxs("div", { children: [_jsx(Spinner, {}), _jsx("span", { className: "components-form-token-field__help", children: __("Updating Suggestions") })] }), isValidating && _jsxs("div", { children: [_jsx(Spinner, {}), _jsx("span", { className: "components-form-token-field__help", children: __("Validating") })] })] });
108
+ return React.createElement(React.Fragment, null,
109
+ React.createElement(FormTokenField, { value: currentTokens, label: props.label, placeholder: "Start typing to see suggestions", suggestions: suggestions, onChange: tokens => {
110
+ const tokenItems = tokens.map(token => typeof token === 'string' ? props.makeTokenFromSuggestion(token) : token);
111
+ props.onChange(tokenItems.map(token => token.value));
112
+ setCurrentTokens(tokenItems);
113
+ }, __experimentalValidateInput: props.validator, __experimentalAutoSelectFirstMatch: true, displayTransform: token => tokenTitleMappings.get(token) ?? token, onInputChange: mySuggestionRequestQueue.debouncer }),
114
+ props.help && React.createElement("div", null,
115
+ React.createElement("span", { className: "components-form-token-field__help" }, props.help)),
116
+ isLoading && React.createElement("div", null,
117
+ React.createElement(Spinner, null),
118
+ React.createElement("span", { className: "components-form-token-field__help" }, __("Updating Suggestions"))),
119
+ isValidating && React.createElement("div", null,
120
+ React.createElement(Spinner, null),
121
+ React.createElement("span", { className: "components-form-token-field__help" }, __("Validating"))));
111
122
  }
112
123
  //# sourceMappingURL=AsynchronousFormTokenField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsynchronousFormTokenField.js","sourceRoot":"","sources":["../../src/controls/AsynchronousFormTokenField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AsynchronousFormTokenField.js","sourceRoot":"","sources":["../../src/controls/AsynchronousFormTokenField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAC,EAAE,EAAC,MAAM,iBAAiB,CAAC;AACnC,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,sIAAsI;AACtI,MAAM,CAAN,IAAkB,eAIjB;AAJD,WAAkB,eAAe;IAChC,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,4CAAyB,CAAA;AAC1B,CAAC,EAJiB,eAAe,KAAf,eAAe,QAIhC;AAiBD,MAAM,UAAU,0BAA0B,CAAC,KAAsC;IAChF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAmB,EAAE,CAAC,CAAC;IACzE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IAElE,MAAM,CAAC,wBAAwB,CAAC,GAAG,QAAQ,CAAmG,GAAG,EAAE,CAAC,CAAC;QACpJ,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC;QAC/C,OAAO,CAAC,aAAa;YACpB,MAAM,wBAAwB,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,eAAe,CAAC,UAAU,CAAC,CAAC;YAC5G,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM,QAAQ,GAAG,EAAE,wBAAwB,CAAC,cAAc,CAAC;gBAC3D,wBAAwB,CAAC,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;oBAC/E,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;oBACnI,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,wBAAwB,CAAC,CAAC;wBAC/D,KAAK,MAAM,KAAK,IAAI,wBAAwB,EAAE,CAAC;4BAC9C,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;wBAC1D,CAAC;wBACD,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC;wBAE9E,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;4BAC1C,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;4BAC9C,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;wBAChE,CAAC;wBACD,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;4BAC1C,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC,UAAU,EAAE,CAAC;gCACjE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;4BACvD,CAAC;wBACF,CAAC;oBACF,CAAC;oBAED,IAAI,QAAQ,KAAK,wBAAwB,CAAC,cAAc,EAAE,CAAC;wBAC1D,IAAI,OAAO,GAAG,KAAK,CAAC;wBACpB,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;4BACnC,IAAI,KAAK,CAAC,MAAM,KAAK,eAAe,CAAC,UAAU,EAAE,CAAC;gCACjD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gCAClD,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oCACrD,OAAO,GAAG,IAAI,CAAC;oCACf,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;gCACvB,CAAC;4BACF,CAAC;wBACF,CAAC;wBACD,IAAI,OAAO,EAAE,CAAC;4BACb,gBAAgB,CAAC,aAAa,CAAC,CAAC;wBACjC,CAAC;wBACD,eAAe,CAAC,KAAK,CAAC,CAAC;oBACxB,CAAC;oBACD,OAAO,IAAI,CAAC;gBACb,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;KACD,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,wBAAwB,CAAC,GAAG,QAAQ,CAExC,GAAG,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5B,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,cAAc,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACP,YAAY,CAAC,IAAI,CAAC,CAAC;gBACnB,MAAM,QAAQ,GAAG,EAAE,wBAAwB,CAAC,cAAc,CAAC;gBAC3D,wBAAwB,CAAC,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;oBAC/E,IAAI,QAAQ,KAAK,wBAAwB,CAAC,cAAc,EAAE,CAAC;wBAC1D,cAAc,CAAC,MAAM,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;wBACnD,YAAY,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;oBACD,OAAO,IAAI,CAAC;gBACb,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC,EAAE,GAAG,CAAC;KACP,CAAC,CAAC,CAAC;IAEJ,SAAS,CAAC,GAAG,EAAE;QACd,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;YACxD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACxB,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;gBACtC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;YACzD,CAAC;YAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACjC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;wBACnC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;oBACvD,CAAC;gBACF,CAAC;YACF,CAAC;YACD,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3I,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAElF,IAAI,cAAc,EAAE,CAAC;QACpB,OAAO,oBAAC,OAAO,OAAG,CAAC;IACpB,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEhH,OAAO;QACN,oBAAC,cAAc,IACd,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,WAAW,EAAC,iCAAiC,EAC7C,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBAClB,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAEjH,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrD,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC,EACD,2BAA2B,EAAE,KAAK,CAAC,SAAS,EAC5C,kCAAkC,EAAE,IAAI,EACxC,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,EACjE,aAAa,EAAE,wBAAwB,CAAC,SAAS,GAChD;QACD,KAAK,CAAC,IAAI,IAAI;YAAK,8BAAM,SAAS,EAAC,mCAAmC,IAAE,KAAK,CAAC,IAAI,CAAQ,CAAM;QAChG,SAAS,IAAI;YAAK,oBAAC,OAAO,OAAG;YAAA,8BAAM,SAAS,EAAC,mCAAmC,IAAE,EAAE,CAAC,sBAAsB,CAAC,CAAQ,CAAM;QAC1H,YAAY,IAAI;YAAK,oBAAC,OAAO,OAAG;YAAA,8BAAM,SAAS,EAAC,mCAAmC,IAAE,EAAE,CAAC,YAAY,CAAC,CAAQ,CAAM,CAClH,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ type ExtendedPostPickerProps = {
3
+ onChange: (value: string[]) => void;
4
+ label: string;
5
+ help?: string;
6
+ postTypes: string[];
7
+ placeholder: string;
8
+ value?: string[];
9
+ multiple?: boolean;
10
+ };
11
+ export type ExtendedPostPickerConstructorProps = Partial<Omit<ExtendedPostPickerProps, 'onChange' | 'value' | 'label'>> & Pick<ExtendedPostPickerProps, 'onChange' | 'value' | 'label'>;
12
+ export declare function ExtendedPostPicker(props: ExtendedPostPickerConstructorProps): React.JSX.Element;
13
+ export {};
@@ -1,16 +1,11 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import apiFetch from '@wordpress/api-fetch';
3
1
  import { AsynchronousFormTokenField, ValidationState } from "./AsynchronousFormTokenField";
4
2
  import { useState } from "@wordpress/element";
5
- import { addQueryArgs } from "@wordpress/url";
6
- async function makeAPIRequest(data) {
7
- return (await apiFetch({ path: addQueryArgs("/plaudit/common/v1/post-table-search", data) }))
8
- .map(item => ({ id: item.id.toString(), title: item.title }));
9
- }
3
+ import { requestPostsFromAPI } from "./shared";
4
+ import React from "react";
10
5
  export function ExtendedPostPicker(props) {
11
6
  const [validPostIds, _] = useState(new Map());
12
7
  const value = props.value ?? [];
13
- return _jsx(AsynchronousFormTokenField, { ...props, value: value, makeTokenFromSuggestion: token => {
8
+ return React.createElement(AsynchronousFormTokenField, { ...props, value: value, makeTokenFromSuggestion: token => {
14
9
  if (isNumeric(token)) {
15
10
  return { value: token, status: validPostIds.get(token) ?? ValidationState.Validating, title: token };
16
11
  }
@@ -21,8 +16,8 @@ export function ExtendedPostPicker(props) {
21
16
  }
22
17
  return { value: token, status: ValidationState.Invalid, title: token };
23
18
  }
24
- }, suggestionQuery: input => makeAPIRequest({ search: input, postTypes: props.postTypes?.join(',') })
25
- .then(posts => posts.map(post => `${post.title} (#${post.id})`)), validationQuery: idsBeingValidated => makeAPIRequest({ ids: idsBeingValidated.join(','), postTypes: props.postTypes?.join(',') })
19
+ }, suggestionQuery: input => requestPostsFromAPI({ search: input, postTypes: props.postTypes?.join(',') })
20
+ .then(posts => posts.map(post => `${post.title} (#${post.id})`)), validationQuery: idsBeingValidated => requestPostsFromAPI({ ids: idsBeingValidated.join(','), postTypes: props.postTypes?.join(',') })
26
21
  .then(posts => posts.map(post => ({ value: post.id, title: post.title, status: ValidationState.Valid }))), validValues: validPostIds, validator: token => /\(#([0-9]+)\)$/.exec(token)?.[1] !== undefined });
27
22
  }
28
23
  function isNumeric(str) {
@@ -1 +1 @@
1
- {"version":3,"file":"ExtendedPostPicker.js","sourceRoot":"","sources":["../../src/controls/ExtendedPostPicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExtendedPostPicker.js","sourceRoot":"","sources":["../../src/controls/ExtendedPostPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAE,eAAe,EAAC,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAC,mBAAmB,EAAC,MAAM,UAAU,CAAC;AAE7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,MAAM,UAAU,kBAAkB,CAAC,KAAyC;IAC3E,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,EAA2B,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,OAAO,oBAAC,0BAA0B,OAC7B,KAAK,EACT,KAAK,EAAE,KAAK,EACZ,uBAAuB,EAAE,KAAK,CAAC,EAAE;YAChC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;YACpG,CAAC;iBAAM,CAAC;gBACP,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,EAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;gBACxG,CAAC;gBACD,OAAO,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;YACtE,CAAC;QACF,CAAC,EACD,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC;aACnG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EACjE,eAAe,EAAE,iBAAiB,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC;aAClI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EACxG,WAAW,EAAE,YAAY,EACzB,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,GAClE,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAAkB;IACpC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,CAAC,2BAA2B;IACrE,OAAO,CAAC,KAAK,CAAC,GAAU,CAAC,IAAI,mGAAmG;QAC/H,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA,CAAC,2CAA2C;AACrE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { PanelBodyProps } from "@wordpress/components/build-types/panel/types";
2
+ import React from "react";
3
+ export declare function InspectorPanel(props: PanelBodyProps & {
4
+ group?: string;
5
+ condition?(): boolean;
6
+ }): React.JSX.Element;
@@ -1,8 +1,9 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
1
  import { InspectorControls } from "@wordpress/block-editor";
3
2
  import { PanelBody } from "@wordpress/components";
3
+ import React from "react";
4
4
  export function InspectorPanel(props) {
5
5
  const FullyTypedInspectorControls = InspectorControls;
6
- return _jsx(FullyTypedInspectorControls, { group: props.group, children: _jsx(PanelBody, { ...props, children: props.condition === undefined || props.condition() ? props.children : [] }) });
6
+ return React.createElement(FullyTypedInspectorControls, { group: props.group },
7
+ React.createElement(PanelBody, { ...props, children: props.condition === undefined || props.condition() ? props.children : [] }));
7
8
  }
8
9
  //# sourceMappingURL=InspectorPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InspectorPanel.js","sourceRoot":"","sources":["../../src/controls/InspectorPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAQhD,MAAM,UAAU,cAAc,CAAC,KAA6D;IAC3F,MAAM,2BAA2B,GAAG,iBAA0C,CAAC;IAC/E,OAAO,KAAC,2BAA2B,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YACrD,KAAC,SAAS,OAAK,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAI,GAC/E,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"InspectorPanel.js","sourceRoot":"","sources":["../../src/controls/InspectorPanel.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAEhD,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,UAAU,cAAc,CAAC,KAA6D;IAC3F,MAAM,2BAA2B,GAAG,iBAA0C,CAAC;IAC/E,OAAO,oBAAC,2BAA2B,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK;QACrD,oBAAC,SAAS,OAAK,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAI,CAC/E,CAAC;AAChC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ComboboxControlOption, ComboboxControlProps } from "@wordpress/components/build-types/combobox-control/types";
2
+ import React from "react";
3
+ export type LazySuggestionsComboboxControlProps = Omit<ComboboxControlProps, 'options'> & {
4
+ getOption(value?: string): Promise<ComboboxControlOption | undefined>;
5
+ getSuggestions(filterValue: string): Promise<ComboboxControlOption[]>;
6
+ };
7
+ export declare function LazySuggestionsComboboxControl(props: LazySuggestionsComboboxControlProps): React.JSX.Element;
@@ -0,0 +1,70 @@
1
+ import { BaseControl, ComboboxControl, Spinner } from "@wordpress/components";
2
+ import { useEffect, useState } from "@wordpress/element";
3
+ import { __ } from "@wordpress/i18n";
4
+ import debounce from "debounce";
5
+ import React from "react";
6
+ export function LazySuggestionsComboboxControl(props) {
7
+ const [isInitializing, setIsInitializing] = useState(true);
8
+ const [isLoading, setIsLoading] = useState(false);
9
+ const [suggestions, setSuggestions] = useState([]);
10
+ const [mySuggestionRequestQueue] = useState(() => ({
11
+ queue: Promise.resolve(true),
12
+ currentRequest: 0,
13
+ debouncer: debounce((input) => {
14
+ setIsLoading(true);
15
+ const myNumber = ++mySuggestionRequestQueue.currentRequest;
16
+ mySuggestionRequestQueue.queue = mySuggestionRequestQueue.queue.then(async () => {
17
+ let suggestions;
18
+ if (input.length < 2) {
19
+ if (props.value) {
20
+ const propValue = await props.getOption(props.value);
21
+ if (propValue) {
22
+ suggestions = [propValue];
23
+ }
24
+ else {
25
+ suggestions = [];
26
+ }
27
+ }
28
+ else {
29
+ suggestions = [];
30
+ }
31
+ }
32
+ else {
33
+ suggestions = await props.getSuggestions(input);
34
+ }
35
+ if (myNumber === mySuggestionRequestQueue.currentRequest) {
36
+ if (props.onFilterValueChange) {
37
+ props.onFilterValueChange(input);
38
+ }
39
+ setSuggestions(suggestions);
40
+ setIsLoading(false);
41
+ }
42
+ return true;
43
+ });
44
+ }, 500)
45
+ }));
46
+ useEffect(() => {
47
+ if (props.value) {
48
+ props.getOption(props.value).then(option => {
49
+ setSuggestions(option ? [option] : []);
50
+ setIsInitializing(false);
51
+ }, () => {
52
+ //TODO: Add a notice for the error
53
+ });
54
+ }
55
+ else {
56
+ setIsInitializing(false);
57
+ }
58
+ }, []);
59
+ if (isInitializing) {
60
+ return React.createElement(BaseControl, { ...props },
61
+ React.createElement(Spinner, null),
62
+ React.createElement("span", null, __(`Initializing ${props.label}`)));
63
+ }
64
+ return React.createElement(React.Fragment, null,
65
+ React.createElement(ComboboxControl, { ...props, options: suggestions, onFilterValueChange: mySuggestionRequestQueue.debouncer, allowReset: props.allowReset !== false }),
66
+ isLoading && React.createElement("div", null,
67
+ React.createElement(Spinner, null),
68
+ React.createElement("span", { className: "components-base-control__help" }, __("Updating Suggestions"))));
69
+ }
70
+ //# sourceMappingURL=LazySuggestionsComboboxControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazySuggestionsComboboxControl.js","sourceRoot":"","sources":["../../src/controls/LazySuggestionsComboboxControl.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { PickableOptions, SimpleBlockControlProps } from "./types";
2
+ import React, { type ReactElement } from "react";
3
+ export type PickOneFromToggleGroupProps<T extends string> = SimpleBlockControlProps<T, string | number> & {
4
+ options: PickableOptions<string, {
5
+ icon: ReactElement;
6
+ }>;
7
+ };
8
+ export declare function PickOneFromToggleGroup<T extends string>(props: PickOneFromToggleGroupProps<T>): React.JSX.Element;
9
+ export declare function PickOneFromSelect<T extends string>(props: SimpleBlockControlProps<T, string> & {
10
+ options: PickableOptions<string>;
11
+ }): React.JSX.Element;
12
+ export declare function PickOneFromRadios<T extends string>(props: SimpleBlockControlProps<T, string> & {
13
+ options: PickableOptions<string>;
14
+ }): React.JSX.Element;
15
+ export declare function PickOneFromColors<T extends string>(props: SimpleBlockControlProps<T, string> & {
16
+ options: PickableOptions<string, {
17
+ color?: string | undefined;
18
+ }>;
19
+ }): React.JSX.Element;