@ngneers/controls 0.0.1-next.0

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 (186) hide show
  1. package/fesm2022/ngneers-controls-accordion.mjs +234 -0
  2. package/fesm2022/ngneers-controls-accordion.mjs.map +1 -0
  3. package/fesm2022/ngneers-controls-api-ng.mjs +959 -0
  4. package/fesm2022/ngneers-controls-api-ng.mjs.map +1 -0
  5. package/fesm2022/ngneers-controls-api-resize.mjs +712 -0
  6. package/fesm2022/ngneers-controls-api-resize.mjs.map +1 -0
  7. package/fesm2022/ngneers-controls-api.mjs +347 -0
  8. package/fesm2022/ngneers-controls-api.mjs.map +1 -0
  9. package/fesm2022/ngneers-controls-avatar.mjs +77 -0
  10. package/fesm2022/ngneers-controls-avatar.mjs.map +1 -0
  11. package/fesm2022/ngneers-controls-base.mjs +620 -0
  12. package/fesm2022/ngneers-controls-base.mjs.map +1 -0
  13. package/fesm2022/ngneers-controls-breadcrumb.mjs +100 -0
  14. package/fesm2022/ngneers-controls-breadcrumb.mjs.map +1 -0
  15. package/fesm2022/ngneers-controls-button-group.mjs +110 -0
  16. package/fesm2022/ngneers-controls-button-group.mjs.map +1 -0
  17. package/fesm2022/ngneers-controls-button.mjs +83 -0
  18. package/fesm2022/ngneers-controls-button.mjs.map +1 -0
  19. package/fesm2022/ngneers-controls-calendar-time-CJT5AFlA.mjs +74 -0
  20. package/fesm2022/ngneers-controls-calendar-time-CJT5AFlA.mjs.map +1 -0
  21. package/fesm2022/ngneers-controls-calendar.mjs +801 -0
  22. package/fesm2022/ngneers-controls-calendar.mjs.map +1 -0
  23. package/fesm2022/ngneers-controls-checkbox.mjs +63 -0
  24. package/fesm2022/ngneers-controls-checkbox.mjs.map +1 -0
  25. package/fesm2022/ngneers-controls-chip.mjs +55 -0
  26. package/fesm2022/ngneers-controls-chip.mjs.map +1 -0
  27. package/fesm2022/ngneers-controls-default-icons.mjs +82 -0
  28. package/fesm2022/ngneers-controls-default-icons.mjs.map +1 -0
  29. package/fesm2022/ngneers-controls-defer.mjs +72 -0
  30. package/fesm2022/ngneers-controls-defer.mjs.map +1 -0
  31. package/fesm2022/ngneers-controls-dialog.mjs +407 -0
  32. package/fesm2022/ngneers-controls-dialog.mjs.map +1 -0
  33. package/fesm2022/ngneers-controls-directives.mjs +498 -0
  34. package/fesm2022/ngneers-controls-directives.mjs.map +1 -0
  35. package/fesm2022/ngneers-controls-drawer.mjs +271 -0
  36. package/fesm2022/ngneers-controls-drawer.mjs.map +1 -0
  37. package/fesm2022/ngneers-controls-edit-inplace.mjs +127 -0
  38. package/fesm2022/ngneers-controls-edit-inplace.mjs.map +1 -0
  39. package/fesm2022/ngneers-controls-errors.mjs +329 -0
  40. package/fesm2022/ngneers-controls-errors.mjs.map +1 -0
  41. package/fesm2022/ngneers-controls-filter.mjs +708 -0
  42. package/fesm2022/ngneers-controls-filter.mjs.map +1 -0
  43. package/fesm2022/ngneers-controls-hint.mjs +153 -0
  44. package/fesm2022/ngneers-controls-hint.mjs.map +1 -0
  45. package/fesm2022/ngneers-controls-i18n-translations-de.mjs +170 -0
  46. package/fesm2022/ngneers-controls-i18n-translations-de.mjs.map +1 -0
  47. package/fesm2022/ngneers-controls-i18n-translations-en.mjs +170 -0
  48. package/fesm2022/ngneers-controls-i18n-translations-en.mjs.map +1 -0
  49. package/fesm2022/ngneers-controls-i18n.mjs +57 -0
  50. package/fesm2022/ngneers-controls-i18n.mjs.map +1 -0
  51. package/fesm2022/ngneers-controls-icon.mjs +195 -0
  52. package/fesm2022/ngneers-controls-icon.mjs.map +1 -0
  53. package/fesm2022/ngneers-controls-inplace.mjs +150 -0
  54. package/fesm2022/ngneers-controls-inplace.mjs.map +1 -0
  55. package/fesm2022/ngneers-controls-input-field.mjs +165 -0
  56. package/fesm2022/ngneers-controls-input-field.mjs.map +1 -0
  57. package/fesm2022/ngneers-controls-input.mjs +72 -0
  58. package/fesm2022/ngneers-controls-input.mjs.map +1 -0
  59. package/fesm2022/ngneers-controls-item-view.mjs +473 -0
  60. package/fesm2022/ngneers-controls-item-view.mjs.map +1 -0
  61. package/fesm2022/ngneers-controls-list-box.mjs +281 -0
  62. package/fesm2022/ngneers-controls-list-box.mjs.map +1 -0
  63. package/fesm2022/ngneers-controls-mask-input.mjs +888 -0
  64. package/fesm2022/ngneers-controls-mask-input.mjs.map +1 -0
  65. package/fesm2022/ngneers-controls-menu.mjs +371 -0
  66. package/fesm2022/ngneers-controls-menu.mjs.map +1 -0
  67. package/fesm2022/ngneers-controls-message.mjs +30 -0
  68. package/fesm2022/ngneers-controls-message.mjs.map +1 -0
  69. package/fesm2022/ngneers-controls-number-input.mjs +366 -0
  70. package/fesm2022/ngneers-controls-number-input.mjs.map +1 -0
  71. package/fesm2022/ngneers-controls-paginator.mjs +129 -0
  72. package/fesm2022/ngneers-controls-paginator.mjs.map +1 -0
  73. package/fesm2022/ngneers-controls-popover.mjs +215 -0
  74. package/fesm2022/ngneers-controls-popover.mjs.map +1 -0
  75. package/fesm2022/ngneers-controls-progress.mjs +98 -0
  76. package/fesm2022/ngneers-controls-progress.mjs.map +1 -0
  77. package/fesm2022/ngneers-controls-radio.mjs +152 -0
  78. package/fesm2022/ngneers-controls-radio.mjs.map +1 -0
  79. package/fesm2022/ngneers-controls-roving-focus.mjs +323 -0
  80. package/fesm2022/ngneers-controls-roving-focus.mjs.map +1 -0
  81. package/fesm2022/ngneers-controls-scroll-shadow.mjs +65 -0
  82. package/fesm2022/ngneers-controls-scroll-shadow.mjs.map +1 -0
  83. package/fesm2022/ngneers-controls-scroller.mjs +308 -0
  84. package/fesm2022/ngneers-controls-scroller.mjs.map +1 -0
  85. package/fesm2022/ngneers-controls-select-button.mjs +58 -0
  86. package/fesm2022/ngneers-controls-select-button.mjs.map +1 -0
  87. package/fesm2022/ngneers-controls-select.mjs +417 -0
  88. package/fesm2022/ngneers-controls-select.mjs.map +1 -0
  89. package/fesm2022/ngneers-controls-slider.mjs +167 -0
  90. package/fesm2022/ngneers-controls-slider.mjs.map +1 -0
  91. package/fesm2022/ngneers-controls-snackbar.mjs +414 -0
  92. package/fesm2022/ngneers-controls-snackbar.mjs.map +1 -0
  93. package/fesm2022/ngneers-controls-spin-buttons.mjs +126 -0
  94. package/fesm2022/ngneers-controls-spin-buttons.mjs.map +1 -0
  95. package/fesm2022/ngneers-controls-spinner.mjs +184 -0
  96. package/fesm2022/ngneers-controls-spinner.mjs.map +1 -0
  97. package/fesm2022/ngneers-controls-splitter.mjs +604 -0
  98. package/fesm2022/ngneers-controls-splitter.mjs.map +1 -0
  99. package/fesm2022/ngneers-controls-state.mjs +185 -0
  100. package/fesm2022/ngneers-controls-state.mjs.map +1 -0
  101. package/fesm2022/ngneers-controls-switch.mjs +39 -0
  102. package/fesm2022/ngneers-controls-switch.mjs.map +1 -0
  103. package/fesm2022/ngneers-controls-table.mjs +2634 -0
  104. package/fesm2022/ngneers-controls-table.mjs.map +1 -0
  105. package/fesm2022/ngneers-controls-tabs.mjs +336 -0
  106. package/fesm2022/ngneers-controls-tabs.mjs.map +1 -0
  107. package/fesm2022/ngneers-controls-tag.mjs +30 -0
  108. package/fesm2022/ngneers-controls-tag.mjs.map +1 -0
  109. package/fesm2022/ngneers-controls-toast.mjs +350 -0
  110. package/fesm2022/ngneers-controls-toast.mjs.map +1 -0
  111. package/fesm2022/ngneers-controls-toggle-button.mjs +70 -0
  112. package/fesm2022/ngneers-controls-toggle-button.mjs.map +1 -0
  113. package/fesm2022/ngneers-controls-tooltip.mjs +506 -0
  114. package/fesm2022/ngneers-controls-tooltip.mjs.map +1 -0
  115. package/fesm2022/ngneers-controls-tree.mjs +599 -0
  116. package/fesm2022/ngneers-controls-tree.mjs.map +1 -0
  117. package/fesm2022/ngneers-controls-upload.mjs +377 -0
  118. package/fesm2022/ngneers-controls-upload.mjs.map +1 -0
  119. package/fesm2022/ngneers-controls-utils-ng.mjs +411 -0
  120. package/fesm2022/ngneers-controls-utils-ng.mjs.map +1 -0
  121. package/fesm2022/ngneers-controls-utils.mjs +261 -0
  122. package/fesm2022/ngneers-controls-utils.mjs.map +1 -0
  123. package/fesm2022/ngneers-controls.mjs +6 -0
  124. package/fesm2022/ngneers-controls.mjs.map +1 -0
  125. package/package.json +302 -0
  126. package/types/ngneers-controls-accordion.d.ts +139 -0
  127. package/types/ngneers-controls-api-ng.d.ts +364 -0
  128. package/types/ngneers-controls-api-resize.d.ts +318 -0
  129. package/types/ngneers-controls-api.d.ts +145 -0
  130. package/types/ngneers-controls-avatar.d.ts +54 -0
  131. package/types/ngneers-controls-base.d.ts +277 -0
  132. package/types/ngneers-controls-breadcrumb.d.ts +272 -0
  133. package/types/ngneers-controls-button-group.d.ts +46 -0
  134. package/types/ngneers-controls-button.d.ts +48 -0
  135. package/types/ngneers-controls-calendar.d.ts +466 -0
  136. package/types/ngneers-controls-checkbox.d.ts +40 -0
  137. package/types/ngneers-controls-chip.d.ts +202 -0
  138. package/types/ngneers-controls-default-icons.d.ts +5 -0
  139. package/types/ngneers-controls-defer.d.ts +48 -0
  140. package/types/ngneers-controls-dialog.d.ts +399 -0
  141. package/types/ngneers-controls-directives.d.ts +171 -0
  142. package/types/ngneers-controls-drawer.d.ts +308 -0
  143. package/types/ngneers-controls-edit-inplace.d.ts +263 -0
  144. package/types/ngneers-controls-errors.d.ts +155 -0
  145. package/types/ngneers-controls-filter.d.ts +609 -0
  146. package/types/ngneers-controls-hint.d.ts +88 -0
  147. package/types/ngneers-controls-i18n-translations-de.d.ts +164 -0
  148. package/types/ngneers-controls-i18n-translations-en.d.ts +164 -0
  149. package/types/ngneers-controls-i18n.d.ts +186 -0
  150. package/types/ngneers-controls-icon.d.ts +68 -0
  151. package/types/ngneers-controls-inplace.d.ts +98 -0
  152. package/types/ngneers-controls-input-field.d.ts +248 -0
  153. package/types/ngneers-controls-input.d.ts +30 -0
  154. package/types/ngneers-controls-item-view.d.ts +215 -0
  155. package/types/ngneers-controls-list-box.d.ts +334 -0
  156. package/types/ngneers-controls-mask-input.d.ts +434 -0
  157. package/types/ngneers-controls-menu.d.ts +192 -0
  158. package/types/ngneers-controls-message.d.ts +21 -0
  159. package/types/ngneers-controls-number-input.d.ts +146 -0
  160. package/types/ngneers-controls-paginator.d.ts +255 -0
  161. package/types/ngneers-controls-popover.d.ts +116 -0
  162. package/types/ngneers-controls-progress.d.ts +49 -0
  163. package/types/ngneers-controls-radio.d.ts +91 -0
  164. package/types/ngneers-controls-roving-focus.d.ts +107 -0
  165. package/types/ngneers-controls-scroll-shadow.d.ts +25 -0
  166. package/types/ngneers-controls-scroller.d.ts +151 -0
  167. package/types/ngneers-controls-select-button.d.ts +51 -0
  168. package/types/ngneers-controls-select.d.ts +409 -0
  169. package/types/ngneers-controls-slider.d.ts +57 -0
  170. package/types/ngneers-controls-snackbar.d.ts +330 -0
  171. package/types/ngneers-controls-spin-buttons.d.ts +69 -0
  172. package/types/ngneers-controls-spinner.d.ts +117 -0
  173. package/types/ngneers-controls-splitter.d.ts +465 -0
  174. package/types/ngneers-controls-state.d.ts +102 -0
  175. package/types/ngneers-controls-switch.d.ts +18 -0
  176. package/types/ngneers-controls-table.d.ts +3127 -0
  177. package/types/ngneers-controls-tabs.d.ts +118 -0
  178. package/types/ngneers-controls-tag.d.ts +21 -0
  179. package/types/ngneers-controls-toast.d.ts +298 -0
  180. package/types/ngneers-controls-toggle-button.d.ts +48 -0
  181. package/types/ngneers-controls-tooltip.d.ts +189 -0
  182. package/types/ngneers-controls-tree.d.ts +409 -0
  183. package/types/ngneers-controls-upload.d.ts +347 -0
  184. package/types/ngneers-controls-utils-ng.d.ts +129 -0
  185. package/types/ngneers-controls-utils.d.ts +130 -0
  186. package/types/ngneers-controls.d.ts +2 -0
