@sd-angular/core 19.0.0-beta.100 → 19.0.0-beta.102

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 (125) hide show
  1. package/assets/images/coming-soon.svg +23 -0
  2. package/assets/images/data-empty.svg +21 -0
  3. package/assets/images/expired.svg +22 -0
  4. package/assets/images/file-error.svg +28 -0
  5. package/assets/images/filter-empty.svg +20 -0
  6. package/assets/images/filter-required.svg +21 -0
  7. package/assets/images/forbidden.svg +15 -0
  8. package/assets/images/image-error.svg +27 -0
  9. package/assets/images/maintenance.svg +23 -0
  10. package/assets/images/not-found.svg +20 -0
  11. package/assets/images/offline.svg +20 -0
  12. package/assets/images/submitted.svg +18 -0
  13. package/assets/images/success.svg +18 -0
  14. package/assets/images/unauthorized.svg +22 -0
  15. package/assets/images/unknown-error.svg +18 -0
  16. package/assets/scss/core/image.scss +35 -0
  17. package/assets/scss/sd-core.scss +1 -0
  18. package/components/index.d.ts +1 -0
  19. package/components/operator/index.d.ts +1 -0
  20. package/components/operator/src/operator.component.d.ts +34 -0
  21. package/components/query-bar/index.d.ts +2 -0
  22. package/components/query-bar/src/actions-bar.component.d.ts +31 -0
  23. package/components/query-bar/src/build-chip.component.d.ts +67 -0
  24. package/components/query-bar/src/chip-popover.component.d.ts +73 -0
  25. package/components/query-bar/src/field-picker.component.d.ts +37 -0
  26. package/components/query-bar/src/inline-chip.component.d.ts +82 -0
  27. package/components/query-bar/src/inline-value-chip.component.d.ts +71 -0
  28. package/components/query-bar/src/popover-chip.component.d.ts +35 -0
  29. package/components/query-bar/src/query-bar.component.d.ts +137 -0
  30. package/components/query-bar/src/query-bar.model.d.ts +136 -0
  31. package/components/query-bar/src/saved-filters-menu.component.d.ts +39 -0
  32. package/components/table/src/components/column-title/column-title.component.d.ts +1 -1
  33. package/components/table/src/components/desktop-cell/desktop-cell.component.d.ts +3 -3
  34. package/components/table/src/components/filter/column-filter/column-filter.component.d.ts +3 -7
  35. package/components/table/src/directives/sd-table-cell-def.directive.d.ts +12 -4
  36. package/components/table/src/directives/sd-table-column-filter-def.directive.d.ts +12 -4
  37. package/components/table/src/directives/sd-table-expand-def.directive.d.ts +10 -4
  38. package/components/table/src/directives/sd-table-filter-def.directive.d.ts +3 -3
  39. package/components/table/src/directives/sd-table-footer-def.directive.d.ts +12 -4
  40. package/components/table/src/directives/sd-table-title-def.directive.d.ts +10 -4
  41. package/components/table/src/table.component.d.ts +7 -7
  42. package/components/view/src/view.component.d.ts +2 -1
  43. package/directives/src/sd-desktop.directive.d.ts +2 -4
  44. package/directives/src/sd-mobile.directive.d.ts +2 -4
  45. package/fesm2022/sd-angular-core-components-anchor.mjs +73 -47
  46. package/fesm2022/sd-angular-core-components-anchor.mjs.map +1 -1
  47. package/fesm2022/sd-angular-core-components-badge.mjs +2 -2
  48. package/fesm2022/sd-angular-core-components-badge.mjs.map +1 -1
  49. package/fesm2022/sd-angular-core-components-form-generic.mjs +16 -16
  50. package/fesm2022/sd-angular-core-components-form-generic.mjs.map +1 -1
  51. package/fesm2022/sd-angular-core-components-operator.mjs +75 -0
  52. package/fesm2022/sd-angular-core-components-operator.mjs.map +1 -0
  53. package/fesm2022/sd-angular-core-components-query-bar.mjs +1425 -0
  54. package/fesm2022/sd-angular-core-components-query-bar.mjs.map +1 -0
  55. package/fesm2022/sd-angular-core-components-quick-action.mjs +2 -2
  56. package/fesm2022/sd-angular-core-components-quick-action.mjs.map +1 -1
  57. package/fesm2022/sd-angular-core-components-table.mjs +60 -27
  58. package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
  59. package/fesm2022/sd-angular-core-components-upload-file.mjs +4 -4
  60. package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
  61. package/fesm2022/sd-angular-core-components-view.mjs +5 -2
  62. package/fesm2022/sd-angular-core-components-view.mjs.map +1 -1
  63. package/fesm2022/sd-angular-core-components.mjs +1 -0
  64. package/fesm2022/sd-angular-core-components.mjs.map +1 -1
  65. package/fesm2022/sd-angular-core-directives.mjs +15 -17
  66. package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
  67. package/fesm2022/sd-angular-core-forms-autocomplete.mjs +5 -8
  68. package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
  69. package/fesm2022/sd-angular-core-forms-checkbox.mjs +83 -87
  70. package/fesm2022/sd-angular-core-forms-checkbox.mjs.map +1 -1
  71. package/fesm2022/sd-angular-core-forms-chip-calendar.mjs +76 -57
  72. package/fesm2022/sd-angular-core-forms-chip-calendar.mjs.map +1 -1
  73. package/fesm2022/sd-angular-core-forms-chip.mjs +73 -48
  74. package/fesm2022/sd-angular-core-forms-chip.mjs.map +1 -1
  75. package/fesm2022/sd-angular-core-forms-date-range.mjs +41 -4
  76. package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
  77. package/fesm2022/sd-angular-core-forms-date.mjs +14 -9
  78. package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
  79. package/fesm2022/sd-angular-core-forms-datetime.mjs +8 -9
  80. package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
  81. package/fesm2022/sd-angular-core-forms-directives.mjs +18 -24
  82. package/fesm2022/sd-angular-core-forms-directives.mjs.map +1 -1
  83. package/fesm2022/sd-angular-core-forms-input-number.mjs +5 -8
  84. package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
  85. package/fesm2022/sd-angular-core-forms-input.mjs +5 -9
  86. package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
  87. package/fesm2022/sd-angular-core-forms-models.mjs +13 -1
  88. package/fesm2022/sd-angular-core-forms-models.mjs.map +1 -1
  89. package/fesm2022/sd-angular-core-forms-radio.mjs +116 -176
  90. package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
  91. package/fesm2022/sd-angular-core-forms-select.mjs +23 -10
  92. package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
  93. package/fesm2022/sd-angular-core-forms-switch.mjs +80 -99
  94. package/fesm2022/sd-angular-core-forms-switch.mjs.map +1 -1
  95. package/fesm2022/sd-angular-core-forms-textarea.mjs +5 -8
  96. package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
  97. package/fesm2022/sd-angular-core-i18n.mjs +35 -0
  98. package/fesm2022/sd-angular-core-i18n.mjs.map +1 -1
  99. package/fesm2022/sd-angular-core-modules-layout.mjs +10 -10
  100. package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
  101. package/fesm2022/sd-angular-core-modules-permission.mjs.map +1 -1
  102. package/fesm2022/sd-angular-core-services-confirm.mjs +1 -1
  103. package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
  104. package/forms/autocomplete/src/autocomplete.component.d.ts +3 -4
  105. package/forms/checkbox/src/checkbox.component.d.ts +17 -20
  106. package/forms/chip/src/chip.component.d.ts +17 -17
  107. package/forms/chip-calendar/src/chip-calendar.component.d.ts +19 -19
  108. package/forms/date/src/date.component.d.ts +7 -4
  109. package/forms/date-range/src/date-range.component.d.ts +16 -2
  110. package/forms/datetime/src/datetime.component.d.ts +5 -4
  111. package/forms/directives/src/item-def.directive.d.ts +10 -5
  112. package/forms/directives/src/label-def.directive.d.ts +3 -2
  113. package/forms/directives/src/suffix-def.directive.d.ts +3 -2
  114. package/forms/directives/src/view-def.directive.d.ts +9 -9
  115. package/forms/input/src/input.component.d.ts +3 -5
  116. package/forms/input-number/src/input-number.component.d.ts +2 -3
  117. package/forms/models/src/sd-custom-validator.model.d.ts +13 -1
  118. package/forms/radio/src/radio.component.d.ts +32 -37
  119. package/forms/select/src/select.component.d.ts +8 -5
  120. package/forms/switch/src/switch.component.d.ts +17 -22
  121. package/forms/textarea/src/textarea.component.d.ts +2 -3
  122. package/i18n/src/en.d.ts +5 -0
  123. package/package.json +65 -57
  124. package/sd-angular-core-19.0.0-beta.102.tgz +0 -0
  125. package/sd-angular-core-19.0.0-beta.100.tgz +0 -0
