@wordpress/dataviews 12.0.1-next.v.202602111440.0 → 12.0.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 (201) hide show
  1. package/CHANGELOG.md +37 -1
  2. package/README.md +3 -1
  3. package/build/components/dataform-controls/color.cjs +19 -30
  4. package/build/components/dataform-controls/color.cjs.map +3 -3
  5. package/build/components/dataform-controls/date.cjs.map +1 -1
  6. package/build/components/dataform-controls/datetime.cjs +12 -21
  7. package/build/components/dataform-controls/datetime.cjs.map +2 -2
  8. package/build/components/dataform-layouts/card/index.cjs +112 -164
  9. package/build/components/dataform-layouts/card/index.cjs.map +3 -3
  10. package/build/components/dataform-layouts/normalize-form.cjs +2 -1
  11. package/build/components/dataform-layouts/normalize-form.cjs.map +2 -2
  12. package/build/components/dataform-layouts/panel/summary-button.cjs +77 -49
  13. package/build/components/dataform-layouts/panel/summary-button.cjs.map +2 -2
  14. package/build/components/dataform-layouts/panel/utils/get-label-content.cjs +2 -2
  15. package/build/components/dataform-layouts/panel/utils/get-label-content.cjs.map +2 -2
  16. package/build/components/dataviews-bulk-actions/index.cjs +2 -2
  17. package/build/components/dataviews-bulk-actions/index.cjs.map +2 -2
  18. package/build/components/dataviews-context/index.cjs +1 -0
  19. package/build/components/dataviews-context/index.cjs.map +2 -2
  20. package/build/components/dataviews-filters/filter.cjs.map +1 -1
  21. package/build/components/dataviews-filters/toggle.cjs +6 -2
  22. package/build/components/dataviews-filters/toggle.cjs.map +2 -2
  23. package/build/components/dataviews-footer/index.cjs +28 -12
  24. package/build/components/dataviews-footer/index.cjs.map +3 -3
  25. package/build/components/dataviews-item-actions/index.cjs +0 -1
  26. package/build/components/dataviews-item-actions/index.cjs.map +2 -2
  27. package/build/components/dataviews-layout/index.cjs +12 -0
  28. package/build/components/dataviews-layout/index.cjs.map +2 -2
  29. package/build/components/dataviews-layouts/activity/index.cjs +41 -26
  30. package/build/components/dataviews-layouts/activity/index.cjs.map +3 -3
  31. package/build/components/dataviews-layouts/grid/composite-grid.cjs +2 -0
  32. package/build/components/dataviews-layouts/grid/composite-grid.cjs.map +2 -2
  33. package/build/components/dataviews-layouts/grid/index.cjs +19 -14
  34. package/build/components/dataviews-layouts/grid/index.cjs.map +3 -3
  35. package/build/components/dataviews-layouts/list/index.cjs +13 -9
  36. package/build/components/dataviews-layouts/list/index.cjs.map +2 -2
  37. package/build/components/dataviews-layouts/picker-table/index.cjs +1 -1
  38. package/build/components/dataviews-layouts/picker-table/index.cjs.map +2 -2
  39. package/build/components/dataviews-layouts/table/index.cjs +40 -19
  40. package/build/components/dataviews-layouts/table/index.cjs.map +2 -2
  41. package/build/dataviews/index.cjs +9 -2
  42. package/build/dataviews/index.cjs.map +3 -3
  43. package/build/dataviews-picker/index.cjs +1 -0
  44. package/build/dataviews-picker/index.cjs.map +2 -2
  45. package/build/hooks/use-data.cjs +46 -0
  46. package/build/hooks/use-data.cjs.map +7 -0
  47. package/build/hooks/use-delayed-loading.cjs +47 -0
  48. package/build/hooks/use-delayed-loading.cjs.map +7 -0
  49. package/build/types/dataform.cjs.map +1 -1
  50. package/build-module/components/dataform-controls/color.mjs +24 -31
  51. package/build-module/components/dataform-controls/color.mjs.map +2 -2
  52. package/build-module/components/dataform-controls/date.mjs.map +1 -1
  53. package/build-module/components/dataform-controls/datetime.mjs +13 -22
  54. package/build-module/components/dataform-controls/datetime.mjs.map +2 -2
  55. package/build-module/components/dataform-layouts/card/index.mjs +113 -161
  56. package/build-module/components/dataform-layouts/card/index.mjs.map +3 -3
  57. package/build-module/components/dataform-layouts/normalize-form.mjs +2 -1
  58. package/build-module/components/dataform-layouts/normalize-form.mjs.map +2 -2
  59. package/build-module/components/dataform-layouts/panel/summary-button.mjs +78 -50
  60. package/build-module/components/dataform-layouts/panel/summary-button.mjs.map +2 -2
  61. package/build-module/components/dataform-layouts/panel/utils/get-label-content.mjs +3 -3
  62. package/build-module/components/dataform-layouts/panel/utils/get-label-content.mjs.map +2 -2
  63. package/build-module/components/dataviews-bulk-actions/index.mjs +2 -2
  64. package/build-module/components/dataviews-bulk-actions/index.mjs.map +2 -2
  65. package/build-module/components/dataviews-context/index.mjs +1 -0
  66. package/build-module/components/dataviews-context/index.mjs.map +2 -2
  67. package/build-module/components/dataviews-filters/filter.mjs.map +1 -1
  68. package/build-module/components/dataviews-filters/toggle.mjs +6 -2
  69. package/build-module/components/dataviews-filters/toggle.mjs.map +2 -2
  70. package/build-module/components/dataviews-footer/index.mjs +28 -12
  71. package/build-module/components/dataviews-footer/index.mjs.map +2 -2
  72. package/build-module/components/dataviews-item-actions/index.mjs +0 -1
  73. package/build-module/components/dataviews-item-actions/index.mjs.map +2 -2
  74. package/build-module/components/dataviews-layout/index.mjs +12 -0
  75. package/build-module/components/dataviews-layout/index.mjs.map +2 -2
  76. package/build-module/components/dataviews-layouts/activity/index.mjs +41 -26
  77. package/build-module/components/dataviews-layouts/activity/index.mjs.map +2 -2
  78. package/build-module/components/dataviews-layouts/grid/composite-grid.mjs +2 -0
  79. package/build-module/components/dataviews-layouts/grid/composite-grid.mjs.map +2 -2
  80. package/build-module/components/dataviews-layouts/grid/index.mjs +19 -14
  81. package/build-module/components/dataviews-layouts/grid/index.mjs.map +2 -2
  82. package/build-module/components/dataviews-layouts/list/index.mjs +13 -9
  83. package/build-module/components/dataviews-layouts/list/index.mjs.map +2 -2
  84. package/build-module/components/dataviews-layouts/picker-table/index.mjs +1 -1
  85. package/build-module/components/dataviews-layouts/picker-table/index.mjs.map +2 -2
  86. package/build-module/components/dataviews-layouts/table/index.mjs +40 -19
  87. package/build-module/components/dataviews-layouts/table/index.mjs.map +2 -2
  88. package/build-module/dataviews/index.mjs +9 -2
  89. package/build-module/dataviews/index.mjs.map +2 -2
  90. package/build-module/dataviews-picker/index.mjs +1 -0
  91. package/build-module/dataviews-picker/index.mjs.map +2 -2
  92. package/build-module/hooks/use-data.mjs +25 -0
  93. package/build-module/hooks/use-data.mjs.map +7 -0
  94. package/build-module/hooks/use-delayed-loading.mjs +22 -0
  95. package/build-module/hooks/use-delayed-loading.mjs.map +7 -0
  96. package/build-style/style-rtl.css +109 -32
  97. package/build-style/style.css +109 -32
  98. package/build-types/components/dataform-controls/color.d.ts.map +1 -1
  99. package/build-types/components/dataform-controls/datetime.d.ts.map +1 -1
  100. package/build-types/components/dataform-controls/utils/use-disabled-date-matchers.d.ts +16 -0
  101. package/build-types/components/dataform-controls/utils/use-disabled-date-matchers.d.ts.map +1 -0
  102. package/build-types/components/dataform-layouts/card/index.d.ts +1 -10
  103. package/build-types/components/dataform-layouts/card/index.d.ts.map +1 -1
  104. package/build-types/components/dataform-layouts/normalize-form.d.ts.map +1 -1
  105. package/build-types/components/dataform-layouts/panel/summary-button.d.ts.map +1 -1
  106. package/build-types/components/dataform-layouts/panel/utils/get-label-content.d.ts +1 -1
  107. package/build-types/components/dataform-layouts/panel/utils/get-label-content.d.ts.map +1 -1
  108. package/build-types/components/dataviews-context/index.d.ts +1 -0
  109. package/build-types/components/dataviews-context/index.d.ts.map +1 -1
  110. package/build-types/components/dataviews-filters/filter.d.ts +1 -1
  111. package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
  112. package/build-types/components/dataviews-filters/toggle.d.ts.map +1 -1
  113. package/build-types/components/dataviews-footer/index.d.ts +1 -1
  114. package/build-types/components/dataviews-footer/index.d.ts.map +1 -1
  115. package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
  116. package/build-types/components/dataviews-layout/index.d.ts +1 -1
  117. package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
  118. package/build-types/components/dataviews-layouts/activity/index.d.ts.map +1 -1
  119. package/build-types/components/dataviews-layouts/grid/composite-grid.d.ts +2 -1
  120. package/build-types/components/dataviews-layouts/grid/composite-grid.d.ts.map +1 -1
  121. package/build-types/components/dataviews-layouts/grid/index.d.ts.map +1 -1
  122. package/build-types/components/dataviews-layouts/list/index.d.ts.map +1 -1
  123. package/build-types/components/dataviews-layouts/picker-activity/index.d.ts +3 -0
  124. package/build-types/components/dataviews-layouts/picker-activity/index.d.ts.map +1 -0
  125. package/build-types/components/dataviews-layouts/table/index.d.ts.map +1 -1
  126. package/build-types/components/dataviews-layouts/table/use-scroll-state.d.ts +25 -0
  127. package/build-types/components/dataviews-layouts/table/use-scroll-state.d.ts.map +1 -0
  128. package/build-types/components/dataviews-layouts/utils/grid-config-options.d.ts +2 -0
  129. package/build-types/components/dataviews-layouts/utils/grid-config-options.d.ts.map +1 -0
  130. package/build-types/components/dataviews-layouts/utils/use-infinite-scroll.d.ts +22 -0
  131. package/build-types/components/dataviews-layouts/utils/use-infinite-scroll.d.ts.map +1 -0
  132. package/build-types/dataform/stories/index.story.d.ts +9 -1
  133. package/build-types/dataform/stories/index.story.d.ts.map +1 -1
  134. package/build-types/dataform/stories/layout-panel.d.ts +3 -1
  135. package/build-types/dataform/stories/layout-panel.d.ts.map +1 -1
  136. package/build-types/dataviews/index.d.ts.map +1 -1
  137. package/build-types/dataviews/stories/empty.d.ts.map +1 -1
  138. package/build-types/dataviews/stories/free-composition.d.ts.map +1 -1
  139. package/build-types/dataviews/stories/layout-table.d.ts.map +1 -1
  140. package/build-types/dataviews/stories/minimal-ui.d.ts.map +1 -1
  141. package/build-types/dataviews/stories/with-card.d.ts.map +1 -1
  142. package/build-types/dataviews-picker/index.d.ts.map +1 -1
  143. package/build-types/field-types/utils/is-valid-date-boundary.d.ts +7 -0
  144. package/build-types/field-types/utils/is-valid-date-boundary.d.ts.map +1 -0
  145. package/build-types/hooks/test/use-data.d.ts +2 -0
  146. package/build-types/hooks/test/use-data.d.ts.map +1 -0
  147. package/build-types/hooks/use-data.d.ts +12 -0
  148. package/build-types/hooks/use-data.d.ts.map +1 -0
  149. package/build-types/hooks/use-delayed-loading.d.ts +4 -0
  150. package/build-types/hooks/use-delayed-loading.d.ts.map +1 -0
  151. package/build-types/hooks/use-infinite-scroll.d.ts +21 -0
  152. package/build-types/hooks/use-infinite-scroll.d.ts.map +1 -0
  153. package/build-types/hooks/use-selected-items.d.ts +19 -0
  154. package/build-types/hooks/use-selected-items.d.ts.map +1 -0
  155. package/build-types/types/dataform.d.ts +3 -0
  156. package/build-types/types/dataform.d.ts.map +1 -1
  157. package/build-wp/index.js +2568 -1864
  158. package/package.json +21 -21
  159. package/src/components/dataform-controls/color.tsx +29 -36
  160. package/src/components/dataform-controls/date.tsx +2 -2
  161. package/src/components/dataform-controls/datetime.tsx +19 -34
  162. package/src/components/dataform-controls/style.scss +4 -0
  163. package/src/components/dataform-layouts/card/index.tsx +118 -185
  164. package/src/components/dataform-layouts/normalize-form.ts +1 -0
  165. package/src/components/dataform-layouts/panel/style.scss +24 -20
  166. package/src/components/dataform-layouts/panel/summary-button.tsx +43 -12
  167. package/src/components/dataform-layouts/panel/utils/get-label-content.tsx +3 -5
  168. package/src/components/dataform-layouts/regular/style.scss +3 -2
  169. package/src/components/dataform-layouts/test/normalize-form.ts +5 -0
  170. package/src/components/dataviews-bulk-actions/index.tsx +2 -2
  171. package/src/components/dataviews-context/index.ts +2 -0
  172. package/src/components/dataviews-filters/filter.tsx +1 -1
  173. package/src/components/dataviews-filters/toggle.tsx +10 -3
  174. package/src/components/dataviews-footer/index.tsx +39 -12
  175. package/src/components/dataviews-footer/style.scss +6 -1
  176. package/src/components/dataviews-item-actions/index.tsx +0 -3
  177. package/src/components/dataviews-item-actions/style.scss +7 -0
  178. package/src/components/dataviews-layout/index.tsx +24 -0
  179. package/src/components/dataviews-layouts/activity/index.tsx +29 -22
  180. package/src/components/dataviews-layouts/activity/style.scss +5 -0
  181. package/src/components/dataviews-layouts/grid/composite-grid.tsx +5 -1
  182. package/src/components/dataviews-layouts/grid/index.tsx +19 -22
  183. package/src/components/dataviews-layouts/grid/style.scss +5 -0
  184. package/src/components/dataviews-layouts/list/index.tsx +18 -18
  185. package/src/components/dataviews-layouts/list/style.scss +5 -0
  186. package/src/components/dataviews-layouts/picker-table/index.tsx +1 -1
  187. package/src/components/dataviews-layouts/table/index.tsx +48 -22
  188. package/src/components/dataviews-layouts/table/style.scss +8 -2
  189. package/src/dataform/stories/index.story.tsx +5 -0
  190. package/src/dataform/stories/layout-panel.tsx +19 -2
  191. package/src/dataviews/index.tsx +11 -3
  192. package/src/dataviews/stories/empty.tsx +1 -7
  193. package/src/dataviews/stories/free-composition.tsx +0 -5
  194. package/src/dataviews/stories/layout-table.tsx +1 -7
  195. package/src/dataviews/stories/minimal-ui.tsx +0 -5
  196. package/src/dataviews/stories/with-card.tsx +1 -7
  197. package/src/dataviews/style.scss +25 -0
  198. package/src/dataviews-picker/index.tsx +2 -1
  199. package/src/hooks/use-data.ts +45 -0
  200. package/src/hooks/use-delayed-loading.ts +21 -0
  201. package/src/types/dataform.ts +4 -0
