@plaudit/gutenberg-api-extensions 2.43.2 → 2.44.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.
Files changed (143) hide show
  1. package/build/blocks/MoveError.d.ts +10 -0
  2. package/build/blocks/MoveError.js +6 -0
  3. package/build/blocks/MoveError.js.map +1 -0
  4. package/build/blocks/PathError.d.ts +12 -0
  5. package/build/blocks/PathError.js +18 -0
  6. package/build/blocks/PathError.js.map +1 -0
  7. package/build/blocks/{snp-group-component.d.ts → SNPGroupComponent.d.ts} +6 -7
  8. package/build/blocks/SNPGroupComponent.js +6 -0
  9. package/build/blocks/SNPGroupComponent.js.map +1 -0
  10. package/build/blocks/SNPListComponent.d.ts +8 -0
  11. package/build/blocks/SNPListComponent.js +15 -0
  12. package/build/blocks/SNPListComponent.js.map +1 -0
  13. package/build/blocks/SNPTreeContext.d.ts +10 -0
  14. package/build/blocks/SNPTreeContext.js +15 -0
  15. package/build/blocks/SNPTreeContext.js.map +1 -0
  16. package/build/blocks/common-native-property-constructors.d.ts +14 -8
  17. package/build/blocks/common-native-property-constructors.js +128 -92
  18. package/build/blocks/common-native-property-constructors.js.map +1 -1
  19. package/build/blocks/conditions.d.ts +21 -0
  20. package/build/blocks/conditions.js +155 -0
  21. package/build/blocks/conditions.js.map +1 -0
  22. package/build/blocks/data-controller-manager.d.ts +8 -0
  23. package/build/blocks/data-controller-manager.js +38 -0
  24. package/build/blocks/data-controller-manager.js.map +1 -0
  25. package/build/blocks/data-controller.d.ts +62 -0
  26. package/build/blocks/data-controller.js +641 -0
  27. package/build/blocks/data-controller.js.map +1 -0
  28. package/build/blocks/full-size-toggle-control.d.ts +3 -3
  29. package/build/blocks/full-size-toggle-control.js +35 -32
  30. package/build/blocks/full-size-toggle-control.js.map +1 -1
  31. package/build/blocks/layered-styles-api.d.ts +3 -3
  32. package/build/blocks/layered-styles-api.js +2 -1
  33. package/build/blocks/layered-styles-api.js.map +1 -1
  34. package/build/blocks/layered-styles-impl.js +2 -4
  35. package/build/blocks/layered-styles-impl.js.map +1 -1
  36. package/build/blocks/layout/LaidOutProperty.d.ts +6 -0
  37. package/build/blocks/layout/LaidOutProperty.js +28 -0
  38. package/build/blocks/layout/LaidOutProperty.js.map +1 -0
  39. package/build/blocks/layout/LaidOutPropertyRow.d.ts +6 -0
  40. package/build/blocks/layout/LaidOutPropertyRow.js +12 -0
  41. package/build/blocks/layout/LaidOutPropertyRow.js.map +1 -0
  42. package/build/blocks/layout/NodeContext.d.ts +44 -0
  43. package/build/blocks/layout/NodeContext.js +37 -0
  44. package/build/blocks/layout/NodeContext.js.map +1 -0
  45. package/build/blocks/layout/PanelRoot.d.ts +5 -0
  46. package/build/blocks/layout/PanelRoot.js +23 -0
  47. package/build/blocks/layout/PanelRoot.js.map +1 -0
  48. package/build/blocks/layout/TabsRoot.d.ts +7 -0
  49. package/build/blocks/layout/TabsRoot.js +45 -0
  50. package/build/blocks/layout/TabsRoot.js.map +1 -0
  51. package/build/blocks/simple-block.js +6 -10
  52. package/build/blocks/simple-block.js.map +1 -1
  53. package/build/blocks/simple-native-property-api.d.ts +63 -28
  54. package/build/blocks/simple-native-property-api.js +9 -2
  55. package/build/blocks/simple-native-property-api.js.map +1 -1
  56. package/build/blocks/simple-native-property-impl.d.ts +0 -6
  57. package/build/blocks/simple-native-property-impl.js +121 -189
  58. package/build/blocks/simple-native-property-impl.js.map +1 -1
  59. package/build/blocks/simple-native-property-internal-shared.d.ts +30 -0
  60. package/build/blocks/simple-native-property-internal-shared.js +22 -0
  61. package/build/blocks/simple-native-property-internal-shared.js.map +1 -0
  62. package/build/blocks/snp-data-store.d.ts +8 -9
  63. package/build/blocks/snp-data-store.js +56 -31
  64. package/build/blocks/snp-data-store.js.map +1 -1
  65. package/build/controls/AsynchronousFormTokenField.d.ts +3 -3
  66. package/build/controls/AsynchronousFormTokenField.js +4 -18
  67. package/build/controls/AsynchronousFormTokenField.js.map +1 -1
  68. package/build/controls/ExtendedPostPicker.d.ts +3 -3
  69. package/build/controls/ExtendedPostPicker.js +4 -3
  70. package/build/controls/ExtendedPostPicker.js.map +1 -1
  71. package/build/controls/ExtendedRadioControl.d.ts +3 -3
  72. package/build/controls/ExtendedRadioControl.js +3 -11
  73. package/build/controls/ExtendedRadioControl.js.map +1 -1
  74. package/build/controls/ImageControl.d.ts +4 -2
  75. package/build/controls/ImageControl.js +16 -23
  76. package/build/controls/ImageControl.js.map +1 -1
  77. package/build/controls/InspectorPanel.d.ts +2 -2
  78. package/build/controls/InspectorPanel.js +4 -6
  79. package/build/controls/InspectorPanel.js.map +1 -1
  80. package/build/controls/LazySuggestionsComboboxControl.d.ts +1 -2
  81. package/build/controls/LazySuggestionsComboboxControl.js +3 -9
  82. package/build/controls/LazySuggestionsComboboxControl.js.map +1 -1
  83. package/build/controls/MultiSelectControl.d.ts +3 -3
  84. package/build/controls/MultiSelectControl.js +2 -2
  85. package/build/controls/MultiSelectControl.js.map +1 -1
  86. package/build/controls/PickOne.d.ts +5 -5
  87. package/build/controls/PickOne.js +7 -8
  88. package/build/controls/PickOne.js.map +1 -1
  89. package/build/controls/PromisableComponent.d.ts +1 -1
  90. package/build/controls/PromisableComponent.js +3 -3
  91. package/build/controls/PromisableComponent.js.map +1 -1
  92. package/build/controls/ProperLinkControl.d.ts +3 -3
  93. package/build/controls/ProperLinkControl.js +6 -9
  94. package/build/controls/ProperLinkControl.js.map +1 -1
  95. package/build/controls/SimpleToggle.d.ts +1 -2
  96. package/build/controls/SimpleToggle.js +2 -2
  97. package/build/controls/SimpleToggle.js.map +1 -1
  98. package/build/controls/SortableItemsControl.d.ts +7 -4
  99. package/build/controls/SortableItemsControl.js +12 -24
  100. package/build/controls/SortableItemsControl.js.map +1 -1
  101. package/build/controls/hooks/useTokenManager.js.map +1 -1
  102. package/build/editor/post-featured-image.js +29 -31
  103. package/build/editor/post-featured-image.js.map +1 -1
  104. package/build/lib/plaudit-icons/column-1.d.ts +1 -2
  105. package/build/lib/plaudit-icons/column-1.js +2 -3
  106. package/build/lib/plaudit-icons/column-1.js.map +1 -1
  107. package/build/lib/plaudit-icons/column-2.d.ts +1 -2
  108. package/build/lib/plaudit-icons/column-2.js +2 -3
  109. package/build/lib/plaudit-icons/column-2.js.map +1 -1
  110. package/build/lib/plaudit-icons/column-3.d.ts +1 -2
  111. package/build/lib/plaudit-icons/column-3.js +2 -3
  112. package/build/lib/plaudit-icons/column-3.js.map +1 -1
  113. package/build/lib/plaudit-icons/placement-center.d.ts +1 -2
  114. package/build/lib/plaudit-icons/placement-center.js +2 -3
  115. package/build/lib/plaudit-icons/placement-center.js.map +1 -1
  116. package/build/lib/plaudit-icons/placement-end.d.ts +1 -2
  117. package/build/lib/plaudit-icons/placement-end.js +2 -3
  118. package/build/lib/plaudit-icons/placement-end.js.map +1 -1
  119. package/build/lib/plaudit-icons/placement-start.d.ts +1 -2
  120. package/build/lib/plaudit-icons/placement-start.js +2 -3
  121. package/build/lib/plaudit-icons/placement-start.js.map +1 -1
  122. package/build/lib/plaudit-icons/placement-stretch.d.ts +1 -2
  123. package/build/lib/plaudit-icons/placement-stretch.js +2 -3
  124. package/build/lib/plaudit-icons/placement-stretch.js.map +1 -1
  125. package/build/lib/plaudit-icons/plaudit-icon.d.ts +1 -2
  126. package/build/lib/plaudit-icons/plaudit-icon.js +2 -3
  127. package/build/lib/plaudit-icons/plaudit-icon.js.map +1 -1
  128. package/build/lib/plaudit-icons/reusable-block-marker.d.ts +1 -2
  129. package/build/lib/plaudit-icons/reusable-block-marker.js +2 -3
  130. package/build/lib/plaudit-icons/reusable-block-marker.js.map +1 -1
  131. package/package.json +6 -2
  132. package/styles/editor.pcss +47 -0
  133. package/build/blocks/base-data-store.d.ts +0 -19
  134. package/build/blocks/base-data-store.js +0 -151
  135. package/build/blocks/base-data-store.js.map +0 -1
  136. package/build/blocks/data-store-list-holder.d.ts +0 -10
  137. package/build/blocks/data-store-list-holder.js +0 -55
  138. package/build/blocks/data-store-list-holder.js.map +0 -1
  139. package/build/blocks/object-data-store.d.ts +0 -15
  140. package/build/blocks/object-data-store.js +0 -41
  141. package/build/blocks/object-data-store.js.map +0 -1
  142. package/build/blocks/snp-group-component.js +0 -17
  143. package/build/blocks/snp-group-component.js.map +0 -1
