@sdcorejs/angular 21.0.4 → 21.0.6

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.
Files changed (33) hide show
  1. package/assets/{scss/README.md → STYLE-GUIDE.md} +3 -0
  2. package/fesm2022/sdcorejs-angular-components-form-generic.mjs +2 -2
  3. package/fesm2022/sdcorejs-angular-components-form-generic.mjs.map +1 -1
  4. package/fesm2022/sdcorejs-angular-components-org-chart.mjs +110 -0
  5. package/fesm2022/sdcorejs-angular-components-org-chart.mjs.map +1 -0
  6. package/fesm2022/sdcorejs-angular-components-query-bar.mjs +37 -8
  7. package/fesm2022/sdcorejs-angular-components-query-bar.mjs.map +1 -1
  8. package/fesm2022/sdcorejs-angular-components-query-builder.mjs +258 -60
  9. package/fesm2022/sdcorejs-angular-components-query-builder.mjs.map +1 -1
  10. package/fesm2022/sdcorejs-angular-components-section.mjs +8 -5
  11. package/fesm2022/sdcorejs-angular-components-section.mjs.map +1 -1
  12. package/fesm2022/sdcorejs-angular-components-splitter.mjs +24 -13
  13. package/fesm2022/sdcorejs-angular-components-splitter.mjs.map +1 -1
  14. package/fesm2022/sdcorejs-angular-components-table.mjs +6 -2
  15. package/fesm2022/sdcorejs-angular-components-table.mjs.map +1 -1
  16. package/fesm2022/sdcorejs-angular-components-tree.mjs +526 -0
  17. package/fesm2022/sdcorejs-angular-components-tree.mjs.map +1 -0
  18. package/fesm2022/sdcorejs-angular-components.mjs +2 -0
  19. package/fesm2022/sdcorejs-angular-components.mjs.map +1 -1
  20. package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs +2 -2
  21. package/fesm2022/sdcorejs-angular-forms-autocomplete.mjs.map +1 -1
  22. package/fesm2022/sdcorejs-angular-forms-select.mjs +66 -7
  23. package/fesm2022/sdcorejs-angular-forms-select.mjs.map +1 -1
  24. package/package.json +10 -2
  25. package/types/sdcorejs-angular-components-org-chart.d.ts +67 -0
  26. package/types/sdcorejs-angular-components-query-bar.d.ts +37 -2
  27. package/types/sdcorejs-angular-components-query-builder.d.ts +96 -30
  28. package/types/sdcorejs-angular-components-section.d.ts +4 -1
  29. package/types/sdcorejs-angular-components-splitter.d.ts +20 -1
  30. package/types/sdcorejs-angular-components-table.d.ts +2 -0
  31. package/types/sdcorejs-angular-components-tree.d.ts +253 -0
  32. package/types/sdcorejs-angular-components.d.ts +2 -0
  33. package/types/sdcorejs-angular-forms-select.d.ts +29 -3
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnInit, Signal, TemplateRef } from '@angular/core';
2
+ import { TemplateRef, OnInit, Signal } from '@angular/core';
3
3
  import { FormGroup, FormControl } from '@angular/forms';
4
4
  import { MatFormFieldAppearance, FloatLabelType } from '@angular/material/form-field';
5
5
  import { MatInput } from '@angular/material/input';
@@ -8,6 +8,16 @@ import { SdItemDefDefDirective, SdViewDefDirective } from '@sdcorejs/angular/for
8
8
  import { SdViewed, SdViewedInput, SdCustomValidator, SdSearch, SdSelectionData, SdFormControl } from '@sdcorejs/angular/forms/models';
9
9
  import { Size } from '@sdcorejs/utils/models';
10
10
 
