@wordpress/dataviews 10.1.2 → 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 +18 -0
- package/README.md +1 -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 +6 -5
- package/build/dataform-controls/password.js.map +3 -3
- 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 +91 -42
- 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} +43 -24
- 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 +5 -5
- 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 +9 -6
- package/build-module/dataform-controls/password.js.map +2 -2
- 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 +95 -42
- 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} +38 -19
- 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 +4 -5
- 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-style/style-rtl.css +12 -12
- package/build-style/style.css +12 -12
- 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-controls/password.d.ts.map +1 -1
- package/build-types/dataform-layouts/card/index.d.ts +3 -3
- 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 +10 -11
- 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/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 +16 -6
- package/build-types/types/dataform.d.ts.map +1 -1
- package/build-wp/index.js +830 -601
- package/package.json +15 -15
- package/src/components/dataform/index.tsx +3 -1
- package/src/components/dataviews/style.scss +1 -1
- package/src/components/dataviews-bulk-actions/style.scss +1 -1
- package/src/components/dataviews-filters/filter.tsx +16 -1
- package/src/components/dataviews-filters/style.scss +1 -1
- package/src/components/dataviews-item-actions/index.tsx +37 -14
- package/src/components/dataviews-pagination/style.scss +2 -2
- package/src/dataform-controls/datetime.tsx +3 -10
- package/src/dataform-controls/password.tsx +16 -12
- package/src/dataform-layouts/card/index.tsx +89 -33
- 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} +44 -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 +0 -2
- package/src/dataviews-layouts/table/style.scss +2 -2
- 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 +520 -456
- package/src/stories/dataviews-picker.story.tsx +155 -32
- 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 +18 -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 -317
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/hooks/use-form-validity.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport deepMerge from 'deepmerge';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport normalizeFields from '../utils/normalize-fields';\nimport normalizeFormFields from '../dataform-layouts/normalize-form-fields';\nimport type {\n\tCombinedFormField,\n\tField,\n\tFieldValidity,\n\tForm,\n\tFormValidity,\n\tNormalizedField,\n} from '../types';\nconst isEmptyNullOrUndefined = ( value: any ) =>\n\t[ undefined, '', null ].includes( value );\n\nconst isArrayOrElementsEmptyNullOrUndefined = ( value: any ) => {\n\treturn (\n\t\t! Array.isArray( value ) ||\n\t\tvalue.length === 0 ||\n\t\tvalue.every( ( element: any ) => isEmptyNullOrUndefined( element ) )\n\t);\n};\n\nfunction isInvalidForRequired( fieldType: string | undefined, value: any ) {\n\tif (\n\t\t( fieldType === undefined && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'text' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'email' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'url' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'telephone' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'password' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'integer' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'number' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'array' &&\n\t\t\tisArrayOrElementsEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'boolean' && value !== true )\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction isFormValid( formValidity: FormValidity | undefined ): boolean {\n\tif ( ! formValidity ) {\n\t\treturn true;\n\t}\n\n\treturn Object.values( formValidity ).every( ( fieldValidation ) => {\n\t\treturn Object.entries( fieldValidation ).every(\n\t\t\t( [ key, validation ] ) => {\n\t\t\t\tif (\n\t\t\t\t\tkey === 'children' &&\n\t\t\t\t\tvalidation &&\n\t\t\t\t\ttypeof validation === 'object'\n\t\t\t\t) {\n\t\t\t\t\t// Recursively check children validations\n\t\t\t\t\treturn isFormValid( validation as FormValidity );\n\t\t\t\t}\n\t\t\t\treturn validation.type === 'valid';\n\t\t\t}\n\t\t);\n\t} );\n}\n\nfunction updateFieldValidity(\n\tsetFormValidity: React.Dispatch< React.SetStateAction< FormValidity > >,\n\tparentFieldId: string | undefined,\n\tfieldId: string,\n\tnewValidity: FieldValidity\n) {\n\tif ( parentFieldId ) {\n\t\tsetFormValidity( ( prev ) => ( {\n\t\t\t...prev,\n\t\t\t[ parentFieldId ]: {\n\t\t\t\t...prev?.[ parentFieldId ],\n\t\t\t\tchildren: {\n\t\t\t\t\t...prev?.[ parentFieldId ]?.children,\n\t\t\t\t\t[ fieldId ]: {\n\t\t\t\t\t\t...newValidity,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t} ) );\n\t} else {\n\t\tsetFormValidity( ( prev ) => ( {\n\t\t\t...prev,\n\t\t\t[ fieldId ]: {\n\t\t\t\t...newValidity,\n\t\t\t},\n\t\t} ) );\n\t}\n}\n\nfunction getFieldsToValidate< Item >(\n\tfields: Field< Item >[],\n\tform: Form\n): {\n\tfields: NormalizedField< Item >[];\n\tfieldToParent: Map< string, string >;\n} {\n\tconst formFields = normalizeFormFields( form );\n\tif ( formFields.length === 0 ) {\n\t\treturn { fields: [], fieldToParent: new Map() };\n\t}\n\n\tconst fieldToParent = new Map< string, string >();\n\tconst fieldIdsToValidate: string[] = [];\n\tformFields.forEach( ( formField ) => {\n\t\tif ( !! ( formField as CombinedFormField ).children ) {\n\t\t\t( formField as CombinedFormField ).children.forEach( ( child ) => {\n\t\t\t\tconst childId = typeof child === 'string' ? child : child.id;\n\t\t\t\tfieldIdsToValidate.push( childId );\n\t\t\t\tfieldToParent.set( childId, formField.id );\n\t\t\t} );\n\t\t} else {\n\t\t\tfieldIdsToValidate.push( formField.id );\n\t\t}\n\t} );\n\n\treturn {\n\t\tfields: normalizeFields(\n\t\t\tfields.filter( ( field ) =>\n\t\t\t\tfieldIdsToValidate.includes( field.id )\n\t\t\t)\n\t\t),\n\t\tfieldToParent,\n\t};\n}\n\n/**\n * Hook that validates a form item and returns an object with error messages for each field.\n *\n * @param item The item to validate.\n * @param fields Fields config.\n * @param form Form config.\n *\n * @return Record of field IDs to error messages (undefined means no error).\n */\nexport function useFormValidity< Item >(\n\titem: Item,\n\tfields: Field< Item >[],\n\tform: Form\n): { validity: FormValidity; isValid: boolean } {\n\tconst [ formValidity, setFormValidity ] = useState< FormValidity >();\n\tconst previousValidatedValuesRef = useRef< Record< string, any > >( {} );\n\n\t// The following counters are used to track the validation promises triggered\n\t// by executing isValid.custom and the elements validation. When the promise resolves,\n\t// it will update the form validity state ONLY if its counter matches the current one.\n\tconst customValidationCounterRef = useRef< Record< string, number > >( {} );\n\tconst elementsValidationCounterRef = useRef< Record< string, number > >(\n\t\t{}\n\t);\n\n\tconst validate = useCallback( () => {\n\t\tconst { fields: fieldsToValidate, fieldToParent } = getFieldsToValidate(\n\t\t\tfields,\n\t\t\tform\n\t\t);\n\t\tif ( fieldsToValidate.length === 0 ) {\n\t\t\tsetFormValidity( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tfieldsToValidate.forEach( ( field ) => {\n\t\t\tconst value = field.getValue( { item } );\n\t\t\tif (\n\t\t\t\tpreviousValidatedValuesRef.current.hasOwnProperty( field.id ) &&\n\t\t\t\tvalue === previousValidatedValuesRef.current[ field.id ]\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpreviousValidatedValuesRef.current[ field.id ] = value;\n\n\t\t\tconst parentFieldId = fieldToParent.get( field.id );\n\n\t\t\t// isValid.required\n\t\t\tif (\n\t\t\t\tfield.isValid.required &&\n\t\t\t\tisInvalidForRequired( field.type, value )\n\t\t\t) {\n\t\t\t\tupdateFieldValidity( setFormValidity, parentFieldId, field.id, {\n\t\t\t\t\trequired: { type: 'invalid' },\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// isValid.elements (static elements)\n\t\t\tif (\n\t\t\t\tfield.isValid.elements &&\n\t\t\t\tfield.hasElements &&\n\t\t\t\t! field.getElements &&\n\t\t\t\tArray.isArray( field.elements )\n\t\t\t) {\n\t\t\t\tconst validValues = field.elements.map( ( el ) => el.value );\n\n\t\t\t\tif (\n\t\t\t\t\tfield.type !== 'array' &&\n\t\t\t\t\t! validValues.includes( value )\n\t\t\t\t) {\n\t\t\t\t\tupdateFieldValidity(\n\t\t\t\t\t\tsetFormValidity,\n\t\t\t\t\t\tparentFieldId,\n\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\tmessage: 'Value must be one of the elements.',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( field.type === 'array' && ! Array.isArray( value ) ) {\n\t\t\t\t\tupdateFieldValidity(\n\t\t\t\t\t\tsetFormValidity,\n\t\t\t\t\t\tparentFieldId,\n\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\tmessage: 'Value must be an array.',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tfield.type === 'array' &&\n\t\t\t\t\tvalue.some( ( v: any ) => ! validValues.includes( v ) )\n\t\t\t\t) {\n\t\t\t\t\tupdateFieldValidity(\n\t\t\t\t\t\tsetFormValidity,\n\t\t\t\t\t\tparentFieldId,\n\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\tmessage: 'Value must be one of the elements.',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// isValid.elements (get them via getElements first)\n\t\t\tif (\n\t\t\t\tfield.isValid.elements &&\n\t\t\t\tfield.hasElements &&\n\t\t\t\ttypeof field.getElements === 'function'\n\t\t\t) {\n\t\t\t\tconst currentToken =\n\t\t\t\t\t( elementsValidationCounterRef.current[ field.id ] || 0 ) +\n\t\t\t\t\t1;\n\t\t\t\telementsValidationCounterRef.current[ field.id ] = currentToken;\n\t\t\t\tupdateFieldValidity( setFormValidity, parentFieldId, field.id, {\n\t\t\t\t\telements: {\n\t\t\t\t\t\ttype: 'validating',\n\t\t\t\t\t\tmessage: 'Validating...',\n\t\t\t\t\t},\n\t\t\t\t} );\n\n\t\t\t\tfield\n\t\t\t\t\t.getElements()\n\t\t\t\t\t.then( ( result ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\telementsValidationCounterRef.current[ field.id ] !==\n\t\t\t\t\t\t\tcurrentToken\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( ! Array.isArray( result ) ) {\n\t\t\t\t\t\t\tupdateFieldValidity(\n\t\t\t\t\t\t\t\tsetFormValidity,\n\t\t\t\t\t\t\t\tparentFieldId,\n\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\t\t\tmessage: 'Could not validate elements.',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst validValues = result.map( ( el ) => el.value );\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tfield.type !== 'array' &&\n\t\t\t\t\t\t\t! validValues.includes( value )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tupdateFieldValidity(\n\t\t\t\t\t\t\t\tsetFormValidity,\n\t\t\t\t\t\t\t\tparentFieldId,\n\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\t\t\t\t'Value must be one of the elements.',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tfield.type === 'array' &&\n\t\t\t\t\t\t\t! Array.isArray( value )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tupdateFieldValidity(\n\t\t\t\t\t\t\t\tsetFormValidity,\n\t\t\t\t\t\t\t\tparentFieldId,\n\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\t\t\tmessage: 'Value must be an array.',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tfield.type === 'array' &&\n\t\t\t\t\t\t\tvalue.some(\n\t\t\t\t\t\t\t\t( v: any ) => ! validValues.includes( v )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tupdateFieldValidity(\n\t\t\t\t\t\t\t\tsetFormValidity,\n\t\t\t\t\t\t\t\tparentFieldId,\n\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\t\t\t\t'Value must be one of the elements.',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} )\n\t\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\telementsValidationCounterRef.current[ field.id ] !==\n\t\t\t\t\t\t\tcurrentToken\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tupdateFieldValidity(\n\t\t\t\t\t\t\tsetFormValidity,\n\t\t\t\t\t\t\tparentFieldId,\n\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Check isValid.custom\n\t\t\tlet customError;\n\t\t\ttry {\n\t\t\t\tcustomError = field.isValid?.custom?.(\n\t\t\t\t\tdeepMerge(\n\t\t\t\t\t\titem,\n\t\t\t\t\t\tfield.setValue( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t} ) as Partial< Item >\n\t\t\t\t\t),\n\t\t\t\t\tfield\n\t\t\t\t);\n\t\t\t} catch ( error: any ) {\n\t\t\t\tlet errorMessage;\n\t\t\t\tif ( error instanceof Error ) {\n\t\t\t\t\terrorMessage = error.message;\n\t\t\t\t} else {\n\t\t\t\t\terrorMessage =\n\t\t\t\t\t\tString( error ) ||\n\t\t\t\t\t\t__( 'Unknown error when running custom validation.' );\n\t\t\t\t}\n\n\t\t\t\tupdateFieldValidity( setFormValidity, parentFieldId, field.id, {\n\t\t\t\t\tcustom: {\n\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\tmessage: errorMessage,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// \u2014 isValid.custom (sync version)\n\t\t\tif ( typeof customError === 'string' ) {\n\t\t\t\tupdateFieldValidity( setFormValidity, parentFieldId, field.id, {\n\t\t\t\t\tcustom: {\n\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\tmessage: customError,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// \u2014 isValid.custom (async version)\n\t\t\tif ( customError instanceof Promise ) {\n\t\t\t\t// Increment token for this field to track the latest validation\n\t\t\t\tconst currentToken =\n\t\t\t\t\t( customValidationCounterRef.current[ field.id ] || 0 ) + 1;\n\t\t\t\tcustomValidationCounterRef.current[ field.id ] = currentToken;\n\n\t\t\t\tupdateFieldValidity( setFormValidity, parentFieldId, field.id, {\n\t\t\t\t\tcustom: {\n\t\t\t\t\t\ttype: 'validating',\n\t\t\t\t\t\tmessage: 'Validating...',\n\t\t\t\t\t},\n\t\t\t\t} );\n\n\t\t\t\tcustomError\n\t\t\t\t\t.then( ( result ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcustomValidationCounterRef.current[ field.id ] !==\n\t\t\t\t\t\t\tcurrentToken\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( result === null ) {\n\t\t\t\t\t\t\tupdateFieldValidity(\n\t\t\t\t\t\t\t\tsetFormValidity,\n\t\t\t\t\t\t\t\tparentFieldId,\n\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcustom: {\n\t\t\t\t\t\t\t\t\t\ttype: 'valid',\n\t\t\t\t\t\t\t\t\t\tmessage: 'Valid',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( typeof result === 'string' ) {\n\t\t\t\t\t\t\tupdateFieldValidity(\n\t\t\t\t\t\t\t\tsetFormValidity,\n\t\t\t\t\t\t\t\tparentFieldId,\n\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcustom: {\n\t\t\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\t\t\tmessage: result,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} )\n\t\t\t\t\t.catch( ( error ) => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcustomValidationCounterRef.current[ field.id ] !==\n\t\t\t\t\t\t\tcurrentToken\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tupdateFieldValidity(\n\t\t\t\t\t\t\tsetFormValidity,\n\t\t\t\t\t\t\tparentFieldId,\n\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcustom: {\n\t\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// No errors for this field, remove from errors object\n\t\t\tsetFormValidity( ( prev ) => {\n\t\t\t\tif ( ! prev ) {\n\t\t\t\t\treturn prev;\n\t\t\t\t}\n\n\t\t\t\tif ( parentFieldId ) {\n\t\t\t\t\t// This field is a child - remove it from parent's children\n\t\t\t\t\tconst parentField = prev[ parentFieldId ];\n\t\t\t\t\tif ( ! parentField?.children ) {\n\t\t\t\t\t\treturn prev;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst { [ field.id ]: removed, ...restChildren } =\n\t\t\t\t\t\tparentField.children as any;\n\n\t\t\t\t\t// If no more children, remove the children property\n\t\t\t\t\tif ( Object.keys( restChildren ).length === 0 ) {\n\t\t\t\t\t\tconst { children, ...restParent } = parentField;\n\t\t\t\t\t\tif ( Object.keys( restParent ).length === 0 ) {\n\t\t\t\t\t\t\t// Remove parent field entirely if no other validations\n\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t[ parentFieldId ]: removedParent,\n\t\t\t\t\t\t\t\t...restFields\n\t\t\t\t\t\t\t} = prev;\n\t\t\t\t\t\t\treturn Object.keys( restFields ).length === 0\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: restFields;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t[ parentFieldId ]: restParent,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t[ parentFieldId ]: {\n\t\t\t\t\t\t\t...parentField,\n\t\t\t\t\t\t\tchildren: restChildren,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Regular field - remove from top level\n\t\t\t\tif ( ! prev[ field.id ] ) {\n\t\t\t\t\treturn prev;\n\t\t\t\t}\n\n\t\t\t\tconst { [ field.id ]: removed, ...rest } = prev;\n\n\t\t\t\tif ( Object.keys( rest ).length === 0 ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\treturn rest;\n\t\t\t} );\n\t\t} );\n\t}, [ item, fields, form ] );\n\n\tuseEffect( () => {\n\t\tvalidate();\n\t}, [ validate ] );\n\n\treturn {\n\t\tvalidity: formValidity,\n\t\tisValid: isFormValid( formValidity ),\n\t};\n}\n\nexport default useFormValidity;\n"],
|
|
5
|
-
"mappings": "AAGA,OAAO,eAAe;
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport deepMerge from 'deepmerge';\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport normalizeFields from '../utils/normalize-fields';\nimport normalizeForm from '../dataform-layouts/normalize-form';\nimport type {\n\tField,\n\tFieldValidity,\n\tForm,\n\tFormValidity,\n\tNormalizedField,\n\tNormalizedFormField,\n} from '../types';\nconst isEmptyNullOrUndefined = ( value: any ) =>\n\t[ undefined, '', null ].includes( value );\n\nconst isArrayOrElementsEmptyNullOrUndefined = ( value: any ) => {\n\treturn (\n\t\t! Array.isArray( value ) ||\n\t\tvalue.length === 0 ||\n\t\tvalue.every( ( element: any ) => isEmptyNullOrUndefined( element ) )\n\t);\n};\n\nfunction isInvalidForRequired( fieldType: string | undefined, value: any ) {\n\tif (\n\t\t( fieldType === undefined && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'text' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'email' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'url' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'telephone' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'password' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'integer' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'number' && isEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'array' &&\n\t\t\tisArrayOrElementsEmptyNullOrUndefined( value ) ) ||\n\t\t( fieldType === 'boolean' && value !== true )\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction isFormValid( formValidity: FormValidity | undefined ): boolean {\n\tif ( ! formValidity ) {\n\t\treturn true;\n\t}\n\n\treturn Object.values( formValidity ).every( ( fieldValidation ) => {\n\t\treturn Object.entries( fieldValidation ).every(\n\t\t\t( [ key, validation ] ) => {\n\t\t\t\tif (\n\t\t\t\t\tkey === 'children' &&\n\t\t\t\t\tvalidation &&\n\t\t\t\t\ttypeof validation === 'object'\n\t\t\t\t) {\n\t\t\t\t\t// Recursively check children validations\n\t\t\t\t\treturn isFormValid( validation as FormValidity );\n\t\t\t\t}\n\t\t\t\treturn validation.type === 'valid';\n\t\t\t}\n\t\t);\n\t} );\n}\n\ntype FormFieldToValidate< Item > = {\n\tid: string;\n\tchildren: FormFieldToValidate< Item >[];\n\tfield?: NormalizedField< Item >;\n};\n\nfunction getFormFieldsToValidate< Item >(\n\tform: Form,\n\tfields: Field< Item >[]\n): FormFieldToValidate< Item >[] {\n\tconst normalizedForm = normalizeForm( form );\n\tif ( normalizedForm.fields.length === 0 ) {\n\t\treturn [];\n\t}\n\n\t// Create a map of field IDs to Field definitions for fast lookup\n\tconst fieldsMap = new Map< string, Field< Item > >();\n\tfields.forEach( ( field ) => {\n\t\tfieldsMap.set( field.id, field );\n\t} );\n\n\t// Recursive function to process form fields and their children\n\tfunction processFormField(\n\t\tformField: NormalizedFormField\n\t): FormFieldToValidate< Item > | null {\n\t\t// Handle combined fields (fields with children)\n\t\tif ( 'children' in formField && Array.isArray( formField.children ) ) {\n\t\t\tconst processedChildren = formField.children\n\t\t\t\t.map( processFormField )\n\t\t\t\t.filter( ( child ) => child !== null );\n\n\t\t\tif ( processedChildren.length === 0 ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst fieldDef = fieldsMap.get( formField.id );\n\t\t\tif ( fieldDef ) {\n\t\t\t\tconst [ normalizedField ] = normalizeFields< Item >( [\n\t\t\t\t\tfieldDef,\n\t\t\t\t] );\n\n\t\t\t\treturn {\n\t\t\t\t\tid: formField.id,\n\t\t\t\t\tchildren: processedChildren,\n\t\t\t\t\tfield: normalizedField,\n\t\t\t\t} satisfies FormFieldToValidate< Item >;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: formField.id,\n\t\t\t\tchildren: processedChildren,\n\t\t\t} satisfies FormFieldToValidate< Item >;\n\t\t}\n\n\t\t// Handle leaf fields (fields without children)\n\t\tconst fieldDef = fieldsMap.get( formField.id );\n\t\tif ( ! fieldDef ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst [ normalizedField ] = normalizeFields< Item >( [ fieldDef ] );\n\t\treturn {\n\t\t\tid: formField.id,\n\t\t\tchildren: [],\n\t\t\tfield: normalizedField,\n\t\t} as FormFieldToValidate< Item >;\n\t}\n\n\tconst toValidate = normalizedForm.fields\n\t\t.map( processFormField )\n\t\t.filter( ( field ) => field !== null );\n\n\treturn toValidate;\n}\n\nfunction setValidityAtPath(\n\tformValidity: FormValidity | undefined,\n\tfieldValidity: FieldValidity,\n\tpath: string[]\n): FormValidity {\n\t// Handle empty validity or empty path\n\tif ( ! formValidity ) {\n\t\tformValidity = {};\n\t}\n\n\tif ( path.length === 0 ) {\n\t\treturn formValidity;\n\t}\n\n\t// Clone the root to avoid mutations\n\tconst result = { ...formValidity };\n\n\t// Navigate through the result tree,\n\t// setting up empty paths if they don't exist.\n\tlet current: any = result;\n\tfor ( let i = 0; i < path.length - 1; i++ ) {\n\t\tconst segment = path[ i ];\n\t\tif ( ! current[ segment ] ) {\n\t\t\tcurrent[ segment ] = {};\n\t\t}\n\n\t\tcurrent = current[ segment ];\n\t}\n\n\t// At the final destination, merge the new validity with the existing.\n\tconst finalKey = path[ path.length - 1 ];\n\tcurrent[ finalKey ] = {\n\t\t...( current[ finalKey ] || {} ),\n\t\t...fieldValidity,\n\t};\n\n\treturn result;\n}\n\nfunction handleElementsValidationAsync< Item >(\n\tpromise: Promise< any >,\n\tformField: FormFieldToValidate< Item >,\n\tpromiseHandler: PromiseHandler< Item >\n) {\n\tconst { elementsCounterRef, setFormValidity, path, item } = promiseHandler;\n\tconst currentToken =\n\t\t( elementsCounterRef.current[ formField.id ] || 0 ) + 1;\n\telementsCounterRef.current[ formField.id ] = currentToken;\n\n\tpromise\n\t\t.then( ( result ) => {\n\t\t\tif ( currentToken !== elementsCounterRef.current[ formField.id ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( ! Array.isArray( result ) ) {\n\t\t\t\tsetFormValidity( ( prev ) => {\n\t\t\t\t\tconst newFormValidity = setValidityAtPath(\n\t\t\t\t\t\tprev,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\tmessage: __( 'Could not validate elements.' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[ ...path, formField.id ]\n\t\t\t\t\t);\n\t\t\t\t\treturn newFormValidity;\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst validValues = result.map( ( el ) => el.value );\n\t\t\tif (\n\t\t\t\t!! formField.field &&\n\t\t\t\tformField.field.type !== 'array' &&\n\t\t\t\t! validValues.includes( formField.field.getValue( { item } ) )\n\t\t\t) {\n\t\t\t\tsetFormValidity( ( prev ) => {\n\t\t\t\t\tconst newFormValidity = setValidityAtPath(\n\t\t\t\t\t\tprev,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\tmessage: __(\n\t\t\t\t\t\t\t\t\t'Value must be one of the elements.'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[ ...path, formField.id ]\n\t\t\t\t\t);\n\t\t\t\t\treturn newFormValidity;\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!! formField.field &&\n\t\t\t\tformField.field.type === 'array' &&\n\t\t\t\t! Array.isArray( formField.field.getValue( { item } ) )\n\t\t\t) {\n\t\t\t\tsetFormValidity( ( prev ) => {\n\t\t\t\t\tconst newFormValidity = setValidityAtPath(\n\t\t\t\t\t\tprev,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\tmessage: __( 'Value must be an array.' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[ ...path, formField.id ]\n\t\t\t\t\t);\n\t\t\t\t\treturn newFormValidity;\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!! formField.field &&\n\t\t\t\tformField.field.type === 'array' &&\n\t\t\t\tformField.field\n\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t.some( ( v: any ) => ! validValues.includes( v ) )\n\t\t\t) {\n\t\t\t\tsetFormValidity( ( prev ) => {\n\t\t\t\t\tconst newFormValidity = setValidityAtPath(\n\t\t\t\t\t\tprev,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\tmessage: __(\n\t\t\t\t\t\t\t\t\t'Value must be one of the elements.'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[ ...path, formField.id ]\n\t\t\t\t\t);\n\t\t\t\t\treturn newFormValidity;\n\t\t\t\t} );\n\t\t\t}\n\t\t} )\n\t\t.catch( ( error ) => {\n\t\t\tif ( currentToken !== elementsCounterRef.current[ formField.id ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet errorMessage;\n\t\t\tif ( error instanceof Error ) {\n\t\t\t\terrorMessage = error.message;\n\t\t\t} else {\n\t\t\t\terrorMessage =\n\t\t\t\t\tString( error ) ||\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Unknown error when running elements validation asynchronously.'\n\t\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetFormValidity( ( prev ) => {\n\t\t\t\tconst newFormValidity = setValidityAtPath(\n\t\t\t\t\tprev,\n\t\t\t\t\t{\n\t\t\t\t\t\telements: {\n\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\tmessage: errorMessage,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t[ ...path, formField.id ]\n\t\t\t\t);\n\t\t\t\treturn newFormValidity;\n\t\t\t} );\n\t\t} );\n}\n\nfunction handleCustomValidationAsync< Item >(\n\tpromise: Promise< any >,\n\tformField: FormFieldToValidate< Item >,\n\tpromiseHandler: PromiseHandler< Item >\n) {\n\tconst { customCounterRef, setFormValidity, path } = promiseHandler;\n\tconst currentToken = ( customCounterRef.current[ formField.id ] || 0 ) + 1;\n\tcustomCounterRef.current[ formField.id ] = currentToken;\n\n\tpromise\n\t\t.then( ( result ) => {\n\t\t\tif ( currentToken !== customCounterRef.current[ formField.id ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( result === null ) {\n\t\t\t\tsetFormValidity( ( prev ) => {\n\t\t\t\t\tconst newFormValidity = setValidityAtPath(\n\t\t\t\t\t\tprev,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcustom: {\n\t\t\t\t\t\t\t\ttype: 'valid',\n\t\t\t\t\t\t\t\tmessage: __( 'Valid' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[ ...path, formField.id ]\n\t\t\t\t\t);\n\t\t\t\t\treturn newFormValidity;\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( typeof result === 'string' ) {\n\t\t\t\tsetFormValidity( ( prev ) => {\n\t\t\t\t\tconst newFormValidity = setValidityAtPath(\n\t\t\t\t\t\tprev,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcustom: {\n\t\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\t\tmessage: result,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[ ...path, formField.id ]\n\t\t\t\t\t);\n\t\t\t\t\treturn newFormValidity;\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetFormValidity( ( prev ) => {\n\t\t\t\tconst newFormValidity = setValidityAtPath(\n\t\t\t\t\tprev,\n\t\t\t\t\t{\n\t\t\t\t\t\tcustom: {\n\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\tmessage: __( 'Validation could not be processed.' ),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t[ ...path, formField.id ]\n\t\t\t\t);\n\t\t\t\treturn newFormValidity;\n\t\t\t} );\n\t\t} )\n\t\t.catch( ( error ) => {\n\t\t\tif ( currentToken !== customCounterRef.current[ formField.id ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet errorMessage;\n\t\t\tif ( error instanceof Error ) {\n\t\t\t\terrorMessage = error.message;\n\t\t\t} else {\n\t\t\t\terrorMessage =\n\t\t\t\t\tString( error ) ||\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Unknown error when running custom validation asynchronously.'\n\t\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetFormValidity( ( prev ) => {\n\t\t\t\tconst newFormValidity = setValidityAtPath(\n\t\t\t\t\tprev,\n\t\t\t\t\t{\n\t\t\t\t\t\tcustom: {\n\t\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\t\tmessage: errorMessage,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t[ ...path, formField.id ]\n\t\t\t\t);\n\t\t\t\treturn newFormValidity;\n\t\t\t} );\n\t\t} );\n}\n\ntype PromiseHandler< Item > = {\n\tcustomCounterRef: React.MutableRefObject< Record< string, number > >;\n\telementsCounterRef: React.MutableRefObject< Record< string, number > >;\n\tsetFormValidity: React.Dispatch< React.SetStateAction< FormValidity > >;\n\tpath: string[];\n\titem: Item;\n};\n\nfunction validateFormField< Item >(\n\titem: Item,\n\tformField: FormFieldToValidate< Item >,\n\tpromiseHandler: PromiseHandler< Item >\n): FieldValidity | undefined {\n\t// Validate the field: isValid.required\n\tif (\n\t\t!! formField.field &&\n\t\tformField.field.isValid.required &&\n\t\tisInvalidForRequired(\n\t\t\tformField.field.type,\n\t\t\tformField.field.getValue( { item } )\n\t\t)\n\t) {\n\t\treturn {\n\t\t\trequired: { type: 'invalid' },\n\t\t};\n\t}\n\n\t// Validate the field: isValid.elements (static)\n\tif (\n\t\t!! formField.field &&\n\t\tformField.field.isValid.elements &&\n\t\tformField.field.hasElements &&\n\t\t! formField.field.getElements &&\n\t\tArray.isArray( formField.field.elements )\n\t) {\n\t\tconst value = formField.field.getValue( { item } );\n\t\tconst validValues = formField.field.elements.map( ( el ) => el.value );\n\n\t\tif (\n\t\t\tformField.field.type !== 'array' &&\n\t\t\t! validValues.includes( value )\n\t\t) {\n\t\t\treturn {\n\t\t\t\telements: {\n\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\tmessage: __( 'Value must be one of the elements.' ),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tif ( formField.field.type === 'array' && ! Array.isArray( value ) ) {\n\t\t\treturn {\n\t\t\t\telements: {\n\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\tmessage: __( 'Value must be an array.' ),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\tif (\n\t\t\tformField.field.type === 'array' &&\n\t\t\tvalue.some( ( v: any ) => ! validValues.includes( v ) )\n\t\t) {\n\t\t\treturn {\n\t\t\t\telements: {\n\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\tmessage: __( 'Value must be one of the elements.' ),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\t// Validate the field: isValid.elements (async)\n\tif (\n\t\t!! formField.field &&\n\t\tformField.field.isValid.elements &&\n\t\tformField.field.hasElements &&\n\t\ttypeof formField.field.getElements === 'function'\n\t) {\n\t\thandleElementsValidationAsync(\n\t\t\tformField.field.getElements(),\n\t\t\tformField,\n\t\t\tpromiseHandler\n\t\t);\n\n\t\treturn {\n\t\t\telements: {\n\t\t\t\ttype: 'validating',\n\t\t\t\tmessage: __( 'Validating\u2026' ),\n\t\t\t},\n\t\t};\n\t}\n\n\t// Validate the field: isValid.custom (sync)\n\tlet customError;\n\tif ( !! formField.field ) {\n\t\ttry {\n\t\t\tconst value = formField.field.getValue( { item } );\n\t\t\tcustomError = formField.field.isValid?.custom?.(\n\t\t\t\tdeepMerge(\n\t\t\t\t\titem,\n\t\t\t\t\tformField.field.setValue( {\n\t\t\t\t\t\titem,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t} ) as Partial< Item >\n\t\t\t\t),\n\t\t\t\tformField.field\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tlet errorMessage;\n\t\t\tif ( error instanceof Error ) {\n\t\t\t\terrorMessage = error.message;\n\t\t\t} else {\n\t\t\t\terrorMessage =\n\t\t\t\t\tString( error ) ||\n\t\t\t\t\t__( 'Unknown error when running custom validation.' );\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcustom: {\n\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\tmessage: errorMessage,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n\n\tif ( typeof customError === 'string' ) {\n\t\treturn {\n\t\t\tcustom: {\n\t\t\t\ttype: 'invalid',\n\t\t\t\tmessage: customError,\n\t\t\t},\n\t\t};\n\t}\n\n\t// Validate the field: isValid.custom (async)\n\tif ( customError instanceof Promise ) {\n\t\thandleCustomValidationAsync( customError, formField, promiseHandler );\n\n\t\treturn {\n\t\t\tcustom: {\n\t\t\t\ttype: 'validating',\n\t\t\t\tmessage: __( 'Validating\u2026' ),\n\t\t\t},\n\t\t};\n\t}\n\n\t// Validate its children.\n\tif ( formField.children.length > 0 ) {\n\t\tconst result: Record< string, FieldValidity | undefined > = {};\n\t\tformField.children.forEach( ( child ) => {\n\t\t\tresult[ child.id ] = validateFormField( item, child, {\n\t\t\t\t...promiseHandler,\n\t\t\t\tpath: [ ...promiseHandler.path, formField.id, 'children' ],\n\t\t\t} );\n\t\t} );\n\n\t\tconst filteredResult: Record< string, FieldValidity > = {};\n\t\tObject.entries( result ).forEach( ( [ key, value ] ) => {\n\t\t\tif ( value !== undefined ) {\n\t\t\t\tfilteredResult[ key ] = value;\n\t\t\t}\n\t\t} );\n\n\t\tif ( Object.keys( filteredResult ).length === 0 ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tchildren: filteredResult,\n\t\t};\n\t}\n\n\t// No errors for this field or its children.\n\treturn undefined;\n}\n\nfunction getFormFieldValue< Item >(\n\tformField: FormFieldToValidate< Item >,\n\titem: Item\n): any {\n\tconst fieldValue = formField?.field?.getValue( { item } );\n\tif ( formField.children.length === 0 ) {\n\t\treturn fieldValue;\n\t}\n\n\tconst childrenValues = formField.children.map( ( child ) =>\n\t\tgetFormFieldValue( child, item )\n\t);\n\tif ( ! childrenValues ) {\n\t\treturn fieldValue;\n\t}\n\n\treturn {\n\t\tvalue: fieldValue,\n\t\tchildren: childrenValues,\n\t};\n}\n\n/**\n * Hook that validates a form item and returns an object with error messages for each field.\n *\n * @param item The item to validate.\n * @param fields Fields config.\n * @param form Form config.\n *\n * @return Record of field IDs to error messages (undefined means no error).\n */\nexport function useFormValidity< Item >(\n\titem: Item,\n\tfields: Field< Item >[],\n\tform: Form\n): { validity: FormValidity; isValid: boolean } {\n\tconst [ formValidity, setFormValidity ] = useState< FormValidity >();\n\tconst customCounterRef = useRef< Record< string, number > >( {} );\n\tconst elementsCounterRef = useRef< Record< string, number > >( {} );\n\tconst previousValuesRef = useRef< Record< string, any > >( {} );\n\n\tconst validate = useCallback( () => {\n\t\tconst promiseHandler = {\n\t\t\tcustomCounterRef,\n\t\t\telementsCounterRef,\n\t\t\tsetFormValidity,\n\t\t\tpath: [],\n\t\t\titem,\n\t\t};\n\n\t\tconst formFieldsToValidate = getFormFieldsToValidate( form, fields );\n\t\tif ( formFieldsToValidate.length === 0 ) {\n\t\t\tsetFormValidity( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tconst newFormValidity: FormValidity = {};\n\t\tconst untouchedFields: string[] = [];\n\t\tformFieldsToValidate.forEach( ( formField ) => {\n\t\t\t// Skip fields that did not change.\n\t\t\tconst value = getFormFieldValue< Item >( formField, item );\n\t\t\tif (\n\t\t\t\tpreviousValuesRef.current.hasOwnProperty( formField.id ) &&\n\t\t\t\tfastDeepEqual(\n\t\t\t\t\tpreviousValuesRef.current[ formField.id ],\n\t\t\t\t\tvalue\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tuntouchedFields.push( formField.id );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpreviousValuesRef.current[ formField.id ] = value;\n\n\t\t\t// Calculate validity for those fields that changed.\n\t\t\tconst fieldValidity = validateFormField(\n\t\t\t\titem,\n\t\t\t\tformField,\n\t\t\t\tpromiseHandler\n\t\t\t);\n\t\t\tif ( fieldValidity !== undefined ) {\n\t\t\t\tnewFormValidity[ formField.id ] = fieldValidity;\n\t\t\t}\n\t\t} );\n\n\t\tsetFormValidity( ( existingFormValidity ) => {\n\t\t\tlet validity: FormValidity = {\n\t\t\t\t...existingFormValidity,\n\t\t\t\t...newFormValidity,\n\t\t\t};\n\n\t\t\tconst fieldsToKeep = [\n\t\t\t\t...untouchedFields,\n\t\t\t\t...Object.keys( newFormValidity ),\n\t\t\t];\n\t\t\tObject.keys( validity ).forEach( ( key ) => {\n\t\t\t\tif ( validity && ! fieldsToKeep.includes( key ) ) {\n\t\t\t\t\tdelete validity[ key ];\n\t\t\t\t}\n\t\t\t} );\n\t\t\tif ( Object.keys( validity ).length === 0 ) {\n\t\t\t\tvalidity = undefined;\n\t\t\t}\n\n\t\t\tconst areEqual = fastDeepEqual( existingFormValidity, validity );\n\t\t\tif ( areEqual ) {\n\t\t\t\treturn existingFormValidity;\n\t\t\t}\n\n\t\t\treturn validity;\n\t\t} );\n\t}, [ item, fields, form ] );\n\n\tuseEffect( () => {\n\t\tvalidate();\n\t}, [ validate ] );\n\n\treturn {\n\t\tvalidity: formValidity,\n\t\tisValid: isFormValid( formValidity ),\n\t};\n}\n\nexport default useFormValidity;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["fieldDef", "normalizedField"]
|
|
7
7
|
}
|
package/build-module/index.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
4
|
"sourcesContent": ["export { default as DataViews } from './components/dataviews';\nexport { default as DataViewsPicker } from './components/dataviews-picker';\nexport { default as DataForm } from './components/dataform';\nexport { default as filterSortAndPaginate } from './utils/filter-sort-and-paginate';\nexport { useFormValidity } from './hooks';\nexport { VIEW_LAYOUTS } from './dataviews-layouts';\nexport type * from './types';\n"],
|
|
5
|
-
"mappings": "AAAA,SAAoB,WAAXA,gBAA4B;AACrC,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAAwC;AACjD,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;",
|
|
5
|
+
"mappings": ";AAAA,SAAoB,WAAXA,gBAA4B;AACrC,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAA2B;AACpC,SAAoB,WAAXA,gBAAwC;AACjD,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;",
|
|
6
6
|
"names": ["default"]
|
|
7
7
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
// packages/dataviews/src/lock-unlock.ts
|
|
1
2
|
import { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from "@wordpress/private-apis";
|
|
2
|
-
|
|
3
|
+
var { lock, unlock } = __dangerousOptInToUnstableAPIsOnlyForCoreModules(
|
|
3
4
|
"I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
|
|
4
5
|
"@wordpress/dataviews"
|
|
5
6
|
);
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/lock-unlock.ts"],
|
|
4
4
|
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.',\n\t\t'@wordpress/dataviews'\n\t);\n"],
|
|
5
|
-
"mappings": "AAGA,SAAS,wDAAwD;AAE1D,
|
|
5
|
+
"mappings": ";AAGA,SAAS,wDAAwD;AAE1D,IAAM,EAAE,MAAM,OAAO,IAC3B;AAAA,EACC;AAAA,EACA;AACD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// packages/dataviews/src/utils/filter-sort-and-paginate.ts
|
|
1
2
|
import removeAccents from "remove-accents";
|
|
2
3
|
import { subDays, subWeeks, subMonths, subYears } from "date-fns";
|
|
3
4
|
import { getDate } from "@wordpress/date";
|
|
@@ -29,7 +30,7 @@ import normalizeFields from "./normalize-fields";
|
|
|
29
30
|
function normalizeSearchInput(input = "") {
|
|
30
31
|
return removeAccents(input.trim().toLowerCase());
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
+
var EMPTY_ARRAY = [];
|
|
33
34
|
function getRelativeDate(value, unit) {
|
|
34
35
|
switch (unit) {
|
|
35
36
|
case "days":
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/filter-sort-and-paginate.ts"],
|
|
4
4
|
"sourcesContent": ["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\nimport { subDays, subWeeks, subMonths, subYears } from 'date-fns';\n\n/**\n * WordPress dependencies\n */\nimport { getDate } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_STARTS_WITH,\n\tOPERATOR_BETWEEN,\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n} from '../constants';\nimport normalizeFields from './normalize-fields';\nimport type { Field, View } from '../types';\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nconst EMPTY_ARRAY: [] = [];\n\n/**\n * Calculates a date offset from now.\n *\n * @param value Number of units to offset.\n * @param unit Unit of time to offset.\n * @return Date offset from now.\n */\nfunction getRelativeDate( value: number, unit: string ): Date {\n\tswitch ( unit ) {\n\t\tcase 'days':\n\t\t\treturn subDays( new Date(), value );\n\t\tcase 'weeks':\n\t\t\treturn subWeeks( new Date(), value );\n\t\tcase 'months':\n\t\t\treturn subMonths( new Date(), value );\n\t\tcase 'years':\n\t\t\treturn subYears( new Date(), value );\n\t\tdefault:\n\t\t\treturn new Date();\n\t}\n}\n\n/**\n * Applies the filtering, sorting and pagination to the raw data based on the view configuration.\n *\n * @param data Raw data.\n * @param view View config.\n * @param fields Fields config.\n *\n * @return Filtered, sorted and paginated data.\n */\nexport default function filterSortAndPaginate< Item >(\n\tdata: Item[],\n\tview: View,\n\tfields: Field< Item >[]\n): {\n\tdata: Item[];\n\tpaginationInfo: { totalItems: number; totalPages: number };\n} {\n\tif ( ! data ) {\n\t\treturn {\n\t\t\tdata: EMPTY_ARRAY,\n\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t};\n\t}\n\tconst _fields = normalizeFields( fields );\n\tlet filteredData = [ ...data ];\n\t// Handle global search.\n\tif ( view.search ) {\n\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\treturn _fields\n\t\t\t\t.filter( ( field ) => field.enableGlobalSearch )\n\t\t\t\t.some( ( field ) => {\n\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\tconst values = Array.isArray( fieldValue )\n\t\t\t\t\t\t? fieldValue\n\t\t\t\t\t\t: [ fieldValue ];\n\t\t\t\t\treturn values.some( ( value ) =>\n\t\t\t\t\t\tnormalizeSearchInput( String( value ) ).includes(\n\t\t\t\t\t\t\tnormalizedSearch\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t} );\n\t}\n\n\tif ( view.filters && view.filters?.length > 0 ) {\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tconst field = _fields.find(\n\t\t\t\t( _field ) => _field.id === filter.field\n\t\t\t);\n\t\t\tif ( field ) {\n\t\t\t\tif (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn ! filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn ! filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NOT_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn ! field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tfilter.value === field.getValue( { item } ) ||\n\t\t\t\t\t\t\tfilter.value === undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS_NOT ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value !== field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_ON &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterDate = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldDate = getDate( field.getValue( { item } ) );\n\t\t\t\t\t\treturn filterDate.getTime() === fieldDate.getTime();\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_NOT_ON &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterDate = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldDate = getDate( field.getValue( { item } ) );\n\t\t\t\t\t\treturn filterDate.getTime() !== fieldDate.getTime();\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_LESS_THAN &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn fieldValue < filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_GREATER_THAN &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn fieldValue > filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_LESS_THAN_OR_EQUAL &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn fieldValue <= filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_GREATER_THAN_OR_EQUAL &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn fieldValue >= filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_CONTAINS &&\n\t\t\t\t\tfilter?.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\ttypeof fieldValue === 'string' &&\n\t\t\t\t\t\t\tfilter.value &&\n\t\t\t\t\t\t\tfieldValue\n\t\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(\n\t\t\t\t\t\t\t\t\tString( filter.value ).toLowerCase()\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_NOT_CONTAINS &&\n\t\t\t\t\tfilter?.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\ttypeof fieldValue === 'string' &&\n\t\t\t\t\t\t\tfilter.value &&\n\t\t\t\t\t\t\t! fieldValue\n\t\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(\n\t\t\t\t\t\t\t\t\tString( filter.value ).toLowerCase()\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_STARTS_WITH &&\n\t\t\t\t\tfilter?.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\ttypeof fieldValue === 'string' &&\n\t\t\t\t\t\t\tfilter.value &&\n\t\t\t\t\t\t\tfieldValue\n\t\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t\t.startsWith(\n\t\t\t\t\t\t\t\t\tString( filter.value ).toLowerCase()\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_BEFORE &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterValue = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue < filterValue;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_AFTER &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterValue = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue > filterValue;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_BEFORE_INC &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterValue = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue <= filterValue;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_AFTER_INC &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterValue = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue >= filterValue;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_BETWEEN &&\n\t\t\t\t\tArray.isArray( filter.value ) &&\n\t\t\t\t\tfilter.value.length === 2 &&\n\t\t\t\t\tfilter.value[ 0 ] !== undefined &&\n\t\t\t\t\tfilter.value[ 1 ] !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof fieldValue === 'number' ||\n\t\t\t\t\t\t\tfieldValue instanceof Date ||\n\t\t\t\t\t\t\ttypeof fieldValue === 'string'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tfieldValue >= filter.value[ 0 ] &&\n\t\t\t\t\t\t\t\tfieldValue <= filter.value[ 1 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IN_THE_PAST &&\n\t\t\t\t\tfilter.value?.value !== undefined &&\n\t\t\t\t\tfilter.value?.unit !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst targetDate = getRelativeDate(\n\t\t\t\t\t\tfilter.value.value,\n\t\t\t\t\t\tfilter.value.unit\n\t\t\t\t\t);\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tfieldValue >= targetDate && fieldValue <= new Date()\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_OVER &&\n\t\t\t\t\tfilter.value?.value !== undefined &&\n\t\t\t\t\tfilter.value?.unit !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst targetDate = getRelativeDate(\n\t\t\t\t\t\tfilter.value.value,\n\t\t\t\t\t\tfilter.value.unit\n\t\t\t\t\t);\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue < targetDate;\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Handle sorting.\n\tconst sortByField = view.sort?.field\n\t\t? _fields.find( ( field ) => {\n\t\t\t\treturn field.id === view.sort?.field;\n\t\t } )\n\t\t: null;\n\tconst groupByField = view.groupByField\n\t\t? _fields.find( ( field ) => {\n\t\t\t\treturn field.id === view.groupByField;\n\t\t } )\n\t\t: null;\n\tif ( sortByField || groupByField ) {\n\t\tfilteredData.sort( ( a, b ) => {\n\t\t\tif ( groupByField ) {\n\t\t\t\tconst groupCompare = groupByField.sort( a, b, 'asc' );\n\n\t\t\t\t// If items are in different groups, return the group comparison result.\n\t\t\t\t// Otherwise, fall back to sorting by the sort field.\n\t\t\t\tif ( groupCompare !== 0 ) {\n\t\t\t\t\treturn groupCompare;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( sortByField ) {\n\t\t\t\treturn sortByField.sort( a, b, view.sort?.direction ?? 'desc' );\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t} );\n\t}\n\n\t// Handle pagination.\n\tlet totalItems = filteredData.length;\n\tlet totalPages = 1;\n\tif ( view.page !== undefined && view.perPage !== undefined ) {\n\t\tconst start = ( view.page - 1 ) * view.perPage;\n\t\ttotalItems = filteredData?.length || 0;\n\t\ttotalPages = Math.ceil( totalItems / view.perPage );\n\t\tfilteredData = filteredData?.slice( start, start + view.perPage );\n\t}\n\n\treturn {\n\t\tdata: filteredData,\n\t\tpaginationInfo: {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t},\n\t};\n}\n"],
|
|
5
|
-
"mappings": "AAGA,OAAO,mBAAmB;AAC1B,SAAS,SAAS,UAAU,WAAW,gBAAgB;AAKvD,SAAS,eAAe;AAKxB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,OAAO,qBAAqB;AAG5B,SAAS,qBAAsB,QAAQ,IAAK;AAC3C,SAAO,cAAe,MAAM,KAAK,EAAE,YAAY,CAAE;AAClD;AAEA,
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/has-elements.ts"],
|
|
4
4
|
"sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { Field } from '../types/field-api';\n\nexport default function hasElements< Item >( field: Field< Item > ): boolean {\n\treturn (\n\t\t( Array.isArray( field.elements ) && field.elements.length > 0 ) ||\n\t\ttypeof field.getElements === 'function'\n\t);\n}\n"],
|
|
5
|
-
"mappings": "AAKe,SAAR,YAAsC,OAAgC;AAC5E,SACG,MAAM,QAAS,MAAM,QAAS,KAAK,MAAM,SAAS,SAAS,KAC7D,OAAO,MAAM,gBAAgB;AAE/B;",
|
|
5
|
+
"mappings": ";AAKe,SAAR,YAAsC,OAAgC;AAC5E,SACG,MAAM,QAAS,MAAM,QAAS,KAAK,MAAM,SAAS,SAAS,KAC7D,OAAO,MAAM,gBAAgB;AAE/B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// packages/dataviews/src/utils/normalize-fields.ts
|
|
1
2
|
import getFieldTypeDefinition from "../field-types";
|
|
2
3
|
import { getControl } from "../dataform-controls";
|
|
3
4
|
import {
|
|
@@ -6,7 +7,7 @@ import {
|
|
|
6
7
|
SINGLE_SELECTION_OPERATORS
|
|
7
8
|
} from "../constants";
|
|
8
9
|
import hasElements from "./has-elements";
|
|
9
|
-
|
|
10
|
+
var getValueFromId = (id) => ({ item }) => {
|
|
10
11
|
const path = id.split(".");
|
|
11
12
|
let value = item;
|
|
12
13
|
for (const segment of path) {
|
|
@@ -18,7 +19,7 @@ const getValueFromId = (id) => ({ item }) => {
|
|
|
18
19
|
}
|
|
19
20
|
return value;
|
|
20
21
|
};
|
|
21
|
-
|
|
22
|
+
var setValueFromId = (id) => ({ value }) => {
|
|
22
23
|
const path = id.split(".");
|
|
23
24
|
const result = {};
|
|
24
25
|
let current = result;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/normalize-fields.ts"],
|
|
4
4
|
"sourcesContent": ["/**\n * External dependencies\n */\nimport type { FunctionComponent } from 'react';\n\n/**\n * Internal dependencies\n */\nimport getFieldTypeDefinition from '../field-types';\nimport type {\n\tDataViewRenderFieldProps,\n\tField,\n\tFieldTypeDefinition,\n\tNormalizedFilterByConfig,\n\tNormalizedField,\n} from '../types';\nimport { getControl } from '../dataform-controls';\nimport {\n\tALL_OPERATORS,\n\tOPERATOR_BETWEEN,\n\tSINGLE_SELECTION_OPERATORS,\n} from '../constants';\nimport hasElements from './has-elements';\n\nconst getValueFromId =\n\t( id: string ) =>\n\t( { item }: { item: any } ) => {\n\t\tconst path = id.split( '.' );\n\t\tlet value = item;\n\t\tfor ( const segment of path ) {\n\t\t\tif ( value.hasOwnProperty( segment ) ) {\n\t\t\t\tvalue = value[ segment ];\n\t\t\t} else {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t};\n\nconst setValueFromId =\n\t( id: string ) =>\n\t( { value }: { value: any } ) => {\n\t\tconst path = id.split( '.' );\n\t\tconst result: any = {};\n\t\tlet current = result;\n\n\t\tfor ( const segment of path.slice( 0, -1 ) ) {\n\t\t\tcurrent[ segment ] = {};\n\t\t\tcurrent = current[ segment ];\n\t\t}\n\n\t\tcurrent[ path.at( -1 )! ] = value;\n\t\treturn result;\n\t};\n\nfunction getFilterBy< Item >(\n\tfield: Field< Item >,\n\tfieldTypeDefinition: FieldTypeDefinition< Item >\n): NormalizedFilterByConfig | false {\n\tif ( field.filterBy === false ) {\n\t\treturn false;\n\t}\n\n\tif ( typeof field.filterBy === 'object' ) {\n\t\tlet operators = field.filterBy.operators;\n\n\t\t// Assign default values if no operator was provided.\n\t\tif ( ! operators || ! Array.isArray( operators ) ) {\n\t\t\toperators = !! fieldTypeDefinition.filterBy\n\t\t\t\t? fieldTypeDefinition.filterBy.defaultOperators\n\t\t\t\t: [];\n\t\t}\n\n\t\t// Make sure only valid operators are included.\n\t\tlet validOperators = ALL_OPERATORS;\n\t\tif ( typeof fieldTypeDefinition.filterBy === 'object' ) {\n\t\t\tvalidOperators = fieldTypeDefinition.filterBy.validOperators;\n\t\t}\n\t\toperators = operators.filter( ( operator ) =>\n\t\t\tvalidOperators.includes( operator )\n\t\t);\n\n\t\t// The `between` operator is not supported when elements are provided.\n\t\tif ( hasElements( field ) && operators.includes( OPERATOR_BETWEEN ) ) {\n\t\t\toperators = operators.filter(\n\t\t\t\t( operator ) => operator !== OPERATOR_BETWEEN\n\t\t\t);\n\t\t}\n\n\t\t// Do not allow mixing single & multiselection operators.\n\t\t// Remove multiselection operators if any of the single selection ones is present.\n\t\tconst hasSingleSelectionOperator = operators.some( ( operator ) =>\n\t\t\tSINGLE_SELECTION_OPERATORS.includes( operator )\n\t\t);\n\t\tif ( hasSingleSelectionOperator ) {\n\t\t\toperators = operators.filter( ( operator ) =>\n\t\t\t\t// The 'Between' operator is unique as it can be combined with single selection operators.\n\t\t\t\t[ ...SINGLE_SELECTION_OPERATORS, OPERATOR_BETWEEN ].includes(\n\t\t\t\t\toperator\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t// If no operators are left at this point,\n\t\t// the filters should be disabled.\n\t\tif ( operators.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn {\n\t\t\tisPrimary: !! field.filterBy.isPrimary,\n\t\t\toperators,\n\t\t};\n\t}\n\n\tif ( fieldTypeDefinition.filterBy === false ) {\n\t\treturn false;\n\t}\n\n\tlet defaultOperators = fieldTypeDefinition.filterBy.defaultOperators;\n\t// The `between` operator is not supported when elements are provided.\n\tif (\n\t\thasElements( field ) &&\n\t\tdefaultOperators.includes( OPERATOR_BETWEEN )\n\t) {\n\t\tdefaultOperators = defaultOperators.filter(\n\t\t\t( operator ) => operator !== OPERATOR_BETWEEN\n\t\t);\n\t}\n\n\treturn {\n\t\toperators: defaultOperators,\n\t};\n}\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport default function normalizeFields< Item >(\n\tfields: Field< Item >[]\n): NormalizedField< Item >[] {\n\treturn fields.map( ( field ) => {\n\t\tconst fieldTypeDefinition = getFieldTypeDefinition< Item >(\n\t\t\tfield.type\n\t\t);\n\t\tconst getValue = field.getValue || getValueFromId( field.id );\n\t\tconst setValue = field.setValue || setValueFromId( field.id );\n\n\t\tconst sort =\n\t\t\tfield.sort ??\n\t\t\tfunction sort( a, b, direction ) {\n\t\t\t\treturn fieldTypeDefinition.sort(\n\t\t\t\t\tgetValue( { item: a } ),\n\t\t\t\t\tgetValue( { item: b } ),\n\t\t\t\t\tdirection\n\t\t\t\t);\n\t\t\t};\n\n\t\tconst isValid = {\n\t\t\t...fieldTypeDefinition.isValid,\n\t\t\t...field.isValid,\n\t\t};\n\n\t\tconst Edit = getControl( field, fieldTypeDefinition );\n\n\t\tconst render =\n\t\t\tfield.render ??\n\t\t\tfunction render( {\n\t\t\t\titem,\n\t\t\t\tfield: renderedField,\n\t\t\t}: DataViewRenderFieldProps< Item > ) {\n\t\t\t\treturn (\n\t\t\t\t\tfieldTypeDefinition.render as FunctionComponent<\n\t\t\t\t\t\tDataViewRenderFieldProps< Item >\n\t\t\t\t\t>\n\t\t\t\t )( { item, field: renderedField } );\n\t\t\t};\n\n\t\tconst filterBy = getFilterBy( field, fieldTypeDefinition );\n\n\t\treturn {\n\t\t\t...field,\n\t\t\tlabel: field.label || field.id,\n\t\t\theader: field.header || field.label || field.id,\n\t\t\tgetValue,\n\t\t\tsetValue,\n\t\t\trender,\n\t\t\tsort,\n\t\t\tisValid,\n\t\t\tEdit,\n\t\t\thasElements: hasElements( field ),\n\t\t\tenableHiding: field.enableHiding ?? true,\n\t\t\tenableSorting:\n\t\t\t\tfield.enableSorting ??\n\t\t\t\tfieldTypeDefinition.enableSorting ??\n\t\t\t\ttrue,\n\t\t\tfilterBy,\n\t\t\treadOnly: field.readOnly ?? fieldTypeDefinition.readOnly ?? false,\n\t\t};\n\t} );\n}\n"],
|
|
5
|
-
"mappings": "AAQA,OAAO,4BAA4B;AAQnC,SAAS,kBAAkB;AAC3B;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,OAAO,iBAAiB;AAExB,
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["sort", "render"]
|
|
7
7
|
}
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
}
|
|
145
145
|
.dataviews-title-field {
|
|
146
146
|
font-size: 13px;
|
|
147
|
-
font-weight:
|
|
147
|
+
font-weight: 499;
|
|
148
148
|
color: #2f2f2f;
|
|
149
149
|
text-overflow: ellipsis;
|
|
150
150
|
white-space: nowrap;
|
|
@@ -231,7 +231,7 @@
|
|
|
231
231
|
|
|
232
232
|
.dataviews-bulk-actions-footer__item-count {
|
|
233
233
|
color: #1e1e1e;
|
|
234
|
-
font-weight:
|
|
234
|
+
font-weight: 499;
|
|
235
235
|
font-size: 11px;
|
|
236
236
|
text-transform: uppercase;
|
|
237
237
|
}
|
|
@@ -332,7 +332,7 @@
|
|
|
332
332
|
box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
333
333
|
}
|
|
334
334
|
.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip .dataviews-filters-__summary-filter-text-name {
|
|
335
|
-
font-weight:
|
|
335
|
+
font-weight: 499;
|
|
336
336
|
}
|
|
337
337
|
.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove {
|
|
338
338
|
width: 24px;
|
|
@@ -800,13 +800,13 @@
|
|
|
800
800
|
}
|
|
801
801
|
.dataviews-pagination__page-select {
|
|
802
802
|
font-size: 11px;
|
|
803
|
-
font-weight:
|
|
803
|
+
font-weight: 499;
|
|
804
804
|
text-transform: uppercase;
|
|
805
805
|
}
|
|
806
806
|
@media (min-width: 600px) {
|
|
807
807
|
.dataviews-pagination__page-select .components-select-control__input {
|
|
808
808
|
font-size: 11px !important;
|
|
809
|
-
font-weight:
|
|
809
|
+
font-weight: 499;
|
|
810
810
|
}
|
|
811
811
|
}
|
|
812
812
|
|
|
@@ -1116,7 +1116,7 @@
|
|
|
1116
1116
|
|
|
1117
1117
|
.dataviews-view-grid__group-header {
|
|
1118
1118
|
font-size: 15px;
|
|
1119
|
-
font-weight:
|
|
1119
|
+
font-weight: 499;
|
|
1120
1120
|
color: #1e1e1e;
|
|
1121
1121
|
margin: 0 0 8px 0;
|
|
1122
1122
|
padding: 0 48px;
|
|
@@ -1317,7 +1317,7 @@ div.dataviews-view-list {
|
|
|
1317
1317
|
|
|
1318
1318
|
.dataviews-view-list__group-header {
|
|
1319
1319
|
font-size: 15px;
|
|
1320
|
-
font-weight:
|
|
1320
|
+
font-weight: 499;
|
|
1321
1321
|
color: #1e1e1e;
|
|
1322
1322
|
margin: 0 0 8px 0;
|
|
1323
1323
|
padding: 0 24px;
|
|
@@ -1452,7 +1452,7 @@ div.dataviews-view-list {
|
|
|
1452
1452
|
padding-right: 12px;
|
|
1453
1453
|
font-size: 11px;
|
|
1454
1454
|
text-transform: uppercase;
|
|
1455
|
-
font-weight:
|
|
1455
|
+
font-weight: 499;
|
|
1456
1456
|
}
|
|
1457
1457
|
.dataviews-view-table thead th:has(.dataviews-view-table-header-button):not(:first-child) {
|
|
1458
1458
|
padding-right: 4px;
|
|
@@ -1478,7 +1478,7 @@ div.dataviews-view-list {
|
|
|
1478
1478
|
padding: 4px 8px;
|
|
1479
1479
|
font-size: 11px;
|
|
1480
1480
|
text-transform: uppercase;
|
|
1481
|
-
font-weight:
|
|
1481
|
+
font-weight: 499;
|
|
1482
1482
|
}
|
|
1483
1483
|
.dataviews-view-table .dataviews-view-table-header-button:not(:hover) {
|
|
1484
1484
|
color: #1e1e1e;
|
|
@@ -1566,7 +1566,7 @@ div.dataviews-view-list {
|
|
|
1566
1566
|
}
|
|
1567
1567
|
|
|
1568
1568
|
.dataviews-view-table__group-header-row .dataviews-view-table__group-header-cell {
|
|
1569
|
-
font-weight:
|
|
1569
|
+
font-weight: 499;
|
|
1570
1570
|
padding: 12px 48px;
|
|
1571
1571
|
color: #1e1e1e;
|
|
1572
1572
|
}
|
|
@@ -1702,7 +1702,7 @@ div.dataviews-view-list {
|
|
|
1702
1702
|
|
|
1703
1703
|
.dataviews-view-picker-grid-group__header {
|
|
1704
1704
|
font-size: 15px;
|
|
1705
|
-
font-weight:
|
|
1705
|
+
font-weight: 499;
|
|
1706
1706
|
color: #1e1e1e;
|
|
1707
1707
|
margin: 0 0 8px 0;
|
|
1708
1708
|
padding: 0 48px;
|
|
@@ -1818,7 +1818,7 @@ div.dataviews-view-list {
|
|
|
1818
1818
|
|
|
1819
1819
|
.dataforms-layouts-card__field-header-label {
|
|
1820
1820
|
font-family: -apple-system, "system-ui", "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
|
1821
|
-
font-weight:
|
|
1821
|
+
font-weight: 499;
|
|
1822
1822
|
font-size: 15px;
|
|
1823
1823
|
line-height: 20px;
|
|
1824
1824
|
}
|
package/build-style/style.css
CHANGED
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
}
|
|
145
145
|
.dataviews-title-field {
|
|
146
146
|
font-size: 13px;
|
|
147
|
-
font-weight:
|
|
147
|
+
font-weight: 499;
|
|
148
148
|
color: #2f2f2f;
|
|
149
149
|
text-overflow: ellipsis;
|
|
150
150
|
white-space: nowrap;
|
|
@@ -231,7 +231,7 @@
|
|
|
231
231
|
|
|
232
232
|
.dataviews-bulk-actions-footer__item-count {
|
|
233
233
|
color: #1e1e1e;
|
|
234
|
-
font-weight:
|
|
234
|
+
font-weight: 499;
|
|
235
235
|
font-size: 11px;
|
|
236
236
|
text-transform: uppercase;
|
|
237
237
|
}
|
|
@@ -332,7 +332,7 @@
|
|
|
332
332
|
box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
333
333
|
}
|
|
334
334
|
.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip .dataviews-filters-__summary-filter-text-name {
|
|
335
|
-
font-weight:
|
|
335
|
+
font-weight: 499;
|
|
336
336
|
}
|
|
337
337
|
.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove {
|
|
338
338
|
width: 24px;
|
|
@@ -800,13 +800,13 @@
|
|
|
800
800
|
}
|
|
801
801
|
.dataviews-pagination__page-select {
|
|
802
802
|
font-size: 11px;
|
|
803
|
-
font-weight:
|
|
803
|
+
font-weight: 499;
|
|
804
804
|
text-transform: uppercase;
|
|
805
805
|
}
|
|
806
806
|
@media (min-width: 600px) {
|
|
807
807
|
.dataviews-pagination__page-select .components-select-control__input {
|
|
808
808
|
font-size: 11px !important;
|
|
809
|
-
font-weight:
|
|
809
|
+
font-weight: 499;
|
|
810
810
|
}
|
|
811
811
|
}
|
|
812
812
|
|
|
@@ -1116,7 +1116,7 @@
|
|
|
1116
1116
|
|
|
1117
1117
|
.dataviews-view-grid__group-header {
|
|
1118
1118
|
font-size: 15px;
|
|
1119
|
-
font-weight:
|
|
1119
|
+
font-weight: 499;
|
|
1120
1120
|
color: #1e1e1e;
|
|
1121
1121
|
margin: 0 0 8px 0;
|
|
1122
1122
|
padding: 0 48px;
|
|
@@ -1317,7 +1317,7 @@ div.dataviews-view-list {
|
|
|
1317
1317
|
|
|
1318
1318
|
.dataviews-view-list__group-header {
|
|
1319
1319
|
font-size: 15px;
|
|
1320
|
-
font-weight:
|
|
1320
|
+
font-weight: 499;
|
|
1321
1321
|
color: #1e1e1e;
|
|
1322
1322
|
margin: 0 0 8px 0;
|
|
1323
1323
|
padding: 0 24px;
|
|
@@ -1452,7 +1452,7 @@ div.dataviews-view-list {
|
|
|
1452
1452
|
padding-left: 12px;
|
|
1453
1453
|
font-size: 11px;
|
|
1454
1454
|
text-transform: uppercase;
|
|
1455
|
-
font-weight:
|
|
1455
|
+
font-weight: 499;
|
|
1456
1456
|
}
|
|
1457
1457
|
.dataviews-view-table thead th:has(.dataviews-view-table-header-button):not(:first-child) {
|
|
1458
1458
|
padding-left: 4px;
|
|
@@ -1478,7 +1478,7 @@ div.dataviews-view-list {
|
|
|
1478
1478
|
padding: 4px 8px;
|
|
1479
1479
|
font-size: 11px;
|
|
1480
1480
|
text-transform: uppercase;
|
|
1481
|
-
font-weight:
|
|
1481
|
+
font-weight: 499;
|
|
1482
1482
|
}
|
|
1483
1483
|
.dataviews-view-table .dataviews-view-table-header-button:not(:hover) {
|
|
1484
1484
|
color: #1e1e1e;
|
|
@@ -1566,7 +1566,7 @@ div.dataviews-view-list {
|
|
|
1566
1566
|
}
|
|
1567
1567
|
|
|
1568
1568
|
.dataviews-view-table__group-header-row .dataviews-view-table__group-header-cell {
|
|
1569
|
-
font-weight:
|
|
1569
|
+
font-weight: 499;
|
|
1570
1570
|
padding: 12px 48px;
|
|
1571
1571
|
color: #1e1e1e;
|
|
1572
1572
|
}
|
|
@@ -1702,7 +1702,7 @@ div.dataviews-view-list {
|
|
|
1702
1702
|
|
|
1703
1703
|
.dataviews-view-picker-grid-group__header {
|
|
1704
1704
|
font-size: 15px;
|
|
1705
|
-
font-weight:
|
|
1705
|
+
font-weight: 499;
|
|
1706
1706
|
color: #1e1e1e;
|
|
1707
1707
|
margin: 0 0 8px 0;
|
|
1708
1708
|
padding: 0 48px;
|
|
@@ -1818,7 +1818,7 @@ div.dataviews-view-list {
|
|
|
1818
1818
|
|
|
1819
1819
|
.dataforms-layouts-card__field-header-label {
|
|
1820
1820
|
font-family: -apple-system, "system-ui", "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
|
1821
|
-
font-weight:
|
|
1821
|
+
font-weight: 499;
|
|
1822
1822
|
font-size: 15px;
|
|
1823
1823
|
line-height: 20px;
|
|
1824
1824
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dataform/index.tsx"],"names":[],"mappings":"AAKA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dataform/index.tsx"],"names":[],"mappings":"AAKA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAE,IAAI,EAAI,EACzC,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,QAAQ,GACR,EAAE,aAAa,CAAE,IAAI,CAAE,sCAqBvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/components/dataviews-filters/filter.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAmDvC,OAAO,KAAK,EAEX,eAAe,EACf,gBAAgB,EAGhB,IAAI,EACJ,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/components/dataviews-filters/filter.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAmDvC,OAAO,KAAK,EAEX,eAAe,EACf,gBAAgB,EAGhB,IAAI,EACJ,MAAM,aAAa,CAAC;AAUrB,UAAU,qBAAqB;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,YAAY,EAAE,CAAE,IAAI,EAAE,IAAI,KAAM,IAAI,CAAC;CACrC;AAED,UAAU,WAAY,SAAQ,qBAAqB;IAClD,YAAY,EAAE,SAAS,CAAE,iBAAiB,CAAE,CAAC;IAC7C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,eAAe,CAAE,GAAG,CAAE,EAAE,CAAC;CACjC;AAoYD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAE,EAC/B,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,GAAG,WAAW,EACd,EAAE,WAAW,+BA8Jb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dataviews-item-actions/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAc/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAO9C,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,aAAa,CAAC;AAI1E,MAAM,WAAW,kBAAkB,CAAE,IAAI;IACxC,MAAM,EAAE,MAAM,CAAE,IAAI,CAAE,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB,CAAE,IAAI;IACtC,MAAM,EAAE,eAAe,CAAE,IAAI,CAAE,CAAC;IAChC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,UAAU,qBAAqB,CAAE,IAAI;IACpC,OAAO,EAAE,MAAM,CAAE,IAAI,CAAE,EAAE,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,UAAU,CAAE,OAAO,WAAW,CAAE,CAAC;IAC3C,oBAAoB,EAAE,CAAE,MAAM,EAAE,eAAe,CAAE,IAAI,CAAE,GAAG,IAAI,KAAM,IAAI,CAAC;CACzE;AAED,UAAU,gBAAgB,CAAE,IAAI;IAC/B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAE,IAAI,CAAE,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAgDD,wBAAgB,WAAW,CAAE,IAAI,EAAI,EACpC,MAAM,EACN,KAAK,EACL,UAAU,GACV,EAAE,gBAAgB,CAAE,IAAI,CAAE,+BAsB1B;AAED,wBAAgB,gBAAgB,CAAE,IAAI,EAAI,EACzC,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,oBAAoB,GACpB,EAAE,qBAAqB,CAAE,IAAI,CAAE,+
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dataviews-item-actions/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAc/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAO9C,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,aAAa,CAAC;AAI1E,MAAM,WAAW,kBAAkB,CAAE,IAAI;IACxC,MAAM,EAAE,MAAM,CAAE,IAAI,CAAE,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB,CAAE,IAAI;IACtC,MAAM,EAAE,eAAe,CAAE,IAAI,CAAE,CAAC;IAChC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,UAAU,qBAAqB,CAAE,IAAI;IACpC,OAAO,EAAE,MAAM,CAAE,IAAI,CAAE,EAAE,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,UAAU,CAAE,OAAO,WAAW,CAAE,CAAC;IAC3C,oBAAoB,EAAE,CAAE,MAAM,EAAE,eAAe,CAAE,IAAI,CAAE,GAAG,IAAI,KAAM,IAAI,CAAC;CACzE;AAED,UAAU,gBAAgB,CAAE,IAAI;IAC/B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAE,IAAI,CAAE,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAgDD,wBAAgB,WAAW,CAAE,IAAI,EAAI,EACpC,MAAM,EACN,KAAK,EACL,UAAU,GACV,EAAE,gBAAgB,CAAE,IAAI,CAAE,+BAsB1B;AAED,wBAAgB,gBAAgB,CAAE,IAAI,EAAI,EACzC,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,oBAAoB,GACpB,EAAE,qBAAqB,CAAE,IAAI,CAAE,+BA0C/B;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAE,IAAI,EAAI,EAC5C,IAAI,EACJ,OAAO,EACP,SAAS,GACT,EAAE,gBAAgB,CAAE,IAAI,CAAE,+BAoD1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../src/dataform-controls/datetime.tsx"],"names":[],"mappings":"AAiBA;;GAEG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../src/dataform-controls/datetime.tsx"],"names":[],"mappings":"AAiBA;;GAEG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAuLrD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAE,IAAI,EAAI,EACzC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,mBAAmB,EACnB,QAAQ,EACR,QAAQ,GACR,EAAE,oBAAoB,CAAE,IAAI,CAAE,+BAuB9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/dataform-controls/password.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/dataform-controls/password.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAE,IAAI,EAAI,EACzC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,mBAAmB,EACnB,QAAQ,GACR,EAAE,oBAAoB,CAAE,IAAI,CAAE,+BAiC9B"}
|