From ddaca61d2400a120c96ed34a09b80dced791e614 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Wed, 4 Mar 2026 17:50:40 +0100 Subject: [PATCH 1/5] fix(document-viewer-web): move document viewer directories --- .../{ => src}/assets/DocViewer.woff2 | Bin .../{ => src}/components/BaseViewer.tsx | 2 +- .../{ => src}/components/DocxViewer.scss | 0 .../{ => src}/components/DocxViewer.tsx | 0 .../{ => src}/components/ErrorViewer.tsx | 0 .../{ => src}/components/ExcelViewer.tsx | 0 .../{ => src}/components/ImageViewer.tsx | 0 .../{ => src}/components/PDFViewer.tsx | 8 ++++---- .../{ => src}/components/TextViewer.tsx | 0 .../{ => src}/components/documentRenderer.ts | 2 +- .../{ => src}/components/index.ts | 0 .../{ => src}/ui/documentViewer.scss | 0 .../{ => src}/ui/documentViewerIcons.scss | 0 .../{ => src}/utils/dimension.ts | 8 ++++---- .../document-viewer-web/{ => src}/utils/helpers.ts | 0 .../{ => src}/utils/useRendererSelector.ts | 2 +- .../{ => src}/utils/useZoomScale.ts | 0 17 files changed, 11 insertions(+), 11 deletions(-) rename packages/pluggableWidgets/document-viewer-web/{ => src}/assets/DocViewer.woff2 (100%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/components/BaseViewer.tsx (97%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/components/DocxViewer.scss (100%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/components/DocxViewer.tsx (100%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/components/ErrorViewer.tsx (100%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/components/ExcelViewer.tsx (100%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/components/ImageViewer.tsx (100%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/components/PDFViewer.tsx (96%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/components/TextViewer.tsx (100%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/components/documentRenderer.ts (87%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/components/index.ts (100%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/ui/documentViewer.scss (100%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/ui/documentViewerIcons.scss (100%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/utils/dimension.ts (95%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/utils/helpers.ts (100%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/utils/useRendererSelector.ts (97%) rename packages/pluggableWidgets/document-viewer-web/{ => src}/utils/useZoomScale.ts (100%) diff --git a/packages/pluggableWidgets/document-viewer-web/assets/DocViewer.woff2 b/packages/pluggableWidgets/document-viewer-web/src/assets/DocViewer.woff2 similarity index 100% rename from packages/pluggableWidgets/document-viewer-web/assets/DocViewer.woff2 rename to packages/pluggableWidgets/document-viewer-web/src/assets/DocViewer.woff2 diff --git a/packages/pluggableWidgets/document-viewer-web/components/BaseViewer.tsx b/packages/pluggableWidgets/document-viewer-web/src/components/BaseViewer.tsx similarity index 97% rename from packages/pluggableWidgets/document-viewer-web/components/BaseViewer.tsx rename to packages/pluggableWidgets/document-viewer-web/src/components/BaseViewer.tsx index cea37421db..e395ca1968 100644 --- a/packages/pluggableWidgets/document-viewer-web/components/BaseViewer.tsx +++ b/packages/pluggableWidgets/document-viewer-web/src/components/BaseViewer.tsx @@ -1,6 +1,6 @@ import { CSSProperties, Fragment, PropsWithChildren, ReactElement, ReactNode, useCallback } from "react"; import { useZoomScale } from "../utils/useZoomScale"; -import { DocumentViewerContainerProps } from "typings/DocumentViewerProps"; +import { DocumentViewerContainerProps } from "../../typings/DocumentViewerProps"; import { downloadFile } from "../utils/helpers"; type FileFormat = { diff --git a/packages/pluggableWidgets/document-viewer-web/components/DocxViewer.scss b/packages/pluggableWidgets/document-viewer-web/src/components/DocxViewer.scss similarity index 100% rename from packages/pluggableWidgets/document-viewer-web/components/DocxViewer.scss rename to packages/pluggableWidgets/document-viewer-web/src/components/DocxViewer.scss diff --git a/packages/pluggableWidgets/document-viewer-web/components/DocxViewer.tsx b/packages/pluggableWidgets/document-viewer-web/src/components/DocxViewer.tsx similarity index 100% rename from packages/pluggableWidgets/document-viewer-web/components/DocxViewer.tsx rename to packages/pluggableWidgets/document-viewer-web/src/components/DocxViewer.tsx diff --git a/packages/pluggableWidgets/document-viewer-web/components/ErrorViewer.tsx b/packages/pluggableWidgets/document-viewer-web/src/components/ErrorViewer.tsx similarity index 100% rename from packages/pluggableWidgets/document-viewer-web/components/ErrorViewer.tsx rename to packages/pluggableWidgets/document-viewer-web/src/components/ErrorViewer.tsx diff --git a/packages/pluggableWidgets/document-viewer-web/components/ExcelViewer.tsx b/packages/pluggableWidgets/document-viewer-web/src/components/ExcelViewer.tsx similarity index 100% rename from packages/pluggableWidgets/document-viewer-web/components/ExcelViewer.tsx rename to packages/pluggableWidgets/document-viewer-web/src/components/ExcelViewer.tsx diff --git a/packages/pluggableWidgets/document-viewer-web/components/ImageViewer.tsx b/packages/pluggableWidgets/document-viewer-web/src/components/ImageViewer.tsx similarity index 100% rename from packages/pluggableWidgets/document-viewer-web/components/ImageViewer.tsx rename to packages/pluggableWidgets/document-viewer-web/src/components/ImageViewer.tsx diff --git a/packages/pluggableWidgets/document-viewer-web/components/PDFViewer.tsx b/packages/pluggableWidgets/document-viewer-web/src/components/PDFViewer.tsx similarity index 96% rename from packages/pluggableWidgets/document-viewer-web/components/PDFViewer.tsx rename to packages/pluggableWidgets/document-viewer-web/src/components/PDFViewer.tsx index b61325960a..1f3b7da0a6 100644 --- a/packages/pluggableWidgets/document-viewer-web/components/PDFViewer.tsx +++ b/packages/pluggableWidgets/document-viewer-web/src/components/PDFViewer.tsx @@ -1,4 +1,4 @@ -import { Fragment, useCallback, useEffect, useMemo, useState } from "react"; +import { ChangeEvent, FormEvent, Fragment, KeyboardEvent, useCallback, useEffect, useMemo, useState } from "react"; import { Document, Page, pdfjs } from "react-pdf"; import "react-pdf/dist/Page/AnnotationLayer.css"; import "react-pdf/dist/Page/TextLayer.css"; @@ -42,7 +42,7 @@ const PDFViewer: DocRendererElement = (props: DocumentRendererProps) => { downloadFile(file.value?.uri); }, [file]); - const handlePageInputChange = useCallback((event: React.ChangeEvent) => { + const handlePageInputChange = useCallback((event: ChangeEvent) => { const value = event.target.value; // Allow only numbers and empty string if (value === "" || /^\d+$/.test(value)) { @@ -61,7 +61,7 @@ const PDFViewer: DocRendererElement = (props: DocumentRendererProps) => { }, [pageInputValue, numberOfPages, currentPage]); const handlePageInputSubmit = useCallback( - (event: React.FormEvent) => { + (event: FormEvent) => { event.preventDefault(); validateAndSetPage(); }, @@ -73,7 +73,7 @@ const PDFViewer: DocRendererElement = (props: DocumentRendererProps) => { }, [validateAndSetPage]); const handlePageInputKeyDown = useCallback( - (event: React.KeyboardEvent) => { + (event: KeyboardEvent) => { if (event.key === "Enter") { event.preventDefault(); validateAndSetPage(); diff --git a/packages/pluggableWidgets/document-viewer-web/components/TextViewer.tsx b/packages/pluggableWidgets/document-viewer-web/src/components/TextViewer.tsx similarity index 100% rename from packages/pluggableWidgets/document-viewer-web/components/TextViewer.tsx rename to packages/pluggableWidgets/document-viewer-web/src/components/TextViewer.tsx diff --git a/packages/pluggableWidgets/document-viewer-web/components/documentRenderer.ts b/packages/pluggableWidgets/document-viewer-web/src/components/documentRenderer.ts similarity index 87% rename from packages/pluggableWidgets/document-viewer-web/components/documentRenderer.ts rename to packages/pluggableWidgets/document-viewer-web/src/components/documentRenderer.ts index dd2ad0fe48..3d8c42e3a0 100644 --- a/packages/pluggableWidgets/document-viewer-web/components/documentRenderer.ts +++ b/packages/pluggableWidgets/document-viewer-web/src/components/documentRenderer.ts @@ -1,5 +1,5 @@ import { FC } from "react"; -import { DocumentViewerContainerProps } from "../typings/DocumentViewerProps"; +import { DocumentViewerContainerProps } from "../../typings/DocumentViewerProps"; export declare const enum DocumentStatus { available = "available", diff --git a/packages/pluggableWidgets/document-viewer-web/components/index.ts b/packages/pluggableWidgets/document-viewer-web/src/components/index.ts similarity index 100% rename from packages/pluggableWidgets/document-viewer-web/components/index.ts rename to packages/pluggableWidgets/document-viewer-web/src/components/index.ts diff --git a/packages/pluggableWidgets/document-viewer-web/ui/documentViewer.scss b/packages/pluggableWidgets/document-viewer-web/src/ui/documentViewer.scss similarity index 100% rename from packages/pluggableWidgets/document-viewer-web/ui/documentViewer.scss rename to packages/pluggableWidgets/document-viewer-web/src/ui/documentViewer.scss diff --git a/packages/pluggableWidgets/document-viewer-web/ui/documentViewerIcons.scss b/packages/pluggableWidgets/document-viewer-web/src/ui/documentViewerIcons.scss similarity index 100% rename from packages/pluggableWidgets/document-viewer-web/ui/documentViewerIcons.scss rename to packages/pluggableWidgets/document-viewer-web/src/ui/documentViewerIcons.scss diff --git a/packages/pluggableWidgets/document-viewer-web/utils/dimension.ts b/packages/pluggableWidgets/document-viewer-web/src/utils/dimension.ts similarity index 95% rename from packages/pluggableWidgets/document-viewer-web/utils/dimension.ts rename to packages/pluggableWidgets/document-viewer-web/src/utils/dimension.ts index e705c6f41f..f3c7df8191 100644 --- a/packages/pluggableWidgets/document-viewer-web/utils/dimension.ts +++ b/packages/pluggableWidgets/document-viewer-web/src/utils/dimension.ts @@ -1,11 +1,11 @@ import { CSSProperties } from "react"; import { - WidthUnitEnum, HeightUnitEnum, - MinHeightUnitEnum, MaxHeightUnitEnum, - OverflowYEnum -} from "../typings/DocumentViewerProps"; + MinHeightUnitEnum, + OverflowYEnum, + WidthUnitEnum +} from "../../typings/DocumentViewerProps"; export interface DimensionContainerProps { widthUnit: WidthUnitEnum; diff --git a/packages/pluggableWidgets/document-viewer-web/utils/helpers.ts b/packages/pluggableWidgets/document-viewer-web/src/utils/helpers.ts similarity index 100% rename from packages/pluggableWidgets/document-viewer-web/utils/helpers.ts rename to packages/pluggableWidgets/document-viewer-web/src/utils/helpers.ts diff --git a/packages/pluggableWidgets/document-viewer-web/utils/useRendererSelector.ts b/packages/pluggableWidgets/document-viewer-web/src/utils/useRendererSelector.ts similarity index 97% rename from packages/pluggableWidgets/document-viewer-web/utils/useRendererSelector.ts rename to packages/pluggableWidgets/document-viewer-web/src/utils/useRendererSelector.ts index 09adade227..da2cd263b9 100644 --- a/packages/pluggableWidgets/document-viewer-web/utils/useRendererSelector.ts +++ b/packages/pluggableWidgets/document-viewer-web/src/utils/useRendererSelector.ts @@ -8,7 +8,7 @@ import { DocumentStatusEvent } from "../components/documentRenderer"; import ErrorViewer from "../components/ErrorViewer"; -import { DocumentViewerContainerProps } from "../typings/DocumentViewerProps"; +import { DocumentViewerContainerProps } from "../../typings/DocumentViewerProps"; interface DocumentRenderer { CurrentRenderer: DocRendererElement; props: DocumentRendererProps; diff --git a/packages/pluggableWidgets/document-viewer-web/utils/useZoomScale.ts b/packages/pluggableWidgets/document-viewer-web/src/utils/useZoomScale.ts similarity index 100% rename from packages/pluggableWidgets/document-viewer-web/utils/useZoomScale.ts rename to packages/pluggableWidgets/document-viewer-web/src/utils/useZoomScale.ts From 6a15156da767001d672e5a9682a595d01bee9836 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Wed, 4 Mar 2026 17:50:58 +0100 Subject: [PATCH 2/5] fix(document-viewer-web): update import paths for consistency --- .../src/DocumentViewer.editorPreview.tsx | 10 +++++----- .../document-viewer-web/src/DocumentViewer.tsx | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/pluggableWidgets/document-viewer-web/src/DocumentViewer.editorPreview.tsx b/packages/pluggableWidgets/document-viewer-web/src/DocumentViewer.editorPreview.tsx index 817449e8df..82b1da28f6 100644 --- a/packages/pluggableWidgets/document-viewer-web/src/DocumentViewer.editorPreview.tsx +++ b/packages/pluggableWidgets/document-viewer-web/src/DocumentViewer.editorPreview.tsx @@ -1,10 +1,10 @@ import { ReactElement } from "react"; -import { DocumentViewerPreviewProps } from "typings/DocumentViewerProps"; -import "../ui/documentViewer.scss"; -import "../ui/documentViewerIcons.scss"; +import { DocumentViewerPreviewProps } from "../typings/DocumentViewerProps"; +import "./ui/documentViewer.scss"; +import "./ui/documentViewerIcons.scss"; import classNames from "classnames"; -import { constructWrapperStyle } from "../utils/dimension"; -import { BaseControlViewer } from "components/BaseViewer"; +import { constructWrapperStyle } from "./utils/dimension"; +import { BaseControlViewer } from "./components/BaseViewer"; export const preview = (props: DocumentViewerPreviewProps): ReactElement => { const { file } = props; diff --git a/packages/pluggableWidgets/document-viewer-web/src/DocumentViewer.tsx b/packages/pluggableWidgets/document-viewer-web/src/DocumentViewer.tsx index 20f7bcd91b..e05ee742a5 100644 --- a/packages/pluggableWidgets/document-viewer-web/src/DocumentViewer.tsx +++ b/packages/pluggableWidgets/document-viewer-web/src/DocumentViewer.tsx @@ -1,10 +1,10 @@ import classNames from "classnames"; import { ReactElement } from "react"; import { DocumentViewerContainerProps } from "../typings/DocumentViewerProps"; -import "../ui/documentViewer.scss"; -import "../ui/documentViewerIcons.scss"; -import { constructWrapperStyle } from "../utils/dimension"; -import { useRendererSelector } from "../utils/useRendererSelector"; +import "./ui/documentViewer.scss"; +import "./ui/documentViewerIcons.scss"; +import { constructWrapperStyle } from "./utils/dimension"; +import { useRendererSelector } from "./utils/useRendererSelector"; export default function DocumentViewer(props: DocumentViewerContainerProps): ReactElement { const { CurrentRenderer, props: rendererProps } = useRendererSelector(props); From ee27e43ea46cf6da1791033c0b37dacca9379dce Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Thu, 5 Mar 2026 15:12:18 +0100 Subject: [PATCH 3/5] fix(document-viewer-web): add ESLint config dependency --- packages/pluggableWidgets/document-viewer-web/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/pluggableWidgets/document-viewer-web/package.json b/packages/pluggableWidgets/document-viewer-web/package.json index 7d974a604d..4d914e44cf 100644 --- a/packages/pluggableWidgets/document-viewer-web/package.json +++ b/packages/pluggableWidgets/document-viewer-web/package.json @@ -56,6 +56,7 @@ "@babel/plugin-transform-class-properties": "^7.27.1", "@babel/plugin-transform-private-methods": "^7.27.1", "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@mendix/eslint-config-web-widgets": "workspace:*", "@mendix/pluggable-widgets-tools": "*", "@mendix/rollup-web-widgets": "workspace:*", "@rollup/plugin-replace": "^6.0.2" From 146a27d816220dc9c489d46eb564503e3764a6ca Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Thu, 5 Mar 2026 19:27:16 +0100 Subject: [PATCH 4/5] chore: update pnpm-lock --- pnpm-lock.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 263717114a..ee6b7ac7c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1370,6 +1370,9 @@ importers: '@babel/plugin-transform-private-property-in-object': specifier: ^7.27.1 version: 7.27.1(@babel/core@7.28.4) + '@mendix/eslint-config-web-widgets': + specifier: workspace:* + version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) From 8d76000976e355610541974fce041d9997b86c64 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Thu, 5 Mar 2026 19:33:01 +0100 Subject: [PATCH 5/5] chore: update changelog --- packages/pluggableWidgets/document-viewer-web/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/pluggableWidgets/document-viewer-web/CHANGELOG.md b/packages/pluggableWidgets/document-viewer-web/CHANGELOG.md index 177481c1a1..b2800d5a62 100644 --- a/packages/pluggableWidgets/document-viewer-web/CHANGELOG.md +++ b/packages/pluggableWidgets/document-viewer-web/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +### Changed + +- We changed the internal structure of the widget + ## [1.2.0] - 2025-10-29 ### Added