@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,466 @@
1
+ import * as _ngneers_controls_mask_input from '@ngneers/controls/mask-input';
2
+ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
3
+ import * as _ngneers_controls_themes from '@ngneers/controls-themes';
4
+ import * as _ngneers_signal_translate from '@ngneers/signal-translate';
5
+ import * as _angular_core from '@angular/core';
6
+ import { TemplateRef, Signal } from '@angular/core';
7
+ import { ValueControlBase } from '@ngneers/controls/base';
8
+ import { NgnItem } from '@ngneers/controls/api';
9
+
10
+ declare const MONTHS: readonly ["january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"];
11
+ type Month = (typeof MONTHS)[number];
12
+ declare const WEEK_DAYS: readonly ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
13
+ type WeekDay = (typeof WEEK_DAYS)[number];
14
+ type DayModel = {
15
+ date: number;
16
+ /**
17
+ * -1 = previous month, 0 = current month, 1 = next month
18
+ */
19
+ monthOffset: number;
20
+ };
21
+ type DayTemplateType = {
22
+ $implicit: {
23
+ date: number;
24
+ selected: boolean;
25
+ today: boolean;
26
+ fromOtherMonth: boolean;
27
+ };
28
+ };
29
+ type WeekDayTemplateType = {
30
+ $implicit: {
31
+ weekDay: WeekDay;
32
+ translation: string;
33
+ };
34
+ };
35
+ type MonthTemplateType = {
36
+ $implicit: {
37
+ month: Month;
38
+ change: (newMonth: Month) => void;
39
+ };
40
+ };
41
+ type TimeTemplateType = {
42
+ $implicit: {
43
+ time: Date | null;
44
+ showSeconds: boolean;
45
+ change: (newTime: Date | null) => void;
46
+ };
47
+ };
48
+ type YearTemplateType = {
49
+ $implicit: {
50
+ year: number;
51
+ change: (newYear: number) => void;
52
+ };
53
+ };
54
+
55
+ declare abstract class CalendarTemplates extends ValueControlBase<'calendar', Date | null> {
56
+ private readonly _defaultDayTemplate;
57
+ private readonly _userDayTemplate;
58
+ /**
59
+ * Set a custom template for a day.
60
+ * Can also be set using an `<ng-template>` element with `#day` template reference variable.
61
+ */
62
+ readonly templateDay: _angular_core.InputSignal<TemplateRef<DayTemplateType> | null>;
63
+ protected readonly dayTemplate: _angular_core.Signal<TemplateRef<DayTemplateType>>;
64
+ private readonly _defaultWeekDayTemplate;
65
+ private readonly _userWeekDayTemplate;
66
+ /**
67
+ * Set a custom template for a week day.
68
+ * Can also be set using an `<ng-template>` element with `#weekDay` template reference variable.
69
+ */
70
+ readonly templateWeekDay: _angular_core.InputSignal<TemplateRef<WeekDayTemplateType> | null>;
71
+ protected readonly weekDayTemplate: _angular_core.Signal<TemplateRef<WeekDayTemplateType>>;
72
+ private readonly _defaultMonthTemplate;
73
+ private readonly _userMonthTemplate;
74
+ /**
75
+ * Set a custom template for a month.
76
+ * Can also be set using an `<ng-template>` element with `#month` template reference variable.
77
+ */
78
+ readonly templateMonth: _angular_core.InputSignal<TemplateRef<MonthTemplateType> | null>;
79
+ protected readonly monthTemplate: _angular_core.Signal<TemplateRef<MonthTemplateType>>;
80
+ private readonly _defaultTimeTemplate;
81
+ private readonly _userTimeTemplate;
82
+ /**
83
+ * Set a custom template for the time input.
84
+ * Can also be set using an `<ng-template>` element with `#time` template reference variable.
85
+ */
86
+ readonly templateTime: _angular_core.InputSignal<TemplateRef<TimeTemplateType> | null>;
87
+ protected readonly timeTemplate: _angular_core.Signal<TemplateRef<TimeTemplateType>>;
88
+ private readonly _defaultYearTemplate;
89
+ private readonly _userYearTemplate;
90
+ /**
91
+ * Set a custom template for the year input.
92
+ * Can also be set using an `<ng-template>` element with `#year` template reference variable.
93
+ */
94
+ readonly templateYear: _angular_core.InputSignal<TemplateRef<YearTemplateType> | null>;
95
+ protected readonly yearTemplate: _angular_core.Signal<TemplateRef<YearTemplateType>>;
96
+ /**
97
+ * Types for the calendar templates.
98
+ */
99
+ readonly templateTypes: {
100
+ /**
101
+ * Type of the template variable for the day template.
102
+ */
103
+ day: DayTemplateType;
104
+ /**
105
+ * Type of the template variable for the week day template.
106
+ */
107
+ weekDay: WeekDayTemplateType;
108
+ /**
109
+ * Type of the template variable for the month template.
110
+ */
111
+ month: MonthTemplateType;
112
+ /**
113
+ * Type of the template variable for the time template.
114
+ */
115
+ time: TimeTemplateType;
116
+ /**
117
+ * Type of the template variable for the year template.
118
+ */
119
+ year: YearTemplateType;
120
+ } & {
121
+ $implicit: {
122
+ day: Partial<DayTemplateType>;
123
+ weekDay: Partial<WeekDayTemplateType>;
124
+ month: Partial<MonthTemplateType>;
125
+ time: Partial<TimeTemplateType>;
126
+ year: Partial<YearTemplateType>;
127
+ };
128
+ };
129
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalendarTemplates, never>;
130
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CalendarTemplates, never, never, { "templateDay": { "alias": "templateDay"; "required": false; "isSignal": true; }; "templateWeekDay": { "alias": "templateWeekDay"; "required": false; "isSignal": true; }; "templateMonth": { "alias": "templateMonth"; "required": false; "isSignal": true; }; "templateTime": { "alias": "templateTime"; "required": false; "isSignal": true; }; "templateYear": { "alias": "templateYear"; "required": false; "isSignal": true; }; }, {}, ["_userDayTemplate", "_userWeekDayTemplate", "_userMonthTemplate", "_userTimeTemplate", "_userYearTemplate"], never, true, never>;
131
+ }
132
+
133
+ type MonthItemType = NgnItem<{
134
+ $: (typeof MONTHS)[number];
135
+ }, '$'>;
136
+ /**
137
+ * @category control
138
+ */
139
+ declare class NgnCalendar extends CalendarTemplates {
140
+ /**
141
+ * Set the first day of the week.
142
+ * @default 'monday'
143
+ */
144
+ readonly firstDayOfWeek: _angular_core.InputSignal<"sunday" | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday">;
145
+ /**
146
+ * Whether to show the time input.
147
+ * @default false
148
+ */
149
+ readonly showTime: _angular_core.InputSignalWithTransform<boolean, unknown>;
150
+ /**
151
+ * Whether to show seconds in the time input.
152
+ * @default false
153
+ */
154
+ readonly showSeconds: _angular_core.InputSignalWithTransform<boolean, unknown>;
155
+ /**
156
+ * Whether to show the calendar inline instead of with a input field & popup.
157
+ * @default false
158
+ */
159
+ readonly inline: _angular_core.InputSignalWithTransform<boolean, unknown>;
160
+ /**
161
+ * The format of the date displayed in the input field.
162
+ * @default 'MM/dd/yyyy'
163
+ */
164
+ readonly format: _angular_core.InputSignal<string>;
165
+ private readonly _popover;
166
+ private readonly _mask;
167
+ private readonly _platform;
168
+ protected readonly i18n: _ngneers_signal_translate.TranslationsSignal<{
169
+ calendar: {
170
+ today: string;
171
+ input: string;
172
+ selectYear: string;
173
+ selectMonth: string;
174
+ previousMonth: string;
175
+ nextMonth: string;
176
+ weekdays: {
177
+ monday: string;
178
+ tuesday: string;
179
+ wednesday: string;
180
+ thursday: string;
181
+ friday: string;
182
+ saturday: string;
183
+ sunday: string;
184
+ };
185
+ weekdaysShort: {
186
+ monday: string;
187
+ tuesday: string;
188
+ wednesday: string;
189
+ thursday: string;
190
+ friday: string;
191
+ saturday: string;
192
+ sunday: string;
193
+ };
194
+ months: {
195
+ january: string;
196
+ february: string;
197
+ march: string;
198
+ april: string;
199
+ may: string;
200
+ june: string;
201
+ july: string;
202
+ august: string;
203
+ september: string;
204
+ october: string;
205
+ november: string;
206
+ december: string;
207
+ };
208
+ };
209
+ editInplace: {
210
+ placeholder: string;
211
+ confirm: string;
212
+ };
213
+ filter: {
214
+ noFilter: string;
215
+ addCondition: string;
216
+ removeCondition: string;
217
+ operator: string;
218
+ value: string;
219
+ clear: string;
220
+ apply: string;
221
+ cancel: string;
222
+ matchModeLabel: string;
223
+ match: {
224
+ all: string;
225
+ any: string;
226
+ and: string;
227
+ or: string;
228
+ };
229
+ selected: string;
230
+ conditions: string;
231
+ operators: {
232
+ isEqual: string;
233
+ isNotEqual: string;
234
+ contains: string;
235
+ startsWith: string;
236
+ endsWith: string;
237
+ in: string;
238
+ isEmpty: string;
239
+ isNotEmpty: string;
240
+ greaterThan: string;
241
+ greaterThanOrEqual: string;
242
+ lessThan: string;
243
+ lessThanOrEqual: string;
244
+ after: string;
245
+ onOrAfter: string;
246
+ before: string;
247
+ onOrBefore: string;
248
+ isTrue: string;
249
+ isFalse: string;
250
+ custom: string;
251
+ };
252
+ };
253
+ splitter: {
254
+ handleLabel: string;
255
+ };
256
+ inputField: {
257
+ clearInput: string;
258
+ };
259
+ maskInput: {
260
+ roleDescription: string;
261
+ segmentRange: string;
262
+ optionSeparator: string;
263
+ };
264
+ drawer: {
265
+ close: string;
266
+ };
267
+ dialog: {
268
+ close: string;
269
+ };
270
+ chip: {
271
+ close: string;
272
+ };
273
+ breadcrumb: {
274
+ overflow: string;
275
+ };
276
+ toast: {
277
+ close: string;
278
+ region: string;
279
+ };
280
+ snackbar: {
281
+ close: string;
282
+ region: string;
283
+ severity: {
284
+ error: string;
285
+ warning: string;
286
+ success: string;
287
+ info: string;
288
+ };
289
+ };
290
+ upload: {
291
+ upload: string;
292
+ uploadNamed: string;
293
+ retryNamed: string;
294
+ cancelNamed: string;
295
+ removeNamed: string;
296
+ progressNamed: string;
297
+ };
298
+ select: {
299
+ filterOptions: string;
300
+ };
301
+ paginator: {
302
+ previousPage: string;
303
+ nextPage: string;
304
+ };
305
+ listBox: {
306
+ noItemsFound: string;
307
+ };
308
+ tree: {
309
+ noItemsFound: string;
310
+ };
311
+ table: {
312
+ selectAllRows: string;
313
+ selectRow: string;
314
+ sortedBy: string;
315
+ sortAscending: string;
316
+ sortDescending: string;
317
+ sortCleared: string;
318
+ selectedCount: string;
319
+ page: string;
320
+ resultCount: string;
321
+ };
322
+ state: {
323
+ loading: string;
324
+ success: string;
325
+ warning: string;
326
+ error: string;
327
+ cancelled: string;
328
+ };
329
+ }, "_">;
330
+ readonly isFieldControl = true;
331
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"calendar", ["root", "inline", "invalid", "details", "header", "navigation", "days", "week-day", "day", "day-selected", "day-today", "day-other-month", "months", "month", "time", "input-field"], readonly [{
332
+ readonly class: "input";
333
+ readonly template: _ngneers_controls_themes.ControlTemplate<"mask-input", ["root", "section", "section-active", "section-placeholder", "separator", "proxy", "sr-only"], readonly []>;
334
+ }, {
335
+ readonly class: "trigger-icon";
336
+ readonly template: _ngneers_controls_themes.ControlTemplate<"icon", ["root", "default"], readonly []>;
337
+ }, {
338
+ readonly class: "popover";
339
+ readonly template: _ngneers_controls_themes.ControlTemplate<"popover", ["root", "content", "content-closing"], readonly []>;
340
+ }, {
341
+ readonly class: "previous";
342
+ readonly template: _ngneers_controls_themes.ControlTemplate<"button", ["root", "inline", "loading", `kind-${string}`, `color-${string}`], readonly []>;
343
+ }, {
344
+ readonly class: "next";
345
+ readonly template: _ngneers_controls_themes.ControlTemplate<"button", ["root", "inline", "loading", `kind-${string}`, `color-${string}`], readonly []>;
346
+ }, {
347
+ readonly class: "current-month";
348
+ readonly template: _ngneers_controls_themes.ControlTemplate<"select", ["root", "combobox", "input", "icon", "input-editable", "popover-content", "filter-icon", "list-box-empty"], readonly [{
349
+ readonly class: "popover";
350
+ readonly template: _ngneers_controls_themes.ControlTemplate<"popover", ["root", "content", "content-closing"], readonly []>;
351
+ }, {
352
+ readonly class: "list-box";
353
+ readonly template: _ngneers_controls_themes.ControlTemplate<"list-box", ["root", "empty", "invalid", "item", "group", "default-item", "default-group", "item-selected", "item-highlighted", "item-disabled"], readonly [{
354
+ readonly class: "checkbox";
355
+ readonly template: _ngneers_controls_themes.ControlTemplate<"checkbox", ["root", "input", "box", "box-checked", "box-indeterminate", "box-icon", "box-icon-visible", "invalid"], readonly []>;
356
+ }, {
357
+ readonly class: "scroller";
358
+ readonly template: _ngneers_controls_themes.ControlTemplate<"scroller", ["root", "virtual", "item", "item-sticky"], readonly []>;
359
+ }]>;
360
+ }, {
361
+ readonly class: "filter";
362
+ readonly template: _ngneers_controls_themes.ControlTemplate<"input-field", ["root", "host", "disabled", "readonly", "invalid", "label", "clear-button", `labelKind-${string}`], readonly [{
363
+ readonly class: "input";
364
+ readonly template: _ngneers_controls_themes.ControlTemplate<"input", ["root", "invalid", "empty"], readonly []>;
365
+ readonly projected: true;
366
+ }]>;
367
+ }]>;
368
+ }, {
369
+ readonly class: "current-year";
370
+ readonly template: _ngneers_controls_themes.ControlTemplate<"select", ["root", "combobox", "input", "icon", "input-editable", "popover-content", "filter-icon", "list-box-empty"], readonly [{
371
+ readonly class: "popover";
372
+ readonly template: _ngneers_controls_themes.ControlTemplate<"popover", ["root", "content", "content-closing"], readonly []>;
373
+ }, {
374
+ readonly class: "list-box";
375
+ readonly template: _ngneers_controls_themes.ControlTemplate<"list-box", ["root", "empty", "invalid", "item", "group", "default-item", "default-group", "item-selected", "item-highlighted", "item-disabled"], readonly [{
376
+ readonly class: "checkbox";
377
+ readonly template: _ngneers_controls_themes.ControlTemplate<"checkbox", ["root", "input", "box", "box-checked", "box-indeterminate", "box-icon", "box-icon-visible", "invalid"], readonly []>;
378
+ }, {
379
+ readonly class: "scroller";
380
+ readonly template: _ngneers_controls_themes.ControlTemplate<"scroller", ["root", "virtual", "item", "item-sticky"], readonly []>;
381
+ }]>;
382
+ }, {
383
+ readonly class: "filter";
384
+ readonly template: _ngneers_controls_themes.ControlTemplate<"input-field", ["root", "host", "disabled", "readonly", "invalid", "label", "clear-button", `labelKind-${string}`], readonly [{
385
+ readonly class: "input";
386
+ readonly template: _ngneers_controls_themes.ControlTemplate<"input", ["root", "invalid", "empty"], readonly []>;
387
+ readonly projected: true;
388
+ }]>;
389
+ }]>;
390
+ }, {
391
+ readonly class: "current-month-field";
392
+ readonly template: _ngneers_controls_themes.ControlTemplate<"input-field", ["root", "host", "disabled", "readonly", "invalid", "label", "clear-button", `labelKind-${string}`], readonly [{
393
+ readonly class: "input";
394
+ readonly template: _ngneers_controls_themes.ControlTemplate<"input", ["root", "invalid", "empty"], readonly []>;
395
+ readonly projected: true;
396
+ }]>;
397
+ }, {
398
+ readonly class: "current-year-field";
399
+ readonly template: _ngneers_controls_themes.ControlTemplate<"input-field", ["root", "host", "disabled", "readonly", "invalid", "label", "clear-button", `labelKind-${string}`], readonly [{
400
+ readonly class: "input";
401
+ readonly template: _ngneers_controls_themes.ControlTemplate<"input", ["root", "invalid", "empty"], readonly []>;
402
+ readonly projected: true;
403
+ }]>;
404
+ }]>>;
405
+ protected get anchorElement(): HTMLElement;
406
+ protected readonly year: _angular_core.WritableSignal<number>;
407
+ protected readonly month: _angular_core.WritableSignal<number>;
408
+ protected readonly yearOptions: NgnItem[];
409
+ protected readonly monthOptions: Signal<NgnItem<MonthItemType>[]>;
410
+ protected readonly valueStr: Signal<string | null>;
411
+ protected readonly maskCfg: Signal<_ngneers_controls_mask_input.MaskInputCfg>;
412
+ protected readonly previousMonth: () => void;
413
+ protected readonly nextMonth: () => void;
414
+ protected readonly previousYear: () => void;
415
+ protected readonly nextYear: () => void;
416
+ protected selectMonth(month: Month): void;
417
+ protected selectYear(year: number): void;
418
+ protected selectDay(day: DayModel): void;
419
+ protected changeTime(newTime: Date | null): void;
420
+ /**
421
+ * Places focus from a pointer event: forwards the location to the embedded
422
+ * mask so the section nearest the cursor is selected, then opens the popup.
423
+ * Implemented as the `NgnBase.focusFromPointer` hook so it also works when the
424
+ * calendar is wrapped in an `ngn-input-field` — the outer field delegates the
425
+ * click here (with the real coordinates) instead of synthesising a
426
+ * coordinate-less click. Invoked by the calendar's own field click too.
427
+ */
428
+ focusFromPointer(event: MouseEvent): boolean;
429
+ /**
430
+ * Shows the calendar popup. Only works if `inline` is `false`.
431
+ */
432
+ show(): void;
433
+ /**
434
+ * Hides the calendar popup. Only works if `inline` is `false`.
435
+ */
436
+ hide(): void;
437
+ protected onKeyDown(event: KeyboardEvent): void;
438
+ /** The current (possibly partial) text in the mask field, awaiting blur. */
439
+ private readonly _inputString;
440
+ private readonly _clearingMaskInput;
441
+ private readonly _clearValueWhenMaskBecomesEmpty;
442
+ protected stringValueChange(newValue: string | null): void;
443
+ /** Parse the complete mask string into the calendar value. */
444
+ private parseInputString;
445
+ protected potentiallyBlurred(): void;
446
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnCalendar, never>;
447
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnCalendar, "ngn-calendar", never, { "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "showTime": { "alias": "showTime"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
448
+ }
449
+
450
+ /**
451
+ * Parses a date string according to `format`, the inverse of {@link formatDate}.
452
+ *
453
+ * Unlike `new Date(string)` this is format-aware (so e.g. `dd.MM.yyyy` parses
454
+ * correctly) and, crucially, **clamps the day to the number of days in the
455
+ * resolved month/year** instead of rolling over: `31` in February becomes the
456
+ * 28th/29th rather than spilling into March. Returns `null` when the string does
457
+ * not match the format.
458
+ *
459
+ * Two-digit years (`yy`) are interpreted as 2000–2099. Numeric tokens are capped
460
+ * at their natural digit count so separator-free formats parse unambiguously.
461
+ */
462
+ declare function parseDate(str: string, format: string): Date | null;
463
+ declare function formatDate(value: Date | null, format: string): string;
464
+
465
+ export { MONTHS, NgnCalendar, WEEK_DAYS, formatDate, parseDate };
466
+ export type { DayModel, DayTemplateType, Month, MonthTemplateType, TimeTemplateType, WeekDay, WeekDayTemplateType, YearTemplateType };
@@ -0,0 +1,40 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import * as _ngneers_controls_custom_types from '@ngneers/controls-custom-types';
3
+ import * as _iconify_types from '@iconify/types';
4
+ import * as _ngneers_controls_api_ng from '@ngneers/controls/api/ng';
5
+ import * as _ngneers_controls_themes from '@ngneers/controls-themes';
6
+ import { ValueControlBase } from '@ngneers/controls/base';
7
+ import { InputGeneric } from '@ngneers/controls/utils';
8
+
9
+ type ValueType<Indeterminate extends boolean> = InputGeneric<Indeterminate, false> extends false ? boolean : boolean | null;
10
+ /**
11
+ * @category control
12
+ */
13
+ declare class NgnCheckbox<Indeterminate extends boolean> extends ValueControlBase<'checkbox', ValueType<Indeterminate>> {
14
+ protected readonly theme: _ngneers_controls_api_ng.ControlTemplateInfo<_ngneers_controls_themes.ControlTemplate<"checkbox", ["root", "input", "box", "box-checked", "box-indeterminate", "box-icon", "box-icon-visible", "invalid"], readonly []>>;
15
+ /**
16
+ * Set a custom icon for the checked state.
17
+ */
18
+ readonly iconChecked: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
19
+ /**
20
+ * Set a custom icon for the unchecked state.
21
+ */
22
+ readonly iconUnchecked: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
23
+ /**
24
+ * Set a custom icon for the indeterminate state.
25
+ */
26
+ readonly iconIndeterminate: _angular_core.InputSignal<_iconify_types.IconifyIcon | _ngneers_controls_custom_types.NgnIconEntry | undefined>;
27
+ /**
28
+ * Set whether to allow the indeterminate state.
29
+ * If `true`, this will change the {@link value} type to `boolean | null`.
30
+ */
31
+ readonly allowIndeterminate: _angular_core.InputSignal<Indeterminate | undefined>;
32
+ protected readonly indeterminate: _angular_core.Signal<boolean | undefined>;
33
+ protected changed(event: Event): void;
34
+ protected onClick(event: Event): void;
35
+ constructor();
36
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnCheckbox<any>, never>;
37
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnCheckbox<any>, "ngn-checkbox", never, { "iconChecked": { "alias": "iconChecked"; "required": false; "isSignal": true; }; "iconUnchecked": { "alias": "iconUnchecked"; "required": false; "isSignal": true; }; "iconIndeterminate": { "alias": "iconIndeterminate"; "required": false; "isSignal": true; }; "allowIndeterminate": { "alias": "allowIndeterminate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
38
+ }
39
+
40
+ export { NgnCheckbox };