@ngneers/controls 0.0.1-pre1 → 0.0.1-pre2

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 (195) hide show
  1. package/LICENSE +21 -0
  2. package/fesm2022/ngneers-controls-accordion.mjs +194 -0
  3. package/fesm2022/ngneers-controls-accordion.mjs.map +1 -0
  4. package/fesm2022/ngneers-controls-api-ng.mjs +668 -0
  5. package/fesm2022/ngneers-controls-api-ng.mjs.map +1 -0
  6. package/fesm2022/ngneers-controls-api.mjs +256 -227
  7. package/fesm2022/ngneers-controls-api.mjs.map +1 -1
  8. package/fesm2022/ngneers-controls-avatar.mjs +70 -0
  9. package/fesm2022/ngneers-controls-avatar.mjs.map +1 -0
  10. package/fesm2022/ngneers-controls-base.mjs +397 -0
  11. package/fesm2022/ngneers-controls-base.mjs.map +1 -0
  12. package/fesm2022/ngneers-controls-breadcrumb.mjs +74 -0
  13. package/fesm2022/ngneers-controls-breadcrumb.mjs.map +1 -0
  14. package/fesm2022/ngneers-controls-button-group.mjs +51 -0
  15. package/fesm2022/ngneers-controls-button-group.mjs.map +1 -0
  16. package/fesm2022/ngneers-controls-button.mjs +62 -0
  17. package/fesm2022/ngneers-controls-button.mjs.map +1 -0
  18. package/fesm2022/ngneers-controls-calendar-time-C7UnIFzU.mjs +63 -0
  19. package/fesm2022/ngneers-controls-calendar-time-C7UnIFzU.mjs.map +1 -0
  20. package/fesm2022/ngneers-controls-calendar.mjs +468 -0
  21. package/fesm2022/ngneers-controls-calendar.mjs.map +1 -0
  22. package/fesm2022/ngneers-controls-checkbox.mjs +58 -0
  23. package/fesm2022/ngneers-controls-checkbox.mjs.map +1 -0
  24. package/fesm2022/ngneers-controls-chip.mjs +52 -0
  25. package/fesm2022/ngneers-controls-chip.mjs.map +1 -0
  26. package/fesm2022/ngneers-controls-defer.mjs +43 -0
  27. package/fesm2022/ngneers-controls-defer.mjs.map +1 -0
  28. package/fesm2022/ngneers-controls-dialog.mjs +329 -33
  29. package/fesm2022/ngneers-controls-dialog.mjs.map +1 -1
  30. package/fesm2022/ngneers-controls-directives.mjs +443 -0
  31. package/fesm2022/ngneers-controls-directives.mjs.map +1 -0
  32. package/fesm2022/ngneers-controls-drawer.mjs +232 -0
  33. package/fesm2022/ngneers-controls-drawer.mjs.map +1 -0
  34. package/fesm2022/ngneers-controls-edit-inplace.mjs +120 -0
  35. package/fesm2022/ngneers-controls-edit-inplace.mjs.map +1 -0
  36. package/fesm2022/ngneers-controls-filter.mjs +516 -0
  37. package/fesm2022/ngneers-controls-filter.mjs.map +1 -0
  38. package/fesm2022/ngneers-controls-i18n-de-CdTPeBiR.mjs +87 -0
  39. package/fesm2022/ngneers-controls-i18n-de-CdTPeBiR.mjs.map +1 -0
  40. package/fesm2022/ngneers-controls-i18n-en-Cfp2pOLY.mjs +87 -0
  41. package/fesm2022/ngneers-controls-i18n-en-Cfp2pOLY.mjs.map +1 -0
  42. package/fesm2022/ngneers-controls-i18n.mjs +57 -0
  43. package/fesm2022/ngneers-controls-i18n.mjs.map +1 -0
  44. package/fesm2022/ngneers-controls-icon-calendar-z5xA9wTT.mjs +4 -0
  45. package/fesm2022/ngneers-controls-icon-calendar-z5xA9wTT.mjs.map +1 -0
  46. package/fesm2022/ngneers-controls-icon-check-DdAQ9k-T.mjs +4 -0
  47. package/fesm2022/ngneers-controls-icon-check-DdAQ9k-T.mjs.map +1 -0
  48. package/fesm2022/ngneers-controls-icon-chevron_down-HO-z-xOr.mjs +4 -0
  49. package/fesm2022/ngneers-controls-icon-chevron_down-HO-z-xOr.mjs.map +1 -0
  50. package/fesm2022/ngneers-controls-icon-chevron_left-CC5psi16.mjs +4 -0
  51. package/fesm2022/ngneers-controls-icon-chevron_left-CC5psi16.mjs.map +1 -0
  52. package/fesm2022/ngneers-controls-icon-chevron_right-BRxlzx4G.mjs +4 -0
  53. package/fesm2022/ngneers-controls-icon-chevron_right-BRxlzx4G.mjs.map +1 -0
  54. package/fesm2022/ngneers-controls-icon-chevron_up-cqhPO7g2.mjs +4 -0
  55. package/fesm2022/ngneers-controls-icon-chevron_up-cqhPO7g2.mjs.map +1 -0
  56. package/fesm2022/ngneers-controls-icon-ellipsis-DXIGA1sk.mjs +4 -0
  57. package/fesm2022/ngneers-controls-icon-ellipsis-DXIGA1sk.mjs.map +1 -0
  58. package/fesm2022/ngneers-controls-icon-filter-oU7E6Xgr.mjs +4 -0
  59. package/fesm2022/ngneers-controls-icon-filter-oU7E6Xgr.mjs.map +1 -0
  60. package/fesm2022/ngneers-controls-icon-filter_solid-CqIKuR4N.mjs +4 -0
  61. package/fesm2022/ngneers-controls-icon-filter_solid-CqIKuR4N.mjs.map +1 -0
  62. package/fesm2022/ngneers-controls-icon-magnifying_glass-T4Hzbkig.mjs +4 -0
  63. package/fesm2022/ngneers-controls-icon-magnifying_glass-T4Hzbkig.mjs.map +1 -0
  64. package/fesm2022/ngneers-controls-icon-minus-oGDEFO4E.mjs +4 -0
  65. package/fesm2022/ngneers-controls-icon-minus-oGDEFO4E.mjs.map +1 -0
  66. package/fesm2022/ngneers-controls-icon-sort-CRD4tafz.mjs +4 -0
  67. package/fesm2022/ngneers-controls-icon-sort-CRD4tafz.mjs.map +1 -0
  68. package/fesm2022/ngneers-controls-icon-sort_down-DiFB1P6R.mjs +4 -0
  69. package/fesm2022/ngneers-controls-icon-sort_down-DiFB1P6R.mjs.map +1 -0
  70. package/fesm2022/ngneers-controls-icon-sort_up-Bq_q3hIi.mjs +4 -0
  71. package/fesm2022/ngneers-controls-icon-sort_up-Bq_q3hIi.mjs.map +1 -0
  72. package/fesm2022/ngneers-controls-icon-xmark-BZKZORiu.mjs +4 -0
  73. package/fesm2022/ngneers-controls-icon-xmark-BZKZORiu.mjs.map +1 -0
  74. package/fesm2022/ngneers-controls-icon.mjs +60 -18
  75. package/fesm2022/ngneers-controls-icon.mjs.map +1 -1
  76. package/fesm2022/ngneers-controls-inplace.mjs +107 -0
  77. package/fesm2022/ngneers-controls-inplace.mjs.map +1 -0
  78. package/fesm2022/ngneers-controls-input-field.mjs +141 -0
  79. package/fesm2022/ngneers-controls-input-field.mjs.map +1 -0
  80. package/fesm2022/ngneers-controls-input-mask.mjs +282 -0
  81. package/fesm2022/ngneers-controls-input-mask.mjs.map +1 -0
  82. package/fesm2022/ngneers-controls-input.mjs +69 -0
  83. package/fesm2022/ngneers-controls-input.mjs.map +1 -0
  84. package/fesm2022/ngneers-controls-item-view.mjs +441 -0
  85. package/fesm2022/ngneers-controls-item-view.mjs.map +1 -0
  86. package/fesm2022/ngneers-controls-list-box.mjs +157 -53
  87. package/fesm2022/ngneers-controls-list-box.mjs.map +1 -1
  88. package/fesm2022/ngneers-controls-menu.mjs +332 -0
  89. package/fesm2022/ngneers-controls-menu.mjs.map +1 -0
  90. package/fesm2022/ngneers-controls-message.mjs +29 -0
  91. package/fesm2022/ngneers-controls-message.mjs.map +1 -0
  92. package/fesm2022/ngneers-controls-paginator.mjs +111 -0
  93. package/fesm2022/ngneers-controls-paginator.mjs.map +1 -0
  94. package/fesm2022/ngneers-controls-popover.mjs +129 -40
  95. package/fesm2022/ngneers-controls-popover.mjs.map +1 -1
  96. package/fesm2022/ngneers-controls-progress.mjs +82 -0
  97. package/fesm2022/ngneers-controls-progress.mjs.map +1 -0
  98. package/fesm2022/ngneers-controls-scroller.mjs +155 -78
  99. package/fesm2022/ngneers-controls-scroller.mjs.map +1 -1
  100. package/fesm2022/ngneers-controls-select-button.mjs +55 -0
  101. package/fesm2022/ngneers-controls-select-button.mjs.map +1 -0
  102. package/fesm2022/ngneers-controls-select.mjs +313 -103
  103. package/fesm2022/ngneers-controls-select.mjs.map +1 -1
  104. package/fesm2022/ngneers-controls-slider.mjs +155 -0
  105. package/fesm2022/ngneers-controls-slider.mjs.map +1 -0
  106. package/fesm2022/ngneers-controls-spinner.mjs +169 -0
  107. package/fesm2022/ngneers-controls-spinner.mjs.map +1 -0
  108. package/fesm2022/ngneers-controls-splitter.mjs +717 -0
  109. package/fesm2022/ngneers-controls-splitter.mjs.map +1 -0
  110. package/fesm2022/ngneers-controls-switch.mjs +39 -0
  111. package/fesm2022/ngneers-controls-switch.mjs.map +1 -0
  112. package/fesm2022/ngneers-controls-table.mjs +379 -0
  113. package/fesm2022/ngneers-controls-table.mjs.map +1 -0
  114. package/fesm2022/ngneers-controls-tabs.mjs +287 -0
  115. package/fesm2022/ngneers-controls-tabs.mjs.map +1 -0
  116. package/fesm2022/ngneers-controls-tag.mjs +29 -0
  117. package/fesm2022/ngneers-controls-tag.mjs.map +1 -0
  118. package/fesm2022/ngneers-controls-toast.mjs +184 -0
  119. package/fesm2022/ngneers-controls-toast.mjs.map +1 -0
  120. package/fesm2022/ngneers-controls-toggle-button.mjs +65 -0
  121. package/fesm2022/ngneers-controls-toggle-button.mjs.map +1 -0
  122. package/fesm2022/ngneers-controls-tooltip.mjs +454 -0
  123. package/fesm2022/ngneers-controls-tooltip.mjs.map +1 -0
  124. package/fesm2022/ngneers-controls-utils-ng.mjs +227 -0
  125. package/fesm2022/ngneers-controls-utils-ng.mjs.map +1 -0
  126. package/fesm2022/ngneers-controls-utils.mjs +217 -60
  127. package/fesm2022/ngneers-controls-utils.mjs.map +1 -1
  128. package/fesm2022/ngneers-controls.mjs.map +1 -1
  129. package/package.json +167 -32
  130. package/types/ngneers-controls-accordion.d.ts +114 -0
  131. package/types/ngneers-controls-api-ng.d.ts +291 -0
  132. package/types/ngneers-controls-api.d.ts +99 -0
  133. package/types/ngneers-controls-avatar.d.ts +50 -0
  134. package/types/ngneers-controls-base.d.ts +166 -0
  135. package/types/ngneers-controls-breadcrumb.d.ts +86 -0
  136. package/types/ngneers-controls-button-group.d.ts +30 -0
  137. package/types/ngneers-controls-button.d.ts +34 -0
  138. package/types/ngneers-controls-calendar.d.ts +275 -0
  139. package/types/ngneers-controls-checkbox.d.ts +38 -0
  140. package/types/ngneers-controls-chip.d.ts +37 -0
  141. package/types/ngneers-controls-defer.d.ts +22 -0
  142. package/types/ngneers-controls-dialog.d.ts +218 -0
  143. package/types/ngneers-controls-directives.d.ts +146 -0
  144. package/types/ngneers-controls-drawer.d.ts +220 -0
  145. package/types/ngneers-controls-edit-inplace.d.ts +182 -0
  146. package/types/ngneers-controls-filter.d.ts +304 -0
  147. package/types/ngneers-controls-i18n.d.ts +108 -0
  148. package/types/ngneers-controls-icon.d.ts +74 -0
  149. package/types/ngneers-controls-inplace.d.ts +95 -0
  150. package/types/ngneers-controls-input-field.d.ts +159 -0
  151. package/types/ngneers-controls-input-mask.d.ts +83 -0
  152. package/types/ngneers-controls-input.d.ts +27 -0
  153. package/types/ngneers-controls-item-view.d.ts +211 -0
  154. package/types/ngneers-controls-list-box.d.ts +216 -0
  155. package/types/ngneers-controls-menu.d.ts +178 -0
  156. package/types/ngneers-controls-message.d.ts +19 -0
  157. package/types/ngneers-controls-paginator.d.ts +162 -0
  158. package/types/ngneers-controls-popover.d.ts +101 -0
  159. package/types/ngneers-controls-progress.d.ts +44 -0
  160. package/types/ngneers-controls-scroller.d.ts +137 -0
  161. package/types/ngneers-controls-select-button.d.ts +37 -0
  162. package/types/ngneers-controls-select.d.ts +314 -0
  163. package/types/ngneers-controls-slider.d.ts +53 -0
  164. package/types/ngneers-controls-spinner.d.ts +105 -0
  165. package/types/ngneers-controls-splitter.d.ts +391 -0
  166. package/types/ngneers-controls-switch.d.ts +18 -0
  167. package/types/ngneers-controls-table.d.ts +157 -0
  168. package/types/ngneers-controls-tabs.d.ts +106 -0
  169. package/types/ngneers-controls-tag.d.ts +19 -0
  170. package/types/ngneers-controls-toast.d.ts +70 -0
  171. package/types/ngneers-controls-toggle-button.d.ts +46 -0
  172. package/types/ngneers-controls-tooltip.d.ts +188 -0
  173. package/types/ngneers-controls-utils-ng.d.ts +57 -0
  174. package/types/ngneers-controls-utils.d.ts +130 -0
  175. package/api/index.d.ts +0 -134
  176. package/custom-types/index.d.ts +0 -7
  177. package/dialog/index.d.ts +0 -43
  178. package/fesm2022/ngneers-controls-custom-types.mjs +0 -4
  179. package/fesm2022/ngneers-controls-custom-types.mjs.map +0 -1
  180. package/fesm2022/ngneers-controls-form-field.mjs +0 -33
  181. package/fesm2022/ngneers-controls-form-field.mjs.map +0 -1
  182. package/fesm2022/ngneers-controls-lazy-cacher.mjs +0 -30
  183. package/fesm2022/ngneers-controls-lazy-cacher.mjs.map +0 -1
  184. package/fesm2022/ngneers-controls-text-field.mjs +0 -23
  185. package/fesm2022/ngneers-controls-text-field.mjs.map +0 -1
  186. package/form-field/index.d.ts +0 -19
  187. package/icon/index.d.ts +0 -30
  188. package/lazy-cacher/index.d.ts +0 -14
  189. package/list-box/index.d.ts +0 -58
  190. package/popover/index.d.ts +0 -41
  191. package/scroller/index.d.ts +0 -95
  192. package/select/index.d.ts +0 -86
  193. package/text-field/index.d.ts +0 -10
  194. package/utils/index.d.ts +0 -36
  195. /package/{index.d.ts → types/ngneers-controls.d.ts} +0 -0
