@wordpress/dataviews 8.0.1-next.e256d081a.0 → 9.0.1-next.6870dfe5b.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 +24 -1
- package/README.md +96 -1
- package/build/components/dataform-context/index.js +1 -0
- package/build/components/dataform-context/index.js.map +1 -1
- package/build/components/dataviews/index.js +11 -1
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +1 -0
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-layout/index.js +2 -1
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-picker/footer.js +145 -0
- package/build/components/dataviews-picker/footer.js.map +1 -0
- package/build/components/dataviews-picker/index.js +201 -0
- package/build/components/dataviews-picker/index.js.map +1 -0
- package/build/components/dataviews-selection-checkbox/index.js +4 -2
- package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +1 -0
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/constants.js +4 -1
- package/build/constants.js.map +1 -1
- package/build/dataform-controls/checkbox.js +23 -2
- package/build/dataform-controls/checkbox.js.map +1 -1
- package/build/dataform-controls/color.js +128 -0
- package/build/dataform-controls/color.js.map +1 -0
- package/build/dataform-controls/email.js +10 -45
- package/build/dataform-controls/email.js.map +1 -1
- package/build/dataform-controls/index.js +8 -2
- package/build/dataform-controls/index.js.map +1 -1
- package/build/dataform-controls/telephone.js +34 -0
- package/build/dataform-controls/telephone.js.map +1 -0
- package/build/dataform-controls/text.js +7 -48
- package/build/dataform-controls/text.js.map +1 -1
- package/build/dataform-controls/{boolean.js → toggle.js} +6 -4
- package/build/dataform-controls/toggle.js.map +1 -0
- package/build/dataform-controls/url.js +34 -0
- package/build/dataform-controls/url.js.map +1 -0
- package/build/dataform-controls/utils/validated-text.js +76 -0
- package/build/dataform-controls/utils/validated-text.js.map +1 -0
- package/build/dataforms-layouts/card/index.js +6 -7
- package/build/dataforms-layouts/card/index.js.map +1 -1
- package/build/dataforms-layouts/data-form-layout.js +16 -4
- package/build/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build/dataforms-layouts/index.js +31 -1
- package/build/dataforms-layouts/index.js.map +1 -1
- package/build/dataforms-layouts/row/index.js +113 -0
- package/build/dataforms-layouts/row/index.js.map +1 -0
- package/build/dataviews-layouts/grid/index.js +16 -11
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/index.js +9 -1
- package/build/dataviews-layouts/index.js.map +1 -1
- package/build/dataviews-layouts/picker-grid/index.js +357 -0
- package/build/dataviews-layouts/picker-grid/index.js.map +1 -0
- package/build/dataviews-layouts/utils/grid-items.js +37 -0
- package/build/dataviews-layouts/utils/grid-items.js.map +1 -0
- package/build/dataviews-layouts/utils/preview-size-picker.js +81 -0
- package/build/dataviews-layouts/utils/preview-size-picker.js.map +1 -0
- package/build/field-types/boolean.js +1 -1
- package/build/field-types/boolean.js.map +1 -1
- package/build/field-types/color.js +113 -0
- package/build/field-types/color.js.map +1 -0
- package/build/field-types/index.js +12 -0
- package/build/field-types/index.js.map +1 -1
- package/build/field-types/telephone.js +57 -0
- package/build/field-types/telephone.js.map +1 -0
- package/build/field-types/url.js +57 -0
- package/build/field-types/url.js.map +1 -0
- package/build/normalize-form-fields.js +6 -0
- package/build/normalize-form-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/validation.js +1 -1
- package/build/validation.js.map +1 -1
- package/build-module/components/dataform-context/index.js +1 -0
- package/build-module/components/dataform-context/index.js.map +1 -1
- package/build-module/components/dataviews/index.js +11 -1
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-context/index.js +1 -0
- package/build-module/components/dataviews-context/index.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +2 -1
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/components/dataviews-picker/footer.js +136 -0
- package/build-module/components/dataviews-picker/footer.js.map +1 -0
- package/build-module/components/dataviews-picker/index.js +191 -0
- package/build-module/components/dataviews-picker/index.js.map +1 -0
- package/build-module/components/dataviews-selection-checkbox/index.js +4 -2
- package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +1 -0
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/constants.js +3 -0
- package/build-module/constants.js.map +1 -1
- package/build-module/dataform-controls/checkbox.js +25 -3
- package/build-module/dataform-controls/checkbox.js.map +1 -1
- package/build-module/dataform-controls/color.js +122 -0
- package/build-module/dataform-controls/color.js.map +1 -0
- package/build-module/dataform-controls/email.js +9 -45
- package/build-module/dataform-controls/email.js.map +1 -1
- package/build-module/dataform-controls/index.js +8 -2
- package/build-module/dataform-controls/index.js.map +1 -1
- package/build-module/dataform-controls/telephone.js +27 -0
- package/build-module/dataform-controls/telephone.js.map +1 -0
- package/build-module/dataform-controls/text.js +6 -48
- package/build-module/dataform-controls/text.js.map +1 -1
- package/build-module/dataform-controls/{boolean.js → toggle.js} +5 -3
- package/build-module/dataform-controls/toggle.js.map +1 -0
- package/build-module/dataform-controls/url.js +27 -0
- package/build-module/dataform-controls/url.js.map +1 -0
- package/build-module/dataform-controls/utils/validated-text.js +70 -0
- package/build-module/dataform-controls/utils/validated-text.js.map +1 -0
- package/build-module/dataforms-layouts/card/index.js +6 -7
- package/build-module/dataforms-layouts/card/index.js.map +1 -1
- package/build-module/dataforms-layouts/data-form-layout.js +14 -4
- package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build-module/dataforms-layouts/index.js +32 -1
- package/build-module/dataforms-layouts/index.js.map +1 -1
- package/build-module/dataforms-layouts/row/index.js +106 -0
- package/build-module/dataforms-layouts/row/index.js.map +1 -0
- package/build-module/dataviews-layouts/grid/index.js +16 -11
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/index.js +10 -2
- package/build-module/dataviews-layouts/index.js.map +1 -1
- package/build-module/dataviews-layouts/picker-grid/index.js +348 -0
- package/build-module/dataviews-layouts/picker-grid/index.js.map +1 -0
- package/build-module/dataviews-layouts/utils/grid-items.js +29 -0
- package/build-module/dataviews-layouts/utils/grid-items.js.map +1 -0
- package/build-module/dataviews-layouts/utils/preview-size-picker.js +73 -0
- package/build-module/dataviews-layouts/utils/preview-size-picker.js.map +1 -0
- package/build-module/field-types/boolean.js +1 -1
- package/build-module/field-types/boolean.js.map +1 -1
- package/build-module/field-types/color.js +107 -0
- package/build-module/field-types/color.js.map +1 -0
- package/build-module/field-types/index.js +12 -0
- package/build-module/field-types/index.js.map +1 -1
- package/build-module/field-types/telephone.js +51 -0
- package/build-module/field-types/telephone.js.map +1 -0
- package/build-module/field-types/url.js +51 -0
- package/build-module/field-types/url.js.map +1 -0
- package/build-module/normalize-form-fields.js +6 -0
- package/build-module/normalize-form-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/validation.js +1 -1
- package/build-module/validation.js.map +1 -1
- package/build-style/style-rtl.css +252 -12
- package/build-style/style.css +252 -12
- package/build-types/components/dataform/stories/index.story.d.ts +19 -4
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataform-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews/index.d.ts +1 -1
- package/build-types/components/dataviews/index.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 +1 -0
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
- package/build-types/components/dataviews-picker/footer.d.ts +4 -0
- package/build-types/components/dataviews-picker/footer.d.ts.map +1 -0
- package/build-types/components/dataviews-picker/index.d.ts +55 -0
- package/build-types/components/dataviews-picker/index.d.ts.map +1 -0
- package/build-types/components/dataviews-picker/stories/index.story.d.ts +42 -0
- package/build-types/components/dataviews-picker/stories/index.story.d.ts.map +1 -0
- package/build-types/components/dataviews-selection-checkbox/index.d.ts +2 -1
- package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/constants.d.ts +1 -0
- package/build-types/constants.d.ts.map +1 -1
- package/build-types/dataform-controls/checkbox.d.ts.map +1 -1
- package/build-types/dataform-controls/color.d.ts +6 -0
- package/build-types/dataform-controls/color.d.ts.map +1 -0
- package/build-types/dataform-controls/email.d.ts.map +1 -1
- package/build-types/dataform-controls/index.d.ts.map +1 -1
- package/build-types/dataform-controls/telephone.d.ts +6 -0
- package/build-types/dataform-controls/telephone.d.ts.map +1 -0
- package/build-types/dataform-controls/text.d.ts.map +1 -1
- package/build-types/dataform-controls/toggle.d.ts +6 -0
- package/build-types/dataform-controls/toggle.d.ts.map +1 -0
- package/build-types/dataform-controls/url.d.ts +6 -0
- package/build-types/dataform-controls/url.d.ts.map +1 -0
- package/build-types/dataform-controls/utils/validated-text.d.ts +16 -0
- package/build-types/dataform-controls/utils/validated-text.d.ts.map +1 -0
- package/build-types/dataforms-layouts/card/index.d.ts +0 -3
- package/build-types/dataforms-layouts/card/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/data-form-layout.d.ts +4 -1
- package/build-types/dataforms-layouts/data-form-layout.d.ts.map +1 -1
- package/build-types/dataforms-layouts/index.d.ts +10 -0
- package/build-types/dataforms-layouts/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/row/index.d.ts +6 -0
- package/build-types/dataforms-layouts/row/index.d.ts.map +1 -0
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/index.d.ts +12 -1
- package/build-types/dataviews-layouts/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/picker-grid/index.d.ts +4 -0
- package/build-types/dataviews-layouts/picker-grid/index.d.ts.map +1 -0
- package/build-types/dataviews-layouts/utils/grid-items.d.ts +5 -0
- package/build-types/dataviews-layouts/utils/grid-items.d.ts.map +1 -0
- package/build-types/dataviews-layouts/utils/preview-size-picker.d.ts +2 -0
- package/build-types/dataviews-layouts/utils/preview-size-picker.d.ts.map +1 -0
- package/build-types/field-types/color.d.ts +20 -0
- package/build-types/field-types/color.d.ts.map +1 -0
- package/build-types/field-types/index.d.ts.map +1 -1
- package/build-types/field-types/stories/index.story.d.ts +81 -0
- package/build-types/field-types/stories/index.story.d.ts.map +1 -0
- package/build-types/field-types/telephone.d.ts +20 -0
- package/build-types/field-types/telephone.d.ts.map +1 -0
- package/build-types/field-types/url.d.ts +20 -0
- package/build-types/field-types/url.d.ts.map +1 -0
- package/build-types/normalize-form-fields.d.ts.map +1 -1
- package/build-types/test/dataviews-picker.d.ts +2 -0
- package/build-types/test/dataviews-picker.d.ts.map +1 -0
- package/build-types/types.d.ts +36 -5
- package/build-types/types.d.ts.map +1 -1
- package/build-types/validation.d.ts.map +1 -1
- package/build-wp/index.js +5061 -4013
- package/package.json +16 -15
- package/src/components/dataform/stories/index.story.tsx +333 -11
- package/src/components/dataform-context/index.tsx +1 -0
- package/src/components/dataviews/index.tsx +25 -1
- package/src/components/dataviews/stories/fixtures.tsx +1 -1
- package/src/components/dataviews/stories/index.story.tsx +14 -0
- package/src/components/dataviews/style.scss +4 -2
- package/src/components/dataviews-context/index.ts +3 -0
- package/src/components/dataviews-layout/index.tsx +4 -2
- package/src/components/dataviews-picker/footer.tsx +207 -0
- package/src/components/dataviews-picker/index.tsx +284 -0
- package/src/components/dataviews-picker/stories/index.story.tsx +251 -0
- package/src/components/dataviews-picker/style.scss +10 -0
- package/src/components/dataviews-selection-checkbox/index.tsx +3 -0
- package/src/components/dataviews-view-config/index.tsx +1 -0
- package/src/constants.ts +3 -0
- package/src/dataform-controls/checkbox.tsx +33 -3
- package/src/dataform-controls/color.tsx +139 -0
- package/src/dataform-controls/email.tsx +10 -52
- package/src/dataform-controls/index.tsx +8 -2
- package/src/dataform-controls/telephone.tsx +30 -0
- package/src/dataform-controls/text.tsx +2 -57
- package/src/dataform-controls/{boolean.tsx → toggle.tsx} +3 -2
- package/src/dataform-controls/url.tsx +30 -0
- package/src/dataform-controls/utils/validated-text.tsx +96 -0
- package/src/dataforms-layouts/card/index.tsx +5 -4
- package/src/dataforms-layouts/card/style.scss +7 -0
- package/src/dataforms-layouts/data-form-layout.tsx +15 -3
- package/src/dataforms-layouts/index.tsx +35 -0
- package/src/dataforms-layouts/row/index.tsx +115 -0
- package/src/dataforms-layouts/row/style.scss +3 -0
- package/src/dataviews-layouts/grid/index.tsx +38 -33
- package/src/dataviews-layouts/grid/style.scss +42 -20
- package/src/dataviews-layouts/index.ts +16 -2
- package/src/dataviews-layouts/picker-grid/index.tsx +490 -0
- package/src/dataviews-layouts/picker-grid/style.scss +171 -0
- package/src/dataviews-layouts/utils/grid-items.scss +21 -0
- package/src/dataviews-layouts/utils/grid-items.tsx +35 -0
- package/src/dataviews-layouts/utils/preview-size-picker.tsx +87 -0
- package/src/field-types/boolean.tsx +1 -1
- package/src/field-types/color.tsx +115 -0
- package/src/field-types/index.tsx +15 -0
- package/src/field-types/stories/index.story.tsx +719 -0
- package/src/field-types/telephone.tsx +71 -0
- package/src/field-types/url.tsx +71 -0
- package/src/normalize-form-fields.ts +6 -0
- package/src/style.scss +4 -0
- package/src/test/dataform.tsx +2 -2
- package/src/test/dataviews-picker.tsx +478 -0
- package/src/test/dataviews.tsx +86 -0
- package/src/types.ts +56 -4
- package/src/validation.ts +3 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/dataform-controls/boolean.js.map +0 -1
- package/build-module/dataform-controls/boolean.js.map +0 -1
- package/build-types/components/stories/index.story.d.ts +0 -63
- package/build-types/components/stories/index.story.d.ts.map +0 -1
- package/build-types/dataform-controls/boolean.d.ts +0 -6
- package/build-types/dataform-controls/boolean.d.ts.map +0 -1
- package/src/components/stories/index.story.tsx +0 -372
package/src/test/dataviews.tsx
CHANGED
|
@@ -510,6 +510,92 @@ describe( 'DataViews component', () => {
|
|
|
510
510
|
await user.keyboard( '{/Control}' );
|
|
511
511
|
} );
|
|
512
512
|
|
|
513
|
+
it( 'supports tabbing to selection and actions when title is visible', async () => {
|
|
514
|
+
render(
|
|
515
|
+
<DataViewWrapper
|
|
516
|
+
view={ {
|
|
517
|
+
...DEFAULT_VIEW,
|
|
518
|
+
type: 'grid',
|
|
519
|
+
fields: [],
|
|
520
|
+
mediaField: 'image',
|
|
521
|
+
titleField: 'title',
|
|
522
|
+
} }
|
|
523
|
+
isItemClickable={ () => true }
|
|
524
|
+
actions={ actions }
|
|
525
|
+
/>
|
|
526
|
+
);
|
|
527
|
+
|
|
528
|
+
// Double check that the title is being rendered.
|
|
529
|
+
expect( screen.getByText( data[ 0 ].title ) ).toBeInTheDocument();
|
|
530
|
+
|
|
531
|
+
const viewOptionsButton = screen.getByRole( 'button', {
|
|
532
|
+
name: 'View options',
|
|
533
|
+
} );
|
|
534
|
+
|
|
535
|
+
const user = userEvent.setup();
|
|
536
|
+
|
|
537
|
+
// Double click to open and then close view options. This is performed
|
|
538
|
+
// instead of a direct .focus() so that effects have time to complete.
|
|
539
|
+
await user.click( viewOptionsButton );
|
|
540
|
+
await user.click( viewOptionsButton );
|
|
541
|
+
|
|
542
|
+
await user.tab();
|
|
543
|
+
|
|
544
|
+
expect(
|
|
545
|
+
screen.getByRole( 'checkbox', { name: data[ 0 ].title } )
|
|
546
|
+
).toHaveFocus();
|
|
547
|
+
|
|
548
|
+
await user.tab();
|
|
549
|
+
|
|
550
|
+
expect(
|
|
551
|
+
screen.getAllByRole( 'button', { name: 'Actions' } )[ 0 ]
|
|
552
|
+
).toHaveFocus();
|
|
553
|
+
} );
|
|
554
|
+
|
|
555
|
+
it( 'supports tabbing to selection and actions when title is not visible', async () => {
|
|
556
|
+
render(
|
|
557
|
+
<DataViewWrapper
|
|
558
|
+
view={ {
|
|
559
|
+
...DEFAULT_VIEW,
|
|
560
|
+
type: 'grid',
|
|
561
|
+
fields: [],
|
|
562
|
+
mediaField: 'image',
|
|
563
|
+
titleField: 'title',
|
|
564
|
+
showTitle: false,
|
|
565
|
+
} }
|
|
566
|
+
isItemClickable={ () => true }
|
|
567
|
+
actions={ actions }
|
|
568
|
+
/>
|
|
569
|
+
);
|
|
570
|
+
|
|
571
|
+
// Double check that the title is not being rendered.
|
|
572
|
+
expect(
|
|
573
|
+
screen.queryByText( data[ 0 ].title )
|
|
574
|
+
).not.toBeInTheDocument();
|
|
575
|
+
|
|
576
|
+
const viewOptionsButton = screen.getByRole( 'button', {
|
|
577
|
+
name: 'View options',
|
|
578
|
+
} );
|
|
579
|
+
|
|
580
|
+
const user = userEvent.setup();
|
|
581
|
+
|
|
582
|
+
// Double click to open and then close view options. This is performed
|
|
583
|
+
// instead of a direct .focus() so that effects have time to complete.
|
|
584
|
+
await user.click( viewOptionsButton );
|
|
585
|
+
await user.click( viewOptionsButton );
|
|
586
|
+
await user.tab();
|
|
587
|
+
|
|
588
|
+
expect(
|
|
589
|
+
screen.getByRole( 'checkbox', { name: data[ 0 ].title } )
|
|
590
|
+
).toHaveFocus();
|
|
591
|
+
|
|
592
|
+
await user.tab();
|
|
593
|
+
|
|
594
|
+
expect(
|
|
595
|
+
screen.getAllByRole( 'button', { name: 'Actions' } )[ 0 ]
|
|
596
|
+
).toHaveFocus();
|
|
597
|
+
} );
|
|
598
|
+
|
|
513
599
|
it( 'accepts an invalid previewSize and the preview size picker falls back to another size', async () => {
|
|
514
600
|
render(
|
|
515
601
|
<DataViewWrapper
|
package/src/types.ts
CHANGED
|
@@ -103,6 +103,9 @@ export type FieldType =
|
|
|
103
103
|
| 'media'
|
|
104
104
|
| 'boolean'
|
|
105
105
|
| 'email'
|
|
106
|
+
| 'telephone'
|
|
107
|
+
| 'color'
|
|
108
|
+
| 'url'
|
|
106
109
|
| 'array';
|
|
107
110
|
|
|
108
111
|
/**
|
|
@@ -515,7 +518,23 @@ export interface ViewGrid extends ViewBase {
|
|
|
515
518
|
};
|
|
516
519
|
}
|
|
517
520
|
|
|
518
|
-
export
|
|
521
|
+
export interface ViewPickerGrid extends ViewBase {
|
|
522
|
+
type: 'pickerGrid';
|
|
523
|
+
|
|
524
|
+
layout?: {
|
|
525
|
+
/**
|
|
526
|
+
* The fields to use as badge fields.
|
|
527
|
+
*/
|
|
528
|
+
badgeFields?: string[];
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* The preview size of the grid.
|
|
532
|
+
*/
|
|
533
|
+
previewSize?: number;
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
export type View = ViewList | ViewGrid | ViewTable | ViewPickerGrid;
|
|
519
538
|
|
|
520
539
|
interface ActionBase< Item > {
|
|
521
540
|
/**
|
|
@@ -648,6 +667,20 @@ export interface ViewBaseProps< Item > {
|
|
|
648
667
|
empty: ReactNode;
|
|
649
668
|
}
|
|
650
669
|
|
|
670
|
+
export type ViewPickerBaseProps< Item > = Omit<
|
|
671
|
+
ViewBaseProps< Item >,
|
|
672
|
+
| 'view'
|
|
673
|
+
| 'onChangeView'
|
|
674
|
+
// The following props are not supported for pickers.
|
|
675
|
+
| 'isItemClickable'
|
|
676
|
+
| 'onClickItem'
|
|
677
|
+
| 'renderItemLink'
|
|
678
|
+
| 'getItemLevel'
|
|
679
|
+
> & {
|
|
680
|
+
view: View;
|
|
681
|
+
onChangeView: ( view: View ) => void;
|
|
682
|
+
};
|
|
683
|
+
|
|
651
684
|
export interface ViewTableProps< Item > extends ViewBaseProps< Item > {
|
|
652
685
|
view: ViewTable;
|
|
653
686
|
}
|
|
@@ -660,21 +693,29 @@ export interface ViewGridProps< Item > extends ViewBaseProps< Item > {
|
|
|
660
693
|
view: ViewGrid;
|
|
661
694
|
}
|
|
662
695
|
|
|
696
|
+
export interface ViewPickerGridProps< Item >
|
|
697
|
+
extends Omit< ViewPickerBaseProps< Item >, 'view' > {
|
|
698
|
+
view: ViewPickerGrid;
|
|
699
|
+
}
|
|
700
|
+
|
|
663
701
|
export type ViewProps< Item > =
|
|
664
702
|
| ViewTableProps< Item >
|
|
665
703
|
| ViewGridProps< Item >
|
|
666
704
|
| ViewListProps< Item >;
|
|
667
705
|
|
|
706
|
+
export type ViewPickerProps< Item > = ViewPickerGridProps< Item >;
|
|
707
|
+
|
|
668
708
|
export interface SupportedLayouts {
|
|
669
709
|
list?: Omit< ViewList, 'type' >;
|
|
670
710
|
grid?: Omit< ViewGrid, 'type' >;
|
|
671
711
|
table?: Omit< ViewTable, 'type' >;
|
|
712
|
+
pickerGrid?: Omit< ViewPickerGrid, 'type' >;
|
|
672
713
|
}
|
|
673
714
|
|
|
674
715
|
/**
|
|
675
716
|
* DataForm layouts.
|
|
676
717
|
*/
|
|
677
|
-
export type LayoutType = 'regular' | 'panel' | 'card';
|
|
718
|
+
export type LayoutType = 'regular' | 'panel' | 'card' | 'row';
|
|
678
719
|
export type LabelPosition = 'top' | 'side' | 'none';
|
|
679
720
|
|
|
680
721
|
export type RegularLayout = {
|
|
@@ -724,11 +765,21 @@ export type NormalizedCardLayout =
|
|
|
724
765
|
isOpened: boolean;
|
|
725
766
|
};
|
|
726
767
|
|
|
727
|
-
export type
|
|
768
|
+
export type RowLayout = {
|
|
769
|
+
type: 'row';
|
|
770
|
+
alignment?: 'start' | 'center' | 'end';
|
|
771
|
+
};
|
|
772
|
+
export type NormalizedRowLayout = {
|
|
773
|
+
type: 'row';
|
|
774
|
+
alignment: 'start' | 'center' | 'end';
|
|
775
|
+
};
|
|
776
|
+
|
|
777
|
+
export type Layout = RegularLayout | PanelLayout | CardLayout | RowLayout;
|
|
728
778
|
export type NormalizedLayout =
|
|
729
779
|
| NormalizedRegularLayout
|
|
730
780
|
| NormalizedPanelLayout
|
|
731
|
-
| NormalizedCardLayout
|
|
781
|
+
| NormalizedCardLayout
|
|
782
|
+
| NormalizedRowLayout;
|
|
732
783
|
|
|
733
784
|
export type SimpleFormField = {
|
|
734
785
|
id: string;
|
|
@@ -738,6 +789,7 @@ export type SimpleFormField = {
|
|
|
738
789
|
export type CombinedFormField = {
|
|
739
790
|
id: string;
|
|
740
791
|
label?: string;
|
|
792
|
+
description?: string;
|
|
741
793
|
layout?: Layout;
|
|
742
794
|
children: Array< FormField | string >;
|
|
743
795
|
};
|
package/src/validation.ts
CHANGED
|
@@ -32,6 +32,9 @@ export function isItemValid< Item >(
|
|
|
32
32
|
if (
|
|
33
33
|
( field.type === 'text' && isEmptyNullOrUndefined( value ) ) ||
|
|
34
34
|
( field.type === 'email' && isEmptyNullOrUndefined( value ) ) ||
|
|
35
|
+
( field.type === 'url' && isEmptyNullOrUndefined( value ) ) ||
|
|
36
|
+
( field.type === 'telephone' &&
|
|
37
|
+
isEmptyNullOrUndefined( value ) ) ||
|
|
35
38
|
( field.type === 'integer' &&
|
|
36
39
|
isEmptyNullOrUndefined( value ) ) ||
|
|
37
40
|
( field.type === undefined && isEmptyNullOrUndefined( value ) )
|