@@ -0,0 +1,45 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useEffect, useRef, useState } from '@wordpress/element';
5
+
6
+ type PaginationInfo = {
7
+ totalItems: number;
8
+ totalPages: number;
9
+ infiniteScrollHandler?: () => void;
10
+ };
11
+
12
+ export default function useData< Item >(
13
+ data: Item[],
14
+ isLoading: boolean | undefined,
15
+ paginationInfo: PaginationInfo
16
+ ): {
17
+ data: Item[];
18
+ paginationInfo: PaginationInfo;
19
+ hasInitiallyLoaded: boolean;
20
+ } {
21
+ const previousDataRef = useRef< Item[] >( data );
22
+ const previousPaginationInfoRef =
23
+ useRef< PaginationInfo >( paginationInfo );
24
+ const [ hasInitiallyLoaded, setHasInitiallyLoaded ] = useState(
25
+ ! isLoading
26
+ );
27
+ useEffect( () => {
28
+ if ( ! isLoading ) {
29
+ previousDataRef.current = data;
30
+ previousPaginationInfoRef.current = paginationInfo;
31
+ setHasInitiallyLoaded( true );
32
+ }
33
+ }, [ data, isLoading, paginationInfo ] );
34
+ return {
35
+ data:
36
+ isLoading && previousDataRef.current?.length
37
+ ? previousDataRef.current
38
+ : data,
39
+ paginationInfo:
40
+ isLoading && previousDataRef.current?.length
41
+ ? previousPaginationInfoRef.current
42
+ : paginationInfo,
43
+ hasInitiallyLoaded,
44
+ };
45
+ }
@@ -0,0 +1,21 @@
1
+ import { useEffect, useState } from '@wordpress/element';
2
+
3
+ export function useDelayedLoading(
4
+ isLoading: boolean,
5
+ options: { delay: number } = { delay: 400 }
6
+ ): boolean {
7
+ const [ showLoader, setShowLoader ] = useState( false );
8
+ useEffect( () => {
9
+ if ( ! isLoading ) {
10
+ return;
11
+ }
12
+ const timeout = setTimeout( () => {
13
+ setShowLoader( true );
14
+ }, options.delay );
15
+ return () => {
16
+ clearTimeout( timeout );
17
+ setShowLoader( false );
18
+ };
19
+ }, [ isLoading, options.delay ] );
20
+ return showLoader;
21
+ }
@@ -21,17 +21,21 @@ export type NormalizedRegularLayout = {
21
21
  labelPosition: LabelPosition;
22
22
  };
23
23
 
24
+ export type EditVisibility = 'always' | 'on-hover';
25
+
24
26
  export type PanelLayout = {
25
27
  type: 'panel';
26
28
  labelPosition?: LabelPosition;
27
29
  openAs?: 'dropdown' | 'modal';
28
30
  summary?: PanelSummaryField;
31
+ editVisibility?: EditVisibility;
29
32
  };
30
33
  export type NormalizedPanelLayout = {
31
34
  type: 'panel';
32
35
  labelPosition: LabelPosition;
33
36
  openAs: 'dropdown' | 'modal';
34
37
  summary: NormalizedPanelSummaryField;
38
+ editVisibility: EditVisibility;
35
39
  };
36
40
 
37
41
  export type CardSummaryField =