From 518ec57335e256f2e1c446951e2e4d664e55ab45 Mon Sep 17 00:00:00 2001 From: Gordon Smith Date: Wed, 30 Oct 2024 14:46:45 +0000 Subject: [PATCH] feat: Add dgrid Consoldiate simple index.html testing Signed-off-by: Gordon Smith --- .eslintrc.js => .eslintrc.cjs | 0 .github/workflows/release-please.yml | 2 +- .vitepress/config.ts | 318 +--- .vitepress/theme/index.ts | 31 +- .vitepress_v2/config.ts | 287 ++++ {.vitepress => .vitepress_v2}/mdWriter.ts | 0 .vitepress_v2/theme/index.ts | 22 + index.html | 48 - index.md | 29 +- package-lock.json | 1484 ++++++++++++++--- package.json | 17 +- packages/api/esbuild.js | 8 +- packages/api/src/ITooltip.ts | 8 +- packages/chart/esbuild.js | 12 +- packages/chart/index.html | 141 +- packages/chart/package.json | 4 +- packages/chart/src/Axis.ts | 16 +- packages/chart/src/Bubble.ts | 35 +- packages/chart/src/Column.ts | 23 +- packages/chart/src/D3Cloud.ts | 52 +- packages/chart/src/HexBin.ts | 25 +- packages/chart/src/Pie.ts | 60 +- packages/chart/src/Radar.ts | 30 +- packages/chart/src/RadialBar.ts | 31 +- packages/chart/src/Scatter.ts | 58 +- packages/chart/src/StatChart.ts | 12 +- packages/chart/src/Summary.ts | 4 +- packages/chart/src/SummaryC.ts | 4 +- packages/chart/src/WordCloud.ts | 70 +- packages/chart/src/XYAxis.ts | 8 +- packages/common/esbuild.js | 4 + packages/common/index.html | 12 + packages/common/src/Class.ts | 2 +- packages/common/src/Database.ts | 38 +- packages/common/src/HTMLWidget.ts | 2 +- packages/common/src/Palette.ts | 26 +- packages/common/src/PropertyExt.ts | 22 +- packages/common/src/SVGWidget.ts | 12 +- packages/common/src/SVGZoomWidget.ts | 2 +- packages/common/src/Shape.ts | 2 +- packages/common/src/Surface.ts | 4 +- packages/common/src/TextBox.ts | 2 +- packages/common/src/TitleBar.ts | 6 +- packages/common/src/Transition.ts | 12 +- packages/common/src/Utility.ts | 31 +- packages/common/src/Widget.ts | 32 +- packages/common/tests/common.browser.spec.ts | 1 + packages/comms/esbuild.js | 8 +- packages/comms/package.json | 2 +- packages/comms/rollup.config.mjs | 55 - packages/comms/src/connection.ts | 2 +- packages/comms/src/ecl/scope.ts | 2 +- packages/dgrid-shim/package.json | 9 +- packages/dgrid/.vscode/launch.json | 55 +- packages/dgrid/.vscode/tasks.json | 31 +- packages/dgrid/esbuild.js | 12 + packages/dgrid/index.html | 108 +- packages/dgrid/package.json | 62 +- packages/dgrid/rollup.config.mjs | 59 - packages/dgrid/src/Common.ts | 87 +- packages/dgrid/src/DBStore.ts | 4 +- packages/dgrid/src/DatasourceStore.ts | 6 +- packages/dgrid/src/DatasourceTable.ts | 26 +- packages/dgrid/src/Table.ts | 20 +- packages/dgrid/src/dgrid-shim.ts | 12 + packages/dgrid/src/index.ts | 16 +- packages/dgrid/tests/dgrid.browser.spec.ts | 121 ++ packages/dgrid/tmp.txt | 106 ++ packages/dgrid/tsconfig.json | 34 +- packages/dgrid/vitest.workspace.ts | 6 + packages/esbuild-plugins/src/remove-strict.ts | 1 + .../markdown-it-plugins/.vscode/launch.json | 2 +- packages/markdown-it-plugins/esbuild.js | 8 +- packages/markdown-it-plugins/index.html | 74 +- .../observablehq-compiler/.vscode/launch.json | 14 + .../observablehq-compiler/.vscode/tasks.json | 21 - packages/observablehq-compiler/index.html | 83 +- packages/observablehq-compiler/package.json | 1 + packages/util/package.json | 2 +- resources/hpcc-systems-dark.svg | 79 + resources/hpcc-systems.svg | 69 + vitest.workspace.ts | 9 +- 82 files changed, 2934 insertions(+), 1321 deletions(-) rename .eslintrc.js => .eslintrc.cjs (100%) create mode 100644 .vitepress_v2/config.ts rename {.vitepress => .vitepress_v2}/mdWriter.ts (100%) create mode 100644 .vitepress_v2/theme/index.ts delete mode 100644 index.html delete mode 100644 packages/comms/rollup.config.mjs create mode 100644 packages/dgrid/esbuild.js delete mode 100644 packages/dgrid/rollup.config.mjs create mode 100644 packages/dgrid/src/dgrid-shim.ts create mode 100644 packages/dgrid/tests/dgrid.browser.spec.ts create mode 100644 packages/dgrid/tmp.txt create mode 100644 packages/dgrid/vitest.workspace.ts create mode 100644 resources/hpcc-systems-dark.svg create mode 100644 resources/hpcc-systems.svg diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 100% rename from .eslintrc.js rename to .eslintrc.cjs diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index c8a3ab5103..e94ee74f22 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Initialize Release Please id: release - if: ${{ github.event_name == 'push' }} + if: ${{ github.event_name == 'push' }} uses: googleapis/release-please-action@v4 with: target-branch: ${{ github.ref_name }} diff --git a/.vitepress/config.ts b/.vitepress/config.ts index 252e3eccf1..1030c78b9a 100644 --- a/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -1,287 +1,47 @@ -import { ApiClass, ApiItem, ApiModel, ApiProperty } from "@microsoft/api-extractor-model"; -import path from "path"; -import { IndentedWriter, writeApiItem } from "./mdWriter"; - -function getGuideSidebar() { - return [ - { - text: "Introduction", - children: [ - { text: "Getting Started", link: "/README" } - ] +import { defineConfig } from "vitepress"; +import { observable } from "@hpcc-js/markdown-it-plugins"; +import { eclLang } from "@hpcc-js/markdown-it-plugins/ecl-lang"; + +// https://vitepress.dev/reference/site-config +export default async () => { + + return defineConfig({ + title: "@hpcc-js/Visualization", + description: "HPCC Systems JavaScript Library", + base: "/Visualization/", + srcDir: ".", + rewrites: { }, - { - text: "Advanced", - children: [{ text: "API Reference", link: "/docs/api/hpcc-js" }] - } - ]; -} - -// Keep in sync with: ../components/README.md - -function getComponentsSidebar() { - return [ - { - text: "Editors", - children: [ - { text: "CodeMirror", link: "/components/editor/src/codemirror" }, - { text: "Preview", link: "/components/preview/src/preview" }, - ] - }, { - text: "Observable HQ", - children: [ - { text: "Getting Started", link: "/components/observable/README" }, - { text: "Observable Script", link: "/components/observable/src/observable" }, - ] - }, { - text: "Layouts", - children: [ - { text: "Getting Started", link: "/components/layout/README" }, - { text: "Dock Panel", link: "/components/layout/src/lumino/dockPanel" }, - { text: "Drag and Zoom", link: "/components/layout/src/zoom" }, - { text: "Split Panel", link: "/components/layout/src/lumino/splitPanel" }, - { text: "Tab Panel", link: "/components/layout/src/lumino/tabPanel" }, - ] - }//, { - // text: "Visualizations", - // children: [ - // { text: "Gauge", link: "/components/gauge/src/gauge" }, - // { text: "Half Pie", link: "/components/pie/src/halfpie" }, - // { text: "Observable JS", link: "/components/observable/src/observable" }, - // { text: "Pie", link: "/components/pie/src/pie" }, - // { text: "Quarter Pie", link: "/components/pie/src/quarterpie" }, - // { text: "Sankey", link: "/components/sankey/src/sankey" }, - // { text: "Treemap", link: "/components/treemap/src/treemap" }, - // ] - // } - ]; -} - -function getVisualizationsSidebar() { - return [ - { - text: "Charts", - children: [ - { text: "Getting Started", link: "/packages/chart/README" }, - { text: "Area", link: "/packages/chart/src/Area" }, - { text: "Bar", link: "/packages/chart/src/Bar" }, - { text: "Bubble", link: "/packages/chart/src/Bubble" }, - { text: "Bullet", link: "/packages/chart/src/Bullet" }, - { text: "Column", link: "/packages/chart/src/Column" }, - { text: "Contour", link: "/packages/chart/src/Contour" }, - { text: "Gantt", link: "/packages/chart/src/Gantt" }, - { text: "Gauge", link: "/packages/chart/src/Gauge" }, - { text: "Half Pie", link: "/packages/chart/src/HalfPie" }, - { text: "Heat", link: "/packages/chart/src/Heat" }, - { text: "Hex Bin", link: "/packages/chart/src/HexBin" }, - { text: "Line", link: "/packages/chart/src/Line" }, - { text: "Pie", link: "/packages/chart/src/Pie" }, - { text: "Quarter Pie", link: "/packages/chart/src/QuarterPie" }, - { text: "Quartile Candlestick", link: "/packages/chart/src/QuartileCandlestick" }, - { text: "Radar", link: "/packages/chart/src/Radar" }, - { text: "Radial Bar", link: "/packages/chart/src/RadialBar" }, - { text: "Scatter", link: "/packages/chart/src/Scatter" }, - { text: "Stat Chart", link: "/packages/chart/src/StatChart" }, - { text: "Step", link: "/packages/chart/src/Step" }, - { text: "Summary", link: "/packages/chart/src/Summary" }, - { text: "Summary (Canvas)", link: "/packages/chart/src/SummaryC" }, - { text: "Word Cloud", link: "/packages/chart/src/WordCloud" }, - { text: "XYAxis", link: "/packages/chart/src/XYAxis" }, - ] - }, { - text: "Editors", - children: [ - { text: "Getting Started", link: "/packages/codemirror/README" }, - ] - }, { - text: "Grids", - children: [ - { text: "Getting Started", link: "/packages/dgrid2/README" }, - { text: "Table", link: "/packages/dgrid2/src/table" }, - ] - }, { - text: "Graphs", - children: [ - { text: "Getting Started", link: "/packages/graph/README" }, - ] - }, { - text: "Layouts", - children: [ - { text: "Getting Started", link: "/packages/layout/README" }, - ] - }, { - text: "Geospatial 2D", - children: [ - { text: "Getting Started", link: "/packages/map/README" }, - ] - }, { - text: "Geospatial 3D", - children: [ - { text: "Getting Started", link: "/packages/map-deck/README" }, - ] - }, { - text: "Observable HQ", - children: [ - { text: "Getting Started", link: "/packages/observablehq-compiler/README" }, - { text: "Compiler", link: "/packages/observablehq-compiler/src/compiler" }, - { text: "Utilities", link: "/packages/observablehq-compiler/src/util" }, - ] - }, { - text: "Timelines", - children: [ - { text: "Getting Started", link: "/packages/timeline/README" }, - ] - }, { - text: "Hierarchy", - children: [ - { text: "Getting Started", link: "/packages/tree/README" }, - ] - } - ]; -} - -module.exports = { - lang: "en-US", - title: "@hpcc-js/Visualization", - description: "HPCC Systems JavaScript Library", - base: "/Visualization/", - - head: [ - ['link', { rel: 'icon', type: 'image/x-icon', href: '/Visualization/resources/favicon.ico' }], - ], + lastUpdated: true, + themeConfig: { + // https://vitepress.dev/reference/default-theme-config + nav: [ + { text: "Home", link: "/" }, + { text: "Getting Started", link: "/README" }, + ], + + sidebar: [ + { text: "Getting Started", link: "/README" }, + { + text: "Documentation", + items: [ + ] + } + ], - themeConfig: { - repo: "hpcc-systems/Visualization", - docsDir: "", - docsBranch: "trunk", - editLinks: true, - editLinkText: "Edit this page on GitHub", - lastUpdated: "Last Updated", + socialLinks: [ + { icon: "github", link: "https://github.com/hpcc-systems/visualization" } + ], - nav: [ - { - text: "Guide", - link: "/README", - activeMatch: "^/README" - }, - { - text: "Web Components", - link: "/components/README", - activeMatch: "^/components/" - }, - { - text: "Visualizations", - link: "/packages/README", - activeMatch: "^/packages/" + }, + markdown: { + // https://github.com/vuejs/vitepress/blob/main/src/node/markdown/markdown.ts + config: md => { + md.use(observable, { vitePress: true }); }, - { - text: "Release Notes", - link: "https://github.com/hpcc-systems/Visualization/releases" - } - ], - sidebar: { - "/README": getGuideSidebar(), - "/components": getComponentsSidebar(), - "/packages": getVisualizationsSidebar() + languages: [eclLang()], } - }, - vue: { - template: { - compilerOptions: { - isCustomElement: (tag) => { - return tag.toLowerCase().indexOf("hpcc-") === 0; - } - } - } - }, - - markdown: { - config: (md) => { - const structs: { [id: string]: ApiItem } = {}; - const props: { [id: string]: ApiItem } = {}; - - let allMeta = {}; - try { - allMeta = require(path.join(__dirname, "../temp/hpcc-js.meta.json")); - } catch (e) { - // File might not exit yet --- - } - - function writeAttributes(struct: ApiItem, writer: IndentedWriter, isAttribute: boolean = true): boolean { - let retVal = false; - const structClass = struct as ApiClass; - // writer.writeLine(struct.displayName); - const baseClass = structs[structClass.extendsType?.excerpt?.text?.trim()]; - if (baseClass) { - retVal = writeAttributes(baseClass, writer, isAttribute); - } - const classMeta = allMeta[struct.displayName] ?? { observed: {} }; - for (const prop of struct.members) { - const propMeta = classMeta.observed[prop.displayName]; - if ((prop as ApiProperty).tsdocComment) { - if (propMeta === undefined || propMeta.isAttribute === isAttribute) { - if (writeApiItem(prop, { writer }, false)) { - retVal = true; - } - } - } - } - return retVal; - } - - md.core.ruler.before("normalize", "types", function replace(state) { - const apiModel = new ApiModel(); - let apiPackage; - try { - apiPackage = apiModel.loadPackage("./temp/hpcc-js.api.json"); - } catch (e) { - // File might not exit yet --- - } - - apiPackage?.members.forEach(entyrPoint => { - for (const struct of entyrPoint.members) { - // if (struct.displayName.indexOf("HPCC") === 0 && struct.displayName.indexOf("Element") > 0) { - structs[struct.displayName] = struct; - for (const prop of struct.members) { - props[struct.displayName + "." + prop.displayName] = prop; - } - // } - } - }); - - for (const key in structs) { - const struct = structs[key]; - const search = `## \`${key}\``; - if (state.src.indexOf(search) >= 0) { - let replacement = ""; - const attrWriter = new IndentedWriter(); - attrWriter.writeLine(`## Attributes`); - attrWriter.writeLine(); - if (writeAttributes(struct, attrWriter, true)) { - replacement += attrWriter.toString(); - } - const propWriter = new IndentedWriter(); - propWriter.writeLine(`## Properties`); - propWriter.writeLine(); - if (writeAttributes(struct, propWriter, false)) { - replacement += propWriter.toString(); - } - state.src = state.src.split(search).join(replacement); - } - } - - for (const key in props) { - const search = `### \`${key}\``; - if (state.src.indexOf(search) >= 0) { - const prop = props[key]; - const writer = new IndentedWriter(); - writeApiItem(prop, { writer }, false); - state.src = state.src.split(search).join(writer.toString()); - } - } - }); - } - } + }); }; diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts index 390af7bf08..caa4ebe942 100644 --- a/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -1,22 +1,19 @@ -//@ts-ignore +// https://vitepress.dev/guide/custom-theme +import { h } from "vue"; +import type { Theme } from "vitepress"; import DefaultTheme from "vitepress/theme"; - -//@ts-ignore -if (import.meta.env.MODE === "development") { - import("../../src/index"); -} +import RenderComponent from "@hpcc-js/markdown-it-plugins/vitepress/RenderComponent.vue"; +import "@hpcc-js/markdown-it-plugins/vitepress/styles.ts"; export default { - ...DefaultTheme, + extends: DefaultTheme, + Layout: () => { + return h(DefaultTheme.Layout, null, { + // https://vitepress.dev/guide/extending-default-theme#layout-slots + }); + }, enhanceApp({ app }) { + app.component("RenderComponent", RenderComponent); }, - vueOptions: { - template: { - compilerOptions: { - isCustomElement: (tag) => { - return tag.toLowerCase().indexOf("hpcc-") === 0; - } - } - } - } -}; + +} satisfies Theme; diff --git a/.vitepress_v2/config.ts b/.vitepress_v2/config.ts new file mode 100644 index 0000000000..252e3eccf1 --- /dev/null +++ b/.vitepress_v2/config.ts @@ -0,0 +1,287 @@ +import { ApiClass, ApiItem, ApiModel, ApiProperty } from "@microsoft/api-extractor-model"; +import path from "path"; +import { IndentedWriter, writeApiItem } from "./mdWriter"; + +function getGuideSidebar() { + return [ + { + text: "Introduction", + children: [ + { text: "Getting Started", link: "/README" } + ] + }, + { + text: "Advanced", + children: [{ text: "API Reference", link: "/docs/api/hpcc-js" }] + } + ]; +} + +// Keep in sync with: ../components/README.md + +function getComponentsSidebar() { + return [ + { + text: "Editors", + children: [ + { text: "CodeMirror", link: "/components/editor/src/codemirror" }, + { text: "Preview", link: "/components/preview/src/preview" }, + ] + }, { + text: "Observable HQ", + children: [ + { text: "Getting Started", link: "/components/observable/README" }, + { text: "Observable Script", link: "/components/observable/src/observable" }, + ] + }, { + text: "Layouts", + children: [ + { text: "Getting Started", link: "/components/layout/README" }, + { text: "Dock Panel", link: "/components/layout/src/lumino/dockPanel" }, + { text: "Drag and Zoom", link: "/components/layout/src/zoom" }, + { text: "Split Panel", link: "/components/layout/src/lumino/splitPanel" }, + { text: "Tab Panel", link: "/components/layout/src/lumino/tabPanel" }, + ] + }//, { + // text: "Visualizations", + // children: [ + // { text: "Gauge", link: "/components/gauge/src/gauge" }, + // { text: "Half Pie", link: "/components/pie/src/halfpie" }, + // { text: "Observable JS", link: "/components/observable/src/observable" }, + // { text: "Pie", link: "/components/pie/src/pie" }, + // { text: "Quarter Pie", link: "/components/pie/src/quarterpie" }, + // { text: "Sankey", link: "/components/sankey/src/sankey" }, + // { text: "Treemap", link: "/components/treemap/src/treemap" }, + // ] + // } + ]; +} + +function getVisualizationsSidebar() { + return [ + { + text: "Charts", + children: [ + { text: "Getting Started", link: "/packages/chart/README" }, + { text: "Area", link: "/packages/chart/src/Area" }, + { text: "Bar", link: "/packages/chart/src/Bar" }, + { text: "Bubble", link: "/packages/chart/src/Bubble" }, + { text: "Bullet", link: "/packages/chart/src/Bullet" }, + { text: "Column", link: "/packages/chart/src/Column" }, + { text: "Contour", link: "/packages/chart/src/Contour" }, + { text: "Gantt", link: "/packages/chart/src/Gantt" }, + { text: "Gauge", link: "/packages/chart/src/Gauge" }, + { text: "Half Pie", link: "/packages/chart/src/HalfPie" }, + { text: "Heat", link: "/packages/chart/src/Heat" }, + { text: "Hex Bin", link: "/packages/chart/src/HexBin" }, + { text: "Line", link: "/packages/chart/src/Line" }, + { text: "Pie", link: "/packages/chart/src/Pie" }, + { text: "Quarter Pie", link: "/packages/chart/src/QuarterPie" }, + { text: "Quartile Candlestick", link: "/packages/chart/src/QuartileCandlestick" }, + { text: "Radar", link: "/packages/chart/src/Radar" }, + { text: "Radial Bar", link: "/packages/chart/src/RadialBar" }, + { text: "Scatter", link: "/packages/chart/src/Scatter" }, + { text: "Stat Chart", link: "/packages/chart/src/StatChart" }, + { text: "Step", link: "/packages/chart/src/Step" }, + { text: "Summary", link: "/packages/chart/src/Summary" }, + { text: "Summary (Canvas)", link: "/packages/chart/src/SummaryC" }, + { text: "Word Cloud", link: "/packages/chart/src/WordCloud" }, + { text: "XYAxis", link: "/packages/chart/src/XYAxis" }, + ] + }, { + text: "Editors", + children: [ + { text: "Getting Started", link: "/packages/codemirror/README" }, + ] + }, { + text: "Grids", + children: [ + { text: "Getting Started", link: "/packages/dgrid2/README" }, + { text: "Table", link: "/packages/dgrid2/src/table" }, + ] + }, { + text: "Graphs", + children: [ + { text: "Getting Started", link: "/packages/graph/README" }, + ] + }, { + text: "Layouts", + children: [ + { text: "Getting Started", link: "/packages/layout/README" }, + ] + }, { + text: "Geospatial 2D", + children: [ + { text: "Getting Started", link: "/packages/map/README" }, + ] + }, { + text: "Geospatial 3D", + children: [ + { text: "Getting Started", link: "/packages/map-deck/README" }, + ] + }, { + text: "Observable HQ", + children: [ + { text: "Getting Started", link: "/packages/observablehq-compiler/README" }, + { text: "Compiler", link: "/packages/observablehq-compiler/src/compiler" }, + { text: "Utilities", link: "/packages/observablehq-compiler/src/util" }, + ] + }, { + text: "Timelines", + children: [ + { text: "Getting Started", link: "/packages/timeline/README" }, + ] + }, { + text: "Hierarchy", + children: [ + { text: "Getting Started", link: "/packages/tree/README" }, + ] + } + ]; +} + +module.exports = { + lang: "en-US", + title: "@hpcc-js/Visualization", + description: "HPCC Systems JavaScript Library", + base: "/Visualization/", + + head: [ + ['link', { rel: 'icon', type: 'image/x-icon', href: '/Visualization/resources/favicon.ico' }], + ], + + themeConfig: { + repo: "hpcc-systems/Visualization", + docsDir: "", + docsBranch: "trunk", + editLinks: true, + editLinkText: "Edit this page on GitHub", + lastUpdated: "Last Updated", + + nav: [ + { + text: "Guide", + link: "/README", + activeMatch: "^/README" + }, + { + text: "Web Components", + link: "/components/README", + activeMatch: "^/components/" + }, + { + text: "Visualizations", + link: "/packages/README", + activeMatch: "^/packages/" + }, + { + text: "Release Notes", + link: "https://github.com/hpcc-systems/Visualization/releases" + } + ], + + sidebar: { + "/README": getGuideSidebar(), + "/components": getComponentsSidebar(), + "/packages": getVisualizationsSidebar() + } + }, + + vue: { + template: { + compilerOptions: { + isCustomElement: (tag) => { + return tag.toLowerCase().indexOf("hpcc-") === 0; + } + } + } + }, + + markdown: { + config: (md) => { + const structs: { [id: string]: ApiItem } = {}; + const props: { [id: string]: ApiItem } = {}; + + let allMeta = {}; + try { + allMeta = require(path.join(__dirname, "../temp/hpcc-js.meta.json")); + } catch (e) { + // File might not exit yet --- + } + + function writeAttributes(struct: ApiItem, writer: IndentedWriter, isAttribute: boolean = true): boolean { + let retVal = false; + const structClass = struct as ApiClass; + // writer.writeLine(struct.displayName); + const baseClass = structs[structClass.extendsType?.excerpt?.text?.trim()]; + if (baseClass) { + retVal = writeAttributes(baseClass, writer, isAttribute); + } + const classMeta = allMeta[struct.displayName] ?? { observed: {} }; + for (const prop of struct.members) { + const propMeta = classMeta.observed[prop.displayName]; + if ((prop as ApiProperty).tsdocComment) { + if (propMeta === undefined || propMeta.isAttribute === isAttribute) { + if (writeApiItem(prop, { writer }, false)) { + retVal = true; + } + } + } + } + return retVal; + } + + md.core.ruler.before("normalize", "types", function replace(state) { + const apiModel = new ApiModel(); + let apiPackage; + try { + apiPackage = apiModel.loadPackage("./temp/hpcc-js.api.json"); + } catch (e) { + // File might not exit yet --- + } + + apiPackage?.members.forEach(entyrPoint => { + for (const struct of entyrPoint.members) { + // if (struct.displayName.indexOf("HPCC") === 0 && struct.displayName.indexOf("Element") > 0) { + structs[struct.displayName] = struct; + for (const prop of struct.members) { + props[struct.displayName + "." + prop.displayName] = prop; + } + // } + } + }); + + for (const key in structs) { + const struct = structs[key]; + const search = `## \`${key}\``; + if (state.src.indexOf(search) >= 0) { + let replacement = ""; + const attrWriter = new IndentedWriter(); + attrWriter.writeLine(`## Attributes`); + attrWriter.writeLine(); + if (writeAttributes(struct, attrWriter, true)) { + replacement += attrWriter.toString(); + } + const propWriter = new IndentedWriter(); + propWriter.writeLine(`## Properties`); + propWriter.writeLine(); + if (writeAttributes(struct, propWriter, false)) { + replacement += propWriter.toString(); + } + state.src = state.src.split(search).join(replacement); + } + } + + for (const key in props) { + const search = `### \`${key}\``; + if (state.src.indexOf(search) >= 0) { + const prop = props[key]; + const writer = new IndentedWriter(); + writeApiItem(prop, { writer }, false); + state.src = state.src.split(search).join(writer.toString()); + } + } + }); + } + } +}; diff --git a/.vitepress/mdWriter.ts b/.vitepress_v2/mdWriter.ts similarity index 100% rename from .vitepress/mdWriter.ts rename to .vitepress_v2/mdWriter.ts diff --git a/.vitepress_v2/theme/index.ts b/.vitepress_v2/theme/index.ts new file mode 100644 index 0000000000..390af7bf08 --- /dev/null +++ b/.vitepress_v2/theme/index.ts @@ -0,0 +1,22 @@ +//@ts-ignore +import DefaultTheme from "vitepress/theme"; + +//@ts-ignore +if (import.meta.env.MODE === "development") { + import("../../src/index"); +} + +export default { + ...DefaultTheme, + enhanceApp({ app }) { + }, + vueOptions: { + template: { + compilerOptions: { + isCustomElement: (tag) => { + return tag.toLowerCase().indexOf("hpcc-") === 0; + } + } + } + } +}; diff --git a/index.html b/index.html deleted file mode 100644 index cf776d1111..0000000000 --- a/index.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - hpcc-js - '); - - - - - -
- - -
-
-
-
-
-
-
- -
-
-
-
-
-
-
- - - - \ No newline at end of file diff --git a/index.md b/index.md index 447f5ea4f2..06ee0c7a10 100644 --- a/index.md +++ b/index.md @@ -1,17 +1,28 @@ --- -home: true -heroImage: /resources/hpccsystems.png -heroAlt: HPCC Systems Logo -heroText: Visualization + Web Component Suite -tagline: HPCC Systems JavaScript Library -actionText: Get Started -actionLink: /README +# https://vitepress.dev/reference/default-theme-home-page +layout: home + +hero: + name: "@hpcc-js" + text: Visualization + Web Component Suite + tagline: HPCC Systems JavaScript Library + image: + dark: /resources/hpcc-systems-dark.svg + light: /resources/hpcc-systems.svg + alt: HPCC Systems Logo + + actions: + - theme: brand + text: Getting Started + link: /README + features: - title: Simplicity First - details: Integrating Custom Web Components is as easy as adding a . + details: Integrating Custom Web Components is as easy as adding a <html-tag>. - title: Supports HPCC-Platform details: Includes communication libraries for interacting with the HPCC-Platform (optional). - title: Works with existing frameworks details: Standards-based Web Components are the foundation of each visualization, making them compatible with almost any modern web framework. -footer: Apache-2.0 Licensed | Copyright © 2022 hpccsystems.com + +footer: Apache-2.0 Licensed | Copyright © 2024 hpccsystems.com --- diff --git a/package-lock.json b/package-lock.json index 9c48a1cbe7..433654266c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "hpcc-js", - "version": "3.1.2", + "version": "2.107.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "hpcc-js", - "version": "3.1.2", + "version": "2.107.0", "license": "Apache-2.0", "workspaces": [ "utils/*", @@ -21,8 +21,8 @@ "packages/dataflow", "xpackages/ddl-shim", "xpackages/deck-shim", - "xpackages/dgrid", - "xpackages/dgrid-shim", + "packages/dgrid", + "packages/dgrid-shim", "xpackages/dgrid2", "xpackages/eclwatch", "packages/esbuild-plugins", @@ -64,18 +64,18 @@ "@microsoft/api-extractor-model": "7.29.8", "@typescript-eslint/eslint-plugin": "7.18.0", "@typescript-eslint/parser": "7.18.0", - "@vitest/browser": "2.1.3", - "@vitest/coverage-v8": "2.1.3", + "@vitest/browser": "2.1.4", + "@vitest/coverage-v8": "2.1.4", "eslint": "8.57.1", "eslint-plugin-react-hooks": "4.6.2", "lerna": "8.1.8", "npm-check-updates": "16.14.20", "npm-run-all": "4.1.5", - "playwright": "1.48.1", + "playwright": "1.48.2", "rimraf": "5.0.10", "typescript": "5.6.3", - "vitepress": "1.4.1", - "vitest": "2.1.3" + "vitepress": "1.4.2", + "vitest": "2.1.4" } }, "node_modules/@algolia/autocomplete-core": { @@ -226,9 +226,9 @@ } }, "node_modules/@algolia/client-common": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.10.2.tgz", - "integrity": "sha512-eE4OaTlb5KZdCehWmDARq2KEmMF7DEeFLjKqFDcZNb56k1DMSsa9zCQRXZMovlf2AXLsx0A/1q+SGAEgzF7G3w==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.12.0.tgz", + "integrity": "sha512-od3WmO8qxyfNhKc+K3D17tvun3IMs/xMNmxCG9MiElAkYVbPPTRUYMkRneCpmJyQI0hNx2/EA4kZgzVfQjO86Q==", "dev": true, "license": "MIT", "peer": true, @@ -260,17 +260,17 @@ } }, "node_modules/@algolia/client-search": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.10.2.tgz", - "integrity": "sha512-rGX8uil2uvPycFgtS9Fzwvh4tgKvfFWG5RIh3E77W42HrO66bykCf9jHqhIIlCxdDJih1PuUqBYZIkIAAoSkww==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.12.0.tgz", + "integrity": "sha512-R3qzEytgVLHOGNri+bpta6NtTt7YtkvUe/QBcAmMDjW4Jk1P0eBYIPfvnzIPbINRsLxIq9fZs9uAYBgsrts4Zg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@algolia/client-common": "5.10.2", - "@algolia/requester-browser-xhr": "5.10.2", - "@algolia/requester-fetch": "5.10.2", - "@algolia/requester-node-http": "5.10.2" + "@algolia/client-common": "5.12.0", + "@algolia/requester-browser-xhr": "5.12.0", + "@algolia/requester-fetch": "5.12.0", + "@algolia/requester-node-http": "5.12.0" }, "engines": { "node": ">= 14.0.0" @@ -357,14 +357,14 @@ } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.10.2.tgz", - "integrity": "sha512-gzlfE/H05ggDiEWNi8WaDSRhpE5X8rD1JqYKPPeM31JRI3TutQIKAk3MSUsa1bHM/Di56r2Gm6L1g3ZlZv2ETA==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.12.0.tgz", + "integrity": "sha512-KxwleraFuVoEGCoeW6Y1RAEbgBMS7SavqeyzWdtkJc6mXeCOJXn1iZitb8Tyn2FcpMNUKlSm0adrUTt7G47+Ow==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@algolia/client-common": "5.10.2" + "@algolia/client-common": "5.12.0" }, "engines": { "node": ">= 14.0.0" @@ -378,28 +378,28 @@ "license": "MIT" }, "node_modules/@algolia/requester-fetch": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.10.2.tgz", - "integrity": "sha512-Q27ciW9WRdq3pUITVlxpHIwe9QWOe+oPvgs8Z+gsv8vMkwXnLfANvSgeZCyQgx3SqzUPzhel0ozVq7Qoh8xIkg==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.12.0.tgz", + "integrity": "sha512-FuDZXUGU1pAg2HCnrt8+q1VGHKChV/LhvjvZlLOT7e56GJie6p+EuLu4/hMKPOVuQQ8XXtrTHKIU3Lw+7O5/bQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@algolia/client-common": "5.10.2" + "@algolia/client-common": "5.12.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.10.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.10.2.tgz", - "integrity": "sha512-WMUQ4iFhNnQXC4F1Yj51x8tgIvq5h8jtTLMBs7LbMiW6JhnLHfBVl7IVk6X1fZJO5YcvXW051HN8aFlfAb5QEw==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.12.0.tgz", + "integrity": "sha512-ncDDY7CxZhMs6LIoPl+vHFQceIBhYPY5EfuGF1V7beO0U38xfsCYEyutEFB2kRzf4D9Gqppn3iWX71sNtrKcuw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@algolia/client-common": "5.10.2" + "@algolia/client-common": "5.12.0" }, "engines": { "node": ">= 14.0.0" @@ -585,6 +585,7 @@ }, "node_modules/@clack/prompts/node_modules/is-unicode-supported": { "version": "1.3.0", + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -605,6 +606,16 @@ "node": ">=0.1.90" } }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@docsearch/css": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.2.tgz", @@ -1266,6 +1277,14 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "license": "MIT" }, + "node_modules/@hpcc-js/dgrid": { + "resolved": "packages/dgrid", + "link": true + }, + "node_modules/@hpcc-js/dgrid-shim": { + "resolved": "packages/dgrid-shim", + "link": true + }, "node_modules/@hpcc-js/esbuild-plugins": { "resolved": "packages/esbuild-plugins", "link": true @@ -1605,6 +1624,17 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", @@ -3989,9 +4019,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.2.tgz", - "integrity": "sha512-ufoveNTKDg9t/b7nqI3lwbCG/9IJMhADBNjjz/Jn6LxIZxD7T5L8l2uO/wD99945F1Oo8FvgbbZJRguyk/BdzA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.3.tgz", + "integrity": "sha512-ufb2CH2KfBWPJok95frEZZ82LtDl0A6QKTa8MoM+cWwDZvVGl5/jNb79pIhRvAalUu+7LD91VYR0nwRD799HkQ==", "cpu": [ "arm" ], @@ -4002,9 +4032,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.2.tgz", - "integrity": "sha512-iZoYCiJz3Uek4NI0J06/ZxUgwAfNzqltK0MptPDO4OR0a88R4h0DSELMsflS6ibMCJ4PnLvq8f7O1d7WexUvIA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.3.tgz", + "integrity": "sha512-iAHpft/eQk9vkWIV5t22V77d90CRofgR2006UiCjHcHJFVI1E0oBkQIAbz+pLtthFw3hWEmVB4ilxGyBf48i2Q==", "cpu": [ "arm64" ], @@ -4015,9 +4045,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.2.tgz", - "integrity": "sha512-/UhrIxobHYCBfhi5paTkUDQ0w+jckjRZDZ1kcBL132WeHZQ6+S5v9jQPVGLVrLbNUebdIRpIt00lQ+4Z7ys4Rg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.3.tgz", + "integrity": "sha512-QPW2YmkWLlvqmOa2OwrfqLJqkHm7kJCIMq9kOz40Zo9Ipi40kf9ONG5Sz76zszrmIZZ4hgRIkez69YnTHgEz1w==", "cpu": [ "arm64" ], @@ -4028,9 +4058,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.2.tgz", - "integrity": "sha512-1F/jrfhxJtWILusgx63WeTvGTwE4vmsT9+e/z7cZLKU8sBMddwqw3UV5ERfOV+H1FuRK3YREZ46J4Gy0aP3qDA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.3.tgz", + "integrity": "sha512-KO0pN5x3+uZm1ZXeIfDqwcvnQ9UEGN8JX5ufhmgH5Lz4ujjZMAnxQygZAVGemFWn+ZZC0FQopruV4lqmGMshow==", "cpu": [ "x64" ], @@ -4041,9 +4071,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.2.tgz", - "integrity": "sha512-1YWOpFcGuC6iGAS4EI+o3BV2/6S0H+m9kFOIlyFtp4xIX5rjSnL3AwbTBxROX0c8yWtiWM7ZI6mEPTI7VkSpZw==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.3.tgz", + "integrity": "sha512-CsC+ZdIiZCZbBI+aRlWpYJMSWvVssPuWqrDy/zi9YfnatKKSLFCe6fjna1grHuo/nVaHG+kiglpRhyBQYRTK4A==", "cpu": [ "arm64" ], @@ -4054,9 +4084,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.2.tgz", - "integrity": "sha512-3qAqTewYrCdnOD9Gl9yvPoAoFAVmPJsBvleabvx4bnu1Kt6DrB2OALeRVag7BdWGWLhP1yooeMLEi6r2nYSOjg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.3.tgz", + "integrity": "sha512-F0nqiLThcfKvRQhZEzMIXOQG4EeX61im61VYL1jo4eBxv4aZRmpin6crnBJQ/nWnCsjH5F6J3W6Stdm0mBNqBg==", "cpu": [ "x64" ], @@ -4067,9 +4097,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.2.tgz", - "integrity": "sha512-ArdGtPHjLqWkqQuoVQ6a5UC5ebdX8INPuJuJNWRe0RGa/YNhVvxeWmCTFQ7LdmNCSUzVZzxAvUznKaYx645Rig==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.3.tgz", + "integrity": "sha512-KRSFHyE/RdxQ1CSeOIBVIAxStFC/hnBgVcaiCkQaVC+EYDtTe4X7z5tBkFyRoBgUGtB6Xg6t9t2kulnX6wJc6A==", "cpu": [ "arm" ], @@ -4080,9 +4110,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.2.tgz", - "integrity": "sha512-B6UHHeNnnih8xH6wRKB0mOcJGvjZTww1FV59HqJoTJ5da9LCG6R4SEBt6uPqzlawv1LoEXSS0d4fBlHNWl6iYw==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.3.tgz", + "integrity": "sha512-h6Q8MT+e05zP5BxEKz0vi0DhthLdrNEnspdLzkoFqGwnmOzakEHSlXfVyA4HJ322QtFy7biUAVFPvIDEDQa6rw==", "cpu": [ "arm" ], @@ -4093,9 +4123,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.2.tgz", - "integrity": "sha512-kr3gqzczJjSAncwOS6i7fpb4dlqcvLidqrX5hpGBIM1wtt0QEVtf4wFaAwVv8QygFU8iWUMYEoJZWuWxyua4GQ==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.3.tgz", + "integrity": "sha512-fKElSyXhXIJ9pqiYRqisfirIo2Z5pTTve5K438URf08fsypXrEkVmShkSfM8GJ1aUyvjakT+fn2W7Czlpd/0FQ==", "cpu": [ "arm64" ], @@ -4106,9 +4136,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.2.tgz", - "integrity": "sha512-TDdHLKCWgPuq9vQcmyLrhg/bgbOvIQ8rtWQK7MRxJ9nvaxKx38NvY7/Lo6cYuEnNHqf6rMqnivOIPIQt6H2AoA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.3.tgz", + "integrity": "sha512-YlddZSUk8G0px9/+V9PVilVDC6ydMz7WquxozToozSnfFK6wa6ne1ATUjUvjin09jp34p84milxlY5ikueoenw==", "cpu": [ "arm64" ], @@ -4119,9 +4149,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.2.tgz", - "integrity": "sha512-xv9vS648T3X4AxFFZGWeB5Dou8ilsv4VVqJ0+loOIgDO20zIhYfDLkk5xoQiej2RiSQkld9ijF/fhLeonrz2mw==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.3.tgz", + "integrity": "sha512-yNaWw+GAO8JjVx3s3cMeG5Esz1cKVzz8PkTJSfYzE5u7A+NvGmbVFEHP+BikTIyYWuz0+DX9kaA3pH9Sqxp69g==", "cpu": [ "ppc64" ], @@ -4132,9 +4162,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.2.tgz", - "integrity": "sha512-tbtXwnofRoTt223WUZYiUnbxhGAOVul/3StZ947U4A5NNjnQJV5irKMm76G0LGItWs6y+SCjUn/Q0WaMLkEskg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.3.tgz", + "integrity": "sha512-lWKNQfsbpv14ZCtM/HkjCTm4oWTKTfxPmr7iPfp3AHSqyoTz5AgLemYkWLwOBWc+XxBbrU9SCokZP0WlBZM9lA==", "cpu": [ "riscv64" ], @@ -4145,9 +4175,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.2.tgz", - "integrity": "sha512-gc97UebApwdsSNT3q79glOSPdfwgwj5ELuiyuiMY3pEWMxeVqLGKfpDFoum4ujivzxn6veUPzkGuSYoh5deQ2Q==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.3.tgz", + "integrity": "sha512-HoojGXTC2CgCcq0Woc/dn12wQUlkNyfH0I1ABK4Ni9YXyFQa86Fkt2Q0nqgLfbhkyfQ6003i3qQk9pLh/SpAYw==", "cpu": [ "s390x" ], @@ -4158,9 +4188,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.2.tgz", - "integrity": "sha512-jOG/0nXb3z+EM6SioY8RofqqmZ+9NKYvJ6QQaa9Mvd3RQxlH68/jcB/lpyVt4lCiqr04IyaC34NzhUqcXbB5FQ==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.3.tgz", + "integrity": "sha512-mnEOh4iE4USSccBOtcrjF5nj+5/zm6NcNhbSEfR3Ot0pxBwvEn5QVUXcuOwwPkapDtGZ6pT02xLoPaNv06w7KQ==", "cpu": [ "x64" ], @@ -4171,9 +4201,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.2.tgz", - "integrity": "sha512-XAo7cJec80NWx9LlZFEJQxqKOMz/lX3geWs2iNT5CHIERLFfd90f3RYLLjiCBm1IMaQ4VOX/lTC9lWfzzQm14Q==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.3.tgz", + "integrity": "sha512-rMTzawBPimBQkG9NKpNHvquIUTQPzrnPxPbCY1Xt+mFkW7pshvyIS5kYgcf74goxXOQk0CP3EoOC1zcEezKXhw==", "cpu": [ "x64" ], @@ -4184,9 +4214,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.2.tgz", - "integrity": "sha512-A+JAs4+EhsTjnPQvo9XY/DC0ztaws3vfqzrMNMKlwQXuniBKOIIvAAI8M0fBYiTCxQnElYu7mLk7JrhlQ+HeOw==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.3.tgz", + "integrity": "sha512-2lg1CE305xNvnH3SyiKwPVsTVLCg4TmNCF1z7PSHX2uZY2VbUpdkgAllVoISD7JO7zu+YynpWNSKAtOrX3AiuA==", "cpu": [ "arm64" ], @@ -4197,9 +4227,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.2.tgz", - "integrity": "sha512-ZhcrakbqA1SCiJRMKSU64AZcYzlZ/9M5LaYil9QWxx9vLnkQ9Vnkve17Qn4SjlipqIIBFKjBES6Zxhnvh0EAEw==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.3.tgz", + "integrity": "sha512-9SjYp1sPyxJsPWuhOCX6F4jUMXGbVVd5obVpoVEi8ClZqo52ViZewA6eFz85y8ezuOA+uJMP5A5zo6Oz4S5rVQ==", "cpu": [ "ia32" ], @@ -4210,9 +4240,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.2.tgz", - "integrity": "sha512-2mLH46K1u3r6uwc95hU+OR9q/ggYMpnS7pSp83Ece1HUQgF9Nh/QwTK5rcgbFnV9j+08yBrU5sA/P0RK2MSBNA==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.3.tgz", + "integrity": "sha512-HGZgRFFYrMrP3TJlq58nR1xy8zHKId25vhmm5S9jETEfDf6xybPxsavFTJaufe2zgOGYJBskGlj49CwtEuFhWQ==", "cpu": [ "x64" ], @@ -4832,6 +4862,13 @@ "@types/d3-selection": "^1" } }, + "node_modules/@types/dojo": { + "version": "1.9.48", + "resolved": "https://registry.npmjs.org/@types/dojo/-/dojo-1.9.48.tgz", + "integrity": "sha512-+/wltO++J0mmLoPa+mqElzilBahIfSY5Lz3o7RJkyIB0GDPnWhw3RUxU+xuZRCJE7uOFnNgqTdL76n/E0wDJ5w==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -4869,6 +4906,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", @@ -4916,9 +4960,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "18.19.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.60.tgz", - "integrity": "sha512-cYRj7igVqgxhlHFdBHHpU2SNw3+dN2x0VTZJtLYk6y/ieuGN4XiBgtDjYVktM/yk2y/8pKMileNc6IoEzEJnUw==", + "version": "18.19.61", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.61.tgz", + "integrity": "sha512-z8fH66NcVkDzBItOao+Nyh0fiy7CYdxIyxnNCcZ60aY0I+EA/y4TSi/S/W9i8DIQvwVo7a0pgzAxmDeNnqrpkw==", "dev": true, "license": "MIT", "dependencies": { @@ -5234,19 +5278,19 @@ } }, "node_modules/@vitest/browser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-2.1.3.tgz", - "integrity": "sha512-PQ2kLLc9q8ukJutuuYsynHSr31E78/dtYEvPy4jCHLht1LmITqXTVTqu7THWdZ1kXNGrWwtdMqtt3z2mvSKdIg==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-2.1.4.tgz", + "integrity": "sha512-89SrvShW6kWzmEYtBj5k1gBq88emoC2qrngw5hE1vNpRFteQ5/1URbKIVww391rIALTpzhhCt5yJt5tjLPZxYw==", "dev": true, "license": "MIT", "dependencies": { "@testing-library/dom": "^10.4.0", "@testing-library/user-event": "^14.5.2", - "@vitest/mocker": "2.1.3", - "@vitest/utils": "2.1.3", - "magic-string": "^0.30.11", - "msw": "^2.3.5", - "sirv": "^2.0.4", + "@vitest/mocker": "2.1.4", + "@vitest/utils": "2.1.4", + "magic-string": "^0.30.12", + "msw": "^2.5.0", + "sirv": "^3.0.0", "tinyrainbow": "^1.2.0", "ws": "^8.18.0" }, @@ -5255,7 +5299,7 @@ }, "peerDependencies": { "playwright": "*", - "vitest": "2.1.3", + "vitest": "2.1.4", "webdriverio": "*" }, "peerDependenciesMeta": { @@ -5271,21 +5315,21 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.3.tgz", - "integrity": "sha512-2OJ3c7UPoFSmBZwqD2VEkUw6A/tzPF0LmW0ZZhhB8PFxuc+9IBG/FaSM+RLEenc7ljzFvGN+G0nGQoZnh7sy2A==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.4.tgz", + "integrity": "sha512-FPKQuJfR6VTfcNMcGpqInmtJuVXFSCd9HQltYncfR01AzXhLucMEtQ5SinPdZxsT5x/5BK7I5qFJ5/ApGCmyTQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.3.0", "@bcoe/v8-coverage": "^0.2.3", - "debug": "^4.3.6", + "debug": "^4.3.7", "istanbul-lib-coverage": "^3.2.2", "istanbul-lib-report": "^3.0.1", "istanbul-lib-source-maps": "^5.0.6", "istanbul-reports": "^3.1.7", - "magic-string": "^0.30.11", - "magicast": "^0.3.4", + "magic-string": "^0.30.12", + "magicast": "^0.3.5", "std-env": "^3.7.0", "test-exclude": "^7.0.1", "tinyrainbow": "^1.2.0" @@ -5294,8 +5338,8 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "2.1.3", - "vitest": "2.1.3" + "@vitest/browser": "2.1.4", + "vitest": "2.1.4" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -5304,15 +5348,15 @@ } }, "node_modules/@vitest/expect": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.3.tgz", - "integrity": "sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.4.tgz", + "integrity": "sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "2.1.3", - "@vitest/utils": "2.1.3", - "chai": "^5.1.1", + "@vitest/spy": "2.1.4", + "@vitest/utils": "2.1.4", + "chai": "^5.1.2", "tinyrainbow": "^1.2.0" }, "funding": { @@ -5320,22 +5364,21 @@ } }, "node_modules/@vitest/mocker": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.3.tgz", - "integrity": "sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.4.tgz", + "integrity": "sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "2.1.3", + "@vitest/spy": "2.1.4", "estree-walker": "^3.0.3", - "magic-string": "^0.30.11" + "magic-string": "^0.30.12" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/spy": "2.1.3", - "msw": "^2.3.5", + "msw": "^2.4.9", "vite": "^5.0.0" }, "peerDependenciesMeta": { @@ -5348,9 +5391,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.3.tgz", - "integrity": "sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.4.tgz", + "integrity": "sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==", "dev": true, "license": "MIT", "dependencies": { @@ -5361,13 +5404,13 @@ } }, "node_modules/@vitest/runner": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.3.tgz", - "integrity": "sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.4.tgz", + "integrity": "sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "2.1.3", + "@vitest/utils": "2.1.4", "pathe": "^1.1.2" }, "funding": { @@ -5375,14 +5418,14 @@ } }, "node_modules/@vitest/snapshot": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.3.tgz", - "integrity": "sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.4.tgz", + "integrity": "sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.1.3", - "magic-string": "^0.30.11", + "@vitest/pretty-format": "2.1.4", + "magic-string": "^0.30.12", "pathe": "^1.1.2" }, "funding": { @@ -5390,27 +5433,27 @@ } }, "node_modules/@vitest/spy": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.3.tgz", - "integrity": "sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.4.tgz", + "integrity": "sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==", "dev": true, "license": "MIT", "dependencies": { - "tinyspy": "^3.0.0" + "tinyspy": "^3.0.2" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/utils": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.3.tgz", - "integrity": "sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.4.tgz", + "integrity": "sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.1.3", - "loupe": "^3.1.1", + "@vitest/pretty-format": "2.1.4", + "loupe": "^3.1.2", "tinyrainbow": "^1.2.0" }, "funding": { @@ -5486,23 +5529,23 @@ } }, "node_modules/@vue/devtools-api": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.5.4.tgz", - "integrity": "sha512-j9UC/KeYUNZ6AyCJxBROBCbogB5YHW6PZv9VnCNp2ntE4rq426Lfc8WP5B9V+rXBwqWmrgZTGYBa31CBSxdAUg==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.5.6.tgz", + "integrity": "sha512-/7ov2ioU80fYcYENEJXp88l88gX1PJCGJdMtQmUV3VQmGgQvKrpeUoPWgkpXPkUxmAquh6PZnVtXeDpTX5mmLg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-kit": "^7.5.4" + "@vue/devtools-kit": "^7.5.6" } }, "node_modules/@vue/devtools-kit": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.5.4.tgz", - "integrity": "sha512-0i7WFgc1B2TL52tstn82zlb9opSA0aIiHfkUYFXtZb8CIpmlFMTkHtgwVl6PMWNBj3LNhYou1YJCLpCYvJYYoA==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.5.6.tgz", + "integrity": "sha512-44qr4/l9BsNP5hKETucueP8SKkyDZBHEurV4pQnRWs906OG9f2aYWhk4vL+27tsB4ZoWJM2h3RLhygzeeKZzWg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/devtools-shared": "^7.5.4", + "@vue/devtools-shared": "^7.5.6", "birpc": "^0.2.19", "hookable": "^5.5.3", "mitt": "^3.0.1", @@ -5512,9 +5555,9 @@ } }, "node_modules/@vue/devtools-shared": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.5.4.tgz", - "integrity": "sha512-dwuq4YmwTyLc7eBOqX63s3JB8il7qnKsNgENglSMkUPwiItHkVAYYfPESN1rxSdYkl1RCux1l5TBidYqfUDNAA==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.5.6.tgz", + "integrity": "sha512-5iq/BF6f05JTcC7J/1DTUm4CpyVVB4KiyLAo/fDcoyWR7EulharWQVbr6W7ek5lO23f5mbnJ+adA5tfFTJt6Sw==", "dev": true, "license": "MIT", "dependencies": { @@ -5763,6 +5806,214 @@ } } }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, "node_modules/@xmldom/is-dom-node": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@xmldom/is-dom-node/-/is-dom-node-1.0.1.tgz", @@ -5774,15 +6025,28 @@ } }, "node_modules/@xmldom/xmldom": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.4.tgz", - "integrity": "sha512-zglELfWx7g1cEpVMRBZ0srIQO5nEvKvraJ6CVUC/c5Ky1GgX8OIjtUj5qOweTYULYZo5VnXs/LpUUUNiGpX/rA==", - "deprecated": "this version has critical issues, please update to the latest version", + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.5.tgz", + "integrity": "sha512-6g1EwSs8cr8JhP1iBxzyVAWM6BIDvx9Y3FZRIQiMDzgG43Pxi8YkWOZ0nQj2NHgNzgXDZbJewFx/n+YAvMZrfg==", "license": "MIT", "engines": { "node": ">=14.6" } }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", @@ -5858,6 +6122,16 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -6138,9 +6412,9 @@ } }, "node_modules/apache-arrow/node_modules/@types/node": { - "version": "20.17.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.2.tgz", - "integrity": "sha512-OOHK4sjXqkL7yQ7VEEHcf6+0jSvKjWqwnaCtY7AKD/VLEvRHMsxxu7eI8ErnjxHS8VwmekD4PeVCpu4qZEZSxg==", + "version": "20.17.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.3.tgz", + "integrity": "sha512-tSQrmKKatLDGnG92h40GD7FzUt0MjahaHwOME4VAFeeA/Xopayq5qLyQRy7Jg/pjgKIFBXuKcGhJo+UdYG55jQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6409,6 +6683,16 @@ "require-from-string": "^2.0.2" } }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/bin-links": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz", @@ -6618,6 +6902,39 @@ "node": ">=8" } }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -6809,6 +7126,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/caniuse-lite": { + "version": "1.0.30001675", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001675.tgz", + "integrity": "sha512-/wV1bQwPrkLiQMjaJF5yUMVM/VdRPOCU8QZ+PmG6uW6DvYSrNY1bpwHI/3mOcUosLaJCzYDi5o91IQB51ft6cg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", @@ -6931,6 +7269,16 @@ "node": ">=10" } }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -7141,6 +7489,13 @@ } ] }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, "node_modules/columnify": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", @@ -8521,6 +8876,13 @@ "wrappy": "1" } }, + "node_modules/dgrid": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/dgrid/-/dgrid-1.3.3.tgz", + "integrity": "sha512-k7k8w/WTXf2I0soYX/MwcieAelxQHhxlxqfDdTcIf1+9dLm1dYUyARmJhO/eEZSI1Ee2zTZzMHADC0MghZOZfg==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -8531,6 +8893,27 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/dijit": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/dijit/-/dijit-1.17.3.tgz", + "integrity": "sha512-QS+1bNhPT+BF9E+iomQSi5qI+o3oUNSx1r5TF8WlGH4LybGZP+IIGJBOO5/41YduBPljVXhY7vaPsgrycxC6UQ==", + "dev": true, + "license": "BSD-3-Clause OR AFL-2.1", + "dependencies": { + "dojo": "1.17.3" + } + }, + "node_modules/dijit-themes": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/dijit-themes/-/dijit-themes-1.17.3.tgz", + "integrity": "sha512-AxQvinSkvA0PyOszdNIhIQdmF0PS0s9hqBnXRgKMZPkLT6ody4k1+SdHhs6Eq0zKVKnQXcZLxHnx07AtnU7FEQ==", + "dev": true, + "license": "BSD-3-Clause OR AFL-2.1", + "peerDependencies": { + "dijit": "1.17.3", + "dojo": "1.17.3" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -8557,17 +8940,83 @@ "node": ">=6.0.0" } }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "node_modules/dojo": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/dojo/-/dojo-1.17.3.tgz", + "integrity": "sha512-iWDx1oSfCEDnIrs8cMW7Zh9Fbjgxu8iRagFz+Qi2eya3MXIAxFXKhv2A7dpi+bfpMpFozLwcsLV8URLw6BsHsA==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause OR AFL-2.1" }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "node_modules/dojo-dstore": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/dojo-dstore/-/dojo-dstore-1.2.1.tgz", + "integrity": "sha512-xOgHXNGEdRn+cNvHK6Mf9gU07YPy8MXwZ74Nd7rKVMFxu0/uZOThGljWBdU3bJvhRMzI4IPVTTAOXv/FGGKC4g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@types/dojo": "^1.9.0", + "dojo": "^1.9.0" + } + }, + "node_modules/dojo-util": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/dojo-util/-/dojo-util-1.17.3.tgz", + "integrity": "sha512-3hZMwVh9XmofCJh3v3epTlODTnk3FJoGHZiZKVlbhvYLtRC8pkLg6zitOpT2Zg4Jn5URYmPrMmAdwxRHrG736A==", + "dev": true + }, + "node_modules/dojo-webpack-plugin": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/dojo-webpack-plugin/-/dojo-webpack-plugin-3.0.6.tgz", + "integrity": "sha512-alyVD0Oa8Og2mCJo5PX07oNHb2Qp60sXZ7+xtkRnAIIenkR2iiQhW5VUeUq4LCCWyjtzyfNJQvlCHva/YusQnQ==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "loader-utils": "2.0.4", + "node-stringify": "0.2.1", + "raw-loader": "0.5.1", + "tmp": "0.0.30" + }, + "peerDependencies": { + "tapable": ">=2.0", + "webpack": ">=5.0.0", + "webpack-sources": ">=2.0.0" + } + }, + "node_modules/dojo-webpack-plugin/node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dojox": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/dojox/-/dojox-1.17.3.tgz", + "integrity": "sha512-n2SvGoVTZlOQUQmoqEfW6oGAfmyBtjl4DzWkxoojdTxBq8O0r7pDKBrW3nRrpQW9uZFHfB1XIA3BXS0cnrue/Q==", + "dev": true, + "license": "BSD-3-Clause OR AFL-2.1", + "dependencies": { + "dijit": "1.17.3", + "dojo": "1.17.3" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -8692,12 +9141,29 @@ "node": ">=0.10.0" } }, + "node_modules/electron-to-chromium": { + "version": "1.5.49", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.49.tgz", + "integrity": "sha512-ZXfs1Of8fDb6z7WEYZjXpgIRF6MEu8JdeGA0A40aZq6OQbS+eJpnnV49epZRna2DU/YsEjSQuGtQPPtvt6J65A==", + "dev": true, + "license": "ISC" + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "license": "MIT" }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", @@ -8742,6 +9208,20 @@ "once": "^1.4.0" } }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -9303,6 +9783,16 @@ "dev": true, "license": "MIT" }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/execa": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", @@ -9327,6 +9817,16 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/expect-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", + "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", @@ -9449,6 +9949,16 @@ "dev": true, "license": "MIT" }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -10316,6 +10826,13 @@ "node": ">=10.13.0" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -11134,6 +11651,16 @@ "node": ">=12" } }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/ip-address": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", @@ -11651,6 +12178,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -11912,6 +12440,21 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", @@ -12671,6 +13214,31 @@ "node": ">=8" } }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -13615,9 +14183,9 @@ "license": "MIT" }, "node_modules/msw": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/msw/-/msw-2.5.2.tgz", - "integrity": "sha512-eBsFgU30NYtrfC62XzS1rdAzFK+Br0zKU4ORqD9Qliq86362DWZyPiD6FLfMgy0Ktik83DPTXmqPMz2bqwmJdA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.6.0.tgz", + "integrity": "sha512-n3tx2w0MZ3H4pxY0ozrQ4sNPzK/dGtlr2cIIyuEsgq2Bhy4wvcW6ZH2w/gXM9+MEUY6HC1fWhqtcXDxVZr5Jxw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -13627,6 +14195,7 @@ "@bundled-es-modules/tough-cookie": "^0.1.6", "@inquirer/confirm": "^5.0.0", "@mswjs/interceptors": "^0.36.5", + "@open-draft/deferred-promise": "^2.2.0", "@open-draft/until": "^2.1.0", "@types/cookie": "^0.6.0", "@types/statuses": "^2.0.4", @@ -13856,6 +14425,23 @@ "dev": true, "license": "MIT" }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-stringify": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-stringify/-/node-stringify-0.2.1.tgz", + "integrity": "sha512-EdzBiPO2hmQOpG8eZtJmBK0bAWPTdla2GAU4Tb7fztLkAiMEYcJAHWvC/4FI8E9ZOxB1zmoAJpM6upTQ54xNDw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/nopt": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", @@ -16002,13 +16588,13 @@ } }, "node_modules/playwright": { - "version": "1.48.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.48.1.tgz", - "integrity": "sha512-j8CiHW/V6HxmbntOfyB4+T/uk08tBy6ph0MpBXwuoofkSnLmlfdYNNkFTYD6ofzzlSqLA1fwH4vwvVFvJgLN0w==", + "version": "1.48.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.48.2.tgz", + "integrity": "sha512-NjYvYgp4BPmiwfe31j4gHLa3J7bD2WiBz8Lk2RoSsmX38SVIARZ18VYjxLjAcDsAhA+F4iSEXTSGgjua0rrlgQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.48.1" + "playwright-core": "1.48.2" }, "bin": { "playwright": "cli.js" @@ -16021,9 +16607,9 @@ } }, "node_modules/playwright-core": { - "version": "1.48.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.48.1.tgz", - "integrity": "sha512-Yw/t4VAFX/bBr1OzwCuOMZkY1Cnb4z/doAFSwf4huqAGWmf9eMNjmK7NiOljCdLmxeRYcGPPmcDgU0zOlzP0YA==", + "version": "1.48.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.48.2.tgz", + "integrity": "sha512-sjjw+qrLFlriJo64du+EK0kJgZzoQPsabGF4lBvsid+3CNIZIYLgnMj9V6JY5VhM2Peh20DJWIVpVljLLnlawA==", "dev": true, "license": "Apache-2.0", "bin": { @@ -16361,6 +16947,16 @@ "node": ">=8" } }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -16370,6 +16966,12 @@ "node": ">= 0.6" } }, + "node_modules/raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==", + "dev": true + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -16749,6 +17351,19 @@ "node": ">= 6" } }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -17009,9 +17624,9 @@ } }, "node_modules/rollup": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.2.tgz", - "integrity": "sha512-do/DFGq5g6rdDhdpPq5qb2ecoczeK6y+2UAjdJ5trjQJj5f1AiVdLRWRc9A9/fFukfvJRgM0UXzxBIYMovm5ww==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.3.tgz", + "integrity": "sha512-HBW896xR5HGmoksbi3JBDtmVzWiPAYqp7wip50hjQ67JbDz61nyoMPdqu1DvVW9asYb2M65Z20ZHsyJCMqMyDg==", "license": "MIT", "dependencies": { "@types/estree": "1.0.6" @@ -17024,24 +17639,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.2", - "@rollup/rollup-android-arm64": "4.24.2", - "@rollup/rollup-darwin-arm64": "4.24.2", - "@rollup/rollup-darwin-x64": "4.24.2", - "@rollup/rollup-freebsd-arm64": "4.24.2", - "@rollup/rollup-freebsd-x64": "4.24.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.2", - "@rollup/rollup-linux-arm-musleabihf": "4.24.2", - "@rollup/rollup-linux-arm64-gnu": "4.24.2", - "@rollup/rollup-linux-arm64-musl": "4.24.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.2", - "@rollup/rollup-linux-riscv64-gnu": "4.24.2", - "@rollup/rollup-linux-s390x-gnu": "4.24.2", - "@rollup/rollup-linux-x64-gnu": "4.24.2", - "@rollup/rollup-linux-x64-musl": "4.24.2", - "@rollup/rollup-win32-arm64-msvc": "4.24.2", - "@rollup/rollup-win32-ia32-msvc": "4.24.2", - "@rollup/rollup-win32-x64-msvc": "4.24.2", + "@rollup/rollup-android-arm-eabi": "4.24.3", + "@rollup/rollup-android-arm64": "4.24.3", + "@rollup/rollup-darwin-arm64": "4.24.3", + "@rollup/rollup-darwin-x64": "4.24.3", + "@rollup/rollup-freebsd-arm64": "4.24.3", + "@rollup/rollup-freebsd-x64": "4.24.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.3", + "@rollup/rollup-linux-arm-musleabihf": "4.24.3", + "@rollup/rollup-linux-arm64-gnu": "4.24.3", + "@rollup/rollup-linux-arm64-musl": "4.24.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.3", + "@rollup/rollup-linux-riscv64-gnu": "4.24.3", + "@rollup/rollup-linux-s390x-gnu": "4.24.3", + "@rollup/rollup-linux-x64-gnu": "4.24.3", + "@rollup/rollup-linux-x64-musl": "4.24.3", + "@rollup/rollup-win32-arm64-msvc": "4.24.3", + "@rollup/rollup-win32-ia32-msvc": "4.24.3", + "@rollup/rollup-win32-x64-msvc": "4.24.3", "fsevents": "~2.3.2" } }, @@ -17214,6 +17829,59 @@ "node": ">=v12.22.7" } }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, "node_modules/search-insights": { "version": "2.17.2", "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.2.tgz", @@ -17336,6 +18004,16 @@ "node": ">=4" } }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -17507,9 +18185,9 @@ } }, "node_modules/sirv": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", - "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz", + "integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==", "dev": true, "license": "MIT", "dependencies": { @@ -17518,7 +18196,7 @@ "totalist": "^3.0.0" }, "engines": { - "node": ">= 10" + "node": ">=18" } }, "node_modules/sisteransi": { @@ -18133,6 +18811,16 @@ "node": ">=12.17" } }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", @@ -18210,6 +18898,67 @@ "node": ">=4" } }, + "node_modules/terser": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, "node_modules/test-exclude": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", @@ -19367,6 +20116,37 @@ "yarn": "*" } }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/update-notifier": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", @@ -19560,14 +20340,14 @@ } }, "node_modules/vite-node": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.3.tgz", - "integrity": "sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.4.tgz", + "integrity": "sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==", "dev": true, "license": "MIT", "dependencies": { "cac": "^6.7.14", - "debug": "^4.3.6", + "debug": "^4.3.7", "pathe": "^1.1.2", "vite": "^5.0.0" }, @@ -19597,28 +20377,28 @@ } }, "node_modules/vitepress": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.4.1.tgz", - "integrity": "sha512-C2rQ7PMlDVqgsaHOa0uJtgGGWaGv74QMaGL62lxKbtFkYtosJB5HAfZ8+pEbfzzvLemYaYwaiQdFLBlexK2sFw==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.4.2.tgz", + "integrity": "sha512-10v92Lqx0N4r7YC3cQLBvu+gRS2rHviE7vgdKiwlupUGfSWkyiQDqYccxM5iPStDGSi1Brnec1lf+lmhaQcZXw==", "dev": true, "license": "MIT", "dependencies": { "@docsearch/css": "^3.6.2", "@docsearch/js": "^3.6.2", - "@shikijs/core": "^1.22.0", - "@shikijs/transformers": "^1.22.0", - "@shikijs/types": "^1.22.0", + "@shikijs/core": "^1.22.2", + "@shikijs/transformers": "^1.22.2", + "@shikijs/types": "^1.22.2", "@types/markdown-it": "^14.1.2", "@vitejs/plugin-vue": "^5.1.4", - "@vue/devtools-api": "^7.4.6", + "@vue/devtools-api": "^7.5.4", "@vue/shared": "^3.5.12", "@vueuse/core": "^11.1.0", "@vueuse/integrations": "^11.1.0", "focus-trap": "^7.6.0", "mark.js": "8.11.1", "minisearch": "^7.1.0", - "shiki": "^1.22.0", - "vite": "^5.4.8", + "shiki": "^1.22.2", + "vite": "^5.4.10", "vue": "^3.5.12" }, "bin": { @@ -19638,30 +20418,31 @@ } }, "node_modules/vitest": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.3.tgz", - "integrity": "sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "2.1.3", - "@vitest/mocker": "2.1.3", - "@vitest/pretty-format": "^2.1.3", - "@vitest/runner": "2.1.3", - "@vitest/snapshot": "2.1.3", - "@vitest/spy": "2.1.3", - "@vitest/utils": "2.1.3", - "chai": "^5.1.1", - "debug": "^4.3.6", - "magic-string": "^0.30.11", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.4.tgz", + "integrity": "sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.4", + "@vitest/mocker": "2.1.4", + "@vitest/pretty-format": "^2.1.4", + "@vitest/runner": "2.1.4", + "@vitest/snapshot": "2.1.4", + "@vitest/spy": "2.1.4", + "@vitest/utils": "2.1.4", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", "pathe": "^1.1.2", "std-env": "^3.7.0", "tinybench": "^2.9.0", - "tinyexec": "^0.3.0", - "tinypool": "^1.0.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", "tinyrainbow": "^1.2.0", "vite": "^5.0.0", - "vite-node": "2.1.3", + "vite-node": "2.1.4", "why-is-node-running": "^2.3.0" }, "bin": { @@ -19676,8 +20457,8 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "2.1.3", - "@vitest/ui": "2.1.3", + "@vitest/browser": "2.1.4", + "@vitest/ui": "2.1.4", "happy-dom": "*", "jsdom": "*" }, @@ -19743,6 +20524,20 @@ "dev": true, "license": "ISC" }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -19769,6 +20564,175 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/webpack": { + "version": "5.95.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", + "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-hasjs-plugin": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/webpack-hasjs-plugin/-/webpack-hasjs-plugin-1.0.4.tgz", + "integrity": "sha512-N31NlqhjUPfD1RbU8l/OK7I9eAig2+zlB4WN0nJwOm6YQKi2uB0JpkR/avNV6+95K/Nb2eJkzHf5SkqXUYULGQ==", + "dev": true, + "license": "(Apache-2.0)", + "dependencies": { + "webpack-plugin-compat": "^1.0.4" + }, + "peerDependencies": { + "webpack": ">= 2.2.0" + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-plugin-compat": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/webpack-plugin-compat/-/webpack-plugin-compat-1.0.4.tgz", + "integrity": "sha512-W3zZ28UY89OBwvicW+heUyvaNho9AmTy65WexPiDowjO38D2qwacSdLUBb82dEgBXceufVC2rCDu3hOLym10Ow==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, "node_modules/whatwg-encoding": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", @@ -19962,6 +20926,13 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true, + "license": "MIT" + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -20342,7 +21313,6 @@ "@hpcc-js/util": "^3.1.0" }, "devDependencies": { - "@hpcc-js/dataflow": "^9.1.0", "@hpcc-js/esbuild-plugins": "^1.2.0", "@types/d3-shape": "1.3.12", "@types/d3-transition": "1.3.6", @@ -20418,7 +21388,7 @@ "dependencies": { "@hpcc-js/ddl-shim": "^2.22.0", "@hpcc-js/util": "^3.1.0", - "@xmldom/xmldom": "0.9.4", + "@xmldom/xmldom": "0.9.5", "abort-controller": "3.0.0", "node-fetch": "3.3.2", "safe-buffer": "5.2.1", @@ -20467,6 +21437,44 @@ "faker": "4.1.0" } }, + "packages/dgrid": { + "name": "@hpcc-js/dgrid", + "version": "3.0.0", + "license": "Apache-2.0", + "dependencies": { + "@hpcc-js/common": "^3.1.0", + "@hpcc-js/ddl-shim": "^2.22.0", + "@hpcc-js/dgrid-shim": "^2.26.0", + "@hpcc-js/util": "^3.1.0" + }, + "devDependencies": { + "@hpcc-js/esbuild-plugins": "^1.2.0", + "@testing-library/dom": "10.4.0", + "d3-format": "^1", + "d3-selection": "^1" + } + }, + "packages/dgrid-shim": { + "name": "@hpcc-js/dgrid-shim", + "version": "2.26.0", + "license": "Apache-2.0", + "devDependencies": { + "@hpcc-js/bundle": "^2.12.0", + "@types/dojo": "1.9.48", + "dgrid": "1.3.3", + "dijit": "1.17.3", + "dijit-themes": "1.17.3", + "dojo": "1.17.3", + "dojo-dstore": "1.2.1", + "dojo-util": "1.17.3", + "dojo-webpack-plugin": "3.0.6", + "dojox": "1.17.3", + "terser-webpack-plugin": "5.3.10", + "webpack": "5.95.0", + "webpack-cli": "5.1.4", + "webpack-hasjs-plugin": "1.0.4" + } + }, "packages/esbuild-plugins": { "name": "@hpcc-js/esbuild-plugins", "version": "1.2.0", @@ -20986,7 +21994,7 @@ "version": "3.1.0", "license": "Apache-2.0", "dependencies": { - "@xmldom/xmldom": "0.9.4" + "@xmldom/xmldom": "0.9.5" }, "devDependencies": { "@hpcc-js/bundle": "^2.12.0", diff --git a/package.json b/package.json index fc9f98d08f..319b1d5922 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "2.107.0", "description": "HPCC Visualization Framework", "private": true, + "type": "module", "jsdelivr": "dist/index.umd.min.js", "workspaces": [ "utils/*", @@ -17,8 +18,8 @@ "packages/dataflow", "xpackages/ddl-shim", "xpackages/deck-shim", - "xpackages/dgrid", - "xpackages/dgrid-shim", + "packages/dgrid", + "packages/dgrid-shim", "xpackages/dgrid2", "xpackages/eclwatch", "packages/esbuild-plugins", @@ -98,7 +99,7 @@ "publish": "lerna publish from-package --yes", "publish-lerna": "lerna publish from-package --yes", "purge-jsdelivr": "node ./utils/purge-jsdelivr.js", - "serve-docs": "vitepress dev .", + "dev-docs": "vitepress dev", "serve-docs-build": "vitepress serve --port 3000 .", "serve-vite": "vite", "dev-start": "ws", @@ -113,18 +114,18 @@ "@microsoft/api-extractor-model": "7.29.8", "@typescript-eslint/eslint-plugin": "7.18.0", "@typescript-eslint/parser": "7.18.0", - "@vitest/browser": "2.1.3", - "@vitest/coverage-v8": "2.1.3", + "@vitest/browser": "2.1.4", + "@vitest/coverage-v8": "2.1.4", "eslint": "8.57.1", "eslint-plugin-react-hooks": "4.6.2", "lerna": "8.1.8", "npm-check-updates": "16.14.20", "npm-run-all": "4.1.5", - "playwright": "1.48.1", + "playwright": "1.48.2", "rimraf": "5.0.10", "typescript": "5.6.3", - "vitepress": "1.4.1", - "vitest": "2.1.3" + "vitepress": "1.4.2", + "vitest": "2.1.4" }, "overrides": { "d3-color": "3.1.0" diff --git a/packages/api/esbuild.js b/packages/api/esbuild.js index 10c9f24d23..b5f8759fc8 100644 --- a/packages/api/esbuild.js +++ b/packages/api/esbuild.js @@ -1,4 +1,10 @@ import { browserTpl } from "@hpcc-js/esbuild-plugins"; +import pkg from "./package.json" with { type: "json" }; // config --- -browserTpl("src/index.ts", "dist/index"); \ No newline at end of file +browserTpl("src/index.ts", "dist/index", { + keepNames: true, + external: [ + ...Object.keys(pkg.dependencies), + ] +}); diff --git a/packages/api/src/ITooltip.ts b/packages/api/src/ITooltip.ts index 880d2e07e1..307136f7e3 100644 --- a/packages/api/src/ITooltip.ts +++ b/packages/api/src/ITooltip.ts @@ -208,8 +208,8 @@ ITooltip.prototype.publish("tooltipOffset", 8, "number", "Offset from the cursor const tooltipLabelFormat = ITooltip.prototype.tooltipLabelFormat; ITooltip.prototype.tooltipLabelFormat = function (_?): string | ITooltip { - const retVal = tooltipLabelFormat.apply(this, arguments); - if (arguments.length) { + const retVal = tooltipLabelFormat.call(this, _); + if (_ !== undefined) { this._labelFormatter = d3Format(_); } return retVal; @@ -217,8 +217,8 @@ ITooltip.prototype.tooltipLabelFormat = function (_?): string | ITooltip { const tooltipValueFormat = ITooltip.prototype.tooltipValueFormat; ITooltip.prototype.tooltipValueFormat = function (_?): string | ITooltip { - const retVal = tooltipValueFormat.apply(this, arguments); - if (arguments.length) { + const retVal = tooltipValueFormat.call(this, _); + if (_ !== undefined) { this._valueFormatter = d3Format(_); } return retVal; diff --git a/packages/chart/esbuild.js b/packages/chart/esbuild.js index b04c5b5a40..fe1b2e12f4 100644 --- a/packages/chart/esbuild.js +++ b/packages/chart/esbuild.js @@ -1,6 +1,12 @@ import { browserTpl } from "@hpcc-js/esbuild-plugins"; +import pkg from "./package.json" with { type: "json" }; // config --- -browserTpl("src/index.ts", "dist/index", { - keepNames: true -}); \ No newline at end of file +await Promise.all([ + browserTpl("src/index.ts", "dist/index", { + keepNames: true, + external: [ + ...Object.keys(pkg.dependencies), + ] + }) +]); diff --git a/packages/chart/index.html b/packages/chart/index.html index 21d3974647..98af046b2c 100644 --- a/packages/chart/index.html +++ b/packages/chart/index.html @@ -1,90 +1,85 @@ - + - - @hpcc-js/chart - - - + h1 { + text-align: center; + margin-top: 50px; + } - - - - -
- Stacked: - - Bar: - - Percentage: - -
-
-
- + + + - function doStacked(stacked) { - if (app) { - app - .yAxisStacked(stacked) - .lazyRender(); - } - } + +

ESM Quick Test

+
+ + diff --git a/packages/chart/package.json b/packages/chart/package.json index 01bfe917b6..9fc409613b 100644 --- a/packages/chart/package.json +++ b/packages/chart/package.json @@ -32,7 +32,8 @@ "test-browser": "vitest run --project browser", "test": "vitest run", "coverage": "vitest run --coverage", - "update": "npx -y npm-check-updates -u -t minor" + "update": "npx -y npm-check-updates -u -t minor", + "update-major": "npx -y npm-check-updates -u" }, "dependencies": { "@hpcc-js/api": "^3.1.0", @@ -41,7 +42,6 @@ }, "devDependencies": { "@hpcc-js/esbuild-plugins": "^1.2.0", - "@hpcc-js/dataflow": "^9.1.0", "@types/d3-shape": "1.3.12", "@types/d3-transition": "1.3.6", "d3-array": "^1", diff --git a/packages/chart/src/Axis.ts b/packages/chart/src/Axis.ts index b851a5df7f..a39d0cfafa 100644 --- a/packages/chart/src/Axis.ts +++ b/packages/chart/src/Axis.ts @@ -113,14 +113,14 @@ export class Axis extends SVGWidget { return true; } - domain(_) { - if (!arguments.length) return this.d3Scale.domain(); + domain(_?) { + if (_ === undefined) return this.d3Scale.domain(); this.d3Scale.domain(_); return this; } - range(_) { - if (!arguments.length) { + range(_?) { + if (_ === undefined) { if (this.d3Scale.rangeRoundBands) { return this.d3Scale.rangeExtent(); } else if (this.d3Scale.rangeRound) { @@ -745,8 +745,8 @@ Axis.prototype.publish("padding", 0, "number", "Padding space at top of axis (pi Axis.prototype._origType = Axis.prototype.type; Axis.prototype.type = function (_?: string) { - const retVal = Axis.prototype._origType.apply(this, arguments); - if (arguments.length) { + const retVal = Axis.prototype._origType.call(this, _); + if (_ !== undefined) { this._type = _; this.updateScale(); } @@ -755,8 +755,8 @@ Axis.prototype.type = function (_?: string) { Axis.prototype._origTimePattern = Axis.prototype.timePattern; Axis.prototype.timePattern = function (_?: string) { - const retVal = Axis.prototype._origTimePattern.apply(this, arguments); - if (arguments.length) { + const retVal = Axis.prototype._origTimePattern.call(this, _); + if (_ !== undefined) { this._timePattern = _; this.updateScale(); } diff --git a/packages/chart/src/Bubble.ts b/packages/chart/src/Bubble.ts index 1fc3f1ee0d..636e3eb7c6 100644 --- a/packages/chart/src/Bubble.ts +++ b/packages/chart/src/Bubble.ts @@ -36,8 +36,8 @@ export class Bubble extends SVGWidget { size(): ISize; size(_): this; size(_?): ISize | this { - const retVal = super.size.apply(this, arguments); - if (arguments.length) { + const retVal = super.size(_); + if (_ !== undefined) { this.d3Pack .size([this.width(), this.height()]) ; @@ -163,29 +163,34 @@ export class Bubble extends SVGWidget { super.exit(domNode, element); } - paletteID: { (): string; (_: string): Bubble; }; - useClonedPalette: { (): boolean; (_: boolean): Bubble; }; +} +Bubble.prototype._class += " chart_Bubble"; +Bubble.prototype.implements(I2DChart.prototype); +Bubble.prototype.implements(ITooltip.prototype); +Bubble.prototype.mixin(Utility.SimpleSelectionMixin); + +export interface Bubble { + paletteID(): string; + paletteID(_: string): this; + useClonedPalette(): boolean; + useClonedPalette(_: boolean): this; // I2DChart _palette; - fillColor: (row: any[], column: string, value: number) => string; - textColor: (row: any[], column: string, value: number) => string; - click: (row, column, selected) => void; - dblclick: (row, column, selected) => void; + fillColor(row: any[], column: string, value: number): string; + textColor(row: any[], column: string, value: number): string; + click(row, column, selected): void; + dblclick(row, column, selected): void; // ITooltip tooltip; - tooltipHTML: (_) => string; - tooltipFormat: (_) => string; - tooltipStyle: () => "default" | "none" | "series-table"; + tooltipHTML(_): string; + tooltipFormat(_): string; + tooltipStyle(): "default" | "none" | "series-table"; // SimpleSelectionMixin _selection; } -Bubble.prototype._class += " chart_Bubble"; -Bubble.prototype.implements(I2DChart.prototype); -Bubble.prototype.implements(ITooltip.prototype); -Bubble.prototype.mixin(Utility.SimpleSelectionMixin); Bubble.prototype.publish("paletteID", "default", "set", "Color palette for this widget", Bubble.prototype._palette.switch(), { tags: ["Basic", "Shared"] }); Bubble.prototype.publish("useClonedPalette", false, "boolean", "Enable or disable using a cloned palette", null, { tags: ["Intermediate", "Shared"] }); diff --git a/packages/chart/src/Column.ts b/packages/chart/src/Column.ts index e2c5ccae2d..db8d6cf35c 100644 --- a/packages/chart/src/Column.ts +++ b/packages/chart/src/Column.ts @@ -572,17 +572,6 @@ export class Column extends XYAxis { innerText(origRow, lparam, idx): string { return origRow[0]; } - - // INDChart --- - fillColor: (row, column, value, origRow) => string; - textColor: (row, column, value, origRow) => string; - dblclick: (row, column, selected) => void; - - // ITooltip --- - tooltip; - tooltipHTML: (_) => string; - tooltipFormat: (_) => string; - tooltipStyle: () => "default" | "none" | "series-table"; } Column.prototype._class += " chart_Column"; Column.prototype.implements(INDChart.prototype); @@ -626,6 +615,18 @@ export interface Column { innerTextPadding_exists(): boolean; tooltipInnerTextEllipsedOnly(): boolean; tooltipInnerTextEllipsedOnly(_: boolean): this; + + // INDChart --- + fillColor(row, column, value, origRow): string; + textColor(row, column, value, origRow): string; + dblclick(row, column, selected): void; + + // ITooltip --- + tooltip; + tooltipHTML(_): string; + tooltipFormat(_): string; + tooltipStyle(): "default" | "none" | "series-table"; + tooltipStyle(_: "default" | "none" | "series-table"): this; } Column.prototype.publish("valueFontFamily", null, "string", "Font family of value text", null, { optional: true }); diff --git a/packages/chart/src/D3Cloud.ts b/packages/chart/src/D3Cloud.ts index b325e29e92..8f24c8b7cf 100644 --- a/packages/chart/src/D3Cloud.ts +++ b/packages/chart/src/D3Cloud.ts @@ -26,8 +26,8 @@ export function d3Cloud() { let random = Math.random; let canvas = cloudCanvas; - cloud.canvas = function (_) { - return arguments.length ? (canvas = functor(_), cloud) : canvas; + cloud.canvas = function (_?) { + return _ !== undefined ? (canvas = functor(_), cloud) : canvas; }; cloud.start = function () { @@ -149,52 +149,52 @@ export function d3Cloud() { return false; } - cloud.timeInterval = function (_) { - return arguments.length ? (timeInterval = _ == null ? Infinity : _, cloud) : timeInterval; + cloud.timeInterval = function (_?) { + return _ !== undefined ? (timeInterval = _ == null ? Infinity : _, cloud) : timeInterval; }; - cloud.words = function (_) { - return arguments.length ? (words = _, cloud) : words; + cloud.words = function (_?) { + return _ !== undefined ? (words = _, cloud) : words; }; - cloud.size = function (_) { - return arguments.length ? (size = [+_[0], +_[1]], cloud) : size; + cloud.size = function (_?) { + return _ !== undefined ? (size = [+_[0], +_[1]], cloud) : size; }; - cloud.font = function (_) { - return arguments.length ? (font = functor(_), cloud) : font; + cloud.font = function (_?) { + return _ !== undefined ? (font = functor(_), cloud) : font; }; - cloud.fontStyle = function (_) { - return arguments.length ? (fontStyle = functor(_), cloud) : fontStyle; + cloud.fontStyle = function (_?) { + return _ !== undefined ? (fontStyle = functor(_), cloud) : fontStyle; }; - cloud.fontWeight = function (_) { - return arguments.length ? (fontWeight = functor(_), cloud) : fontWeight; + cloud.fontWeight = function (_?) { + return _ !== undefined ? (fontWeight = functor(_), cloud) : fontWeight; }; - cloud.rotate = function (_) { - return arguments.length ? (rotate = functor(_), cloud) : rotate; + cloud.rotate = function (_?) { + return _ !== undefined ? (rotate = functor(_), cloud) : rotate; }; - cloud.text = function (_) { - return arguments.length ? (text = functor(_), cloud) : text; + cloud.text = function (_?) { + return _ !== undefined ? (text = functor(_), cloud) : text; }; - cloud.spiral = function (_) { - return arguments.length ? (spiral = spirals[_] || _, cloud) : spiral; + cloud.spiral = function (_?) { + return _ !== undefined ? (spiral = spirals[_] || _, cloud) : spiral; }; - cloud.fontSize = function (_) { - return arguments.length ? (fontSize = functor(_), cloud) : fontSize; + cloud.fontSize = function (_?) { + return _ !== undefined ? (fontSize = functor(_), cloud) : fontSize; }; - cloud.padding = function (_) { - return arguments.length ? (padding = functor(_), cloud) : padding; + cloud.padding = function (_?) { + return _ !== undefined ? (padding = functor(_), cloud) : padding; }; - cloud.random = function (_) { - return arguments.length ? (random = _, cloud) : random; + cloud.random = function (_?) { + return _ !== undefined ? (random = _, cloud) : random; }; cloud.on = function () { diff --git a/packages/chart/src/HexBin.ts b/packages/chart/src/HexBin.ts index 1269c4c1a8..2c069ff037 100644 --- a/packages/chart/src/HexBin.ts +++ b/packages/chart/src/HexBin.ts @@ -118,21 +118,26 @@ export class HexBin extends XYAxis { dblclick(row: object[], column, selected) { // console.log("Click: " + JSON.stringify(row) + ", " + column + ", " + selected); } +} +HexBin.prototype._class += " chart_HexBin"; +HexBin.prototype.implements(I2DAggrChart.prototype); +HexBin.prototype.implements(ITooltip.prototype); +export interface HexBin { // ITooltip tooltip; - tooltipHTML: (_) => string; - tooltipFormat: (_) => string; - tooltipValueFormat: (_) => string; - tooltipValueFormat_default: (_) => string; + tooltipHTML(_): string; + tooltipFormat(_): string; + tooltipValueFormat(_): string; + tooltipValueFormat_default(_): string; - paletteID: { (): string; (_: string): HexBin; }; - useClonedPalette: { (): boolean; (_: boolean): HexBin; }; - binSize: { (): number; (_: number): HexBin; }; + paletteID(): string; + paletteID(_: string): this; + useClonedPalette(): boolean; + useClonedPalette(_: boolean): this; + binSize(): number; + binSize(_: number): this; } -HexBin.prototype._class += " chart_HexBin"; -HexBin.prototype.implements(I2DAggrChart.prototype); -HexBin.prototype.implements(ITooltip.prototype); HexBin.prototype.publish("paletteID", "Blues", "set", "Color palette for this widget", HexBin.prototype._palette.switch(), { tags: ["Basic", "Shared"] }); HexBin.prototype.publish("useClonedPalette", false, "boolean", "Enable or disable using a cloned palette", null, { tags: ["Intermediate", "Shared"] }); diff --git a/packages/chart/src/Pie.ts b/packages/chart/src/Pie.ts index 72abb4fb6a..5188d9f6b2 100644 --- a/packages/chart/src/Pie.ts +++ b/packages/chart/src/Pie.ts @@ -119,7 +119,7 @@ export class Pie extends SVGWidget { selection(): any[]; // any[] === single row selection(_: any[]): this; selection(_?: any[]): any[] | this { - if (!arguments.length) { + if (_ === undefined) { try { return this._selection.selection2()[0]?.data; } catch (e) { @@ -437,38 +437,12 @@ export class Pie extends SVGWidget { }) ; } - - paletteID: (_?: string) => string | Pie; - useClonedPalette: (_?: boolean) => boolean | Pie; - outerText: (_?: boolean) => boolean | Pie; - innerRadius: { (): number; (_: number): Pie; }; - innerRadius_exists: () => boolean; - - // I2DChart - _palette; - fillColor: (row: any[], column: string, value: number) => string; - textColor: (row: any[], column: string, value: number) => string; - click: (row, column, selected) => void; - dblclick: (row, column, selected) => void; - - // ITooltip - tooltip; - tooltipHTML: (_) => string; - tooltipFormat: (_) => string; - tooltipStyle: () => "default" | "none" | "series-table"; - tooltipTick: { (): boolean; (_: boolean): Pie; }; - tooltipTick_default: { (): boolean; (_: boolean): Pie; }; - tooltipOffset: { (): number; (_: number): Pie; }; - tooltipOffset_default: { (): number; (_: number): Pie; }; - - // SimpleSelectionMixin - _selection: Utility.SimpleSelection; } - Pie.prototype._class += " chart_Pie"; Pie.prototype.implements(I2DChart.prototype); Pie.prototype.implements(ITooltip.prototype); Pie.prototype.mixin(Utility.SimpleSelectionMixin); + export interface Pie { showSeriesValue(): boolean; showSeriesValue(_: boolean): this; @@ -488,6 +462,36 @@ export interface Pie { showLabels(_: boolean): this; sortDataByValue(): "none" | "ascending" | "descending"; sortDataByValue(_: "none" | "ascending" | "descending"): this; + + paletteID(_?: string): string | Pie; + useClonedPalette(_?: boolean): boolean | Pie; + outerText(_?: boolean): boolean | Pie; + innerRadius(): number; + innerRadius_exists(): boolean; + + // I2DChart + _palette; + fillColor(row: any[], column: string, value: number): string; + textColor(row: any[], column: string, value: number): string; + click(row, column, selected): void; + dblclick(row, column, selected): void; + + // ITooltip + tooltip; + tooltipHTML(_): string; + tooltipFormat(_): string; + tooltipStyle(): "default" | "none" | "series-table"; + tooltipTick(): boolean; + tooltipTick(_: boolean): Pie; + tooltipTick_default(): boolean; + tooltipTick_default(_: boolean): Pie; + tooltipOffset(): number; + tooltipOffset(_: number): Pie; + tooltipOffset_default(): number; + tooltipOffset_default(_: number): Pie; + + // SimpleSelectionMixin + _selection: Utility.SimpleSelection; } Pie.prototype.publish("showLabels", true, "boolean", "If true, wedge labels will display"); Pie.prototype.publish("showSeriesValue", false, "boolean", "Append data series value next to label", null, { disable: w => !w.showLabels() }); diff --git a/packages/chart/src/Radar.ts b/packages/chart/src/Radar.ts index 9f824b6a08..81b549bb8a 100644 --- a/packages/chart/src/Radar.ts +++ b/packages/chart/src/Radar.ts @@ -282,21 +282,6 @@ export class Radar extends SVGWidget { } return inside; } - - // INDChart - _palette; - fillColor: (row, column, value) => string; - strokeColor: (row, column, value) => string; - textColor: (row, column, value) => string; - click: (row, column, selected) => void; - dblclick: (row, column, selected) => void; - - // ITooltip - tooltip; - tooltipHTML: (_) => string; - tooltipFormat: (_) => string; - - _selection; } Radar.prototype._class += " chart_Radar"; Radar.prototype.implements(INDChart.prototype); @@ -324,6 +309,21 @@ export interface Radar { pointShape(_: string): this; pointSize(): number; pointSize(_: number): this; + + // INDChart + _palette; + fillColor(row, column, value): string; + strokeColor(row, column, value): string; + textColor(row, column, value): string; + click(row, column, selected): void; + dblclick(row, column, selected): void; + + // ITooltip + tooltip; + tooltipHTML(_): string; + tooltipFormat(_): string; + + _selection; } Radar.prototype.publish("paletteID", "default", "set", "Color palette for this widget", Radar.prototype._palette.switch()); diff --git a/packages/chart/src/RadialBar.ts b/packages/chart/src/RadialBar.ts index 0e998784a2..69e78e8640 100644 --- a/packages/chart/src/RadialBar.ts +++ b/packages/chart/src/RadialBar.ts @@ -168,24 +168,12 @@ export class RadialBar extends SVGWidget { return degrees * Math.PI / 180; } - // INDChart - _palette; - fillColor: (row, column, value) => string; - strokeColor: (row, column, value) => string; - textColor: (row, column, value) => string; - click: (row, column, selected) => void; - dblclick: (row, column, selected) => void; - - // ITooltip - tooltip; - tooltipHTML: (_) => string; - tooltipFormat: (_) => string; - _selection; } RadialBar.prototype._class += " chart_RadialBar"; RadialBar.prototype.implements(INDChart.prototype); RadialBar.prototype.implements(ITooltip.prototype); RadialBar.prototype.mixin(Utility.SimpleSelectionMixin); + export interface RadialBar { paletteID(): string; paletteID(_: string): this; @@ -202,7 +190,24 @@ export interface RadialBar { transitionDelay(_: number): this; transitionDuration(): number; transitionDuration(_: number): this; + + // INDChart + _palette; + fillColor(row, column, value): string; + strokeColor(row, column, value): string; + textColor(row, column, value): string; + click(row, column, selected): void; + dblclick(row, column, selected): void; + + // ITooltip + tooltip; + tooltipHTML(_): string; + tooltipFormat(_): string; + + // SimpleSelectionMixin + _selection; } + RadialBar.prototype.publish("paletteID", "default", "set", "Color palette for this widget", RadialBar.prototype._palette.switch()); RadialBar.prototype.publish("tickCount", 10, "number", "Number of ticks to display"); RadialBar.prototype.publish("domainPadding", 0.25, "number", "Padding between chart edge and container edge (0..1)"); diff --git a/packages/chart/src/Scatter.ts b/packages/chart/src/Scatter.ts index 5ad1d3a70c..9984a2c3fc 100644 --- a/packages/chart/src/Scatter.ts +++ b/packages/chart/src/Scatter.ts @@ -321,34 +321,13 @@ export class Scatter extends XYAxis { exit(domNode, element) { super.exit(domNode, element); } - - paletteID: { (): string; (_: string): Scatter; }; - useClonedPalette: { (): boolean; (_: boolean): Scatter; }; - pointSizeScale: { (): string; (_: string): Scatter; }; - pointShape: { (): string; (_: string): Scatter; }; - pointSize: { (): number; (_: number): Scatter; }; - interpolate: { (): string; (_: string): Scatter; }; - interpolate_default: { (): string; (_: string): Scatter; }; - interpolateFill: { (): boolean; (_: boolean): Scatter; }; - interpolateFill_default: { (): boolean; (_: boolean): Scatter; }; - interpolateFillOpacity: { (): number; (_: number): Scatter; }; - - // INDChart - fillColor: (row, column, value, origRow) => string; - strokeColor: (row, column, value, origRow) => string; - textColor: (row, column, value, origRow) => string; - dblclick: (row, column, selected) => void; - - // ITooltip - tooltip; - tooltipHTML: (_) => string; - tooltipFormat: (_) => string; - tooltipStyle: () => "default" | "none" | "series-table"; } Scatter.prototype._class += " chart_Scatter"; Scatter.prototype.implements(INDChart.prototype); Scatter.prototype.implements(ITooltip.prototype); + export interface Scatter { + valueAnchor(): string; valueAnchor(_: string): this; valueBaseline(): string; @@ -359,6 +338,39 @@ export interface Scatter { pointDarken(_: boolean): this; interpolateDarken(): boolean; interpolateDarken(_: boolean): this; + + paletteID(): string; + paletteID(_: string): this; + useClonedPalette(): boolean; + useClonedPalette(_: boolean): this; + pointSizeScale(): string; + pointSizeScale(_: string): this; + pointShape(): string; + pointShape(_: string): this; + pointSize(): number; + pointSize(_: number): this; + interpolate(): string; + interpolate(_: string): this; + interpolate_default(): string; + interpolate_default(_: string): this; + interpolateFill(): boolean; + interpolateFill(_: boolean): this; + interpolateFill_default(): boolean; + interpolateFill_default(_: boolean): this; + interpolateFillOpacity(): number; + interpolateFillOpacity(_: number): this; + + // INDChart + fillColor(row, column, value, origRow): string; + strokeColor(row, column, value, origRow): string; + textColor(row, column, value, origRow): string; + dblclick(row, column, selected): void; + + // ITooltip + tooltip; + tooltipHTML(_): string; + tooltipFormat(_): string; + tooltipStyle(): "default" | "none" | "series-table"; } Scatter.prototype.publish("paletteID", "default", "set", "Color palette for this widget", Scatter.prototype._palette.switch(), { tags: ["Basic", "Shared"] }); Scatter.prototype.publish("pointSizeScale", "linear", "set", "pointSizeScale", ["linear", "pow", "log", "sqrt"]); diff --git a/packages/chart/src/StatChart.ts b/packages/chart/src/StatChart.ts index d676d12195..067eae5f38 100644 --- a/packages/chart/src/StatChart.ts +++ b/packages/chart/src/StatChart.ts @@ -106,7 +106,7 @@ export class StatChart extends HTMLWidget { data(): Data; data(_: Data): this; data(_?: Data): Data | this { - if (!arguments.length) return [[...this.quartiles(), this.mean(), this.standardDeviation()]]; + if (_ === undefined) return [[...this.quartiles(), this.mean(), this.standardDeviation()]]; const row = _[0]; this.quartiles([row[0], row[1], row[2], row[3], row[4]]); this.mean(row[5]); @@ -221,8 +221,16 @@ export class StatChart extends HTMLWidget { this.updateScatter(); this.updateCandle(); } + + exit(domNode, element) { + this._bellCurve.target(null); + this._candle.target(null); + this._selectElement.remove(); + + super.exit(domNode, element); + } } -StatChart.prototype._class += " chart_Stat"; +StatChart.prototype._class += " chart_StatChart"; export interface StatChart { view(): StatChartView; diff --git a/packages/chart/src/Summary.ts b/packages/chart/src/Summary.ts index 22208e0546..385fb2b39f 100644 --- a/packages/chart/src/Summary.ts +++ b/packages/chart/src/Summary.ts @@ -303,8 +303,8 @@ Summary.prototype.publish("playInterval", null, "number", "Play Interval", null, const playInterval = Summary.prototype.playInterval; Summary.prototype.playInterval = function (_?: number): number | any { - const retVal = playInterval.apply(this, arguments); - if (arguments.length) { + const retVal = playInterval.call(this, _); + if (_ === undefined) { if (this._playIntervalHandle) { clearInterval(this._playIntervalHandle); } diff --git a/packages/chart/src/SummaryC.ts b/packages/chart/src/SummaryC.ts index edcac02f26..4fbbfd2c4c 100644 --- a/packages/chart/src/SummaryC.ts +++ b/packages/chart/src/SummaryC.ts @@ -221,8 +221,8 @@ SummaryC.prototype.publish("iconSizeRatio", 0.9, "number", "Ratio of the height const playInterval = SummaryC.prototype.playInterval; SummaryC.prototype.playInterval = function (_?: number): number | any { - const retVal = playInterval.apply(this, arguments); - if (arguments.length) { + const retVal = playInterval.call(this, _); + if (_ !== undefined) { if (this._playIntervalHandle) { clearInterval(this._playIntervalHandle); } diff --git a/packages/chart/src/WordCloud.ts b/packages/chart/src/WordCloud.ts index ba52147e2d..fc3e1bb6a3 100644 --- a/packages/chart/src/WordCloud.ts +++ b/packages/chart/src/WordCloud.ts @@ -184,7 +184,14 @@ export class WordCloud extends SVGWidget { this._prevZoom = scale; } } +} +WordCloud.prototype._class += " chart_WordCloud"; +WordCloud.prototype.implements(I2DChart.prototype); +WordCloud.prototype.implements(ITooltip.prototype); +WordCloud.prototype.mixin(Utility.SimpleSelectionMixin); +export interface WordCloud { + /* paletteID: { (): string; (_: string): WordCloud }; paletteID_exists: () => boolean; useClonedPalette: { (): boolean; (_: boolean): WordCloud }; @@ -238,13 +245,68 @@ export class WordCloud extends SVGWidget { tooltipOffset: { (): number; (_: number): WordCloud }; tooltipOffset_exists: () => boolean; + // SimpleSelectionMixin + _selection: Utility.SimpleSelection; + */ + + paletteID(): string; + paletteID(_: string): this; + useClonedPalette(): boolean; + useClonedPalette(_: boolean): this; + fontFamily(): string; + fontFamily(_: string): this; + fontSizeFrom(): number; + fontSizeFrom(_: number): this; + fontSizeTo(): number; + fontSizeTo(_: number): this; + angleFrom(): number; + angleFrom(_: number): this; + angleTo(): number; + angleTo(_: number): this; + angleCount(): number; + angleCount(_: number): this; + padding(): number; + padding(_: number): this; + scaleMode(): string; + scaleMode(_: string): this; + spiral(): string; + spiral(_: string): this; + offsetX(): number; + offsetX(_: number): this; + offsetY(): number; + offsetY(_: number): this; + zoom(): number; + zoom(_: number): this; + zoom_exists(): boolean; + + // I2DChart + _palette; + click(row, column, selected): void; + dblclick(row, column, selected): void; + + // ITooltip --- + tooltip; + tooltipHTML(_?): any; + tooltipFormat(opts): any; + tooltipStyle(): string; + tooltipStyle(_: string): this; + tooltipValueFormat(): string; + tooltipValueFormat(_: string): this; + tooltipSeriesColor(): string; + tooltipSeriesColor(_: string): this; + tooltipLabelColor(): string; + tooltipLabelColor(_: string): this; + tooltipValueColor(): string; + tooltipValueColor(_: string): this; + tooltipTick(): boolean; + tooltipTick(_: boolean): this; + tooltipOffset(): number; + tooltipOffset(_: number): this; + tooltipOffset_exists(): boolean; + // SimpleSelectionMixin _selection: Utility.SimpleSelection; } -WordCloud.prototype._class += " chart_WordCloud"; -WordCloud.prototype.implements(I2DChart.prototype); -WordCloud.prototype.implements(ITooltip.prototype); -WordCloud.prototype.mixin(Utility.SimpleSelectionMixin); WordCloud.prototype.publish("paletteID", "default", "set", "Color palette for this widget", WordCloud.prototype._palette.switch(), { tags: ["Basic", "Shared"] }); WordCloud.prototype.publish("useClonedPalette", false, "boolean", "Enable or disable using a cloned palette", null, { tags: ["Intermediate", "Shared"] }); diff --git a/packages/chart/src/XYAxis.ts b/packages/chart/src/XYAxis.ts index ca105f0708..f025c5acfb 100644 --- a/packages/chart/src/XYAxis.ts +++ b/packages/chart/src/XYAxis.ts @@ -16,7 +16,6 @@ export class XYAxis extends SVGWidget { protected yBrush; protected margin; protected focusChart: XYAxis; - _palette; constructor() { super(); @@ -191,7 +190,7 @@ export class XYAxis extends SVGWidget { skipSelection(): boolean; skipSelection(_: boolean): this; skipSelection(_?: boolean): boolean | this { - if (!arguments.length) return this._skipSelection; + if (_ === undefined) return this._skipSelection; this._skipSelection = _; return this; } @@ -571,8 +570,8 @@ export class XYAxis extends SVGWidget { return masterColumns.indexOf(column); } - layerData(host: XYAxis): any[][] { - if (arguments.length === 1) { + layerData(host?: XYAxis): any[][] { + if (host !== undefined) { const indices = this.layerColumnIndices(host); return host.data().map(row => { const retVal = indices.map(idx => row[idx]); @@ -659,6 +658,7 @@ XYAxis.prototype._class += " chart_XYAxis"; XYAxis.prototype.mixin(Utility.SimpleSelectionMixin); export interface XYAxis { + _palette; orientation(): "horizontal" | "vertical"; orientation(_: "horizontal" | "vertical"): this; orientation_default(_: string); diff --git a/packages/common/esbuild.js b/packages/common/esbuild.js index 198f75c4ec..ed1937e83c 100644 --- a/packages/common/esbuild.js +++ b/packages/common/esbuild.js @@ -1,8 +1,12 @@ import { browserTpl, copyStaticFiles } from "@hpcc-js/esbuild-plugins"; +import pkg from "./package.json" with { type: "json" }; // config --- browserTpl("src/index.ts", "dist/index", { keepNames: true, + external: [ + ...Object.keys(pkg.dependencies), + ], plugins: [ copyStaticFiles({ src: "../../node_modules/font-awesome/fonts", diff --git a/packages/common/index.html b/packages/common/index.html index d9392a8e06..a4cc12208e 100644 --- a/packages/common/index.html +++ b/packages/common/index.html @@ -23,6 +23,18 @@ margin-top: 20px; } + + diff --git a/packages/common/src/Class.ts b/packages/common/src/Class.ts index 10b4138ef9..60f29ac106 100644 --- a/packages/common/src/Class.ts +++ b/packages/common/src/Class.ts @@ -22,7 +22,7 @@ export class Class { class(): string; class(_: string): this; class(_?: string): string | this { - if (!arguments.length) return this._class; + if (_ === undefined) return this._class; this._class = _; return this; } diff --git a/packages/common/src/Database.ts b/packages/common/src/Database.ts index 19c826f3b9..8e62fd2f04 100644 --- a/packages/common/src/Database.ts +++ b/packages/common/src/Database.ts @@ -40,7 +40,7 @@ export class Field extends PropertyExt { owner(): Grid; owner(_: Grid): this; owner(_?: Grid): Grid | this { - if (!arguments.length) return this._owner; + if (_ === undefined) return this._owner; this._owner = _; return this; } @@ -228,7 +228,7 @@ export class Grid extends PropertyExt { } legacyColumns(_?, asDefault?): any | Grid { - if (!arguments.length) return this.row(0); + if (_ === undefined) return this.row(0); this.row(0, _, asDefault); return this; } @@ -253,7 +253,7 @@ export class Grid extends PropertyExt { } data(_?, clone?): any | Grid { - if (!arguments.length) return this._data; + if (_ === undefined) return this._data; this._data = clone ? _.map(function (d) { return d.map(function (d2) { return d2; }); }) : _; this._dataCalcChecksum(); return this; @@ -292,7 +292,7 @@ export class Grid extends PropertyExt { private _dataCalcChecksum(idx?) { ++this._dataVersion; if (this._dataChecksum) { - if (arguments.length) { + if (idx !== undefined) { this._dataChecksums[idx] = Utility.checksum(this._data[idx]); } else { this._dataChecksums = this._data.map(function (row) { return Utility.checksum(row); }); @@ -302,7 +302,7 @@ export class Grid extends PropertyExt { } row(row?, _?, asDefault?): any | Grid { - if (arguments.length < 2) return row === 0 ? this.fields().map(function (d) { return d.label(); }) : this._data[row - 1]; + if (_ === undefined) return row === 0 ? this.fields().map(function (d) { return d.label(); }) : this._data[row - 1]; if (row === 0) { const fieldsArr = this.fields(); this.fields(_.map(function (field: string | INestedColumn, idx) { @@ -334,7 +334,7 @@ export class Grid extends PropertyExt { } rows(_?): any | Grid { - if (!arguments.length) return [this.row(0)].concat(this._data); + if (_ === undefined) return [this.row(0)].concat(this._data); this.row(0, _[0]); this._data = _.filter(function (_row, idx) { return idx > 0; }); this._dataCalcChecksum(); @@ -343,7 +343,7 @@ export class Grid extends PropertyExt { // Column Access --- column(col, _?): any | Grid { - if (arguments.length < 2) return [this.fields()[col].label()].concat(this._data.map(function (row, _idx) { return row[col]; })); + if (_ === undefined) return [this.fields()[col].label()].concat(this._data.map(function (row, _idx) { return row[col]; })); _.forEach(function (d, idx) { if (idx === 0) { this.fields()[col] = new Field().label(_[0]); @@ -355,8 +355,8 @@ export class Grid extends PropertyExt { return this; } - columnData(col, _): any | Grid { - if (arguments.length < 2) return this._data.map(function (row, _idx) { return row[col]; }); + columnData(col, _?): any | Grid { + if (_ === undefined) return this._data.map(function (row, _idx) { return row[col]; }); _.forEach(function (d, idx) { this._data[idx][col] = d; this._dataCalcChecksum(idx); @@ -365,7 +365,7 @@ export class Grid extends PropertyExt { } columns(_?): any | Grid { - if (!arguments.length) return this.fields().map(function (_col, idx) { + if (_ === undefined) return this.fields().map(function (_col, idx) { return this.column(idx); }, this); _.forEach(function (_col, idx) { @@ -375,8 +375,8 @@ export class Grid extends PropertyExt { } // Cell Access --- - cell(row, col, _) { - if (arguments.length < 3) return this.row(row)[col]; + cell(row, col, _?) { + if (_ === undefined) return this.row(row)[col]; if (row === 0) { this.fields()[col] = new Field().label(_); } else { @@ -604,7 +604,7 @@ export class Grid extends PropertyExt { // Import/Export --- jsonObj(_?): any | Grid { - if (!arguments.length) return this._data.map(function (row) { + if (_ === undefined) return this._data.map(function (row) { const retVal = {}; this.row(0).forEach(function (col, idx) { retVal[col] = row[idx]; @@ -630,7 +630,7 @@ export class Grid extends PropertyExt { json(_: string | object): this; json(): string; json(_?: string | object): string | this { - if (!arguments.length) return JSON.stringify(this.jsonObj(), null, " "); + if (_ === undefined) return JSON.stringify(this.jsonObj(), null, " "); if (typeof (_) === "string") { _ = JSON.parse(_); } @@ -641,7 +641,7 @@ export class Grid extends PropertyExt { csv(_: string): this; csv(): string; csv(_?: string): string | this { - if (!arguments.length) { + if (_ === undefined) { const temp = document.createElement("div"); return d3CsvFormatRows(this.grid().map(row => { return row.map(cell => { @@ -656,7 +656,7 @@ export class Grid extends PropertyExt { tsv(_: string): this; tsv(): string; tsv(_?: string): string | this { - if (!arguments.length) return d3TsvFormatRows(this.grid()); + if (_ === undefined) return d3TsvFormatRows(this.grid()); this.jsonObj(d3TsvParse(_)); return this; } @@ -670,7 +670,7 @@ export interface Grid { Grid.prototype.publish("fields", [], "propertyArray", "Fields"); const fieldsOrig = Grid.prototype.fields; Grid.prototype.fields = function (_?, clone?) { - if (!arguments.length) return fieldsOrig.apply(this, arguments); + if (_ === undefined) return fieldsOrig.apply(this, arguments); return fieldsOrig.call(this, clone ? _.map(function (d) { return d.clone(); }) : _); }; @@ -700,12 +700,12 @@ export class LegacyView { return this._grid; } columns(_?) { - if (!arguments.length) return this._grid.legacyColumns(); + if (_ === undefined) return this._grid.legacyColumns(); this._grid.legacyColumns(_); return this; } rawData(_?) { - if (!arguments.length) return this._grid.legacyData(); + if (_ === undefined) return this._grid.legacyData(); this._grid.legacyData(_); return this; } diff --git a/packages/common/src/HTMLWidget.ts b/packages/common/src/HTMLWidget.ts index d1c196d816..4a586efcc1 100644 --- a/packages/common/src/HTMLWidget.ts +++ b/packages/common/src/HTMLWidget.ts @@ -119,7 +119,7 @@ export class HTMLWidget extends Widget { target(_: null | string | HTMLElement | SVGElement): this; target(_?: null | string | HTMLElement | SVGElement): null | HTMLElement | SVGElement | this { const retVal = super.target.apply(this, arguments); - if (arguments.length) { + if (_ !== undefined) { if (this._target instanceof SVGElement) { // Target is a SVG Node, so create an item in the Overlay and force it "over" the overlay element (cough) --- this._isRootNode = false; diff --git a/packages/common/src/Palette.ts b/packages/common/src/Palette.ts index 2317a9d343..56953f20f0 100644 --- a/packages/common/src/Palette.ts +++ b/packages/common/src/Palette.ts @@ -124,13 +124,13 @@ function palette_ordinal(id?, colors?): any { ordinal.type = function () { return "ordinal"; }; - ordinal.id = function (_) { - if (!arguments.length) return id; + ordinal.id = function (_?) { + if (_ === undefined) return id; id = _; return ordinal; }; - ordinal.colors = function (_) { - if (!arguments.length) return colors; + ordinal.colors = function (_?) { + if (_ === undefined) return colors; colors = _; return ordinal; }; @@ -145,11 +145,11 @@ function palette_ordinal(id?, colors?): any { } return this.clone(newID); }; - ordinal.switch = function (_id, _colors) { + ordinal.switch = function (_id?, _colors?) { if (id === _id) { return this; } - return arguments.length ? fetchOrdinalItem(_id, _colors) : fetchOrdinalItem(); + return _id !== undefined ? fetchOrdinalItem(_id, _colors) : fetchOrdinalItem(); }; return ordinal; @@ -173,7 +173,7 @@ export function fetchRainbowItem(id?: string, colors?: string[], steps?: number) } function palette_rainbow(id?, _colors?, _steps?) { - if (!arguments.length) { + if (id === undefined) { const retVal = ["default"]; for (const key in m_colorbrewer) { if (brewerOrdinal.indexOf(key) === -1) { @@ -239,13 +239,13 @@ function palette_rainbow(id?, _colors?, _steps?) { rainbow.type = function () { return "rainbow"; }; - rainbow.id = function (_) { - if (!arguments.length) return id; + rainbow.id = function (_?) { + if (_ === undefined) return id; id = _; return rainbow; }; - rainbow.colors = function (_) { - if (!arguments.length) return colors; + rainbow.colors = function (_?) { + if (_ === undefined) return colors; colors = _; return rainbow; }; @@ -259,11 +259,11 @@ function palette_rainbow(id?, _colors?, _steps?) { } return this.clone(newID); }; - rainbow.switch = function (_id, _colors) { + rainbow.switch = function (_id?, _colors?) { if (id === _id) { return this; } - return arguments.length ? fetchRainbowItem(_id, _colors) : fetchRainbowItem(); + return _id !== undefined ? fetchRainbowItem(_id, _colors) : fetchRainbowItem(); }; return rainbow; diff --git a/packages/common/src/PropertyExt.ts b/packages/common/src/PropertyExt.ts index 29fd059c6c..849977ce04 100644 --- a/packages/common/src/PropertyExt.ts +++ b/packages/common/src/PropertyExt.ts @@ -267,7 +267,7 @@ export class PropertyExt extends Class { id(): string; id(_: string): this; id(_?): string | this { - if (!arguments.length) return this._id; + if (_ === undefined) return this._id; this._id = _; return this; } @@ -493,8 +493,8 @@ export class PropertyExt extends Class { if (this[id]) { } else { if (type === "propertyArray") { - this[id] = function (_) { - if (!arguments.length) return this[__prop_ + id]; + this[id] = function (_?) { + if (_ === undefined) return this[__prop_ + id]; this[__prop_ + id] = _.map(item => { if (!meta.ext.noDeserialize && meta.ext.autoExpand && !(item instanceof meta.ext.autoExpand)) { item = new meta.ext.autoExpand().deserialize(item); @@ -505,8 +505,8 @@ export class PropertyExt extends Class { return this; }; } else { - this[id] = function (_) { - if (!arguments.length) return this[__prop_ + id]; + this[id] = function (_?) { + if (_ === undefined) return this[__prop_ + id]; this[__prop_ + id] = _; return this; }; @@ -532,8 +532,8 @@ export class PropertyExt extends Class { if (this[id + "_default"]() != null && !(this[id + "_default"]() === "" && ext.optional === true)) return true; return false; }; - this[id + "_default"] = function (_) { - if (!arguments.length) return this[__default_ + id] !== undefined ? this[__default_ + id] : meta.defaultValue; + this[id + "_default"] = function (_?) { + if (_ === undefined) return this[__default_ + id] !== undefined ? this[__default_ + id] : meta.defaultValue; if (_ === "") { _ = null; } @@ -594,8 +594,8 @@ export class PropertyExt extends Class { throw new Error(id + " is already published."); } this[__meta_ + id] = new MetaProxy(id, proxy, method, defaultValue); - this[id] = function (_) { - if (!arguments.length) return defaultValue === undefined || this[id + "_modified"]() ? this[proxy][method]() : defaultValue; + this[id] = function (_?) { + if (_ === undefined) return defaultValue === undefined || this[id + "_modified"]() ? this[proxy][method]() : defaultValue; if (defaultValue !== undefined && _ === defaultValue) { this[proxy][method + "_reset"](); } else { @@ -612,8 +612,8 @@ export class PropertyExt extends Class { this[id + "_exists"] = function () { return this[proxy][method + "_exists"](); }; - this[id + "_default"] = function (_) { - if (!arguments.length) return this[proxy][method + "_default"](); + this[id + "_default"] = function (_?) { + if (_ === undefined) return this[proxy][method + "_default"](); this[proxy][method + "_default"](_); return this; }; diff --git a/packages/common/src/SVGWidget.ts b/packages/common/src/SVGWidget.ts index 01ca77e659..f8b5ae84d1 100644 --- a/packages/common/src/SVGWidget.ts +++ b/packages/common/src/SVGWidget.ts @@ -164,9 +164,9 @@ export class SVGWidget extends Widget { } // Properties --- - move(_, transitionDuration?) { + move(_?, transitionDuration?) { const retVal = this.pos(_); - if (arguments.length) { + if (_ !== undefined) { (transitionDuration ? this._element.transition().duration(transitionDuration) : this._element) .attr("transform", `translate(${_.x} ${_.y})scale(${this._widgetScale})`) ; @@ -178,7 +178,7 @@ export class SVGWidget extends Widget { enableOverflow(): boolean; enableOverflow(_: boolean): this; enableOverflow(_?: boolean): boolean | this { - if (!arguments.length) return this._enableOverflow; + if (_ === undefined) return this._enableOverflow; this._enableOverflow = _; return this; } @@ -187,7 +187,7 @@ export class SVGWidget extends Widget { enableOverflowScroll(): boolean; enableOverflowScroll(_: boolean): this; enableOverflowScroll(_?: boolean): boolean | this { - if (!arguments.length) return this._enableOverflowScroll; + if (_ === undefined) return this._enableOverflowScroll; this._enableOverflowScroll = _; return this; } @@ -196,7 +196,7 @@ export class SVGWidget extends Widget { size(_): this; size(_?): ISize | this { const retVal = super.size.apply(this, arguments); - if (arguments.length) { + if (_ !== undefined) { this._boundingBox = null; } return retVal; @@ -239,7 +239,7 @@ export class SVGWidget extends Widget { target(_: null | string | HTMLElement | SVGElement): this; target(_?: null | string | HTMLElement | SVGElement): null | HTMLElement | SVGElement | this { const retVal = super.target.apply(this, arguments); - if (arguments.length) { + if (_ !== undefined) { if (this._target instanceof SVGElement) { this._isRootNode = false; this._placeholderElement = d3Select(this._target); diff --git a/packages/common/src/SVGZoomWidget.ts b/packages/common/src/SVGZoomWidget.ts index 35f7c357b0..d0089637cd 100644 --- a/packages/common/src/SVGZoomWidget.ts +++ b/packages/common/src/SVGZoomWidget.ts @@ -414,7 +414,7 @@ SVGZoomWidget.prototype.publish("mouseMode", "zoom", "set", "Mouse Mode (zoom | const _origMouseMode = SVGZoomWidget.prototype.mouseMode; SVGZoomWidget.prototype.mouseMode = function (_?, transitionDuration?) { const retVal = _origMouseMode.apply(this, arguments); - if (arguments.length) { + if (_ !== undefined) { if (_ === "zoom") { safeRaise(this._zoomRoot.node()); } else { diff --git a/packages/common/src/Shape.ts b/packages/common/src/Shape.ts index 0dbb2808c4..3e9a4426f2 100644 --- a/packages/common/src/Shape.ts +++ b/packages/common/src/Shape.ts @@ -177,7 +177,7 @@ Shape.prototype.publish("tooltip", "", "string", "Tooltip", null, { tags: ["Priv const _origRadius = Shape.prototype.radius; Shape.prototype.radius = function (_?) { const retVal = _origRadius.apply(this, arguments); - if (arguments.length) { + if (_ !== undefined) { this.width(_); this.height(_); return retVal; diff --git a/packages/common/src/Surface.ts b/packages/common/src/Surface.ts index f4e090b7f6..f9a5e20010 100644 --- a/packages/common/src/Surface.ts +++ b/packages/common/src/Surface.ts @@ -345,7 +345,7 @@ Surface.prototype.publish("menuPadding", 2, "number", "Menu Padding", null, { ta Surface.prototype._origMenuParam = Surface.prototype.menu; Surface.prototype.menu = function (this: Surface, _?) { Surface.prototype._origMenuParam.apply(this, arguments); - if (arguments.length) { + if (_ !== undefined) { this._menuWidget.data(_); return this; } @@ -355,7 +355,7 @@ Surface.prototype.menu = function (this: Surface, _?) { Surface.prototype._origShowContent = Surface.prototype.showContent; Surface.prototype.showContent = function (_?) { const retVal = Surface.prototype._origShowContent.apply(this, arguments); - if (arguments.length) { + if (_ !== undefined) { if (this.content()) { this.content().visible(this.showContent()); } diff --git a/packages/common/src/TextBox.ts b/packages/common/src/TextBox.ts index 9e63bfa346..9541104ab5 100644 --- a/packages/common/src/TextBox.ts +++ b/packages/common/src/TextBox.ts @@ -96,7 +96,7 @@ export class TextBox extends SVGWidget { this._text .x(this.getTextX(textBBox.width)) - .colorFill_default(this._shape.colorFill_exists() ? textColor(this._shape.colorFill()) : undefined) + .colorFill_default(this._shape.colorFill_exists() ? textColor(this._shape.colorFill()) : null) .render() ; diff --git a/packages/common/src/TitleBar.ts b/packages/common/src/TitleBar.ts index 79c8ad62c4..416d3eac8f 100644 --- a/packages/common/src/TitleBar.ts +++ b/packages/common/src/TitleBar.ts @@ -52,7 +52,7 @@ export class Button extends HTMLWidget { enabled(): boolean; enabled(_: boolean): this; enabled(_?: boolean): boolean | this { - if (!arguments.length) return this._enabled; + if (_ === undefined) return this._enabled; this._enabled = _; return this; } @@ -133,7 +133,7 @@ export class SelectDropDown extends HTMLWidget { enabled(): boolean; enabled(_: boolean): this; enabled(_?: boolean): boolean | this { - if (!arguments.length) return this._enabled; + if (_ === undefined) return this._enabled; this._enabled = _; return this; } @@ -295,7 +295,7 @@ export class SelectionBar extends IconBar { buttons(_: Array): this; buttons(_?: Array): Array | this { const retVal = super.buttons.apply(this, arguments); - if (arguments.length) { + if (_ !== undefined) { _.filter(b => b instanceof SelectionButton).forEach((sb: SelectionButton) => { sb._owner = this; }); diff --git a/packages/common/src/Transition.ts b/packages/common/src/Transition.ts index 4dbbcbea7b..bb95f0ea50 100644 --- a/packages/common/src/Transition.ts +++ b/packages/common/src/Transition.ts @@ -14,20 +14,20 @@ export class Transition { this._ease = d3CubicInOut; } - duration(_) { - if (!arguments.length) return this._duration; + duration(_?) { + if (_ === undefined) return this._duration; this._duration = _; return this._widget; } - delay(_) { - if (!arguments.length) return this._delay; + delay(_?) { + if (_ === undefined) return this._delay; this._delay = _; return this._widget; } - ease(_) { - if (!arguments.length) return this._ease; + ease(_?) { + if (_ === undefined) return this._ease; this._ease = _; return this._widget; } diff --git a/packages/common/src/Utility.ts b/packages/common/src/Utility.ts index 78b9725de4..2f7386ee26 100644 --- a/packages/common/src/Utility.ts +++ b/packages/common/src/Utility.ts @@ -152,14 +152,14 @@ export class SimpleSelection extends SelectionBase { _widgetElement; widgetElement(_?) { - if (!arguments.length) return this._widgetElement; + if (_ === undefined) return this._widgetElement; this._widgetElement = _; return this; } _skipBringToTop; - skipBringToTop(_) { - if (!arguments.length) return this._skipBringToTop; + skipBringToTop(_?) { + if (_ === undefined) return this._skipBringToTop; this._skipBringToTop = _; return this; } @@ -220,8 +220,8 @@ export class SimpleSelection extends SelectionBase { selected(domNode) { return d3Select(domNode).classed("selected"); } - selection(_) { - if (!arguments.length) { + selection(_?) { + if (_ === undefined) { return this.selection2().map(row => JSON.stringify(row)); } this.selection2(d => _.indexOf(JSON.stringify(d)) >= 0); @@ -230,7 +230,7 @@ export class SimpleSelection extends SelectionBase { selection2(): any[]; selection2(isSelected: (d) => boolean): this; selection2(isSelected?: (d) => boolean): any[] | this { - if (!arguments.length) { + if (isSelected === undefined) { const retVal: any[] = []; if (this._widgetElement) { this._widgetElement.selectAll(".selected") @@ -418,16 +418,19 @@ export function templateFields(tpl: string): string[] { return retVal; } -export function template(tpl: string, _args) { +export function template(tpl?: string, _args?) { if (!tpl) return ""; let args; - if (arguments.length === 2 && typeof arguments[1] === "object") { + if (_args !== undefined && typeof _args === "object") { args = arguments[1]; } else { - args = new Array(arguments.length - 1); - for (let i = 1; i < arguments.length; ++i) { - args[i - 1] = arguments[i]; + args = []; + if (tpl !== undefined) { + args.push(tpl); + if (_args !== undefined) { + args.push(_args); + } } } @@ -650,10 +653,10 @@ export function checksum(s) { export function getTime() { return (now && now.call(perf)) || (new Date().getTime()); } -export function mixin(dest, _sources) { +export function mixin(dest, ...args: any[]) { dest = dest || {}; - for (let i = 1, l = arguments.length; i < l; i++) { - _mixin(dest, arguments[i]); + for (let i = 0, l = args.length; i < l; i++) { + _mixin(dest, args[i]); } return dest; } diff --git a/packages/common/src/Widget.ts b/packages/common/src/Widget.ts index 283a913248..59a1b1ac7e 100644 --- a/packages/common/src/Widget.ts +++ b/packages/common/src/Widget.ts @@ -166,7 +166,7 @@ export abstract class Widget extends PropertyExt { columns(): string[]; columns(_: string[], asDefault?: boolean): this; columns(_?: string[], asDefault?: boolean): string[] | this { - if (!arguments.length) return this._db.legacyColumns(); + if (_ === undefined) return this._db.legacyColumns(); this._db.legacyColumns(_, asDefault); return this; } @@ -194,7 +194,7 @@ export abstract class Widget extends PropertyExt { data(): any; data(_: any): this; data(_?: any): any | this { - if (!arguments.length) return this._db.legacyData(); + if (_ === undefined) return this._db.legacyData(); this._db.legacyData(_); return this; } @@ -237,7 +237,7 @@ export abstract class Widget extends PropertyExt { pos(): IPos; pos(_: IPos): this; pos(_?: IPos): IPos | this { - if (!arguments.length) return this._pos; + if (_ === undefined) return this._pos; this._pos = _; if (this._overlayElement) { this._overlayElement @@ -250,7 +250,7 @@ export abstract class Widget extends PropertyExt { x(): number; x(_): this; x(_?): number | this { - if (!arguments.length) return this._pos.x; + if (_ === undefined) return this._pos.x; this.pos({ x: _, y: this._pos.y }); return this; } @@ -258,7 +258,7 @@ export abstract class Widget extends PropertyExt { y(): number; y(_): this; y(_?): number | this { - if (!arguments.length) return this._pos.y; + if (_ === undefined) return this._pos.y; this.pos({ x: this._pos.x, y: _ }); return this; } @@ -266,7 +266,7 @@ export abstract class Widget extends PropertyExt { size(): ISize; size(_): this; size(_?): ISize | this { - if (!arguments.length) return this._size; + if (_ === undefined) return this._size; this._size = _; if (this._overlayElement) { this._overlayElement @@ -280,7 +280,7 @@ export abstract class Widget extends PropertyExt { width(): number; width(_): this; width(_?): number | this { - if (!arguments.length) return this._size.width; + if (_ === undefined) return this._size.width; this.size({ width: _, height: this._size.height }); return this; } @@ -288,7 +288,7 @@ export abstract class Widget extends PropertyExt { height(): number; height(_): this; height(_?): number | this { - if (!arguments.length) return this._size.height; + if (_ === undefined) return this._size.height; this.size({ width: this._size.width, height: _ }); return this; } @@ -314,7 +314,7 @@ export abstract class Widget extends PropertyExt { scale(): number; scale(_): Widget; scale(_?): number | Widget { - if (!arguments.length) return this._widgetScale; + if (_ === undefined) return this._widgetScale; this._widgetScale = _; if (this._overlayElement) { this._overlayElement @@ -327,7 +327,7 @@ export abstract class Widget extends PropertyExt { visible(): boolean; visible(_): this; visible(_?): boolean | this { - if (!arguments.length) return this._visible; + if (_ === undefined) return this._visible; this._visible = _; if (this._element) { this._element @@ -341,7 +341,7 @@ export abstract class Widget extends PropertyExt { display(): boolean; display(_): this; display(_?): boolean | this { - if (!arguments.length) return this._display; + if (_ === undefined) return this._display; this._display = _; if (this._element) { this._element.style("display", this._display ? null : "none"); @@ -352,7 +352,7 @@ export abstract class Widget extends PropertyExt { dataMeta(): DataMetaT; dataMeta(_): this; dataMeta(_?): DataMetaT | this { - if (!arguments.length) return this._dataMeta; + if (_ === undefined) return this._dataMeta; this._dataMeta = _; return this; } @@ -361,7 +361,7 @@ export abstract class Widget extends PropertyExt { appData(key: string): any; appData(key: string, value: any): this; appData(key: string, value?: any): any | this { - if (arguments.length < 2) return this._appData[key]; + if (value === undefined) return this._appData[key]; this._appData[key] = value; return this; } @@ -535,7 +535,7 @@ export abstract class Widget extends PropertyExt { target(): null | HTMLElement | SVGElement; target(_: null | string | HTMLElement | SVGElement): this; target(_?: null | string | HTMLElement | SVGElement): null | HTMLElement | SVGElement | this { - if (!arguments.length) return this._target; + if (_ === undefined) return this._target; if (this._target && _) { throw new Error("Target can only be assigned once."); } @@ -720,10 +720,10 @@ Widget.prototype.publish("classed", {}, "object", "HTML Classes", null, { tags: const origClassed = Widget.prototype.classed; Widget.prototype.classed = function (this: Widget, str_obj?: string | { [classID: string]: boolean }, _?: boolean) { if (typeof str_obj === "string") { - if (arguments.length === 1) return origClassed.call(this)[str_obj]; + if (_ === undefined) return origClassed.call(this)[str_obj]; const classed = origClassed.call(this); origClassed.call(this, { ...classed, [str_obj]: _ }); return this; } - return origClassed.apply(this, arguments); + return origClassed.call(this, str_obj, _); }; diff --git a/packages/common/tests/common.browser.spec.ts b/packages/common/tests/common.browser.spec.ts index 3138987635..7e3e80b2df 100644 --- a/packages/common/tests/common.browser.spec.ts +++ b/packages/common/tests/common.browser.spec.ts @@ -8,6 +8,7 @@ const menuList = ["List item 1", "This is Item 2", "List item 3", "This is list describe("Widget.classed", () => { it("set/get", function () { + debugger; const text = new Text() .text("Hello\nand\nWelcome!") .classed("TestClass0", true) diff --git a/packages/comms/esbuild.js b/packages/comms/esbuild.js index 88bf21b177..d4e797e59c 100644 --- a/packages/comms/esbuild.js +++ b/packages/comms/esbuild.js @@ -1,8 +1,14 @@ import { browserTpl, nodeTpl } from "@hpcc-js/esbuild-plugins"; +import pkg from "./package.json" with { type: "json" }; // config --- await Promise.all([ nodeTpl("src/index.node.ts", "dist/index.node"), - browserTpl("src/index.ts", "dist/index"), + browserTpl("src/index.ts", "dist/index", { + keepNames: true, + external: [ + ...Object.keys(pkg.dependencies), + ] + }), nodeTpl("utils/index.ts", "lib-esm/index") ]); diff --git a/packages/comms/package.json b/packages/comms/package.json index 66e0e82958..de26c35711 100644 --- a/packages/comms/package.json +++ b/packages/comms/package.json @@ -60,7 +60,7 @@ "dependencies": { "@hpcc-js/ddl-shim": "^2.22.0", "@hpcc-js/util": "^3.1.0", - "@xmldom/xmldom": "0.9.4", + "@xmldom/xmldom": "0.9.5", "abort-controller": "3.0.0", "node-fetch": "3.3.2", "safe-buffer": "5.2.1", diff --git a/packages/comms/rollup.config.mjs b/packages/comms/rollup.config.mjs deleted file mode 100644 index 678d1cc67e..0000000000 --- a/packages/comms/rollup.config.mjs +++ /dev/null @@ -1,55 +0,0 @@ -import { external, globals } from "@hpcc-js/bundle"; -import alias from '@rollup/plugin-alias'; -import commonjs from '@rollup/plugin-commonjs'; -import sourcemaps from 'rollup-plugin-sourcemaps'; -import nodeResolve from '@rollup/plugin-node-resolve'; -import postcss from "rollup-plugin-postcss"; - -import pkg from "./package.json" with { type: "json" }; - -const plugins = [ - alias({}), - nodeResolve({ - preferBuiltins: true - }), - commonjs({}), - sourcemaps(), - postcss({ - extensions: [".css"], - minimize: true - }) -]; - -export default [{ - input: "lib-es6/index", - external: external, - output: [{ - file: pkg.browser, - format: "umd", - sourcemap: true, - globals: globals, - name: pkg.name - }, { - file: pkg.module + ".js", - format: "es", - sourcemap: true, - globals: globals - }], - plugins: plugins -}, { - input: "lib-es6/index.node", - external: external, - output: [{ - file: pkg.main, - format: "cjs", - sourcemap: true, - globals: globals, - name: pkg.name - }, { - file: pkg.module + ".js", - format: "es", - sourcemap: true, - globals: globals - }], - plugins: plugins -}]; \ No newline at end of file diff --git a/packages/comms/src/connection.ts b/packages/comms/src/connection.ts index 4a94ac9b89..08b6cdae9e 100644 --- a/packages/comms/src/connection.ts +++ b/packages/comms/src/connection.ts @@ -266,7 +266,7 @@ export class Connection implements IConnection { opts(_: Partial): this; opts(): IOptions; opts(_?: Partial): this | IOptions { - if (arguments.length === 0) return this._opts; + if (_ === undefined) return this._opts; this._opts = { ...DefaultOptions, ..._ }; return this; } diff --git a/packages/comms/src/ecl/scope.ts b/packages/comms/src/ecl/scope.ts index 87508aaa9f..11b952592a 100644 --- a/packages/comms/src/ecl/scope.ts +++ b/packages/comms/src/ecl/scope.ts @@ -105,7 +105,7 @@ export class BaseScope extends StateObject implements ScopeEx children(): BaseScope[]; children(_: BaseScope[]): BaseScope; children(_?: BaseScope[]): BaseScope[] | BaseScope { - if (!arguments.length) return this._children; + if (_ === undefined) return this._children; this._children = _!; return this; } diff --git a/packages/dgrid-shim/package.json b/packages/dgrid-shim/package.json index fc16f69645..9f74154534 100644 --- a/packages/dgrid-shim/package.json +++ b/packages/dgrid-shim/package.json @@ -43,7 +43,12 @@ "dojo": "1.17.3", "dojo-dstore": "1.2.1", "dojo-util": "1.17.3", - "dojox": "1.17.3" + "dojox": "1.17.3", + "webpack": "5.95.0", + "webpack-cli": "5.1.4", + "webpack-hasjs-plugin": "1.0.4", + "dojo-webpack-plugin": "3.0.6", + "terser-webpack-plugin": "5.3.10" }, "repository": { "type": "git", @@ -61,4 +66,4 @@ "url": "https://github.com/hpcc-systems/Visualization/issues" }, "homepage": "https://github.com/hpcc-systems/Visualization#readme" -} +} \ No newline at end of file diff --git a/packages/dgrid/.vscode/launch.json b/packages/dgrid/.vscode/launch.json index 760a72e834..7c2436335f 100644 --- a/packages/dgrid/.vscode/launch.json +++ b/packages/dgrid/.vscode/launch.json @@ -1,52 +1,47 @@ { - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { - "name": "Dev", + "name": "test-browser", "type": "msedge", "request": "launch", - "url": "file:///${workspaceRoot}/index.html", - "runtimeArgs": [ - "--allow-file-access-from-files", - "--disable-web-security" + "url": "http://localhost:8888", + "webRoot": "${workspaceFolder}", + "outFiles": [ + "${workspaceFolder}/**/*.js", + "!**/node_modules/**" ], - "webRoot": "${workspaceRoot}" }, { - "name": "lws", - "type": "msedge", + "name": "test-node", + "type": "node", "request": "launch", - "url": "http://localhost:8080/../packages/dgrid/index.html", "runtimeArgs": [ - "--allow-file-access-from-files", - "--disable-web-security" + "run-script", + "test-node" ], - "webRoot": "${workspaceRoot}" - }, - { - "type": "msedge", - "request": "launch", - "name": "index.md", - "url": "${workspaceFolder}/../../website/index.html?debug=1#packages/graph/docs/index.md", - "runtimeArgs": [ - "--allow-file-access-from-files", - "--disable-web-security" + "runtimeExecutable": "npm", + "skipFiles": [ + "/**" + ], + "outFiles": [ + "${workspaceFolder}/**/*.js", + "!**/node_modules/**" ], - "webRoot": "${workspaceFolder}/../../website" }, { - "type": "msedge", + "name": "index.html", "request": "launch", - "name": "http index.md", - "url": "http://localhost:8080/${workspaceFolder}/../../website/index.html?debug=1#packages/graph/docs/index.md", + "type": "msedge", + "url": "file:///${workspaceFolder}/index.html", "runtimeArgs": [ - "--allow-file-access-from-files", "--disable-web-security" ], - "webRoot": "${workspaceFolder}/../../website" + "webRoot": "${workspaceFolder}", + "outFiles": [ + "${workspaceFolder}/**/*.js", + "!**/node_modules/**" + ] } ] } \ No newline at end of file diff --git a/packages/dgrid/.vscode/tasks.json b/packages/dgrid/.vscode/tasks.json index 89aac7c9d8..120545d06c 100644 --- a/packages/dgrid/.vscode/tasks.json +++ b/packages/dgrid/.vscode/tasks.json @@ -1,29 +1,20 @@ { - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { + "label": "gen-types-watch", "type": "npm", - "label": "compile umd watch", - "script": "compile-umd-watch", - "problemMatcher": [], - "presentation": { - "group": "group-build" - } - }, - { - "type": "npm", - "label": "compile es6 watch", - "script": "compile-es6-watch", - "problemMatcher": [], + "script": "gen-types-watch", + "problemMatcher": [ + "$tsc-watch" + ], "presentation": { "group": "group-build" } }, { + "label": "bundle-watch", "type": "npm", - "label": "bundle watch", "script": "bundle-watch", "problemMatcher": [], "presentation": { @@ -31,17 +22,15 @@ } }, { - "label": "build-local-dev-server", + "label": "build", "dependsOn": [ - "compile umd watch", - "compile es6 watch", - "bundle watch", + "gen-types-watch", + "bundle-watch", ], "group": { "kind": "build", "isDefault": true - }, - "problemMatcher": [] + } } ] } \ No newline at end of file diff --git a/packages/dgrid/esbuild.js b/packages/dgrid/esbuild.js new file mode 100644 index 0000000000..fe1b2e12f4 --- /dev/null +++ b/packages/dgrid/esbuild.js @@ -0,0 +1,12 @@ +import { browserTpl } from "@hpcc-js/esbuild-plugins"; +import pkg from "./package.json" with { type: "json" }; + +// config --- +await Promise.all([ + browserTpl("src/index.ts", "dist/index", { + keepNames: true, + external: [ + ...Object.keys(pkg.dependencies), + ] + }) +]); diff --git a/packages/dgrid/index.html b/packages/dgrid/index.html index 9b14493a58..762d198c0c 100644 --- a/packages/dgrid/index.html +++ b/packages/dgrid/index.html @@ -2,61 +2,81 @@ - - @hpcc-js/dgrid - - - + h1 { + text-align: center; + margin-top: 50px; + } - + + + + + -
-
- + diff --git a/packages/dgrid/package.json b/packages/dgrid/package.json index 26f46f75c3..0b99b76c91 100644 --- a/packages/dgrid/package.json +++ b/packages/dgrid/package.json @@ -1,54 +1,50 @@ { "name": "@hpcc-js/dgrid", - "version": "2.34.0", + "version": "3.0.0", "description": "hpcc-js - Viz DGrid", - "main": "dist/index.js", - "module": "dist/index.es6", - "browser": "dist/index.js", - "unpkg": "dist/index.min.js", - "jsdelivr": "dist/index.min.js", - "types": "types/index.d.ts", - "typesVersions": { - "<3.8": { - "*": [ - "types-3.4/index.d.ts" - ] + "type": "module", + "exports": { + ".": { + "types": "./types/index.d.ts", + "default": "./dist/index.js" } }, + "module": "./dist/index.js", + "browser": "./dist/index.js", + "types": "./types/index.d.ts", "files": [ "dist/*", - "types/*", - "types-3.4/*", - "src/*" + "src/*", + "types/*" ], "scripts": { - "clean": "rimraf --glob lib* types dist *.tsbuildinfo", - "compile-es6": "tsc --module es6 --outDir ./lib-es6", - "compile-es6-watch": "npm run compile-es6 -- -w", - "compile-umd": "tsc --module umd --outDir ./lib-umd", - "compile-umd-watch": "npm run compile-umd -- -w", - "bundle": "rollup -c", - "bundle-watch": "npm run bundle -- -w", - "minimize": "terser dist/index.js -c -m --source-map \"content='dist/index.js.map',url='index.min.js.map'\" -o dist/index.min.js", - "gen-legacy-types": "downlevel-dts ./types ./types-3.4", - "build": "npm run compile-es6 && npm run bundle", - "watch": "npm-run-all compile-es6 -p compile-es6-watch bundle-watch", + "clean": "rimraf --glob lib* types dist *.tsbuildinfo .turbo", + "bundle": "node esbuild.js", + "bundle-watch": "npm run bundle -- --development --watch", + "gen-types": "tsc --project tsconfig.json", + "gen-types-watch": "npm run gen-types -- --watch", + "build": "run-p gen-types bundle", "stamp": "node ../../node_modules/@hpcc-js/bundle/src/stamp.js", "lint": "eslint ./src", + "lint-fix": "eslint --fix src/**/*.ts", "docs": "typedoc --options tdoptions.json .", - "update": "npx --yes npm-check-updates -u -t minor" + "test-browser": "vitest run --project browser", + "test": "vitest run", + "coverage": "vitest run --coverage", + "update": "npx -y npm-check-updates -u -t minor", + "update-major": "npx -y npm-check-updates -u" }, "dependencies": { - "@hpcc-js/common": "^2.73.0", + "@hpcc-js/common": "^3.1.0", "@hpcc-js/ddl-shim": "^2.22.0", "@hpcc-js/dgrid-shim": "^2.26.0", - "@hpcc-js/util": "^2.53.0" + "@hpcc-js/util": "^3.1.0" }, "devDependencies": { - "@hpcc-js/bundle": "^2.12.0", + "@hpcc-js/esbuild-plugins": "^1.2.0", + "@testing-library/dom": "10.4.0", "d3-format": "^1", - "d3-selection": "^1", - "tslib": "2.7.0" + "d3-selection": "^1" }, "repository": { "type": "git", @@ -61,4 +57,4 @@ "url": "https://github.com/hpcc-systems/Visualization/issues" }, "homepage": "https://github.com/hpcc-systems/Visualization" -} +} \ No newline at end of file diff --git a/packages/dgrid/rollup.config.mjs b/packages/dgrid/rollup.config.mjs deleted file mode 100644 index d437a5d847..0000000000 --- a/packages/dgrid/rollup.config.mjs +++ /dev/null @@ -1,59 +0,0 @@ -import { external, globals } from "@hpcc-js/bundle"; -import alias from '@rollup/plugin-alias'; -import commonjs from '@rollup/plugin-commonjs'; -import sourcemaps from 'rollup-plugin-sourcemaps'; -import nodeResolve from '@rollup/plugin-node-resolve'; -import postcss from "rollup-plugin-postcss"; - -import pkg from "./package.json" with { type: "json" }; - -export default { - input: "lib-es6/index", - external: external, - output: [{ - file: pkg.main, - format: "umd", - sourcemap: true, - globals: globals, - name: pkg.name, - strict: false - }, { - file: pkg.module + ".js", - format: "es", - sourcemap: true, - globals: globals, - name: pkg.name, - strict: false - }], - plugins: [ - alias({ - entries: [ - { find: "d3-array", replacement: "@hpcc-js/common" }, - { find: "d3-brush", replacement: "@hpcc-js/common" }, - { find: "d3-collection", replacement: "@hpcc-js/common" }, - { find: "d3-color", replacement: "@hpcc-js/common" }, - { find: "d3-dispatch", replacement: "@hpcc-js/common" }, - { find: "d3-drag", replacement: "@hpcc-js/common" }, - { find: "d3-dsv", replacement: "@hpcc-js/common" }, - { find: "d3-ease", replacement: "@hpcc-js/common" }, - { find: "d3-format", replacement: "@hpcc-js/common" }, - { find: "d3-interpolate", replacement: "@hpcc-js/common" }, - { find: "d3-scale", replacement: "@hpcc-js/common" }, - { find: "d3-selection", replacement: "@hpcc-js/common" }, - { find: "d3-time-format", replacement: "@hpcc-js/common" }, - { find: "d3-transition", replacement: "@hpcc-js/common" }, - { find: "d3-zoom", replacement: "@hpcc-js/common" } - ] - }), - nodeResolve({ - preferBuiltins: true - }), - commonjs({ - }), - sourcemaps(), - postcss({ - extensions: [".css"], - minimize: true - }) - ] -}; \ No newline at end of file diff --git a/packages/dgrid/src/Common.ts b/packages/dgrid/src/Common.ts index fd9dc09814..6f6834820b 100644 --- a/packages/dgrid/src/Common.ts +++ b/packages/dgrid/src/Common.ts @@ -1,6 +1,6 @@ -import { HTMLWidget, publish } from "@hpcc-js/common"; -import { Grid, PagingGrid } from "@hpcc-js/dgrid-shim"; -import { DBStore } from "./DBStore"; +import { HTMLWidget } from "@hpcc-js/common"; +import { Grid, PagingGrid } from "./dgrid-shim.ts"; +import { DBStore } from "./DBStore.ts"; import "../src/Common.css"; @@ -19,34 +19,16 @@ export class Common extends HTMLWidget { this._tag = "div"; } - @publish("...empty...", "string", "No Data Message") - noDataMessage: publish; - @publish("loading...", "string", "Loading Message") - loadingMessage: publish; - @publish(false, "boolean", "Enable paging") - pagination: publish; - @publish(25, "number", "Page size") - pageSize: publish; - @publish(false, "boolean", "Enable sorting by column") - sortable: publish; - @publish(null, "set", "Default 'sort by' Column ID", function () { return this.columns(); }, { optional: true }) - sortBy: publish; - @publish(false, "boolean", "Default 'sort by' descending", null, { disable: self => !self.sortBy() }) - sortByDescending: publish; - @publish(false, "boolean", "Multiple Selection") - multiSelect: publish; - @publish(true, "boolean", "Render HTML") - renderHtml: publish; - // Backward Compatibility mulitSelect(): boolean; mulitSelect(_?: boolean): this; mulitSelect(_?: boolean): this | boolean { - return this.multiSelect.apply(this, arguments); + return this.multiSelect(_); } protected formatSortBy(): [{ property: string, descending: boolean }] | undefined { - const idx = this.columns().indexOf(this.sortBy()); + const cols = this.columns(); + const idx = cols.indexOf(this.sortBy()); return idx >= 0 ? [{ property: idx.toString(), descending: this.sortByDescending() }] : undefined; } @@ -54,11 +36,11 @@ export class Common extends HTMLWidget { selection(): any[]; selection(_: any[]): this; selection(_?: any[]): any[] | this { - if (!arguments.length) { + if (_ === undefined) { const retVal = []; for (const id in this._dgrid.selection) { if (this._dgrid.selection[id]) { - const storeItem = this._store.get(+id); + const storeItem = this._store.get(+id); retVal.push(this.rowToObj(storeItem)); } } @@ -158,3 +140,56 @@ export class Common extends HTMLWidget { } } Common.prototype._class += " dgrid_Common"; + +/* + @publish("...empty...", "string", "No Data Message") + noDataMessage: publish; + @publish("loading...", "string", "Loading Message") + loadingMessage: publish; + @publish(false, "boolean", "Enable paging") + pagination: publish; + @publish(25, "number", "Page size") + pageSize: publish; + @publish(false, "boolean", "Enable sorting by column") + sortable: publish; + @publish(null, "set", "Default 'sort by' Column ID", function () { return this.columns(); }, { optional: true }) + sortBy: publish; + @publish(false, "boolean", "Default 'sort by' descending", null, { disable: self => !self.sortBy() }) + sortByDescending: publish; + @publish(false, "boolean", "Multiple Selection") + multiSelect: publish; + @publish(true, "boolean", "Render HTML") + renderHtml: publish; +*/ + +export interface Common { + noDataMessage(): string; + noDataMessage(_: string): this; + loadingMessage(): string; + loadingMessage(_: string): this; + pagination(): boolean; + pagination(_: boolean): this; + pageSize(): number; + pageSize(_: number): this; + sortable(): boolean; + sortable(_: boolean): this; + sortBy(): string; + sortBy(_: string): this; + sortByDescending(): boolean; + sortByDescending(_: boolean): this; + multiSelect(): boolean; + multiSelect(_: boolean): this; + renderHtml(): boolean; + renderHtml(_: boolean): this; +} + +Common.prototype.publish("noDataMessage", "...empty...", "string", "No Data Message"); +Common.prototype.publish("loadingMessage", "loading...", "string", "Loading Message"); +Common.prototype.publish("pagination", false, "boolean", "Enable paging"); +Common.prototype.publish("pageSize", 25, "number", "Page size"); +Common.prototype.publish("sortable", false, "boolean", "Enable sorting by column"); +Common.prototype.publish("sortBy", null, "set", "Default 'sort by' Column ID", function (this: Common) { return this.columns(); }, { optional: true }); +Common.prototype.publish("sortByDescending", false, "boolean", "Default 'sort by' descending", undefined, { disable: self => !self.sortBy() }); +Common.prototype.publish("multiSelect", false, "boolean", "Multiple Selection"); +Common.prototype.publish("renderHtml", true, "boolean", "Render HTML"); + diff --git a/packages/dgrid/src/DBStore.ts b/packages/dgrid/src/DBStore.ts index c436346f09..c31d77fb3e 100644 --- a/packages/dgrid/src/DBStore.ts +++ b/packages/dgrid/src/DBStore.ts @@ -1,6 +1,6 @@ import { Database } from "@hpcc-js/common"; -import { Deferred } from "@hpcc-js/dgrid-shim"; -import { CellFormatter, CellRenderer, ColumnType, RowFormatter } from "./RowFormatter"; +import { Deferred } from "./dgrid-shim.ts"; +import { CellFormatter, CellRenderer, ColumnType, RowFormatter } from "./RowFormatter.ts"; export class DBStore { private _db: Database.Grid; diff --git a/packages/dgrid/src/DatasourceStore.ts b/packages/dgrid/src/DatasourceStore.ts index 0f0469174a..5b4d5a4cf9 100644 --- a/packages/dgrid/src/DatasourceStore.ts +++ b/packages/dgrid/src/DatasourceStore.ts @@ -1,6 +1,6 @@ -import { DDL2 } from "@hpcc-js/ddl-shim"; -import { Deferred, QueryResults } from "@hpcc-js/dgrid-shim"; -import { ColumnType, RowFormatter } from "./RowFormatter"; +import type { DDL2 } from "@hpcc-js/ddl-shim"; +import { Deferred, QueryResults } from "./dgrid-shim.ts"; +import { ColumnType, RowFormatter } from "./RowFormatter.ts"; export interface IDatasource { id: () => string; diff --git a/packages/dgrid/src/DatasourceTable.ts b/packages/dgrid/src/DatasourceTable.ts index 9b4092414f..69bc3d5202 100644 --- a/packages/dgrid/src/DatasourceTable.ts +++ b/packages/dgrid/src/DatasourceTable.ts @@ -1,18 +1,15 @@ -import { publish, Widget } from "@hpcc-js/common"; -import { Memory } from "@hpcc-js/dgrid-shim"; -import { Common } from "./Common"; -import { DatasourceStore, IDatasource } from "./DatasourceStore"; +import { Widget } from "@hpcc-js/common"; +import { Memory } from "./dgrid-shim.ts"; +import { Common } from "./Common.ts"; +import { DatasourceStore, IDatasource } from "./DatasourceStore.ts"; export class DatasourceTable extends Common { - _prevDatasource: IDatasource; + _prevDatasource?: IDatasource; constructor() { super(); } - @publish(null, "object", "Datasource") - datasource: { (): IDatasource; (_: IDatasource): DatasourceTable }; - invalidate(): this { delete this._prevDatasource; return this; @@ -55,3 +52,16 @@ export class DatasourceTable extends Common { } } DatasourceTable.prototype._class += " dgrid_DatasourceTable"; + +/* + @publish(null, "object", "Datasource") + datasource: { (): IDatasource; (_: IDatasource): DatasourceTable }; + */ + +export interface DatasourceTable { + datasource(): IDatasource; + datasource(_: IDatasource): this; +} + +DatasourceTable.prototype.publish("datasource", null, "object", "Datasource"); + diff --git a/packages/dgrid/src/Table.ts b/packages/dgrid/src/Table.ts index c1471f6c33..0696460516 100644 --- a/packages/dgrid/src/Table.ts +++ b/packages/dgrid/src/Table.ts @@ -2,8 +2,8 @@ import { hashSum } from "@hpcc-js/util"; import { format as d3Format } from "d3-format"; import { select as d3Select } from "d3-selection"; -import { Common } from "./Common"; -import { CellFormatter, CellRenderer, ColumnType, RowType } from "./RowFormatter"; +import { Common } from "./Common.ts"; +import { CellFormatter, CellRenderer, ColumnType, RowType } from "./RowFormatter.ts"; // ColumnPalette --- export class ColumnFormat extends PropertyExt { @@ -16,7 +16,7 @@ export class ColumnFormat extends PropertyExt { owner(): Table; owner(_: Table): this; owner(_?: Table): Table | this { - if (!arguments.length) return this._owner; + if (_ === undefined) return this._owner; this._owner = _; return this; } @@ -54,7 +54,7 @@ export class ColumnFormat extends PropertyExt { } const value = valueColIdx ? row.__origRow[valueColIdx] : cell; const background = palette(value, min, max); - const cellText = defaultFormatter.call(this, cell, row); + const cellText: any = defaultFormatter.call(this, cell, row); d3Select(cellElement) .style("background", background) .style("color", background && Palette.textColor(background)) @@ -103,8 +103,8 @@ export class Table extends Common { } fields(_?: any): any | this { - const retVal = super.fields.apply(this, arguments); - if (arguments.length) { + const retVal = super.fields(_); + if (_ !== undefined) { const hash = hashSum({ _ }); if (this._prevFieldsHash !== hash) { this._prevFieldsHash = hash; @@ -115,8 +115,8 @@ export class Table extends Common { } columns(_?: any): any | this { - const retVal = super.columns.apply(this, arguments); - if (arguments.length) { + const retVal = super.columns(_); + if (_ !== undefined) { const hash = hashSum({ _ }); if (this._prevColsHash !== hash) { this._prevColsHash = hash; @@ -127,8 +127,8 @@ export class Table extends Common { } data(_?: any): any | this { - const retVal = super.data.apply(this, arguments); - if (arguments.length) { + const retVal = super.data(_); + if (_ !== undefined) { this._dataRefresh = true; } return retVal; diff --git a/packages/dgrid/src/dgrid-shim.ts b/packages/dgrid/src/dgrid-shim.ts new file mode 100644 index 0000000000..df7f91e696 --- /dev/null +++ b/packages/dgrid/src/dgrid-shim.ts @@ -0,0 +1,12 @@ +import type * as dgrid_shim from "@hpcc-js/dgrid-shim"; + +if (!globalThis["@hpcc-js/dgrid-shim"]) { + console.error("dgrid-shim not loaded, please add to your HTML file"); +} + +export const Deferred = globalThis["@hpcc-js/dgrid-shim"].Deferred as typeof dgrid_shim.Deferred; +export const Memory = globalThis["@hpcc-js/dgrid-shim"].Memory as typeof dgrid_shim.Memory; +export const QueryResults = globalThis["@hpcc-js/dgrid-shim"].QueryResults as typeof dgrid_shim.QueryResults; +export const Grid = globalThis["@hpcc-js/dgrid-shim"].Grid as typeof dgrid_shim.Grid; +export const PagingGrid = globalThis["@hpcc-js/dgrid-shim"].PagingGrid as typeof dgrid_shim.PagingGrid; +export const domConstruct = globalThis["@hpcc-js/dgrid-shim"].domConstruct as typeof dgrid_shim.domConstruct; diff --git a/packages/dgrid/src/index.ts b/packages/dgrid/src/index.ts index 252ef5097a..71f3d4ad08 100644 --- a/packages/dgrid/src/index.ts +++ b/packages/dgrid/src/index.ts @@ -1,11 +1,11 @@ -export * from "./__package__"; -export * from "./Common"; -export * from "./DatasourceStore"; -export * from "./DatasourceTable"; -export * from "./DBStore"; -export * from "./RowFormatter"; -export * from "./Table"; +export * from "./__package__.ts"; +export * from "./Common.ts"; +export * from "./DatasourceStore.ts"; +export * from "./DatasourceTable.ts"; +export * from "./DBStore.ts"; +export * from "./RowFormatter.ts"; +export * from "./Table.ts"; // Must be last... -export { Deferred, domConstruct, Memory, QueryResults } from "@hpcc-js/dgrid-shim"; +// export { Deferred, domConstruct, Memory, QueryResults } from "./dgrid-shim.ts"; diff --git a/packages/dgrid/tests/dgrid.browser.spec.ts b/packages/dgrid/tests/dgrid.browser.spec.ts new file mode 100644 index 0000000000..4b788c0a74 --- /dev/null +++ b/packages/dgrid/tests/dgrid.browser.spec.ts @@ -0,0 +1,121 @@ +import { Class, HTMLWidget, set, SVGWidget } from "@hpcc-js/common"; +import { describe, it, expect, test } from "vitest"; +import { classDef, renderMedium, renderShort, renderSmall, renderWide } from "../../common/tests/index.ts"; + +let dgridMod: any; + +// test('load script dynamically', async () => { +// console.log('Current working directory:', import.meta.resolve("../../dgrid-shim/dist/index.js")); + +// const script = document.createElement('script'); +// script.src = import.meta.resolve("../../dgrid-shim/dist/index.js"); +// script.type = 'text/javascript'; +// document.head.appendChild(script); +// await new Promise((resolve) => { +// script.onload = () => { +// resolve(); +// } +// }); + +// dgridMod = await import("@hpcc-js/dgrid"); +// }); + + +const urlSearch: string = window.location.href.split("?")[1]; +const simple = { + ND: { + columns: ["Subject", "Year 1", "Year 2", "Year 3", "Year 4"], + data: [ + ["English", 5, 43, 41, 92], + ["English II", 17, 43, 83, 93], + ["English III", 6, 43, 64, 93], + ["Geography", 7, 45, 52, 83], + ["Geography II", 16, 73, 52, 83], + ["Geography III", 26, 83, 11, 72], + ["Science", 66, 60, 85, 6], + ["Science II", 46, 20, 53, 7], + ["Science III", 46, 20, 38, 7], + ["Math", 98, 30, 23, 13], + ["Math II", 76, 30, 34, 6], + ["Math III", 80, 30, 27, 8] + ] + }, +}; + +describe("@hpcc-js/dgrid", async () => { + + const script = document.createElement('script'); + script.src = import.meta.resolve("../../dgrid-shim/dist/index.js"); + script.type = 'text/javascript'; + document.head.appendChild(script); + + await new Promise((resolve) => { + script.onload = () => { + resolve(); + } + }); + + it("Shim Loaded", () => { + expect(window["dgrid_shim"]).to.exist; + }); + + const dgridMod = await import("@hpcc-js/dgrid"); + + it("dgridMod Loaded", () => { + expect(dgridMod).to.exist; + }); + + for (const key in dgridMod) { + const item = dgridMod[key]; + if (item?.prototype?.constructor?.name) { + describe(`${item.prototype?.constructor?.name}`, () => { + it("Simple", () => { + expect(true).to.be.true; + }); + + if (item.prototype instanceof Class) { + it("Class Derived", () => { + expect(item.prototype instanceof Class).to.be.true; + }); + } + + + + if (item.prototype instanceof Class) { + classDef("dgrid", item); + } + + if (item.prototype instanceof HTMLWidget || item.prototype instanceof SVGWidget) { + it(item.prototype.constructor.name, () => { + expect(true).to.be.true; + }); + if (item instanceof dgridMod.Table) { + renderMedium(new dgridMod.Table() + .columns(simple.ND.columns) + .data(simple.ND.data) + ); + } + switch (item.prototype.constructor) { + case dgridMod.Common: + case dgridMod.DatasourceTable: + break; + case dgridMod.Table: + it("renderMedium", () => { + expect(true).to.be.true; + }); + renderMedium(new item.prototype.constructor() + .columns(simple.ND.columns) + .data(simple.ND.data) + ); + break; + default: + it("Has render test", () => { + expect(false).to.be.true; + }); + } + } + }); + + } + } +}); diff --git a/packages/dgrid/tmp.txt b/packages/dgrid/tmp.txt new file mode 100644 index 0000000000..80e8aba12e --- /dev/null +++ b/packages/dgrid/tmp.txt @@ -0,0 +1,106 @@ + + DEV v2.1.4 /home/gordon/Visualization/packages/dgrid + [browser] Browser runner started by playwright at http://localhost:63315/ + + ✓ |browser| tests/dgrid.browser.spec.ts (28 tests) 209ms + + Test Files 1 passed (1) + Tests 28 passed (28) + Start at 13:52:42 + Duration 1.09s (transform 0ms, setup 0ms, collect 194ms, tests 209ms, environment 0ms, prepare 217ms) + + + PASS Waiting for file changes... + press h to show help, press q to quit +c + RERUN x1 + + ❯ |browser| tests/dgrid.browser.spec.ts (28 tests | 28 failed) 25ms + × @hpcc-js/dgrid > Shim Loaded 3ms + → Page "none" not found + × @hpcc-js/dgrid > dgridMod Loaded 1ms + → Page "none" not found + × @hpcc-js/dgrid > ColumnFormat > Simple 1ms + → Page "none" not found + × @hpcc-js/dgrid > ColumnFormat > Class Derived 1ms + → Page "none" not found + × @hpcc-js/dgrid > ColumnFormat > #constructor() > new 1ms + → Page "none" not found + × @hpcc-js/dgrid > ColumnFormat > #constructor() > classID 1ms + → Page "none" not found + × @hpcc-js/dgrid > Common > Simple 1ms + → Page "none" not found + × @hpcc-js/dgrid > Common > Class Derived 1ms + → Page "none" not found + × @hpcc-js/dgrid > Common > #constructor() > new 1ms + → Page "none" not found + × @hpcc-js/dgrid > Common > #constructor() > classID 1ms + → Page "none" not found + × @hpcc-js/dgrid > Common > Common 1ms + → Page "none" not found + × @hpcc-js/dgrid > DBStore > Simple 1ms + → Page "none" not found + × @hpcc-js/dgrid > DatasourceCache > Simple 1ms + → Page "none" not found + × @hpcc-js/dgrid > DatasourceStore > Simple 1ms + → Page "none" not found + × @hpcc-js/dgrid > DatasourceTable > Simple 1ms + → Page "none" not found + × @hpcc-js/dgrid > DatasourceTable > Class Derived 1ms + → Page "none" not found + × @hpcc-js/dgrid > DatasourceTable > #constructor() > new 1ms + → Page "none" not found + × @hpcc-js/dgrid > DatasourceTable > #constructor() > classID 1ms + → Page "none" not found + × @hpcc-js/dgrid > DatasourceTable > DatasourceTable 1ms + → Page "none" not found + × @hpcc-js/dgrid > RowFormatter > Simple 1ms + → Page "none" not found + × @hpcc-js/dgrid > Table > Simple 1ms + → Page "none" not found + × @hpcc-js/dgrid > Table > Class Derived 1ms + → Page "none" not found + × @hpcc-js/dgrid > Table > #constructor() > new 1ms + → Page "none" not found + × @hpcc-js/dgrid > Table > #constructor() > classID 1ms + → Page "none" not found + × @hpcc-js/dgrid > Table > Table 1ms + → Page "none" not found + × @hpcc-js/dgrid > Table > renderMedium 1ms + → Page "none" not found + × @hpcc-js/dgrid > Table > #render() > Basic render 1ms + → Page "none" not found + × @hpcc-js/dgrid > Table > #render() > exit, enter, render 1ms + → Page "none" not found + +⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯ + +Vitest caught 1 unhandled error during the test run. +This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected. +⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ + Test Files 1 failed (1) + Tests 28 failed (28) + Errors 1 error + Start at 13:54:51 + Duration 283ms + + + FAIL Tests failed. Watching for file changes... + press h to show help, press q to quit + rerun x1 +c + RERUN x2 + + ✓ |browser| tests/dgrid.browser.spec.ts (28 tests) 207ms + + Test Files 1 passed (1) + Tests 28 passed (28) + Start at 13:55:02 + Duration 315ms + + + PASS Waiting for file changes... + press h to show help, press q to quit + rerun x2 +Cancelling test run. Press CTRL+c again to exit forcefully. + diff --git a/packages/dgrid/tsconfig.json b/packages/dgrid/tsconfig.json index 74e240a333..318ecdd23e 100644 --- a/packages/dgrid/tsconfig.json +++ b/packages/dgrid/tsconfig.json @@ -1,22 +1,24 @@ { - "extends": "../tsconfig.settings.json", "compilerOptions": { - "rootDir": "./src", - "outDir": "./lib-umd", - "declarationDir": "./types", + "rootDir": "src", + "module": "NodeNext", + "target": "ESNext", + "resolveJsonModule": true, + "emitDeclarationOnly": true, + "declaration": true, + "declarationDir": "types", + "strict": true, + "noImplicitAny": false, + "strictNullChecks": false, + "skipLibCheck": true, + "allowImportingTsExtensions": true, + "lib": [ + "DOM", + "ESNext", + "ES2020" + ] }, "include": [ - "./src/**/*" - ], - "references": [ - { - "path": "../common" - }, - { - "path": "../ddl-shim" - }, - { - "path": "../dgrid-shim" - }, + "./src/index.ts" ] } \ No newline at end of file diff --git a/packages/dgrid/vitest.workspace.ts b/packages/dgrid/vitest.workspace.ts new file mode 100644 index 0000000000..fa7bb0720b --- /dev/null +++ b/packages/dgrid/vitest.workspace.ts @@ -0,0 +1,6 @@ +import { defineWorkspace } from 'vitest/config'; +import baseWorkspace from '../../vitest.workspace.ts'; + +export default defineWorkspace([ + ...baseWorkspace +]) \ No newline at end of file diff --git a/packages/esbuild-plugins/src/remove-strict.ts b/packages/esbuild-plugins/src/remove-strict.ts index 8a764dd47f..d0523666ed 100644 --- a/packages/esbuild-plugins/src/remove-strict.ts +++ b/packages/esbuild-plugins/src/remove-strict.ts @@ -8,6 +8,7 @@ export function removeStrict(): Plugin { build.initialOptions.write = false; build.onEnd((result) => { result?.outputFiles?.forEach(file => { + console.log(file.path); if (file.path.endsWith(".js")) { const contents = file.text.replace(/"use strict";/g, ""); if (contents.indexOf("use strict") >= 0) { diff --git a/packages/markdown-it-plugins/.vscode/launch.json b/packages/markdown-it-plugins/.vscode/launch.json index 55300a72e6..c5e43dbf15 100644 --- a/packages/markdown-it-plugins/.vscode/launch.json +++ b/packages/markdown-it-plugins/.vscode/launch.json @@ -73,7 +73,7 @@ "name": "index.html", "request": "launch", "type": "msedge", - "url": "http://localhost:5174/${workspaceFolder}/index.html", + "url": "file:///${workspaceFolder}/index.html", "runtimeArgs": [ "--disable-web-security" ], diff --git a/packages/markdown-it-plugins/esbuild.js b/packages/markdown-it-plugins/esbuild.js index ee36c5c86d..610ba98555 100644 --- a/packages/markdown-it-plugins/esbuild.js +++ b/packages/markdown-it-plugins/esbuild.js @@ -1,9 +1,15 @@ import { nodeTpl, browserTpl } from "@hpcc-js/esbuild-plugins"; +import pkg from "./package.json" with { type: "json" }; // config --- await Promise.all([ nodeTpl("src/index.ts", "dist/index.node"), nodeTpl("src/loader.ts", "dist/loader.node", { supported: { "dynamic-import": true } }), nodeTpl("src/ecl-lang/index.ts", "dist/ecl-lang"), - browserTpl("src/index.ts", "dist/index") + browserTpl("src/index.ts", "dist/index", { + keepNames: true, + external: [ + ...Object.keys(pkg.dependencies), + ] + }) ]); diff --git a/packages/markdown-it-plugins/index.html b/packages/markdown-it-plugins/index.html index 2a07d12828..67702d5c13 100644 --- a/packages/markdown-it-plugins/index.html +++ b/packages/markdown-it-plugins/index.html @@ -1,22 +1,68 @@ - - + + - - - - Vite + TS + Home + + + -
-

min

-
-
-
-

full

-
- +
+ \ No newline at end of file diff --git a/packages/observablehq-compiler/.vscode/launch.json b/packages/observablehq-compiler/.vscode/launch.json index 3ee32e4122..7c2436335f 100644 --- a/packages/observablehq-compiler/.vscode/launch.json +++ b/packages/observablehq-compiler/.vscode/launch.json @@ -28,6 +28,20 @@ "${workspaceFolder}/**/*.js", "!**/node_modules/**" ], + }, + { + "name": "index.html", + "request": "launch", + "type": "msedge", + "url": "file:///${workspaceFolder}/index.html", + "runtimeArgs": [ + "--disable-web-security" + ], + "webRoot": "${workspaceFolder}", + "outFiles": [ + "${workspaceFolder}/**/*.js", + "!**/node_modules/**" + ] } ] } \ No newline at end of file diff --git a/packages/observablehq-compiler/.vscode/tasks.json b/packages/observablehq-compiler/.vscode/tasks.json index a046004a24..120545d06c 100644 --- a/packages/observablehq-compiler/.vscode/tasks.json +++ b/packages/observablehq-compiler/.vscode/tasks.json @@ -1,17 +1,6 @@ { "version": "2.0.0", "tasks": [ - { - "label": "check-watch", - "type": "npm", - "script": "check-watch", - "problemMatcher": [ - "$tsc-watch" - ], - "presentation": { - "group": "group-build" - } - }, { "label": "gen-types-watch", "type": "npm", @@ -32,21 +21,11 @@ "group": "group-build" } }, - { - "type": "npm", - "label": "test-serve", - "script": "test-serve", - "presentation": { - "group": "group-build" - } - }, { "label": "build", "dependsOn": [ - "check-watch", "gen-types-watch", "bundle-watch", - "test-serve" ], "group": { "kind": "build", diff --git a/packages/observablehq-compiler/index.html b/packages/observablehq-compiler/index.html index 573ce667ae..ed07c93d27 100644 --- a/packages/observablehq-compiler/index.html +++ b/packages/observablehq-compiler/index.html @@ -1,21 +1,53 @@ - + - - @hpcc-js/observable-md - - - - + Home + + + + -
-
- + const notebook = omd2notebook(md); + const compiled = await compile(notebook); + + const library = new Library(); + const runtime = new Runtime(library); + + const placeholder = document.getElementById("placeholder"); + const main = compiled(runtime, name => { + if (placeholder) { + const div = globalThis?.document.createElement("div"); + placeholder.appendChild(div); + return new Inspector(div); + } + return { + pending() { }, + fulfilled(value) { console.info("fulfilled", name, value); }, + rejected(error) { console.error("rejected", name, error); }, + }; + }); + \ No newline at end of file diff --git a/packages/observablehq-compiler/package.json b/packages/observablehq-compiler/package.json index 39eb14bf32..e3abf619cb 100644 --- a/packages/observablehq-compiler/package.json +++ b/packages/observablehq-compiler/package.json @@ -28,6 +28,7 @@ "build": "run-p gen-types bundle", "stamp": "node ../../node_modules/@hpcc-js/bundle/src/stamp.js", "lint": "eslint ./src", + "lint-fix": "eslint --fix src/**/*.ts", "docs": "typedoc --options tdoptions.json .", "test-browser": "vitest run --project browser", "test-node": "vitest run --project node", diff --git a/packages/util/package.json b/packages/util/package.json index ba154bddd1..34adefe561 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -34,7 +34,7 @@ "update-major": "npx -y npm-check-updates -u" }, "dependencies": { - "@xmldom/xmldom": "0.9.4" + "@xmldom/xmldom": "0.9.5" }, "devDependencies": { "@hpcc-js/bundle": "^2.12.0", diff --git a/resources/hpcc-systems-dark.svg b/resources/hpcc-systems-dark.svg new file mode 100644 index 0000000000..1484707bcb --- /dev/null +++ b/resources/hpcc-systems-dark.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/hpcc-systems.svg b/resources/hpcc-systems.svg new file mode 100644 index 0000000000..316847edf3 --- /dev/null +++ b/resources/hpcc-systems.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 2de489cc51..d43fc45e25 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -1,10 +1,11 @@ -import { defineWorkspace } from 'vitest/config' +import { configDefaults, defineWorkspace } from 'vitest/config' export default defineWorkspace([ { test: { name: 'node', exclude: [ + ...configDefaults.exclude, '**/*.browser.spec.{ts,js}', "**/node_modules/**", "**/.nx/**", @@ -13,12 +14,15 @@ export default defineWorkspace([ "**/demos/**", "**/src/**", ], - environment: 'node' + environment: 'node', + setupFiles: [] } }, { test: { name: 'browser', exclude: [ + ...configDefaults.exclude, + "@hpcc-js/dgrid-shim", '**/*.node.spec.{ts,js}', "**/node_modules/**", "**/.nx/**", @@ -39,6 +43,7 @@ export default defineWorkspace([ }, screenshotFailures: false }, + setupFiles: [] } } ])