Skip to content

Commit

Permalink
Merge branch 'main' into 1274-new-seek-row-option
Browse files Browse the repository at this point in the history
  • Loading branch information
ethanalvizo committed May 16, 2023
2 parents a713c80 + d304300 commit a2273e0
Show file tree
Hide file tree
Showing 185 changed files with 2,911 additions and 3,984 deletions.
17 changes: 7 additions & 10 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# See https://help.github.com/ignore-files/ for more about ignoring files.

# dependencies
/node_modules
node_modules/

# testing
/coverage
coverage/

# production
/build
/dist
build/
dist/

# misc
.vscode/*
Expand All @@ -17,24 +17,21 @@
!.vscode/extensions.json
!.vscode/*.code-snippets
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
.env*local
.project
.settings/
.eslintcache
.stylelintcache
lerna-debug.log
Lerna-Profile-*.json

/public/vs
.idea

npm-debug.log*
yarn-debug.log*
yarn-error.log*

src/**/*.css
css

tsconfig.tsbuildinfo
packages/*/package-lock.json
Expand Down
130 changes: 130 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,136 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

# [0.39.0](https://github.com/deephaven/web-client-ui/compare/v0.38.0...v0.39.0) (2023-05-15)

### Bug Fixes

- add word-break to long column names in column tooltip ([#1290](https://github.com/deephaven/web-client-ui/issues/1290)) ([02215b6](https://github.com/deephaven/web-client-ui/commit/02215b6323c58678ae37578ea9d0e0dda68ff880)), closes [#1283](https://github.com/deephaven/web-client-ui/issues/1283)
- DH-14630: useDebouncedViewportSearch: memoization bug ([#1273](https://github.com/deephaven/web-client-ui/issues/1273)) ([be82b14](https://github.com/deephaven/web-client-ui/commit/be82b145501bd1af48e44f068cc157c088711823)), closes [#1272](https://github.com/deephaven/web-client-ui/issues/1272)
- Select distinct throwing for tables with multiple columns ([#1286](https://github.com/deephaven/web-client-ui/issues/1286)) ([4b40e4b](https://github.com/deephaven/web-client-ui/commit/4b40e4b831c3dae4f7b869b71c7f6185560f929e)), closes [#1275](https://github.com/deephaven/web-client-ui/issues/1275)

### Features

- Table rendering support for databars ([#1212](https://github.com/deephaven/web-client-ui/issues/1212)) ([a17cc0e](https://github.com/deephaven/web-client-ui/commit/a17cc0eb2b4e8ba9240c891a15b9d4b7659fb721)), closes [#1151](https://github.com/deephaven/web-client-ui/issues/1151)
- add uncaught rejections to support logs ([#1293](https://github.com/deephaven/web-client-ui/issues/1293)) ([29ed459](https://github.com/deephaven/web-client-ui/commit/29ed459c130dae9d6a1f3876716d25fb2f0a5fea)), closes [#1253](https://github.com/deephaven/web-client-ui/issues/1253)
- Added new icons and added composition example to styleguide ([#1294](https://github.com/deephaven/web-client-ui/issues/1294)) ([97c7ead](https://github.com/deephaven/web-client-ui/commit/97c7ead4174e802b977962a9ff57dded5f4dd114))
- De-globalize JSAPI in Chart package ([#1258](https://github.com/deephaven/web-client-ui/issues/1258)) ([87fa2ef](https://github.com/deephaven/web-client-ui/commit/87fa2ef76e0482a1d641d8fea2d33fdad2996ef5))
- De-globalize JSAPI in Console package ([#1292](https://github.com/deephaven/web-client-ui/issues/1292)) ([3f12dd3](https://github.com/deephaven/web-client-ui/commit/3f12dd38a4db172697b3a7b39e6fbbd83d9f8519))
- De-globalize JSAPI in IrisGrid package ([#1262](https://github.com/deephaven/web-client-ui/issues/1262)) ([588cb8f](https://github.com/deephaven/web-client-ui/commit/588cb8fd080ac992da40e9b732d82e206032c9eb))
- De-globalize utils, formatters, linker ([#1278](https://github.com/deephaven/web-client-ui/issues/1278)) ([cb0e9ba](https://github.com/deephaven/web-client-ui/commit/cb0e9ba432a096cdb61c76787cff66c09a337372))
- DH-14630 - ACL Editor Hooks ([#1257](https://github.com/deephaven/web-client-ui/issues/1257)) ([e0a2a36](https://github.com/deephaven/web-client-ui/commit/e0a2a369ea3c90e9c2e25b7e29823825db14d3f5)), closes [#1260](https://github.com/deephaven/web-client-ui/issues/1260)
- remove click handler setting onTabContentFocusIn ([#1263](https://github.com/deephaven/web-client-ui/issues/1263)) ([7d56f97](https://github.com/deephaven/web-client-ui/commit/7d56f97aceae6329a188b13f89a7df2e7add7395))
- Update @vscode/codicons to v0.0.33 ([#1259](https://github.com/deephaven/web-client-ui/issues/1259)) ([1b29af1](https://github.com/deephaven/web-client-ui/commit/1b29af18fa60411a0e16ca1df27a969b11492c56))
- useTableUtils hook ([#1281](https://github.com/deephaven/web-client-ui/issues/1281)) ([ce1fe2c](https://github.com/deephaven/web-client-ui/commit/ce1fe2ce8cf28c4bc90356ebb25422835b5070df)), closes [#1280](https://github.com/deephaven/web-client-ui/issues/1280)

### Reverts

- Revert "feat: Table rendering support for databars ([#1212](https://github.com/deephaven/web-client-ui/issues/1212))" ([#1296](https://github.com/deephaven/web-client-ui/issues/1296)) ([a80c6fc](https://github.com/deephaven/web-client-ui/commit/a80c6fc608466351d03358f47b9c7d062b28c9cf))

### BREAKING CHANGES

- - Components `IrisGrid`, `Chart`, `ChartBuilder`,
`AdvancedFilterCreator`, `GotoRow`, `IrisGridModelUpdater`,
`TableCSVExporter` get the JSAPI reference from the `model` prop. `dh`
prop removed.

* `makeApi` props in `IrisGridPanel` and `ChartPanel` removed.
* Components `Console`, `ConsoleMenu`, `ConsoleStatusBar` now require
the JSAPI instance in the `dh` prop.
* `ConsoleUtils`: static methods `isTableType`, `isWidgetType`,
`isOpenableType`, `isFigureType`, `isPandas` require JSAPI instance
passed in the first argument.
* `SessionUtils`: static methods `createSessionWrapper`,
`loadSessionWrapper` require JSAPI instance passed in the first
argument.
* Class `IrisGridModel` requires JSAPI instance passed in the
constructor args.
* Components `DashboardLayout`, `ObjectIcon` has to be wrapped in
`ApiContext.Provider` passing the JSAPI instance.

- - Class `Formatter` requires the JSAPI instance as the first argument.

* Classes `DateTimeColumnFormatter`, `DecimalColumnFormatter`,
`IntegerColumnFormatter`, `TableColumnFormatter`: static method
`isValid` and constructor require the JSAPI instance in the first
argument.
* Component `Chart` requires the JSAPI instance passed in the new prop
`dh`.
* `WidgetUtils`: methods `createChartModel`, `createGridModel` methods
require the JSAPI instance passed in the first argument.
* Components `DateTimeOptions`, `TableInput`, `useViewportData` have to
be wrapped in `ApiContext.Provider` passing the JSAPI instance.
* `SettingsUtils`: methods `isValidFormat` and
`isFormatRuleValidForSave` require the JSAPI instance passed in the
first argument.
* `SessionUtils`: methods `createConnection`, `createCoreClient` require
the JSAPI instance passed in the first argument.
* `TableUtils` static methods `applyCustomColumns`, `applyFilter`,
`applyNeverFilter`, `applySort` converted to instance methods.
* Components `DropdownFilterPanel`, `Linker` now get the JSAPI instance
from redux store.
* `DecimalFormatContextMenu.getOptions`,
`IntegerFormatContextMenu.getOptions` now require the JSAPI instance in
the first argument.

- - `DateUtils` static methods `makeDateWrapper`, `getNextDate `,
`parseDateRange` now require the JSAPI object as the first argument.

* `IrisGridUtils` static methods `dehydrateIrisGridState`,
`hydrateIrisGridState`, `hydrateQuickFilters`,
`dehydrateAdvancedFilters`, `hydrateAdvancedFilters`,
`dehydrateAdvancedFilterOptions`, `hydrateAdvancedFilterOptions`,
`dehydratePendingDataMap`, `hydratePendingDataMap`, `dehydrateValue`,
`hydrateValue`, `dehydrateDateTime`, `hydrateDateTime`, `hydrateLong`,
`hydrateSort`, `applyTableSettings`, `getFiltersFromInputFilters`,
`rangeSetFromRanges` converted to instance methods. Consumers now need
to create an `IrisGridUtils` instance and pass the JSAPI object to the
constructor.
* `TableUtils` static methods `makeQuickFilter`,
`makeQuickFilterFromComponent`, `makeQuickNumberFilter`,
`makeQuickTextFilter`, `makeQuickBooleanFilter`, `makeQuickDateFilter`,
`makeQuickDateFilterWithOperation`, `makeQuickCharFilter`,
`makeAdvancedFilter`, `makeAdvancedValueFilter`, `makeFilterValue`,
`makeFilterRawValue`, `makeValue`, `makeSelectValueFilter` converted to
instance methods. Consumers now need to create a `TableUtils` instance
and pass the JSAPI object to the constructor.
* `IrisGridTableModel`, `IrisGridTableModelTemplate`,
`IrisGridProxyModel` constructors require the JSAPI object in the first
argument.
* `IrisGridTestUtils.makeModel`, `IrisGridModelFactory.makeModel` now
require the JSAPI object in the first argument.
* `IrisGridContextMenuHandler` constructor requires the JSAPI object in
the second argument.
* `IrisGridPanel` requires a new `makeApi` prop, a function that
resolves with the JSAPI instance.
* `CrossColumnSearch.createSearchFilter` requires the JSAPI object
argument.
* Components `AdvancedFilterCreatorSelectValue`,
`AdvancedFilterCreatorSelectValueList`, `ChartBuilder`, `GotoRow`,
`IrisGrid`, `IrisGridModelUpdater`, `IrisGridPartitionSelector`,
`PartitionSelectorSearch`, `TableCSVExporter`, `TableSaver`,
`TreeTableViewportUpdater`, `RowFormatEditor`, `ColumnFormatEditor`,
`ConditionEditor` now require the JSAPI object passed in the new prop
`dh`.
* Components `AdvancedFilterCreator`, `AdvancedFilterCreatorFilterItem`
require the `TableUtils` instance pass in the new prop `tableUtils`.
* `ConditionalFormattingUtils` static methods `getFormatColumns`,
`isDateConditionValid` require the JSAPI object in the first argument.
* `ConditionalFormattingAPIUtils` static method `makeRowFormatColumn`
requires the JSAPI object in the first argument.

- - `ChartUtils` class now needs to be instantiated with a JSAPI object,
most of the methods converted from static to instance methods.

* All `ChartModelFactory` methods require JSAPI object as the first
argument.
* `FigureChartModel` constructor requires JSAPI object as the first
argument.

- `generateEmptyKeyedItemsRange` previously required a
single `count` arg, but now requires a `start` and `end` index
- `vsCircleLargeOutline` icon renamed to `vsCircleLarge`

# [0.38.0](https://github.com/deephaven/web-client-ui/compare/v0.37.3...v0.38.0) (2023-05-03)

### Bug Fixes
Expand Down
13 changes: 11 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ In order to use the UI, you must also be running a [deephaven-core](https://gith

We recommend using [Visual Studio Code](https://code.visualstudio.com/) and installing the [recommended workspace extensions](https://github.com/deephaven/web-client-ui/blob/main/.vscode/extensions.json) which VS Code will suggest when you open the repo or when you browse the extensions panel. There are a few [workspace settings](https://github.com/deephaven/web-client-ui/tree/main/.vscode) configured with the repo.

If using Linux, we recommend installing directly from the deb or rpm file from the VSCode website rather than through a package manager or store such as `snap` or `flatpak`. The other install methods (for example, apt on Ubuntu installs via snap) may end up in a sandboxed environment that cannot use the debug launch configs properly.

We use Chrome for development with the React and Redux extensions.

- [React Developer Tools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi): Allows inspection/changing the props/state of react components.
Expand Down Expand Up @@ -62,10 +64,17 @@ VITE_PROXY_URL=http://<dhc-host>:<port>

We have a pre-defined launch config that lets you set breakpoints directly in VSCode for debugging browser code. The `Launch Deephaven` config will launch a new Chrome window that stores its data in your repo workspace. With this setup, you only need to install the React and Redux devtool extensions once. They will persist to future launches using the launch config.

If you are not using Chrome (e.g. Chromium on Linux), then you add a new configuration to VSCode and copy the launch config from [`settings.json`](./.vscode/settings.json). Then add the `runtimeExecutable` prop to point to your browser executable. VSCode unfortnuately does not merge workspace `settings.launch` with workspace `launch.json`, so if we add more launch configs you would need to copy to your `.vscode/launch.json` file to get the configs.

We prefer launching a new window instead of attaching to existing windows because it provides a cleaner debug environment (only development extensions). You would also need to launch Chrome with the remote debugging flag in order to attach to an existing instance.

### Linux
If you are using Linux, you will likely need to use the direct install from the VSCode website (deb or rpm file) and not through a package manager. On Ubuntu, apt installs via `snap` and some Linux flavors may use `flatpak`. Both of these sandbox the VSCode instance in such a way that the launch debug configs will likely not work.

If you are not using Chrome (e.g. Chromium), you may need to do one of the following if the launch config is not working.

1. Alias `google-chrome-stable` to launch `chromium-browser`. The launch config by default should try to launch `google-chrome-stable`, so if you can launch the browser with `google-chrome-stable` from a terminal, it should work.

2. Add a new configuration to VSCode and copy the launch config from [`settings.json`](./.vscode/settings.json). Then add the `runtimeExecutable` prop to point to your browser executable. VSCode unfortnuately does not merge workspace `settings.launch` with workspace `launch.json`, so if we add more launch configs you would need to copy to your `.vscode/launch.json` file to get the configs.

## Creating a New Package

Depending on what your package is, there are a couple of different templates that may be appropriate.
Expand Down
2 changes: 1 addition & 1 deletion lerna.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"packages": ["packages/*"],
"useWorkspaces": true,
"useNx": false,
"version": "0.38.0",
"version": "0.39.0",
"command": {
"publish": {
"distTag": "latest"
Expand Down
Loading

0 comments on commit a2273e0

Please sign in to comment.