@@ -1,51 +1,85 @@
1
+ import type { configureStore } from "@reduxjs/toolkit/src/configureStore";
2
+ import type { createSlotFill } from "@wordpress/components";
1
3
  import type { ActualBlockEditProps, CSNPConfig } from "./common-native-property-constructors";
4
+ import { Condition } from "./conditions";
5
+ import type { DataControllerActions, DCNode, DCStoreState } from "./data-controller";
6
+ import { HydratedLaidOutProperties } from "./simple-native-property-internal-shared";
2
7
  import type { ReactElement } from "react";
3
8
  export type InspectorPanelGroup = 'layered-styles' | 'post' | 'default' | 'advanced' | 'background' | 'border' | 'color' | 'dimensions' | 'effects' | 'filter' | 'list' | 'position' | 'settings' | 'styles' | 'typography';
4
- export type CombinerOp = "and" | "or" | "not" | "nand" | "nor";
5
- export type CombinerConditionTest = {
6
- op: CombinerOp;
7
- conditions: ConditionStruct;
8
- };
9
- export type PropertyConditionTest = {
10
- op: "==" | "!=" | ">" | "<" | ">=" | "<=";
11
- property: string;
12
- value: any;
13
- } | {
14
- op: "empty" | "!empty";
15
- property: string;
16
- };
17
- export type ConditionTest = PropertyConditionTest | CombinerConditionTest;
18
- export type ConditionStruct = Array<ConditionTest | ConditionStruct>;
19
- export type Condition = ((dataStore: DataStore, blockEditProps: ActualBlockEditProps) => boolean) | ConditionStruct | undefined;
9
+ export type { Condition, ConditionFunction, ConditionStruct } from './conditions';
20
10
  export interface DataStore<B = unknown> {
21
- getValue(prop: Pick<SimpleNativeProperty, 'name' | 'default'>): any;
11
+ getValue(name: string): any;
22
12
  setValue(name: string, value: any): void;
23
- reattach(blockEditProps: B, parent: DataStore | undefined): DataStore<B>;
24
- testCondition(condition: Condition): boolean;
25
- getBackedUpAttribute(prop: string, def?: any): any;
26
- setBackedUpAttribute(attr: string, value: any): void;
27
- removeBackedUpAttribute(attr: string): boolean;
28
- hasBackedUpAttribute(attr: string): boolean;
13
+ reattach(blockEditProps: B): DataStore<B>;
14
+ handlesProperty(name: string): boolean;
29
15
  blockEditProps: ActualBlockEditProps;
30
- parent?: DataStore;
31
16
  }
