@pisapp/reactive-dom 7.0.0-dev.20260916-153034 → 7.0.0-dev.20261028-112504
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/LICENSE +26 -18
- package/README.md +1 -66
- package/package.json +7 -7
package/LICENSE
CHANGED
|
@@ -3,26 +3,34 @@ PRODUCT INFORMATION SERVICES (PIS) PROPRIETARY SOFTWARE LICENSE
|
|
|
3
3
|
Copyright (c) 2026 ABB Asea Brown Boveri Ltd. All rights reserved.
|
|
4
4
|
|
|
5
5
|
The Product Information Services (PIS) software package and its documentation
|
|
6
|
-
(the "Software") are proprietary
|
|
7
|
-
licensors.
|
|
6
|
+
(the "Software") are proprietary and confidential property of ABB Asea Brown
|
|
7
|
+
Boveri Ltd ("ABB") and its licensors. The Software is closed source. No source
|
|
8
|
+
code rights are granted under this license.
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
An "Authorized User" is a person or organization that has completed the
|
|
11
|
+
applicable ABB onboarding process and is expressly authorized to use PIS under
|
|
12
|
+
a valid written agreement with ABB (the "Applicable Agreement"). Subject to
|
|
13
|
+
the Applicable Agreement, ABB grants each Authorized User a limited,
|
|
14
|
+
non-exclusive, non-transferable, non-sublicensable license to install and use
|
|
15
|
+
the Software solely to develop, test, and run applications that access PIS
|
|
16
|
+
services for the purposes authorized by the Applicable Agreement.
|
|
15
17
|
|
|
16
18
|
Except to the extent that mandatory law does not allow a restriction, you may
|
|
17
|
-
not copy, modify, distribute, publish, sublicense, rent, lease,
|
|
18
|
-
otherwise make the Software available to
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
not copy, modify, adapt, distribute, publish, disclose, sublicense, rent, lease,
|
|
20
|
+
sell, or otherwise make the Software available to any unauthorized person or
|
|
21
|
+
third party. You may not remove or alter proprietary notices, derive source
|
|
22
|
+
code from the Software, or reverse engineer, decompile, or disassemble the
|
|
23
|
+
Software except as expressly permitted by mandatory law.
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
Software
|
|
24
|
-
|
|
25
|
+
ABB and its licensors retain all right, title, and interest in and to the
|
|
26
|
+
Software. No rights are granted by implication. If you are not an Authorized
|
|
27
|
+
User, no license to use the Software is granted. Your right to use the Software
|
|
28
|
+
ends immediately when the Applicable Agreement ends or your authorization is
|
|
29
|
+
withdrawn.
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
Third-party components included with the Software remain subject to their
|
|
32
|
+
applicable license terms identified in THIRD-PARTY-NOTICES.txt.
|
|
33
|
+
|
|
34
|
+
The Applicable Agreement controls if it conflicts with this license. The
|
|
35
|
+
Software is provided subject to the warranties, limitations of liability,
|
|
36
|
+
confidentiality obligations, and other terms in the Applicable Agreement.
|
package/README.md
CHANGED
|
@@ -1,68 +1,3 @@
|
|
|
1
1
|
# @pisapp/reactive-dom
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
D-JsLock / D-JsReactivity / D-N2). `reactiveMount(render)` wraps a plain-DOM
|
|
5
|
-
render function in Vue's `effect()` so that every reactive `ctx.*` field it
|
|
6
|
-
reads is tracked and the render re-runs when those fields change — on the same
|
|
7
|
-
reactivity core the PIS `ctx` is already built on.
|
|
8
|
-
|
|
9
|
-
## Install
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
pnpm add @pisapp/core @pisapp/reactive-dom vue
|
|
13
|
-
# npm install @pisapp/core @pisapp/reactive-dom vue
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
### Peer dependencies
|
|
17
|
-
|
|
18
|
-
| Package | Range | Notes |
|
|
19
|
-
| -------------- | ---------- | -------------------------------------------------------- |
|
|
20
|
-
| `@pisapp/core` | `^7.0.0` | The component runtime; types the render pairs slot into. |
|
|
21
|
-
| `vue` | `>=3.5.17` | Provides `effect` / `effectScope`. |
|
|
22
|
-
|
|
23
|
-
## When you need this package
|
|
24
|
-
|
|
25
|
-
Usually **never**: assigning a bare render function `(container, ctx) =>
|
|
26
|
-
cleanup | void` directly to a `*Template` option wraps it in `reactiveMount`
|
|
27
|
-
automatically (core's `MountPoint` does it for you), with contextual typing at
|
|
28
|
-
the option site.
|
|
29
|
-
|
|
30
|
-
Import `reactiveMount` directly only when you build the render function as a
|
|
31
|
-
**standalone value reused across several slots** and want one explicit wrapper
|
|
32
|
-
around it.
|
|
33
|
-
|
|
34
|
-
## Usage
|
|
35
|
-
|
|
36
|
-
```ts
|
|
37
|
-
import { reactiveMount } from '@pisapp/reactive-dom';
|
|
38
|
-
|
|
39
|
-
const stockCell = reactiveMount((container, ctx) => {
|
|
40
|
-
const btn = document.createElement('button');
|
|
41
|
-
btn.disabled = ctx.item.stock < 1; // reactive — re-runs when stock changes
|
|
42
|
-
btn.addEventListener('click', () => ctx.emit('app:AddToCart', ctx.item));
|
|
43
|
-
container.replaceChildren(btn);
|
|
44
|
-
return () => btn.replaceWith(); // useEffect-style cleanup
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
columns.push({ dataField: 'ProductId', cellTemplate: stockCell });
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
`reactiveMount(render)` returns a `{ mount, unmount }` pair assignable to any
|
|
51
|
-
`*Template` slot:
|
|
52
|
-
|
|
53
|
-
- `render(container, ctx)` runs inside a Vue `effect`; tracked `ctx.*` reads
|
|
54
|
-
re-run the render body in place (the cell is not restarted, preserving any
|
|
55
|
-
component state — auto re-mount stays rejected, D-N2).
|
|
56
|
-
- A returned cleanup function runs before each re-render and on unmount
|
|
57
|
-
(useEffect semantics).
|
|
58
|
-
- `unmount(container)` stops the effect scope deterministically — no leaked
|
|
59
|
-
effects or listeners.
|
|
60
|
-
|
|
61
|
-
CSP-safe: `effect` tracking relies on Proxies, not `eval`/`Function`, so this
|
|
62
|
-
works under strict Content-Security-Policy.
|
|
63
|
-
|
|
64
|
-
The package also re-exports `effect`, `effectScope`, and `onScopeDispose` from
|
|
65
|
-
`vue` for advanced standalone use.
|
|
66
|
-
|
|
67
|
-
See the [JavaScript template guide](../../PisNextGenDocs/src/migration/web-components/javascript.md)
|
|
68
|
-
for the full render-function authoring model.
|
|
3
|
+
Reactive rendering support for plain DOM content mounted in PIS template surfaces.
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pisapp/reactive-dom",
|
|
3
|
-
"version": "7.0.0-dev.
|
|
3
|
+
"version": "7.0.0-dev.20261028-112504",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"author": "ABB Asea Brown Boveri Ltd",
|
|
6
|
-
"description": "PIS v7 reactive template engine
|
|
6
|
+
"description": "PIS v7 reactive template engine - reactiveMount wraps a render function in @vue/reactivity's effect() so cells built from a reactive ctx re-render on change. MountPoint wraps every plain-DOM render function in it (decisions D-JsReactivity / D-JsLock).",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "./dist/index.js",
|
|
9
9
|
"types": "./dist/index.d.ts",
|
|
@@ -22,18 +22,18 @@
|
|
|
22
22
|
"vue": ">=3.5.17 <4"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
+
"jsdom": "^25.0.1",
|
|
25
26
|
"typescript": "~6.0.3",
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"jsdom": "^25.0.1"
|
|
27
|
+
"vitest": "^4.1.11",
|
|
28
|
+
"vue": ">=3.5.17 <4"
|
|
29
29
|
},
|
|
30
30
|
"publishConfig": {
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
33
|
"pisRelease": {
|
|
34
|
-
"version": "7.0.0-dev.
|
|
34
|
+
"version": "7.0.0-dev.20261028-112504",
|
|
35
35
|
"channel": "dev",
|
|
36
|
-
"commit": "
|
|
36
|
+
"commit": "21cb38cf29939a6d6fe213dc90c51a9fa10e3371"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build": "node ../../scripts/build-library.mjs --package @pisapp/reactive-dom",
|