@wordpress/dataviews 9.1.1-next.f56bd8138.0 → 10.0.1-next.47f435fc9.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 +41 -1
- package/README.md +43 -30
- package/build/components/dataform/index.js +42 -27
- package/build/components/dataform/index.js.map +7 -1
- package/build/components/dataform-context/index.js +33 -25
- package/build/components/dataform-context/index.js.map +7 -1
- package/build/components/dataviews/index.js +193 -156
- package/build/components/dataviews/index.js.map +7 -1
- package/build/components/dataviews-bulk-actions/index.js +264 -155
- package/build/components/dataviews-bulk-actions/index.js.map +7 -1
- package/build/components/dataviews-context/index.js +40 -36
- package/build/components/dataviews-context/index.js.map +7 -1
- package/build/components/dataviews-filters/add-filter.js +78 -73
- package/build/components/dataviews-filters/add-filter.js.map +7 -1
- package/build/components/dataviews-filters/filter.js +467 -262
- package/build/components/dataviews-filters/filter.js.map +7 -1
- package/build/components/dataviews-filters/filters-toggled.js +46 -0
- package/build/components/dataviews-filters/filters-toggled.js.map +7 -0
- package/build/components/dataviews-filters/filters.js +101 -0
- package/build/components/dataviews-filters/filters.js.map +7 -0
- package/build/components/dataviews-filters/index.js +46 -197
- package/build/components/dataviews-filters/index.js.map +7 -1
- package/build/components/dataviews-filters/input-widget.js +88 -89
- package/build/components/dataviews-filters/input-widget.js.map +7 -1
- package/build/components/dataviews-filters/reset-filters.js +50 -34
- package/build/components/dataviews-filters/reset-filters.js.map +7 -1
- package/build/components/dataviews-filters/search-widget.js +290 -205
- package/build/components/dataviews-filters/search-widget.js.map +7 -1
- package/build/components/dataviews-filters/toggle.js +124 -0
- package/build/components/dataviews-filters/toggle.js.map +7 -0
- package/build/components/dataviews-filters/use-filters.js +72 -0
- package/build/components/dataviews-filters/use-filters.js.map +7 -0
- package/build/components/dataviews-filters/utils.js +26 -10
- package/build/components/dataviews-filters/utils.js.map +7 -1
- package/build/components/dataviews-footer/index.js +54 -33
- package/build/components/dataviews-footer/index.js.map +7 -1
- package/build/components/dataviews-item-actions/index.js +187 -150
- package/build/components/dataviews-item-actions/index.js.map +7 -1
- package/build/components/dataviews-layout/index.js +64 -49
- package/build/components/dataviews-layout/index.js.map +7 -1
- package/build/components/dataviews-pagination/index.js +143 -99
- package/build/components/dataviews-pagination/index.js.map +7 -1
- package/build/components/dataviews-picker/footer.js +152 -101
- package/build/components/dataviews-picker/footer.js.map +7 -1
- package/build/components/dataviews-picker/index.js +173 -147
- package/build/components/dataviews-picker/index.js.map +7 -1
- package/build/components/dataviews-search/index.js +63 -46
- package/build/components/dataviews-search/index.js.map +7 -1
- package/build/components/dataviews-selection-checkbox/index.js +45 -35
- package/build/components/dataviews-selection-checkbox/index.js.map +7 -1
- package/build/components/dataviews-view-config/index.js +587 -512
- package/build/components/dataviews-view-config/index.js.map +7 -1
- package/build/components/dataviews-view-config/infinite-scroll-toggle.js +56 -39
- package/build/components/dataviews-view-config/infinite-scroll-toggle.js.map +7 -1
- package/build/constants.js +215 -108
- package/build/constants.js.map +7 -1
- package/build/dataform-controls/array.js +152 -141
- package/build/dataform-controls/array.js.map +7 -1
- package/build/dataform-controls/checkbox.js +79 -65
- package/build/dataform-controls/checkbox.js.map +7 -1
- package/build/dataform-controls/color.js +135 -118
- package/build/dataform-controls/color.js.map +7 -1
- package/build/dataform-controls/date.js +549 -350
- package/build/dataform-controls/date.js.map +7 -1
- package/build/dataform-controls/datetime.js +212 -146
- package/build/dataform-controls/datetime.js.map +7 -1
- package/build/dataform-controls/email.js +49 -31
- package/build/dataform-controls/email.js.map +7 -1
- package/build/dataform-controls/index.js +82 -63
- package/build/dataform-controls/index.js.map +7 -1
- package/build/dataform-controls/integer.js +36 -129
- package/build/dataform-controls/integer.js.map +7 -1
- package/build/dataform-controls/number.js +39 -0
- package/build/dataform-controls/number.js.map +7 -0
- package/build/dataform-controls/password.js +63 -37
- package/build/dataform-controls/password.js.map +7 -1
- package/build/dataform-controls/radio.js +82 -66
- package/build/dataform-controls/radio.js.map +7 -1
- package/build/dataform-controls/select.js +86 -87
- package/build/dataform-controls/select.js.map +7 -1
- package/build/dataform-controls/telephone.js +49 -31
- package/build/dataform-controls/telephone.js.map +7 -1
- package/build/dataform-controls/text.js +49 -29
- package/build/dataform-controls/text.js.map +7 -1
- package/build/dataform-controls/textarea.js +85 -70
- package/build/dataform-controls/textarea.js.map +7 -1
- package/build/dataform-controls/toggle-group.js +95 -70
- package/build/dataform-controls/toggle-group.js.map +7 -1
- package/build/dataform-controls/toggle.js +80 -66
- package/build/dataform-controls/toggle.js.map +7 -1
- package/build/dataform-controls/url.js +49 -31
- package/build/dataform-controls/url.js.map +7 -1
- package/build/dataform-controls/utils/relative-date-control.js +122 -0
- package/build/dataform-controls/utils/relative-date-control.js.map +7 -0
- package/build/dataform-controls/utils/validated-input.js +90 -70
- package/build/dataform-controls/utils/validated-input.js.map +7 -1
- package/build/dataform-controls/utils/validated-number.js +191 -0
- package/build/dataform-controls/utils/validated-number.js.map +7 -0
- package/build/dataform-layouts/card/index.js +214 -0
- package/build/dataform-layouts/card/index.js.map +7 -0
- package/build/dataform-layouts/data-form-layout.js +89 -0
- package/build/dataform-layouts/data-form-layout.js.map +7 -0
- package/build/dataform-layouts/get-summary-fields.js +45 -0
- package/build/dataform-layouts/get-summary-fields.js.map +7 -0
- package/build/dataform-layouts/index.js +99 -0
- package/build/dataform-layouts/index.js.map +7 -0
- package/build/dataform-layouts/is-combined-field.js +31 -0
- package/build/dataform-layouts/is-combined-field.js.map +7 -0
- package/build/dataform-layouts/normalize-form-fields.js +104 -0
- package/build/dataform-layouts/normalize-form-fields.js.map +7 -0
- package/build/dataform-layouts/panel/dropdown.js +147 -0
- package/build/dataform-layouts/panel/dropdown.js.map +7 -0
- package/build/dataform-layouts/panel/index.js +150 -0
- package/build/dataform-layouts/panel/index.js.map +7 -0
- package/build/dataform-layouts/panel/modal.js +166 -0
- package/build/dataform-layouts/panel/modal.js.map +7 -0
- package/build/dataform-layouts/panel/summary-button.js +93 -0
- package/build/dataform-layouts/panel/summary-button.js.map +7 -0
- package/build/dataform-layouts/regular/index.js +135 -0
- package/build/dataform-layouts/regular/index.js.map +7 -0
- package/build/dataform-layouts/row/index.js +116 -0
- package/build/dataform-layouts/row/index.js.map +7 -0
- package/build/dataviews-layouts/grid/index.js +337 -278
- package/build/dataviews-layouts/grid/index.js.map +7 -1
- package/build/dataviews-layouts/grid/preview-size-picker.js +94 -69
- package/build/dataviews-layouts/grid/preview-size-picker.js.map +7 -1
- package/build/dataviews-layouts/index.js +75 -48
- package/build/dataviews-layouts/index.js.map +7 -1
- package/build/dataviews-layouts/list/index.js +441 -354
- package/build/dataviews-layouts/list/index.js.map +7 -1
- package/build/dataviews-layouts/picker-grid/index.js +366 -297
- package/build/dataviews-layouts/picker-grid/index.js.map +7 -1
- package/build/dataviews-layouts/table/column-header-menu.js +144 -133
- package/build/dataviews-layouts/table/column-header-menu.js.map +7 -1
- package/build/dataviews-layouts/table/column-primary.js +86 -66
- package/build/dataviews-layouts/table/column-primary.js.map +7 -1
- package/build/dataviews-layouts/table/density-picker.js +86 -46
- package/build/dataviews-layouts/table/density-picker.js.map +7 -1
- package/build/dataviews-layouts/table/index.js +354 -319
- package/build/dataviews-layouts/table/index.js.map +7 -1
- package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js +55 -47
- package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +7 -1
- package/build/dataviews-layouts/utils/get-data-by-group.js +24 -13
- package/build/dataviews-layouts/utils/get-data-by-group.js.map +7 -1
- package/build/dataviews-layouts/utils/grid-items.js +51 -34
- package/build/dataviews-layouts/utils/grid-items.js.map +7 -1
- package/build/dataviews-layouts/utils/item-click-wrapper.js +53 -31
- package/build/dataviews-layouts/utils/item-click-wrapper.js.map +7 -1
- package/build/dataviews-layouts/utils/preview-size-picker.js +94 -69
- package/build/dataviews-layouts/utils/preview-size-picker.js.map +7 -1
- package/build/field-types/array.js +46 -41
- package/build/field-types/array.js.map +7 -1
- package/build/field-types/boolean.js +50 -46
- package/build/field-types/boolean.js.map +7 -1
- package/build/field-types/color.js +78 -80
- package/build/field-types/color.js.map +7 -1
- package/build/field-types/date.js +67 -47
- package/build/field-types/date.js.map +7 -1
- package/build/field-types/datetime.js +61 -43
- package/build/field-types/datetime.js.map +7 -1
- package/build/field-types/email.js +57 -47
- package/build/field-types/email.js.map +7 -1
- package/build/field-types/index.js +83 -89
- package/build/field-types/index.js.map +7 -1
- package/build/field-types/integer.js +67 -45
- package/build/field-types/integer.js.map +7 -1
- package/build/field-types/media.js +25 -27
- package/build/field-types/media.js.map +7 -1
- package/build/field-types/number.js +86 -0
- package/build/field-types/number.js.map +7 -0
- package/build/field-types/password.js +39 -39
- package/build/field-types/password.js.map +7 -1
- package/build/field-types/telephone.js +54 -45
- package/build/field-types/telephone.js.map +7 -1
- package/build/field-types/text.js +54 -46
- package/build/field-types/text.js.map +7 -1
- package/build/field-types/url.js +54 -45
- package/build/field-types/url.js.map +7 -1
- package/build/field-types/utils/render-from-elements.js +31 -0
- package/build/field-types/utils/render-from-elements.js.map +7 -0
- package/build/index.js +50 -45
- package/build/index.js.map +7 -1
- package/build/lock-unlock.js +31 -14
- package/build/lock-unlock.js.map +7 -1
- package/build/types/dataform.js +17 -0
- package/build/types/dataform.js.map +7 -0
- package/build/types/dataviews.js +17 -0
- package/build/types/dataviews.js.map +7 -0
- package/build/types/field-api.js +17 -0
- package/build/types/field-api.js.map +7 -0
- package/build/types/index.js +17 -0
- package/build/types/index.js.map +7 -0
- package/build/types/private.js +17 -0
- package/build/types/private.js.map +7 -0
- package/build/utils/filter-sort-and-paginate.js +285 -0
- package/build/utils/filter-sort-and-paginate.js.map +7 -0
- package/build/utils/is-item-valid.js +75 -0
- package/build/utils/is-item-valid.js.map +7 -0
- package/build/utils/normalize-fields.js +158 -0
- package/build/utils/normalize-fields.js.map +7 -0
- package/build-module/components/dataform/index.js +15 -24
- package/build-module/components/dataform/index.js.map +7 -1
- package/build-module/components/dataform-context/index.js +11 -19
- package/build-module/components/dataform-context/index.js.map +7 -1
- package/build-module/components/dataviews/index.js +156 -131
- package/build-module/components/dataviews/index.js.map +7 -1
- package/build-module/components/dataviews-bulk-actions/index.js +227 -140
- package/build-module/components/dataviews-bulk-actions/index.js.map +7 -1
- package/build-module/components/dataviews-context/index.js +20 -30
- package/build-module/components/dataviews-context/index.js.map +7 -1
- package/build-module/components/dataviews-filters/add-filter.js +60 -68
- package/build-module/components/dataviews-filters/add-filter.js.map +7 -1
- package/build-module/components/dataviews-filters/filter.js +448 -231
- package/build-module/components/dataviews-filters/filter.js.map +7 -1
- package/build-module/components/dataviews-filters/filters-toggled.js +16 -0
- package/build-module/components/dataviews-filters/filters-toggled.js.map +7 -0
- package/build-module/components/dataviews-filters/filters.js +71 -0
- package/build-module/components/dataviews-filters/filters.js.map +7 -0
- package/build-module/components/dataviews-filters/index.js +11 -187
- package/build-module/components/dataviews-filters/index.js.map +7 -1
- package/build-module/components/dataviews-filters/input-widget.js +57 -81
- package/build-module/components/dataviews-filters/input-widget.js.map +7 -1
- package/build-module/components/dataviews-filters/reset-filters.js +33 -30
- package/build-module/components/dataviews-filters/reset-filters.js.map +7 -1
- package/build-module/components/dataviews-filters/search-widget.js +260 -195
- package/build-module/components/dataviews-filters/search-widget.js.map +7 -1
- package/build-module/components/dataviews-filters/toggle.js +94 -0
- package/build-module/components/dataviews-filters/toggle.js.map +7 -0
- package/build-module/components/dataviews-filters/use-filters.js +52 -0
- package/build-module/components/dataviews-filters/use-filters.js.map +7 -0
- package/build-module/components/dataviews-filters/utils.js +5 -6
- package/build-module/components/dataviews-filters/utils.js.map +7 -1
- package/build-module/components/dataviews-footer/index.js +28 -26
- package/build-module/components/dataviews-footer/index.js.map +7 -1
- package/build-module/components/dataviews-item-actions/index.js +170 -144
- package/build-module/components/dataviews-item-actions/index.js.map +7 -1
- package/build-module/components/dataviews-layout/index.js +35 -42
- package/build-module/components/dataviews-layout/index.js.map +7 -1
- package/build-module/components/dataviews-pagination/index.js +115 -92
- package/build-module/components/dataviews-pagination/index.js.map +7 -1
- package/build-module/components/dataviews-picker/footer.js +122 -93
- package/build-module/components/dataviews-picker/footer.js.map +7 -1
- package/build-module/components/dataviews-picker/index.js +139 -125
- package/build-module/components/dataviews-picker/index.js.map +7 -1
- package/build-module/components/dataviews-search/index.js +30 -35
- package/build-module/components/dataviews-search/index.js.map +7 -1
- package/build-module/components/dataviews-selection-checkbox/index.js +28 -31
- package/build-module/components/dataviews-selection-checkbox/index.js.map +7 -1
- package/build-module/components/dataviews-view-config/index.js +579 -504
- package/build-module/components/dataviews-view-config/index.js.map +7 -1
- package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js +28 -33
- package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js.map +7 -1
- package/build-module/constants.js +157 -101
- package/build-module/constants.js.map +7 -1
- package/build-module/dataform-controls/array.js +125 -137
- package/build-module/dataform-controls/array.js.map +7 -1
- package/build-module/dataform-controls/checkbox.js +51 -60
- package/build-module/dataform-controls/checkbox.js.map +7 -1
- package/build-module/dataform-controls/color.js +112 -114
- package/build-module/dataform-controls/color.js.map +7 -1
- package/build-module/dataform-controls/date.js +541 -337
- package/build-module/dataform-controls/date.js.map +7 -1
- package/build-module/dataform-controls/datetime.js +184 -136
- package/build-module/dataform-controls/datetime.js.map +7 -1
- package/build-module/dataform-controls/email.js +25 -27
- package/build-module/dataform-controls/email.js.map +7 -1
- package/build-module/dataform-controls/index.js +35 -43
- package/build-module/dataform-controls/index.js.map +7 -1
- package/build-module/dataform-controls/integer.js +8 -123
- package/build-module/dataform-controls/integer.js.map +7 -1
- package/build-module/dataform-controls/number.js +9 -0
- package/build-module/dataform-controls/number.js.map +7 -0
- package/build-module/dataform-controls/password.js +34 -29
- package/build-module/dataform-controls/password.js.map +7 -1
- package/build-module/dataform-controls/radio.js +55 -62
- package/build-module/dataform-controls/radio.js.map +7 -1
- package/build-module/dataform-controls/select.js +59 -83
- package/build-module/dataform-controls/select.js.map +7 -1
- package/build-module/dataform-controls/telephone.js +25 -27
- package/build-module/dataform-controls/telephone.js.map +7 -1
- package/build-module/dataform-controls/text.js +22 -25
- package/build-module/dataform-controls/text.js.map +7 -1
- package/build-module/dataform-controls/textarea.js +58 -66
- package/build-module/dataform-controls/textarea.js.map +7 -1
- package/build-module/dataform-controls/toggle-group.js +71 -66
- package/build-module/dataform-controls/toggle-group.js.map +7 -1
- package/build-module/dataform-controls/toggle.js +52 -61
- package/build-module/dataform-controls/toggle.js.map +7 -1
- package/build-module/dataform-controls/url.js +25 -27
- package/build-module/dataform-controls/url.js.map +7 -1
- package/build-module/dataform-controls/utils/relative-date-control.js +97 -0
- package/build-module/dataform-controls/utils/relative-date-control.js.map +7 -0
- package/build-module/dataform-controls/utils/validated-input.js +63 -66
- package/build-module/dataform-controls/utils/validated-input.js.map +7 -1
- package/build-module/dataform-controls/utils/validated-number.js +166 -0
- package/build-module/dataform-controls/utils/validated-number.js.map +7 -0
- package/build-module/dataform-layouts/card/index.js +180 -0
- package/build-module/dataform-layouts/card/index.js.map +7 -0
- package/build-module/dataform-layouts/data-form-layout.js +55 -0
- package/build-module/dataform-layouts/data-form-layout.js.map +7 -0
- package/build-module/dataform-layouts/get-summary-fields.js +21 -0
- package/build-module/dataform-layouts/get-summary-fields.js.map +7 -0
- package/build-module/dataform-layouts/index.js +68 -0
- package/build-module/dataform-layouts/index.js.map +7 -0
- package/build-module/dataform-layouts/is-combined-field.js +7 -0
- package/build-module/dataform-layouts/is-combined-field.js.map +7 -0
- package/build-module/dataform-layouts/normalize-form-fields.js +79 -0
- package/build-module/dataform-layouts/normalize-form-fields.js.map +7 -0
- package/build-module/dataform-layouts/panel/dropdown.js +124 -0
- package/build-module/dataform-layouts/panel/dropdown.js.map +7 -0
- package/build-module/dataform-layouts/panel/index.js +123 -0
- package/build-module/dataform-layouts/panel/index.js.map +7 -0
- package/build-module/dataform-layouts/panel/modal.js +141 -0
- package/build-module/dataform-layouts/panel/modal.js.map +7 -0
- package/build-module/dataform-layouts/panel/summary-button.js +73 -0
- package/build-module/dataform-layouts/panel/summary-button.js.map +7 -0
- package/build-module/dataform-layouts/regular/index.js +111 -0
- package/build-module/dataform-layouts/regular/index.js.map +7 -0
- package/build-module/dataform-layouts/row/index.js +91 -0
- package/build-module/dataform-layouts/row/index.js.map +7 -0
- package/build-module/dataviews-layouts/grid/index.js +316 -267
- package/build-module/dataviews-layouts/grid/index.js.map +7 -1
- package/build-module/dataviews-layouts/grid/preview-size-picker.js +66 -63
- package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +7 -1
- package/build-module/dataviews-layouts/index.js +53 -42
- package/build-module/dataviews-layouts/index.js.map +7 -1
- package/build-module/dataviews-layouts/list/index.js +422 -339
- package/build-module/dataviews-layouts/list/index.js.map +7 -1
- package/build-module/dataviews-layouts/picker-grid/index.js +344 -288
- package/build-module/dataviews-layouts/picker-grid/index.js.map +7 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +129 -127
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +7 -1
- package/build-module/dataviews-layouts/table/column-primary.js +71 -62
- package/build-module/dataviews-layouts/table/column-primary.js.map +7 -1
- package/build-module/dataviews-layouts/table/density-picker.js +61 -40
- package/build-module/dataviews-layouts/table/density-picker.js.map +7 -1
- package/build-module/dataviews-layouts/table/index.js +326 -302
- package/build-module/dataviews-layouts/table/index.js.map +7 -1
- package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js +31 -40
- package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +7 -1
- package/build-module/dataviews-layouts/utils/get-data-by-group.js +7 -10
- package/build-module/dataviews-layouts/utils/get-data-by-group.js.map +7 -1
- package/build-module/dataviews-layouts/utils/grid-items.js +19 -28
- package/build-module/dataviews-layouts/utils/grid-items.js.map +7 -1
- package/build-module/dataviews-layouts/utils/item-click-wrapper.js +32 -28
- package/build-module/dataviews-layouts/utils/item-click-wrapper.js.map +7 -1
- package/build-module/dataviews-layouts/utils/preview-size-picker.js +66 -63
- package/build-module/dataviews-layouts/utils/preview-size-picker.js.map +7 -1
- package/build-module/field-types/array.js +32 -37
- package/build-module/field-types/array.js.map +7 -1
- package/build-module/field-types/boolean.js +20 -40
- package/build-module/field-types/boolean.js.map +7 -1
- package/build-module/field-types/color.js +50 -71
- package/build-module/field-types/color.js.map +7 -1
- package/build-module/field-types/date.js +49 -43
- package/build-module/field-types/date.js.map +7 -1
- package/build-module/field-types/datetime.js +42 -39
- package/build-module/field-types/datetime.js.map +7 -1
- package/build-module/field-types/email.js +38 -42
- package/build-module/field-types/email.js.map +7 -1
- package/build-module/field-types/index.js +42 -72
- package/build-module/field-types/index.js.map +7 -1
- package/build-module/field-types/integer.js +51 -41
- package/build-module/field-types/integer.js.map +7 -1
- package/build-module/field-types/media.js +7 -23
- package/build-module/field-types/media.js.map +7 -1
- package/build-module/field-types/number.js +78 -0
- package/build-module/field-types/number.js.map +7 -0
- package/build-module/field-types/password.js +11 -36
- package/build-module/field-types/password.js.map +7 -1
- package/build-module/field-types/telephone.js +35 -40
- package/build-module/field-types/telephone.js.map +7 -1
- package/build-module/field-types/text.js +35 -41
- package/build-module/field-types/text.js.map +7 -1
- package/build-module/field-types/url.js +35 -40
- package/build-module/field-types/url.js.map +7 -1
- package/build-module/field-types/utils/render-from-elements.js +11 -0
- package/build-module/field-types/utils/render-from-elements.js.map +7 -0
- package/build-module/index.js +15 -7
- package/build-module/index.js.map +7 -1
- package/build-module/lock-unlock.js +8 -7
- package/build-module/lock-unlock.js.map +7 -1
- package/build-module/types/dataform.js +1 -0
- package/build-module/types/dataform.js.map +7 -0
- package/build-module/types/dataviews.js +1 -0
- package/build-module/types/dataviews.js.map +7 -0
- package/build-module/types/field-api.js +1 -0
- package/build-module/types/field-api.js.map +7 -0
- package/build-module/types/index.js +1 -0
- package/build-module/types/index.js.map +7 -0
- package/build-module/types/private.js +1 -0
- package/build-module/types/private.js.map +7 -0
- package/build-module/utils/filter-sort-and-paginate.js +278 -0
- package/build-module/utils/filter-sort-and-paginate.js.map +7 -0
- package/build-module/utils/is-item-valid.js +45 -0
- package/build-module/utils/is-item-valid.js.map +7 -0
- package/build-module/utils/normalize-fields.js +132 -0
- package/build-module/utils/normalize-fields.js.map +7 -0
- package/build-style/style-rtl.css +73 -216
- package/build-style/style.css +73 -216
- package/build-types/components/dataviews/index.d.ts +3 -2
- package/build-types/components/dataviews/index.d.ts.map +1 -1
- package/build-types/components/dataviews-bulk-actions/index.d.ts +1 -1
- package/build-types/components/dataviews-bulk-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +1 -1
- package/build-types/components/dataviews-filters/filters-toggled.d.ts +5 -0
- package/build-types/components/dataviews-filters/filters-toggled.d.ts.map +1 -0
- package/build-types/components/dataviews-filters/filters.d.ts +6 -0
- package/build-types/components/dataviews-filters/filters.d.ts.map +1 -0
- package/build-types/components/dataviews-filters/index.d.ts +4 -8
- package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/toggle.d.ts +3 -0
- package/build-types/components/dataviews-filters/toggle.d.ts.map +1 -0
- package/build-types/components/dataviews-filters/use-filters.d.ts +4 -0
- package/build-types/components/dataviews-filters/use-filters.d.ts.map +1 -0
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-picker/footer.d.ts.map +1 -1
- package/build-types/components/dataviews-picker/index.d.ts +3 -2
- package/build-types/components/dataviews-picker/index.d.ts.map +1 -1
- package/build-types/components/dataviews-selection-checkbox/index.d.ts +1 -1
- package/build-types/dataform-controls/date.d.ts.map +1 -1
- package/build-types/dataform-controls/datetime.d.ts.map +1 -1
- package/build-types/dataform-controls/index.d.ts.map +1 -1
- package/build-types/dataform-controls/integer.d.ts +4 -1
- package/build-types/dataform-controls/integer.d.ts.map +1 -1
- package/build-types/dataform-controls/number.d.ts +6 -0
- package/build-types/dataform-controls/number.d.ts.map +1 -0
- package/build-types/dataform-controls/select.d.ts.map +1 -1
- package/build-types/dataform-controls/utils/relative-date-control.d.ts +5 -0
- package/build-types/dataform-controls/utils/relative-date-control.d.ts.map +1 -0
- package/build-types/dataform-controls/utils/validated-number.d.ts +9 -0
- package/build-types/dataform-controls/utils/validated-number.d.ts.map +1 -0
- package/build-types/dataform-layouts/card/index.d.ts.map +1 -0
- package/build-types/dataform-layouts/data-form-layout.d.ts.map +1 -0
- package/build-types/dataform-layouts/get-summary-fields.d.ts +12 -0
- package/build-types/dataform-layouts/get-summary-fields.d.ts.map +1 -0
- package/build-types/{dataforms-layouts → dataform-layouts}/index.d.ts +0 -5
- package/build-types/dataform-layouts/index.d.ts.map +1 -0
- package/build-types/dataform-layouts/is-combined-field.d.ts.map +1 -0
- package/build-types/{normalize-form-fields.d.ts → dataform-layouts/normalize-form-fields.d.ts} +1 -1
- package/build-types/dataform-layouts/normalize-form-fields.d.ts.map +1 -0
- package/build-types/dataform-layouts/panel/dropdown.d.ts.map +1 -0
- package/build-types/dataform-layouts/panel/index.d.ts.map +1 -0
- package/build-types/dataform-layouts/panel/modal.d.ts.map +1 -0
- package/build-types/dataform-layouts/panel/summary-button.d.ts.map +1 -0
- package/build-types/dataform-layouts/regular/index.d.ts.map +1 -0
- package/build-types/dataform-layouts/row/index.d.ts.map +1 -0
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/picker-grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/utils/item-click-wrapper.d.ts +1 -1
- package/build-types/dataviews-layouts/utils/item-click-wrapper.d.ts.map +1 -1
- package/build-types/field-types/array.d.ts.map +1 -1
- package/build-types/field-types/boolean.d.ts +1 -0
- package/build-types/field-types/boolean.d.ts.map +1 -1
- package/build-types/field-types/color.d.ts +2 -1
- package/build-types/field-types/color.d.ts.map +1 -1
- package/build-types/field-types/date.d.ts +3 -2
- package/build-types/field-types/date.d.ts.map +1 -1
- package/build-types/field-types/datetime.d.ts +3 -2
- package/build-types/field-types/datetime.d.ts.map +1 -1
- package/build-types/field-types/email.d.ts +3 -2
- package/build-types/field-types/email.d.ts.map +1 -1
- package/build-types/field-types/index.d.ts.map +1 -1
- package/build-types/field-types/integer.d.ts +2 -1
- package/build-types/field-types/integer.d.ts.map +1 -1
- package/build-types/field-types/media.d.ts +2 -5
- package/build-types/field-types/media.d.ts.map +1 -1
- package/build-types/field-types/number.d.ts +21 -0
- package/build-types/field-types/number.d.ts.map +1 -0
- package/build-types/field-types/password.d.ts +3 -2
- package/build-types/field-types/password.d.ts.map +1 -1
- package/build-types/field-types/telephone.d.ts +4 -3
- package/build-types/field-types/telephone.d.ts.map +1 -1
- package/build-types/field-types/text.d.ts +4 -3
- package/build-types/field-types/text.d.ts.map +1 -1
- package/build-types/field-types/url.d.ts +4 -3
- package/build-types/field-types/url.d.ts.map +1 -1
- package/build-types/field-types/utils/render-from-elements.d.ts +6 -0
- package/build-types/field-types/utils/render-from-elements.d.ts.map +1 -0
- package/build-types/index.d.ts +2 -2
- package/build-types/index.d.ts.map +1 -1
- package/build-types/{components/dataform/stories/index.story.d.ts → stories/dataform.story.d.ts} +2 -2
- package/build-types/stories/dataform.story.d.ts.map +1 -0
- package/build-types/{components/dataviews-picker/stories/index.story.d.ts → stories/dataviews-picker.story.d.ts} +2 -2
- package/build-types/stories/dataviews-picker.story.d.ts.map +1 -0
- package/build-types/{components/dataviews/stories/fixtures.d.ts → stories/dataviews.fixtures.d.ts} +2 -2
- package/build-types/stories/dataviews.fixtures.d.ts.map +1 -0
- package/build-types/{components/dataviews/stories/index.story.d.ts → stories/dataviews.story.d.ts} +3 -3
- package/build-types/stories/dataviews.story.d.ts.map +1 -0
- package/build-types/stories/field-types.story.d.ts +134 -0
- package/build-types/stories/field-types.story.d.ts.map +1 -0
- package/build-types/types/dataform.d.ts +109 -0
- package/build-types/types/dataform.d.ts.map +1 -0
- package/build-types/types/dataviews.d.ts +333 -0
- package/build-types/types/dataviews.d.ts.map +1 -0
- package/build-types/types/field-api.d.ts +274 -0
- package/build-types/types/field-api.d.ts.map +1 -0
- package/build-types/types/index.d.ts +4 -0
- package/build-types/types/index.d.ts.map +1 -0
- package/build-types/{private-types.d.ts → types/private.d.ts} +1 -1
- package/build-types/types/private.d.ts.map +1 -0
- package/build-types/{filter-and-sort-data-view.d.ts → utils/filter-sort-and-paginate.d.ts} +3 -3
- package/build-types/utils/filter-sort-and-paginate.d.ts.map +1 -0
- package/build-types/{validation.d.ts → utils/is-item-valid.d.ts} +3 -3
- package/build-types/utils/is-item-valid.d.ts.map +1 -0
- package/build-types/utils/normalize-fields.d.ts +9 -0
- package/build-types/utils/normalize-fields.d.ts.map +1 -0
- package/build-wp/index.js +2471 -2212
- package/package.json +17 -19
- package/src/components/dataform/index.tsx +2 -2
- package/src/components/dataviews/index.tsx +10 -16
- package/src/components/dataviews/style.scss +4 -0
- package/src/components/dataviews-bulk-actions/index.tsx +1 -2
- package/src/components/dataviews-bulk-actions/style.scss +3 -0
- package/src/components/dataviews-context/index.ts +1 -1
- package/src/components/dataviews-filters/filters-toggled.tsx +20 -0
- package/src/components/dataviews-filters/filters.tsx +73 -0
- package/src/components/dataviews-filters/index.tsx +4 -246
- package/src/components/dataviews-filters/style.scss +13 -6
- package/src/components/dataviews-filters/toggle.tsx +118 -0
- package/src/components/dataviews-filters/use-filters.ts +73 -0
- package/src/components/dataviews-footer/style.scss +4 -0
- package/src/components/dataviews-item-actions/index.tsx +0 -1
- package/src/components/dataviews-item-actions/style.scss +3 -0
- package/src/components/dataviews-pagination/style.scss +3 -0
- package/src/components/dataviews-picker/footer.tsx +2 -4
- package/src/components/dataviews-picker/index.tsx +10 -16
- package/src/components/dataviews-picker/style.scss +2 -0
- package/src/components/dataviews-selection-checkbox/index.tsx +1 -1
- package/src/components/dataviews-selection-checkbox/style.scss +3 -0
- package/src/components/dataviews-view-config/style.scss +3 -0
- package/src/dataform-controls/date.tsx +372 -222
- package/src/dataform-controls/datetime.tsx +125 -59
- package/src/dataform-controls/index.tsx +2 -0
- package/src/dataform-controls/integer.tsx +3 -179
- package/src/dataform-controls/number.tsx +10 -0
- package/src/dataform-controls/select.tsx +1 -20
- package/src/dataform-controls/style.scss +2 -0
- package/src/dataform-controls/{relative-date-control.tsx → utils/relative-date-control.tsx} +37 -25
- package/src/dataform-controls/utils/validated-number.tsx +209 -0
- package/src/{dataforms-layouts → dataform-layouts}/card/index.tsx +103 -8
- package/src/dataform-layouts/card/style.scss +24 -0
- package/src/{dataforms-layouts → dataform-layouts}/data-form-layout.tsx +4 -2
- package/src/dataform-layouts/get-summary-fields.ts +42 -0
- package/src/{dataforms-layouts → dataform-layouts}/index.tsx +32 -2
- package/src/{normalize-form-fields.ts → dataform-layouts/normalize-form-fields.ts} +28 -1
- package/src/{dataforms-layouts → dataform-layouts}/panel/dropdown.tsx +1 -1
- package/src/{dataforms-layouts → dataform-layouts}/panel/index.tsx +79 -48
- package/src/{dataforms-layouts → dataform-layouts}/panel/modal.tsx +1 -1
- package/src/{dataforms-layouts → dataform-layouts}/panel/style.scss +3 -0
- package/src/{dataforms-layouts → dataform-layouts}/regular/index.tsx +1 -1
- package/src/{dataforms-layouts → dataform-layouts}/regular/style.scss +2 -0
- package/src/{dataforms-layouts → dataform-layouts}/row/index.tsx +2 -1
- package/src/dataform-layouts/style.scss +5 -0
- package/src/dataviews-layouts/grid/index.tsx +1 -1
- package/src/dataviews-layouts/grid/style.scss +8 -3
- package/src/dataviews-layouts/list/index.tsx +0 -2
- package/src/dataviews-layouts/list/style.scss +3 -0
- package/src/dataviews-layouts/picker-grid/index.tsx +16 -9
- package/src/dataviews-layouts/picker-grid/style.scss +8 -4
- package/src/dataviews-layouts/table/index.tsx +1 -1
- package/src/dataviews-layouts/table/style.scss +9 -0
- package/src/dataviews-layouts/utils/grid-items.scss +2 -0
- package/src/dataviews-layouts/utils/item-click-wrapper.tsx +40 -2
- package/src/field-types/array.tsx +1 -0
- package/src/field-types/boolean.tsx +2 -1
- package/src/field-types/color.tsx +2 -8
- package/src/field-types/{date.ts → date.tsx} +3 -14
- package/src/field-types/datetime.tsx +3 -18
- package/src/field-types/email.tsx +2 -8
- package/src/field-types/index.tsx +8 -20
- package/src/field-types/integer.tsx +2 -8
- package/src/field-types/media.tsx +3 -17
- package/src/field-types/number.tsx +96 -0
- package/src/field-types/password.tsx +3 -18
- package/src/field-types/telephone.tsx +3 -18
- package/src/field-types/text.tsx +3 -18
- package/src/field-types/url.tsx +3 -18
- package/src/{utils.ts → field-types/utils/render-from-elements.ts} +2 -2
- package/src/index.ts +2 -2
- package/src/{components/dataform/stories/index.story.tsx → stories/dataform.story.tsx} +217 -9
- package/src/{components/dataviews-picker/stories/index.story.tsx → stories/dataviews-picker.story.tsx} +5 -9
- package/src/{components/dataviews/stories/fixtures.tsx → stories/dataviews.fixtures.tsx} +27 -1
- package/src/{components/dataviews/stories/index.story.tsx → stories/dataviews.story.tsx} +8 -9
- package/src/{field-types/stories/index.story.tsx → stories/field-types.story.tsx} +86 -20
- package/src/style.scss +19 -18
- package/src/test/dataform.tsx +36 -0
- package/src/test/dataviews-picker.tsx +1 -1
- package/src/test/dataviews.tsx +1 -2
- package/src/test/{filter-and-sort-data-view.js → filter-sort-and-paginate.js} +63 -16
- package/src/test/normalize-fields.ts +23 -1
- package/src/test/normalize-form-fields.ts +54 -5
- package/src/test/validation.ts +235 -225
- package/src/types/dataform.ts +140 -0
- package/src/types/dataviews.ts +433 -0
- package/src/types/field-api.ts +350 -0
- package/src/types/index.ts +3 -0
- package/src/{filter-and-sort-data-view.ts → utils/filter-sort-and-paginate.ts} +4 -4
- package/src/{validation.ts → utils/is-item-valid.ts} +5 -3
- package/src/{normalize-fields.ts → utils/normalize-fields.ts} +6 -6
- package/tsconfig.tsbuildinfo +1 -1
- package/build/dataform-controls/relative-date-control.js +0 -105
- package/build/dataform-controls/relative-date-control.js.map +0 -1
- package/build/dataforms-layouts/card/index.js +0 -136
- package/build/dataforms-layouts/card/index.js.map +0 -1
- package/build/dataforms-layouts/data-form-layout.js +0 -71
- package/build/dataforms-layouts/data-form-layout.js.map +0 -1
- package/build/dataforms-layouts/index.js +0 -58
- package/build/dataforms-layouts/index.js.map +0 -1
- package/build/dataforms-layouts/is-combined-field.js +0 -14
- package/build/dataforms-layouts/is-combined-field.js.map +0 -1
- package/build/dataforms-layouts/panel/dropdown.js +0 -120
- package/build/dataforms-layouts/panel/dropdown.js.map +0 -1
- package/build/dataforms-layouts/panel/index.js +0 -126
- package/build/dataforms-layouts/panel/index.js.map +0 -1
- package/build/dataforms-layouts/panel/modal.js +0 -120
- package/build/dataforms-layouts/panel/modal.js.map +0 -1
- package/build/dataforms-layouts/panel/summary-button.js +0 -67
- package/build/dataforms-layouts/panel/summary-button.js.map +0 -1
- package/build/dataforms-layouts/regular/index.js +0 -116
- package/build/dataforms-layouts/regular/index.js.map +0 -1
- package/build/dataforms-layouts/row/index.js +0 -113
- package/build/dataforms-layouts/row/index.js.map +0 -1
- package/build/filter-and-sort-data-view.js +0 -313
- package/build/filter-and-sort-data-view.js.map +0 -1
- package/build/normalize-fields.js +0 -155
- package/build/normalize-fields.js.map +0 -1
- package/build/normalize-form-fields.js +0 -81
- package/build/normalize-form-fields.js.map +0 -1
- package/build/private-types.js +0 -6
- package/build/private-types.js.map +0 -1
- package/build/types.js +0 -6
- package/build/types.js.map +0 -1
- package/build/utils.js +0 -22
- package/build/utils.js.map +0 -1
- package/build/validation.js +0 -61
- package/build/validation.js.map +0 -1
- package/build-module/dataform-controls/relative-date-control.js +0 -96
- package/build-module/dataform-controls/relative-date-control.js.map +0 -1
- package/build-module/dataforms-layouts/card/index.js +0 -127
- package/build-module/dataforms-layouts/card/index.js.map +0 -1
- package/build-module/dataforms-layouts/data-form-layout.js +0 -62
- package/build-module/dataforms-layouts/data-form-layout.js.map +0 -1
- package/build-module/dataforms-layouts/index.js +0 -51
- package/build-module/dataforms-layouts/index.js.map +0 -1
- package/build-module/dataforms-layouts/is-combined-field.js +0 -8
- package/build-module/dataforms-layouts/is-combined-field.js.map +0 -1
- package/build-module/dataforms-layouts/panel/dropdown.js +0 -113
- package/build-module/dataforms-layouts/panel/dropdown.js.map +0 -1
- package/build-module/dataforms-layouts/panel/index.js +0 -119
- package/build-module/dataforms-layouts/panel/index.js.map +0 -1
- package/build-module/dataforms-layouts/panel/modal.js +0 -113
- package/build-module/dataforms-layouts/panel/modal.js.map +0 -1
- package/build-module/dataforms-layouts/panel/summary-button.js +0 -60
- package/build-module/dataforms-layouts/panel/summary-button.js.map +0 -1
- package/build-module/dataforms-layouts/regular/index.js +0 -109
- package/build-module/dataforms-layouts/regular/index.js.map +0 -1
- package/build-module/dataforms-layouts/row/index.js +0 -106
- package/build-module/dataforms-layouts/row/index.js.map +0 -1
- package/build-module/filter-and-sort-data-view.js +0 -305
- package/build-module/filter-and-sort-data-view.js.map +0 -1
- package/build-module/normalize-fields.js +0 -145
- package/build-module/normalize-fields.js.map +0 -1
- package/build-module/normalize-form-fields.js +0 -73
- package/build-module/normalize-form-fields.js.map +0 -1
- package/build-module/private-types.js +0 -2
- package/build-module/private-types.js.map +0 -1
- package/build-module/types.js +0 -2
- package/build-module/types.js.map +0 -1
- package/build-module/utils.js +0 -16
- package/build-module/utils.js.map +0 -1
- package/build-module/validation.js +0 -54
- package/build-module/validation.js.map +0 -1
- package/build-types/components/dataform/stories/index.story.d.ts.map +0 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +0 -1
- package/build-types/components/dataviews/stories/index.story.d.ts.map +0 -1
- package/build-types/components/dataviews-picker/stories/index.story.d.ts.map +0 -1
- package/build-types/dataform-controls/relative-date-control.d.ts +0 -47
- package/build-types/dataform-controls/relative-date-control.d.ts.map +0 -1
- package/build-types/dataforms-layouts/card/index.d.ts.map +0 -1
- package/build-types/dataforms-layouts/data-form-layout.d.ts.map +0 -1
- package/build-types/dataforms-layouts/index.d.ts.map +0 -1
- package/build-types/dataforms-layouts/is-combined-field.d.ts.map +0 -1
- package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +0 -1
- package/build-types/dataforms-layouts/panel/index.d.ts.map +0 -1
- package/build-types/dataforms-layouts/panel/modal.d.ts.map +0 -1
- package/build-types/dataforms-layouts/panel/summary-button.d.ts.map +0 -1
- package/build-types/dataforms-layouts/regular/index.d.ts.map +0 -1
- package/build-types/dataforms-layouts/row/index.d.ts.map +0 -1
- package/build-types/field-types/stories/index.story.d.ts +0 -85
- package/build-types/field-types/stories/index.story.d.ts.map +0 -1
- package/build-types/filter-and-sort-data-view.d.ts.map +0 -1
- package/build-types/normalize-fields.d.ts +0 -12
- package/build-types/normalize-fields.d.ts.map +0 -1
- package/build-types/normalize-form-fields.d.ts.map +0 -1
- package/build-types/private-types.d.ts.map +0 -1
- package/build-types/types.d.ts +0 -688
- package/build-types/types.d.ts.map +0 -1
- package/build-types/utils.d.ts +0 -6
- package/build-types/utils.d.ts.map +0 -1
- package/build-types/validation.d.ts.map +0 -1
- package/src/dataforms-layouts/card/style.scss +0 -10
- package/src/types.ts +0 -891
- /package/build-types/{dataforms-layouts → dataform-layouts}/card/index.d.ts +0 -0
- /package/build-types/{dataforms-layouts → dataform-layouts}/data-form-layout.d.ts +0 -0
- /package/build-types/{dataforms-layouts → dataform-layouts}/is-combined-field.d.ts +0 -0
- /package/build-types/{dataforms-layouts → dataform-layouts}/panel/dropdown.d.ts +0 -0
- /package/build-types/{dataforms-layouts → dataform-layouts}/panel/index.d.ts +0 -0
- /package/build-types/{dataforms-layouts → dataform-layouts}/panel/modal.d.ts +0 -0
- /package/build-types/{dataforms-layouts → dataform-layouts}/panel/summary-button.d.ts +0 -0
- /package/build-types/{dataforms-layouts → dataform-layouts}/regular/index.d.ts +0 -0
- /package/build-types/{dataforms-layouts → dataform-layouts}/row/index.d.ts +0 -0
- /package/src/{dataforms-layouts → dataform-layouts}/is-combined-field.ts +0 -0
- /package/src/{dataforms-layouts → dataform-layouts}/panel/summary-button.tsx +0 -0
- /package/src/{dataforms-layouts → dataform-layouts}/row/style.scss +0 -0
- /package/src/{components/dataviews/stories/style.css → stories/dataviews.style.css} +0 -0
- /package/src/{private-types.tsx → types/private.ts} +0 -0
package/src/types.ts
DELETED
|
@@ -1,891 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import type {
|
|
5
|
-
ReactElement,
|
|
6
|
-
ReactNode,
|
|
7
|
-
ComponentType,
|
|
8
|
-
ComponentProps,
|
|
9
|
-
} from 'react';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Internal dependencies
|
|
13
|
-
*/
|
|
14
|
-
import type { SetSelection } from './private-types';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* WordPress dependencies
|
|
18
|
-
*/
|
|
19
|
-
import type { useFocusOnMount } from '@wordpress/compose';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Utility type that makes all properties of T optional recursively.
|
|
23
|
-
* Used by field setValue functions to allow partial item updates.
|
|
24
|
-
*/
|
|
25
|
-
export type DeepPartial< T > = {
|
|
26
|
-
[ P in keyof T ]?: T[ P ] extends object ? DeepPartial< T[ P ] > : T[ P ];
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export type SortDirection = 'asc' | 'desc';
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Generic option type.
|
|
33
|
-
*/
|
|
34
|
-
export interface Option< Value extends any = any > {
|
|
35
|
-
value: Value;
|
|
36
|
-
label: string;
|
|
37
|
-
description?: string;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export interface FilterByConfig {
|
|
41
|
-
/**
|
|
42
|
-
* The list of operators supported by the field.
|
|
43
|
-
*/
|
|
44
|
-
operators?: Operator[];
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Whether it is a primary filter.
|
|
48
|
-
*
|
|
49
|
-
* A primary filter is always visible and is not listed in the "Add filter" component,
|
|
50
|
-
* except for the list layout where it behaves like a secondary filter.
|
|
51
|
-
*/
|
|
52
|
-
isPrimary?: boolean;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export interface NormalizedFilterByConfig {
|
|
56
|
-
/**
|
|
57
|
-
* The list of operators supported by the field.
|
|
58
|
-
*/
|
|
59
|
-
operators: Operator[];
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Whether it is a primary filter.
|
|
63
|
-
*
|
|
64
|
-
* A primary filter is always visible and is not listed in the "Add filter" component,
|
|
65
|
-
* except for the list layout where it behaves like a secondary filter.
|
|
66
|
-
*/
|
|
67
|
-
isPrimary?: boolean;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
interface FilterConfigForType {
|
|
71
|
-
/**
|
|
72
|
-
* What operators are used by default.
|
|
73
|
-
*/
|
|
74
|
-
defaultOperators: Operator[];
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* What operators are supported by the field.
|
|
78
|
-
*/
|
|
79
|
-
validOperators: Operator[];
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export type Operator =
|
|
83
|
-
| 'is'
|
|
84
|
-
| 'isNot'
|
|
85
|
-
| 'isAny'
|
|
86
|
-
| 'isNone'
|
|
87
|
-
| 'isAll'
|
|
88
|
-
| 'isNotAll'
|
|
89
|
-
| 'lessThan'
|
|
90
|
-
| 'greaterThan'
|
|
91
|
-
| 'lessThanOrEqual'
|
|
92
|
-
| 'greaterThanOrEqual'
|
|
93
|
-
| 'before'
|
|
94
|
-
| 'after'
|
|
95
|
-
| 'beforeInc'
|
|
96
|
-
| 'afterInc'
|
|
97
|
-
| 'contains'
|
|
98
|
-
| 'notContains'
|
|
99
|
-
| 'startsWith'
|
|
100
|
-
| 'between'
|
|
101
|
-
| 'on'
|
|
102
|
-
| 'notOn'
|
|
103
|
-
| 'inThePast'
|
|
104
|
-
| 'over';
|
|
105
|
-
|
|
106
|
-
export type FieldType =
|
|
107
|
-
| 'text'
|
|
108
|
-
| 'integer'
|
|
109
|
-
| 'datetime'
|
|
110
|
-
| 'date'
|
|
111
|
-
| 'media'
|
|
112
|
-
| 'boolean'
|
|
113
|
-
| 'email'
|
|
114
|
-
| 'password'
|
|
115
|
-
| 'telephone'
|
|
116
|
-
| 'color'
|
|
117
|
-
| 'url'
|
|
118
|
-
| 'array';
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* An abstract interface for Field based on the field type.
|
|
122
|
-
*/
|
|
123
|
-
export type FieldTypeDefinition< Item > = {
|
|
124
|
-
/**
|
|
125
|
-
* Callback used to sort the field.
|
|
126
|
-
*/
|
|
127
|
-
sort: ( a: Item, b: Item, direction: SortDirection ) => number;
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Callback used to validate the field.
|
|
131
|
-
*/
|
|
132
|
-
isValid: Rules< Item >;
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Callback used to render an edit control for the field or control name.
|
|
136
|
-
*/
|
|
137
|
-
Edit:
|
|
138
|
-
| ComponentType< DataFormControlProps< Item > >
|
|
139
|
-
| string
|
|
140
|
-
| EditConfig
|
|
141
|
-
| null;
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Callback used to render the field.
|
|
145
|
-
*/
|
|
146
|
-
render: ComponentType< DataViewRenderFieldProps< Item > >;
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* The filter config for the field.
|
|
150
|
-
*/
|
|
151
|
-
filterBy: FilterConfigForType | false;
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Whether the field is readOnly.
|
|
155
|
-
* If `true`, the value will be rendered using the `render` callback.
|
|
156
|
-
*/
|
|
157
|
-
readOnly?: boolean;
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Whether the field is sortable.
|
|
161
|
-
*/
|
|
162
|
-
enableSorting: boolean;
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
export type Rules< Item > = {
|
|
166
|
-
required?: boolean;
|
|
167
|
-
elements?: boolean;
|
|
168
|
-
custom?: ( item: Item, field: NormalizedField< Item > ) => null | string;
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Edit configuration for textarea controls.
|
|
173
|
-
*/
|
|
174
|
-
export type EditConfigTextarea = {
|
|
175
|
-
control: 'textarea';
|
|
176
|
-
/**
|
|
177
|
-
* Number of rows for the textarea.
|
|
178
|
-
*/
|
|
179
|
-
rows?: number;
|
|
180
|
-
};
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Edit configuration for text controls.
|
|
184
|
-
*/
|
|
185
|
-
export type EditConfigText = {
|
|
186
|
-
control: 'text';
|
|
187
|
-
/**
|
|
188
|
-
* Prefix component to display before the input.
|
|
189
|
-
*/
|
|
190
|
-
prefix?: React.ComponentType;
|
|
191
|
-
/**
|
|
192
|
-
* Suffix component to display after the input.
|
|
193
|
-
*/
|
|
194
|
-
suffix?: React.ComponentType;
|
|
195
|
-
};
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Edit configuration for other control types (excluding 'text' and 'textarea').
|
|
199
|
-
*/
|
|
200
|
-
export type EditConfigGeneric = {
|
|
201
|
-
control: Exclude< FieldType, 'text' | 'textarea' >;
|
|
202
|
-
};
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Edit configuration object with type-safe control options.
|
|
206
|
-
* Each control type has its own specific configuration properties.
|
|
207
|
-
*/
|
|
208
|
-
export type EditConfig =
|
|
209
|
-
| EditConfigTextarea
|
|
210
|
-
| EditConfigText
|
|
211
|
-
| EditConfigGeneric;
|
|
212
|
-
|
|
213
|
-
/**
|
|
214
|
-
* A dataview field for a specific property of a data type.
|
|
215
|
-
*/
|
|
216
|
-
export type Field< Item > = {
|
|
217
|
-
/**
|
|
218
|
-
* Type of the fields.
|
|
219
|
-
*/
|
|
220
|
-
type?: FieldType;
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* The unique identifier of the field.
|
|
224
|
-
*/
|
|
225
|
-
id: string;
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* The label of the field. Defaults to the id.
|
|
229
|
-
*/
|
|
230
|
-
label?: string;
|
|
231
|
-
|
|
232
|
-
/**
|
|
233
|
-
* The header of the field. Defaults to the label.
|
|
234
|
-
* It allows the usage of a React Element to render the field labels.
|
|
235
|
-
*/
|
|
236
|
-
header?: string | ReactElement;
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* A description of the field.
|
|
240
|
-
*/
|
|
241
|
-
description?: string;
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Placeholder for the field.
|
|
245
|
-
*/
|
|
246
|
-
placeholder?: string;
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* Callback used to render the field. Defaults to `field.getValue`.
|
|
250
|
-
*/
|
|
251
|
-
render?: ComponentType< DataViewRenderFieldProps< Item > >;
|
|
252
|
-
|
|
253
|
-
/**
|
|
254
|
-
* Callback used to render an edit control for the field.
|
|
255
|
-
*/
|
|
256
|
-
Edit?: ComponentType< DataFormControlProps< Item > > | string | EditConfig;
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* Callback used to sort the field.
|
|
260
|
-
*/
|
|
261
|
-
sort?: ( a: Item, b: Item, direction: SortDirection ) => number;
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Callback used to validate the field.
|
|
265
|
-
*/
|
|
266
|
-
isValid?: Rules< Item >;
|
|
267
|
-
|
|
268
|
-
/**
|
|
269
|
-
* Callback used to decide if a field should be displayed.
|
|
270
|
-
*/
|
|
271
|
-
isVisible?: ( item: Item ) => boolean;
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Whether the field is sortable.
|
|
275
|
-
*/
|
|
276
|
-
enableSorting?: boolean;
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Whether the field is searchable.
|
|
280
|
-
*/
|
|
281
|
-
enableGlobalSearch?: boolean;
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Whether the field can be hidden in the UI.
|
|
285
|
-
*/
|
|
286
|
-
enableHiding?: boolean;
|
|
287
|
-
|
|
288
|
-
/**
|
|
289
|
-
* The list of options to pick from when using the field as a filter.
|
|
290
|
-
*/
|
|
291
|
-
elements?: Option[];
|
|
292
|
-
|
|
293
|
-
/**
|
|
294
|
-
* Filter config for the field.
|
|
295
|
-
*/
|
|
296
|
-
filterBy?: FilterByConfig | false;
|
|
297
|
-
|
|
298
|
-
/**
|
|
299
|
-
* Whether the field is readOnly.
|
|
300
|
-
* If `true`, the value will be rendered using the `render` callback.
|
|
301
|
-
*/
|
|
302
|
-
readOnly?: boolean;
|
|
303
|
-
|
|
304
|
-
/**
|
|
305
|
-
* Callback used to retrieve the value of the field from the item.
|
|
306
|
-
* Defaults to `item[ field.id ]`.
|
|
307
|
-
*/
|
|
308
|
-
getValue?: ( args: { item: Item } ) => any;
|
|
309
|
-
|
|
310
|
-
/**
|
|
311
|
-
* Callback used to set the value of the field on the item.
|
|
312
|
-
* Used for editing operations to update field values.
|
|
313
|
-
*/
|
|
314
|
-
setValue?: ( args: { item: Item; value: any } ) => DeepPartial< Item >;
|
|
315
|
-
};
|
|
316
|
-
|
|
317
|
-
export type NormalizedField< Item > = Omit< Field< Item >, 'Edit' > & {
|
|
318
|
-
label: string;
|
|
319
|
-
header: string | ReactElement;
|
|
320
|
-
getValue: ( args: { item: Item } ) => any;
|
|
321
|
-
setValue: ( args: { item: Item; value: any } ) => DeepPartial< Item >;
|
|
322
|
-
render: ComponentType< DataViewRenderFieldProps< Item > >;
|
|
323
|
-
Edit: ComponentType< DataFormControlProps< Item > > | null;
|
|
324
|
-
sort: ( a: Item, b: Item, direction: SortDirection ) => number;
|
|
325
|
-
isValid: Rules< Item >;
|
|
326
|
-
enableHiding: boolean;
|
|
327
|
-
enableSorting: boolean;
|
|
328
|
-
filterBy: NormalizedFilterByConfig | false;
|
|
329
|
-
readOnly: boolean;
|
|
330
|
-
};
|
|
331
|
-
|
|
332
|
-
/**
|
|
333
|
-
* A collection of dataview fields for a data type.
|
|
334
|
-
*/
|
|
335
|
-
export type Fields< Item > = Field< Item >[];
|
|
336
|
-
|
|
337
|
-
export type Data< Item > = Item[];
|
|
338
|
-
|
|
339
|
-
export type DataFormControlProps< Item > = {
|
|
340
|
-
data: Item;
|
|
341
|
-
field: NormalizedField< Item >;
|
|
342
|
-
onChange: ( value: DeepPartial< Item > ) => void;
|
|
343
|
-
hideLabelFromVision?: boolean;
|
|
344
|
-
/**
|
|
345
|
-
* The currently selected filter operator for this field.
|
|
346
|
-
*
|
|
347
|
-
* Used by DataViews filters to determine which control to render based on the operator type.
|
|
348
|
-
*/
|
|
349
|
-
operator?: Operator;
|
|
350
|
-
/**
|
|
351
|
-
* Configuration object for the control.
|
|
352
|
-
*/
|
|
353
|
-
config?: {
|
|
354
|
-
prefix?: React.ComponentType;
|
|
355
|
-
suffix?: React.ComponentType;
|
|
356
|
-
rows?: number;
|
|
357
|
-
};
|
|
358
|
-
};
|
|
359
|
-
|
|
360
|
-
export type DataViewRenderFieldProps< Item > = {
|
|
361
|
-
item: Item;
|
|
362
|
-
field: NormalizedField< Item >;
|
|
363
|
-
config?: {
|
|
364
|
-
sizes: string;
|
|
365
|
-
};
|
|
366
|
-
};
|
|
367
|
-
|
|
368
|
-
/**
|
|
369
|
-
* The filters applied to the dataset.
|
|
370
|
-
*/
|
|
371
|
-
export interface Filter {
|
|
372
|
-
/**
|
|
373
|
-
* The field to filter by.
|
|
374
|
-
*/
|
|
375
|
-
field: string;
|
|
376
|
-
|
|
377
|
-
/**
|
|
378
|
-
* The operator to use.
|
|
379
|
-
*/
|
|
380
|
-
operator: Operator;
|
|
381
|
-
|
|
382
|
-
/**
|
|
383
|
-
* The value to filter by.
|
|
384
|
-
*/
|
|
385
|
-
value: any;
|
|
386
|
-
|
|
387
|
-
/**
|
|
388
|
-
* Whether the filter can be edited by the user.
|
|
389
|
-
*/
|
|
390
|
-
isLocked?: boolean;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
export interface NormalizedFilter {
|
|
394
|
-
/**
|
|
395
|
-
* The field to filter by.
|
|
396
|
-
*/
|
|
397
|
-
field: string;
|
|
398
|
-
|
|
399
|
-
/**
|
|
400
|
-
* The field name.
|
|
401
|
-
*/
|
|
402
|
-
name: string;
|
|
403
|
-
|
|
404
|
-
/**
|
|
405
|
-
* The list of options to pick from when using the field as a filter.
|
|
406
|
-
*/
|
|
407
|
-
elements: Option[];
|
|
408
|
-
|
|
409
|
-
/**
|
|
410
|
-
* Is a single selection filter.
|
|
411
|
-
*/
|
|
412
|
-
singleSelection: boolean;
|
|
413
|
-
|
|
414
|
-
/**
|
|
415
|
-
* The list of operators supported by the field.
|
|
416
|
-
*/
|
|
417
|
-
operators: Operator[];
|
|
418
|
-
|
|
419
|
-
/**
|
|
420
|
-
* Whether the filter is visible.
|
|
421
|
-
*/
|
|
422
|
-
isVisible: boolean;
|
|
423
|
-
|
|
424
|
-
/**
|
|
425
|
-
* Whether it is a primary filter.
|
|
426
|
-
*/
|
|
427
|
-
isPrimary: boolean;
|
|
428
|
-
|
|
429
|
-
/**
|
|
430
|
-
* Whether the filter can be edited by the user.
|
|
431
|
-
*/
|
|
432
|
-
isLocked: boolean;
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
interface ViewBase {
|
|
436
|
-
/**
|
|
437
|
-
* The layout of the view.
|
|
438
|
-
*/
|
|
439
|
-
type: string;
|
|
440
|
-
|
|
441
|
-
/**
|
|
442
|
-
* The global search term.
|
|
443
|
-
*/
|
|
444
|
-
search?: string;
|
|
445
|
-
|
|
446
|
-
/**
|
|
447
|
-
* The filters to apply.
|
|
448
|
-
*/
|
|
449
|
-
filters?: Filter[];
|
|
450
|
-
|
|
451
|
-
/**
|
|
452
|
-
* The sorting configuration.
|
|
453
|
-
*/
|
|
454
|
-
sort?: {
|
|
455
|
-
/**
|
|
456
|
-
* The field to sort by.
|
|
457
|
-
*/
|
|
458
|
-
field: string;
|
|
459
|
-
|
|
460
|
-
/**
|
|
461
|
-
* The direction to sort by.
|
|
462
|
-
*/
|
|
463
|
-
direction: SortDirection;
|
|
464
|
-
};
|
|
465
|
-
|
|
466
|
-
/**
|
|
467
|
-
* The active page
|
|
468
|
-
*/
|
|
469
|
-
page?: number;
|
|
470
|
-
|
|
471
|
-
/**
|
|
472
|
-
* The number of items per page
|
|
473
|
-
*/
|
|
474
|
-
perPage?: number;
|
|
475
|
-
|
|
476
|
-
/**
|
|
477
|
-
* The fields to render
|
|
478
|
-
*/
|
|
479
|
-
fields?: string[];
|
|
480
|
-
|
|
481
|
-
/**
|
|
482
|
-
* Title field
|
|
483
|
-
*/
|
|
484
|
-
titleField?: string;
|
|
485
|
-
|
|
486
|
-
/**
|
|
487
|
-
* Media field
|
|
488
|
-
*/
|
|
489
|
-
mediaField?: string;
|
|
490
|
-
|
|
491
|
-
/**
|
|
492
|
-
* Description field
|
|
493
|
-
*/
|
|
494
|
-
descriptionField?: string;
|
|
495
|
-
|
|
496
|
-
/**
|
|
497
|
-
* Whether to show the title
|
|
498
|
-
*/
|
|
499
|
-
showTitle?: boolean;
|
|
500
|
-
|
|
501
|
-
/**
|
|
502
|
-
* Whether to show the media
|
|
503
|
-
*/
|
|
504
|
-
showMedia?: boolean;
|
|
505
|
-
|
|
506
|
-
/**
|
|
507
|
-
* Whether to show the description
|
|
508
|
-
*/
|
|
509
|
-
showDescription?: boolean;
|
|
510
|
-
|
|
511
|
-
/**
|
|
512
|
-
* Whether to show the hierarchical levels.
|
|
513
|
-
*/
|
|
514
|
-
showLevels?: boolean;
|
|
515
|
-
|
|
516
|
-
/**
|
|
517
|
-
* The field to group by.
|
|
518
|
-
*/
|
|
519
|
-
groupByField?: string;
|
|
520
|
-
|
|
521
|
-
/**
|
|
522
|
-
* Whether infinite scroll is enabled.
|
|
523
|
-
*/
|
|
524
|
-
infiniteScrollEnabled?: boolean;
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
export interface ColumnStyle {
|
|
528
|
-
/**
|
|
529
|
-
* The width of the field column.
|
|
530
|
-
*/
|
|
531
|
-
width?: string | number;
|
|
532
|
-
|
|
533
|
-
/**
|
|
534
|
-
* The minimum width of the field column.
|
|
535
|
-
*/
|
|
536
|
-
maxWidth?: string | number;
|
|
537
|
-
|
|
538
|
-
/**
|
|
539
|
-
* The maximum width of the field column.
|
|
540
|
-
*/
|
|
541
|
-
minWidth?: string | number;
|
|
542
|
-
|
|
543
|
-
/**
|
|
544
|
-
* The alignment of the field column, defaults to left.
|
|
545
|
-
*/
|
|
546
|
-
align?: 'start' | 'center' | 'end';
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
export type Density = 'compact' | 'balanced' | 'comfortable';
|
|
550
|
-
|
|
551
|
-
export interface ViewTable extends ViewBase {
|
|
552
|
-
type: 'table';
|
|
553
|
-
|
|
554
|
-
layout?: {
|
|
555
|
-
/**
|
|
556
|
-
* The styles for the columns.
|
|
557
|
-
*/
|
|
558
|
-
styles?: Record< string, ColumnStyle >;
|
|
559
|
-
|
|
560
|
-
/**
|
|
561
|
-
* The density of the view.
|
|
562
|
-
*/
|
|
563
|
-
density?: Density;
|
|
564
|
-
|
|
565
|
-
/**
|
|
566
|
-
* Whether the view allows column moving.
|
|
567
|
-
*/
|
|
568
|
-
enableMoving?: boolean;
|
|
569
|
-
};
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
export interface ViewList extends ViewBase {
|
|
573
|
-
type: 'list';
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
export interface ViewGrid extends ViewBase {
|
|
577
|
-
type: 'grid';
|
|
578
|
-
|
|
579
|
-
layout?: {
|
|
580
|
-
/**
|
|
581
|
-
* The fields to use as badge fields.
|
|
582
|
-
*/
|
|
583
|
-
badgeFields?: string[];
|
|
584
|
-
|
|
585
|
-
/**
|
|
586
|
-
* The preview size of the grid.
|
|
587
|
-
*/
|
|
588
|
-
previewSize?: number;
|
|
589
|
-
};
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
export interface ViewPickerGrid extends ViewBase {
|
|
593
|
-
type: 'pickerGrid';
|
|
594
|
-
|
|
595
|
-
layout?: {
|
|
596
|
-
/**
|
|
597
|
-
* The fields to use as badge fields.
|
|
598
|
-
*/
|
|
599
|
-
badgeFields?: string[];
|
|
600
|
-
|
|
601
|
-
/**
|
|
602
|
-
* The preview size of the grid.
|
|
603
|
-
*/
|
|
604
|
-
previewSize?: number;
|
|
605
|
-
};
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
export type View = ViewList | ViewGrid | ViewTable | ViewPickerGrid;
|
|
609
|
-
|
|
610
|
-
interface ActionBase< Item > {
|
|
611
|
-
/**
|
|
612
|
-
* The unique identifier of the action.
|
|
613
|
-
*/
|
|
614
|
-
id: string;
|
|
615
|
-
|
|
616
|
-
/**
|
|
617
|
-
* The label of the action.
|
|
618
|
-
* In case we want to adjust the label based on the selected items,
|
|
619
|
-
* a function can be provided.
|
|
620
|
-
*/
|
|
621
|
-
label: string | ( ( items: Item[] ) => string );
|
|
622
|
-
|
|
623
|
-
/**
|
|
624
|
-
* The icon of the action. (Either a string or an SVG element)
|
|
625
|
-
* This should be IconType from the components package
|
|
626
|
-
* but that import is breaking typescript build for the moment.
|
|
627
|
-
*/
|
|
628
|
-
icon?: any;
|
|
629
|
-
|
|
630
|
-
/**
|
|
631
|
-
* Whether the action is disabled.
|
|
632
|
-
*/
|
|
633
|
-
disabled?: boolean;
|
|
634
|
-
|
|
635
|
-
/**
|
|
636
|
-
* Whether the action is destructive.
|
|
637
|
-
*/
|
|
638
|
-
isDestructive?: boolean;
|
|
639
|
-
|
|
640
|
-
/**
|
|
641
|
-
* Whether the action is a primary action.
|
|
642
|
-
*/
|
|
643
|
-
isPrimary?: boolean;
|
|
644
|
-
|
|
645
|
-
/**
|
|
646
|
-
* Whether the item passed as an argument supports the current action.
|
|
647
|
-
*/
|
|
648
|
-
isEligible?: ( item: Item ) => boolean;
|
|
649
|
-
|
|
650
|
-
/**
|
|
651
|
-
* Whether the action can be used as a bulk action.
|
|
652
|
-
*/
|
|
653
|
-
supportsBulk?: boolean;
|
|
654
|
-
|
|
655
|
-
/**
|
|
656
|
-
* The context in which the action is visible.
|
|
657
|
-
* This is only a "meta" information for now.
|
|
658
|
-
*/
|
|
659
|
-
context?: 'list' | 'single';
|
|
660
|
-
}
|
|
661
|
-
|
|
662
|
-
export interface RenderModalProps< Item > {
|
|
663
|
-
items: Item[];
|
|
664
|
-
closeModal?: () => void;
|
|
665
|
-
onActionPerformed?: ( items: Item[] ) => void;
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
export interface ActionModal< Item > extends ActionBase< Item > {
|
|
669
|
-
/**
|
|
670
|
-
* Modal to render when the action is triggered.
|
|
671
|
-
*/
|
|
672
|
-
RenderModal: ( {
|
|
673
|
-
items,
|
|
674
|
-
closeModal,
|
|
675
|
-
onActionPerformed,
|
|
676
|
-
}: RenderModalProps< Item > ) => ReactElement;
|
|
677
|
-
|
|
678
|
-
/**
|
|
679
|
-
* Whether to hide the modal header.
|
|
680
|
-
*/
|
|
681
|
-
hideModalHeader?: boolean;
|
|
682
|
-
|
|
683
|
-
/**
|
|
684
|
-
* The header of the modal.
|
|
685
|
-
*/
|
|
686
|
-
modalHeader?: string;
|
|
687
|
-
|
|
688
|
-
/**
|
|
689
|
-
* The size of the modal.
|
|
690
|
-
*
|
|
691
|
-
* @default 'medium'
|
|
692
|
-
*/
|
|
693
|
-
modalSize?: 'small' | 'medium' | 'large' | 'fill';
|
|
694
|
-
|
|
695
|
-
/**
|
|
696
|
-
* The focus on mount property of the modal.
|
|
697
|
-
*/
|
|
698
|
-
modalFocusOnMount?:
|
|
699
|
-
| Parameters< typeof useFocusOnMount >[ 0 ]
|
|
700
|
-
| 'firstContentElement';
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
export interface ActionButton< Item > extends ActionBase< Item > {
|
|
704
|
-
/**
|
|
705
|
-
* The callback to execute when the action is triggered.
|
|
706
|
-
*/
|
|
707
|
-
callback: (
|
|
708
|
-
items: Item[],
|
|
709
|
-
context: {
|
|
710
|
-
registry: any;
|
|
711
|
-
onActionPerformed?: ( items: Item[] ) => void;
|
|
712
|
-
}
|
|
713
|
-
) => void;
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
export type Action< Item > = ActionModal< Item > | ActionButton< Item >;
|
|
717
|
-
|
|
718
|
-
export interface ViewBaseProps< Item > {
|
|
719
|
-
className?: string;
|
|
720
|
-
actions: Action< Item >[];
|
|
721
|
-
data: Item[];
|
|
722
|
-
fields: NormalizedField< Item >[];
|
|
723
|
-
getItemId: ( item: Item ) => string;
|
|
724
|
-
getItemLevel?: ( item: Item ) => number;
|
|
725
|
-
isLoading?: boolean;
|
|
726
|
-
onChangeView: ( view: View ) => void;
|
|
727
|
-
onChangeSelection: SetSelection;
|
|
728
|
-
selection: string[];
|
|
729
|
-
setOpenedFilter: ( fieldId: string ) => void;
|
|
730
|
-
onClickItem?: ( item: Item ) => void;
|
|
731
|
-
renderItemLink?: (
|
|
732
|
-
props: {
|
|
733
|
-
item: Item;
|
|
734
|
-
} & ComponentProps< 'a' >
|
|
735
|
-
) => ReactElement;
|
|
736
|
-
isItemClickable: ( item: Item ) => boolean;
|
|
737
|
-
view: View;
|
|
738
|
-
empty: ReactNode;
|
|
739
|
-
}
|
|
740
|
-
|
|
741
|
-
export type ViewPickerBaseProps< Item > = Omit<
|
|
742
|
-
ViewBaseProps< Item >,
|
|
743
|
-
| 'view'
|
|
744
|
-
| 'onChangeView'
|
|
745
|
-
// The following props are not supported for pickers.
|
|
746
|
-
| 'isItemClickable'
|
|
747
|
-
| 'onClickItem'
|
|
748
|
-
| 'renderItemLink'
|
|
749
|
-
| 'getItemLevel'
|
|
750
|
-
> & {
|
|
751
|
-
view: View;
|
|
752
|
-
onChangeView: ( view: View ) => void;
|
|
753
|
-
};
|
|
754
|
-
|
|
755
|
-
export interface ViewTableProps< Item > extends ViewBaseProps< Item > {
|
|
756
|
-
view: ViewTable;
|
|
757
|
-
}
|
|
758
|
-
|
|
759
|
-
export interface ViewListProps< Item > extends ViewBaseProps< Item > {
|
|
760
|
-
view: ViewList;
|
|
761
|
-
}
|
|
762
|
-
|
|
763
|
-
export interface ViewGridProps< Item > extends ViewBaseProps< Item > {
|
|
764
|
-
view: ViewGrid;
|
|
765
|
-
}
|
|
766
|
-
|
|
767
|
-
export interface ViewPickerGridProps< Item >
|
|
768
|
-
extends Omit< ViewPickerBaseProps< Item >, 'view' > {
|
|
769
|
-
view: ViewPickerGrid;
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
export type ViewProps< Item > =
|
|
773
|
-
| ViewTableProps< Item >
|
|
774
|
-
| ViewGridProps< Item >
|
|
775
|
-
| ViewListProps< Item >;
|
|
776
|
-
|
|
777
|
-
export type ViewPickerProps< Item > = ViewPickerGridProps< Item >;
|
|
778
|
-
|
|
779
|
-
export interface SupportedLayouts {
|
|
780
|
-
list?: Omit< ViewList, 'type' >;
|
|
781
|
-
grid?: Omit< ViewGrid, 'type' >;
|
|
782
|
-
table?: Omit< ViewTable, 'type' >;
|
|
783
|
-
pickerGrid?: Omit< ViewPickerGrid, 'type' >;
|
|
784
|
-
}
|
|
785
|
-
|
|
786
|
-
/**
|
|
787
|
-
* DataForm layouts.
|
|
788
|
-
*/
|
|
789
|
-
export type LayoutType = 'regular' | 'panel' | 'card' | 'row';
|
|
790
|
-
export type LabelPosition = 'top' | 'side' | 'none';
|
|
791
|
-
|
|
792
|
-
export type RegularLayout = {
|
|
793
|
-
type: 'regular';
|
|
794
|
-
labelPosition?: LabelPosition;
|
|
795
|
-
};
|
|
796
|
-
export type NormalizedRegularLayout = {
|
|
797
|
-
type: 'regular';
|
|
798
|
-
labelPosition: LabelPosition;
|
|
799
|
-
};
|
|
800
|
-
|
|
801
|
-
export type PanelLayout = {
|
|
802
|
-
type: 'panel';
|
|
803
|
-
labelPosition?: LabelPosition;
|
|
804
|
-
openAs?: 'dropdown' | 'modal';
|
|
805
|
-
};
|
|
806
|
-
export type NormalizedPanelLayout = {
|
|
807
|
-
type: 'panel';
|
|
808
|
-
labelPosition: LabelPosition;
|
|
809
|
-
openAs: 'dropdown' | 'modal';
|
|
810
|
-
};
|
|
811
|
-
|
|
812
|
-
export type CardLayout =
|
|
813
|
-
| {
|
|
814
|
-
type: 'card';
|
|
815
|
-
withHeader: false;
|
|
816
|
-
// isOpened cannot be false if withHeader is false as well.
|
|
817
|
-
// Otherwise, the card would not be visible.
|
|
818
|
-
isOpened?: true;
|
|
819
|
-
}
|
|
820
|
-
| {
|
|
821
|
-
type: 'card';
|
|
822
|
-
withHeader?: true | undefined;
|
|
823
|
-
isOpened?: boolean;
|
|
824
|
-
};
|
|
825
|
-
export type NormalizedCardLayout =
|
|
826
|
-
| {
|
|
827
|
-
type: 'card';
|
|
828
|
-
withHeader: false;
|
|
829
|
-
// isOpened cannot be false if withHeader is false as well.
|
|
830
|
-
// Otherwise, the card would not be visible.
|
|
831
|
-
isOpened: true;
|
|
832
|
-
}
|
|
833
|
-
| {
|
|
834
|
-
type: 'card';
|
|
835
|
-
withHeader: true;
|
|
836
|
-
isOpened: boolean;
|
|
837
|
-
};
|
|
838
|
-
|
|
839
|
-
export type RowLayout = {
|
|
840
|
-
type: 'row';
|
|
841
|
-
alignment?: 'start' | 'center' | 'end';
|
|
842
|
-
};
|
|
843
|
-
export type NormalizedRowLayout = {
|
|
844
|
-
type: 'row';
|
|
845
|
-
alignment: 'start' | 'center' | 'end';
|
|
846
|
-
};
|
|
847
|
-
|
|
848
|
-
export type Layout = RegularLayout | PanelLayout | CardLayout | RowLayout;
|
|
849
|
-
export type NormalizedLayout =
|
|
850
|
-
| NormalizedRegularLayout
|
|
851
|
-
| NormalizedPanelLayout
|
|
852
|
-
| NormalizedCardLayout
|
|
853
|
-
| NormalizedRowLayout;
|
|
854
|
-
|
|
855
|
-
export type SimpleFormField = {
|
|
856
|
-
id: string;
|
|
857
|
-
layout?: Layout;
|
|
858
|
-
};
|
|
859
|
-
|
|
860
|
-
export type CombinedFormField = {
|
|
861
|
-
id: string;
|
|
862
|
-
label?: string;
|
|
863
|
-
description?: string;
|
|
864
|
-
layout?: Layout;
|
|
865
|
-
children: Array< FormField | string >;
|
|
866
|
-
summary?: string | string[];
|
|
867
|
-
};
|
|
868
|
-
|
|
869
|
-
export type FormField = SimpleFormField | CombinedFormField;
|
|
870
|
-
|
|
871
|
-
/**
|
|
872
|
-
* The form configuration.
|
|
873
|
-
*/
|
|
874
|
-
export type Form = {
|
|
875
|
-
layout?: Layout;
|
|
876
|
-
fields?: Array< FormField | string >;
|
|
877
|
-
};
|
|
878
|
-
|
|
879
|
-
export interface DataFormProps< Item > {
|
|
880
|
-
data: Item;
|
|
881
|
-
fields: Field< Item >[];
|
|
882
|
-
form: Form;
|
|
883
|
-
onChange: ( value: Record< string, any > ) => void;
|
|
884
|
-
}
|
|
885
|
-
|
|
886
|
-
export interface FieldLayoutProps< Item > {
|
|
887
|
-
data: Item;
|
|
888
|
-
field: FormField;
|
|
889
|
-
onChange: ( value: any ) => void;
|
|
890
|
-
hideLabelFromVision?: boolean;
|
|
891
|
-
}
|