17
+ export type RawPath = (string | number)[];
18
+ export type NodePath = [string, ...(string | number)[]];
19
+ export type DataController = {
20
+ dispatch: ReturnType<typeof configureStore<DCStoreState, DataControllerActions, []>>['dispatch'];
21
+ getDataStore(property: string, required: true): DataStore;
22
+ getDataStore(property: string, required?: undefined | false): DataStore | undefined;
23
+ getDataStore(property: string, required?: boolean): DataStore | undefined;
24
+ getAllDataStores(): DataStore[];
25
+ makePropertyValueResolver(contextPath: RawPath): (propertyPath: RawPath) => any;
26
+ getValue(path: NodePath): any | undefined;
27
+ setValue(path: NodePath, value: any): void;
28
+ addProperties(properties: HydratedLaidOutProperties, dataStore: DataStore, inBatch?: boolean): void;
29
+ addNode(path: NodePath, value?: any): void;
30
+ removeNode(path: NodePath): void;
31
+ moveNode(path: NodePath, indices: {
32
+ from: number;
33
+ to: number;
34
+ } | {
35
+ from: string;
36
+ to: string;
37
+ }): void;
38
+ hasRenderedNode(properties: HydratedLaidOutProperties): boolean;
39
+ hasValidationErrors(properties?: HydratedLaidOutProperties): boolean;
40
+ getIsRendered(path: NodePath): boolean;
41
+ getNode(path: NodePath): DCNode;
42
+ getValidationError(path: NodePath): string | undefined;
43
+ };
44
+ export declare enum NodeMessageSeverity {
45
+ info = 0,
46
+ warning = 1,
47
+ error = 2
48
+ }
49
+ export type NodeMessage = {
50
+ message: string;
51
+ severity: NodeMessageSeverity;
52
+ };
53
+ export type ProvidedSlot = ReturnType<typeof createSlotFill>['Slot'];
32
54
  export type SimpleNativePropertyType = 'string' | 'number' | 'boolean' | 'array' | 'object';
33
55
  export type GenericSimpleNativeProperty<T, V extends SimpleNativePropertyType> = {
34
56
  name: string;
57
+ label?: string;
35
58
  type: V;
36
59
  enum?: T[];
37
60
  default?: T;
38
61
  alwaysStore?: boolean | undefined;
39
- control(value: T | undefined, onChange: (v: T | undefined) => void, dataStore: DataStore): ReactElement;
62
+ control(value: T | undefined, onChange: (v: T | undefined) => void, slots: SNPControlSlots): ReactElement;
40
63
  condition?: Condition;
64
+ required?: boolean;
65
+ validator?(value: T | undefined): string | null | undefined;
41
66
  };
42
67
  export type SimpleNativeProperty = GenericSimpleNativeProperty<string, 'string'> & {
43
68
  enum?: string[];
44
69
  } | GenericSimpleNativeProperty<number, 'number'> & {
45
70
  enum?: number[];
46
71
  } | GenericSimpleNativeProperty<boolean, 'boolean'> | GenericSimpleNativeProperty<any[], 'array'> | GenericSimpleNativeProperty<Record<string | number, unknown>, 'object'>;
