@xiriframework/xiri-ng 0.2.44 → 0.2.46

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiriframework/xiri-ng",
3
- "version": "0.2.44",
3
+ "version": "0.2.46",
4
4
  "description": "Angular UI component library for the Xiri Framework",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -20,17 +20,15 @@
20
20
  "tslib": "^2.8.1"
21
21
  },
22
22
  "peerDependencies": {
23
- "@angular/animations": "^21.2",
24
- "@angular/compiler": "^21.2",
25
- "@angular/platform-browser": "^21.2",
26
- "@angular/platform-browser-dynamic": "^21.2",
27
- "@angular/router": "^21.2",
28
- "@angular/common": "^21.2",
29
- "@angular/core": "^21.2",
30
- "@angular/material": "^21.2",
31
- "@angular/cdk": "^21.2",
32
- "@angular/forms": "^21.2",
33
- "@angular/material-date-fns-adapter": "^21.2",
23
+ "@angular/compiler": "^22.0",
24
+ "@angular/platform-browser": "^22.0",
25
+ "@angular/router": "^22.0",
26
+ "@angular/common": "^22.0",
27
+ "@angular/core": "^22.0",
28
+ "@angular/material": "^22.0",
29
+ "@angular/cdk": "^22.0",
30
+ "@angular/forms": "^22.0",
31
+ "@angular/material-date-fns-adapter": "^22.0",
34
32
  "date-fns": "^4.3",
35
33
  "@date-fns/tz": "^1.5",
36
34
  "material-symbols": ">=0.44",
@@ -249,6 +249,8 @@ buttons: XiriButton[] = [
249
249
 
250
250
  `action`: `'api' | 'dialog' | 'download' | 'link' | 'back' | 'close' | 'return' | 'menu' | …`.
251
251
 
252
+ **Navigations-Links mit Query-String:** `action: 'link'` sowie alle URL-basierten Navigations-Links (`cardlink.link`, `links`/`list`/`sidenav`/`breadcrumb`-Items, Tabellen-Link-Felder) akzeptieren URLs mit Query-String, z. B. `/Admin/Devices/Table?config=98`. Die interne `xiriUrl`-Pipe wandelt den String in eine `UrlTree`; der `?…`-Teil wird korrekt zu Route-Query-Params geparst (vorher wurde `?` als literales Segment percent-encodiert → 404). Kein separates `queryParams`-Feld nötig — alles steht im URL-String. Gilt **nicht** für `action: 'href'` (externer Link, roher String).
253
+
252
254
  **Selbst-pollender Button + Button-Patch:** Enthält die Antwort (api oder Dialog) `poll` (ms) + `pollUrl`, pollt der Button selbsttätig den Status und zeigt Spinner/Countdown bzw. `text` im Button, bis eine Antwort ohne `poll` kommt. Jede Antwort darf zudem ein `button`-Objekt (`text/color/icon/type/hint/disabled`) mitschicken, das den Button verändert (z. B. am Ende „Erledigt ✓"/grün/disabled). Backend: `response.NewReturnPoll(...).WithText(...).WithButton(...)`. Details: `references/components.md`.
253
255
 
254
256
  `data?: Record<string, any>` — Custom-Payload, das beim Klick mit `filterData` gemerged in den POST-Body geht (für `action: 'api'` / `'download'`). Der Backend-Builder (`xiri-go`) setzt das via `button.WithData(...)`. Beispiel: CSV-Download-Button hat `data: { _csv: true }`, das Backend liest das Flag in `LoadFilterData` und schaltet auf CSV-Output.
@@ -219,10 +219,12 @@ Array = **UND**-Verknüpfung:
219
219
 
220
220
  ```typescript
221
221
  export interface XiriFormFieldSelectOption {
222
- id: number;
222
+ id: number | string;
223
223
  name: string;
224
224
  disabled?: boolean;
225
225
  color?: XiriColor;
226
+ isGroup?: boolean; // markiert einen Gruppen-/Elternknoten (treeselect)
227
+ children?: XiriFormFieldSelectOption[]; // verschachtelte Optionen → Hierarchie für treeselect
226
228
  }
227
229
  ```
228
230
 
@@ -237,6 +239,19 @@ Inline (statisch):
237
239
  ]}
238
240
  ```
239
241
 
242
+ Hierarchisch (`treeselect` — Optionen über `children` verschachteln; auswählbar sind die Blattknoten, `isGroup` markiert Elternknoten):
243
+
244
+ ```typescript
245
+ { id: 'region', type: 'treeselect', name: 'Region',
246
+ list: [
247
+ { id: 'eu', name: 'Europa', isGroup: true, children: [
248
+ { id: 'at', name: 'Österreich' },
249
+ { id: 'de', name: 'Deutschland' },
250
+ ]},
251
+ { id: 'us', name: 'USA' },
252
+ ]}
253
+ ```
254
+
240
255
  Per Backend (`model` oder `select` mit `url`):
241
256
 
242
257
  ```typescript