@wordpress/dataviews 4.7.0 → 4.8.2-next.082ed6819.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.
- package/CHANGELOG.md +9 -2
- package/README.md +793 -97
- package/build/components/dataform/index.js +20 -8
- package/build/components/dataform/index.js.map +1 -1
- package/build/components/dataform-context/index.js +33 -0
- package/build/components/dataform-context/index.js.map +1 -0
- package/build/components/dataviews/index.js +10 -7
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +2 -1
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-filters/index.js +49 -31
- package/build/components/dataviews-filters/index.js.map +1 -1
- package/build/components/dataviews-item-actions/index.js +46 -20
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- package/build/components/dataviews-layout/index.js +5 -3
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +4 -15
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/components/form-field-visibility/index.js +32 -0
- package/build/components/form-field-visibility/index.js.map +1 -0
- package/build/dataforms-layouts/data-form-layout.js +59 -0
- package/build/dataforms-layouts/data-form-layout.js.map +1 -0
- package/build/dataforms-layouts/index.js +4 -4
- package/build/dataforms-layouts/index.js.map +1 -1
- package/build/dataforms-layouts/is-combined-field.js +14 -0
- package/build/dataforms-layouts/is-combined-field.js.map +1 -0
- package/build/dataforms-layouts/panel/index.js +158 -67
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/regular/index.js +86 -14
- package/build/dataforms-layouts/regular/index.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +18 -7
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/grid/{density-picker.js → preview-size-picker.js} +40 -24
- package/build/dataviews-layouts/grid/preview-size-picker.js.map +1 -0
- package/build/dataviews-layouts/index.js +6 -2
- package/build/dataviews-layouts/index.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +3 -2
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/density-picker.js +51 -0
- package/build/dataviews-layouts/table/density-picker.js.map +1 -0
- package/build/dataviews-layouts/table/index.js +26 -6
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/dataviews-layouts/utils/get-clickable-item-props.js +25 -0
- package/build/dataviews-layouts/utils/get-clickable-item-props.js.map +1 -0
- package/build/normalize-fields.js +16 -24
- package/build/normalize-fields.js.map +1 -1
- package/build/normalize-form-fields.js +36 -0
- package/build/normalize-form-fields.js.map +1 -0
- package/build/types.js.map +1 -1
- package/build/validation.js +9 -0
- package/build/validation.js.map +1 -1
- package/build-module/components/dataform/index.js +20 -8
- package/build-module/components/dataform/index.js.map +1 -1
- package/build-module/components/dataform-context/index.js +25 -0
- package/build-module/components/dataform-context/index.js.map +1 -0
- package/build-module/components/dataviews/index.js +11 -8
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-context/index.js +2 -1
- package/build-module/components/dataviews-context/index.js.map +1 -1
- package/build-module/components/dataviews-filters/index.js +50 -32
- package/build-module/components/dataviews-filters/index.js.map +1 -1
- package/build-module/components/dataviews-item-actions/index.js +46 -20
- package/build-module/components/dataviews-item-actions/index.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +5 -3
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +5 -16
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/components/form-field-visibility/index.js +26 -0
- package/build-module/components/form-field-visibility/index.js.map +1 -0
- package/build-module/dataforms-layouts/data-form-layout.js +52 -0
- package/build-module/dataforms-layouts/data-form-layout.js.map +1 -0
- package/build-module/dataforms-layouts/index.js +7 -7
- package/build-module/dataforms-layouts/index.js.map +1 -1
- package/build-module/dataforms-layouts/is-combined-field.js +8 -0
- package/build-module/dataforms-layouts/is-combined-field.js.map +1 -0
- package/build-module/dataforms-layouts/panel/index.js +157 -66
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/regular/index.js +87 -15
- package/build-module/dataforms-layouts/regular/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +18 -7
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/{density-picker.js → preview-size-picker.js} +38 -24
- package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +1 -0
- package/build-module/dataviews-layouts/index.js +6 -2
- package/build-module/dataviews-layouts/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +3 -2
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/density-picker.js +43 -0
- package/build-module/dataviews-layouts/table/density-picker.js.map +1 -0
- package/build-module/dataviews-layouts/table/index.js +26 -6
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/dataviews-layouts/utils/get-clickable-item-props.js +19 -0
- package/build-module/dataviews-layouts/utils/get-clickable-item-props.js.map +1 -0
- package/build-module/normalize-fields.js +15 -23
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/normalize-form-fields.js +30 -0
- package/build-module/normalize-form-fields.js.map +1 -0
- package/build-module/types.js.map +1 -1
- package/build-module/validation.js +9 -0
- package/build-module/validation.js.map +1 -1
- package/build-style/style-rtl.css +65 -10
- package/build-style/style.css +65 -10
- package/build-types/components/dataform/index.d.ts +1 -1
- package/build-types/components/dataform/index.d.ts.map +1 -1
- package/build-types/components/dataform/stories/index.story.d.ts +18 -7
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataform-context/index.d.ts +13 -0
- package/build-types/components/dataform-context/index.d.ts.map +1 -0
- package/build-types/components/dataviews/index.d.ts +3 -1
- package/build-types/components/dataviews/index.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +2 -1
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/index.d.ts +1 -1
- package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts +1 -3
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/components/form-field-visibility/index.d.ts +11 -0
- package/build-types/components/form-field-visibility/index.d.ts.map +1 -0
- package/build-types/dataforms-layouts/data-form-layout.d.ts +16 -0
- package/build-types/dataforms-layouts/data-form-layout.d.ts.map +1 -0
- package/build-types/dataforms-layouts/index.d.ts +3 -3
- package/build-types/dataforms-layouts/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/is-combined-field.d.ts +6 -0
- package/build-types/dataforms-layouts/is-combined-field.d.ts.map +1 -0
- package/build-types/dataforms-layouts/panel/index.d.ts +5 -2
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/regular/index.d.ts +5 -2
- package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts +3 -0
- package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts.map +1 -0
- package/build-types/dataviews-layouts/index.d.ts +5 -0
- package/build-types/dataviews-layouts/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/density-picker.d.ts +2 -0
- package/build-types/dataviews-layouts/table/density-picker.d.ts.map +1 -0
- package/build-types/dataviews-layouts/table/index.d.ts +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts +14 -0
- package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts.map +1 -0
- package/build-types/lock-unlock.d.ts +1 -1
- package/build-types/lock-unlock.d.ts.map +1 -1
- package/build-types/normalize-fields.d.ts +1 -9
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/normalize-form-fields.d.ts +12 -0
- package/build-types/normalize-form-fields.d.ts.map +1 -0
- package/build-types/types.d.ts +37 -22
- package/build-types/types.d.ts.map +1 -1
- package/build-types/validation.d.ts +10 -1
- package/build-types/validation.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/components/dataform/index.tsx +22 -5
- package/src/components/dataform/stories/index.story.tsx +105 -50
- package/src/components/dataform-context/index.tsx +30 -0
- package/src/components/dataviews/index.tsx +12 -7
- package/src/components/dataviews/stories/fixtures.tsx +1 -0
- package/src/components/dataviews/stories/index.story.tsx +16 -3
- package/src/components/dataviews/style.scss +9 -3
- package/src/components/dataviews-context/index.ts +4 -2
- package/src/components/dataviews-filters/index.tsx +73 -38
- package/src/components/dataviews-item-actions/index.tsx +73 -25
- package/src/components/dataviews-layout/index.tsx +4 -2
- package/src/components/dataviews-view-config/index.tsx +7 -23
- package/src/components/form-field-visibility/index.tsx +32 -0
- package/src/dataforms-layouts/data-form-layout.tsx +87 -0
- package/src/dataforms-layouts/index.tsx +7 -7
- package/src/dataforms-layouts/is-combined-field.ts +10 -0
- package/src/dataforms-layouts/panel/index.tsx +190 -93
- package/src/dataforms-layouts/panel/style.scss +4 -0
- package/src/dataforms-layouts/regular/index.tsx +99 -29
- package/src/dataforms-layouts/regular/style.scss +30 -0
- package/src/dataviews-layouts/grid/index.tsx +34 -8
- package/src/dataviews-layouts/grid/{density-picker.tsx → preview-size-picker.tsx} +39 -26
- package/src/dataviews-layouts/grid/style.scss +8 -1
- package/src/dataviews-layouts/index.ts +4 -0
- package/src/dataviews-layouts/list/index.tsx +31 -27
- package/src/dataviews-layouts/table/density-picker.tsx +57 -0
- package/src/dataviews-layouts/table/index.tsx +46 -5
- package/src/dataviews-layouts/table/style.scss +32 -0
- package/src/dataviews-layouts/utils/get-clickable-item-props.ts +22 -0
- package/src/normalize-fields.ts +18 -35
- package/src/normalize-form-fields.ts +42 -0
- package/src/style.scss +1 -1
- package/src/test/normalize-fields.ts +45 -0
- package/src/types.ts +43 -21
- package/src/validation.ts +10 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/dataform-combined-edit/index.js +0 -67
- package/build/components/dataform-combined-edit/index.js.map +0 -1
- package/build/dataforms-layouts/get-visible-fields.js +0 -21
- package/build/dataforms-layouts/get-visible-fields.js.map +0 -1
- package/build/dataviews-layouts/grid/density-picker.js.map +0 -1
- package/build-module/components/dataform-combined-edit/index.js +0 -60
- package/build-module/components/dataform-combined-edit/index.js.map +0 -1
- package/build-module/dataforms-layouts/get-visible-fields.js +0 -14
- package/build-module/dataforms-layouts/get-visible-fields.js.map +0 -1
- package/build-module/dataviews-layouts/grid/density-picker.js.map +0 -1
- package/build-types/components/dataform-combined-edit/index.d.ts +0 -7
- package/build-types/components/dataform-combined-edit/index.d.ts.map +0 -1
- package/build-types/dataforms-layouts/get-visible-fields.d.ts +0 -3
- package/build-types/dataforms-layouts/get-visible-fields.d.ts.map +0 -1
- package/build-types/dataviews-layouts/grid/density-picker.d.ts +0 -5
- package/build-types/dataviews-layouts/grid/density-picker.d.ts.map +0 -1
- package/src/components/dataform-combined-edit/index.tsx +0 -66
- package/src/components/dataform-combined-edit/style.scss +0 -12
- package/src/dataforms-layouts/get-visible-fields.ts +0 -29
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview-size-picker.d.ts","sourceRoot":"","sources":["../../../src/dataviews-layouts/grid/preview-size-picker.tsx"],"names":[],"mappings":"AA+CA,wBAAgB,qCAAqC,uBAkBpD;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,uCA+CxC"}
|
|
@@ -5,21 +5,26 @@ import ViewTable from './table';
|
|
|
5
5
|
import ViewGrid from './grid';
|
|
6
6
|
import ViewList from './list';
|
|
7
7
|
import type { View, Field } from '../types';
|
|
8
|
+
import PreviewSizePicker from './grid/preview-size-picker';
|
|
9
|
+
import DensityPicker from './table/density-picker';
|
|
8
10
|
export declare const VIEW_LAYOUTS: ({
|
|
9
11
|
type: string;
|
|
10
12
|
label: string;
|
|
11
13
|
component: typeof ViewTable;
|
|
12
14
|
icon: import("react").JSX.Element;
|
|
15
|
+
viewConfigOptions: typeof DensityPicker;
|
|
13
16
|
} | {
|
|
14
17
|
type: string;
|
|
15
18
|
label: string;
|
|
16
19
|
component: typeof ViewGrid;
|
|
17
20
|
icon: import("react").JSX.Element;
|
|
21
|
+
viewConfigOptions: typeof PreviewSizePicker;
|
|
18
22
|
} | {
|
|
19
23
|
type: string;
|
|
20
24
|
label: string;
|
|
21
25
|
component: typeof ViewList;
|
|
22
26
|
icon: import("react").JSX.Element;
|
|
27
|
+
viewConfigOptions?: undefined;
|
|
23
28
|
})[];
|
|
24
29
|
export declare function getNotHidableFieldIds(view: View): string[];
|
|
25
30
|
export declare function getVisibleFieldIds(view: View, fields: Field<any>[]): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dataviews-layouts/index.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,OAAO,SAAS,MAAM,SAAS,CAAC;AAChC,OAAO,QAAQ,MAAM,QAAQ,CAAC;AAC9B,OAAO,QAAQ,MAAM,QAAQ,CAAC;AAE9B,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dataviews-layouts/index.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,OAAO,SAAS,MAAM,SAAS,CAAC;AAChC,OAAO,QAAQ,MAAM,QAAQ,CAAC;AAC9B,OAAO,QAAQ,MAAM,QAAQ,CAAC;AAE9B,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,iBAAiB,MAAM,4BAA4B,CAAC;AAC3D,OAAO,aAAa,MAAM,wBAAwB,CAAC;AAEnD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;IAqBxB,CAAC;AAEF,wBAAgB,qBAAqB,CAAE,IAAI,EAAE,IAAI,GAAI,MAAM,EAAE,CAwB5D;AAYD,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,KAAK,CAAE,GAAG,CAAE,EAAE,GACpB,MAAM,EAAE,CAoBV;AAED,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,KAAK,CAAE,GAAG,CAAE,EAAE,GACpB,MAAM,EAAE,CAqBV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dataviews-layouts/list/index.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAA2B,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dataviews-layouts/list/index.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAA2B,aAAa,EAAE,MAAM,aAAa,CAAC;AAmQ1E,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAE,IAAI,EAAI,KAAK,EAAE,aAAa,CAAE,IAAI,CAAE,+BAyLrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"density-picker.d.ts","sourceRoot":"","sources":["../../../src/dataviews-layouts/table/density-picker.tsx"],"names":[],"mappings":"AAgBA,MAAM,CAAC,OAAO,UAAU,aAAa,gCAwCpC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { ViewTableProps } from '../../types';
|
|
2
|
-
declare function ViewTable<Item>({ actions, data, fields, getItemId, isLoading, onChangeView, onChangeSelection, selection, setOpenedFilter, view, }: ViewTableProps<Item>): import("react").JSX.Element | undefined;
|
|
2
|
+
declare function ViewTable<Item>({ actions, data, fields, getItemId, isLoading, onChangeView, onChangeSelection, selection, setOpenedFilter, onClickItem, isItemClickable, view, }: ViewTableProps<Item>): import("react").JSX.Element | undefined;
|
|
3
3
|
export default ViewTable;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dataviews-layouts/table/index.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAIX,cAAc,EAEd,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dataviews-layouts/table/index.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAIX,cAAc,EAEd,MAAM,aAAa,CAAC;AAkPrB,iBAAS,SAAS,CAAE,IAAI,EAAI,EAC3B,OAAO,EACP,IAAI,EACJ,MAAM,EACN,SAAS,EACT,SAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,WAAW,EACX,eAAe,EACf,IAAI,GACJ,EAAE,cAAc,CAAE,IAAI,CAAE,2CAoKxB;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export default function getClickableItemProps<Item>(item: Item, isItemClickable: (item: Item) => boolean, onClickItem: (item: Item) => void, className: string): {
|
|
2
|
+
className: string;
|
|
3
|
+
role?: undefined;
|
|
4
|
+
tabIndex?: undefined;
|
|
5
|
+
onClick?: undefined;
|
|
6
|
+
onKeyDown?: undefined;
|
|
7
|
+
} | {
|
|
8
|
+
className: string;
|
|
9
|
+
role: string;
|
|
10
|
+
tabIndex: number;
|
|
11
|
+
onClick: () => void;
|
|
12
|
+
onKeyDown: (event: React.KeyboardEvent) => void;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=get-clickable-item-props.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-clickable-item-props.d.ts","sourceRoot":"","sources":["../../../src/dataviews-layouts/utils/get-clickable-item-props.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAE,IAAI,EAClD,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,CAAE,IAAI,EAAE,IAAI,KAAM,OAAO,EAC1C,WAAW,EAAE,CAAE,IAAI,EAAE,IAAI,KAAM,IAAI,EACnC,SAAS,EAAE,MAAM;;;;;;;;;;;uBAWI,KAAK,CAAC,aAAa;EAMxC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const lock: (object:
|
|
1
|
+
export declare const lock: (object: Record<symbol, WeakKey>, privateData: unknown) => void, unlock: (object: Record<symbol, WeakKey>) => any;
|
|
2
2
|
//# sourceMappingURL=lock-unlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-unlock.d.ts","sourceRoot":"","sources":["../src/lock-unlock.ts"],"names":[],"mappings":"AAKA,eAAO,MAAQ,IAAI,
|
|
1
|
+
{"version":3,"file":"lock-unlock.d.ts","sourceRoot":"","sources":["../src/lock-unlock.ts"],"names":[],"mappings":"AAKA,eAAO,MAAQ,IAAI,mEAAE,MAAM,0CAIzB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Field, NormalizedField } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Apply default values and normalize the fields config.
|
|
4
4
|
*
|
|
@@ -6,12 +6,4 @@ import type { CombinedFormField, Field, NormalizedField, NormalizedCombinedFormF
|
|
|
6
6
|
* @return Normalized fields config.
|
|
7
7
|
*/
|
|
8
8
|
export declare function normalizeFields<Item>(fields: Field<Item>[]): NormalizedField<Item>[];
|
|
9
|
-
/**
|
|
10
|
-
* Apply default values and normalize the fields config.
|
|
11
|
-
*
|
|
12
|
-
* @param combinedFields combined field list.
|
|
13
|
-
* @param fields Fields config.
|
|
14
|
-
* @return Normalized fields config.
|
|
15
|
-
*/
|
|
16
|
-
export declare function normalizeCombinedFields<Item>(combinedFields: CombinedFormField<Item>[], fields: Field<Item>[]): NormalizedCombinedFormField<Item>[];
|
|
17
9
|
//# sourceMappingURL=normalize-fields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-fields.d.ts","sourceRoot":"","sources":["../src/normalize-fields.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"normalize-fields.d.ts","sourceRoot":"","sources":["../src/normalize-fields.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmBtD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAE,IAAI,EACpC,MAAM,EAAE,KAAK,CAAE,IAAI,CAAE,EAAE,GACrB,eAAe,CAAE,IAAI,CAAE,EAAE,CAmD3B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import type { Form } from './types';
|
|
5
|
+
interface NormalizedFormField {
|
|
6
|
+
id: string;
|
|
7
|
+
layout: 'regular' | 'panel';
|
|
8
|
+
labelPosition: 'side' | 'top' | 'none';
|
|
9
|
+
}
|
|
10
|
+
export default function normalizeFormFields(form: Form): NormalizedFormField[];
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=normalize-form-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-form-fields.d.ts","sourceRoot":"","sources":["../src/normalize-form-fields.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC,UAAU,mBAAmB;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;CACvC;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAC1C,IAAI,EAAE,IAAI,GACR,mBAAmB,EAAE,CA4BvB"}
|
package/build-types/types.d.ts
CHANGED
|
@@ -95,6 +95,10 @@ export type Field<Item> = {
|
|
|
95
95
|
* Callback used to validate the field.
|
|
96
96
|
*/
|
|
97
97
|
isValid?: (item: Item, context?: ValidationContext) => boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Callback used to decide if a field should be displayed.
|
|
100
|
+
*/
|
|
101
|
+
isVisible?: (item: Item) => boolean;
|
|
98
102
|
/**
|
|
99
103
|
* Whether the field is sortable.
|
|
100
104
|
*/
|
|
@@ -263,6 +267,7 @@ export interface ColumnStyle {
|
|
|
263
267
|
*/
|
|
264
268
|
minWidth?: string | number;
|
|
265
269
|
}
|
|
270
|
+
export type Density = 'compact' | 'balanced' | 'comfortable';
|
|
266
271
|
export interface ViewTable extends ViewBase {
|
|
267
272
|
type: 'table';
|
|
268
273
|
layout?: {
|
|
@@ -278,6 +283,10 @@ export interface ViewTable extends ViewBase {
|
|
|
278
283
|
* The styles for the columns.
|
|
279
284
|
*/
|
|
280
285
|
styles?: Record<string, ColumnStyle>;
|
|
286
|
+
/**
|
|
287
|
+
* The density of the view.
|
|
288
|
+
*/
|
|
289
|
+
density?: Density;
|
|
281
290
|
};
|
|
282
291
|
}
|
|
283
292
|
export interface ViewList extends ViewBase {
|
|
@@ -312,6 +321,10 @@ export interface ViewGrid extends ViewBase {
|
|
|
312
321
|
* The fields to use as badge fields.
|
|
313
322
|
*/
|
|
314
323
|
badgeFields?: string[];
|
|
324
|
+
/**
|
|
325
|
+
* The preview size of the grid.
|
|
326
|
+
*/
|
|
327
|
+
previewSize?: number;
|
|
315
328
|
};
|
|
316
329
|
}
|
|
317
330
|
export type View = ViewList | ViewGrid | ViewTable;
|
|
@@ -397,8 +410,9 @@ export interface ViewBaseProps<Item> {
|
|
|
397
410
|
onChangeSelection: SetSelection;
|
|
398
411
|
selection: string[];
|
|
399
412
|
setOpenedFilter: (fieldId: string) => void;
|
|
413
|
+
onClickItem: (item: Item) => void;
|
|
414
|
+
isItemClickable: (item: Item) => boolean;
|
|
400
415
|
view: View;
|
|
401
|
-
density: number;
|
|
402
416
|
}
|
|
403
417
|
export interface ViewTableProps<Item> extends ViewBaseProps<Item> {
|
|
404
418
|
view: ViewTable;
|
|
@@ -415,37 +429,38 @@ export interface SupportedLayouts {
|
|
|
415
429
|
grid?: Omit<ViewGrid, 'type'>;
|
|
416
430
|
table?: Omit<ViewTable, 'type'>;
|
|
417
431
|
}
|
|
418
|
-
export
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
}
|
|
423
|
-
export
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
export type NormalizedCombinedFormField<Item> = CombinedFormField<Item> & {
|
|
430
|
-
fields: NormalizedField<Item>[];
|
|
431
|
-
Edit?: ComponentType<DataFormCombinedEditProps<Item>>;
|
|
432
|
+
export type SimpleFormField = {
|
|
433
|
+
id: string;
|
|
434
|
+
layout?: 'regular' | 'panel';
|
|
435
|
+
labelPosition?: 'side' | 'top' | 'none';
|
|
436
|
+
};
|
|
437
|
+
export type CombinedFormField = {
|
|
438
|
+
id: string;
|
|
439
|
+
label?: string;
|
|
440
|
+
layout?: 'regular' | 'panel';
|
|
441
|
+
labelPosition?: 'side' | 'top' | 'none';
|
|
442
|
+
children: Array<FormField | string>;
|
|
432
443
|
};
|
|
444
|
+
export type FormField = SimpleFormField | CombinedFormField;
|
|
433
445
|
/**
|
|
434
446
|
* The form configuration.
|
|
435
447
|
*/
|
|
436
|
-
export type Form
|
|
448
|
+
export type Form = {
|
|
437
449
|
type?: 'regular' | 'panel';
|
|
438
|
-
fields?: string
|
|
439
|
-
|
|
440
|
-
* The fields to combine.
|
|
441
|
-
*/
|
|
442
|
-
combinedFields?: CombinedFormField<Item>[];
|
|
450
|
+
fields?: Array<FormField | string>;
|
|
451
|
+
labelPosition?: 'side' | 'top' | 'none';
|
|
443
452
|
};
|
|
444
453
|
export interface DataFormProps<Item> {
|
|
445
454
|
data: Item;
|
|
446
455
|
fields: Field<Item>[];
|
|
447
|
-
form: Form
|
|
456
|
+
form: Form;
|
|
448
457
|
onChange: (value: Record<string, any>) => void;
|
|
449
458
|
}
|
|
459
|
+
export interface FieldLayoutProps<Item> {
|
|
460
|
+
data: Item;
|
|
461
|
+
field: FormField;
|
|
462
|
+
onChange: (value: any) => void;
|
|
463
|
+
hideLabelFromVision?: boolean;
|
|
464
|
+
}
|
|
450
465
|
export {};
|
|
451
466
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
import type { Field, Form } from './types';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Whether or not the given item's value is valid according to the fields and form config.
|
|
4
|
+
*
|
|
5
|
+
* @param item The item to validate.
|
|
6
|
+
* @param fields Fields config.
|
|
7
|
+
* @param form Form config.
|
|
8
|
+
*
|
|
9
|
+
* @return A boolean indicating if the item is valid (true) or not (false).
|
|
10
|
+
*/
|
|
11
|
+
export declare function isItemValid<Item>(item: Item, fields: Field<Item>[], form: Form): boolean;
|
|
3
12
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAgB,WAAW,CAAE,IAAI,EAChC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,KAAK,CAAE,IAAI,CAAE,EAAE,EACvB,IAAI,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAE,IAAI,EAChC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,KAAK,CAAE,IAAI,CAAE,EAAE,EACvB,IAAI,EAAE,IAAI,GACR,OAAO,CAOT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/dataviews",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.8.2-next.082ed6819.0",
|
|
4
4
|
"description": "DataViews is a component that provides an API to render datasets using different types of layouts (table, grid, list, etc.).",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -25,20 +25,21 @@
|
|
|
25
25
|
"main": "build/index.js",
|
|
26
26
|
"module": "build-module/index.js",
|
|
27
27
|
"react-native": "src/index",
|
|
28
|
+
"wpScript": true,
|
|
28
29
|
"types": "build-types",
|
|
29
30
|
"sideEffects": false,
|
|
30
31
|
"dependencies": {
|
|
31
32
|
"@ariakit/react": "^0.4.10",
|
|
32
33
|
"@babel/runtime": "7.25.7",
|
|
33
34
|
"@wordpress/components": "*",
|
|
34
|
-
"@wordpress/compose": "
|
|
35
|
+
"@wordpress/compose": "^7.12.1-next.082ed6819.0",
|
|
35
36
|
"@wordpress/data": "*",
|
|
36
|
-
"@wordpress/element": "
|
|
37
|
-
"@wordpress/i18n": "
|
|
38
|
-
"@wordpress/icons": "
|
|
39
|
-
"@wordpress/primitives": "
|
|
40
|
-
"@wordpress/private-apis": "
|
|
41
|
-
"@wordpress/warning": "
|
|
37
|
+
"@wordpress/element": "^6.12.1-next.082ed6819.0",
|
|
38
|
+
"@wordpress/i18n": "^5.12.1-next.082ed6819.0",
|
|
39
|
+
"@wordpress/icons": "^10.12.1-next.082ed6819.0",
|
|
40
|
+
"@wordpress/primitives": "^4.12.1-next.082ed6819.0",
|
|
41
|
+
"@wordpress/private-apis": "^1.12.1-next.082ed6819.0",
|
|
42
|
+
"@wordpress/warning": "^3.12.1-next.082ed6819.0",
|
|
42
43
|
"clsx": "^2.1.1",
|
|
43
44
|
"remove-accents": "^0.5.0"
|
|
44
45
|
},
|
|
@@ -48,6 +49,5 @@
|
|
|
48
49
|
"publishConfig": {
|
|
49
50
|
"access": "public"
|
|
50
51
|
},
|
|
51
|
-
"
|
|
52
|
-
"gitHead": "dcf4613b33b0eda14e203ac30f700ed0db70347f"
|
|
52
|
+
"gitHead": "2bb7bad15ddb8e88210fab7d4a1ef1565466e424"
|
|
53
53
|
}
|
|
@@ -1,17 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useMemo } from '@wordpress/element';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* Internal dependencies
|
|
3
8
|
*/
|
|
4
9
|
import type { DataFormProps } from '../../types';
|
|
5
|
-
import {
|
|
10
|
+
import { DataFormProvider } from '../dataform-context';
|
|
11
|
+
import { normalizeFields } from '../../normalize-fields';
|
|
12
|
+
import { DataFormLayout } from '../../dataforms-layouts/data-form-layout';
|
|
6
13
|
|
|
7
14
|
export default function DataForm< Item >( {
|
|
15
|
+
data,
|
|
8
16
|
form,
|
|
9
|
-
|
|
17
|
+
fields,
|
|
18
|
+
onChange,
|
|
10
19
|
}: DataFormProps< Item > ) {
|
|
11
|
-
const
|
|
12
|
-
|
|
20
|
+
const normalizedFields = useMemo(
|
|
21
|
+
() => normalizeFields( fields ),
|
|
22
|
+
[ fields ]
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
if ( ! form.fields ) {
|
|
13
26
|
return null;
|
|
14
27
|
}
|
|
15
28
|
|
|
16
|
-
return
|
|
29
|
+
return (
|
|
30
|
+
<DataFormProvider fields={ normalizedFields }>
|
|
31
|
+
<DataFormLayout data={ data } form={ form } onChange={ onChange } />
|
|
32
|
+
</DataFormProvider>
|
|
33
|
+
);
|
|
17
34
|
}
|
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { useState } from '@wordpress/element';
|
|
4
|
+
import { useMemo, useState } from '@wordpress/element';
|
|
5
|
+
import { ToggleControl } from '@wordpress/components';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Internal dependencies
|
|
8
9
|
*/
|
|
9
10
|
import DataForm from '../index';
|
|
10
|
-
import type {
|
|
11
|
+
import type { Field, Form } from '../../../types';
|
|
12
|
+
|
|
13
|
+
type SamplePost = {
|
|
14
|
+
title: string;
|
|
15
|
+
order: number;
|
|
16
|
+
author: number;
|
|
17
|
+
status: string;
|
|
18
|
+
reviewer: string;
|
|
19
|
+
date: string;
|
|
20
|
+
birthdate: string;
|
|
21
|
+
password?: string;
|
|
22
|
+
};
|
|
11
23
|
|
|
12
24
|
const meta = {
|
|
13
25
|
title: 'DataViews/DataForm',
|
|
@@ -16,8 +28,13 @@ const meta = {
|
|
|
16
28
|
type: {
|
|
17
29
|
control: { type: 'select' },
|
|
18
30
|
description:
|
|
19
|
-
'Chooses the layout of
|
|
20
|
-
options: [ 'regular', 'panel' ],
|
|
31
|
+
'Chooses the default layout of each field. "regular" is the default layout.',
|
|
32
|
+
options: [ 'default', 'regular', 'panel' ],
|
|
33
|
+
},
|
|
34
|
+
labelPosition: {
|
|
35
|
+
control: { type: 'select' },
|
|
36
|
+
description: 'Chooses the label position of the layout.',
|
|
37
|
+
options: [ 'default', 'top', 'side', 'none' ],
|
|
21
38
|
},
|
|
22
39
|
},
|
|
23
40
|
};
|
|
@@ -75,16 +92,44 @@ const fields = [
|
|
|
75
92
|
elements: [
|
|
76
93
|
{ value: 'draft', label: 'Draft' },
|
|
77
94
|
{ value: 'published', label: 'Published' },
|
|
95
|
+
{ value: 'private', label: 'Private' },
|
|
78
96
|
],
|
|
79
97
|
},
|
|
80
98
|
{
|
|
81
99
|
id: 'password',
|
|
82
100
|
label: 'Password',
|
|
83
101
|
type: 'text' as const,
|
|
102
|
+
isVisible: ( item: SamplePost ) => {
|
|
103
|
+
return item.status !== 'private';
|
|
104
|
+
},
|
|
84
105
|
},
|
|
85
|
-
|
|
106
|
+
{
|
|
107
|
+
id: 'sticky',
|
|
108
|
+
label: 'Sticky',
|
|
109
|
+
type: 'integer',
|
|
110
|
+
Edit: ( { field, onChange, data, hideLabelFromVision } ) => {
|
|
111
|
+
const { id, getValue } = field;
|
|
112
|
+
return (
|
|
113
|
+
<ToggleControl
|
|
114
|
+
__nextHasNoMarginBottom
|
|
115
|
+
label={ hideLabelFromVision ? '' : field.label }
|
|
116
|
+
checked={ getValue( { item: data } ) }
|
|
117
|
+
onChange={ () =>
|
|
118
|
+
onChange( { [ id ]: ! getValue( { item: data } ) } )
|
|
119
|
+
}
|
|
120
|
+
/>
|
|
121
|
+
);
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
] as Field< SamplePost >[];
|
|
86
125
|
|
|
87
|
-
export const Default = ( {
|
|
126
|
+
export const Default = ( {
|
|
127
|
+
type,
|
|
128
|
+
labelPosition,
|
|
129
|
+
}: {
|
|
130
|
+
type: 'default' | 'regular' | 'panel';
|
|
131
|
+
labelPosition: 'default' | 'top' | 'side' | 'none';
|
|
132
|
+
} ) => {
|
|
88
133
|
const [ post, setPost ] = useState( {
|
|
89
134
|
title: 'Hello, World!',
|
|
90
135
|
order: 2,
|
|
@@ -93,28 +138,36 @@ export const Default = ( { type }: { type: 'panel' | 'regular' } ) => {
|
|
|
93
138
|
reviewer: 'fulano',
|
|
94
139
|
date: '2021-01-01T12:00:00',
|
|
95
140
|
birthdate: '1950-02-23T12:00:00',
|
|
141
|
+
sticky: false,
|
|
96
142
|
} );
|
|
97
143
|
|
|
98
|
-
const form =
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
144
|
+
const form = useMemo(
|
|
145
|
+
() => ( {
|
|
146
|
+
type,
|
|
147
|
+
labelPosition,
|
|
148
|
+
fields: [
|
|
149
|
+
'title',
|
|
150
|
+
'order',
|
|
151
|
+
{
|
|
152
|
+
id: 'sticky',
|
|
153
|
+
layout: 'regular',
|
|
154
|
+
labelPosition: 'side',
|
|
155
|
+
},
|
|
156
|
+
'author',
|
|
157
|
+
'reviewer',
|
|
158
|
+
'password',
|
|
159
|
+
'date',
|
|
160
|
+
'birthdate',
|
|
161
|
+
],
|
|
162
|
+
} ),
|
|
163
|
+
[ type, labelPosition ]
|
|
164
|
+
) as Form;
|
|
109
165
|
|
|
110
166
|
return (
|
|
111
|
-
<DataForm
|
|
167
|
+
<DataForm< SamplePost >
|
|
112
168
|
data={ post }
|
|
113
169
|
fields={ fields }
|
|
114
|
-
form={
|
|
115
|
-
...form,
|
|
116
|
-
type,
|
|
117
|
-
} }
|
|
170
|
+
form={ form }
|
|
118
171
|
onChange={ ( edits ) =>
|
|
119
172
|
setPost( ( prev ) => ( {
|
|
120
173
|
...prev,
|
|
@@ -126,40 +179,45 @@ export const Default = ( { type }: { type: 'panel' | 'regular' } ) => {
|
|
|
126
179
|
};
|
|
127
180
|
|
|
128
181
|
const CombinedFieldsComponent = ( {
|
|
129
|
-
type
|
|
130
|
-
|
|
182
|
+
type,
|
|
183
|
+
labelPosition,
|
|
131
184
|
}: {
|
|
132
|
-
type: '
|
|
133
|
-
|
|
185
|
+
type: 'default' | 'regular' | 'panel';
|
|
186
|
+
labelPosition: 'default' | 'top' | 'side' | 'none';
|
|
134
187
|
} ) => {
|
|
135
|
-
const [ post, setPost ] = useState( {
|
|
188
|
+
const [ post, setPost ] = useState< SamplePost >( {
|
|
136
189
|
title: 'Hello, World!',
|
|
137
190
|
order: 2,
|
|
138
191
|
author: 1,
|
|
139
192
|
status: 'draft',
|
|
193
|
+
reviewer: 'fulano',
|
|
194
|
+
date: '2021-01-01T12:00:00',
|
|
195
|
+
birthdate: '1950-02-23T12:00:00',
|
|
140
196
|
} );
|
|
141
197
|
|
|
142
|
-
const form =
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
198
|
+
const form = useMemo(
|
|
199
|
+
() => ( {
|
|
200
|
+
type,
|
|
201
|
+
labelPosition,
|
|
202
|
+
fields: [
|
|
203
|
+
'title',
|
|
204
|
+
{
|
|
205
|
+
id: 'status',
|
|
206
|
+
label: 'Status & Visibility',
|
|
207
|
+
children: [ 'status', 'password' ],
|
|
208
|
+
},
|
|
209
|
+
'order',
|
|
210
|
+
'author',
|
|
211
|
+
],
|
|
212
|
+
} ),
|
|
213
|
+
[ type, labelPosition ]
|
|
214
|
+
) as Form;
|
|
154
215
|
|
|
155
216
|
return (
|
|
156
|
-
<DataForm
|
|
217
|
+
<DataForm< SamplePost >
|
|
157
218
|
data={ post }
|
|
158
219
|
fields={ fields }
|
|
159
|
-
form={
|
|
160
|
-
...form,
|
|
161
|
-
type,
|
|
162
|
-
} }
|
|
220
|
+
form={ form }
|
|
163
221
|
onChange={ ( edits ) =>
|
|
164
222
|
setPost( ( prev ) => ( {
|
|
165
223
|
...prev,
|
|
@@ -175,11 +233,8 @@ export const CombinedFields = {
|
|
|
175
233
|
render: CombinedFieldsComponent,
|
|
176
234
|
argTypes: {
|
|
177
235
|
...meta.argTypes,
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
'Chooses the direction of the combined field. "vertical" is the default layout.',
|
|
182
|
-
options: [ 'vertical', 'horizontal' ],
|
|
183
|
-
},
|
|
236
|
+
},
|
|
237
|
+
args: {
|
|
238
|
+
type: 'panel',
|
|
184
239
|
},
|
|
185
240
|
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { createContext } from '@wordpress/element';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import type { NormalizedField } from '../../types';
|
|
10
|
+
|
|
11
|
+
type DataFormContextType< Item > = {
|
|
12
|
+
fields: NormalizedField< Item >[];
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const DataFormContext = createContext< DataFormContextType< any > >( {
|
|
16
|
+
fields: [],
|
|
17
|
+
} );
|
|
18
|
+
|
|
19
|
+
export function DataFormProvider< Item >( {
|
|
20
|
+
fields,
|
|
21
|
+
children,
|
|
22
|
+
}: React.PropsWithChildren< { fields: NormalizedField< Item >[] } > ) {
|
|
23
|
+
return (
|
|
24
|
+
<DataFormContext.Provider value={ { fields } }>
|
|
25
|
+
{ children }
|
|
26
|
+
</DataFormContext.Provider>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export default DataFormContext;
|