47
- export type PotentiallyDesiccatedSimpleNativeProperty = SimpleNativeProperty | CSNPConfig;
48
- export type LaidOutProperties = Array<PotentiallyDesiccatedSimpleNativeProperty | Array<PotentiallyDesiccatedSimpleNativeProperty>>;
72
+ export type PDSimpleNativeProperty = SimpleNativeProperty | CSNPConfig;
73
+ export type PotentiallyDesiccatedSimpleNativeProperty = PDSimpleNativeProperty;
74
+ export type HydratedSimpleNativeProperty = SimpleNativeProperty & {
75
+ children?: HydratedSimpleNativeProperty[];
76
+ controlType?: string;
77
+ };
78
+ export type SNPControlSlots = {
79
+ Label: ProvidedSlot;
80
+ Messages: ProvidedSlot;
81
+ };
82
+ export type LaidOutProperties = Array<PDSimpleNativeProperty | Array<PDSimpleNativeProperty>>;
49
83
  export type SimpleNativePanel = {
50
84
  title: string;
51
85
  group?: InspectorPanelGroup;
@@ -53,6 +87,7 @@ export type SimpleNativePanel = {
53
87
  properties: LaidOutProperties;
54
88
  condition?: Condition;
55
89
  position?: number;
90
+ raw?: boolean;
56
91
  };
57
92
  export type SimpleNativeTab = {
58
93
  title: string;
@@ -65,7 +100,7 @@ export declare function registerSimpleNativeProperties(config: {
65
100
  block: BlockName | Array<BlockName>;
66
101
  properties: PropertiesParameter;
67
102
  }): void;
68
- export declare function getSimpleNativeProperties(block: BlockName): Array<PotentiallyDesiccatedSimpleNativeProperty> | undefined;
103
+ export declare function getSimpleNativeProperties(block: BlockName): Array<PDSimpleNativeProperty> | undefined;
69
104
  /**
70
105
  * @deprecated use installGutenbergExtensions() instead.
71
106
  */
@@ -1,6 +1,13 @@
1
1
  import { installGutenbergExtensions } from "../index";
2
+ import { getSimpleNativePanelsAndTabsForBlock, getSimpleNativePanelsAndTabsRegistry } from "./simple-native-property-internal-shared";
3
+ export var NodeMessageSeverity;
4
+ (function (NodeMessageSeverity) {
5
+ NodeMessageSeverity[NodeMessageSeverity["info"] = 0] = "info";
6
+ NodeMessageSeverity[NodeMessageSeverity["warning"] = 1] = "warning";
7
+ NodeMessageSeverity[NodeMessageSeverity["error"] = 2] = "error";
8
+ })(NodeMessageSeverity || (NodeMessageSeverity = {}));
2
9
  export function registerSimpleNativeProperties(config) {
3
- const simpleNativePanelsAndTabs = window.plauditSimpleNativePanelsAndTabs ?? (window.plauditSimpleNativePanelsAndTabs = {});
10
+ const simpleNativePanelsAndTabs = getSimpleNativePanelsAndTabsRegistry();
4
11
  if (Array.isArray(config.block)) {
5
12
  for (const b of config.block) {
6
13
  addProperties(b, config.properties, simpleNativePanelsAndTabs);
@@ -11,7 +18,7 @@ export function registerSimpleNativeProperties(config) {
11
18
  }
12
19
  }
13
20
  export function getSimpleNativeProperties(block) {
14
- const panelsAndTabs = window.plauditSimpleNativePanelsAndTabs?.[block];
21
+ const panelsAndTabs = getSimpleNativePanelsAndTabsForBlock(block);
15
22
  if (panelsAndTabs === undefined) {
16
23
  return undefined;
17
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"simple-native-property-api.js","sourceRoot":"","sources":["../../src/blocks/simple-native-property-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simple-native-property-api.js","sourceRoot":"","sources":["../../src/blocks/simple-native-property-api.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1 @@
1
- import { DataStore, LaidOutProperties } from "./simple-native-property-api";
2
- import { type ReactElement } from "react";
3
1
  export declare function installSimpleNativePropertiesSupport(): void;
4
- export declare function makeDivForLaidOutProperties(properties: LaidOutProperties, dataStore: DataStore): {
5
- div: ReactElement;
6
- items: ReactElement[];
7
- };
@@ -1,13 +1,17 @@
1
- import { PanelBody } from "@wordpress/components";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { createHigherOrderComponent } from "@wordpress/compose";
3
- import { useState } from "@wordpress/element";
3
+ import { useEffect } from "@wordpress/element";
4
4
  import { addFilter } from "@wordpress/hooks";
5
5
  import { hydrateSimpleNativeProperty } from "./common-native-property-constructors";
6
- import { InspectorPanel } from "../controls";
6
+ import { useDataController } from "./data-controller";
7
+ import { LayeredStylesDataStore } from "./layered-styles-impl";
8
+ import { TabsRoot } from "./layout/TabsRoot";
9
+ import { PanelRoot } from "./layout/PanelRoot";
7
10
  import { registerSimpleNativeProperties } from "./simple-native-property-api";
11
+ import { getSimpleNativePanelsAndTabsForBlock } from "./simple-native-property-internal-shared";
8
12
  import { SNPDataStore } from "./snp-data-store";
9
- import React, { useCallback } from "react";
10
- import { LayeredStylesDataStore } from "./layered-styles-impl";
13
+ import { SNPTreeContextRoot } from "./SNPTreeContext";
14
+ import { useDataControllerManager } from "./data-controller-manager";
11
15
  class AttributeDataStore extends SNPDataStore {
12
16
  getAttribute(name) {
13
17
  return this.blockEditProps.attributes[name];
@@ -16,53 +20,98 @@ class AttributeDataStore extends SNPDataStore {
16
20
  this.blockEditProps.setAttributes(name === 'className' ? { className: value?.toString() } : { [name]: value });
17
21
  }
18
22
  }
19
- function sortSimpleNativePropertiesAndTabs(items) {
23
+ function normalizeTabItems(items) {
24
+ let bareProperties = [];
25
+ const normalizedItems = [];
26
+ for (const item of items) {
27
+ if (Array.isArray(item)) {
28
+ bareProperties.push(item.map(prp => hydrateSimpleNativeProperty(prp)));
29
+ }
30
+ else if ('title' in item && 'properties' in item) {
31
+ if (bareProperties.length) {
32
+ normalizedItems.push({ title: "", properties: bareProperties, initialOpen: true });
33
+ bareProperties = [];
34
+ }
35
+ normalizedItems.push(hydrateSimpleNativePanel(item));
36
+ }
37
+ else {
38
+ bareProperties.push(hydrateSimpleNativeProperty(item));
39
+ }
40
+ }
41
+ if (bareProperties.length) {
42
+ normalizedItems.push({ title: "", properties: bareProperties, initialOpen: true });
43
+ }
44
+ return normalizedItems;
45
+ }
46
+ const hydrateSimpleNativePanel = (panel) => ({
47
+ ...panel, properties: panel.properties
48
+ .map(prop => Array.isArray(prop) ? prop.map(prp => hydrateSimpleNativeProperty(prp)) : hydrateSimpleNativeProperty(prop))
49
+ });
50
+ /**
51
+ * This performs the one-time prep for rendering the registered SNP panels and tabs for a Block.
52
+ *
53
+ * @param items the registered panels and tabs for a *single* block
54
+ * @returns either false or an object with at least one declared panel or tab.
55
+ * This guarantee is made in order to avoid having to perform more convoluted checks in the render methods
56
+ */
57
+ function prepSimpleNativePanelsAndTabs(items) {
20
58
  if (items === undefined) {
21
59
  return false;
22
60
  }
61
+ // We sort in batches to match the "local" order without disrupting the overall order
23
62
  const sorter = ({ position: aPosition = 10 }, { position: bPosition = 10 }) => aPosition - bPosition;
24
- let panels = [];
25
- const res = [];
63
+ const ungroupedTabs = [];
64
+ const panels = [];
26
65
  for (const item of items) {
27
66
  // If it is a tab
28
67
  if ('items' in item) {
29
- if (panels.length > 0) {
30
- res.push(...panels.sort(sorter));
31
- panels = [];
32
- }
33
- res.push(item);
68
+ ungroupedTabs.push(item);
34
69
  }
35
70
  else {
36
71
  panels.push(item);
37
72
  }
38
73
  }
39
- if (panels.length > 0) {
40
- res.push(...panels.sort(sorter));
74
+ if (!panels.length && !ungroupedTabs.length) {
75
+ return false;
76
+ }
77
+ const groupedTabs = {};
78
+ for (const tab of ungroupedTabs) {
79
+ const tabGroupName = tab.group ?? 'default';
80
+ const groupedTabsForName = groupedTabs[tabGroupName] ?? (groupedTabs[tabGroupName] = {});
81
+ // If a tab with that title already exists, we append its properties to the existing ones
82
+ const existingGroupedTabsForName = groupedTabsForName[tab.title];
83
+ groupedTabsForName[tab.title] = { title: tab.title, group: tabGroupName,
84
+ items: existingGroupedTabsForName ? [...existingGroupedTabsForName.items, ...normalizeTabItems(tab.items)] : normalizeTabItems(tab.items) };
41
85
  }
42
- return res;
86
+ return {
87
+ // Because JavaScript's Array sorting methods are stable, we can just sort once at the end
88
+ panels: panels.map(hydrateSimpleNativePanel).sort(({ position: aPosition = 10 }, { position: bPosition = 10 }) => aPosition - bPosition),
89
+ // We sort tab groups by name in order to force SNP styles to be added after layered-styles
90
+ // We don't need to check for equality in the group comparator because Object-keys are guaranteed to be distinct
91
+ tabs: Object.fromEntries(Object.entries(groupedTabs).toSorted(([aName], [bName]) => aName > bName ? 1 : -1))
92
+ };
43
93
  }
44
94
  export function installSimpleNativePropertiesSupport() {
45
95
  if (window.plauditSimpleNativePropertiesSupportInstalled) {
46
96
  return;
47
97
  }
48
98
  window.plauditSimpleNativePropertiesSupportInstalled = true;
49
- const ROOT_LEVEL_PANELS = [undefined, "default", "advanced", "settings", "styles"];
50
- const rawSimpleNativePanelsAndTabs = window.plauditSimpleNativePanelsAndTabs ?? (window.plauditSimpleNativePanelsAndTabs = {});
51
99
  const simpleNativePanelsAndTabs = {};
100
+ const dataControllerManager = useDataControllerManager();
52
101
  addFilter('blocks.registerBlockType', 'plaudit/gutenberg-api-extensions/attach-simple-native-properties', (atts) => {
53
102
  if (isBlockJsonNativePropsConfig(atts.plaudit) && atts.plaudit.panel !== undefined && (Array.isArray(atts.plaudit.panel) ? atts.plaudit.panel.length : atts.plaudit.panel)) {
54
103
  registerSimpleNativeProperties({ block: atts.name, properties: atts.plaudit.panel });
55
104
  }
56
105
  const blockSimpleNativePanelsAndTabs = simpleNativePanelsAndTabs[atts.name]
57
- ?? (simpleNativePanelsAndTabs[atts.name] = sortSimpleNativePropertiesAndTabs(rawSimpleNativePanelsAndTabs[atts.name]));
106
+ ?? (simpleNativePanelsAndTabs[atts.name] = prepSimpleNativePanelsAndTabs(getSimpleNativePanelsAndTabsForBlock(atts.name)));
58
107
  if (blockSimpleNativePanelsAndTabs) {
59
108
  const injectableProperties = {};
60
- for (const blockSimpleNativePanel of blockSimpleNativePanelsAndTabs) {
61
- if ('properties' in blockSimpleNativePanel) {
62
- attachSNPsInPanel(blockSimpleNativePanel.properties, injectableProperties);
63
- }
64
- else {
65
- for (const item of blockSimpleNativePanel.items) {
109
+ for (const panel of blockSimpleNativePanelsAndTabs.panels) {
110
+ attachSNPsInPanel(panel.properties, injectableProperties);
111
+ }
112
+ for (const tabGroup of Object.values(blockSimpleNativePanelsAndTabs.tabs)) {
113
+ for (const tab of Object.values(tabGroup)) {
114
+ for (const item of tab.items) {
66
115
  if ('properties' in item) {
67
116
  attachSNPsInPanel(item.properties, injectableProperties);
68
117
  }
@@ -83,91 +132,60 @@ export function installSimpleNativePropertiesSupport() {
83
132
  });
84
133
  addFilter('editor.BlockEdit', 'plaudit/gutenberg-api-extensions/simple-native-properties', createHigherOrderComponent(BlockEdit => (blockEditProps) => {
85
134
  const blockSimpleNativePanelsAndTabs = simpleNativePanelsAndTabs[blockEditProps.name]
86
- ?? (simpleNativePanelsAndTabs[blockEditProps.name] = sortSimpleNativePropertiesAndTabs(rawSimpleNativePanelsAndTabs[blockEditProps.name]));
135
+ ?? (simpleNativePanelsAndTabs[blockEditProps.name] = prepSimpleNativePanelsAndTabs(getSimpleNativePanelsAndTabsForBlock(blockEditProps.name)));
87
136
  if (!blockSimpleNativePanelsAndTabs) {
88
- return React.createElement(BlockEdit, { ...blockEditProps });
89
- }
90
- const [dataStores] = useState([]);
91
- const groupedTabs = {};
92
- const normalPanels = [];
93
- let keyIndex = 0;
94
- for (const panelOrTab of blockSimpleNativePanelsAndTabs) {
95
- const dataStore = dataStores[keyIndex]?.reattach(blockEditProps, undefined)
96
- ?? (dataStores[keyIndex] = (panelOrTab.group === 'layered-styles'
97
- ? new LayeredStylesDataStore(blockEditProps, panelOrTab) : new AttributeDataStore(blockEditProps, panelOrTab)));
98
- const panelOrTabGroup = panelOrTab.group === 'layered-styles' ? 'styles' : panelOrTab.group;
99
- if ('properties' in panelOrTab) {
100
- const { div, items } = makeDivForLaidOutProperties(panelOrTab.properties, dataStore);
101
- normalPanels.push(React.createElement(React.Fragment, null,
102
- React.createElement(InspectorPanel, { opened: items.length === 0 ? false : undefined, ...panelOrTab, group: panelOrTabGroup, condition: () => items.length > 0 && dataStore.testCondition(panelOrTab.condition), raw: ('raw' in panelOrTab && !!panelOrTab.raw) || !ROOT_LEVEL_PANELS.includes(panelOrTabGroup), key: `plaudit-simple-native-property-${keyIndex}` }, div)));
103
- keyIndex++;
104
- }
105
- else {
106
- const group = (groupedTabs[panelOrTabGroup ?? "default"] ?? (groupedTabs[panelOrTabGroup ?? "default"] = {}));
107
- const tabItems = group[panelOrTab.title] ?? (group[panelOrTab.title] = []);
108
- let unwrappedProperties = [];
109
- for (const panelOrProperty of panelOrTab.items) {
110
- if ('properties' in panelOrProperty) {
111
- if (unwrappedProperties.length) {
112
- const { div, items } = makeDivForLaidOutProperties(unwrappedProperties, dataStore);
113
- if (items.length) {
114
- tabItems.push(React.createElement(PanelBody, { initialOpen: true, key: `plaudit-simple-native-property-${keyIndex}` }, div));
115
- }
116
- unwrappedProperties = [];
117
- }
118
- const { div, items } = makeDivForLaidOutProperties(unwrappedProperties, dataStore);
119
- tabItems.push(React.createElement(PanelBody, { ...panelOrProperty, key: `plaudit-simple-native-property-${keyIndex + 1}` }, (items.length > 0 && dataStore.testCondition(panelOrProperty.condition)) && div));
120
- }
121
- else {
122
- unwrappedProperties.push(panelOrProperty);
123
- }
124
- keyIndex += 2;
125
- }
126
- if (unwrappedProperties.length) {
127
- const { div, items } = makeDivForLaidOutProperties(unwrappedProperties, dataStore);
128
- if (items.length) {
129
- tabItems.push(React.createElement(PanelBody, { initialOpen: true, key: `plaudit-simple-native-property-${keyIndex}` }, div));
130
- }
137
+ return _jsx(BlockEdit, { ...blockEditProps });
138
+ }
139
+ const dataController = useDataController(blockEditProps.clientId);
140
+ useEffect(() => {
141
+ dataControllerManager.addDataController(blockEditProps.clientId, dataController);
142
+ return () => dataControllerManager.removeDataController(blockEditProps.clientId);
143
+ }, [dataController, blockEditProps.clientId]);
144
+ return _jsxs(_Fragment, { children: [_jsx(BlockEdit, { ...blockEditProps }), _jsx(SNPPropsWrapper, { blockEditProps: blockEditProps, blockSimpleNativePanelsAndTabs: blockSimpleNativePanelsAndTabs, dataController: dataController })] });
145
+ }, 'plauditGutenbergApiExtensionsSimpleNativeProperties'));
146
+ addFilter('editor.BlockListBlock', 'plaudit/gutenberg-api-extensions/simple-native-properties', createHigherOrderComponent(BlockListBlock => (props) => {
147
+ const dataController = dataControllerManager.getDataController(props.clientId);
148
+ if (!dataController) {
149
+ return _jsx(BlockListBlock, { ...props });
150
+ }
151
+ const hasValidationError = dataController.hasValidationErrors();
152
+ dataControllerManager.notifyOfValidationErrorStatusChange(props.clientId, hasValidationError);
153
+ return (_jsx(BlockListBlock, { ...props, className: hasValidationError ? "has-validation-error" : undefined }));
154
+ }, 'plauditGutenbergApiExtensionsSimpleNativeWrapperMarkup'));
155
+ }
156
+ function makeDataStoreForPanelOrTab(blockEditProps, panelOrTab, group) {
157
+ return group === 'layered-styles' ? new LayeredStylesDataStore(blockEditProps, panelOrTab) : new AttributeDataStore(blockEditProps, panelOrTab);
158
+ }
159
+ function SNPPropsWrapper({ blockSimpleNativePanelsAndTabs, blockEditProps, dataController }) {
160
+ useEffect(() => {
161
+ for (const panel of blockSimpleNativePanelsAndTabs.panels) {
162
+ const dataStore = makeDataStoreForPanelOrTab(blockEditProps, panel, panel.group);
163
+ dataController.dispatch({ type: "addProperties", properties: panel.properties, dataStore, inBatch: true });
164
+ }
165
+ for (const [group, tabs] of Object.entries(blockSimpleNativePanelsAndTabs.tabs)) {
166
+ const dataStore = makeDataStoreForPanelOrTab(blockEditProps, Object.values(tabs), group);
167
+ for (const tab of Object.values(tabs)) {
168
+ for (const panel of tab.items) {
169
+ dataController.dispatch({ type: "addProperties", properties: panel.properties, dataStore, inBatch: true });
131
170
  }
132
- keyIndex++;
133
171
  }
134
172
  }
135
- return React.createElement(React.Fragment, null,
136
- React.createElement(BlockEdit, { ...blockEditProps }),
137
- ...normalPanels,
138
- ...Object.entries(groupedTabs).map(([group, tabs]) => {
139
- return React.createElement(InspectorPanel, { tabbed: true, group: group === 'layered-styles' ? 'styles' : group, tabs: Object.entries(tabs)
140
- .map(([title, items]) => ({ name: `${title.replaceAll(/\W+/gi, "-")}-${keyIndex++}`, title, items })) });
141
- }));
142
- }, 'plauditGutenbergApiExtensionsSimpleNativeProperties'));
173
+ dataController.dispatch({ type: "checkConditions" });
174
+ dataController.dispatch({ type: "validateNodes" });
175
+ }, [blockSimpleNativePanelsAndTabs, dataController]); // We don't depend on blockEditProps here - that is handled by the following useEffect
176
+ useEffect(() => {
177
+ for (const dataStore of dataController.getAllDataStores()) {
178
+ dataStore.reattach(blockEditProps);
179
+ }
180
+ }, [dataController.getAllDataStores(), blockEditProps]);
181
+ //TODO: Hook into block-focus change listener and run validation on focus change
182
+ return _jsxs(SNPTreeContextRoot, { dataController: dataController, children: [...blockSimpleNativePanelsAndTabs.panels.map(panel => _jsx(PanelRoot, { panel: panel })), ...Object.entries(blockSimpleNativePanelsAndTabs.tabs).map(([group, tabs]) => _jsx(TabsRoot, { tabs: tabs, tabGroupName: group }))] });
143
183
  }
144
184
  function attachSNP(property, injectableProperties) {
145
185
  property = hydrateSimpleNativeProperty(property);
146
- const attrPath = property.name.split('.');
147
- if (attrPath.length === 1) {
148
- injectableProperties[property.name] = { type: property.type, default: property.alwaysStore !== false ? undefined : property.default };
149
- if ('enum' in property) {
150
- injectableProperties[property.name].enum = property.enum;
151
- }
152
- }
153
- else {
154
- let actualProp = injectableProperties[attrPath[0]];
155
- if (actualProp === undefined) {
156
- injectableProperties[attrPath[0]] = actualProp = { type: "object" };
157
- }
158
- else if (actualProp.type !== "object") {
159
- throw new Error(`Property type collision on ${property.name}. Attempted treat the property as an object when it was already a ${actualProp.type}`);
160
- }
161
- if (property.default !== undefined) {
162
- if (actualProp.default === undefined) {
163
- actualProp.default = {};
164
- }
165
- let target = actualProp.default;
166
- for (let i = 1; i < attrPath.length - 1; i++) {
167
- target = target[attrPath[i]] = {};
168
- }
169
- target[attrPath[attrPath.length - 1]] = property.default;
170
- }
186
+ injectableProperties[property.name] = { type: property.type, default: property.alwaysStore !== false ? undefined : property.default };
187
+ if ('enum' in property) {
188
+ injectableProperties[property.name].enum = property.enum;
171
189
  }
172
190
  }
173
191
  function attachSNPsInPanel(properties, injectableProperties) {
@@ -185,90 +203,4 @@ function attachSNPsInPanel(properties, injectableProperties) {
185
203
  function isBlockJsonNativePropsConfig(thing) {
186
204
  return typeof thing === 'object' && thing !== null && 'type' in thing && thing.type === "native";
187
205
  }
188
- function renderPropertyComponent(dataStore, prop) {
189
- if (Array.isArray(prop)) {
190
- return prop.map(p => renderPropertyComponent(dataStore, p))
191
- .filter((ele) => ele !== undefined);
192
- }
193
- const prp = hydrateSimpleNativeProperty(prop);
194
- let existingValue = dataStore.getBackedUpAttribute(prp.name, dataStore.getValue(prp));
195
- if (prp.type === "array") { // If the value is not an array or is a sparse array, then it will cause unrecoverable errors upon conversion to PHP
196
- if (existingValue !== undefined && (!Array.isArray(existingValue) || existingValue.length > existingValue.filter(() => true).length)) {
197
- throw new Error(`Invalid value passed to an array-type property: ${existingValue}`);
198
- }
199
- }
200
- else if (prp.type === "object") {
201
- if (existingValue !== undefined && (Array.isArray(existingValue) || typeof existingValue !== 'object')) {
202
- throw new Error(`Invalid value passed to an object-type property: ${existingValue}`);
203
- }
204
- }
205
- else if (prp.type === "boolean") {
206
- if (typeof existingValue !== 'boolean' && existingValue !== undefined) {
207
- existingValue = !!existingValue;
208
- }
209
- }
210
- else if (prp.type === "string") {
211
- if (typeof existingValue !== 'string' && existingValue !== undefined) {
212
- existingValue = existingValue.toString();
213
- }
214
- }
215
- else {
216
- if (typeof existingValue !== 'number' && existingValue !== undefined) {
217
- existingValue = parseFloat(existingValue);
218
- }
219
- }
220
- const ele = React.createElement(SNPControlRenderer, { prp: prp, existingValue: existingValue, dataStore: dataStore });
221
- if (dataStore.testCondition(prp.condition)) {
222
- if (dataStore.removeBackedUpAttribute(prp.name)) {
223
- dataStore.setValue(prp.name, existingValue);
224
- }
225
- return [`plaudit-snp-${prp.name}`, ele];
226
- }
227
- if (!dataStore.hasBackedUpAttribute(prp.name) && existingValue !== prp.default) {
228
- dataStore.setBackedUpAttribute(prp.name, existingValue);
229
- dataStore.setValue(prp.name, prp.default);
230
- }
231
- return undefined;
232
- }
233
- function SNPControlRenderer({ prp, existingValue, dataStore }) {
234
- const onChange = useCallback((value) => dataStore.setValue(prp.name, value), [dataStore, prp.name]);
235
- return prp.control(existingValue, onChange, dataStore);
236
- }
237
- function isElementAndKey(thing) {
238
- return typeof thing[0] === 'string';
239
- }
240
- function buildGridTemplateAreas(fieldAndRows) {
241
- const cellsPerRow = fieldAndRows.map(prop => Array.isArray(prop) ? prop.length : 1)
242
- .reduce((a, b) => b !== 0 && (b > a || a % b !== 0) ? a * b : a, 1);
243
- let grid = "";
244
- let field = 0;
245
- const wrappedItems = [];
246
- for (const fieldOrRow of fieldAndRows) {
247
- let gridRow = "";
248
- if (isElementAndKey(fieldOrRow)) {
249
- gridRow += ` F${field}`.repeat(cellsPerRow);
250
- wrappedItems.push(React.createElement("div", { key: fieldOrRow[0], style: { gridArea: `F${field}` } }, fieldOrRow[1]));
251
- field++;
252
- }
253
- else {
254
- if (fieldOrRow.length === 0) {
255
- continue;
256
- }
257
- gridRow += ` F${field}`.repeat(cellsPerRow);
258
- wrappedItems.push(React.createElement("div", { key: fieldOrRow.map(fr => fr[0]).join("-"), style: { gridArea: `F${field}`, display: "flex", flexWrap: "wrap", columnGap: "inherit" } }, ...fieldOrRow.map(fr => React.createElement("div", { key: fr[0], style: { flex: "1" } }, fr[1]))));
259
- field += fieldOrRow.length;
260
- }
261
- grid += ` "${gridRow.substring(1)}"`;
262
- }
263
- return [grid, wrappedItems];
264
- }
265
- export function makeDivForLaidOutProperties(properties, dataStore) {
266
- const fieldAndRows = properties.map(prop => renderPropertyComponent(dataStore, prop))
267
- .filter((ele) => ele !== undefined);
268
- const [gridTemplateAreas, items] = buildGridTemplateAreas(fieldAndRows);
269
- return {
270
- div: React.createElement("div", { className: "plaudit-snp-laid-out-properties-wrapper", style: { display: "grid", gridTemplateAreas: gridTemplateAreas.substring(1), columnGap: "8px" } }, ...items),
271
- items
272
- };
273
- }
274
206
  //# sourceMappingURL=simple-native-property-impl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"simple-native-property-impl.js","sourceRoot":"","sources":["../../src/blocks/simple-native-property-impl.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simple-native-property-impl.js","sourceRoot":"","sources":["../../src/blocks/simple-native-property-impl.tsx"],"names":[],"mappings":"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"}