@@ -1,4 +1,4 @@
1
- import { OnDestroy, OnInit } from '@angular/core';
1
+ import { OnDestroy, OnInit, TemplateRef } from '@angular/core';
2
2
  import { FormControl, FormGroup } from '@angular/forms';
3
3
  import { MatDatepickerInputEvent, MatDateRangePicker } from '@angular/material/datepicker';
4
4
  import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
@@ -36,6 +36,20 @@ export declare class SdDateRange implements OnDestroy, OnInit {
36
36
  readonly errorMessage: import("@angular/core").Signal<string | undefined>;
37
37
  required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
38
38
  disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
39
+ /** Bare mode — strip the form-field shell to fit inline in a chip / token. */
40
+ bare: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
41
+ /** Viewed mode — render a read-only <sd-view> instead of the editable form-field. */
42
+ viewed: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
43
+ /** Optional <ng-template #sdValue> projected by consumer to override the viewed text. */
44
+ sdValueTemplate: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
45
+ /**
46
+ * Formatted "dd/MM/yyyy → dd/MM/yyyy" string for the viewed-mode display.
47
+ * why: viewed mode chỉ hiển thị text — cần format gọn cho cả 2 đầu range,
48
+ * Returns empty when both ends are blank, "from →" when only from is set, and so on.
49
+ */
50
+ formatted: import("@angular/core").Signal<string>;
51
+ /** Open the range picker panel programmatically (for query-bar chip auto-open). */
52
+ open: () => void;
39
53
  appearanceInput: import("@angular/core").InputSignal<MatFormFieldAppearance | undefined>;
40
54
  appearance: import("@angular/core").Signal<MatFormFieldAppearance>;
41
55
  floatLabel: import("@angular/core").InputSignal<FloatLabelType>;
@@ -61,6 +75,6 @@ export declare class SdDateRange implements OnDestroy, OnInit {
61
75
  onClosePicker: () => void;
62
76
  onOpenPicker: (event: MouseEvent) => void;
63
77
  static ɵfac: i0.ɵɵFactoryDeclaration<SdDateRange, never>;
64
- static ɵcmp: i0.ɵɵComponentDeclaration<SdDateRange, "sd-date-range", 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; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "minInput": { "alias": "min"; "required": false; "isSignal": true; }; "maxInput": { "alias": "max"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; }, ["sdLabelDef"], never, true, never>;
78
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdDateRange, "sd-date-range", 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; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "bare": { "alias": "bare"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "minInput": { "alias": "min"; "required": false; "isSignal": true; }; "maxInput": { "alias": "max"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; }, ["sdLabelDef", "sdValueTemplate"], never, true, never>;
65
79
  }
66
80
  export {};
@@ -1,5 +1,5 @@
1
1
  import { ElementRef, OnDestroy, OnInit, TemplateRef } from '@angular/core';
2
- import { FormGroup, ValidatorFn } from '@angular/forms';
2
+ import { FormGroup } from '@angular/forms';
3
3
  import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
4
4
  import { SdViewDefDirective } from '@sd-angular/core/forms/directives';
5
5
  import { SdFormControl } from '@sd-angular/core/forms/models';
@@ -10,7 +10,7 @@ export declare class SdDatetime implements OnDestroy, OnInit {
10
10
  inputRef: import("@angular/core").Signal<ElementRef<HTMLInputElement> | undefined>;
11
11
  sdLabelTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
12
12
  sdValueTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
13
- sdViewDef: import("@angular/core").Signal<SdViewDefDirective | undefined>;
13
+ sdViewDef: import("@angular/core").Signal<SdViewDefDirective<any, any> | undefined>;
14
14
  private ref;
15
15
  private overlay;
16
16
  private elementRef;
@@ -36,6 +36,8 @@ export declare class SdDatetime implements OnDestroy, OnInit {
36
36
  viewed: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
37
37
  /** Hiển thị thêm cột giây trong picker. Mặc định: chỉ HH:MM. */
38
38
  showSeconds: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
39
+ /** Flatten the field chrome to a chip-friendly trigger (value + caret only). */
40
+ bare: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
39
41
  inlineError: import("@angular/core").InputSignal<string | undefined>;
40
42
  /**
41
43
  * Tổng hợp error message để hiển thị trong tooltip khi hideInlineError = true.
@@ -68,7 +70,6 @@ export declare class SdDatetime implements OnDestroy, OnInit {
68
70
  open(): void;
69
71
  /** Đóng popup (public — gọi từ template nếu cần). */
70
72
  close(): void;
71
- customInlineErrorValidator(): ValidatorFn;
72
73
  onFocus: () => void;
73
74
  onBlur: () => void;
74
75
  onClick: () => void;
@@ -83,5 +84,5 @@ export declare class SdDatetime implements OnDestroy, OnInit {
83
84
  onConfirmInput: (event: any) => void;
84
85
  clear: ($event: any) => void;
85
86
  static ɵfac: i0.ɵɵFactoryDeclaration<SdDatetime, never>;
86
- static ɵcmp: i0.ɵɵComponentDeclaration<SdDatetime, "sd-datetime", 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; }; "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; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "minInput": { "alias": "min"; "required": false; "isSignal": true; }; "minDateInput": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxInput": { "alias": "max"; "required": false; "isSignal": true; }; "maxDateInput": { "alias": "maxDate"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; "sdFocus": "sdFocus"; }, ["sdLabelTemplate", "sdValueTemplate", "sdViewDef"], ["[sdLabel]"], true, never>;
87
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdDatetime, "sd-datetime", 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; }; "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; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "bare": { "alias": "bare"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "required": false; "isSignal": true; }; "minInput": { "alias": "min"; "required": false; "isSignal": true; }; "minDateInput": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxInput": { "alias": "max"; "required": false; "isSignal": true; }; "maxDateInput": { "alias": "maxDate"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; "sdFocus": "sdFocus"; }, ["sdLabelTemplate", "sdValueTemplate", "sdViewDef"], ["[sdLabel]"], true, never>;
87
88
  }
@@ -1,8 +1,13 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export declare class SdItemDefDefDirective {
4
- templateRef: TemplateRef<any>;
5
- constructor(templateRef: TemplateRef<any>);
6
- static ɵfac: i0.ɵɵFactoryDeclaration<SdItemDefDefDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<SdItemDefDefDirective, "[sdItemDef]", never, {}, {}, never, never, true, never>;
3
+ interface Context<T = unknown> {
4
+ $implicit?: T;
5
+ item: T;
8
6
  }
7
+ export declare class SdItemDefDefDirective<T = unknown> {
8
+ static ngTemplateContextGuard<T>(_dir: SdItemDefDefDirective<T>, _ctx: unknown): _ctx is Context<T>;
9
+ readonly templateRef: TemplateRef<Context<T>>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdItemDefDefDirective<any>, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdItemDefDefDirective<any>, "[sdItemDef]", never, {}, {}, never, never, true, never>;
12
+ }
13
+ export {};
@@ -1,8 +1,9 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ type Context = Record<string, never>;
3
4
  export declare class SdLabelDefDirective {
4
- templateRef: TemplateRef<any>;
5
- constructor(templateRef: TemplateRef<any>);
5
+ readonly templateRef: TemplateRef<Context>;
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<SdLabelDefDirective, never>;
7
7
  static ɵdir: i0.ɵɵDirectiveDeclaration<SdLabelDefDirective, "[sdLabelDef]", never, {}, {}, never, never, true, never>;
8
8
  }
9
+ export {};
@@ -1,8 +1,9 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ type Context = Record<string, never>;
3
4
  export declare class SdSuffixDefDirective {
4
- templateRef: TemplateRef<any>;
5
- constructor(templateRef: TemplateRef<any>);
5
+ readonly templateRef: TemplateRef<Context>;
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<SdSuffixDefDirective, never>;
7
7
  static ɵdir: i0.ɵɵDirectiveDeclaration<SdSuffixDefDirective, "[sdSuffixDef]", never, {}, {}, never, never, true, never>;
8
8
  }
9
+ export {};
@@ -1,14 +1,14 @@
1
1
  import { TemplateRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export declare class SdViewDefDirective {
4
- templateRef: TemplateRef<Context> | null;
5
- constructor(templateRef: TemplateRef<Context>);
6
- static ɵfac: i0.ɵɵFactoryDeclaration<SdViewDefDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<SdViewDefDirective, "[sdViewDef]", never, {}, {}, never, never, true, never>;
3
+ interface Context<TValue = unknown, TItem = unknown> {
4
+ value?: TValue | null;
5
+ selectedItem?: TItem | null;
6
+ selectedItems?: TItem[] | null;
8
7
  }
9
- interface Context {
10
- value?: string | null;
11
- selectedItems?: any[] | null;
12
- selectedItem?: any | null;
8
+ export declare class SdViewDefDirective<TValue = unknown, TItem = unknown> {
9
+ static ngTemplateContextGuard<TValue, TItem>(_dir: SdViewDefDirective<TValue, TItem>, _ctx: unknown): _ctx is Context<TValue, TItem>;
10
+ readonly templateRef: TemplateRef<Context<TValue, TItem>>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<SdViewDefDirective<any, any>, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SdViewDefDirective<any, any>, "[sdViewDef]", never, {}, {}, never, never, true, never>;
13
13
  }
14
14
  export {};
@@ -1,5 +1,5 @@
1
1
  import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
2
- import { FormGroup, ValidatorFn } from '@angular/forms';
2
+ import { FormGroup } from '@angular/forms';
3
3
  import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
4
4
  import { SdSuffixDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
5
5
  import { SdCustomValidator, SdFormControl } from '@sd-angular/core/forms/models';
@@ -11,7 +11,7 @@ export declare class SdInput implements OnDestroy, OnInit, AfterViewInit {
11
11
  sdLabelTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
12
12
  sdValueTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
13
13
  sdSuffixDef: import("@angular/core").Signal<SdSuffixDefDirective | undefined>;
14
- sdViewDef: import("@angular/core").Signal<SdViewDefDirective | undefined>;
14
+ sdViewDef: import("@angular/core").Signal<SdViewDefDirective<any, any> | undefined>;
15
15
  autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
16
16
  autoId: import("@angular/core").Signal<string | undefined>;
17
17
  readonly dataDisabled: import("@angular/core").Signal<"true" | "false">;
@@ -54,7 +54,6 @@ export declare class SdInput implements OnDestroy, OnInit, AfterViewInit {
54
54
  validator: import("@angular/core").InputSignal<SdCustomValidator | undefined>;
55
55
  inlineError: import("@angular/core").InputSignal<string | undefined>;
56
56
  hyperlink: import("@angular/core").InputSignal<string | null | undefined>;
57
- tooltip: import("@angular/core").InputSignal<string | undefined>;
58
57
  valueModel: import("@angular/core").ModelSignal<any>;
59
58
  sdChange: import("@angular/core").OutputEmitterRef<any>;
60
59
  sdFocus: import("@angular/core").OutputEmitterRef<void>;
@@ -68,7 +67,6 @@ export declare class SdInput implements OnDestroy, OnInit, AfterViewInit {
68
67
  ngAfterViewInit(): void;
69
68
  ngOnDestroy(): void;
70
69
  reValidate: () => void;
71
- customInlineErrorValidator(): ValidatorFn;
72
70
  getCurrentLength: () => number;
73
71
  isMaxlengthExceeded: () => boolean;
74
72
  onKeyupEnter: () => void;
@@ -78,5 +76,5 @@ export declare class SdInput implements OnDestroy, OnInit, AfterViewInit {
78
76
  blur: () => void;
79
77
  focus: () => void;
80
78
  static ɵfac: i0.ɵɵFactoryDeclaration<SdInput, never>;
81
- static ɵcmp: i0.ɵɵComponentDeclaration<SdInput, "sd-input", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "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; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "blurOnEnter": { "alias": "blurOnEnter"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "minlength": { "alias": "minlength"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "patternErrorMessage": { "alias": "patternErrorMessage"; "required": false; "isSignal": true; }; "validator": { "alias": "validator"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; "sdFocus": "sdFocus"; "sdBlur": "sdBlur"; "keyupEnter": "keyupEnter"; "sdFocusForceBlur": "sdFocusForceBlur"; }, ["sdLabelTemplate", "sdValueTemplate", "sdSuffixDef", "sdViewDef"], ["[sdLabel]"], true, never>;
79
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdInput, "sd-input", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "floatLabel": { "alias": "floatLabel"; "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; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "blurOnEnter": { "alias": "blurOnEnter"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "minlength": { "alias": "minlength"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "patternErrorMessage": { "alias": "patternErrorMessage"; "required": false; "isSignal": true; }; "validator": { "alias": "validator"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; "sdFocus": "sdFocus"; "sdBlur": "sdBlur"; "keyupEnter": "keyupEnter"; "sdFocusForceBlur": "sdFocusForceBlur"; }, ["sdLabelTemplate", "sdValueTemplate", "sdSuffixDef", "sdViewDef"], ["[sdLabel]"], true, never>;
82
80
  }
@@ -1,5 +1,5 @@
1
1
  import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
2
- import { FormControl, FormGroup, FormGroupDirective, NgForm, ValidatorFn } from '@angular/forms';
2
+ import { FormControl, FormGroup, FormGroupDirective, NgForm } from '@angular/forms';
3
3
  import { ErrorStateMatcher } from '@angular/material/core';
4
4
  import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
5
5
  import { SdSuffixDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
@@ -16,7 +16,7 @@ export declare class SdInputNumber implements OnDestroy, OnInit, AfterViewInit {
16
16
  control: import("@angular/core").Signal<ElementRef<HTMLInputElement> | undefined>;
17
17
  sdLabelTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
18
18
  sdValueTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
19
- sdViewDef: import("@angular/core").Signal<SdViewDefDirective | undefined>;
19
+ sdViewDef: import("@angular/core").Signal<SdViewDefDirective<any, any> | undefined>;
20
20
  sdSuffixDef: import("@angular/core").Signal<SdSuffixDefDirective | undefined>;
21
21
  private ref;
22
22
  private coreConfiguration;
@@ -75,7 +75,6 @@ export declare class SdInputNumber implements OnDestroy, OnInit, AfterViewInit {
75
75
  ngAfterViewInit(): void;
76
76
  ngOnDestroy(): void;
77
77
  reValidate: () => void;
78
- customInlineErrorValidator(): ValidatorFn;
79
78
  onKeyupEnter: () => void;
80
79
  onKeydown: (event: KeyboardEvent) => void;
81
80
  onPaste(event: ClipboardEvent): void;
@@ -1,3 +1,15 @@
1
- import { AsyncValidatorFn } from '@angular/forms';
1
+ import { AsyncValidatorFn, ValidatorFn } from '@angular/forms';
2
2
  export type SdCustomValidator = (value: any) => string | Promise<string>;
3
+ /**
4
+ * Inline-error sentinel validator. Returns `{ inlineError: true }` so the form
5
+ * template can render `<mat-error>{{ inlineError }}</mat-error>` whenever the
6
+ * host component has a non-empty `[inlineError]` input. The error message
7
+ * itself is read from the input — this validator only flags the state.
8
+ *
9
+ * why: each form component (input, textarea, select, checkbox, radio, switch,
10
+ * date, datetime, input-number, autocomplete) previously declared the same
11
+ * private `customInlineErrorValidator()` method. Centralized here so adding
12
+ * another form component does not silently re-introduce the duplicate.
13
+ */
14
+ export declare const SdInlineErrorValidator: ValidatorFn;
3
15
  export declare const HandleSdCustomValidator: (func: SdCustomValidator) => AsyncValidatorFn;
@@ -1,54 +1,49 @@
1
- import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
- import { FormGroup, NgForm, ValidatorFn } from '@angular/forms';
1
+ import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
3
  import { SdLabelDefDirective, SdSuffixDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
4
4
  import { SdFormControl } from '@sd-angular/core/forms/models';
5
+ import { Color } from '@sd-angular/core/utilities/models';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class SdRadio implements OnInit, AfterViewInit, OnDestroy {
7
8
  #private;
8
- ref: ChangeDetectorRef;
9
9
  id: string;
10
- readonly autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
10
+ formControl: SdFormControl;
11
+ readonly autoIdInput: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
12
+ readonly name: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
13
+ readonly form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, any>;
14
+ readonly label: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
15
+ readonly placeholder: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
16
+ readonly display: import("@angular/core").InputSignalWithTransform<"row" | "column", "row" | "column" | null | undefined>;
17
+ readonly items: import("@angular/core").InputSignalWithTransform<any[], any[] | null | undefined>;
18
+ readonly valueField: import("@angular/core").InputSignal<string>;
19
+ readonly displayField: import("@angular/core").InputSignal<string>;
20
+ readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
21
+ readonly inlineError: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
22
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
23
+ readonly viewed: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
24
+ readonly color: import("@angular/core").InputSignalWithTransform<Color, Color | null | undefined>;
25
+ readonly hyperlink: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
26
+ readonly model: import("@angular/core").ModelSignal<string | number | boolean | null | undefined>;
27
+ readonly sdSuffixDef: import("@angular/core").Signal<SdSuffixDefDirective | undefined>;
28
+ readonly sdLabelDef: import("@angular/core").Signal<SdLabelDefDirective | undefined>;
29
+ readonly sdViewDef: import("@angular/core").Signal<SdViewDefDirective<any, any> | undefined>;
30
+ readonly sdChange: import("@angular/core").OutputEmitterRef<unknown>;
31
+ readonly sdSelection: import("@angular/core").OutputEmitterRef<{
32
+ value: any | any[];
33
+ item?: any;
34
+ }>;
11
35
  readonly autoId: import("@angular/core").Signal<string | undefined>;
36
+ readonly normalizedItems: import("@angular/core").Signal<any[]>;
12
37
  readonly dataDisabled: import("@angular/core").Signal<"true" | "false">;
13
38
  readonly dataEmpty: import("@angular/core").Signal<"true" | "false">;
14
39
  readonly dataValue: import("@angular/core").Signal<string>;
15
40
  readonly dataRequired: import("@angular/core").Signal<"true" | "false">;
16
- set name(val: string | undefined);
17
- formControl: SdFormControl;
18
- set form(val: NgForm | FormGroup | undefined | null);
19
- label?: string;
20
- placeholder?: string;
21
- display: 'row' | 'column';
22
- set _display(display: 'row' | 'column' | undefined | null);
23
- set model(value: number | string | boolean);
24
- items: any[];
25
- set pItems(items: any[] | undefined);
26
- valueField: string;
27
- displayField: string;
28
- required: boolean;
29
- set _required(val: boolean | '' | undefined | null);
30
- inlineError?: string;
31
- set _inlineError(val: string);
32
- set disabled(val: boolean | '' | undefined | null);
33
- viewed: boolean;
34
- set _viewed(val: boolean | '' | undefined | null);
35
- hyperlink?: string | null;
36
- sdSuffixDef?: SdSuffixDefDirective;
37
- sdLabelDef?: SdLabelDefDirective;
38
- sdViewDef?: SdViewDefDirective;
39
- modelChange: EventEmitter<any>;
40
- sdChange: EventEmitter<any>;
41
- sdSelection: EventEmitter<{
42
- value: any | any[];
43
- item?: any;
44
- }>;
45
- constructor(ref: ChangeDetectorRef);
46
- get viewedText(): any;
41
+ readonly viewedText: import("@angular/core").Signal<any>;
42
+ constructor();
47
43
  ngOnInit(): void;
48
44
  ngAfterViewInit(): void;
49
45
  ngOnDestroy(): void;
50
- customInlineErrorValidator(): ValidatorFn;
51
46
  reValidate: () => void;
52
47
  static ɵfac: i0.ɵɵFactoryDeclaration<SdRadio, never>;
53
- static ɵcmp: i0.ɵɵComponentDeclaration<SdRadio, "sd-radio", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "_display": { "alias": "display"; "required": false; }; "model": { "alias": "model"; "required": false; }; "pItems": { "alias": "items"; "required": false; }; "valueField": { "alias": "valueField"; "required": true; }; "displayField": { "alias": "displayField"; "required": true; }; "_required": { "alias": "required"; "required": false; }; "_inlineError": { "alias": "inlineError"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "_viewed": { "alias": "viewed"; "required": false; }; "hyperlink": { "alias": "hyperlink"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["sdSuffixDef", "sdLabelDef", "sdViewDef"], never, true, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdRadio, "sd-radio", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": true; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": true; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; }, { "model": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["sdSuffixDef", "sdLabelDef", "sdViewDef"], never, true, never>;
54
49
  }
@@ -1,6 +1,6 @@
1
1
  import { OnInit, // THÊM IMPORT NÀY
2
2
  Signal, TemplateRef } from '@angular/core';
3
- import { FormControl, FormGroup, ValidatorFn } from '@angular/forms';
3
+ import { FormControl, FormGroup } from '@angular/forms';
4
4
  import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
5
5
  import { MatInput } from '@angular/material/input';
6
6
  import { MatSelect, MatSelectChange } from '@angular/material/select';
@@ -15,8 +15,8 @@ export declare class SdSelect<T extends object | string | number = Record<string
15
15
  selectRef: Signal<MatSelect | undefined>;
16
16
  sdLabelTemplate: Signal<TemplateRef<any> | undefined>;
17
17
  sdValueTemplate: Signal<TemplateRef<any> | undefined>;
18
- itemDef: Signal<SdItemDefDefDirective | undefined>;
19
- sdViewDef: Signal<SdViewDefDirective | undefined>;
18
+ itemDef: Signal<SdItemDefDefDirective<any> | undefined>;
19
+ sdViewDef: Signal<SdViewDefDirective<any, any> | undefined>;
20
20
  autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
21
21
  autoId: Signal<string | undefined>;
22
22
  readonly dataDisabled: Signal<"true" | "false">;
@@ -44,6 +44,8 @@ export declare class SdSelect<T extends object | string | number = Record<string
44
44
  disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
45
45
  viewed: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
46
46
  multiple: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
47
+ /** Flatten the field chrome to a chip-friendly trigger (value + caret only). */
48
+ bare: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
47
49
  validator: import("@angular/core").InputSignal<SdCustomValidator | undefined>;
48
50
  inlineError: import("@angular/core").InputSignal<string | undefined>;
49
51
  /**
@@ -78,13 +80,14 @@ export declare class SdSelect<T extends object | string | number = Record<string
78
80
  updatePanelWidth: () => void;
79
81
  constructor();
80
82
  ngOnInit(): void;
81
- customInlineErrorValidator(): ValidatorFn;
82
83
  onSelectionChange: (change: MatSelectChange) => void;
83
84
  reValidate: () => void;
84
85
  clear: ($event?: any) => void;
85
86
  onClick: () => void;
86
87
  focus: () => void;
88
+ /** Open the select panel programmatically (anchors to the mat-select trigger). */
89
+ open: () => void;
87
90
  onOpenedChange: (isOpened: boolean) => void;
88
91
  static ɵfac: i0.ɵɵFactoryDeclaration<SdSelect<any>, never>;
89
- static ɵcmp: i0.ɵɵ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; }; "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>;
92
+ static ɵcmp: i0.ɵɵ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; }; "bare": { "alias": "bare"; "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>;
90
93
  }
@@ -1,37 +1,32 @@
1
- import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
- import { FormGroup, NgForm } from '@angular/forms';
1
+ import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
3
  import { SdFormControl } from '@sd-angular/core/forms/models';
4
- import { SdColor } from '@sd-angular/core/utilities/models';
4
+ import { Color } from '@sd-angular/core/utilities/models';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class SdSwitch implements OnInit, AfterViewInit, OnDestroy {
7
7
  #private;
8
- private ref;
9
8
  id: string;
10
- readonly autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
9
+ formControl: SdFormControl;
10
+ readonly autoIdInput: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
11
+ readonly name: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
12
+ readonly form: import("@angular/core").InputSignalWithTransform<FormGroup<any> | undefined, any>;
13
+ readonly label: import("@angular/core").InputSignalWithTransform<string | undefined, string | null | undefined>;
14
+ readonly color: import("@angular/core").InputSignalWithTransform<Color, Color | null | undefined>;
15
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
16
+ readonly viewed: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
17
+ readonly hideInlineError: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
18
+ readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
19
+ readonly model: import("@angular/core").ModelSignal<boolean | null | undefined>;
20
+ readonly sdChange: import("@angular/core").OutputEmitterRef<unknown>;
11
21
  readonly autoId: import("@angular/core").Signal<string | undefined>;
12
22
  readonly dataDisabled: import("@angular/core").Signal<"true" | "false">;
13
23
  readonly dataEmpty: import("@angular/core").Signal<"true" | "false">;
14
24
  readonly dataValue: import("@angular/core").Signal<string>;
15
25
  readonly dataRequired: import("@angular/core").Signal<"true" | "false">;
16
- set _name(val: string | undefined);
17
- set form(val: NgForm | FormGroup | undefined | null);
18
- label?: string;
19
- set _label(val: string | undefined);
20
- color?: SdColor;
21
- set _color(val: SdColor | undefined | null);
22
- set disabled(val: boolean | '' | undefined | null);
23
- set model(value: boolean | undefined | null);
24
- modelChange: EventEmitter<any>;
25
- hideInlineError: boolean;
26
- set _hideInlineError(val: boolean | '');
27
- required: boolean;
28
- set _required(val: boolean | '' | undefined | null);
29
- sdChange: EventEmitter<any>;
30
- formControl: SdFormControl;
31
- constructor(ref: ChangeDetectorRef);
26
+ constructor();
32
27
  ngOnInit(): void;
33
28
  ngAfterViewInit(): void;
34
29
  ngOnDestroy(): void;
35
30
  static ɵfac: i0.ɵɵFactoryDeclaration<SdSwitch, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<SdSwitch, "sd-switch", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "_name": { "alias": "name"; "required": false; }; "form": { "alias": "form"; "required": false; }; "_label": { "alias": "label"; "required": false; }; "_color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "model": { "alias": "model"; "required": false; }; "_hideInlineError": { "alias": "hideInlineError"; "required": false; }; "_required": { "alias": "required"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, never, never, true, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<SdSwitch, "sd-switch", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; }, { "model": "modelChange"; "sdChange": "sdChange"; }, never, never, true, never>;
37
32
  }
@@ -1,5 +1,5 @@
1
1
  import { AfterViewInit, ElementRef, OnDestroy, OnInit } from '@angular/core';
2
- import { FormGroup, ValidatorFn } from '@angular/forms';
2
+ import { FormGroup } from '@angular/forms';
3
3
  import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
4
4
  import { SdLabelDefDirective, SdSuffixDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
5
5
  import { SdCustomValidator, SdFormControl } from '@sd-angular/core/forms/models';
@@ -8,7 +8,7 @@ export declare class SdTextarea implements OnInit, AfterViewInit, OnDestroy {
8
8
  #private;
9
9
  id: string;
10
10
  textareaRef: import("@angular/core").Signal<ElementRef<HTMLTextAreaElement> | undefined>;
11
- sdViewDef: import("@angular/core").Signal<SdViewDefDirective | undefined>;
11
+ sdViewDef: import("@angular/core").Signal<SdViewDefDirective<any, any> | undefined>;
12
12
  sdLabelDef: import("@angular/core").Signal<SdLabelDefDirective | undefined>;
13
13
  sdSuffixDef: import("@angular/core").Signal<SdSuffixDefDirective | undefined>;
14
14
  autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
@@ -57,7 +57,6 @@ export declare class SdTextarea implements OnInit, AfterViewInit, OnDestroy {
57
57
  onClick: () => void;
58
58
  blur: () => void;
59
59
  focus: () => void;
60
- customInlineErrorValidator(): ValidatorFn;
61
60
  getCurrentLength: () => number;
62
61
  isMaxlengthExceeded: () => boolean;
63
62
  static ɵfac: i0.ɵɵFactoryDeclaration<SdTextarea, never>;
package/i18n/src/en.d.ts CHANGED
@@ -65,6 +65,7 @@ export declare const EN_MESSAGES: {
65
65
  readonly 'core.operator.end-with.display': "Ends with";
66
66
  readonly 'core.operator.in.display': "In";
67
67
  readonly 'core.operator.not-in.display': "Not in";
68
+ readonly 'core.operator.between.display': "Between";
68
69
  readonly 'core.operator.null.display': "Is empty";
69
70
  readonly 'core.operator.not-null.display': "Is not empty";
70
71
  readonly 'core.handler.global-error.update-title': "A NEW SYSTEM UPDATE IS AVAILABLE";
@@ -130,6 +131,10 @@ export declare const EN_MESSAGES: {
130
131
  readonly 'core.form.input-number.min': "Value must not be less than {min}";
131
132
  readonly 'core.form.input-number.max': "Value must not be greater than {max}";
132
133
  readonly 'core.form.radio.required': "Please enter information";
134
+ readonly 'core.form.switch.on': "On";
135
+ readonly 'core.form.switch.off': "Off";
136
+ readonly 'core.form.checkbox.checked': "Yes";
137
+ readonly 'core.form.checkbox.unchecked': "No";
133
138
  readonly 'core.form.select.required': "Please enter information";
134
139
  readonly 'core.form.textarea.required': "Please enter information";
135
140
  readonly 'core.form.textarea.maxlength': "Maximum characters: {max}";