Skip to content
Open
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
11c5aa3
fix(datagrid-web): make status checks runtime-safe across builds
samuelreichert Mar 3, 2026
06c6a8c
chore(build): add vite build scaffolding and remove vitest bits
samuelreichert Mar 3, 2026
0d1e67d
chore(badge-web): remove unused vite config variants
samuelreichert Mar 3, 2026
f1d3a49
chore(badge-web): standardize vite build and benchmark scripts
samuelreichert Mar 3, 2026
3597c1c
refactor(build): share vite widget base config across badge and datagrid
samuelreichert Mar 3, 2026
31db2f7
refactor(build): simplify widget Vite config by removing redundant op…
samuelreichert Mar 3, 2026
3841aa6
chore(rich-text-web): update build scripts for Vite integration and r…
samuelreichert Mar 3, 2026
e17b221
chore(benchmark): enhance MPK size tracking and performance reporting…
samuelreichert Mar 3, 2026
a915145
chore(benchmark): add cleanBuildOutput function to manage build outpu…
samuelreichert Mar 4, 2026
c0b4ecb
refactor(build): simplify inferPrimaryRuntimeFormat function by remov…
samuelreichert Mar 4, 2026
96f6fa0
chore(vite): update shared vite.config.ts for improved alias resoluti…
samuelreichert Mar 4, 2026
71e6f98
chore: add Vite configuration and build scripts for multiple widgets
samuelreichert Mar 4, 2026
9596ddf
refactor: simplify build scripts in pluggable widgets
samuelreichert Mar 4, 2026
32ebbbf
chore: add Vite build scripts and benchmark commands for remaining wi…
samuelreichert Mar 4, 2026
c92ac41
chore: update pnpm-lock
samuelreichert Mar 4, 2026
ac402eb
refactor: update build configurations for pluggable widgets to use sh…
samuelreichert Mar 9, 2026
ce2b56c
refactor(vite-web-widgets): split shared vite config into domain modules
samuelreichert Mar 9, 2026
dddd6d4
feat(vite-web-widgets): deploy built MPK to MX project widgets folder
samuelreichert Mar 9, 2026
7b5b7df
chore(vite): add dev:vite watch script to pluggable widget packages
samuelreichert Mar 9, 2026
995a3ab
refactor(vite-web-widgets): improve directory handling and error mana…
samuelreichert Mar 9, 2026
e70d708
chore(benchmark): improve code readability
samuelreichert Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
},
"devDependencies": {
"husky": "^8.0.3",
"turbo": "^2.5.4"
"turbo": "^2.5.4",
"vite": "^7.3.1"
},
"prettier": "@mendix/prettier-config-web-widgets",
"packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264",
Expand Down Expand Up @@ -72,7 +73,8 @@
"react-dom": ">=18.0.0 <19.0.0",
"rollup": "catalog:",
"ts-node": "10.9.2",
"typescript": ">5.8.0"
"typescript": ">5.8.0",
"vite>rollup": "^4.59.0"
},
"patchedDependencies": {
"mime-types": "patches/mime-types.patch",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "accessibility-helper-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/accessibility-helper-web",
"build": "pluggable-widgets-tools build:ts",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:ts",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "AccessibilityHelper" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/accordion-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
"branchName": "accordion-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/accordion-web",
"build": "pluggable-widgets-tools build:web",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:web",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/accordion-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "Accordion" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/area-chart-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "area-chart-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/area-chart-web",
"build": "pluggable-widgets-tools build:ts",
"build:vite": "vite build --config vite.config.js",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:web",
"format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/area-chart-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "AreaChart" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/badge-button-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "badge-button-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/badge-button-web",
"build": "cross-env MPKOUTPUT=BadgeButton.mpk pluggable-widgets-tools build:ts",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"create-translation": "rui-create-translation",
"dev": "cross-env MPKOUTPUT=BadgeButton.mpk pluggable-widgets-tools start:ts",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/badge-button-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "BadgeButton" });
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/badge-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "badge-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/badge-web",
"build": "cross-env MPKOUTPUT=Badge.mpk pluggable-widgets-tools build:web",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"create-translation": "rui-create-translation",
"dev": "cross-env MPKOUTPUT=Badge.mpk pluggable-widgets-tools start:web",
Expand All @@ -52,6 +54,7 @@
"@mendix/prettier-config-web-widgets": "workspace:*",
"@mendix/run-e2e": "workspace:^*",
"@mendix/widget-plugin-platform": "workspace:*",
"archiver": "^6.0.0",
"cross-env": "^7.0.3"
}
}
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/badge-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "Badge" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/bar-chart-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "bar-chart-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/bar-chart-web",
"build": "pluggable-widgets-tools build:ts",
"build:vite": "vite build --config vite.config.js",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:web",
"format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/bar-chart-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "BarChart" });
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
"branchName": "barcode-generator-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/barcode-generator-web",
"build": "pluggable-widgets-tools build:web",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:web",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "BarcodeGenerator" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/barcode-scanner-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "barcode-scanner-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/barcode-scanner-web",
"build": "pluggable-widgets-tools build:web",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:web",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/barcode-scanner-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "BarcodeScanner" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/bubble-chart-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "bubble-chart-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/bubble-chart-web",
"build": "pluggable-widgets-tools build:ts",
"build:vite": "vite build --config vite.config.js",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:web",
"format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/bubble-chart-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "BubbleChart" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/calendar-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "calendar-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/calendar-web",
"build": "cross-env MPKOUTPUT=Calendar.mpk pluggable-widgets-tools build:web",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"create-translation": "rui-create-translation",
"dev": "cross-env MPKOUTPUT=Calendar.mpk pluggable-widgets-tools start:web",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/calendar-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "Calendar" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/carousel-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "carousel-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/carousel-web",
"build": "cross-env MPKOUTPUT=Carousel.mpk pluggable-widgets-tools build:web",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"create-translation": "rui-create-translation",
"dev": "cross-env MPKOUTPUT=Carousel.mpk pluggable-widgets-tools start:web",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/carousel-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "Carousel" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/chart-playground-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "chart-playground-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/chart-playground-web",
"build": "pluggable-widgets-tools build:web",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:web",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/chart-playground-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "ChartPlayground" });
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@
"branchName": "checkbox-radio-selection-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/checkbox-radio-selection-web",
"prebuild": "rui-create-translation",
"build": "pluggable-widgets-tools build:web",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:web",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "CheckboxRadioSelection" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/color-picker-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
"branchName": "color-picker-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/color-picker-web",
"build": "cross-env MPKOUTPUT=ColorPicker.mpk pluggable-widgets-tools build:web",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"create-translation": "rui-create-translation",
"dev": "cross-env MPKOUTPUT=ColorPicker.mpk pluggable-widgets-tools start:web",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/color-picker-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "ColorPicker" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/column-chart-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "column-chart-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/column-chart-web",
"build": "pluggable-widgets-tools build:ts",
"build:vite": "vite build --config vite.config.js",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:web",
"e2e": "run-e2e ci",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/column-chart-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "ColumnChart" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/combobox-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@
"branchName": "combobox-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/combobox-web",
"prebuild": "rui-create-translation",
"build": "pluggable-widgets-tools build:web",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:web",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/combobox-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "Combobox" });
2 changes: 2 additions & 0 deletions packages/pluggableWidgets/custom-chart-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@
"branchName": "custom-chart-web"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/custom-chart-web",
"build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 pluggable-widgets-tools build:web",
"build:vite": "vite build --config vite.config.js",
"create-gh-release": "rui-create-gh-release",
"dev": "pluggable-widgets-tools start:web",
"e2e": "echo 'FIXME: Finish custom-chart-web e2e test migration'",
Expand Down
3 changes: 3 additions & 0 deletions packages/pluggableWidgets/custom-chart-web/vite.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "CustomChart" });
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "datagrid-date-filter-web/data-widgets-3.0"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-date-filter-web",
"build": "pluggable-widgets-tools build:ts",
"build:vite": "vite build --config vite.config.js",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:ts",
"e2e": "run-e2e ci",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "DatagridDateFilter" });
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "datagrid-dropdown-filter-web/dw3.0-dropdown-rework"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-dropdown-filter-web",
"build": "pluggable-widgets-tools build:ts",
"build:vite": "vite build --config vite.config.js",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:ts",
"e2e": "run-e2e ci",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "DatagridDropdownFilter" });
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "datagrid-number-filter-web/data-widgets-3.0"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-number-filter-web",
"build": "pluggable-widgets-tools build:ts",
"build:vite": "vite build --config vite.config.js",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:ts",
"e2e": "run-e2e ci",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "DatagridNumberFilter" });
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "datagrid-text-filter-web/data-widgets-3.0"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-text-filter-web",
"build": "pluggable-widgets-tools build:ts",
"build:vite": "vite build --config vite.config.js",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:ts",
"e2e": "run-e2e ci",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config";

