@wordpress/dataviews 10.2.0 → 10.3.1-next.2f1c7c01b.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 +19 -0
- package/build/components/dataform/index.js +6 -2
- package/build/components/dataform/index.js.map +3 -3
- package/build/components/dataform-context/index.js +4 -2
- package/build/components/dataform-context/index.js.map +1 -1
- package/build/components/dataviews/index.js +8 -6
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-bulk-actions/index.js +4 -2
- package/build/components/dataviews-bulk-actions/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +3 -1
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-filters/add-filter.js +4 -2
- package/build/components/dataviews-filters/add-filter.js.map +1 -1
- package/build/components/dataviews-filters/filter.js +20 -5
- package/build/components/dataviews-filters/filter.js.map +3 -3
- package/build/components/dataviews-filters/filters-toggled.js +3 -1
- package/build/components/dataviews-filters/filters-toggled.js.map +1 -1
- package/build/components/dataviews-filters/filters.js +3 -1
- package/build/components/dataviews-filters/filters.js.map +1 -1
- package/build/components/dataviews-filters/index.js +2 -0
- package/build/components/dataviews-filters/index.js.map +1 -1
- package/build/components/dataviews-filters/input-widget.js +3 -1
- package/build/components/dataviews-filters/input-widget.js.map +1 -1
- package/build/components/dataviews-filters/reset-filters.js +3 -1
- package/build/components/dataviews-filters/reset-filters.js.map +1 -1
- package/build/components/dataviews-filters/search-widget.js +8 -6
- package/build/components/dataviews-filters/search-widget.js.map +2 -2
- package/build/components/dataviews-filters/toggle.js +3 -1
- package/build/components/dataviews-filters/toggle.js.map +1 -1
- package/build/components/dataviews-filters/use-filters.js +2 -0
- package/build/components/dataviews-filters/use-filters.js.map +1 -1
- package/build/components/dataviews-filters/utils.js +4 -2
- package/build/components/dataviews-filters/utils.js.map +1 -1
- package/build/components/dataviews-footer/index.js +4 -2
- package/build/components/dataviews-footer/index.js.map +1 -1
- package/build/components/dataviews-item-actions/index.js +23 -4
- package/build/components/dataviews-item-actions/index.js.map +2 -2
- package/build/components/dataviews-layout/index.js +3 -1
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-pagination/index.js +3 -1
- package/build/components/dataviews-pagination/index.js.map +1 -1
- package/build/components/dataviews-picker/footer.js +4 -2
- package/build/components/dataviews-picker/footer.js.map +1 -1
- package/build/components/dataviews-picker/index.js +8 -6
- package/build/components/dataviews-picker/index.js.map +1 -1
- package/build/components/dataviews-search/index.js +4 -2
- package/build/components/dataviews-search/index.js.map +1 -1
- package/build/components/dataviews-selection-checkbox/index.js +3 -1
- package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +6 -4
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/components/dataviews-view-config/infinite-scroll-toggle.js +3 -1
- package/build/components/dataviews-view-config/infinite-scroll-toggle.js.map +1 -1
- package/build/constants.js +36 -34
- package/build/constants.js.map +1 -1
- package/build/dataform-controls/array.js +4 -2
- package/build/dataform-controls/array.js.map +1 -1
- package/build/dataform-controls/checkbox.js +4 -2
- package/build/dataform-controls/checkbox.js.map +1 -1
- package/build/dataform-controls/color.js +5 -3
- package/build/dataform-controls/color.js.map +1 -1
- package/build/dataform-controls/date.js +8 -6
- package/build/dataform-controls/date.js.map +1 -1
- package/build/dataform-controls/datetime.js +11 -15
- package/build/dataform-controls/datetime.js.map +3 -3
- package/build/dataform-controls/email.js +3 -1
- package/build/dataform-controls/email.js.map +1 -1
- package/build/dataform-controls/index.js +4 -2
- package/build/dataform-controls/index.js.map +1 -1
- package/build/dataform-controls/integer.js +3 -1
- package/build/dataform-controls/integer.js.map +1 -1
- package/build/dataform-controls/number.js +3 -1
- package/build/dataform-controls/number.js.map +1 -1
- package/build/dataform-controls/password.js +3 -1
- package/build/dataform-controls/password.js.map +1 -1
- package/build/dataform-controls/radio.js +4 -2
- package/build/dataform-controls/radio.js.map +1 -1
- package/build/dataform-controls/select.js +4 -2
- package/build/dataform-controls/select.js.map +1 -1
- package/build/dataform-controls/telephone.js +3 -1
- package/build/dataform-controls/telephone.js.map +1 -1
- package/build/dataform-controls/text.js +3 -1
- package/build/dataform-controls/text.js.map +1 -1
- package/build/dataform-controls/textarea.js +4 -2
- package/build/dataform-controls/textarea.js.map +1 -1
- package/build/dataform-controls/toggle-group.js +4 -2
- package/build/dataform-controls/toggle-group.js.map +1 -1
- package/build/dataform-controls/toggle.js +4 -2
- package/build/dataform-controls/toggle.js.map +1 -1
- package/build/dataform-controls/url.js +3 -1
- package/build/dataform-controls/url.js.map +1 -1
- package/build/dataform-controls/utils/get-custom-validity.js +2 -0
- package/build/dataform-controls/utils/get-custom-validity.js.map +1 -1
- package/build/dataform-controls/utils/relative-date-control.js +4 -2
- package/build/dataform-controls/utils/relative-date-control.js.map +1 -1
- package/build/dataform-controls/utils/validated-input.js +4 -2
- package/build/dataform-controls/utils/validated-input.js.map +1 -1
- package/build/dataform-controls/utils/validated-number.js +4 -2
- package/build/dataform-controls/utils/validated-number.js.map +1 -1
- package/build/dataform-layouts/card/index.js +65 -34
- package/build/dataform-layouts/card/index.js.map +3 -3
- package/build/dataform-layouts/data-form-layout.js +8 -14
- package/build/dataform-layouts/data-form-layout.js.map +3 -3
- package/build/dataform-layouts/get-summary-fields.js +3 -1
- package/build/dataform-layouts/get-summary-fields.js.map +1 -1
- package/build/dataform-layouts/index.js +4 -2
- package/build/dataform-layouts/index.js.map +2 -2
- package/build/dataform-layouts/{normalize-form-fields.js → normalize-form.js} +39 -22
- package/build/dataform-layouts/normalize-form.js.map +7 -0
- package/build/dataform-layouts/panel/dropdown.js +9 -8
- package/build/dataform-layouts/panel/dropdown.js.map +2 -2
- package/build/dataform-layouts/panel/index.js +10 -14
- package/build/dataform-layouts/panel/index.js.map +2 -2
- package/build/dataform-layouts/panel/modal.js +9 -8
- package/build/dataform-layouts/panel/modal.js.map +2 -2
- package/build/dataform-layouts/panel/summary-button.js +3 -1
- package/build/dataform-layouts/panel/summary-button.js.map +1 -1
- package/build/dataform-layouts/regular/index.js +8 -10
- package/build/dataform-layouts/regular/index.js.map +2 -2
- package/build/dataform-layouts/row/index.js +10 -33
- package/build/dataform-layouts/row/index.js.map +3 -3
- package/build/dataviews-layouts/grid/index.js +4 -2
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/grid/preview-size-picker.js +4 -2
- package/build/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
- package/build/dataviews-layouts/index.js +3 -1
- package/build/dataviews-layouts/index.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +6 -6
- package/build/dataviews-layouts/list/index.js.map +2 -2
- package/build/dataviews-layouts/picker-grid/index.js +4 -2
- package/build/dataviews-layouts/picker-grid/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-header-menu.js +6 -4
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build/dataviews-layouts/table/column-primary.js +3 -1
- package/build/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build/dataviews-layouts/table/density-picker.js +3 -1
- package/build/dataviews-layouts/table/density-picker.js.map +1 -1
- package/build/dataviews-layouts/table/index.js +3 -1
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js +3 -1
- package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +1 -1
- package/build/dataviews-layouts/utils/get-data-by-group.js +2 -0
- package/build/dataviews-layouts/utils/get-data-by-group.js.map +1 -1
- package/build/dataviews-layouts/utils/grid-items.js +4 -2
- package/build/dataviews-layouts/utils/grid-items.js.map +1 -1
- package/build/dataviews-layouts/utils/item-click-wrapper.js +3 -1
- package/build/dataviews-layouts/utils/item-click-wrapper.js.map +1 -1
- package/build/dataviews-layouts/utils/preview-size-picker.js +4 -2
- package/build/dataviews-layouts/utils/preview-size-picker.js.map +1 -1
- package/build/field-types/array.js +3 -1
- package/build/field-types/array.js.map +1 -1
- package/build/field-types/boolean.js +3 -1
- package/build/field-types/boolean.js.map +1 -1
- package/build/field-types/color.js +3 -1
- package/build/field-types/color.js.map +1 -1
- package/build/field-types/date.js +4 -2
- package/build/field-types/date.js.map +1 -1
- package/build/field-types/datetime.js +17 -2
- package/build/field-types/datetime.js.map +3 -3
- package/build/field-types/email.js +4 -2
- package/build/field-types/email.js.map +1 -1
- package/build/field-types/index.js +3 -1
- package/build/field-types/index.js.map +1 -1
- package/build/field-types/integer.js +3 -1
- package/build/field-types/integer.js.map +1 -1
- package/build/field-types/media.js +2 -0
- package/build/field-types/media.js.map +1 -1
- package/build/field-types/number.js +3 -1
- package/build/field-types/number.js.map +1 -1
- package/build/field-types/password.js +3 -1
- package/build/field-types/password.js.map +1 -1
- package/build/field-types/telephone.js +3 -1
- package/build/field-types/telephone.js.map +1 -1
- package/build/field-types/text.js +3 -1
- package/build/field-types/text.js.map +1 -1
- package/build/field-types/url.js +3 -1
- package/build/field-types/url.js.map +1 -1
- package/build/{dataform-layouts/is-combined-field.js → field-types/utils/parse-date-time.js} +15 -11
- package/build/field-types/utils/parse-date-time.js.map +7 -0
- package/build/field-types/utils/render-from-elements.js +2 -0
- package/build/field-types/utils/render-from-elements.js.map +1 -1
- package/build/hooks/index.js +2 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/use-elements.js +3 -1
- package/build/hooks/use-elements.js.map +1 -1
- package/build/hooks/use-form-validity.js +425 -321
- package/build/hooks/use-form-validity.js.map +3 -3
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/lock-unlock.js +3 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/types/dataform.js +2 -0
- package/build/types/dataform.js.map +2 -2
- package/build/types/dataviews.js +2 -0
- package/build/types/dataviews.js.map +1 -1
- package/build/types/field-api.js +2 -0
- package/build/types/field-api.js.map +1 -1
- package/build/types/index.js +2 -0
- package/build/types/index.js.map +1 -1
- package/build/types/private.js +2 -0
- package/build/types/private.js.map +1 -1
- package/build/utils/filter-sort-and-paginate.js +3 -1
- package/build/utils/filter-sort-and-paginate.js.map +1 -1
- package/build/utils/has-elements.js +2 -0
- package/build/utils/has-elements.js.map +1 -1
- package/build/utils/normalize-fields.js +4 -2
- package/build/utils/normalize-fields.js.map +1 -1
- package/build-module/components/dataform/index.js +5 -2
- package/build-module/components/dataform/index.js.map +2 -2
- package/build-module/components/dataform-context/index.js +3 -2
- package/build-module/components/dataform-context/index.js.map +1 -1
- package/build-module/components/dataviews/index.js +7 -6
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-bulk-actions/index.js +3 -2
- package/build-module/components/dataviews-bulk-actions/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/add-filter.js +3 -2
- package/build-module/components/dataviews-filters/add-filter.js.map +1 -1
- package/build-module/components/dataviews-filters/filter.js +19 -5
- package/build-module/components/dataviews-filters/filter.js.map +2 -2
- package/build-module/components/dataviews-filters/filters-toggled.js +2 -1
- package/build-module/components/dataviews-filters/filters-toggled.js.map +1 -1
- package/build-module/components/dataviews-filters/filters.js +2 -1
- package/build-module/components/dataviews-filters/filters.js.map +1 -1
- package/build-module/components/dataviews-filters/index.js +1 -0
- package/build-module/components/dataviews-filters/index.js.map +1 -1
- package/build-module/components/dataviews-filters/input-widget.js +2 -1
- package/build-module/components/dataviews-filters/input-widget.js.map +1 -1
- package/build-module/components/dataviews-filters/reset-filters.js +2 -1
- package/build-module/components/dataviews-filters/reset-filters.js.map +1 -1
- package/build-module/components/dataviews-filters/search-widget.js +7 -6
- package/build-module/components/dataviews-filters/search-widget.js.map +2 -2
- package/build-module/components/dataviews-filters/toggle.js +2 -1
- package/build-module/components/dataviews-filters/toggle.js.map +1 -1
- package/build-module/components/dataviews-filters/use-filters.js +1 -0
- package/build-module/components/dataviews-filters/use-filters.js.map +1 -1
- package/build-module/components/dataviews-filters/utils.js +3 -2
- package/build-module/components/dataviews-filters/utils.js.map +1 -1
- package/build-module/components/dataviews-footer/index.js +3 -2
- package/build-module/components/dataviews-footer/index.js.map +1 -1
- package/build-module/components/dataviews-item-actions/index.js +22 -4
- package/build-module/components/dataviews-item-actions/index.js.map +2 -2
- 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-pagination/index.js +2 -1
- package/build-module/components/dataviews-pagination/index.js.map +1 -1
- package/build-module/components/dataviews-picker/footer.js +3 -2
- package/build-module/components/dataviews-picker/footer.js.map +1 -1
- package/build-module/components/dataviews-picker/index.js +7 -6
- package/build-module/components/dataviews-picker/index.js.map +1 -1
- package/build-module/components/dataviews-search/index.js +3 -2
- package/build-module/components/dataviews-search/index.js.map +1 -1
- package/build-module/components/dataviews-selection-checkbox/index.js +2 -1
- package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +5 -4
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js +2 -1
- package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js.map +1 -1
- package/build-module/constants.js +35 -34
- package/build-module/constants.js.map +1 -1
- package/build-module/dataform-controls/array.js +3 -2
- package/build-module/dataform-controls/array.js.map +1 -1
- package/build-module/dataform-controls/checkbox.js +3 -2
- package/build-module/dataform-controls/checkbox.js.map +1 -1
- package/build-module/dataform-controls/color.js +4 -3
- package/build-module/dataform-controls/color.js.map +1 -1
- package/build-module/dataform-controls/date.js +7 -6
- package/build-module/dataform-controls/date.js.map +1 -1
- package/build-module/dataform-controls/datetime.js +7 -12
- package/build-module/dataform-controls/datetime.js.map +2 -2
- package/build-module/dataform-controls/email.js +2 -1
- package/build-module/dataform-controls/email.js.map +1 -1
- package/build-module/dataform-controls/index.js +3 -2
- package/build-module/dataform-controls/index.js.map +1 -1
- package/build-module/dataform-controls/integer.js +2 -1
- package/build-module/dataform-controls/integer.js.map +1 -1
- package/build-module/dataform-controls/number.js +2 -1
- package/build-module/dataform-controls/number.js.map +1 -1
- package/build-module/dataform-controls/password.js +2 -1
- package/build-module/dataform-controls/password.js.map +1 -1
- package/build-module/dataform-controls/radio.js +3 -2
- package/build-module/dataform-controls/radio.js.map +1 -1
- package/build-module/dataform-controls/select.js +3 -2
- package/build-module/dataform-controls/select.js.map +1 -1
- package/build-module/dataform-controls/telephone.js +2 -1
- package/build-module/dataform-controls/telephone.js.map +1 -1
- package/build-module/dataform-controls/text.js +2 -1
- package/build-module/dataform-controls/text.js.map +1 -1
- package/build-module/dataform-controls/textarea.js +3 -2
- package/build-module/dataform-controls/textarea.js.map +1 -1
- package/build-module/dataform-controls/toggle-group.js +3 -2
- package/build-module/dataform-controls/toggle-group.js.map +1 -1
- package/build-module/dataform-controls/toggle.js +3 -2
- package/build-module/dataform-controls/toggle.js.map +1 -1
- package/build-module/dataform-controls/url.js +2 -1
- package/build-module/dataform-controls/url.js.map +1 -1
- package/build-module/dataform-controls/utils/get-custom-validity.js +1 -0
- package/build-module/dataform-controls/utils/get-custom-validity.js.map +1 -1
- package/build-module/dataform-controls/utils/relative-date-control.js +3 -2
- package/build-module/dataform-controls/utils/relative-date-control.js.map +1 -1
- package/build-module/dataform-controls/utils/validated-input.js +3 -2
- package/build-module/dataform-controls/utils/validated-input.js.map +1 -1
- package/build-module/dataform-controls/utils/validated-number.js +3 -2
- package/build-module/dataform-controls/utils/validated-number.js.map +1 -1
- package/build-module/dataform-layouts/card/index.js +63 -33
- package/build-module/dataform-layouts/card/index.js.map +3 -3
- package/build-module/dataform-layouts/data-form-layout.js +8 -15
- package/build-module/dataform-layouts/data-form-layout.js.map +2 -2
- package/build-module/dataform-layouts/get-summary-fields.js +2 -1
- package/build-module/dataform-layouts/get-summary-fields.js.map +1 -1
- package/build-module/dataform-layouts/index.js +3 -2
- package/build-module/dataform-layouts/index.js.map +2 -2
- package/build-module/dataform-layouts/{normalize-form-fields.js → normalize-form.js} +34 -17
- package/build-module/dataform-layouts/normalize-form.js.map +7 -0
- package/build-module/dataform-layouts/panel/dropdown.js +7 -7
- package/build-module/dataform-layouts/panel/dropdown.js.map +2 -2
- package/build-module/dataform-layouts/panel/index.js +9 -14
- package/build-module/dataform-layouts/panel/index.js.map +2 -2
- package/build-module/dataform-layouts/panel/modal.js +7 -7
- package/build-module/dataform-layouts/panel/modal.js.map +2 -2
- package/build-module/dataform-layouts/panel/summary-button.js +2 -1
- package/build-module/dataform-layouts/panel/summary-button.js.map +1 -1
- package/build-module/dataform-layouts/regular/index.js +6 -9
- package/build-module/dataform-layouts/regular/index.js.map +2 -2
- package/build-module/dataform-layouts/row/index.js +9 -23
- package/build-module/dataform-layouts/row/index.js.map +2 -2
- package/build-module/dataviews-layouts/grid/index.js +3 -2
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/preview-size-picker.js +3 -2
- package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
- package/build-module/dataviews-layouts/index.js +2 -1
- package/build-module/dataviews-layouts/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +5 -6
- package/build-module/dataviews-layouts/list/index.js.map +2 -2
- package/build-module/dataviews-layouts/picker-grid/index.js +3 -2
- package/build-module/dataviews-layouts/picker-grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +5 -4
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-primary.js +2 -1
- package/build-module/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build-module/dataviews-layouts/table/density-picker.js +2 -1
- package/build-module/dataviews-layouts/table/density-picker.js.map +1 -1
- package/build-module/dataviews-layouts/table/index.js +2 -1
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js +2 -1
- package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +1 -1
- package/build-module/dataviews-layouts/utils/get-data-by-group.js +1 -0
- package/build-module/dataviews-layouts/utils/get-data-by-group.js.map +1 -1
- package/build-module/dataviews-layouts/utils/grid-items.js +3 -2
- package/build-module/dataviews-layouts/utils/grid-items.js.map +1 -1
- package/build-module/dataviews-layouts/utils/item-click-wrapper.js +2 -1
- package/build-module/dataviews-layouts/utils/item-click-wrapper.js.map +1 -1
- package/build-module/dataviews-layouts/utils/preview-size-picker.js +3 -2
- package/build-module/dataviews-layouts/utils/preview-size-picker.js.map +1 -1
- package/build-module/field-types/array.js +2 -1
- package/build-module/field-types/array.js.map +1 -1
- package/build-module/field-types/boolean.js +2 -1
- package/build-module/field-types/boolean.js.map +1 -1
- package/build-module/field-types/color.js +2 -1
- package/build-module/field-types/color.js.map +1 -1
- package/build-module/field-types/date.js +3 -2
- package/build-module/field-types/date.js.map +1 -1
- package/build-module/field-types/datetime.js +16 -2
- package/build-module/field-types/datetime.js.map +2 -2
- package/build-module/field-types/email.js +3 -2
- package/build-module/field-types/email.js.map +1 -1
- package/build-module/field-types/index.js +2 -1
- package/build-module/field-types/index.js.map +1 -1
- package/build-module/field-types/integer.js +2 -1
- package/build-module/field-types/integer.js.map +1 -1
- package/build-module/field-types/media.js +1 -0
- package/build-module/field-types/media.js.map +1 -1
- package/build-module/field-types/number.js +2 -1
- package/build-module/field-types/number.js.map +1 -1
- package/build-module/field-types/password.js +2 -1
- package/build-module/field-types/password.js.map +1 -1
- package/build-module/field-types/telephone.js +2 -1
- package/build-module/field-types/telephone.js.map +1 -1
- package/build-module/field-types/text.js +2 -1
- package/build-module/field-types/text.js.map +1 -1
- package/build-module/field-types/url.js +2 -1
- package/build-module/field-types/url.js.map +1 -1
- package/build-module/field-types/utils/parse-date-time.js +14 -0
- package/build-module/field-types/utils/parse-date-time.js.map +7 -0
- package/build-module/field-types/utils/render-from-elements.js +1 -0
- package/build-module/field-types/utils/render-from-elements.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/use-elements.js +2 -1
- package/build-module/hooks/use-elements.js.map +1 -1
- package/build-module/hooks/use-form-validity.js +424 -321
- package/build-module/hooks/use-form-validity.js.map +3 -3
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/lock-unlock.js +2 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/utils/filter-sort-and-paginate.js +2 -1
- package/build-module/utils/filter-sort-and-paginate.js.map +1 -1
- package/build-module/utils/has-elements.js +1 -0
- package/build-module/utils/has-elements.js.map +1 -1
- package/build-module/utils/normalize-fields.js +3 -2
- package/build-module/utils/normalize-fields.js.map +1 -1
- package/build-types/components/dataform/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
- package/build-types/dataform-controls/datetime.d.ts.map +1 -1
- package/build-types/dataform-layouts/card/index.d.ts +1 -1
- package/build-types/dataform-layouts/card/index.d.ts.map +1 -1
- package/build-types/dataform-layouts/data-form-layout.d.ts +4 -4
- package/build-types/dataform-layouts/data-form-layout.d.ts.map +1 -1
- package/build-types/dataform-layouts/index.d.ts +2 -2
- package/build-types/dataform-layouts/index.d.ts.map +1 -1
- package/build-types/dataform-layouts/normalize-form.d.ts +8 -0
- package/build-types/dataform-layouts/normalize-form.d.ts.map +1 -0
- package/build-types/dataform-layouts/panel/dropdown.d.ts +2 -2
- package/build-types/dataform-layouts/panel/dropdown.d.ts.map +1 -1
- package/build-types/dataform-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataform-layouts/panel/modal.d.ts +2 -2
- package/build-types/dataform-layouts/panel/modal.d.ts.map +1 -1
- package/build-types/dataform-layouts/regular/index.d.ts.map +1 -1
- package/build-types/dataform-layouts/row/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/field-types/datetime.d.ts +1 -1
- package/build-types/field-types/datetime.d.ts.map +1 -1
- package/build-types/field-types/utils/parse-date-time.d.ts +2 -0
- package/build-types/field-types/utils/parse-date-time.d.ts.map +1 -0
- package/build-types/hooks/use-form-validity.d.ts.map +1 -1
- package/build-types/stories/dataform.story.d.ts +1 -10
- package/build-types/stories/dataform.story.d.ts.map +1 -1
- package/build-types/stories/dataviews-picker.story.d.ts +31 -0
- package/build-types/stories/dataviews-picker.story.d.ts.map +1 -1
- package/build-types/stories/dataviews.fixtures.d.ts.map +1 -1
- package/build-types/test/normalize-form.d.ts +2 -0
- package/build-types/test/normalize-form.d.ts.map +1 -0
- package/build-types/types/dataform.d.ts +12 -6
- package/build-types/types/dataform.d.ts.map +1 -1
- package/build-wp/index.js +738 -532
- package/package.json +15 -15
- package/src/components/dataform/index.tsx +3 -1
- package/src/components/dataviews-filters/filter.tsx +16 -1
- package/src/components/dataviews-item-actions/index.tsx +37 -14
- package/src/dataform-controls/datetime.tsx +3 -10
- package/src/dataform-layouts/card/index.tsx +45 -21
- package/src/dataform-layouts/data-form-layout.tsx +12 -23
- package/src/dataform-layouts/index.tsx +5 -3
- package/src/dataform-layouts/{normalize-form-fields.ts → normalize-form.ts} +39 -23
- package/src/dataform-layouts/panel/dropdown.tsx +10 -13
- package/src/dataform-layouts/panel/index.tsx +9 -24
- package/src/dataform-layouts/panel/modal.tsx +15 -15
- package/src/dataform-layouts/regular/index.tsx +7 -12
- package/src/dataform-layouts/row/index.tsx +13 -26
- package/src/dataviews-layouts/list/index.tsx +2 -5
- package/src/field-types/datetime.tsx +16 -5
- package/src/field-types/utils/parse-date-time.ts +17 -0
- package/src/hooks/use-form-validity.ts +572 -422
- package/src/stories/dataform.story.tsx +502 -454
- package/src/stories/dataviews-picker.story.tsx +155 -32
- package/src/stories/dataviews.fixtures.tsx +4 -1
- package/src/stories/field-types.story.tsx +7 -7
- package/src/test/normalize-form.ts +568 -0
- package/src/test/use-form-validity.ts +318 -33
- package/src/types/dataform.ts +12 -8
- package/tsconfig.tsbuildinfo +1 -1
- package/build/dataform-layouts/is-combined-field.js.map +0 -7
- package/build/dataform-layouts/normalize-form-fields.js.map +0 -7
- package/build-module/dataform-layouts/is-combined-field.js +0 -7
- package/build-module/dataform-layouts/is-combined-field.js.map +0 -7
- package/build-module/dataform-layouts/normalize-form-fields.js.map +0 -7
- package/build-types/dataform-layouts/is-combined-field.d.ts +0 -6
- package/build-types/dataform-layouts/is-combined-field.d.ts.map +0 -1
- package/build-types/dataform-layouts/normalize-form-fields.d.ts +0 -19
- package/build-types/dataform-layouts/normalize-form-fields.d.ts.map +0 -1
- package/build-types/test/normalize-form-fields.d.ts +0 -2
- package/build-types/test/normalize-form-fields.d.ts.map +0 -1
- package/src/dataform-layouts/is-combined-field.ts +0 -10
- package/src/test/normalize-form-fields.ts +0 -324
|
@@ -17,48 +17,39 @@ import { useState, useContext } from '@wordpress/element';
|
|
|
17
17
|
*/
|
|
18
18
|
import type {
|
|
19
19
|
FieldLayoutProps,
|
|
20
|
-
FormField,
|
|
21
20
|
NormalizedField,
|
|
21
|
+
NormalizedFormField,
|
|
22
22
|
NormalizedPanelLayout,
|
|
23
|
-
PanelLayout,
|
|
24
|
-
SimpleFormField,
|
|
25
23
|
} from '../../types';
|
|
26
24
|
import DataFormContext from '../../components/dataform-context';
|
|
27
|
-
import { isCombinedField } from '../is-combined-field';
|
|
28
|
-
import { normalizeLayout } from '../normalize-form-fields';
|
|
29
25
|
import PanelDropdown from './dropdown';
|
|
30
26
|
import PanelModal from './modal';
|
|
31
27
|
import { getSummaryFields } from '../get-summary-fields';
|
|
32
28
|
|
|
33
29
|
const getFieldDefinition = < Item, >(
|
|
34
|
-
field:
|
|
30
|
+
field: NormalizedFormField,
|
|
35
31
|
fields: NormalizedField< Item >[]
|
|
36
32
|
) => {
|
|
37
33
|
const fieldDefinition = fields.find( ( _field ) => _field.id === field.id );
|
|
38
34
|
|
|
39
35
|
if ( ! fieldDefinition ) {
|
|
40
36
|
return fields.find( ( _field ) => {
|
|
41
|
-
if (
|
|
37
|
+
if ( !! field.children ) {
|
|
42
38
|
const simpleChildren = field.children.filter(
|
|
43
|
-
( child )
|
|
44
|
-
typeof child === 'string' || ! isCombinedField( child )
|
|
39
|
+
( child ) => ! child.children
|
|
45
40
|
);
|
|
46
41
|
|
|
47
42
|
if ( simpleChildren.length === 0 ) {
|
|
48
43
|
return false;
|
|
49
44
|
}
|
|
50
45
|
|
|
51
|
-
|
|
52
|
-
typeof simpleChildren[ 0 ] === 'string'
|
|
53
|
-
? simpleChildren[ 0 ]
|
|
54
|
-
: simpleChildren[ 0 ].id;
|
|
55
|
-
|
|
56
|
-
return _field.id === firstChildFieldId;
|
|
46
|
+
return _field.id === simpleChildren[ 0 ].id;
|
|
57
47
|
}
|
|
58
48
|
|
|
59
49
|
return _field.id === field.id;
|
|
60
50
|
} );
|
|
61
51
|
}
|
|
52
|
+
|
|
62
53
|
return fieldDefinition;
|
|
63
54
|
};
|
|
64
55
|
|
|
@@ -78,7 +69,7 @@ const getFieldDefinition = < Item, >(
|
|
|
78
69
|
*/
|
|
79
70
|
const getFieldDefinitionAndSummaryFields = < Item, >(
|
|
80
71
|
layout: NormalizedPanelLayout,
|
|
81
|
-
field:
|
|
72
|
+
field: NormalizedFormField,
|
|
82
73
|
fields: NormalizedField< Item >[]
|
|
83
74
|
) => {
|
|
84
75
|
const summaryFields = getSummaryFields( layout.summary, fields );
|
|
@@ -104,11 +95,7 @@ export default function FormPanelField< Item >( {
|
|
|
104
95
|
validity,
|
|
105
96
|
}: FieldLayoutProps< Item > ) {
|
|
106
97
|
const { fields } = useContext( DataFormContext );
|
|
107
|
-
|
|
108
|
-
const layout: NormalizedPanelLayout = normalizeLayout( {
|
|
109
|
-
...field.layout,
|
|
110
|
-
type: 'panel',
|
|
111
|
-
} as PanelLayout ) as NormalizedPanelLayout;
|
|
98
|
+
const layout = field.layout as NormalizedPanelLayout;
|
|
112
99
|
|
|
113
100
|
// Use internal state instead of a ref to make sure that the component
|
|
114
101
|
// re-renders when the popover's anchor updates.
|
|
@@ -128,9 +115,7 @@ export default function FormPanelField< Item >( {
|
|
|
128
115
|
'dataforms-layouts-panel__field-label',
|
|
129
116
|
`dataforms-layouts-panel__field-label--label-position-${ labelPosition }`
|
|
130
117
|
);
|
|
131
|
-
const fieldLabel =
|
|
132
|
-
? field.label
|
|
133
|
-
: fieldDefinition?.label;
|
|
118
|
+
const fieldLabel = !! field.children ? field.label : fieldDefinition?.label;
|
|
134
119
|
|
|
135
120
|
const renderedControl =
|
|
136
121
|
layout.openAs === 'modal' ? (
|
|
@@ -18,10 +18,14 @@ import { useContext, useState, useMemo } from '@wordpress/element';
|
|
|
18
18
|
/**
|
|
19
19
|
* Internal dependencies
|
|
20
20
|
*/
|
|
21
|
-
import type {
|
|
21
|
+
import type {
|
|
22
|
+
Field,
|
|
23
|
+
NormalizedForm,
|
|
24
|
+
NormalizedFormField,
|
|
25
|
+
NormalizedField,
|
|
26
|
+
} from '../../types';
|
|
22
27
|
import { DataFormLayout } from '../data-form-layout';
|
|
23
|
-
import {
|
|
24
|
-
import { DEFAULT_LAYOUT } from '../normalize-form-fields';
|
|
28
|
+
import { DEFAULT_LAYOUT } from '../normalize-form';
|
|
25
29
|
import SummaryButton from './summary-button';
|
|
26
30
|
import useFormValidity from '../../hooks/use-form-validity';
|
|
27
31
|
import DataFormContext from '../../components/dataform-context';
|
|
@@ -34,7 +38,7 @@ function ModalContent< Item >( {
|
|
|
34
38
|
onClose,
|
|
35
39
|
}: {
|
|
36
40
|
data: Item;
|
|
37
|
-
field:
|
|
41
|
+
field: NormalizedFormField;
|
|
38
42
|
onChange: ( data: Partial< Item > ) => void;
|
|
39
43
|
onClose: () => void;
|
|
40
44
|
fieldLabel: string;
|
|
@@ -45,13 +49,13 @@ function ModalContent< Item >( {
|
|
|
45
49
|
return deepMerge( data, changes );
|
|
46
50
|
}, [ data, changes ] );
|
|
47
51
|
|
|
48
|
-
const form:
|
|
49
|
-
()
|
|
52
|
+
const form: NormalizedForm = useMemo(
|
|
53
|
+
() => ( {
|
|
50
54
|
layout: DEFAULT_LAYOUT,
|
|
51
|
-
fields:
|
|
55
|
+
fields: !! field.children
|
|
52
56
|
? field.children
|
|
53
57
|
: // If not explicit children return the field id itself.
|
|
54
|
-
[ { id: field.id } ],
|
|
58
|
+
[ { id: field.id, layout: DEFAULT_LAYOUT } ],
|
|
55
59
|
} ),
|
|
56
60
|
[ field ]
|
|
57
61
|
);
|
|
@@ -91,9 +95,7 @@ function ModalContent< Item >( {
|
|
|
91
95
|
data={ modalData }
|
|
92
96
|
field={ childField }
|
|
93
97
|
onChange={ handleOnChange }
|
|
94
|
-
hideLabelFromVision={
|
|
95
|
-
( form?.fields ?? [] ).length < 2
|
|
96
|
-
}
|
|
98
|
+
hideLabelFromVision={ form.fields.length < 2 }
|
|
97
99
|
validity={ childFieldValidity }
|
|
98
100
|
/>
|
|
99
101
|
) }
|
|
@@ -131,7 +133,7 @@ function PanelModal< Item >( {
|
|
|
131
133
|
fieldDefinition,
|
|
132
134
|
}: {
|
|
133
135
|
data: Item;
|
|
134
|
-
field:
|
|
136
|
+
field: NormalizedFormField;
|
|
135
137
|
onChange: ( value: any ) => void;
|
|
136
138
|
labelPosition: 'side' | 'top' | 'none';
|
|
137
139
|
summaryFields: NormalizedField< Item >[];
|
|
@@ -139,9 +141,7 @@ function PanelModal< Item >( {
|
|
|
139
141
|
} ) {
|
|
140
142
|
const [ isOpen, setIsOpen ] = useState( false );
|
|
141
143
|
|
|
142
|
-
const fieldLabel =
|
|
143
|
-
? field.label
|
|
144
|
-
: fieldDefinition?.label;
|
|
144
|
+
const fieldLabel = !! field.children ? field.label : fieldDefinition?.label;
|
|
145
145
|
|
|
146
146
|
return (
|
|
147
147
|
<>
|
|
@@ -19,14 +19,13 @@ import {
|
|
|
19
19
|
* Internal dependencies
|
|
20
20
|
*/
|
|
21
21
|
import type {
|
|
22
|
-
Form,
|
|
23
22
|
FieldLayoutProps,
|
|
23
|
+
NormalizedForm,
|
|
24
24
|
NormalizedRegularLayout,
|
|
25
25
|
} from '../../types';
|
|
26
26
|
import DataFormContext from '../../components/dataform-context';
|
|
27
27
|
import { DataFormLayout } from '../data-form-layout';
|
|
28
|
-
import {
|
|
29
|
-
import { DEFAULT_LAYOUT, normalizeLayout } from '../normalize-form-fields';
|
|
28
|
+
import { DEFAULT_LAYOUT } from '../normalize-form';
|
|
30
29
|
|
|
31
30
|
function Header( { title }: { title: string } ) {
|
|
32
31
|
return (
|
|
@@ -49,16 +48,17 @@ export default function FormRegularField< Item >( {
|
|
|
49
48
|
validity,
|
|
50
49
|
}: FieldLayoutProps< Item > ) {
|
|
51
50
|
const { fields } = useContext( DataFormContext );
|
|
51
|
+
const layout = field.layout as NormalizedRegularLayout;
|
|
52
52
|
|
|
53
|
-
const form:
|
|
54
|
-
()
|
|
53
|
+
const form: NormalizedForm = useMemo(
|
|
54
|
+
() => ( {
|
|
55
55
|
layout: DEFAULT_LAYOUT,
|
|
56
|
-
fields:
|
|
56
|
+
fields: !! field.children ? field.children : [],
|
|
57
57
|
} ),
|
|
58
58
|
[ field ]
|
|
59
59
|
);
|
|
60
60
|
|
|
61
|
-
if (
|
|
61
|
+
if ( !! field.children ) {
|
|
62
62
|
return (
|
|
63
63
|
<>
|
|
64
64
|
{ ! hideLabelFromVision && field.label && (
|
|
@@ -74,11 +74,6 @@ export default function FormRegularField< Item >( {
|
|
|
74
74
|
);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
const layout: NormalizedRegularLayout = normalizeLayout( {
|
|
78
|
-
...field.layout,
|
|
79
|
-
type: 'regular',
|
|
80
|
-
} ) as NormalizedRegularLayout;
|
|
81
|
-
|
|
82
77
|
const labelPosition = layout.labelPosition;
|
|
83
78
|
const fieldDefinition = fields.find(
|
|
84
79
|
( fieldDef ) => fieldDef.id === field.id
|
|
@@ -7,16 +7,18 @@ import {
|
|
|
7
7
|
__experimentalVStack as VStack,
|
|
8
8
|
__experimentalHeading as Heading,
|
|
9
9
|
} from '@wordpress/components';
|
|
10
|
-
import { useContext } from '@wordpress/element';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Internal dependencies
|
|
14
13
|
*/
|
|
15
|
-
import type {
|
|
16
|
-
|
|
14
|
+
import type {
|
|
15
|
+
FieldLayoutProps,
|
|
16
|
+
NormalizedForm,
|
|
17
|
+
NormalizedLayout,
|
|
18
|
+
NormalizedRowLayout,
|
|
19
|
+
} from '../../types';
|
|
17
20
|
import { DataFormLayout } from '../data-form-layout';
|
|
18
|
-
import {
|
|
19
|
-
import { normalizeLayout } from '../normalize-form-fields';
|
|
21
|
+
import { DEFAULT_LAYOUT } from '../normalize-form';
|
|
20
22
|
import { getFormFieldLayout } from '..';
|
|
21
23
|
|
|
22
24
|
function Header( { title }: { title: string } ) {
|
|
@@ -43,21 +45,12 @@ export default function FormRowField< Item >( {
|
|
|
43
45
|
hideLabelFromVision,
|
|
44
46
|
validity,
|
|
45
47
|
}: FieldLayoutProps< Item > ) {
|
|
46
|
-
const
|
|
48
|
+
const layout = field.layout as NormalizedRowLayout;
|
|
47
49
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if ( isCombinedField( field ) ) {
|
|
54
|
-
const form: Form = {
|
|
55
|
-
fields: field.children.map( ( child ) => {
|
|
56
|
-
if ( typeof child === 'string' ) {
|
|
57
|
-
return { id: child };
|
|
58
|
-
}
|
|
59
|
-
return child;
|
|
60
|
-
} ),
|
|
50
|
+
if ( !! field.children ) {
|
|
51
|
+
const form: NormalizedForm = {
|
|
52
|
+
layout: DEFAULT_LAYOUT as NormalizedLayout,
|
|
53
|
+
fields: field.children,
|
|
61
54
|
};
|
|
62
55
|
|
|
63
56
|
return (
|
|
@@ -94,12 +87,6 @@ export default function FormRowField< Item >( {
|
|
|
94
87
|
);
|
|
95
88
|
}
|
|
96
89
|
|
|
97
|
-
const fieldDefinition = fields.find( ( f ) => f.id === field.id );
|
|
98
|
-
|
|
99
|
-
if ( ! fieldDefinition || ! fieldDefinition.Edit ) {
|
|
100
|
-
return null;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
90
|
const RegularLayout = getFormFieldLayout( 'regular' )?.component;
|
|
104
91
|
if ( ! RegularLayout ) {
|
|
105
92
|
return null;
|
|
@@ -110,7 +97,7 @@ export default function FormRowField< Item >( {
|
|
|
110
97
|
<div className="dataforms-layouts-row__field-control">
|
|
111
98
|
<RegularLayout
|
|
112
99
|
data={ data }
|
|
113
|
-
field={
|
|
100
|
+
field={ field }
|
|
114
101
|
onChange={ onChange }
|
|
115
102
|
validity={ validity }
|
|
116
103
|
/>
|
|
@@ -106,12 +106,10 @@ function PrimaryActionGridCell< Item >( {
|
|
|
106
106
|
<Button
|
|
107
107
|
disabled={ !! primaryAction.disabled }
|
|
108
108
|
accessibleWhenDisabled
|
|
109
|
+
text={ label }
|
|
109
110
|
size="small"
|
|
110
111
|
onClick={ () => setIsModalOpen( true ) }
|
|
111
|
-
|
|
112
|
-
>
|
|
113
|
-
{ label }
|
|
114
|
-
</Button>
|
|
112
|
+
/>
|
|
115
113
|
}
|
|
116
114
|
>
|
|
117
115
|
{ isModalOpen && (
|
|
@@ -135,7 +133,6 @@ function PrimaryActionGridCell< Item >( {
|
|
|
135
133
|
onClick={ () => {
|
|
136
134
|
primaryAction.callback( [ item ], { registry } );
|
|
137
135
|
} }
|
|
138
|
-
variant="link"
|
|
139
136
|
>
|
|
140
137
|
{ label }
|
|
141
138
|
</Button>
|
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
FieldTypeDefinition,
|
|
8
8
|
} from '../types';
|
|
9
9
|
import RenderFromElements from './utils/render-from-elements';
|
|
10
|
+
import parseDateTime from './utils/parse-date-time';
|
|
10
11
|
import {
|
|
11
12
|
OPERATOR_ON,
|
|
12
13
|
OPERATOR_NOT_ON,
|
|
@@ -33,11 +34,21 @@ export default {
|
|
|
33
34
|
},
|
|
34
35
|
Edit: 'datetime',
|
|
35
36
|
render: ( { item, field }: DataViewRenderFieldProps< any > ) => {
|
|
36
|
-
|
|
37
|
-
<RenderFromElements item={ item } field={ field }
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
);
|
|
37
|
+
if ( field.elements ) {
|
|
38
|
+
return <RenderFromElements item={ item } field={ field } />;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const value = field.getValue( { item } );
|
|
42
|
+
if ( [ '', undefined, null ].includes( value ) ) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
const dateValue = parseDateTime( value );
|
|
48
|
+
return dateValue?.toLocaleString();
|
|
49
|
+
} catch ( error ) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
41
52
|
},
|
|
42
53
|
enableSorting: true,
|
|
43
54
|
filterBy: {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { isValid as isValidDate } from 'date-fns';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { getDate } from '@wordpress/date';
|
|
10
|
+
|
|
11
|
+
export default function parseDateTime( dateTimeString?: string ): Date | null {
|
|
12
|
+
if ( ! dateTimeString ) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
const parsed = getDate( dateTimeString );
|
|
16
|
+
return parsed && isValidDate( parsed ) ? parsed : null;
|
|
17
|
+
}
|