Combine columns (#42021)
* [MLv2] Add `preview-expression` to eval an expression on sample data This is needed to show the previews in the UX for the combining columns epic #39977. Fixes #39979. * [MBQL lib] Add "Combine columns" drill-thru This is following the original plan of using a drill for this. It's hard to combine that with the "preview" functionality. See [thread](https://metaboat.slack.com/archives/C06P22KS4JH/p1712264174056569) for discussion of how we might approach that issue. Fixes #39978. * [MBQL lib] Add "Combine columns" drill-thru This is following the original plan of using a drill for this. It's hard to combine that with the "preview" functionality. See [thread](https://metaboat.slack.com/archives/C06P22KS4JH/p1712264174056569 ) for discussion of how we might approach that issue. Fixes #39978. * [MLv2] Add `preview-expression` to eval an expression on sample data This is needed to show the previews in the UX for the combining columns epic #39977. Fixes #39979. * [MLv2] Add `preview-expression` to eval an expression on sample data This is needed to show the previews in the UX for the combining columns epic #39977. Fixes #39979. * Revert "Merge branch 'mblib-preview-expressions' into combine-columns" This reverts commit dac17f84aaae09906a206106290f7f58dea659bd, reversing changes made to 2934fab19db495ca8104801d41bc8aba457e401f. * Revert "Merge branch 'mblib-preview-expressions' into combine-columns" This reverts commit 2934fab19db495ca8104801d41bc8aba457e401f, reversing changes made to 6a43c22e78fb616c7ac0b024811b2989a1ae0f20. * Revert "Merge branch 'mblib-preview-expressions' into combine-columns" This reverts commit 6a43c22e78fb616c7ac0b024811b2989a1ae0f20, reversing changes made to 2257333a8ae69f0c9a6f6fdf0c8f5d837263f97a. * [FE] "Combine columns" drill thru (#40082) * Type Section['icon'] properly, including the hack for summarize section * Add combine columns section * Add types for combine columns drill * Add combine columns drill component stub * Mock combine columns drill * Add component stub * Encapsulate typing hacks * Extract CombineColumnsDrill * Extract ColumnAndSeparatorRow * Improve naming, add button to edit separators * Translate string * Improve styling * Separator input * Handle removing columns * Rename lib.ts to utils.ts * Implement onSubmit * Add getNextColumnAndSeparator * Use form for a11y * Handle vertical overflow * Handle horizontal overflow * Extract formatSeparator * Use proper translations * Adjust min/max sizes * Fix scrollbar being unnecessarily shown * Display source column name * Avoid serializing the entire column and putting it into DOM * Use module.css extension * Format code * Improve a11y * Mock combineColumnsDrillExpression and previewExpression * Add Preview component * Move preview logic to Preview component * Style Preview * Format code * Move styles to CSS modules * Update UI to latest designs - move "Add another column" button - remove "Separated by X" button - always show separator inputs * Remove displayInfo mock * Add asReturned * Update CombineColumnsDrillThruInfo * Integrate new way of working with combine columns drill * Fix generating expression names * Integrate drill with click actions * Integrate new preview workflow * Revert "Update UI to latest designs" This reverts commit cda039dffe9d452c0866f63800e2e887a540fe67. * Use previewExpression interface correctly * Use new preview_expression API * Make sure columns are created with original query and stage index * Extract usePreview and handle preview errors * Update popover title * Move add column button * Fix outline being cut off * Style preview label as per design * Format empty separator * Make preview scrollable * Use project convention * Simplify ScrollArea usage * Use ScrollArea in CombineColumnsDrill * Update comment * Remove Lib.previewExpression * Clean up the preview after removing Lib.previewExpression * Implement getPreview * Change default column preview to 'text' * Remove usePreview hook which is no longer in use * Rename Preview to Example * Use different placeholder for separator input * Add whitespace placeholder * Add ColumnPicker boilerplate * Export Input * Use QueryColumnPicker for ColumnPicker * Pass width to AccordionList * Add sequences popover events with tippy * Remove unused ColumnOption helpers * Add testid to Example * Add e2e test for combine column in header * Select content of separator input on focus * Reduce padding on example * Add monospace variant to Text * Use monospace variant in Example * Use monospace font in textinput * Match faux-select label styles to our TextInput label styles * Add missing color * Remove !important * Use pre whitespace so consecutive spaces show up * Remove empty default * Add example for boolean * Remove !important * Use should.have text over contain --------- Co-authored-by:Romeo Van Snick <romeo@romeovansnick.be> * Remove duplicated code * Export useMantineTheme from metabase/ui * Use useMantineTheme instead of reading theme directly * Remove setTimeout in popover * Use plain t instead of jt * Move Popover dropdown sequence hack to metabase/ui --------- Co-authored-by:
Braden Shepherdson <braden@metabase.com> Co-authored-by:
Kamil Mielnik <kamil@kamilmielnik.com>
Showing
- docs/developers-guide/mbql-library-changelog.md 2 additions, 0 deletionsdocs/developers-guide/mbql-library-changelog.md
- e2e/test/scenarios/visualizations-tabular/drillthroughs/combine-column.cy.spec.js 71 additions, 0 deletions...lizations-tabular/drillthroughs/combine-column.cy.spec.js
- frontend/src/metabase-lib/drills.ts 3 additions, 3 deletionsfrontend/src/metabase-lib/drills.ts
- frontend/src/metabase-lib/types.ts 5 additions, 0 deletionsfrontend/src/metabase-lib/types.ts
- frontend/src/metabase/common/components/QueryColumnPicker/QueryColumnPicker.tsx 1 addition, 1 deletion...common/components/QueryColumnPicker/QueryColumnPicker.tsx
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/combine-columns-drill.tsx 50 additions, 0 deletions...ls/drills/combine-columns-drill/combine-columns-drill.tsx
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/components/ColumnAndSeparatorRow/ColumnAndSeparatorRow.module.css 17 additions, 0 deletions...ts/ColumnAndSeparatorRow/ColumnAndSeparatorRow.module.css
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/components/ColumnAndSeparatorRow/ColumnAndSeparatorRow.tsx 124 additions, 0 deletions...omponents/ColumnAndSeparatorRow/ColumnAndSeparatorRow.tsx
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/components/ColumnAndSeparatorRow/index.ts 1 addition, 0 deletions...e-columns-drill/components/ColumnAndSeparatorRow/index.ts
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/components/ColumnPicker/ColumnPicker.module.css 20 additions, 0 deletions...mns-drill/components/ColumnPicker/ColumnPicker.module.css
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/components/ColumnPicker/ColumnPicker.tsx 138 additions, 0 deletions...ne-columns-drill/components/ColumnPicker/ColumnPicker.tsx
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/components/ColumnPicker/index.ts 1 addition, 0 deletions...ls/combine-columns-drill/components/ColumnPicker/index.ts
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/components/CombineColumnsDrill/CombineColumnsDrill.tsx 181 additions, 0 deletions...ll/components/CombineColumnsDrill/CombineColumnsDrill.tsx
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/components/CombineColumnsDrill/index.ts 1 addition, 0 deletions...ine-columns-drill/components/CombineColumnsDrill/index.ts
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/components/Example/Example.module.css 3 additions, 0 deletions...mbine-columns-drill/components/Example/Example.module.css
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/components/Example/Example.tsx 35 additions, 0 deletions...ills/combine-columns-drill/components/Example/Example.tsx
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/components/Example/index.ts 1 addition, 0 deletions.../drills/combine-columns-drill/components/Example/index.ts
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/components/index.ts 4 additions, 0 deletions...ng/utils/drills/combine-columns-drill/components/index.ts
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/index.ts 1 addition, 0 deletions...base/querying/utils/drills/combine-columns-drill/index.ts
- frontend/src/metabase/querying/utils/drills/combine-columns-drill/types.ts 6 additions, 0 deletions...base/querying/utils/drills/combine-columns-drill/types.ts
Please register or sign in to comment