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 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" 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); 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 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)