diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0d030602af..4352c9b1df 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,25 @@
+# [v3.1.8](https://github.com/finos/perspective/releases/tag/v3.1.8)
+
+_2 December 2024_ ([Full changelog](https://github.com/finos/perspective/compare/v3.1.7...v3.1.8))
+
+Fixes
+
+- fix treemap rendering issue in firefox [#2813](https://github.com/finos/perspective/pull/2813)
+- Allow for passthrough of event loop in psp webserver handlers [#2829](https://github.com/finos/perspective/pull/2829)
+- Fix workspace dark theme, theme render bug [#2864](https://github.com/finos/perspective/pull/2864)
+
+# [v3.1.7](https://github.com/finos/perspective/releases/tag/v3.1.7)
+
+_30 November 2024_ ([Full changelog](https://github.com/finos/perspective/compare/v3.1.6...v3.1.7))
+
+Fixes
+
+- Remove `workspace-layout-update` event debounce [#2862](https://github.com/finos/perspective/pull/2862)
+
+Misc
+
+- Add some information on JSON input formats [#2856](https://github.com/finos/perspective/pull/2856)
+
# [v3.1.6](https://github.com/finos/perspective/releases/tag/v3.1.6)
_18 November 2024_ ([Full changelog](https://github.com/finos/perspective/compare/v3.1.5...v3.1.6))
diff --git a/Cargo.lock b/Cargo.lock
index d292903a1b..ab3fdc80b7 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1961,7 +1961,7 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "perspective"
-version = "3.1.6"
+version = "3.1.8"
dependencies = [
"async-lock",
"axum",
@@ -2001,7 +2001,7 @@ dependencies = [
[[package]]
name = "perspective-client"
-version = "3.1.6"
+version = "3.1.8"
dependencies = [
"async-lock",
"futures",
@@ -2023,7 +2023,7 @@ dependencies = [
[[package]]
name = "perspective-js"
-version = "3.1.6"
+version = "3.1.8"
dependencies = [
"anyhow",
"base64 0.13.1",
@@ -2052,7 +2052,7 @@ dependencies = [
[[package]]
name = "perspective-lint"
-version = "3.1.6"
+version = "3.1.8"
dependencies = [
"glob",
"yew-fmt",
@@ -2072,7 +2072,7 @@ dependencies = [
[[package]]
name = "perspective-python"
-version = "3.1.6"
+version = "3.1.8"
dependencies = [
"async-lock",
"cmake",
@@ -2092,7 +2092,7 @@ dependencies = [
[[package]]
name = "perspective-server"
-version = "3.1.6"
+version = "3.1.8"
dependencies = [
"async-lock",
"base64 0.22.1",
@@ -2108,7 +2108,7 @@ dependencies = [
[[package]]
name = "perspective-viewer"
-version = "3.1.6"
+version = "3.1.8"
dependencies = [
"anyhow",
"async-lock",
diff --git a/cpp/perspective/package.json b/cpp/perspective/package.json
index 8ed89e516e..05310e3c48 100644
--- a/cpp/perspective/package.json
+++ b/cpp/perspective/package.json
@@ -3,7 +3,7 @@
"private": true,
"author": "The Perspective Authors",
"license": "Apache-2.0",
- "version": "3.1.6",
+ "version": "3.1.8",
"main": "./dist/esm/perspective.cpp.js",
"files": [
"dist/esm/**/*",
@@ -13,4 +13,4 @@
"build": "node ../../tools/perspective-scripts/run_emsdk.mjs node ./build.js",
"clean": "rimraf dist"
}
-}
+}
\ No newline at end of file
diff --git a/docs/package.json b/docs/package.json
index b000c643ae..deb6641c92 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -1,6 +1,6 @@
{
"name": "@finos/perspective-docs",
- "version": "3.1.6",
+ "version": "3.1.8",
"private": true,
"scripts": {
"build": "node build.js && docusaurus build",
@@ -54,4 +54,4 @@
"last 1 safari version"
]
}
-}
+}
\ No newline at end of file
diff --git a/examples/blocks/package.json b/examples/blocks/package.json
index bad510f2b7..aa098a9058 100644
--- a/examples/blocks/package.json
+++ b/examples/blocks/package.json
@@ -1,7 +1,7 @@
{
"name": "blocks",
"private": true,
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "A collection of simple client-side Perspective examples for `http://bl.ocks.org`.",
"scripts": {
"start": "mkdirp dist && node --experimental-modules server.mjs",
@@ -22,4 +22,4 @@
"devDependencies": {
"esbuild": "^0.14.54"
}
-}
+}
\ No newline at end of file
diff --git a/examples/blocks/src/superstore/index.html b/examples/blocks/src/superstore/index.html
index 32b1127c8b..28c0bcbe37 100644
--- a/examples/blocks/src/superstore/index.html
+++ b/examples/blocks/src/superstore/index.html
@@ -6,17 +6,12 @@
diff --git a/examples/blocks/src/superstore/index.json b/examples/blocks/src/superstore/index.json
new file mode 100644
index 0000000000..78e3391b0d
--- /dev/null
+++ b/examples/blocks/src/superstore/index.json
@@ -0,0 +1,169 @@
+index.html: 48 {
+ "sizes": [
+ 1
+ ],
+ "detail": {
+ "main": {
+ "type": "split-area",
+ "orientation": "horizontal",
+ "children": [
+ {
+ "type": "tab-area",
+ "widgets": [
+ "PERSPECTIVE_GENERATED_ID_0",
+ "PERSPECTIVE_GENERATED_ID_1"
+ ],
+ "currentIndex": 0
+ },
+ {
+ "type": "tab-area",
+ "widgets": [
+ "PERSPECTIVE_GENERATED_ID_3"
+ ],
+ "currentIndex": 0
+ },
+ {
+ "type": "tab-area",
+ "widgets": [
+ "PERSPECTIVE_GENERATED_ID_2"
+ ],
+ "currentIndex": 0
+ }
+ ],
+ "sizes": [
+ 0.3765432098765432,
+ 0.24691358024691357,
+ 0.3765432098765432
+ ]
+ }
+ },
+ "viewers": {
+ "PERSPECTIVE_GENERATED_ID_0": {
+ "version": "3.1.8",
+ "plugin": "Datagrid",
+ "plugin_config": {
+ "columns": {},
+ "edit_mode": "READ_ONLY",
+ "scroll_lock": false
+ },
+ "columns_config": {},
+ "title": "Sales Report 2",
+ "group_by": [
+ "Region",
+ "State"
+ ],
+ "split_by": [
+ "Category",
+ "Sub-Category"
+ ],
+ "columns": [
+ "Sales",
+ "Profit"
+ ],
+ "filter": [],
+ "sort": [],
+ "expressions": {},
+ "aggregates": {},
+ "table": "superstore",
+ "settings": false
+ },
+ "PERSPECTIVE_GENERATED_ID_1": {
+ "version": "3.1.8",
+ "plugin": "Datagrid",
+ "plugin_config": {
+ "columns": {},
+ "edit_mode": "READ_ONLY",
+ "scroll_lock": false
+ },
+ "columns_config": {},
+ "title": null,
+ "group_by": [],
+ "split_by": [],
+ "columns": [
+ "Row ID",
+ "Order ID",
+ "Ship Mode",
+ "Customer ID",
+ "Customer Name",
+ "Segment",
+ "Country",
+ "City",
+ "State",
+ "Postal Code",
+ "Region",
+ "Product ID",
+ "Category",
+ "Sub-Category",
+ "Product Name",
+ "Sales",
+ "Quantity",
+ "Discount",
+ "Profit",
+ "Order Date",
+ "Ship Date"
+ ],
+ "filter": [],
+ "sort": [],
+ "expressions": {},
+ "aggregates": {},
+ "table": "superstore",
+ "settings": false
+ },
+ "PERSPECTIVE_GENERATED_ID_3": {
+ "version": "3.1.8",
+ "plugin": "Datagrid",
+ "plugin_config": {
+ "columns": {},
+ "edit_mode": "READ_ONLY",
+ "scroll_lock": false
+ },
+ "columns_config": {},
+ "title": "Sales Report 2 (*)",
+ "group_by": [
+ "Region",
+ "State"
+ ],
+ "split_by": [
+ "Category",
+ "Sub-Category"
+ ],
+ "columns": [
+ "Sales",
+ "Profit"
+ ],
+ "filter": [],
+ "sort": [],
+ "expressions": {},
+ "aggregates": {},
+ "table": "superstore",
+ "settings": false
+ },
+ "PERSPECTIVE_GENERATED_ID_2": {
+ "version": "3.1.8",
+ "plugin": "Treemap",
+ "plugin_config": {},
+ "columns_config": {},
+ "title": "Sales Report (by State)",
+ "group_by": [
+ "State"
+ ],
+ "split_by": [],
+ "columns": [
+ "Sales",
+ "Profit",
+ null
+ ],
+ "filter": [],
+ "sort": [
+ [
+ "Profit",
+ "desc"
+ ]
+ ],
+ "expressions": {},
+ "aggregates": {},
+ "table": "superstore",
+ "settings": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/examples/esbuild-example/package.json b/examples/esbuild-example/package.json
index ad8f18e1de..afa1cce194 100644
--- a/examples/esbuild-example/package.json
+++ b/examples/esbuild-example/package.json
@@ -1,7 +1,7 @@
{
"name": "esbuild-example",
"private": true,
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "An esbuild example app built using `@finos/perspective-viewer`.",
"scripts": {
"build": "node build.js",
@@ -22,4 +22,4 @@
"esbuild": "^0.14.54",
"http-server": "^14.1.1"
}
-}
+}
\ No newline at end of file
diff --git a/examples/esbuild-remote/package.json b/examples/esbuild-remote/package.json
index c36cea0f4a..b6fb40ece0 100644
--- a/examples/esbuild-remote/package.json
+++ b/examples/esbuild-remote/package.json
@@ -1,7 +1,7 @@
{
"name": "esbuild-remote",
"private": true,
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "An example of 2 Perspectives, one client and one server, streaming via Apache Arrow.",
"scripts": {
"start": "node build.js && node server/index.mjs"
@@ -20,4 +20,4 @@
"@finos/perspective-esbuild-plugin": "workspace:^",
"esbuild": "^0.14.54"
}
-}
+}
\ No newline at end of file
diff --git a/examples/python-aiohttp/package.json b/examples/python-aiohttp/package.json
index 84c2056504..17fa352330 100644
--- a/examples/python-aiohttp/package.json
+++ b/examples/python-aiohttp/package.json
@@ -1,7 +1,7 @@
{
"name": "python-aiohttp",
"private": true,
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "An example of editing a `perspective-python` server from the browser.",
"scripts": {
"start": "PYTHONPATH=../../python/perspective python3 server.py"
@@ -21,4 +21,4 @@
"npm-run-all": "^4.1.3",
"rimraf": "^6"
}
-}
+}
\ No newline at end of file
diff --git a/examples/python-starlette/package.json b/examples/python-starlette/package.json
index daf4804274..ecdea23369 100644
--- a/examples/python-starlette/package.json
+++ b/examples/python-starlette/package.json
@@ -1,7 +1,7 @@
{
"name": "python-starlette",
"private": true,
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "An example of editing a `perspective-python` server from the browser.",
"scripts": {
"start": "PYTHONPATH=../../python/perspective python3 server.py"
@@ -21,4 +21,4 @@
"npm-run-all": "^4.1.3",
"rimraf": "^6"
}
-}
+}
\ No newline at end of file
diff --git a/examples/python-starlette/server.py b/examples/python-starlette/server.py
index b1bc6f602b..f1d3baa0a0 100644
--- a/examples/python-starlette/server.py
+++ b/examples/python-starlette/server.py
@@ -18,7 +18,6 @@
import uvicorn
from fastapi import FastAPI, WebSocket
-from fastapi.middleware.cors import CORSMiddleware
from starlette.responses import FileResponse
from starlette.staticfiles import StaticFiles
@@ -64,21 +63,12 @@ async def websocket_handler(websocket: WebSocket):
)
await handler.run()
- # static_html_files = StaticFiles(directory="../python-tornado", html=True)
static_html_files = StaticFiles(directory="../python-tornado", html=True)
app = FastAPI()
app.add_api_websocket_route("/websocket", websocket_handler)
app.get("/node_modules/{rest_of_path:path}")(static_node_modules_handler)
app.mount("/", static_html_files)
-
- app.add_middleware(
- CORSMiddleware,
- allow_origins=["*"],
- allow_credentials=True,
- allow_methods=["*"],
- allow_headers=["*"],
- )
return app
diff --git a/examples/python-tornado-streaming/package.json b/examples/python-tornado-streaming/package.json
index d525a02e45..4e6c9dd7d6 100644
--- a/examples/python-tornado-streaming/package.json
+++ b/examples/python-tornado-streaming/package.json
@@ -1,7 +1,7 @@
{
"name": "python-tornado-streaming",
"private": true,
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "An example of streaming a `perspective-python` server to the browser.",
"scripts": {
"start": "PYTHONPATH=../../python/perspective python3 server.py"
@@ -21,4 +21,4 @@
"npm-run-all": "^4.1.3",
"rimraf": "^6"
}
-}
+}
\ No newline at end of file
diff --git a/examples/python-tornado/package.json b/examples/python-tornado/package.json
index 97b1d38c8c..09465cafb5 100644
--- a/examples/python-tornado/package.json
+++ b/examples/python-tornado/package.json
@@ -1,7 +1,7 @@
{
"name": "python-tornado",
"private": true,
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "An example of editing a `perspective-python` server from the browser.",
"scripts": {
"start": "PYTHONPATH=../../python/perspective python3 server.py"
@@ -21,4 +21,4 @@
"npm-run-all": "^4.1.3",
"rimraf": "^6"
}
-}
+}
\ No newline at end of file
diff --git a/examples/react-example/package.json b/examples/react-example/package.json
index 066f3fdc79..dd5373d555 100644
--- a/examples/react-example/package.json
+++ b/examples/react-example/package.json
@@ -1,7 +1,7 @@
{
"name": "react-example",
"private": true,
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "An example app built using `@finos/perspective-viewer`.",
"scripts": {
"start": "webpack serve --open",
@@ -24,4 +24,4 @@
"source-map-loader": "^0.2.4",
"ts-loader": "^6.2.1"
}
-}
+}
\ No newline at end of file
diff --git a/examples/rust-axum/Cargo.toml b/examples/rust-axum/Cargo.toml
index de91ddd56a..08fc9cf9ee 100644
--- a/examples/rust-axum/Cargo.toml
+++ b/examples/rust-axum/Cargo.toml
@@ -17,7 +17,7 @@ edition = "2021"
publish = false
[dependencies]
-perspective = { version = "3.1.6", path = "../../rust/perspective" }
+perspective = { version = "3.1.8", path = "../../rust/perspective" }
axum = { version = ">=0.7,<2", features = ["ws"] }
futures = "0.3"
tokio = { version = "1.0", features = ["full"] }
diff --git a/examples/rust-axum/package.json b/examples/rust-axum/package.json
index f9f112619d..9bb11d7d46 100644
--- a/examples/rust-axum/package.json
+++ b/examples/rust-axum/package.json
@@ -1,7 +1,7 @@
{
"name": "rust-axum",
"private": true,
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "An example of a Rust/Axum virtual Perspective server",
"scripts": {
"start": "cargo run"
@@ -10,4 +10,4 @@
"license": "Apache-2.0",
"dependencies": {},
"devDependencies": {}
-}
+}
\ No newline at end of file
diff --git a/examples/webpack-example/package.json b/examples/webpack-example/package.json
index 958a12fb97..78f682c54a 100644
--- a/examples/webpack-example/package.json
+++ b/examples/webpack-example/package.json
@@ -1,7 +1,7 @@
{
"name": "webpack-example",
"private": true,
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "An example app built using `@finos/perspective-viewer`.",
"scripts": {
"webpack_build": "webpack",
@@ -24,4 +24,4 @@
"webpack": "^5.14.0",
"webpack-cli": "^4.7.0"
}
-}
+}
\ No newline at end of file
diff --git a/examples/workspace/package.json b/examples/workspace/package.json
index 6d9e5e4409..462ec5d443 100644
--- a/examples/workspace/package.json
+++ b/examples/workspace/package.json
@@ -1,7 +1,7 @@
{
"name": "workspace",
"private": true,
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "An example app built using `@finos/perspective-workspace`.",
"scripts": {
"start": "webpack serve --open",
@@ -22,4 +22,4 @@
"npm-run-all": "^4.1.3",
"rimraf": "^6"
}
-}
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index c65e0a3853..e61823b8b6 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
"type": "git",
"url": "https://github.com/finos/perspective"
},
- "version": "3.1.6",
+ "version": "3.1.8",
"changelog": {
"labels": {
"enhancement": "Added",
@@ -107,4 +107,4 @@
"version": "node tools/perspective-scripts/version.mjs",
"jlab_link": "pip3 install ./python/perspective --no-build-isolation"
}
-}
+}
\ No newline at end of file
diff --git a/packages/perspective-cli/package.json b/packages/perspective-cli/package.json
index c6465aec1d..7e4fbe2378 100644
--- a/packages/perspective-cli/package.json
+++ b/packages/perspective-cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@finos/perspective-cli",
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "Perspective.js CLI",
"main": "src/js/index.js",
"publishConfig": {
@@ -34,4 +34,4 @@
"commander": "^2.19.0",
"puppeteer": "^23"
}
-}
+}
\ No newline at end of file
diff --git a/packages/perspective-esbuild-plugin/package.json b/packages/perspective-esbuild-plugin/package.json
index 98195e25c1..288a75e894 100644
--- a/packages/perspective-esbuild-plugin/package.json
+++ b/packages/perspective-esbuild-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@finos/perspective-esbuild-plugin",
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "esbuild plugin for Perspective",
"author": "",
"license": "Apache-2.0",
@@ -20,4 +20,4 @@
"node-fetch": "^2.6.7",
"tar": "^6.1.11"
}
-}
+}
\ No newline at end of file
diff --git a/packages/perspective-jupyterlab/package.json b/packages/perspective-jupyterlab/package.json
index 20926f1684..66a6293123 100644
--- a/packages/perspective-jupyterlab/package.json
+++ b/packages/perspective-jupyterlab/package.json
@@ -1,6 +1,6 @@
{
"name": "@finos/perspective-jupyterlab",
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "A Jupyterlab extension for the Perspective library, designed to be used with perspective-python.",
"files": [
"dist/**/*",
@@ -73,4 +73,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/perspective-viewer-d3fc/package.json b/packages/perspective-viewer-d3fc/package.json
index 039b328153..36c84bc8d4 100644
--- a/packages/perspective-viewer-d3fc/package.json
+++ b/packages/perspective-viewer-d3fc/package.json
@@ -1,6 +1,6 @@
{
"name": "@finos/perspective-viewer-d3fc",
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "Perspective.js D3FC Plugin",
"unpkg": "./dist/cdn/perspective-viewer-d3fc.js",
"jsdelivr": "./dist/cdn/perspective-viewer-d3fc.js",
@@ -63,4 +63,4 @@
"@finos/perspective-test": "workspace:^",
"@prospective.co/procss": "^0.1.16"
}
-}
+}
\ No newline at end of file
diff --git a/packages/perspective-viewer-d3fc/src/ts/series/treemap/treemapSeries.ts b/packages/perspective-viewer-d3fc/src/ts/series/treemap/treemapSeries.ts
index 8715c0cb23..1358ac0513 100644
--- a/packages/perspective-viewer-d3fc/src/ts/series/treemap/treemapSeries.ts
+++ b/packages/perspective-viewer-d3fc/src/ts/series/treemap/treemapSeries.ts
@@ -70,10 +70,10 @@ export function treemapSeries() {
const rects = nodesMerge
.select("rect")
.attr("class", (d) => `treerect ${nodeLevelHelper(maxDepth, d)}`)
- .style("x", (d) => d.x0)
- .style("y", (d) => d.y0)
- .style("width", (d) => calcWidth(d))
- .style("height", (d) => calcHeight(d));
+ .style("x", (d) => `${d.x0}px`)
+ .style("y", (d) => `${d.y0}px`)
+ .style("width", (d) => `${calcWidth(d)}px`)
+ .style("height", (d) => `${calcHeight(d)}px`);
rects.style("fill", (d) => {
if (nodeLevelHelper(maxDepth, d) === nodeLevel.leaf) {
diff --git a/packages/perspective-viewer-datagrid/package.json b/packages/perspective-viewer-datagrid/package.json
index 9153b46a18..b4002e1f1a 100644
--- a/packages/perspective-viewer-datagrid/package.json
+++ b/packages/perspective-viewer-datagrid/package.json
@@ -1,6 +1,6 @@
{
"name": "@finos/perspective-viewer-datagrid",
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "Perspective datagrid plugin based on `regular-table`",
"unpkg": "dist/cdn/perspective-viewer-datagrid.js",
"jsdelivr": "dist/cdn/perspective-viewer-datagrid.js",
@@ -40,4 +40,4 @@
"@finos/perspective-esbuild-plugin": "workspace:^",
"@finos/perspective-test": "workspace:^"
}
-}
+}
\ No newline at end of file
diff --git a/packages/perspective-viewer-datagrid/src/less/row-hover.less b/packages/perspective-viewer-datagrid/src/less/row-hover.less
index 616130f6a3..8d60e95475 100644
--- a/packages/perspective-viewer-datagrid/src/less/row-hover.less
+++ b/packages/perspective-viewer-datagrid/src/less/row-hover.less
@@ -20,15 +20,12 @@ regular-table {
tr:hover:after {
border-color: var(--rt-hover--border-color, #c5c9d080) !important;
background-color: transparent;
- box-shadow: 0px 1px 0px var(--rt-hover--border-color, #c5c9d080),
- 0px 3px 0px rgba(0, 0, 0, 0.05), 0px 5px 0px rgba(0, 0, 0, 0.01);
+ box-shadow: 0px 1px 0px var(--rt-hover--border-color, #c5c9d080);
&.psp-menu-open {
box-shadow: inset -2px 0px 0px var(--icon--color),
inset 2px 0px 0px var(--icon--color),
- 0px 1px 0px var(--rt-hover--border-color, #c5c9d080),
- 0px 3px 0px rgba(0, 0, 0, 0.05),
- 0px 5px 0px rgba(0, 0, 0, 0.01);
+ 0px 1px 0px var(--rt-hover--border-color, #c5c9d080);
}
}
@@ -37,8 +34,7 @@ regular-table {
box-shadow: inset -2px 0px 0px var(--icon--color),
inset 2px 0px 0px var(--icon--color),
inset 0px -2px 0px var(--icon--color),
- 0px 1px 0px var(--rt-hover--border-color, #c5c9d080),
- 0px 3px 0px rgba(0, 0, 0, 0.05), 0px 5px 0px rgba(0, 0, 0, 0.01);
+ 0px 1px 0px var(--rt-hover--border-color, #c5c9d080);
}
tr:hover
diff --git a/packages/perspective-viewer-openlayers/package.json b/packages/perspective-viewer-openlayers/package.json
index 8eaa78348e..ff9eca02b8 100644
--- a/packages/perspective-viewer-openlayers/package.json
+++ b/packages/perspective-viewer-openlayers/package.json
@@ -1,6 +1,6 @@
{
"name": "@finos/perspective-viewer-openlayers",
- "version": "3.1.6",
+ "version": "3.1.8",
"unpkg": "dist/cdn/perspective-viewer-openlayers.js",
"jsdelivr": "dist/cdn/perspective-viewer-openlayers.js",
"exports": {
@@ -37,4 +37,4 @@
"@finos/perspective-esbuild-plugin": "workspace:^",
"@prospective.co/procss": "^0.1.16"
}
-}
+}
\ No newline at end of file
diff --git a/packages/perspective-webpack-plugin/package.json b/packages/perspective-webpack-plugin/package.json
index 9fa13b861b..91dc4625ae 100644
--- a/packages/perspective-webpack-plugin/package.json
+++ b/packages/perspective-webpack-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@finos/perspective-webpack-plugin",
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "Perspective.js Webpack Plugin",
"main": "index.js",
"publishConfig": {
@@ -29,4 +29,4 @@
"@finos/perspective-viewer": "workspace:^",
"webpack": "^5.60.0"
}
-}
+}
\ No newline at end of file
diff --git a/packages/perspective-workspace/build.js b/packages/perspective-workspace/build.js
index ad7d4375a5..d0b09858d5 100644
--- a/packages/perspective-workspace/build.js
+++ b/packages/perspective-workspace/build.js
@@ -154,6 +154,16 @@ async function build_all() {
}
await Promise.all(BUILD.map(build)).catch(() => process.exit(1));
+
+ try {
+ await $`npx tsc --project ./tsconfig.json`.stdio(
+ "inherit",
+ "inherit",
+ "inherit"
+ );
+ } catch (e) {
+ process.exit(1);
+ }
}
build_all();
diff --git a/packages/perspective-workspace/package.json b/packages/perspective-workspace/package.json
index 0be97e9540..0502185241 100644
--- a/packages/perspective-workspace/package.json
+++ b/packages/perspective-workspace/package.json
@@ -1,6 +1,6 @@
{
"name": "@finos/perspective-workspace",
- "version": "3.1.6",
+ "version": "3.1.8",
"description": "Perspective Workspace",
"files": [
"dist/**/*",
@@ -51,4 +51,4 @@
"@types/lodash": "^4.17.12",
"zx": "^8.1.9"
}
-}
+}
\ No newline at end of file
diff --git a/packages/perspective-workspace/src/less/menu.less b/packages/perspective-workspace/src/less/menu.less
index f184081323..d1b2fbd038 100644
--- a/packages/perspective-workspace/src/less/menu.less
+++ b/packages/perspective-workspace/src/less/menu.less
@@ -12,11 +12,15 @@
@import "@lumino/widgets/style/menu.css";
+:host {
+ position: absolute;
+}
+
.lm-Menu {
font-size: 12px;
padding: 8px;
- background: white;
- color: #666;
+ background-color: var(--plugin--background);
+ color: var(--icon--color);
border: 1px solid var(--inactive--color);
border-radius: 3px;
max-width: 350px;
@@ -71,12 +75,12 @@
padding: 0 8px;
}
-.lm-Menu-item[data-type="separator"] > div {
+.lm-Menu-item[data-type="separator"]>div {
padding: 0;
height: 9px;
}
-.lm-Menu-item[data-type="separator"] > div::after {
+.lm-Menu-item[data-type="separator"]>div::after {
content: "";
display: block;
position: relative;
@@ -121,4 +125,4 @@
.lm-mod-drag-image.lm-TabBar-tab {
display: none;
-}
+}
\ No newline at end of file
diff --git a/packages/perspective-workspace/src/less/viewer.less b/packages/perspective-workspace/src/less/viewer.less
index 7aa9897dac..ae4fdf8113 100644
--- a/packages/perspective-workspace/src/less/viewer.less
+++ b/packages/perspective-workspace/src/less/viewer.less
@@ -64,7 +64,7 @@
}
}
-perspective-viewer {
+::slotted(perspective-viewer) {
flex: 1;
position: relative;
display: block;
@@ -76,10 +76,11 @@ perspective-viewer {
overflow: visible !important;
}
-.lm-mod-override-cursor {
+:host-context(.lm-mod-override-cursor) {
cursor: grabbing !important;
}
-.lm-mod-override-cursor perspective-viewer > * {
- pointer-events: none;
+:host-context(.lm-mod-override-cursor) ::slotted(perspective-viewer),
+.context-menu ::slotted(perspective-viewer) {
+ --override-content-pointer-events: none;
}
diff --git a/packages/perspective-workspace/src/less/workspace.less b/packages/perspective-workspace/src/less/workspace.less
index 6cf4f4d217..7b8c283ce9 100644
--- a/packages/perspective-workspace/src/less/workspace.less
+++ b/packages/perspective-workspace/src/less/workspace.less
@@ -21,6 +21,8 @@
@import "@lumino/widgets/style/tabbar.css";
@import "@lumino/widgets/style/tabpanel.css";
+@import "./injected.less";
+
:host {
@import "./tabbar.less";
@import "./dockpanel.less";
@@ -28,8 +30,8 @@
background-color: hsl(210deg 18% 90%);
- width: 100%;
- height: 100%;
+ // width: 100%;
+ // height: 100%;
.workspace {
width: 100%;
diff --git a/packages/perspective-workspace/src/themes/pro-dark.less b/packages/perspective-workspace/src/themes/pro-dark.less
index ce2b459b64..dbadcdbfe2 100644
--- a/packages/perspective-workspace/src/themes/pro-dark.less
+++ b/packages/perspective-workspace/src/themes/pro-dark.less
@@ -22,9 +22,6 @@ perspective-indicator[theme="Pro Dark"] {
--theme-name: "Pro Dark";
}
-.lm-Menu {
- @include perspective-viewer-pro-dark--colors;
-}
perspective-workspace perspective-viewer {
--status-bar--height: 38px;
@@ -62,7 +59,7 @@ perspective-viewer[theme="Pro Dark"].workspace-master-widget {
--plugin--background: @grey800;
}
-.lm-Menu {
+perspective-workspace-menu {
font-family: "ui-monospace", "SFMono-Regular", "SF Mono", "Menlo",
"Consolas", "Liberation Mono", monospace;
font-weight: 300;
@@ -119,9 +116,7 @@ perspective-viewer[theme="Pro Dark"].workspace-master-widget {
--warning--color: #242526;
--warning--background: var(--icon--color);
- --select-arrow--background-image: var(
- --select-arrow-light--background-image
- );
+ --select-arrow--background-image: var(--select-arrow-light--background-image);
// Syntax
--code-editor-symbol--color: white;
@@ -130,4 +125,4 @@ perspective-viewer[theme="Pro Dark"].workspace-master-widget {
--code-editor-comment--color: rgb(204, 120, 48);
--code-editor-column--color: #e18ee1;
// --code-editor-unknown--color: rgb(204, 120, 48);
-}
+}
\ No newline at end of file
diff --git a/packages/perspective-workspace/src/themes/pro.less b/packages/perspective-workspace/src/themes/pro.less
index 6c8296ac47..90cf22ec2e 100644
--- a/packages/perspective-workspace/src/themes/pro.less
+++ b/packages/perspective-workspace/src/themes/pro.less
@@ -24,11 +24,6 @@ perspective-workspace {
background-color: #dadada;
}
-.lm-Menu {
- @include perspective-viewer-pro--colors;
- background-color: #ffffff;
-}
-
perspective-workspace perspective-viewer[settings] {
--modal-panel--margin: -4px 0 -4px 0;
--status-bar--border-radius: 6px 0 0 0;
@@ -46,7 +41,9 @@ perspective-workspace perspective-viewer {
perspective-viewer[theme="Pro Light"].workspace-master-widget {
background-color: #f2f4f6;
--plugin--background: #f2f4f6;
+
regular-table {
+
td,
th {
border-color: #e0e4e9;
@@ -84,9 +81,9 @@ perspective-viewer[theme="Pro Light"].workspace-master-widget {
--workspace-tabbar-tab--border-width: 1px 1px 0px 1px;
}
-.lm-Menu {
+perspective-workspace-menu {
font-family: "ui-monospace", "SFMono-Regular", "SF Mono", "Menlo",
"Consolas", "Liberation Mono", monospace;
font-weight: 300;
color: #161616;
-}
+}
\ No newline at end of file
diff --git a/packages/perspective-workspace/src/ts/workspace/commands.ts b/packages/perspective-workspace/src/ts/workspace/commands.ts
index 09cc6ea761..1459012460 100644
--- a/packages/perspective-workspace/src/ts/workspace/commands.ts
+++ b/packages/perspective-workspace/src/ts/workspace/commands.ts
@@ -20,6 +20,7 @@ import type {
} from "@finos/perspective-viewer";
import type { PerspectiveWorkspace } from "./workspace";
+import { WorkspaceMenu } from "./menu";
export const createCommands = (
workspace: PerspectiveWorkspace,
@@ -43,7 +44,10 @@ export const createCommands = (
workspace.get_context_menu()?.init_overlay?.();
menu.addEventListener("blur", () => {
const context_menu = workspace.get_context_menu()!;
- const signal = context_menu.aboutToClose as Signal