@multiplatform.one/table 7.11.0 → 7.16.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/README.md +1 -1
- package/dist/cjs/components/ChildTable/index.cjs +8 -2
- package/dist/cjs/components/ChildTable/index.native.js +8 -2
- package/dist/cjs/components/ChildTable/index.native.js.map +1 -1
- package/dist/cjs/components/ColumnHeaderFilter/index.cjs +77 -111
- package/dist/cjs/components/ColumnHeaderFilter/index.native.js +89 -129
- package/dist/cjs/components/ColumnHeaderFilter/index.native.js.map +1 -1
- package/dist/cjs/components/DataTable/DataTableRoot.cjs +17 -1
- package/dist/cjs/components/DataTable/DataTableRoot.native.js +25 -2
- package/dist/cjs/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/cjs/components/DataTableBulkActions/index.cjs +1 -1
- package/dist/cjs/components/DataTableBulkActions/index.native.js +1 -1
- package/dist/cjs/components/DataTableBulkActions/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableCell/CellModalEditor.cjs +72 -70
- package/dist/cjs/components/DataTableCell/index.cjs +2 -2
- package/dist/cjs/components/DataTableCell/index.native.js +2 -11
- package/dist/cjs/components/DataTableCell/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableDateFilter/index.cjs +135 -158
- package/dist/cjs/components/DataTableDateFilter/index.native.js +153 -183
- package/dist/cjs/components/DataTableDateFilter/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableExport/index.cjs +122 -139
- package/dist/cjs/components/DataTableExport/index.native.js +135 -157
- package/dist/cjs/components/DataTableExport/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableGrouping/index.cjs +192 -212
- package/dist/cjs/components/DataTableGrouping/index.native.js +209 -230
- package/dist/cjs/components/DataTableGrouping/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableSearch/index.cjs +103 -115
- package/dist/cjs/components/DataTableSearch/index.native.js +111 -123
- package/dist/cjs/components/DataTableSearch/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableToolbar/index.cjs +44 -61
- package/dist/cjs/components/DataTableToolbar/index.native.js +46 -65
- package/dist/cjs/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/cjs/components/DataTableViewOptions/index.cjs +38 -54
- package/dist/cjs/components/DataTableViewOptions/index.native.js +40 -56
- package/dist/cjs/components/DataTableViewOptions/index.native.js.map +1 -1
- package/dist/cjs/components/FilterOperatorValueEditor/index.cjs +3 -11
- package/dist/cjs/components/FilterOperatorValueEditor/index.native.js +3 -11
- package/dist/cjs/components/FilterOperatorValueEditor/index.native.js.map +1 -1
- package/dist/cjs/components/SimpleTable/index.cjs +2 -6
- package/dist/cjs/components/SimpleTable/index.native.js +2 -6
- package/dist/cjs/components/SimpleTable/index.native.js.map +1 -1
- package/dist/cjs/components/TableInput/RowDetailEditor.cjs +190 -0
- package/dist/cjs/components/TableInput/RowDetailEditor.native.js +172 -0
- package/dist/cjs/components/TableInput/RowDetailEditor.native.js.map +1 -0
- package/dist/cjs/components/TableInput/index.cjs +42 -5
- package/dist/cjs/components/TableInput/index.native.js +64 -1
- package/dist/cjs/components/TableInput/index.native.js.map +1 -1
- package/dist/cjs/components/TableInput/shared.cjs +8 -0
- package/dist/cjs/components/TableInput/shared.native.js +10 -0
- package/dist/cjs/components/TableInput/shared.native.js.map +1 -1
- package/dist/cjs/hooks/useDataTable.cjs +11 -1
- package/dist/cjs/hooks/useDataTable.native.js +12 -2
- package/dist/cjs/hooks/useDataTable.native.js.map +1 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/utils/rowPress.cjs +4 -1
- package/dist/cjs/utils/rowPress.native.js +4 -1
- package/dist/cjs/utils/rowPress.native.js.map +1 -1
- package/dist/esm/components/ChildTable/index.mjs +8 -2
- package/dist/esm/components/ChildTable/index.mjs.map +1 -1
- package/dist/esm/components/ChildTable/index.native.js +8 -2
- package/dist/esm/components/ChildTable/index.native.js.map +1 -1
- package/dist/esm/components/ColumnHeaderFilter/index.mjs +80 -114
- package/dist/esm/components/ColumnHeaderFilter/index.mjs.map +1 -1
- package/dist/esm/components/ColumnHeaderFilter/index.native.js +92 -132
- package/dist/esm/components/ColumnHeaderFilter/index.native.js.map +1 -1
- package/dist/esm/components/DataTable/DataTableRoot.mjs +17 -1
- package/dist/esm/components/DataTable/DataTableRoot.mjs.map +1 -1
- package/dist/esm/components/DataTable/DataTableRoot.native.js +25 -2
- package/dist/esm/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/esm/components/DataTableBulkActions/index.mjs +1 -1
- package/dist/esm/components/DataTableBulkActions/index.mjs.map +1 -1
- package/dist/esm/components/DataTableBulkActions/index.native.js +1 -1
- package/dist/esm/components/DataTableBulkActions/index.native.js.map +1 -1
- package/dist/esm/components/DataTableCell/CellModalEditor.mjs +76 -74
- package/dist/esm/components/DataTableCell/CellModalEditor.mjs.map +1 -1
- package/dist/esm/components/DataTableCell/index.mjs +3 -3
- package/dist/esm/components/DataTableCell/index.mjs.map +1 -1
- package/dist/esm/components/DataTableCell/index.native.js +3 -12
- package/dist/esm/components/DataTableCell/index.native.js.map +1 -1
- package/dist/esm/components/DataTableDateFilter/index.mjs +137 -160
- package/dist/esm/components/DataTableDateFilter/index.mjs.map +1 -1
- package/dist/esm/components/DataTableDateFilter/index.native.js +155 -185
- package/dist/esm/components/DataTableDateFilter/index.native.js.map +1 -1
- package/dist/esm/components/DataTableExport/index.mjs +124 -141
- package/dist/esm/components/DataTableExport/index.mjs.map +1 -1
- package/dist/esm/components/DataTableExport/index.native.js +137 -159
- package/dist/esm/components/DataTableExport/index.native.js.map +1 -1
- package/dist/esm/components/DataTableGrouping/index.mjs +194 -214
- package/dist/esm/components/DataTableGrouping/index.mjs.map +1 -1
- package/dist/esm/components/DataTableGrouping/index.native.js +211 -232
- package/dist/esm/components/DataTableGrouping/index.native.js.map +1 -1
- package/dist/esm/components/DataTableSearch/index.mjs +105 -117
- package/dist/esm/components/DataTableSearch/index.mjs.map +1 -1
- package/dist/esm/components/DataTableSearch/index.native.js +113 -125
- package/dist/esm/components/DataTableSearch/index.native.js.map +1 -1
- package/dist/esm/components/DataTableToolbar/index.mjs +46 -63
- package/dist/esm/components/DataTableToolbar/index.mjs.map +1 -1
- package/dist/esm/components/DataTableToolbar/index.native.js +48 -67
- package/dist/esm/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/esm/components/DataTableViewOptions/index.mjs +40 -56
- package/dist/esm/components/DataTableViewOptions/index.mjs.map +1 -1
- package/dist/esm/components/DataTableViewOptions/index.native.js +42 -58
- package/dist/esm/components/DataTableViewOptions/index.native.js.map +1 -1
- package/dist/esm/components/FilterOperatorValueEditor/index.mjs +3 -11
- package/dist/esm/components/FilterOperatorValueEditor/index.mjs.map +1 -1
- package/dist/esm/components/FilterOperatorValueEditor/index.native.js +3 -11
- package/dist/esm/components/FilterOperatorValueEditor/index.native.js.map +1 -1
- package/dist/esm/components/SimpleTable/index.mjs +3 -7
- package/dist/esm/components/SimpleTable/index.mjs.map +1 -1
- package/dist/esm/components/SimpleTable/index.native.js +3 -7
- package/dist/esm/components/SimpleTable/index.native.js.map +1 -1
- package/dist/esm/components/TableInput/RowDetailEditor.mjs +165 -0
- package/dist/esm/components/TableInput/RowDetailEditor.mjs.map +1 -0
- package/dist/esm/components/TableInput/RowDetailEditor.native.js +144 -0
- package/dist/esm/components/TableInput/RowDetailEditor.native.js.map +1 -0
- package/dist/esm/components/TableInput/index.mjs +42 -5
- package/dist/esm/components/TableInput/index.mjs.map +1 -1
- package/dist/esm/components/TableInput/index.native.js +64 -1
- package/dist/esm/components/TableInput/index.native.js.map +1 -1
- package/dist/esm/components/TableInput/shared.mjs +7 -1
- package/dist/esm/components/TableInput/shared.mjs.map +1 -1
- package/dist/esm/components/TableInput/shared.native.js +9 -1
- package/dist/esm/components/TableInput/shared.native.js.map +1 -1
- package/dist/esm/hooks/useDataTable.mjs +11 -1
- package/dist/esm/hooks/useDataTable.mjs.map +1 -1
- package/dist/esm/hooks/useDataTable.native.js +12 -2
- package/dist/esm/hooks/useDataTable.native.js.map +1 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/utils/rowPress.mjs +4 -1
- package/dist/esm/utils/rowPress.mjs.map +1 -1
- package/dist/esm/utils/rowPress.native.js +4 -1
- package/dist/esm/utils/rowPress.native.js.map +1 -1
- package/dist/jsx/components/ChildTable/index.mjs +8 -2
- package/dist/jsx/components/ChildTable/index.mjs.map +1 -1
- package/dist/jsx/components/ChildTable/index.native.js +8 -2
- package/dist/jsx/components/ChildTable/index.native.js.map +1 -1
- package/dist/jsx/components/ColumnHeaderFilter/index.mjs +80 -114
- package/dist/jsx/components/ColumnHeaderFilter/index.mjs.map +1 -1
- package/dist/jsx/components/ColumnHeaderFilter/index.native.js +89 -129
- package/dist/jsx/components/ColumnHeaderFilter/index.native.js.map +1 -1
- package/dist/jsx/components/DataTable/DataTableRoot.mjs +17 -1
- package/dist/jsx/components/DataTable/DataTableRoot.mjs.map +1 -1
- package/dist/jsx/components/DataTable/DataTableRoot.native.js +25 -2
- package/dist/jsx/components/DataTable/DataTableRoot.native.js.map +1 -1
- package/dist/jsx/components/DataTableBulkActions/index.mjs +1 -1
- package/dist/jsx/components/DataTableBulkActions/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableBulkActions/index.native.js +1 -1
- package/dist/jsx/components/DataTableBulkActions/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableCell/CellModalEditor.mjs +76 -74
- package/dist/jsx/components/DataTableCell/CellModalEditor.mjs.map +1 -1
- package/dist/jsx/components/DataTableCell/index.mjs +3 -3
- package/dist/jsx/components/DataTableCell/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableCell/index.native.js +2 -11
- package/dist/jsx/components/DataTableCell/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableDateFilter/index.mjs +137 -160
- package/dist/jsx/components/DataTableDateFilter/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableDateFilter/index.native.js +153 -183
- package/dist/jsx/components/DataTableDateFilter/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableExport/index.mjs +124 -141
- package/dist/jsx/components/DataTableExport/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableExport/index.native.js +135 -157
- package/dist/jsx/components/DataTableExport/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableGrouping/index.mjs +194 -214
- package/dist/jsx/components/DataTableGrouping/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableGrouping/index.native.js +209 -230
- package/dist/jsx/components/DataTableGrouping/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableSearch/index.mjs +105 -117
- package/dist/jsx/components/DataTableSearch/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableSearch/index.native.js +111 -123
- package/dist/jsx/components/DataTableSearch/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableToolbar/index.mjs +46 -63
- package/dist/jsx/components/DataTableToolbar/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableToolbar/index.native.js +46 -65
- package/dist/jsx/components/DataTableToolbar/index.native.js.map +1 -1
- package/dist/jsx/components/DataTableViewOptions/index.mjs +40 -56
- package/dist/jsx/components/DataTableViewOptions/index.mjs.map +1 -1
- package/dist/jsx/components/DataTableViewOptions/index.native.js +40 -56
- package/dist/jsx/components/DataTableViewOptions/index.native.js.map +1 -1
- package/dist/jsx/components/FilterOperatorValueEditor/index.mjs +3 -11
- package/dist/jsx/components/FilterOperatorValueEditor/index.mjs.map +1 -1
- package/dist/jsx/components/FilterOperatorValueEditor/index.native.js +3 -11
- package/dist/jsx/components/FilterOperatorValueEditor/index.native.js.map +1 -1
- package/dist/jsx/components/SimpleTable/index.mjs +3 -7
- package/dist/jsx/components/SimpleTable/index.mjs.map +1 -1
- package/dist/jsx/components/SimpleTable/index.native.js +2 -6
- package/dist/jsx/components/SimpleTable/index.native.js.map +1 -1
- package/dist/jsx/components/TableInput/RowDetailEditor.mjs +165 -0
- package/dist/jsx/components/TableInput/RowDetailEditor.mjs.map +1 -0
- package/dist/jsx/components/TableInput/RowDetailEditor.native.js +172 -0
- package/dist/jsx/components/TableInput/RowDetailEditor.native.js.map +1 -0
- package/dist/jsx/components/TableInput/index.mjs +42 -5
- package/dist/jsx/components/TableInput/index.mjs.map +1 -1
- package/dist/jsx/components/TableInput/index.native.js +64 -1
- package/dist/jsx/components/TableInput/index.native.js.map +1 -1
- package/dist/jsx/components/TableInput/shared.mjs +7 -1
- package/dist/jsx/components/TableInput/shared.mjs.map +1 -1
- package/dist/jsx/components/TableInput/shared.native.js +10 -0
- package/dist/jsx/components/TableInput/shared.native.js.map +1 -1
- package/dist/jsx/hooks/useDataTable.mjs +11 -1
- package/dist/jsx/hooks/useDataTable.mjs.map +1 -1
- package/dist/jsx/hooks/useDataTable.native.js +12 -2
- package/dist/jsx/hooks/useDataTable.native.js.map +1 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/utils/rowPress.mjs +4 -1
- package/dist/jsx/utils/rowPress.mjs.map +1 -1
- package/dist/jsx/utils/rowPress.native.js +4 -1
- package/dist/jsx/utils/rowPress.native.js.map +1 -1
- package/package.json +14 -14
- package/src/components/ChildTable/childTable.cellHidden.spec.tsx +57 -0
- package/src/components/ChildTable/childTable.rowDetail.spec.tsx +120 -0
- package/src/components/ChildTable/index.tsx +16 -0
- package/src/components/ColumnHeaderFilter/index.tsx +89 -116
- package/src/components/DataTable/DataTable.stories.tsx +71 -6
- package/src/components/DataTable/DataTableRoot.tsx +27 -4
- package/src/components/DataTable/dataTableMobileCards.spec.tsx +1 -4
- package/src/components/DataTable/headerContainment.spec.tsx +91 -0
- package/src/components/DataTable/rowPress.spec.tsx +2 -6
- package/src/components/DataTableBulkActions/DataTableBulkActions.stories.tsx +5 -4
- package/src/components/DataTableBulkActions/index.tsx +1 -1
- package/src/components/DataTableCell/CellModalEditor.tsx +95 -75
- package/src/components/DataTableCell/cellDraftPolicy.spec.tsx +12 -2
- package/src/components/DataTableCell/cellModalEditor.spec.tsx +75 -49
- package/src/components/DataTableCell/dataTableCell.spec.tsx +31 -14
- package/src/components/DataTableCell/index.tsx +3 -2
- package/src/components/DataTableDateFilter/DataTableDateFilter.spec.tsx +6 -3
- package/src/components/DataTableDateFilter/index.tsx +151 -180
- package/src/components/DataTableExport/index.tsx +135 -142
- package/src/components/DataTableGrouping/index.tsx +193 -195
- package/src/components/DataTableSearch/index.tsx +111 -109
- package/src/components/DataTableToolbar/index.tsx +39 -46
- package/src/components/DataTableViewOptions/DataTableViewOptions.stories.tsx +52 -0
- package/src/components/DataTableViewOptions/index.tsx +32 -40
- package/src/components/FilterOperatorValueEditor/FilterOperatorValueEditor.spec.tsx +64 -2
- package/src/components/FilterOperatorValueEditor/index.tsx +0 -8
- package/src/components/SimpleTable/index.tsx +3 -2
- package/src/components/SimpleTable/simpleTable.spec.tsx +15 -0
- package/src/components/Table/accessibility.spec.tsx +7 -19
- package/src/components/TableInput/RowDetailEditor.native.tsx +134 -0
- package/src/components/TableInput/RowDetailEditor.tsx +173 -0
- package/src/components/TableInput/index.native.tsx +49 -1
- package/src/components/TableInput/index.tsx +65 -10
- package/src/components/TableInput/shared.ts +29 -0
- package/src/components/tableDropdowns.spec.tsx +172 -0
- package/src/hooks/useDataTable.spec.ts +39 -0
- package/src/hooks/useDataTable.ts +15 -1
- package/src/index.ts +1 -0
- package/src/utils/rowPress.ts +3 -0
- package/types/components/ChildTable/index.d.ts +10 -0
- package/types/components/ChildTable/index.d.ts.map +1 -1
- package/types/components/ColumnHeaderFilter/index.d.ts +1 -1
- package/types/components/ColumnHeaderFilter/index.d.ts.map +1 -1
- package/types/components/DataTable/DataTableRoot.d.ts.map +1 -1
- package/types/components/DataTableCell/CellModalEditor.d.ts +10 -7
- package/types/components/DataTableCell/CellModalEditor.d.ts.map +1 -1
- package/types/components/DataTableCell/index.d.ts.map +1 -1
- package/types/components/DataTableDateFilter/index.d.ts.map +1 -1
- package/types/components/DataTableGrouping/index.d.ts.map +1 -1
- package/types/components/DataTableSearch/index.d.ts.map +1 -1
- package/types/components/FilterOperatorValueEditor/index.d.ts.map +1 -1
- package/types/components/SimpleTable/index.d.ts.map +1 -1
- package/types/components/TableInput/RowDetailEditor.d.ts +24 -0
- package/types/components/TableInput/RowDetailEditor.d.ts.map +1 -0
- package/types/components/TableInput/RowDetailEditor.native.d.ts +11 -0
- package/types/components/TableInput/RowDetailEditor.native.d.ts.map +1 -0
- package/types/components/TableInput/index.d.ts +11 -2
- package/types/components/TableInput/index.d.ts.map +1 -1
- package/types/components/TableInput/index.native.d.ts +8 -1
- package/types/components/TableInput/index.native.d.ts.map +1 -1
- package/types/components/TableInput/shared.d.ts +11 -0
- package/types/components/TableInput/shared.d.ts.map +1 -1
- package/types/hooks/useDataTable.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/utils/rowPress.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__reExport","mod","secondTarget","__toCommonJS","value","index_exports","ChildTable","import_ChildTable","DEFAULT_PAGE_SIZE","import_paginationDefaults","DEFAULT_PAGE_SIZE_OPTIONS","DataTable","import_DataTable","DataTableBulkActions","import_DataTableBulkActions2","DataTableCell","import_DataTableCell","DataTableColumnPinning","import_DataTableColumnPinning","DataTableContext","import_DataTableContext","DataTableDateFilter","import_DataTableDateFilter","DataTableExport","import_DataTableExport","DataTableFacetMenu","import_DataTableFacetMenu","DataTableFilterButton","import_DataTableFilterButton","DataTableFilterChips","import_DataTableFilterChips","DataTableFilters","import_DataTableFilters","DataTableGrouping","import_DataTableGrouping","DataTableGroupingConfig","DataTablePagination","import_DataTablePagination","DataTableSearch","import_DataTableSearch","DataTableStateContext","import_DataTableStateContext","DataTableToolbar","import_DataTableToolbar","DataTableViewOptions","import_DataTableViewOptions","DataTableVirtualized","import_DataTableVirtualized","FilterManager","import_FilterManager","FilterOperatorValueEditor","import_FilterOperatorValueEditor","SavedFilterDropdown","import_SavedFilterDropdown","SimpleTable","import_SimpleTable","Table","import_table_primitives","TableCellContext","TableInput","import_TableInput","accumulateRows","import_rowAccumulator","addMoney","import_money","alignToFlex","import_columnAlign","applyFiltersToData","import_filterFields","compareMoney","createUrlStrategy","import_useDataTable","defaultOperatorForFilterType","filterOperatorLabel","formatMoney","getDefaultColumnAlign","getFilterChipLabel","getFilterFieldType","groupData","isFilterValueShape","isMoneyString","isNegativeMoney","mapFieldToFilterType","moneyComparator","operatorNeedsNoValue","operatorsForFilterType","resolveFilterFields","subtractMoney","sumMoney","sumMoneyByCurrency","useColumnPinning","useDataTable","useDataTableState","useDateFilter","useDragScroll","import_useDragScroll","useFullTextSearch","useGrouping","useInfiniteRows","import_useInfiniteRows","useIsInTableCell","useRowSelection","import_DataTableBulkActions","useSavedFilters","import_useSavedFilters","useTableCellContext","useTableColumnPinning","import_useTableColumnPinning","useTableFiltering","import_useTableFiltering","useTableGrouping","import_useTableGrouping","useTableKeyboard","import_useTableKeyboard","useTablePagination","import_useTablePagination","useTableSearch","import_useTableSearch","useTableSelection","import_useTableSelection","useTableSorting","import_useTableSorting","useTableUrlSync","import_useTableUrlSync","useTableViews","import_useTableViews","module","exports","require"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__reExport","mod","secondTarget","__toCommonJS","value","index_exports","ChildTable","import_ChildTable","DEFAULT_PAGE_SIZE","import_paginationDefaults","DEFAULT_PAGE_SIZE_OPTIONS","DataTable","import_DataTable","DataTableBulkActions","import_DataTableBulkActions2","DataTableCell","import_DataTableCell","DataTableColumnPinning","import_DataTableColumnPinning","DataTableContext","import_DataTableContext","DataTableDateFilter","import_DataTableDateFilter","DataTableExport","import_DataTableExport","DataTableFacetMenu","import_DataTableFacetMenu","DataTableFilterButton","import_DataTableFilterButton","DataTableFilterChips","import_DataTableFilterChips","DataTableFilters","import_DataTableFilters","DataTableGrouping","import_DataTableGrouping","DataTableGroupingConfig","DataTablePagination","import_DataTablePagination","DataTableSearch","import_DataTableSearch","DataTableStateContext","import_DataTableStateContext","DataTableToolbar","import_DataTableToolbar","DataTableViewOptions","import_DataTableViewOptions","DataTableVirtualized","import_DataTableVirtualized","FilterManager","import_FilterManager","FilterOperatorValueEditor","import_FilterOperatorValueEditor","SavedFilterDropdown","import_SavedFilterDropdown","SimpleTable","import_SimpleTable","Table","import_table_primitives","TableCellContext","TableInput","import_TableInput","accumulateRows","import_rowAccumulator","addMoney","import_money","alignToFlex","import_columnAlign","applyFiltersToData","import_filterFields","compareMoney","createUrlStrategy","import_useDataTable","defaultOperatorForFilterType","filterOperatorLabel","formatMoney","getDefaultColumnAlign","getFilterChipLabel","getFilterFieldType","groupData","isFilterValueShape","isMoneyString","isNegativeMoney","mapFieldToFilterType","moneyComparator","operatorNeedsNoValue","operatorsForFilterType","resolveFilterFields","subtractMoney","sumMoney","sumMoneyByCurrency","useColumnPinning","useDataTable","useDataTableState","useDateFilter","useDragScroll","import_useDragScroll","useFullTextSearch","useGrouping","useInfiniteRows","import_useInfiniteRows","useIsInTableCell","useRowSelection","import_DataTableBulkActions","useSavedFilters","import_useSavedFilters","useTableCellContext","useTableColumnPinning","import_useTableColumnPinning","useTableFiltering","import_useTableFiltering","useTableGrouping","import_useTableGrouping","useTableKeyboard","import_useTableKeyboard","useTablePagination","import_useTablePagination","useTableSearch","import_useTableSearch","useTableSelection","import_useTableSelection","useTableSorting","import_useTableSorting","useTableUrlSync","import_useTableUrlSync","useTableViews","import_useTableViews","module","exports","require"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
const INTERACTIVE_SELECTOR = ["a[href]", "button", "input", "select", "textarea", "label", '[contenteditable="true"]', '[role="button"]', '[role="checkbox"]', '[role="combobox"]', '[role="link"]', '[role="menuitem"]', '[role="option"]', '[role="radio"]', '[role="slider"]', '[role="spinbutton"]', '[role="switch"]', '[role="textbox"]',
|
|
2
2
|
// Expand/collapse toggles (the row-expansion caret) predate a role — the
|
|
3
3
|
// expanded-state attribute is their detectable interactivity signal.
|
|
4
|
-
"[aria-expanded]"
|
|
4
|
+
"[aria-expanded]",
|
|
5
|
+
// A cell editor's floating panel is portaled out of the row (MPO-335), and
|
|
6
|
+
// React still bubbles its presses to the row: all of it is inner control.
|
|
7
|
+
"[data-fp-portal]"].join(", ");
|
|
5
8
|
function isInteractiveInnerTarget(target, boundary) {
|
|
6
9
|
if (typeof Element === "undefined") return false;
|
|
7
10
|
if (!(target instanceof Element)) return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["INTERACTIVE_SELECTOR","join","isInteractiveInnerTarget","target","boundary","Element","boundaryEl","node","matches","tabIndex","getAttribute","Number","parentElement"],"sources":["../../../src/utils/rowPress.ts"],"sourcesContent":[null],"mappings":"AAaA,MAAMA,oBAAA,GAAuB,CAC3B,WACA,UACA,SACA,UACA,YACA,SACA,4BACA,mBACA,qBACA,qBACA,iBACA,qBACA,mBACA,kBACA,mBACA,uBACA,mBACA;AAAA;AAAA;AAGA,
|
|
1
|
+
{"version":3,"names":["INTERACTIVE_SELECTOR","join","isInteractiveInnerTarget","target","boundary","Element","boundaryEl","node","matches","tabIndex","getAttribute","Number","parentElement"],"sources":["../../../src/utils/rowPress.ts"],"sourcesContent":[null],"mappings":"AAaA,MAAMA,oBAAA,GAAuB,CAC3B,WACA,UACA,SACA,UACA,YACA,SACA,4BACA,mBACA,qBACA,qBACA,iBACA,qBACA,mBACA,kBACA,mBACA,uBACA,mBACA;AAAA;AAAA;AAGA;AAAA;AAAA;AAGA,mBACF,CAAEC,IAAA,CAAK,IAAI;AAQJ,SAASC,yBAAyBC,MAAA,EAAiBC,QAAA,EAA4B;EACpF,IAAI,OAAOC,OAAA,KAAY,aAAa,OAAO;EAC3C,IAAI,EAAEF,MAAA,YAAkBE,OAAA,GAAU,OAAO;EACzC,MAAMC,UAAA,GAAaF,QAAA,YAAoBC,OAAA,GAAUD,QAAA,GAAW;EAC5D,IAAIG,IAAA,GAAuBJ,MAAA;EAC3B,OAAOI,IAAA,IAAQA,IAAA,KAASD,UAAA,EAAY;IAClC,IAAIC,IAAA,CAAKC,OAAA,CAAQR,oBAAoB,GAAG,OAAO;IAC/C,MAAMS,QAAA,GAAWF,IAAA,CAAKG,YAAA,CAAa,UAAU;IAG7C,IAAID,QAAA,IAAY,QAAQE,MAAA,CAAOF,QAAQ,KAAK,GAAG,OAAO;IACtDF,IAAA,GAAOA,IAAA,CAAKK,aAAA;EACd;EACA,OAAO;AACT","ignoreList":[]}
|
|
@@ -39,7 +39,10 @@ function _instanceof(left, right) {
|
|
|
39
39
|
var INTERACTIVE_SELECTOR = ["a[href]", "button", "input", "select", "textarea", "label", '[contenteditable="true"]', '[role="button"]', '[role="checkbox"]', '[role="combobox"]', '[role="link"]', '[role="menuitem"]', '[role="option"]', '[role="radio"]', '[role="slider"]', '[role="spinbutton"]', '[role="switch"]', '[role="textbox"]',
|
|
40
40
|
// Expand/collapse toggles (the row-expansion caret) predate a role — the
|
|
41
41
|
// expanded-state attribute is their detectable interactivity signal.
|
|
42
|
-
"[aria-expanded]"
|
|
42
|
+
"[aria-expanded]",
|
|
43
|
+
// A cell editor's floating panel is portaled out of the row (MPO-335), and
|
|
44
|
+
// React still bubbles its presses to the row: all of it is inner control.
|
|
45
|
+
"[data-fp-portal]"].join(", ");
|
|
43
46
|
function isInteractiveInnerTarget(target, boundary) {
|
|
44
47
|
if (typeof Element === "undefined") return false;
|
|
45
48
|
if (!_instanceof(target, Element)) return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","rowPress_exports","isInteractiveInnerTarget","module","exports","_instanceof","left","right","Symbol","hasInstance","INTERACTIVE_SELECTOR"],"sources":["../../../src/utils/rowPress.ts"],"sourcesContent":[null],"mappings":"AAaA,YAAM;;AAAuB,IAC3BA,SAAA,GAAAC,MAAA,CAAAC,cAAA;AAAA,IACAC,gBAAA,GAAAF,MAAA,CAAAG,wBAAA;AAAA,IACAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAAA,IACAC,YAAA,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAAA,IACAC,QAAA,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EACA,SAAAC,IAAA,IAAAD,GAAA,EACAZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AACA,IACAC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACA,IAAAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IACA,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACA,KAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACAnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACA;EACA,OAAAE,EAAA;AAAA;AACA,IACAM,YAAA,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IACAE,gBAAA;AAAAhB,QAAA,CAAAgB,gBAAA;EAAAC,wBAAA,EAAAA,CAAA,KAAAA;AAAA,EAGA;
|
|
1
|
+
{"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","rowPress_exports","isInteractiveInnerTarget","module","exports","_instanceof","left","right","Symbol","hasInstance","INTERACTIVE_SELECTOR"],"sources":["../../../src/utils/rowPress.ts"],"sourcesContent":[null],"mappings":"AAaA,YAAM;;AAAuB,IAC3BA,SAAA,GAAAC,MAAA,CAAAC,cAAA;AAAA,IACAC,gBAAA,GAAAF,MAAA,CAAAG,wBAAA;AAAA,IACAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAAA,IACAC,YAAA,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAAA,IACAC,QAAA,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EACA,SAAAC,IAAA,IAAAD,GAAA,EACAZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AACA,IACAC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACA,IAAAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IACA,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACA,KAAAX,YAAA,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACAnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACA;EACA,OAAAE,EAAA;AAAA;AACA,IACAM,YAAA,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IACAE,gBAAA;AAAAhB,QAAA,CAAAgB,gBAAA;EAAAC,wBAAA,EAAAA,CAAA,KAAAA;AAAA,EAGA;AAAAC,MAAA,CAAAC,OAAA,GAAAN,YAAA,CAAAG,gBAAA;AAAA,SAAAI,YAAAC,IAAA,EAAAC,KAAA;EAGA;;EACA,IAAAA,KAAS,mBAAAC,MAAA,oBAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IAQJ,OAAS,EAAAF,KAAA,CAAAC,MAAA,CAAAC,WAAyB,EAAAH,IAAiB;EACxD,OAAI;IACJ,OAAMA,IAAA,YAAkBC,KAAA;EACxB;AACA;AACA,IAAAG,oBAAe,GAAS,CACtB,SAAI,EACJ,QAAM,EAGN,OAAI,EACJ,UACF,YACA,OAAO,EACT,4B","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplatform.one/table",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.16.0",
|
|
4
4
|
"description": "Advanced table components with filtering, pagination, sorting, and URL state management",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cross-platform",
|
|
@@ -18,14 +18,14 @@
|
|
|
18
18
|
],
|
|
19
19
|
"homepage": "https://multiplatform.one",
|
|
20
20
|
"bugs": {
|
|
21
|
-
"url": "https://
|
|
21
|
+
"url": "https://projects.corp.bitspur.com/tracker/MPO",
|
|
22
22
|
"email": "support@risserlabs.com"
|
|
23
23
|
},
|
|
24
24
|
"license": "Apache-2.0",
|
|
25
25
|
"author": "BitSpur <support@risserlabs.com> (https://risserlabs.com)",
|
|
26
26
|
"repository": {
|
|
27
27
|
"type": "git",
|
|
28
|
-
"url": "git+https://
|
|
28
|
+
"url": "git+https://git.corp.bitspur.com/multiplatform.one/mpo.git",
|
|
29
29
|
"directory": "public/table"
|
|
30
30
|
},
|
|
31
31
|
"source": "src/index.ts",
|
|
@@ -74,13 +74,13 @@
|
|
|
74
74
|
"access": "public"
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"@multiplatform.one/components": "7.
|
|
78
|
-
"@multiplatform.one/forms": "7.
|
|
79
|
-
"@multiplatform.one/platform": "7.
|
|
80
|
-
"@multiplatform.one/rich-text": "7.
|
|
81
|
-
"@multiplatform.one/router": "7.
|
|
82
|
-
"@multiplatform.one/table-primitives": "7.
|
|
83
|
-
"@multiplatform.one/theme": "7.
|
|
77
|
+
"@multiplatform.one/components": "7.16.0",
|
|
78
|
+
"@multiplatform.one/forms": "7.16.0",
|
|
79
|
+
"@multiplatform.one/platform": "7.16.0",
|
|
80
|
+
"@multiplatform.one/rich-text": "7.16.0",
|
|
81
|
+
"@multiplatform.one/router": "7.16.0",
|
|
82
|
+
"@multiplatform.one/table-primitives": "7.16.0",
|
|
83
|
+
"@multiplatform.one/theme": "7.16.0",
|
|
84
84
|
"@phosphor-icons/react": "^2.1.10",
|
|
85
85
|
"@shopify/flash-list": "^2.3.1",
|
|
86
86
|
"@tamagui/roving-focus": "2.7.6",
|
|
@@ -89,10 +89,10 @@
|
|
|
89
89
|
"tamagui": "2.7.6"
|
|
90
90
|
},
|
|
91
91
|
"devDependencies": {
|
|
92
|
-
"@multiplatform.one/config": "7.
|
|
93
|
-
"@multiplatform.one/router": "7.
|
|
94
|
-
"@multiplatform.one/storybook": "7.
|
|
95
|
-
"@multiplatform.one/test-utils": "7.
|
|
92
|
+
"@multiplatform.one/config": "7.16.0",
|
|
93
|
+
"@multiplatform.one/router": "7.16.0",
|
|
94
|
+
"@multiplatform.one/storybook": "7.16.0",
|
|
95
|
+
"@multiplatform.one/test-utils": "7.16.0",
|
|
96
96
|
"@tamagui/build": "2.7.6",
|
|
97
97
|
"@testing-library/react": "^16.3.2",
|
|
98
98
|
"@types/react-dom": "^19.2.3",
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { fireEvent, screen, waitFor, within } from "@testing-library/react";
|
|
3
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
4
|
+
import { describe, expect, it, vi } from "vitest";
|
|
5
|
+
import { ChildTable } from "./index";
|
|
6
|
+
import type { DataTableColumn, DataTableData } from "../../types";
|
|
7
|
+
|
|
8
|
+
interface SerialRow extends DataTableData {
|
|
9
|
+
id: string;
|
|
10
|
+
item: string;
|
|
11
|
+
serial: string;
|
|
12
|
+
tracked: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const columns: DataTableColumn<SerialRow>[] = [
|
|
16
|
+
{ accessorKey: "item", header: "Item", field: "input" },
|
|
17
|
+
{ accessorKey: "serial", header: "Serial", field: "input" },
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
const rows: SerialRow[] = [
|
|
21
|
+
{ id: "a", item: "Drill", serial: "SN-1", tracked: true },
|
|
22
|
+
{ id: "b", item: "Screws", serial: "SN-2", tracked: false },
|
|
23
|
+
];
|
|
24
|
+
|
|
25
|
+
const isCellHidden = (row: SerialRow, columnId: string) => columnId === "serial" && !row.tracked;
|
|
26
|
+
|
|
27
|
+
describe("ChildTable isCellHidden (MPO-22)", () => {
|
|
28
|
+
it("blanks the cell on the rows it names and nowhere else", () => {
|
|
29
|
+
renderWithProviders(
|
|
30
|
+
<ChildTable<SerialRow>
|
|
31
|
+
value={rows}
|
|
32
|
+
columns={columns}
|
|
33
|
+
isCellHidden={isCellHidden}
|
|
34
|
+
onChange={vi.fn()}
|
|
35
|
+
/>,
|
|
36
|
+
);
|
|
37
|
+
const serials = screen.getAllByLabelText("Serial") as HTMLInputElement[];
|
|
38
|
+
expect(serials.map((input) => input.value)).toEqual(["SN-1"]);
|
|
39
|
+
expect(screen.getAllByLabelText("Item")).toHaveLength(2);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it("drops the same field from that row's detail editor", async () => {
|
|
43
|
+
renderWithProviders(
|
|
44
|
+
<ChildTable<SerialRow>
|
|
45
|
+
value={rows}
|
|
46
|
+
columns={columns}
|
|
47
|
+
rowDetail
|
|
48
|
+
isCellHidden={isCellHidden}
|
|
49
|
+
onChange={vi.fn()}
|
|
50
|
+
/>,
|
|
51
|
+
);
|
|
52
|
+
fireEvent.click(screen.getByRole("button", { name: "Edit row 2" }));
|
|
53
|
+
const dialog = await waitFor(() => screen.getByRole("dialog", { name: "Row 2" }));
|
|
54
|
+
expect(within(dialog).getByLabelText("Item")).toBeTruthy();
|
|
55
|
+
expect(within(dialog).queryByLabelText("Serial")).toBeNull();
|
|
56
|
+
});
|
|
57
|
+
});
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { fireEvent, screen, waitFor, within } from "@testing-library/react";
|
|
3
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
4
|
+
import { describe, expect, it, vi } from "vitest";
|
|
5
|
+
import { ChildTable } from "./index";
|
|
6
|
+
import type { DataTableColumn, DataTableData } from "../../types";
|
|
7
|
+
|
|
8
|
+
interface ItemRow extends DataTableData {
|
|
9
|
+
id: string;
|
|
10
|
+
item: string;
|
|
11
|
+
notes: string;
|
|
12
|
+
uom: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const columns: DataTableColumn<ItemRow>[] = [
|
|
16
|
+
{ accessorKey: "item", header: "Item", field: "input" },
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
const detailColumns: DataTableColumn<ItemRow>[] = [
|
|
20
|
+
{ accessorKey: "item", header: "Item", field: "input" },
|
|
21
|
+
{ accessorKey: "uom", header: "UOM", field: "input" },
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const initial: ItemRow[] = [
|
|
25
|
+
{ id: "a", item: "Bracket", notes: "", uom: "Nos" },
|
|
26
|
+
{ id: "b", item: "Bolts", notes: "", uom: "Box" },
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
function Harness({ onChange }: { onChange: (rows: ItemRow[]) => void }) {
|
|
30
|
+
const [value, setValue] = React.useState(initial);
|
|
31
|
+
return (
|
|
32
|
+
<ChildTable<ItemRow>
|
|
33
|
+
value={value}
|
|
34
|
+
columns={columns}
|
|
35
|
+
detailColumns={detailColumns}
|
|
36
|
+
rowDetail
|
|
37
|
+
onChange={(rows) => {
|
|
38
|
+
setValue(rows);
|
|
39
|
+
onChange(rows);
|
|
40
|
+
}}
|
|
41
|
+
/>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async function openRow(trigger: string, row: number) {
|
|
46
|
+
fireEvent.click(screen.getByRole("button", { name: trigger }));
|
|
47
|
+
return waitFor(() => screen.getByRole("dialog", { name: `Row ${row}` }));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function editText(dialog: HTMLElement, label: string, value: string) {
|
|
51
|
+
const input = within(dialog).getByLabelText(label) as HTMLInputElement;
|
|
52
|
+
fireEvent.focus(input);
|
|
53
|
+
fireEvent.change(input, { target: { value } });
|
|
54
|
+
fireEvent.blur(input);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
describe("ChildTable row detail editor (MPO-22)", () => {
|
|
58
|
+
it("opens a row in a detail editor with fields the grid does not show", async () => {
|
|
59
|
+
renderWithProviders(<Harness onChange={vi.fn()} />);
|
|
60
|
+
expect(screen.queryByLabelText("UOM")).toBeNull();
|
|
61
|
+
|
|
62
|
+
const dialog = await openRow("Edit row 2", 2);
|
|
63
|
+
expect((within(dialog).getByLabelText("Item") as HTMLInputElement).value).toBe("Bolts");
|
|
64
|
+
expect((within(dialog).getByLabelText("UOM") as HTMLInputElement).value).toBe("Box");
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it("Done writes the edited row back once, other rows untouched", async () => {
|
|
68
|
+
const onChange = vi.fn();
|
|
69
|
+
renderWithProviders(<Harness onChange={onChange} />);
|
|
70
|
+
|
|
71
|
+
const dialog = await openRow("Edit row 2", 2);
|
|
72
|
+
editText(dialog, "UOM", "Pair");
|
|
73
|
+
expect(onChange).not.toHaveBeenCalled();
|
|
74
|
+
fireEvent.click(within(dialog).getByRole("button", { name: "Done" }));
|
|
75
|
+
|
|
76
|
+
expect(onChange).toHaveBeenCalledTimes(1);
|
|
77
|
+
expect(onChange.mock.calls[0][0]).toEqual([
|
|
78
|
+
initial[0],
|
|
79
|
+
{ id: "b", item: "Bolts", notes: "", uom: "Pair" },
|
|
80
|
+
]);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it("Cancel discards the draft", async () => {
|
|
84
|
+
const onChange = vi.fn();
|
|
85
|
+
renderWithProviders(<Harness onChange={onChange} />);
|
|
86
|
+
|
|
87
|
+
const dialog = await openRow("Edit row 1", 1);
|
|
88
|
+
editText(dialog, "Item", "Hinge");
|
|
89
|
+
fireEvent.click(within(dialog).getByRole("button", { name: "Cancel" }));
|
|
90
|
+
|
|
91
|
+
await waitFor(() => expect(screen.queryByRole("dialog", { name: "Row 1" })).toBeNull());
|
|
92
|
+
expect(onChange).not.toHaveBeenCalled();
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
it("a read-only table opens the row for viewing with Close only", async () => {
|
|
96
|
+
renderWithProviders(
|
|
97
|
+
<ChildTable<ItemRow>
|
|
98
|
+
value={initial}
|
|
99
|
+
columns={columns}
|
|
100
|
+
detailColumns={detailColumns}
|
|
101
|
+
rowDetail
|
|
102
|
+
readOnly
|
|
103
|
+
onChange={vi.fn()}
|
|
104
|
+
/>,
|
|
105
|
+
);
|
|
106
|
+
expect(screen.queryByRole("button", { name: /Edit row/ })).toBeNull();
|
|
107
|
+
|
|
108
|
+
const dialog = await openRow("View row 1", 1);
|
|
109
|
+
expect(within(dialog).getByText("Nos")).toBeTruthy();
|
|
110
|
+
expect(within(dialog).queryByRole("button", { name: "Done" })).toBeNull();
|
|
111
|
+
expect(within(dialog).getByRole("button", { name: "Close" })).toBeTruthy();
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
it("is opt-in: no detail button without rowDetail", () => {
|
|
115
|
+
renderWithProviders(
|
|
116
|
+
<ChildTable<ItemRow> value={initial} columns={columns} onChange={vi.fn()} />,
|
|
117
|
+
);
|
|
118
|
+
expect(screen.queryByRole("button", { name: /Edit row/ })).toBeNull();
|
|
119
|
+
});
|
|
120
|
+
});
|
|
@@ -3,6 +3,7 @@ import { renumberIdx } from "@multiplatform.one/components";
|
|
|
3
3
|
import { FieldLayout, useFormField, type AnyFormApi } from "@multiplatform.one/forms";
|
|
4
4
|
import { useProps, YStack } from "tamagui";
|
|
5
5
|
import { TableInput } from "../TableInput";
|
|
6
|
+
import type { ChildCellHidden } from "../TableInput/shared";
|
|
6
7
|
import type { DataTableColumn, DataTableData } from "../../types";
|
|
7
8
|
|
|
8
9
|
export type ChildTableProps<TRow extends DataTableData = DataTableData> = {
|
|
@@ -32,6 +33,15 @@ export type ChildTableProps<TRow extends DataTableData = DataTableData> = {
|
|
|
32
33
|
* read-only or disabled. A committed drop rewrites `idx` 1..n (MPO-22).
|
|
33
34
|
*/
|
|
34
35
|
enableReorder?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Per-row button that opens the row in a detail editor over
|
|
38
|
+
* `detailColumns` (default `columns`). Opt-in; a read-only table opens
|
|
39
|
+
* the row for viewing (MPO-22).
|
|
40
|
+
*/
|
|
41
|
+
rowDetail?: boolean;
|
|
42
|
+
detailColumns?: DataTableColumn<TRow>[];
|
|
43
|
+
/** Hides one row's cell, in the grid and in the detail editor (MPO-22). */
|
|
44
|
+
isCellHidden?: ChildCellHidden<TRow>;
|
|
35
45
|
};
|
|
36
46
|
|
|
37
47
|
/**
|
|
@@ -84,6 +94,9 @@ export function ChildTable<TRow extends DataTableData = DataTableData>(
|
|
|
84
94
|
required,
|
|
85
95
|
id: idProp,
|
|
86
96
|
enableReorder: enableReorderProp,
|
|
97
|
+
rowDetail,
|
|
98
|
+
detailColumns,
|
|
99
|
+
isCellHidden,
|
|
87
100
|
} = useProps(props);
|
|
88
101
|
|
|
89
102
|
const { knobProps, id, resolvedForm } = useFormField({ form, id: idProp, compact });
|
|
@@ -124,6 +137,9 @@ export function ChildTable<TRow extends DataTableData = DataTableData>(
|
|
|
124
137
|
showDeleteRow={showDeleteRow && !readOnly && !disabled}
|
|
125
138
|
compact={compact}
|
|
126
139
|
enableReorder={enableReorder && !readOnly && !disabled}
|
|
140
|
+
rowDetail={rowDetail}
|
|
141
|
+
detailColumns={detailColumns}
|
|
142
|
+
isCellHidden={isCellHidden}
|
|
127
143
|
/>
|
|
128
144
|
);
|
|
129
145
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ColumnHeaderFilter - Filter
|
|
2
|
+
* ColumnHeaderFilter - Filter panel for individual column headers
|
|
3
3
|
* AG Grid style column filtering with operators and value inputs
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { FunnelIcon } from "@phosphor-icons/react";
|
|
7
|
-
import { Button } from "@multiplatform.one/forms";
|
|
7
|
+
import { Button, FloatingPanel } from "@multiplatform.one/forms";
|
|
8
8
|
import {
|
|
9
9
|
ensureCompositeFocusRing,
|
|
10
10
|
MIN_PRESS_TARGET,
|
|
@@ -14,9 +14,9 @@ import {
|
|
|
14
14
|
useResolvedKnobs,
|
|
15
15
|
useGlyphColor,
|
|
16
16
|
} from "@multiplatform.one/theme";
|
|
17
|
-
import {
|
|
17
|
+
import { useState } from "react";
|
|
18
18
|
import { Tooltip } from "@multiplatform.one/components";
|
|
19
|
-
import {
|
|
19
|
+
import { Text, View, XStack, YStack } from "tamagui";
|
|
20
20
|
import { t } from "../../shared/t";
|
|
21
21
|
import type { DataTableColumnType, FilterOperator } from "../../types";
|
|
22
22
|
import { iconSizeForToken } from "../../utils/chromeIcons";
|
|
@@ -67,11 +67,6 @@ export function ColumnHeaderFilter({
|
|
|
67
67
|
const idleColor = useGlyphColor("$color11");
|
|
68
68
|
const activeColor = useAccentOnSurface();
|
|
69
69
|
const glyphColor = isFiltered ? activeColor : idleColor;
|
|
70
|
-
// The nested Tooltip has its own Popper context. Keep this trigger and
|
|
71
|
-
// editor anchored to the same instance rather than its nearest overlay.
|
|
72
|
-
const popoverScope = useId();
|
|
73
|
-
const triggerRef = useRef<TamaguiElement | null>(null);
|
|
74
|
-
const returnFocusRef = useRef(true);
|
|
75
70
|
ensureCompositeFocusRing();
|
|
76
71
|
const iconPx = iconSizeForToken(String(knobProps.sizeToken));
|
|
77
72
|
const [open, setOpen] = useState(false);
|
|
@@ -110,118 +105,96 @@ export function ColumnHeaderFilter({
|
|
|
110
105
|
onFilterChange(undefined);
|
|
111
106
|
};
|
|
112
107
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}) as unknown as () => void
|
|
148
|
-
}
|
|
149
|
-
onPress={(e) => {
|
|
150
|
-
e.stopPropagation();
|
|
151
|
-
handleOpenChange(true);
|
|
152
|
-
}}
|
|
153
|
-
role="button"
|
|
154
|
-
aria-label={`Filter column ${columnLabel}`}
|
|
155
|
-
>
|
|
156
|
-
<View
|
|
157
|
-
className="mp-chip-dismiss-ring"
|
|
158
|
-
padding="$1"
|
|
159
|
-
borderRadius="$2"
|
|
160
|
-
alignItems="center"
|
|
161
|
-
justifyContent="center"
|
|
162
|
-
hoverStyle={{ backgroundColor: "$color4" }}
|
|
163
|
-
pressStyle={{ backgroundColor: "$color5" }}
|
|
164
|
-
>
|
|
165
|
-
<FunnelIcon
|
|
166
|
-
size={iconPx}
|
|
167
|
-
color={glyphColor}
|
|
168
|
-
weight={isFiltered ? "fill" : "regular"}
|
|
169
|
-
/>
|
|
170
|
-
</View>
|
|
171
|
-
</View>
|
|
172
|
-
</Popover.Trigger>
|
|
173
|
-
</Tooltip>
|
|
174
|
-
</Popover.Anchor>
|
|
175
|
-
|
|
176
|
-
<Popover.Content
|
|
177
|
-
scope={popoverScope}
|
|
178
|
-
onPointerDownOutside={() => {
|
|
179
|
-
returnFocusRef.current = false;
|
|
180
|
-
}}
|
|
181
|
-
onCloseAutoFocus={(event) => {
|
|
182
|
-
event.preventDefault();
|
|
183
|
-
if (isWeb && returnFocusRef.current) {
|
|
184
|
-
(triggerRef.current as HTMLElement | null)?.focus();
|
|
185
|
-
}
|
|
186
|
-
returnFocusRef.current = true;
|
|
108
|
+
// The panel owns the pointer toggle (mousedown) and the keyboard-synthesized
|
|
109
|
+
// click. The trigger only stops the click reaching the header's sort press
|
|
110
|
+
// and opens on Enter/Space, which a role=button div does not synthesize.
|
|
111
|
+
const trigger = (
|
|
112
|
+
<Tooltip content={isFiltered ? t("Edit filter") : t("Filter this column")}>
|
|
113
|
+
{/* LC-54 amendment (2026-08-13): the grown press target NEVER
|
|
114
|
+
paints — hover/press fills on this box spread across the full
|
|
115
|
+
44px floor and bled into the neighboring header rows via the
|
|
116
|
+
negative outsets. Painted hover and keyboard focus feedback
|
|
117
|
+
ride the glyph-scale ring inside
|
|
118
|
+
(Chip dismiss anatomy). */}
|
|
119
|
+
<View
|
|
120
|
+
cursor="pointer"
|
|
121
|
+
{...pressTargetStyle()}
|
|
122
|
+
alignItems="center"
|
|
123
|
+
justifyContent="center"
|
|
124
|
+
marginVertical={-FILTER_TRIGGER_OUTSET}
|
|
125
|
+
marginHorizontal={-FILTER_TRIGGER_OUTSET}
|
|
126
|
+
hitSlop={pressTargetHitSlop(FILTER_TRIGGER_VISUAL)}
|
|
127
|
+
// Enabled glyphs keep readable ink; hue and weight distinguish
|
|
128
|
+
// an applied filter from the secondary-color idle affordance.
|
|
129
|
+
// Shared unpainted press-floor / painted glyph-ring anatomy.
|
|
130
|
+
className="mp-chip-dismiss"
|
|
131
|
+
tabIndex={0}
|
|
132
|
+
onKeyDown={
|
|
133
|
+
((event: { key?: string; preventDefault(): void; stopPropagation(): void }) => {
|
|
134
|
+
if (event.key !== "Enter" && event.key !== " ") return;
|
|
135
|
+
event.preventDefault();
|
|
136
|
+
event.stopPropagation();
|
|
137
|
+
handleOpenChange(true);
|
|
138
|
+
}) as unknown as () => void
|
|
139
|
+
}
|
|
140
|
+
onPress={(e) => {
|
|
141
|
+
e.stopPropagation();
|
|
187
142
|
}}
|
|
188
|
-
|
|
189
|
-
{
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
enterStyle={{ y: -5, opacity: 0 }}
|
|
193
|
-
exitStyle={{ y: -5, opacity: 0 }}
|
|
143
|
+
role="button"
|
|
144
|
+
aria-label={`Filter column ${columnLabel}`}
|
|
145
|
+
aria-haspopup="dialog"
|
|
146
|
+
aria-expanded={open}
|
|
194
147
|
>
|
|
195
|
-
<
|
|
148
|
+
<View
|
|
149
|
+
className="mp-chip-dismiss-ring"
|
|
150
|
+
padding="$1"
|
|
151
|
+
borderRadius="$2"
|
|
152
|
+
alignItems="center"
|
|
153
|
+
justifyContent="center"
|
|
154
|
+
hoverStyle={{ backgroundColor: "$color4" }}
|
|
155
|
+
pressStyle={{ backgroundColor: "$color5" }}
|
|
156
|
+
>
|
|
157
|
+
<FunnelIcon size={iconPx} color={glyphColor} weight={isFiltered ? "fill" : "regular"} />
|
|
158
|
+
</View>
|
|
159
|
+
</View>
|
|
160
|
+
</Tooltip>
|
|
161
|
+
);
|
|
196
162
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
163
|
+
return (
|
|
164
|
+
<FloatingPanel
|
|
165
|
+
open={open}
|
|
166
|
+
onOpenChange={handleOpenChange}
|
|
167
|
+
trigger={trigger}
|
|
168
|
+
triggerSizing="content"
|
|
169
|
+
widthMode="fit-content"
|
|
170
|
+
>
|
|
171
|
+
<YStack {...knobProps.gap} minWidth={240} data-dismiss-class="compose">
|
|
172
|
+
<Text {...knobProps.label} fontWeight="400" color="$color11">
|
|
173
|
+
{t("Filter: {{column}}", { column: columnLabel })}
|
|
174
|
+
</Text>
|
|
201
175
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
176
|
+
{/* Shared operator/value editor (LC-16 — same one the toolbar filter uses) */}
|
|
177
|
+
<FilterOperatorValueEditor
|
|
178
|
+
fieldType={columnType}
|
|
179
|
+
operator={operator}
|
|
180
|
+
value={value}
|
|
181
|
+
onOperatorChange={setOperator}
|
|
182
|
+
onValueChange={setValue}
|
|
183
|
+
options={options}
|
|
184
|
+
/>
|
|
211
185
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
</Button>
|
|
218
|
-
)}
|
|
219
|
-
<Button size={knobProps.sizeToken} onPress={handleApply}>
|
|
220
|
-
{t("Apply")}
|
|
186
|
+
{/* Actions */}
|
|
187
|
+
<XStack {...knobProps.gap} justifyContent="flex-end">
|
|
188
|
+
{isFiltered && (
|
|
189
|
+
<Button size={knobProps.sizeToken} onPress={handleClear}>
|
|
190
|
+
{t("Clear")}
|
|
221
191
|
</Button>
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
192
|
+
)}
|
|
193
|
+
<Button size={knobProps.sizeToken} onPress={handleApply}>
|
|
194
|
+
{t("Apply")}
|
|
195
|
+
</Button>
|
|
196
|
+
</XStack>
|
|
197
|
+
</YStack>
|
|
198
|
+
</FloatingPanel>
|
|
226
199
|
);
|
|
227
200
|
}
|