11
+ interface SdSelectFooterActionContext {
12
+ searchText: string;
13
+ }
14
+ declare class SdSelectFooterActionDirective {
15
+ readonly templateRef: TemplateRef<any>;
16
+ readonly when: _angular_core.InputSignal<"always" | "empty" | "has-result">;
17
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdSelectFooterActionDirective, never>;
18
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SdSelectFooterActionDirective, "ng-template[sdSelectFooterAction]", never, { "when": { "alias": "when"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
19
+ }
20
+
11
21
  declare class SdSelect<T extends object | string | number = Record<string, unknown>> implements OnInit {
12
22
  #private;
13
23
  id: string;
@@ -15,8 +25,17 @@ declare class SdSelect<T extends object | string | number = Record<string, unkno
15
25
  selectRef: Signal<MatSelect | undefined>;
16
26
  sdLabelTemplate: Signal<TemplateRef<any> | undefined>;
17
27
  sdValueTemplate: Signal<TemplateRef<any> | undefined>;
28
+ /**
29
+ * Custom render for the SELECTED value shown in the editable trigger (`<mat-select-trigger>`).
30
+ * Distinct from `#sdValue`/`sdViewDef` which only drive the read-only `viewed`/`inline` face.
31
+ * Context: `{ $implicit, item, items: selectedItems(), display, multiple }` — `item`/`$implicit`
32
+ * is the single selected item object (single mode) or the selected-item array (multiple mode).
33
+ * Falls back to the plain `display` text when not projected, so existing usages are unaffected.
34
+ */
35
+ sdSelectedTemplate: Signal<TemplateRef<any> | undefined>;
18
36
  itemDef: Signal<SdItemDefDefDirective<any> | undefined>;
19
37
  sdViewDef: Signal<SdViewDefDirective<any, any> | undefined>;
38
+ footerActions: Signal<readonly SdSelectFooterActionDirective[]>;
20
39
  /**
21
40
  * View display template. `sdViewDef` is now just a custom override of the view rendering —
22
41
  * it replaces the projected `#sdValue` template when present (fed into `<sd-view>`'s
@@ -87,12 +106,18 @@ declare class SdSelect<T extends object | string | number = Record<string, unkno
87
106
  selectedItems: _angular_core.WritableSignal<T[]>;
88
107
  display: _angular_core.WritableSignal<string>;
89
108
  calculatedPanelWidth: _angular_core.WritableSignal<string | number>;
109
+ readonly searchText: _angular_core.WritableSignal<string>;
110
+ readonly footerActionContext: Signal<{
111
+ searchText: string;
112
+ }>;
113
+ readonly visibleFooterActions: Signal<SdSelectFooterActionDirective[]>;
90
114
  normalizedValue: Signal<string | number | boolean | (string | number | boolean)[] | null | undefined>;
91
115
  filtered: Signal<boolean>;
92
116
  delayTime: Signal<0 | 500>;
93
117
  itemValue: (item: T) => unknown;
94
118
  itemDisplay: (item: T) => string;
95
119
  itemDisabled: (item: T) => boolean;
120
+ shouldRenderFooterAction(action: SdSelectFooterActionDirective): boolean;
96
121
  setNestedValue: (obj: any, path: string, value: any) => void;
97
122
  tooltip: Signal<string>;
98
123
  updatePanelWidth: () => void;
@@ -107,7 +132,8 @@ declare class SdSelect<T extends object | string | number = Record<string, unkno
107
132
  open: () => void;
108
133
  onOpenedChange: (isOpened: boolean) => void;
109
134
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdSelect<any>, never>;
110
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdSelect<any>, "sd-select", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": true; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": true; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "cacheChecksum": { "alias": "cacheChecksum"; "required": false; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "minWidthPanel": { "alias": "minWidthPanel"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "validator": { "alias": "validator"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["sdLabelTemplate", "sdValueTemplate", "itemDef", "sdViewDef"], ["[sdLabel]"], true, never>;
135
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdSelect<any>, "sd-select", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": true; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": true; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "cacheChecksum": { "alias": "cacheChecksum"; "required": false; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "minWidthPanel": { "alias": "minWidthPanel"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "validator": { "alias": "validator"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["sdLabelTemplate", "sdValueTemplate", "sdSelectedTemplate", "itemDef", "sdViewDef", "footerActions"], ["[sdLabel]"], true, never>;
111
136
  }
112
137
 
113
- export { SdSelect };
138
+ export { SdSelect, SdSelectFooterActionDirective };
139
+ export type { SdSelectFooterActionContext };