@@ -0,0 +1,98 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
4
+ import * as _ngneers_controls_themes from '@ngneers/controls-themes';
5
+ import { NgnBase } from '@ngneers/controls/base';
6
+
7
+ type ContentTemplateType = {
8
+ $implicit: {
9
+ close: () => void;
10
+ };
11
+ };
12
+
13
+ declare abstract class InplaceTemplates extends NgnBase<'inplace'> {
14
+ private readonly _userDisplayTemplate;
15
+ /**
16
+ * Set a custom template for the display.
17
+ * Can also be set using an `<ng-template>` element with `#display` template reference variable.
18
+ */
19
+ readonly templateDisplay: _angular_core.InputSignal<TemplateRef<unknown> | null>;
20
+ protected readonly displayTemplate: _angular_core.Signal<TemplateRef<unknown> | null>;
21
+ /**
22
+ * Context for the display template.
23
+ */
24
+ readonly templateDisplayContext: _angular_core.InputSignal<unknown>;
25
+ private readonly _userContentTemplate;
26
+ /**
27
+ * Set a custom template for the content.
28
+ * Can also be set using an `<ng-template>` element with `#content` template reference variable.
29
+ */
30
+ readonly templateContent: _angular_core.InputSignal<TemplateRef<ContentTemplateType> | null>;
31
+ protected readonly contentTemplate: _angular_core.Signal<TemplateRef<ContentTemplateType> | null>;
32
+ /**
33
+ * Context for the content template.
34
+ */
35
+ readonly templateContentContext: _angular_core.InputSignal<unknown>;
36
+ /**
37
+ * Types for the inplace templates.
38
+ */
39
+ readonly templateTypes: {
40
+ /**
41
+ * Type of the template variable for the content template.
42
+ */
43
+ content: ContentTemplateType;
44
+ } & {
45
+ $implicit: {
46
+ content: Partial<ContentTemplateType>;
47
+ };
48
+ };
49
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InplaceTemplates, never>;
50
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<InplaceTemplates, never, never, { "templateDisplay": { "alias": "templateDisplay"; "required": false; "isSignal": true; }; "templateDisplayContext": { "alias": "templateDisplayContext"; "required": false; "isSignal": true; }; "templateContent": { "alias": "templateContent"; "required": false; "isSignal": true; }; "templateContentContext": { "alias": "templateContentContext"; "required": false; "isSignal": true; }; }, {}, ["_userDisplayTemplate", "_userContentTemplate"], never, true, never>;
51
+ }
52
+
53
+ /**
54
+ * @category control
55
+ */
56
+ declare class NgnInplace extends InplaceTemplates {
57
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"inplace", ["root", "content", "display", "disabled"], readonly []>>;
58
+ protected readonly closeContent: () => void;
59
+ private readonly _displayTrigger;
60
+ private readonly _contentRef;
61
+ constructor();
62
+ /**
63
+ * Controls the visibility of the content.
64
+ */
65
+ readonly contentVisible: _angular_core.ModelSignal<boolean>;
66
+ /**
67
+ * Whether the content is loaded lazily.
68
+ * @default true
69
+ */
70
+ readonly lazy: _angular_core.InputSignalWithTransform<boolean, unknown>;
71
+ /**
72
+ * Whether the content is cached when closed.
73
+ * @default false
74
+ */
75
+ readonly cache: _angular_core.InputSignalWithTransform<boolean, unknown>;
76
+ /**
77
+ * Explicitly apply disabled state styling
78
+ * @default false
79
+ */
80
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
81
+ /**
82
+ * Switches to the content view.
83
+ */
84
+ switchToContent(): void;
85
+ /**
86
+ * Switches to the display view.
87
+ */
88
+ switchToDisplay(): void;
89
+ /**
90
+ * Toggles between the display and content views.
91
+ */
92
+ toggle(): void;
93
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnInplace, never>;
94
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnInplace, "ngn-inplace", never, { "contentVisible": { "alias": "contentVisible"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "cache": { "alias": "cache"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "contentVisible": "contentVisibleChange"; }, never, never, true, never>;
95
+ }
96
+
97
+ export { NgnInplace };
98
+ export type { ContentTemplateType };
@@ -0,0 +1,248 @@
1
+ import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
2
+ import * as _iconify_types from '@iconify/types';
3
+ import * as _angular_core from '@angular/core';
4
+ import * as _ngneers_signal_translate from '@ngneers/signal-translate';
5
+ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
6
+ import * as _ngneers_controls_themes from '@ngneers/controls-themes';
7
+ import { NgnBase } from '@ngneers/controls/base';
8
+
9
+ /**
10
+ * @category control
11
+ */
12
+ declare class NgnInputField extends NgnBase<'inputField'> {
13
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"input-field", ["root", "host", "disabled", "readonly", "invalid", "label", "clear-button", `labelKind-${string}`], readonly [{
14
+ readonly class: "input";
15
+ readonly template: _ngneers_controls_themes.ControlTemplate<"input", ["root", "invalid", "empty"], readonly []>;
16
+ readonly projected: true;
17
+ }]>>;
18
+ protected readonly i18n: _ngneers_signal_translate.TranslationsSignal<{
19
+ calendar: {
20
+ today: string;
21
+ input: string;
22
+ selectYear: string;
23
+ selectMonth: string;
24
+ previousMonth: string;
25
+ nextMonth: string;
26
+ weekdays: {
27
+ monday: string;
28
+ tuesday: string;
29
+ wednesday: string;
30
+ thursday: string;
31
+ friday: string;
32
+ saturday: string;
33
+ sunday: string;
34
+ };
35
+ weekdaysShort: {
36
+ monday: string;
37
+ tuesday: string;
38
+ wednesday: string;
39
+ thursday: string;
40
+ friday: string;
41
+ saturday: string;
42
+ sunday: string;
43
+ };
44
+ months: {
45
+ january: string;
46
+ february: string;
47
+ march: string;
48
+ april: string;
49
+ may: string;
50
+ june: string;
51
+ july: string;
52
+ august: string;
53
+ september: string;
54
+ october: string;
55
+ november: string;
56
+ december: string;
57
+ };
58
+ };
59
+ editInplace: {
60
+ placeholder: string;
61
+ confirm: string;
62
+ };
63
+ filter: {
64
+ noFilter: string;
65
+ addCondition: string;
66
+ removeCondition: string;
67
+ operator: string;
68
+ value: string;
69
+ clear: string;
70
+ apply: string;
71
+ cancel: string;
72
+ matchModeLabel: string;
73
+ match: {
74
+ all: string;
75
+ any: string;
76
+ and: string;
77
+ or: string;
78
+ };
79
+ selected: string;
80
+ conditions: string;
81
+ operators: {
82
+ isEqual: string;
83
+ isNotEqual: string;
84
+ contains: string;
85
+ startsWith: string;
86
+ endsWith: string;
87
+ in: string;
88
+ isEmpty: string;
89
+ isNotEmpty: string;
90
+ greaterThan: string;
91
+ greaterThanOrEqual: string;
92
+ lessThan: string;
93
+ lessThanOrEqual: string;
94
+ after: string;
95
+ onOrAfter: string;
96
+ before: string;
97
+ onOrBefore: string;
98
+ isTrue: string;
99
+ isFalse: string;
100
+ custom: string;
101
+ };
102
+ };
103
+ splitter: {
104
+ handleLabel: string;
105
+ };
106
+ inputField: {
107
+ clearInput: string;
108
+ };
109
+ maskInput: {
110
+ roleDescription: string;
111
+ segmentRange: string;
112
+ optionSeparator: string;
113
+ };
114
+ drawer: {
115
+ close: string;
116
+ };
117
+ dialog: {
118
+ close: string;
119
+ };
120
+ chip: {
121
+ close: string;
122
+ };
123
+ breadcrumb: {
124
+ overflow: string;
125
+ };
126
+ toast: {
127
+ close: string;
128
+ region: string;
129
+ };
130
+ snackbar: {
131
+ close: string;
132
+ region: string;
133
+ severity: {
134
+ error: string;
135
+ warning: string;
136
+ success: string;
137
+ info: string;
138
+ };
139
+ };
140
+ upload: {
141
+ upload: string;
142
+ uploadNamed: string;
143
+ retryNamed: string;
144
+ cancelNamed: string;
145
+ removeNamed: string;
146
+ progressNamed: string;
147
+ };
148
+ select: {
149
+ filterOptions: string;
150
+ };
151
+ paginator: {
152
+ previousPage: string;
153
+ nextPage: string;
154
+ };
155
+ listBox: {
156
+ noItemsFound: string;
157
+ };
158
+ tree: {
159
+ noItemsFound: string;
160
+ };
161
+ table: {
162
+ selectAllRows: string;
163
+ selectRow: string;
164
+ sortedBy: string;
165
+ sortAscending: string;
166
+ sortDescending: string;
167
+ sortCleared: string;
168
+ selectedCount: string;
169
+ page: string;
170
+ resultCount: string;
171
+ };
172
+ state: {
173
+ loading: string;
174
+ success: string;
175
+ warning: string;
176
+ error: string;
177
+ cancelled: string;
178
+ };
179
+ }, "_">;
180
+ /**
181
+ * Label for the input field
182
+ * @default null
183
+ */
184
+ readonly label: _angular_core.InputSignal<string | null>;
185
+ /**
186
+ * Sets the `aria-labelledby` attribute on the input element
187
+ * @default null
188
+ */
189
+ readonly labelledBy: _angular_core.InputSignal<string | null>;
190
+ /**
191
+ * The kind of label presentation
192
+ * @todo add link to custom kind documentation subsection label
193
+ * @default undefined
194
+ */
195
+ readonly labelKind: _angular_core.InputSignal<unknown>;
196
+ /**
197
+ * ID for the input element. Defaults to a generated id.
198
+ */
199
+ readonly inputId: _angular_core.InputSignal<string>;
200
+ /**
201
+ * Show clear button
202
+ * @default false
203
+ */
204
+ readonly showClearButton: _angular_core.InputSignalWithTransform<boolean, unknown>;
205
+ /**
206
+ * Custom icon for the clear button. Use with {@link showClearButton}.
207
+ * @default undefined
208
+ */
209
+ readonly iconClearButton: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
210
+ /**
211
+ * Tabindex for the input field itself.
212
+ * When another focusable (input) element is present inside the input field, this should be set to -1.
213
+ * @default -1
214
+ */
215
+ readonly tabindex: _angular_core.InputSignal<number>;
216
+ /**
217
+ * Explicitly apply invalid state styling
218
+ * @default false
219
+ */
220
+ readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
221
+ /**
222
+ * Explicitly apply readonly state styling
223
+ * @default false
224
+ */
225
+ readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
226
+ /**
227
+ * Explicitly apply disabled state styling
228
+ * @default false
229
+ */
230
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
231
+ private readonly _projectedControls;
232
+ /**
233
+ * The projected primary control (input, mask, calendar, …), used to delegate
234
+ * pointer focus, clearing and stepping. Auxiliary controls inside the field
235
+ * (buttons, icons, spin buttons, …) are skipped via `isFieldControl`, so
236
+ * their placement/order never shadows the actual input.
237
+ */
238
+ readonly control: _angular_core.Signal<NgnBase<never> | undefined>;
239
+ /** The primary control's element when it is a native input/textarea. */
240
+ private readonly _inputElement;
241
+ constructor();
242
+ protected clicked(event: MouseEvent): void;
243
+ protected clearButtonClicked(event: MouseEvent): void;
244
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnInputField, never>;
245
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnInputField, "ngn-input-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "labelledBy": { "alias": "labelledBy"; "required": false; "isSignal": true; }; "labelKind": { "alias": "labelKind"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "iconClearButton": { "alias": "iconClearButton"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, ["_projectedControls"], ["input, textarea", "*"], true, never>;
246
+ }
247
+
248
+ export { NgnInputField };
@@ -0,0 +1,30 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { AfterViewInit } from '@angular/core';
3
+ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
4
+ import * as _ngneers_controls_themes from '@ngneers/controls-themes';
5
+ import { NgnBase } from '@ngneers/controls/base';
6
+
7
+ /**
8
+ * @category control
9
+ */
10
+ declare class NgnInput extends NgnBase<'input'> implements AfterViewInit {
11
+ readonly isFieldControl = true;
12
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"input", ["root", "invalid", "empty"], readonly []>>;
13
+ /**
14
+ * Explicitly apply invalid state styling
15
+ * @default false
16
+ */
17
+ readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
18
+ /**
19
+ * The current value of the input, kept in sync with the native element in both directions.
20
+ * @default ''
21
+ */
22
+ readonly value: _angular_core.ModelSignal<string | null>;
23
+ private readonly _input;
24
+ ngAfterViewInit(): void;
25
+ constructor();
26
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnInput, never>;
27
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgnInput, "input[ngnInput], textarea[ngnInput]", ["ngnInput"], { "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
28
+ }
29
+
30
+ export { NgnInput };
@@ -0,0 +1,215 @@
1
+ import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
2
+ import { IconType } from '@ngneers/controls-custom-types';
3
+ import * as _iconify_types from '@iconify/types';
4
+ import * as _angular_core from '@angular/core';
5
+ import { TemplateRef, AfterViewInit } from '@angular/core';
6
+ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
7
+ import * as _ngneers_controls_themes from '@ngneers/controls-themes';
8
+ import { NgnBase } from '@ngneers/controls/base';
9
+
10
+ type OverflowStrategy = 'start' | 'end' | 'center' | 'aroundIndex';
11
+
12
+ type ItemOverflowLocation = 'start' | 'end' | 'center';
13
+ type OverflowOrderEntry = {
14
+ index: number;
15
+ location: ItemOverflowLocation;
16
+ };
17
+ type OverflowOrder = readonly OverflowOrderEntry[];
18
+
19
+ declare abstract class ItemViewTemplates<T> extends NgnBase<'itemView'> {
20
+ /**
21
+ * The template to be used for rendering each item in the item view.
22
+ * Can also be set using the `item` content child.
23
+ */
24
+ readonly templateItem: _angular_core.InputSignal<TemplateRef<Partial<{
25
+ $implicit: T;
26
+ index: number;
27
+ last: boolean;
28
+ first: boolean;
29
+ }>> | null>;
30
+ private readonly _userItemTemplate;
31
+ protected readonly itemTemplate: _angular_core.Signal<TemplateRef<Partial<{
32
+ $implicit: T;
33
+ index: number;
34
+ last: boolean;
35
+ first: boolean;
36
+ }>> | null>;
37
+ private readonly _defaultSeparatorTemplate;
38
+ private readonly _userSeparatorTemplate;
39
+ /**
40
+ * Set a custom template for the separators between items.
41
+ * Can also be set using an `<ng-template>` element with `#separator` template reference variable.
42
+ */
43
+ readonly templateSeparator: _angular_core.InputSignal<TemplateRef<{
44
+ $implicit: {
45
+ icon?: IconType;
46
+ character?: string;
47
+ };
48
+ }> | null>;
49
+ protected readonly separatorTemplate: _angular_core.Signal<TemplateRef<{
50
+ $implicit: {
51
+ icon?: IconType;
52
+ character?: string;
53
+ };
54
+ }>>;
55
+ private readonly _defaultOverflowItemTemplate;
56
+ private readonly _userOverflowItemTemplate;
57
+ /**
58
+ * Set a custom template for the overflow item.
59
+ * Can also be set using an `<ng-template>` element with `#overflow` template reference variable.
60
+ */
61
+ readonly templateOverflow: _angular_core.InputSignal<TemplateRef<{
62
+ $implicit: {
63
+ totalCount: number;
64
+ overflowCount: number;
65
+ overflowItems: T[];
66
+ };
67
+ }> | null>;
68
+ protected readonly overflowTemplate: _angular_core.Signal<TemplateRef<{
69
+ $implicit: {
70
+ totalCount: number;
71
+ overflowCount: number;
72
+ overflowItems: T[];
73
+ };
74
+ }>>;
75
+ /**
76
+ * Template types for the item-view.
77
+ * Can be used with the {@link NgnTemplate} directive for type safe ng-templates.
78
+ */
79
+ readonly templateTypes: {
80
+ item: {
81
+ $implicit: T;
82
+ index: number;
83
+ last: boolean;
84
+ first: boolean;
85
+ };
86
+ separator: {
87
+ $implicit: {
88
+ icon?: IconType;
89
+ character?: string;
90
+ };
91
+ };
92
+ overflow: {
93
+ $implicit: {
94
+ totalCount: number;
95
+ overflowCount: number;
96
+ overflowItems: T[];
97
+ };
98
+ };
99
+ } & {
100
+ $implicit: {
101
+ item: Partial<{
102
+ $implicit: T;
103
+ index: number;
104
+ last: boolean;
105
+ first: boolean;
106
+ }>;
107
+ separator: Partial<{
108
+ $implicit: {
109
+ icon?: IconType;
110
+ character?: string;
111
+ };
112
+ }>;
113
+ overflow: Partial<{
114
+ $implicit: {
115
+ totalCount: number;
116
+ overflowCount: number;
117
+ overflowItems: T[];
118
+ };
119
+ }>;
120
+ };
121
+ };
122
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ItemViewTemplates<any>, never>;
123
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ItemViewTemplates<any>, never, never, { "templateItem": { "alias": "templateItem"; "required": false; "isSignal": true; }; "templateSeparator": { "alias": "templateSeparator"; "required": false; "isSignal": true; }; "templateOverflow": { "alias": "templateOverflow"; "required": false; "isSignal": true; }; }, {}, ["_userItemTemplate", "_userSeparatorTemplate", "_userOverflowItemTemplate"], never, true, never>;
124
+ }
125
+
126
+ type RenderItem<T> = {
127
+ id: string | number;
128
+ kind: 'visibleItem';
129
+ item: T;
130
+ } | {
131
+ id: string | number;
132
+ kind: 'overflowItem';
133
+ location: ItemOverflowLocation;
134
+ item: T;
135
+ } | {
136
+ id: string;
137
+ kind: 'overflowIndicator';
138
+ visible: boolean;
139
+ items: T[];
140
+ hasSeparator: boolean;
141
+ };
142
+ /**
143
+ * @category control
144
+ */
145
+ declare class NgnItemView<T extends object, IdField extends keyof T> extends ItemViewTemplates<T> implements AfterViewInit {
146
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"item-view", ["root", "item", "item-overflowing", "more-items", "more-items-hidden", "more-items-default", "hidden-separator"], readonly []>>;
147
+ /**
148
+ * The key of the id property in the item object. This is used to track items in the template.
149
+ */
150
+ readonly idField: _angular_core.InputSignal<IdField>;
151
+ /**
152
+ * The items to be displayed in the item view.
153
+ * This is a required input and should be an array of items of type {@link T}.
154
+ */
155
+ readonly items: _angular_core.InputSignal<readonly T[]>;
156
+ /**
157
+ * A separator string (character) to be displayed between items. Set `true` for `,` or provide a custom string.
158
+ */
159
+ readonly separator: _angular_core.InputSignal<string | true | undefined>;
160
+ /**
161
+ * A separator icon to be displayed between items.
162
+ */
163
+ readonly iconItemSeparator: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
164
+ /**
165
+ * Strategy to use when there are more items than can be displayed in the available space.
166
+ * The value determines where the items should start to overflow.
167
+ * @default 'end'
168
+ */
169
+ readonly overflowStrategy: _angular_core.InputSignal<OverflowStrategy>;
170
+ /**
171
+ * The amount of items to keep visible after or before overflowing, depending on the {@link overflowStrategy}.
172
+ * @default 0
173
+ */
174
+ readonly overflowStrategyFreezeCount: _angular_core.InputSignal<number>;
175
+ /**
176
+ * Index of the item to be used as the overflow indicator when using the 'aroundIndex' overflow strategy.
177
+ * This input is only relevant when the {@link overflowStrategy} is set to 'aroundIndex'.
178
+ * @default 0
179
+ */
180
+ readonly overflowStrategyIndex: _angular_core.InputSignal<number>;
181
+ /**
182
+ * Set this to `true` for greatly improving performance when all items have the same width.
183
+ * Especially true for large lists of items.
184
+ *
185
+ * Only the first item is measured and its width is assumed for all others, instead
186
+ * of measuring every rendered item. The rendered structure is unchanged — overflowed
187
+ * items are still emitted as `role="listitem"` and the overflow indicator still shows
188
+ * the hidden count — so accessibility is unaffected. The tradeoff is correctness:
189
+ * if items are *not* actually the same width, the visible/overflow split will be wrong.
190
+ * @default false
191
+ */
192
+ readonly sameWidthItems: _angular_core.InputSignalWithTransform<boolean, unknown>;
193
+ private readonly _themeGap;
194
+ private readonly _isBrowser;
195
+ protected readonly separatorChar: _angular_core.Signal<string | undefined>;
196
+ private readonly _enableSizeMeasuring;
197
+ private readonly _renderedItemRefs;
198
+ private readonly _firstItemRef;
199
+ private readonly _firstItemWidth;
200
+ private readonly _renderedItemSizes;
201
+ private readonly _renderedItemWidths;
202
+ private readonly _containerSize;
203
+ private readonly _overflowItemRef;
204
+ private readonly _overflowItemSize;
205
+ protected readonly itemOverflowCheckOrder: _angular_core.Signal<OverflowOrder>;
206
+ protected readonly renderedItems: _angular_core.Signal<RenderItem<T>[]>;
207
+ /** Full content width as `px`; `null` until measured (respects sameWidthItems optimization). */
208
+ protected readonly contentWidthPx: _angular_core.Signal<string | null>;
209
+ ngAfterViewInit(): void;
210
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnItemView<any, any>, never>;
211
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnItemView<any, any>, "ngn-item-view", never, { "idField": { "alias": "idField"; "required": true; "isSignal": true; }; "items": { "alias": "items"; "required": true; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "iconItemSeparator": { "alias": "iconItemSeparator"; "required": false; "isSignal": true; }; "overflowStrategy": { "alias": "overflowStrategy"; "required": false; "isSignal": true; }; "overflowStrategyFreezeCount": { "alias": "overflowStrategyFreezeCount"; "required": false; "isSignal": true; }; "overflowStrategyIndex": { "alias": "overflowStrategyIndex"; "required": false; "isSignal": true; }; "sameWidthItems": { "alias": "sameWidthItems"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
212
+ }
213
+
214
+ export { NgnItemView };
215
+ export type { OverflowStrategy };