@dexteel/mesf-core 7.15.2 → 7.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish-to-npm.yaml +17 -6
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +29 -0
- package/CLAUDE.md +27 -15
- package/README.md +69 -12
- package/dist/MESFMain.d.ts +2 -1
- package/dist/components/navigation/NavbarMenuBar.d.ts +25 -0
- package/dist/globalContext.d.ts +2 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +222 -27
- package/dist/index.esm.js.map +1 -1
- package/dist/pages/trendings-v2/components/chart/models/TrendingModelsV2.d.ts +1 -0
- package/package.json +1 -1
|
@@ -7,28 +7,39 @@ on:
|
|
|
7
7
|
- next
|
|
8
8
|
- next-ng
|
|
9
9
|
- v7
|
|
10
|
+
workflow_dispatch: # Allow manual trigger from any branch
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
id-token: write # Required for npm Trusted Publishing (OIDC)
|
|
15
|
+
|
|
10
16
|
jobs:
|
|
11
17
|
publish:
|
|
12
|
-
if:
|
|
18
|
+
if: >-
|
|
19
|
+
github.event_name == 'workflow_dispatch' ||
|
|
20
|
+
(github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'release-please'))
|
|
13
21
|
runs-on: ubuntu-latest
|
|
14
22
|
steps:
|
|
15
23
|
- uses: actions/checkout@v4
|
|
16
24
|
- name: Setup Node.js
|
|
17
25
|
uses: actions/setup-node@v4
|
|
18
26
|
with:
|
|
19
|
-
node-version: 'lts/
|
|
20
|
-
|
|
27
|
+
node-version: 'lts/jod' # Node 22 LTS
|
|
28
|
+
- name: Upgrade npm for Trusted Publishing
|
|
29
|
+
run: |
|
|
30
|
+
npm install -g npm@latest
|
|
31
|
+
npm --version
|
|
32
|
+
npm config set registry https://registry.npmjs.org/
|
|
21
33
|
- name: Install dependencies
|
|
22
34
|
run: npm install
|
|
23
35
|
- name: Build
|
|
24
36
|
run: npm run build
|
|
25
37
|
- name: Publish to npm
|
|
26
38
|
run: npm publish
|
|
27
|
-
|
|
28
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
39
|
+
# No NODE_AUTH_TOKEN needed — uses OIDC Trusted Publishing
|
|
29
40
|
- name: Read package.json version
|
|
30
41
|
id: package-version
|
|
31
|
-
run: echo "
|
|
42
|
+
run: echo "version=$(node -p "require('./package.json').version")" >> "$GITHUB_OUTPUT"
|
|
32
43
|
- name: Push Notification to Google Workspace
|
|
33
44
|
run: |
|
|
34
45
|
curl -X POST "https://chat.googleapis.com/v1/spaces/AAAA4hvxkZc/messages?key=AIzaSyDdI0hCZtE6vySjMm-WEfRq3CPzqKqqsHI&token=_DSEU_3n-CC5ZDK2nKNfabm2X_M_IcIAqQxenkYgDZk" \
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [7.16.1](https://github.com/dexteel/mesf-core-frontend/compare/@dexteel/mesf-core-v7.16.0...@dexteel/mesf-core-v7.16.1) (2026-03-24)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* migrate npm publish to OIDC Trusted Publishing and update docs ([e759e41](https://github.com/dexteel/mesf-core-frontend/commit/e759e41ed5ccaa535fc79a92f162e934b46a60ad))
|
|
9
|
+
|
|
10
|
+
## [7.16.0](https://github.com/dexteel/mesf-core-frontend/compare/@dexteel/mesf-core-v7.15.4...@dexteel/mesf-core-v7.16.0) (2026-03-24)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* enhance navbar experience ([06626e9](https://github.com/dexteel/mesf-core-frontend/commit/06626e9b2fe1b93127771af2eb1dc74b1c2c6cf3))
|
|
16
|
+
|
|
17
|
+
## [7.15.4](https://github.com/dexteel/mesf-core-frontend/compare/@dexteel/mesf-core-v7.15.3...@dexteel/mesf-core-v7.15.4) (2026-03-24)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* share reusable navbar menubar behavior ([#628](https://github.com/dexteel/mesf-core-frontend/issues/628)) ([3156cf2](https://github.com/dexteel/mesf-core-frontend/commit/3156cf28acfa9d2dc0cffde9ab779b14c59d6c4f))
|
|
23
|
+
|
|
24
|
+
## [7.15.3](https://github.com/dexteel/mesf-core-frontend/compare/@dexteel/mesf-core-v7.15.2...@dexteel/mesf-core-v7.15.3) (2026-03-10)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
* **Tags Tree:** Use ParentTagFolderId or ParentTagId. ([9528fdc](https://github.com/dexteel/mesf-core-frontend/commit/9528fdcc1a8aa865780ddda0dd6ad9946def2674))
|
|
30
|
+
* **Trending V2:** Fix infinite loading when views is empty. ([84a79b8](https://github.com/dexteel/mesf-core-frontend/commit/84a79b8cd53608c0e39bff01e01efb01c82fa5d8))
|
|
31
|
+
|
|
3
32
|
## [7.15.2](https://github.com/dexteel/mesf-core-frontend/compare/@dexteel/mesf-core-v7.15.1...@dexteel/mesf-core-v7.15.2) (2026-03-06)
|
|
4
33
|
|
|
5
34
|
|
package/CLAUDE.md
CHANGED
|
@@ -11,7 +11,8 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
|
11
11
|
|
|
12
12
|
### Code Quality
|
|
13
13
|
- `npx @biomejs/biome check --write ./src` - Format and organize imports with Biome
|
|
14
|
-
-
|
|
14
|
+
- `npm run type-check` - Run TypeScript type checking without emitting
|
|
15
|
+
- Pre-commit hook (via Husky) automatically runs Biome formatting on staged files
|
|
15
16
|
|
|
16
17
|
## Architecture Overview
|
|
17
18
|
|
|
@@ -40,7 +41,7 @@ This is `@dexteel/mesf-core`, a React component library built as an NPM package
|
|
|
40
41
|
|
|
41
42
|
- **src/components/** - Reusable UI components organized by domain
|
|
42
43
|
- `navigation/` - Header, menu components
|
|
43
|
-
- `modals/` - Dialog components
|
|
44
|
+
- `modals/` - Dialog components
|
|
44
45
|
- `shared/` - Common utility components
|
|
45
46
|
|
|
46
47
|
- **src/configuration/** - Admin and configuration modules
|
|
@@ -57,30 +58,41 @@ This is `@dexteel/mesf-core`, a React component library built as an NPM package
|
|
|
57
58
|
- **src/services/** - API communication layer
|
|
58
59
|
- **src/utils/** - Utility functions and helpers
|
|
59
60
|
- **src/controls/** - Form controls and input components
|
|
61
|
+
- **src/models/** - TypeScript type definitions and interfaces
|
|
62
|
+
- **src/pages/** - Page-level components
|
|
63
|
+
- **src/routes/** - Route configuration
|
|
64
|
+
- **src/reducers/** - Redux reducers
|
|
65
|
+
- **src/account/** - Account-related components
|
|
66
|
+
- **src/helmet/** - React Helmet (meta tag) management
|
|
67
|
+
- **src/css/** - Stylesheets and theme configuration
|
|
60
68
|
|
|
61
69
|
### Technology Stack
|
|
62
70
|
|
|
63
|
-
**Core Framework**: React
|
|
64
|
-
**Build Tool**: Rollup with
|
|
65
|
-
**Styling**:
|
|
71
|
+
**Core Framework**: React 18 with TypeScript 5
|
|
72
|
+
**Build Tool**: Rollup 2 with rollup-plugin-typescript2
|
|
73
|
+
**Styling**: MUI v6 (`@mui/material`, `@mui/lab`, `@mui/styles`) with Emotion
|
|
66
74
|
**State**: Redux Toolkit for complex state, React Context for simpler state
|
|
67
|
-
**Authentication**: Azure MSAL
|
|
68
|
-
**Data Visualization**:
|
|
69
|
-
**Grid Component**: AG Grid (Enterprise
|
|
70
|
-
**Date Handling**: Moment.js with timezone
|
|
75
|
+
**Authentication**: Azure MSAL (`@azure/msal-browser`, `@azure/msal-react`)
|
|
76
|
+
**Data Visualization**: Chart.js 4 with react-chartjs-2, ECharts 6
|
|
77
|
+
**Grid Component**: AG Grid 33 (Community + Enterprise), MUI X Data Grid v7
|
|
78
|
+
**Date Handling**: Moment.js with moment-timezone, date-fns-tz
|
|
79
|
+
**Routing**: React Router DOM v6
|
|
80
|
+
**Real-time**: SignalR 8 (`@microsoft/signalr`)
|
|
71
81
|
|
|
72
82
|
### Key Dependencies
|
|
73
83
|
|
|
74
84
|
The library has extensive peer dependencies that consuming applications must provide:
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
- React
|
|
79
|
-
-
|
|
85
|
+
- MUI v6 components, icons, lab, styles, and Emotion styling
|
|
86
|
+
- MUI X v7 (Data Grid, Date Pickers, Tree View)
|
|
87
|
+
- AG Grid 33 (Community + Enterprise + React bindings)
|
|
88
|
+
- React 18 and React DOM 18
|
|
89
|
+
- React Router DOM v6
|
|
90
|
+
- Redux Toolkit
|
|
91
|
+
- date-fns (v3 or v4)
|
|
80
92
|
|
|
81
93
|
### Development Notes
|
|
82
94
|
|
|
83
|
-
**Styling**: Uses
|
|
95
|
+
**Styling**: Uses MUI v6 theming system with Emotion. Custom theme exports available via `src/css/themeMESF`.
|
|
84
96
|
|
|
85
97
|
**Internationalization**: Components support timezone handling via `moment-timezone` and `date-fns-tz`.
|
|
86
98
|
|
package/README.md
CHANGED
|
@@ -1,19 +1,76 @@
|
|
|
1
|
-
#
|
|
2
|
-
https://github.com/dexteel/mesf-core/commit/02877a88ab283f2a64cd1a0bc85bdb7c099935f2
|
|
1
|
+
# @dexteel/mesf-core
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
A React component library for Dexteel Manufacturing Execution Systems (MES). Provides shared UI components, context providers, services, hooks, and utilities used across Dexteel frontend applications.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @dexteel/mesf-core
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### Peer Dependencies
|
|
12
|
+
|
|
13
|
+
This library requires the consuming application to provide the following:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"@emotion/react": "^11.14.0",
|
|
18
|
+
"@emotion/styled": "^11.14.1",
|
|
19
|
+
"@mui/icons-material": "latest-v6",
|
|
20
|
+
"@mui/lab": "latest-v6",
|
|
21
|
+
"@mui/material": "latest-v6",
|
|
22
|
+
"@mui/styles": "latest-v6",
|
|
23
|
+
"@mui/x-data-grid": "latest-v7",
|
|
24
|
+
"@mui/x-date-pickers": "latest-v7",
|
|
25
|
+
"@mui/x-tree-view": "latest-v7",
|
|
26
|
+
"@react-spring/web": "^9.7.5",
|
|
27
|
+
"@reduxjs/toolkit": "^1.6.2",
|
|
28
|
+
"ag-grid-community": "^33.3.1",
|
|
29
|
+
"ag-grid-enterprise": "^33.3.1",
|
|
30
|
+
"ag-grid-react": "^33.3.1",
|
|
31
|
+
"date-fns": "^3.0.0 || ^4.0.0",
|
|
32
|
+
"moment": "^2.29.1",
|
|
33
|
+
"react": "^18.3.1",
|
|
34
|
+
"react-dom": "^18.3.1",
|
|
35
|
+
"react-router-dom": "^6.30.1"
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Development
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Install dependencies
|
|
43
|
+
npm install
|
|
44
|
+
|
|
45
|
+
# Build for production
|
|
46
|
+
npm run build
|
|
47
|
+
|
|
48
|
+
# Build in watch mode
|
|
49
|
+
npm run watch
|
|
50
|
+
# or
|
|
51
|
+
npm start
|
|
52
|
+
|
|
53
|
+
# Type checking
|
|
54
|
+
npm run type-check
|
|
55
|
+
|
|
56
|
+
# Format and organize imports
|
|
57
|
+
npx @biomejs/biome check --write ./src
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Deploying in Subfolders
|
|
61
|
+
|
|
62
|
+
When deploying a consuming application into a subfolder, edit the following file in the deployed build:
|
|
5
63
|
|
|
6
|
-
In deployed version, edit the following file:
|
|
7
64
|
```
|
|
8
65
|
DEPLOY_FOLDER/ClientApp/dist/index.html
|
|
9
66
|
```
|
|
10
|
-
Change the ``<base />`` tag to the desired base url
|
|
11
67
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- ``<base href="/" />`` (default)
|
|
16
|
-
- ``<base href="/old/" />``
|
|
17
|
-
- ``<base href="/testing/" />``
|
|
18
|
-
- ``<base href="/old/testing/" />``
|
|
68
|
+
Change the `<base />` tag to the desired base URL.
|
|
69
|
+
|
|
70
|
+
**Important:** Always include a trailing slash.
|
|
19
71
|
|
|
72
|
+
Examples:
|
|
73
|
+
- `<base href="/" />` (default)
|
|
74
|
+
- `<base href="/old/" />`
|
|
75
|
+
- `<base href="/testing/" />`
|
|
76
|
+
- `<base href="/old/testing/" />`
|
package/dist/MESFMain.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React, { type ReactNode } from "react";
|
|
2
|
+
import type { NavbarRendererProps } from "./components/navigation/NavbarMenuBar";
|
|
2
3
|
import { ConfigurationsType } from "./configurationMenu";
|
|
3
4
|
import type { LogbookSettingsState } from "./reducers/LogbookSettingsReducer";
|
|
4
5
|
interface Props {
|
|
5
6
|
authentication: any;
|
|
6
7
|
routes: () => ReactNode;
|
|
7
|
-
navbar:
|
|
8
|
+
navbar: React.ComponentType<NavbarRendererProps>;
|
|
8
9
|
navbarTitle?: string;
|
|
9
10
|
configurations: ConfigurationsType;
|
|
10
11
|
showAreaSelector?: boolean;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type LinkProps } from "react-router-dom";
|
|
3
|
+
type To = LinkProps["to"];
|
|
4
|
+
export interface NavbarMenuItemConfig {
|
|
5
|
+
label: string;
|
|
6
|
+
to: To;
|
|
7
|
+
permission?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface NavbarMenuConfig {
|
|
10
|
+
id: string;
|
|
11
|
+
label: string;
|
|
12
|
+
to?: To;
|
|
13
|
+
items: NavbarMenuItemConfig[];
|
|
14
|
+
permission?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface NavbarRendererProps {
|
|
17
|
+
isMobile?: boolean;
|
|
18
|
+
closeDrawer?: () => void;
|
|
19
|
+
}
|
|
20
|
+
interface NavbarMenuBarProps extends NavbarRendererProps {
|
|
21
|
+
menus: NavbarMenuConfig[];
|
|
22
|
+
hoverSwitchDelayMs?: number;
|
|
23
|
+
}
|
|
24
|
+
export declare function NavbarMenuBar({ menus, isMobile, closeDrawer, hoverSwitchDelayMs, }: NavbarMenuBarProps): React.JSX.Element;
|
|
25
|
+
export {};
|
package/dist/globalContext.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { type ReactNode } from "react";
|
|
2
|
+
import type { NavbarRendererProps } from "./components/navigation/NavbarMenuBar";
|
|
2
3
|
import { ConfigurationsType } from "./configurationMenu";
|
|
3
4
|
declare const RouterContext: React.Context<() => ReactNode>;
|
|
4
5
|
declare const ConfigurationContext: React.Context<ConfigurationsType>;
|
|
5
|
-
declare const NavbarContext: React.Context<
|
|
6
|
+
declare const NavbarContext: React.Context<React.ComponentType<NavbarRendererProps>>;
|
|
6
7
|
export { RouterContext, ConfigurationContext, NavbarContext };
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export { LicenseManager } from "ag-grid-enterprise";
|
|
|
3
3
|
export * from "./account";
|
|
4
4
|
export * from "./components/modals/error-modal";
|
|
5
5
|
export * from "./components/modals/modal.mesf";
|
|
6
|
+
export * from "./components/navigation/NavbarMenuBar";
|
|
6
7
|
export * from "./components/navigation/TimeAndUserMenu";
|
|
7
8
|
export * from "./components/shared/buttons/button-with-loading";
|
|
8
9
|
export { ExcelIcon } from "./components/shared/icons/ExcelIcon";
|