@@ -0,0 +1,216 @@
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 * as _ngneers_signal_translate from '@ngneers/signal-translate';
6
+ import { NgnItem, NgnItemsValue, FilterConfig } from '@ngneers/controls/api';
7
+ import { InputGeneric, maybeCallback } from '@ngneers/controls/utils';
8
+ import { ValueControlBase } from '@ngneers/controls/base';
9
+
10
+ /**
11
+ * This type determines the value type for the select control.
12
+ * * If `multiple` is `true`, the value is an array of items: `T[K][]`.
13
+ * * Else it is the item's value type `T[K]`.
14
+ */
15
+ type ValueType<Items extends readonly NgnItem[], Multiple extends boolean> = InputGeneric<Multiple, false> extends true ? NgnItemsValue<Items>[] : NgnItemsValue<Items>;
16
+ declare abstract class ListBoxTemplates<Items extends readonly NgnItem[], Multiple extends boolean> extends ValueControlBase<'listBox', ValueType<Items, Multiple> | null> {
17
+ private readonly _defaultItemTemplate;
18
+ private readonly _userItemTemplate;
19
+ /**
20
+ * Set a custom template for an item of the list box.
21
+ * Can also be set using an `<ng-template>` element with `#item` template reference variable.
22
+ */
23
+ readonly templateItem: _angular_core.InputSignal<TemplateRef<{
24
+ $implicit: Items[number] | undefined;
25
+ }> | null>;
26
+ protected readonly itemTemplate: _angular_core.Signal<TemplateRef<{
27
+ $implicit: Items[number] | undefined;
28
+ }>>;
29
+ private readonly _defaultGroupTemplate;
30
+ private readonly _userGroupTemplate;
31
+ /**
32
+ * Set a custom template for a group in the list box.
33
+ * Can also be set using an `<ng-template>` element with `#group` template reference variable.
34
+ */
35
+ readonly templateGroup: _angular_core.InputSignal<TemplateRef<{
36
+ $implicit: Items[number] | undefined;
37
+ }> | null>;
38
+ protected readonly groupTemplate: _angular_core.Signal<TemplateRef<{
39
+ $implicit: Items[number] | undefined;
40
+ }>>;
41
+ private readonly _defaultEmptyTemplate;
42
+ private readonly _userEmptyTemplate;
43
+ /**
44
+ * Set a custom template for the empty state in the list box.
45
+ * Can also be set using an `<ng-template>` element with `#empty` template reference variable.
46
+ */
47
+ readonly templateEmpty: _angular_core.InputSignal<TemplateRef<unknown> | null>;
48
+ protected readonly emptyTemplate: _angular_core.Signal<TemplateRef<unknown>>;
49
+ /**
50
+ * Types for the dialog templates.
51
+ */
52
+ readonly templateTypes: {
53
+ item: {
54
+ $implicit: Items[number] | undefined;
55
+ };
56
+ } & {
57
+ $implicit: {
58
+ item: Partial<{
59
+ $implicit: Items[number] | undefined;
60
+ }>;
61
+ };
62
+ };
63
+ protected readonly templateTypesInternal: {
64
+ item: {
65
+ $implicit: Items[number] | undefined;
66
+ index: number;
67
+ };
68
+ } & {
69
+ $implicit: {
70
+ item: Partial<{
71
+ $implicit: Items[number] | undefined;
72
+ index: number;
73
+ }>;
74
+ };
75
+ };
76
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListBoxTemplates<any, any>, never>;
77
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ListBoxTemplates<any, any>, never, never, { "templateItem": { "alias": "templateItem"; "required": false; "isSignal": true; }; "templateGroup": { "alias": "templateGroup"; "required": false; "isSignal": true; }; "templateEmpty": { "alias": "templateEmpty"; "required": false; "isSignal": true; }; }, {}, ["_userItemTemplate", "_userGroupTemplate", "_userEmptyTemplate"], never, true, never>;
78
+ }
79
+
80
+ /**
81
+ * @category control
82
+ */
83
+ declare class NgnListBox<Items extends readonly NgnItem[], Multiple extends boolean = false> extends ListBoxTemplates<Items, Multiple> {
84
+ protected readonly i18n: _ngneers_signal_translate.TranslationsSignal<{
85
+ calendar: {
86
+ today: string;
87
+ selectYear: string;
88
+ weekdays: {
89
+ monday: string;
90
+ tuesday: string;
91
+ wednesday: string;
92
+ thursday: string;
93
+ friday: string;
94
+ saturday: string;
95
+ sunday: string;
96
+ };
97
+ weekdaysShort: {
98
+ monday: string;
99
+ tuesday: string;
100
+ wednesday: string;
101
+ thursday: string;
102
+ friday: string;
103
+ saturday: string;
104
+ sunday: string;
105
+ };
106
+ months: {
107
+ january: string;
108
+ february: string;
109
+ march: string;
110
+ april: string;
111
+ may: string;
112
+ june: string;
113
+ july: string;
114
+ august: string;
115
+ september: string;
116
+ october: string;
117
+ november: string;
118
+ december: string;
119
+ };
120
+ };
121
+ editInplace: {
122
+ placeholder: string;
123
+ };
124
+ filter: {
125
+ noFilter: string;
126
+ addCondition: string;
127
+ removeCondition: string;
128
+ clear: string;
129
+ matchModeLabel: string;
130
+ match: {
131
+ all: string;
132
+ any: string;
133
+ };
134
+ selected: string;
135
+ conditions: string;
136
+ operators: {
137
+ isEqual: string;
138
+ isNotEqual: string;
139
+ contains: string;
140
+ startsWith: string;
141
+ endsWith: string;
142
+ in: string;
143
+ isEmpty: string;
144
+ isNotEmpty: string;
145
+ greaterThan: string;
146
+ greaterThanOrEqual: string;
147
+ lessThan: string;
148
+ lessThanOrEqual: string;
149
+ after: string;
150
+ onOrAfter: string;
151
+ before: string;
152
+ onOrBefore: string;
153
+ isTrue: string;
154
+ isFalse: string;
155
+ custom: string;
156
+ };
157
+ };
158
+ splitter: {
159
+ handleLabel: string;
160
+ };
161
+ inputField: {
162
+ clearInput: string;
163
+ };
164
+ drawer: {
165
+ close: string;
166
+ };
167
+ }, "_">;
168
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"list-box", ["root", "empty", "invalid", "item", "group", "default-item", "default-group", "scroller", "item-selected", "item-highlighted"], readonly [_ngneers_controls_themes.ControlTemplate<"checkbox", ["root", "input", "box", "box-checked", "box-indeterminate", "box-icon", "anim-box-icon-enter", "anim-box-icon-leave", "invalid"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>, _ngneers_controls_themes.ControlTemplate<"scroller", ["root", "virtual", "item", "spacer", "item-sticky"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>]>>;
169
+ private readonly _scroller;
170
+ readonly items: _angular_core.InputSignal<Items>;
171
+ readonly scrollToSelectedItemOnInit: _angular_core.InputSignal<boolean | ScrollLogicalPosition>;
172
+ readonly selectable: _angular_core.InputSignalWithTransform<boolean, unknown>;
173
+ readonly selectOnHover: _angular_core.InputSignalWithTransform<boolean, unknown>;
174
+ readonly focussable: _angular_core.InputSignalWithTransform<boolean, unknown>;
175
+ readonly virtual: _angular_core.InputSignalWithTransform<boolean, unknown>;
176
+ readonly itemHeight: _angular_core.InputSignal<number | undefined>;
177
+ readonly multiple: _angular_core.InputSignal<Multiple | undefined>;
178
+ /**
179
+ * Whether to use a checkbox to indicate selection state.
180
+ *
181
+ * This option is true per default when `multiple` is `true`.
182
+ * @default multiple()
183
+ */
184
+ readonly checkbox: _angular_core.InputSignal<boolean | undefined>;
185
+ /**
186
+ * Accepts a boolean value that determines whether the filter is enabled.
187
+ * Alternatively, you can provide `FilterConfig` to customize the filter behavior.
188
+ * @default `false`
189
+ */
190
+ readonly filter: _angular_core.InputSignal<boolean | FilterConfig<Items[number]>>;
191
+ /**
192
+ * Manually set the filter text.
193
+ */
194
+ readonly filterText: _angular_core.InputSignal<string | null>;
195
+ readonly itemClicked: _angular_core.OutputEmitterRef<NgnItemsValue<Items>>;
196
+ protected readonly maybeCallback: typeof maybeCallback;
197
+ readonly displayedItems: _angular_core.Signal<NgnItem<any, any>[]>;
198
+ protected readonly valueArray: _angular_core.Signal<NgnItemsValue<Items>[]>;
199
+ protected readonly currentHighlightedValue: _angular_core.WritableSignal<NgnItemsValue<Items> | null>;
200
+ protected readonly filteredItems: {
201
+ (): readonly NgnItem[];
202
+ isRunning: _angular_core.Signal<boolean>;
203
+ firstRunCompleted: _angular_core.Signal<boolean>;
204
+ };
205
+ private readonly _appliedFilterOptions;
206
+ protected readonly filterIsExecuting: _angular_core.Signal<boolean>;
207
+ protected readonly showCheckboxes: _angular_core.Signal<boolean>;
208
+ constructor();
209
+ onKeyDown(event: KeyboardEvent): void;
210
+ scrollToIndex(index: number): void;
211
+ protected onSelect(value: NgnItemsValue<Items>): void;
212
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnListBox<any, any>, never>;
213
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnListBox<any, any>, "ngn-list-box", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "scrollToSelectedItemOnInit": { "alias": "scrollToSelectedItemOnInit"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "selectOnHover": { "alias": "selectOnHover"; "required": false; "isSignal": true; }; "focussable": { "alias": "focussable"; "required": false; "isSignal": true; }; "virtual": { "alias": "virtual"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "checkbox": { "alias": "checkbox"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "filterText": { "alias": "filterText"; "required": false; "isSignal": true; }; }, { "itemClicked": "itemClicked"; }, never, never, true, never>;
214
+ }
215
+
216
+ export { NgnListBox };
@@ -0,0 +1,178 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnDestroy, TemplateRef } from '@angular/core';
3
+ import { NgnActionItem } from '@ngneers/controls/api';
4
+ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
5
+ import { Openable, Anchor } from '@ngneers/controls/api/ng';
6
+ import * as _ngneers_controls_themes from '@ngneers/controls-themes';
7
+ import { maybeCallback } from '@ngneers/controls/utils';
8
+ import { NgnBase } from '@ngneers/controls/base';
9
+ import { Placement } from '@floating-ui/dom';
10
+
11
+ type MenuItem = MenuItemDefault | MenuItemSeparator;
12
+ type MenuItemDefault = NgnActionItem;
13
+ type MenuItemSeparator = {
14
+ separator: true;
15
+ };
16
+
17
+ declare class NgnContextMenu implements OnDestroy {
18
+ private readonly _elementRef;
19
+ private readonly _vcr;
20
+ private _menu?;
21
+ readonly ngnContextMenu: _angular_core.InputSignal<MenuItem[]>;
22
+ constructor();
23
+ ngOnDestroy(): void;
24
+ private handleClick;
25
+ private createMenu;
26
+ private openMenu;
27
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnContextMenu, never>;
28
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgnContextMenu, "[ngnContextMenu]", never, { "ngnContextMenu": { "alias": "ngnContextMenu"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
29
+ }
30
+
31
+ declare abstract class MenuTemplates extends NgnBase<'menu'> {
32
+ private readonly _defaultItemTemplate;
33
+ private readonly _userItemTemplate;
34
+ /**
35
+ * Set a custom template for an item of the menu.
36
+ * Can also be set using an `<ng-template>` element with `#item` template reference variable.
37
+ */
38
+ readonly templateItem: _angular_core.InputSignal<TemplateRef<{
39
+ $implicit: MenuItemDefault;
40
+ }> | null>;
41
+ protected readonly itemTemplate: _angular_core.Signal<TemplateRef<{
42
+ $implicit: MenuItemDefault;
43
+ }>>;
44
+ private readonly _defaultGroupTemplate;
45
+ private readonly _userGroupTemplate;
46
+ /**
47
+ * Set a custom template for a group of items in the menu.
48
+ * Can also be set using an `<ng-template>` element with `#group` template reference variable.
49
+ */
50
+ readonly templateGroup: _angular_core.InputSignal<TemplateRef<unknown> | null>;
51
+ protected readonly groupTemplate: _angular_core.Signal<TemplateRef<unknown>>;
52
+ /**
53
+ * Types for the dialog templates.
54
+ */
55
+ readonly templateTypes: {
56
+ item: {
57
+ $implicit: MenuItemDefault;
58
+ };
59
+ } & {
60
+ $implicit: {
61
+ item: Partial<{
62
+ $implicit: MenuItemDefault;
63
+ }>;
64
+ };
65
+ };
66
+ protected readonly internalTemplateTypes: {
67
+ regularItem: {
68
+ $implicit: MenuItemDefault;
69
+ index: number;
70
+ };
71
+ } & {
72
+ $implicit: {
73
+ regularItem: Partial<{
74
+ $implicit: MenuItemDefault;
75
+ index: number;
76
+ }>;
77
+ };
78
+ };
79
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuTemplates, never>;
80
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuTemplates, never, never, { "templateItem": { "alias": "templateItem"; "required": false; "isSignal": true; }; "templateGroup": { "alias": "templateGroup"; "required": false; "isSignal": true; }; }, {}, ["_userItemTemplate", "_userGroupTemplate"], never, true, never>;
81
+ }
82
+
83
+ /**
84
+ * @category control
85
+ */
86
+ declare class NgnMenu extends MenuTemplates implements Openable {
87
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"menu", ["root", "submenu", "popover", "item", "item-opened", "icon-children", "separator"], readonly [_ngneers_controls_themes.ControlTemplate<"popover", ["root", "content", "content-closing", "anim-in", "anim-out"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>]>>;
88
+ protected readonly elementId: _angular_core.InputSignal<string>;
89
+ /**
90
+ * The element to which the menu is anchored. Required if `popover` is true.
91
+ */
92
+ readonly anchor: _angular_core.InputSignal<Anchor | undefined>;
93
+ /**
94
+ * The menu items to display.
95
+ */
96
+ readonly items: _angular_core.InputSignal<MenuItem[]>;
97
+ /**
98
+ * Whether to automatically set ARIA attributes on the anchor element.
99
+ * @default true if anchor is an HTMLButtonElement, false otherwise.
100
+ */
101
+ readonly autoAnchorAria: _angular_core.InputSignal<boolean | undefined>;
102
+ /**
103
+ * Whether the menu is a popover. Requires `anchor` to be set.
104
+ */
105
+ readonly popover: _angular_core.InputSignalWithTransform<boolean, unknown>;
106
+ /**
107
+ * The placement of the menu relative to the anchor element. Only used if `popover` is true.
108
+ * @default 'bottom-start'
109
+ */
110
+ readonly placement: _angular_core.InputSignal<Placement>;
111
+ /**
112
+ * Icon type for children indicator (submenu indicator). If not set, a default icon will be used.
113
+ */
114
+ readonly iconSubmenuIndicator: _angular_core.InputSignal<string | undefined>;
115
+ /**
116
+ * Whether this menu is a submenu. Used internally.
117
+ * @internal
118
+ */
119
+ readonly isSubMenu: _angular_core.InputSignalWithTransform<boolean, unknown>;
120
+ /**
121
+ * Whether to open submenus on hover. Defaults to true in popover mode.
122
+ * @default popover()
123
+ */
124
+ readonly openSubmenuOnHover: _angular_core.InputSignalWithTransform<boolean, unknown>;
125
+ /**
126
+ * Emitted when the menu is fully closed.
127
+ */
128
+ readonly closed: _angular_core.OutputEmitterRef<void>;
129
+ /**
130
+ * Emitted when the menu is about to close.
131
+ */
132
+ readonly closing: _angular_core.OutputEmitterRef<void>;
133
+ /**
134
+ * Emitted when all menus should be closed (including parent menus). Used internally.
135
+ * @internal
136
+ */
137
+ readonly closeAll: _angular_core.OutputEmitterRef<void>;
138
+ /**
139
+ * Shows or hides the menu.
140
+ *
141
+ * You probably want to react to openChange events from outside to update your variable accordingly.
142
+ */
143
+ readonly open: _angular_core.ModelSignal<boolean>;
144
+ protected readonly maybeCallback: typeof maybeCallback;
145
+ private readonly _isTouchDevice;
146
+ private readonly _popover;
147
+ private readonly _menuItems;
148
+ private readonly _childMenus;
149
+ private readonly _openSubmenuOnHover;
150
+ protected readonly autofocus: _angular_core.WritableSignal<boolean>;
151
+ constructor();
152
+ /**
153
+ * Shows the menu.
154
+ * @param focus Whether to focus the menu after showing it. Defaults to `true`.
155
+ */
156
+ show(focus?: boolean): void;
157
+ /**
158
+ * Hides the menu.
159
+ * @param emitCloseEvent Whether to emit the close event. Defaults to `true`.
160
+ */
161
+ hide(emitCloseEvent?: boolean): void;
162
+ /**
163
+ * Toggles the menu open or closed.
164
+ */
165
+ toggle(): void;
166
+ protected handleKeydown(event: KeyboardEvent, subMenu?: NgnMenu): void;
167
+ protected doCloseAll(): void;
168
+ protected itemClicked(item: MenuItem): void;
169
+ protected closeChildMenus(closeBy: 'hover' | 'click' | 'arrow', menuItem: HTMLButtonElement | null): void;
170
+ protected openChildMenu(childMenu: NgnMenu, menuItem: HTMLButtonElement | null, openBy: 'hover' | 'click' | 'arrow'): void;
171
+ protected popoverOpenChange(newState: boolean): void;
172
+ protected popoverClosed(): void;
173
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnMenu, never>;
174
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnMenu, "ngn-menu", never, { "elementId": { "alias": "elementId"; "required": false; "isSignal": true; }; "anchor": { "alias": "anchor"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": true; "isSignal": true; }; "autoAnchorAria": { "alias": "autoAnchorAria"; "required": false; "isSignal": true; }; "popover": { "alias": "popover"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "iconSubmenuIndicator": { "alias": "iconSubmenuIndicator"; "required": false; "isSignal": true; }; "isSubMenu": { "alias": "isSubMenu"; "required": false; "isSignal": true; }; "openSubmenuOnHover": { "alias": "openSubmenuOnHover"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "closing": "closing"; "closeAll": "closeAll"; "open": "openChange"; }, never, never, true, never>;
175
+ }
176
+
177
+ export { NgnContextMenu, NgnMenu };
178
+ export type { MenuItem, MenuItemDefault, MenuItemSeparator };
@@ -0,0 +1,19 @@
1
+ import * as i0 from '@angular/core';
2
+ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
3
+ import * as _ngneers_controls_themes from '@ngneers/controls-themes';
4
+ import { NgnBase } from '@ngneers/controls/base';
5
+
6
+ /**
7
+ * @category control
8
+ */
9
+ declare class NgnMessage extends NgnBase<'message'> {
10
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"message", ["root", "content", "icon", `kind-${string}`, `color-${string}`], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>>;
11
+ /**
12
+ * Set an icon to display before the text.
13
+ */
14
+ readonly icon: i0.InputSignal<string | undefined>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgnMessage, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgnMessage, "ngn-message", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
17
+ }
18
+
19
+ export { NgnMessage };
@@ -0,0 +1,162 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import * as _ngneers_signal_translate from '@ngneers/signal-translate';
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
+ import { NgnItem } from '@ngneers/controls/api';
7
+
8
+ /**
9
+ * Defines the pagination state including current page and slice information.
10
+ * Depending on the context or API design, you can choose to use either page-based or slice-based pagination.
11
+ */
12
+ type PaginationState = {
13
+ /**
14
+ * The current pagination state in terms of page size and current page index.
15
+ */
16
+ page: {
17
+ size: number;
18
+ current: number;
19
+ };
20
+ /**
21
+ * The slice of items to be displayed based on the current page and page size.
22
+ */
23
+ slice: {
24
+ skip: number;
25
+ take: number;
26
+ };
27
+ };
28
+
29
+ /**
30
+ * @category control
31
+ */
32
+ declare class NgnPaginator extends NgnBase<'paginator'> {
33
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"paginator", ["root", "page-size-options"], readonly [_ngneers_controls_themes.ControlTemplate<"button", ["root", "inline", "loading", `kind-${string}`, `color-${string}`], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>, _ngneers_controls_themes.ControlTemplate<"item-view", ["root", "item", "item-overflowing", "more-items", "more-items-hidden", "more-items-default", "hidden-separator"], readonly _ngneers_controls_themes.ControlTemplate<string, string[], readonly any[]>[]>]>>;
34
+ protected readonly i18n: _ngneers_signal_translate.TranslationsSignal<{
35
+ calendar: {
36
+ today: string;
37
+ selectYear: string;
38
+ weekdays: {
39
+ monday: string;
40
+ tuesday: string;
41
+ wednesday: string;
42
+ thursday: string;
43
+ friday: string;
44
+ saturday: string;
45
+ sunday: string;
46
+ };
47
+ weekdaysShort: {
48
+ monday: string;
49
+ tuesday: string;
50
+ wednesday: string;
51
+ thursday: string;
52
+ friday: string;
53
+ saturday: string;
54
+ sunday: string;
55
+ };
56
+ months: {
57
+ january: string;
58
+ february: string;
59
+ march: string;
60
+ april: string;
61
+ may: string;
62
+ june: string;
63
+ july: string;
64
+ august: string;
65
+ september: string;
66
+ october: string;
67
+ november: string;
68
+ december: string;
69
+ };
70
+ };
71
+ editInplace: {
72
+ placeholder: string;
73
+ };
74
+ filter: {
75
+ noFilter: string;
76
+ addCondition: string;
77
+ removeCondition: string;
78
+ clear: string;
79
+ matchModeLabel: string;
80
+ match: {
81
+ all: string;
82
+ any: string;
83
+ };
84
+ selected: string;
85
+ conditions: string;
86
+ operators: {
87
+ isEqual: string;
88
+ isNotEqual: string;
89
+ contains: string;
90
+ startsWith: string;
91
+ endsWith: string;
92
+ in: string;
93
+ isEmpty: string;
94
+ isNotEmpty: string;
95
+ greaterThan: string;
96
+ greaterThanOrEqual: string;
97
+ lessThan: string;
98
+ lessThanOrEqual: string;
99
+ after: string;
100
+ onOrAfter: string;
101
+ before: string;
102
+ onOrBefore: string;
103
+ isTrue: string;
104
+ isFalse: string;
105
+ custom: string;
106
+ };
107
+ };
108
+ splitter: {
109
+ handleLabel: string;
110
+ };
111
+ inputField: {
112
+ clearInput: string;
113
+ };
114
+ drawer: {
115
+ close: string;
116
+ };
117
+ }, "_">;
118
+ /**
119
+ * Total number of items to paginate.
120
+ */
121
+ readonly totalItems: _angular_core.InputSignal<number>;
122
+ /**
123
+ * Number of items per page. If not set, the first value from `possiblePageSizes` will be used.
124
+ */
125
+ readonly pageSize: _angular_core.ModelSignal<number | undefined>;
126
+ /**
127
+ * Possible page sizes to choose from.
128
+ * @default [5, 10, 25, 50]
129
+ */
130
+ readonly possiblePageSizes: _angular_core.InputSignalWithTransform<number[], number[]>;
131
+ /**
132
+ * If set to `true`, the page size selector will be hidden and the page size cannot be changed by the user.
133
+ * @default false
134
+ */
135
+ readonly fixedPageSize: _angular_core.InputSignal<boolean>;
136
+ protected readonly appliedPageSize: _angular_core.Signal<number>;
137
+ protected readonly pageCount: _angular_core.Signal<number>;
138
+ protected readonly pages: _angular_core.Signal<{
139
+ page: number;
140
+ }[]>;
141
+ protected readonly pageSizeOptions: _angular_core.Signal<NgnItem[]>;
142
+ /**
143
+ * Emits the current pagination state whenever the page or page size changes.
144
+ */
145
+ readonly value: _angular_core.OutputEmitterRef<PaginationState>;
146
+ /**
147
+ * Current page index (zero-based).
148
+ * @default 0
149
+ */
150
+ readonly page: _angular_core.ModelSignal<number>;
151
+ constructor();
152
+ protected previousPage(event: PointerEvent): void;
153
+ protected nextPage(event: PointerEvent): void;
154
+ protected getButtonFontStyles(page: number): {
155
+ [klass: string]: string;
156
+ };
157
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnPaginator, never>;
158
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnPaginator, "ngn-paginator", never, { "totalItems": { "alias": "totalItems"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "possiblePageSizes": { "alias": "possiblePageSizes"; "required": false; "isSignal": true; }; "fixedPageSize": { "alias": "fixedPageSize"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; }, { "pageSize": "pageSizeChange"; "value": "value"; "page": "pageChange"; }, never, never, true, never>;
159
+ }
160
+
161
+ export { NgnPaginator };
162
+ export type { PaginationState };