export default createWidgetViteConfig({ widgetName: "DatagridTextFilter" });
5 changes: 4 additions & 1 deletion packages/pluggableWidgets/datagrid-web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"branchName": "datagrid-web/data-widgets-3.0"
},
"scripts": {
"benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-web",
"build": "pluggable-widgets-tools build:ts",
"build:vite": "vite build --config vite.config.js",
"create-translation": "rui-create-translation",
"dev": "pluggable-widgets-tools start:ts",
"e2e": "run-e2e ci",
Expand Down Expand Up @@ -63,6 +65,7 @@
"@mendix/pluggable-widgets-tools": "*",
"@mendix/prettier-config-web-widgets": "workspace:*",
"@mendix/run-e2e": "workspace:*",
"@mendix/widget-plugin-test-utils": "workspace:*"
"@mendix/widget-plugin-test-utils": "workspace:*",
"archiver": "^6.0.0"
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { isAvailable } from "@mendix/widget-plugin-platform/framework/is-available";
import Big from "big.js";
import { DynamicValue, ListValue, ObjectItem, ValueStatus } from "mendix";
import { DynamicValue, ListValue, ObjectItem } from "mendix";
import { createNanoEvents, Emitter, Unsubscribe } from "nanoevents";
import { ColumnsType, ShowContentAsEnum } from "../../../typings/DatagridProps";

Expand Down Expand Up @@ -30,6 +30,8 @@ type ReadersByType = Record<ShowContentAsEnum, ValueReader>;
type RowReader = (item: ObjectItem) => RowData;

type ColumnReader = (props: ColumnsType) => HeaderDefinition;
type GetterStatus = { status: string };
type ValueGetter = { get: (item: unknown) => GetterStatus };

interface ExportRequestEvents {
/** Emitted once when request is started. */
Expand Down Expand Up @@ -67,7 +69,7 @@ export class DSExportRequest {
private totalCount: number | undefined = undefined;
private shouldSendHeaders = false;
private emitter: Emitter<ExportRequestEvents>;
private getters: Array<{ get: (item: unknown) => { status: ValueStatus } }> = [];
private getters: ValueGetter[] = [];
private readController: AbortController | undefined;

constructor(params: RequestParams) {
Expand Down Expand Up @@ -248,15 +250,14 @@ export class DSExportRequest {
this.emitter.events = {};
}

private getGetters(columns: ColumnsType[]): Array<{ get: (item: unknown) => { status: ValueStatus } }> {
private getGetters(columns: ColumnsType[]): ValueGetter[] {
return columns.map(col => {
let prop =
col.showContentAs === "attribute"
? col.attribute
: col.showContentAs === "dynamicText"
? col.dynamicText
: col.exportValue;
prop ??= { get: () => ({ status: ValueStatus.Available, value: "n/a" }) };
const prop = (col.showContentAs === "attribute"
? col.attribute
: col.showContentAs === "dynamicText"
? col.dynamicText
: col.exportValue) ?? { get: () => ({ status: "available", value: "n/a" }) };

return prop;
});
}
Expand Down
Loading
Loading