@ngneers/controls 0.0.1-pre5 → 0.0.1-pre7

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 (168) hide show
  1. package/fesm2022/ngneers-controls-accordion.mjs +33 -33
  2. package/fesm2022/ngneers-controls-accordion.mjs.map +1 -1
  3. package/fesm2022/ngneers-controls-api-ng.mjs +22 -19
  4. package/fesm2022/ngneers-controls-api-ng.mjs.map +1 -1
  5. package/fesm2022/ngneers-controls-api-resize.mjs +706 -0
  6. package/fesm2022/ngneers-controls-api-resize.mjs.map +1 -0
  7. package/fesm2022/ngneers-controls-avatar.mjs +13 -13
  8. package/fesm2022/ngneers-controls-avatar.mjs.map +1 -1
  9. package/fesm2022/ngneers-controls-base.mjs +89 -64
  10. package/fesm2022/ngneers-controls-base.mjs.map +1 -1
  11. package/fesm2022/ngneers-controls-breadcrumb.mjs +19 -19
  12. package/fesm2022/ngneers-controls-breadcrumb.mjs.map +1 -1
  13. package/fesm2022/ngneers-controls-button-group.mjs +8 -8
  14. package/fesm2022/ngneers-controls-button-group.mjs.map +1 -1
  15. package/fesm2022/ngneers-controls-button.mjs +15 -10
  16. package/fesm2022/ngneers-controls-button.mjs.map +1 -1
  17. package/fesm2022/{ngneers-controls-calendar-time-BEeJIqIX.mjs → ngneers-controls-calendar-time-CKAqRgOP.mjs} +9 -9
  18. package/fesm2022/{ngneers-controls-calendar-time-BEeJIqIX.mjs.map → ngneers-controls-calendar-time-CKAqRgOP.mjs.map} +1 -1
  19. package/fesm2022/ngneers-controls-calendar.mjs +56 -56
  20. package/fesm2022/ngneers-controls-calendar.mjs.map +1 -1
  21. package/fesm2022/ngneers-controls-checkbox.mjs +9 -9
  22. package/fesm2022/ngneers-controls-checkbox.mjs.map +1 -1
  23. package/fesm2022/ngneers-controls-chip.mjs +7 -7
  24. package/fesm2022/ngneers-controls-chip.mjs.map +1 -1
  25. package/fesm2022/ngneers-controls-default-icons.mjs +61 -0
  26. package/fesm2022/ngneers-controls-default-icons.mjs.map +1 -0
  27. package/fesm2022/ngneers-controls-defer.mjs +10 -10
  28. package/fesm2022/ngneers-controls-defer.mjs.map +1 -1
  29. package/fesm2022/ngneers-controls-dialog.mjs +38 -40
  30. package/fesm2022/ngneers-controls-dialog.mjs.map +1 -1
  31. package/fesm2022/ngneers-controls-directives.mjs +45 -39
  32. package/fesm2022/ngneers-controls-directives.mjs.map +1 -1
  33. package/fesm2022/ngneers-controls-drawer.mjs +29 -29
  34. package/fesm2022/ngneers-controls-drawer.mjs.map +1 -1
  35. package/fesm2022/ngneers-controls-edit-inplace.mjs +16 -16
  36. package/fesm2022/ngneers-controls-edit-inplace.mjs.map +1 -1
  37. package/fesm2022/ngneers-controls-filter.mjs +192 -44
  38. package/fesm2022/ngneers-controls-filter.mjs.map +1 -1
  39. package/fesm2022/{ngneers-controls-i18n-de-CdTPeBiR.mjs → ngneers-controls-i18n-de-CF0xTWEX.mjs} +9 -5
  40. package/fesm2022/ngneers-controls-i18n-de-CF0xTWEX.mjs.map +1 -0
  41. package/fesm2022/{ngneers-controls-i18n-en-Cfp2pOLY.mjs → ngneers-controls-i18n-en-8B7xAjH2.mjs} +9 -5
  42. package/fesm2022/ngneers-controls-i18n-en-8B7xAjH2.mjs.map +1 -0
  43. package/fesm2022/ngneers-controls-i18n.mjs +5 -5
  44. package/fesm2022/ngneers-controls-i18n.mjs.map +1 -1
  45. package/fesm2022/ngneers-controls-icon.mjs +111 -47
  46. package/fesm2022/ngneers-controls-icon.mjs.map +1 -1
  47. package/fesm2022/ngneers-controls-inplace.mjs +18 -18
  48. package/fesm2022/ngneers-controls-inplace.mjs.map +1 -1
  49. package/fesm2022/ngneers-controls-input-field.mjs +16 -16
  50. package/fesm2022/ngneers-controls-input-field.mjs.map +1 -1
  51. package/fesm2022/ngneers-controls-input-mask.mjs +8 -8
  52. package/fesm2022/ngneers-controls-input-mask.mjs.map +1 -1
  53. package/fesm2022/ngneers-controls-input.mjs +6 -6
  54. package/fesm2022/ngneers-controls-input.mjs.map +1 -1
  55. package/fesm2022/ngneers-controls-item-view.mjs +33 -33
  56. package/fesm2022/ngneers-controls-item-view.mjs.map +1 -1
  57. package/fesm2022/ngneers-controls-list-box.mjs +31 -31
  58. package/fesm2022/ngneers-controls-list-box.mjs.map +1 -1
  59. package/fesm2022/ngneers-controls-menu.mjs +33 -33
  60. package/fesm2022/ngneers-controls-menu.mjs.map +1 -1
  61. package/fesm2022/ngneers-controls-message.mjs +4 -4
  62. package/fesm2022/ngneers-controls-message.mjs.map +1 -1
  63. package/fesm2022/ngneers-controls-paginator.mjs +13 -13
  64. package/fesm2022/ngneers-controls-paginator.mjs.map +1 -1
  65. package/fesm2022/ngneers-controls-popover.mjs +21 -16
  66. package/fesm2022/ngneers-controls-popover.mjs.map +1 -1
  67. package/fesm2022/ngneers-controls-progress.mjs +16 -16
  68. package/fesm2022/ngneers-controls-progress.mjs.map +1 -1
  69. package/fesm2022/ngneers-controls-scroll-shadow.mjs +54 -0
  70. package/fesm2022/ngneers-controls-scroll-shadow.mjs.map +1 -0
  71. package/fesm2022/ngneers-controls-scroller.mjs +74 -39
  72. package/fesm2022/ngneers-controls-scroller.mjs.map +1 -1
  73. package/fesm2022/ngneers-controls-select-button.mjs +7 -7
  74. package/fesm2022/ngneers-controls-select-button.mjs.map +1 -1
  75. package/fesm2022/ngneers-controls-select.mjs +48 -47
  76. package/fesm2022/ngneers-controls-select.mjs.map +1 -1
  77. package/fesm2022/ngneers-controls-slider.mjs +11 -11
  78. package/fesm2022/ngneers-controls-slider.mjs.map +1 -1
  79. package/fesm2022/ngneers-controls-spinner.mjs +7 -7
  80. package/fesm2022/ngneers-controls-spinner.mjs.map +1 -1
  81. package/fesm2022/ngneers-controls-splitter.mjs +141 -328
  82. package/fesm2022/ngneers-controls-splitter.mjs.map +1 -1
  83. package/fesm2022/ngneers-controls-switch.mjs +3 -3
  84. package/fesm2022/ngneers-controls-switch.mjs.map +1 -1
  85. package/fesm2022/ngneers-controls-table.mjs +1456 -82
  86. package/fesm2022/ngneers-controls-table.mjs.map +1 -1
  87. package/fesm2022/ngneers-controls-tabs.mjs +41 -40
  88. package/fesm2022/ngneers-controls-tabs.mjs.map +1 -1
  89. package/fesm2022/ngneers-controls-tag.mjs +4 -4
  90. package/fesm2022/ngneers-controls-tag.mjs.map +1 -1
  91. package/fesm2022/ngneers-controls-toast.mjs +19 -19
  92. package/fesm2022/ngneers-controls-toast.mjs.map +1 -1
  93. package/fesm2022/ngneers-controls-toggle-button.mjs +10 -10
  94. package/fesm2022/ngneers-controls-toggle-button.mjs.map +1 -1
  95. package/fesm2022/ngneers-controls-tooltip.mjs +74 -38
  96. package/fesm2022/ngneers-controls-tooltip.mjs.map +1 -1
  97. package/fesm2022/ngneers-controls-utils-ng.mjs +9 -9
  98. package/fesm2022/ngneers-controls-utils-ng.mjs.map +1 -1
  99. package/fesm2022/ngneers-controls-utils.mjs +1 -1
  100. package/fesm2022/ngneers-controls-utils.mjs.map +1 -1
  101. package/package.json +34 -12
  102. package/types/ngneers-controls-accordion.d.ts +6 -4
  103. package/types/ngneers-controls-api-ng.d.ts +7 -2
  104. package/types/ngneers-controls-api-resize.d.ts +318 -0
  105. package/types/ngneers-controls-api.d.ts +2 -2
  106. package/types/ngneers-controls-base.d.ts +8 -0
  107. package/types/ngneers-controls-breadcrumb.d.ts +6 -4
  108. package/types/ngneers-controls-button.d.ts +13 -8
  109. package/types/ngneers-controls-calendar.d.ts +5 -1
  110. package/types/ngneers-controls-checkbox.d.ts +6 -4
  111. package/types/ngneers-controls-chip.d.ts +3 -1
  112. package/types/ngneers-controls-default-icons.d.ts +5 -0
  113. package/types/ngneers-controls-directives.d.ts +7 -1
  114. package/types/ngneers-controls-drawer.d.ts +7 -1
  115. package/types/ngneers-controls-edit-inplace.d.ts +4 -0
  116. package/types/ngneers-controls-filter.d.ts +52 -3
  117. package/types/ngneers-controls-i18n.d.ts +4 -0
  118. package/types/ngneers-controls-icon.d.ts +23 -40
  119. package/types/ngneers-controls-input-field.d.ts +7 -1
  120. package/types/ngneers-controls-item-view.d.ts +4 -2
  121. package/types/ngneers-controls-list-box.d.ts +5 -1
  122. package/types/ngneers-controls-menu.d.ts +4 -2
  123. package/types/ngneers-controls-message.d.ts +3 -1
  124. package/types/ngneers-controls-paginator.d.ts +4 -0
  125. package/types/ngneers-controls-popover.d.ts +2 -1
  126. package/types/ngneers-controls-scroll-shadow.d.ts +16 -0
  127. package/types/ngneers-controls-scroller.d.ts +12 -2
  128. package/types/ngneers-controls-select.d.ts +11 -12
  129. package/types/ngneers-controls-spinner.d.ts +1 -1
  130. package/types/ngneers-controls-splitter.d.ts +29 -59
  131. package/types/ngneers-controls-table.d.ts +380 -24
  132. package/types/ngneers-controls-tabs.d.ts +4 -2
  133. package/types/ngneers-controls-tag.d.ts +3 -1
  134. package/types/ngneers-controls-toast.d.ts +5 -3
  135. package/types/ngneers-controls-toggle-button.d.ts +5 -3
  136. package/types/ngneers-controls-tooltip.d.ts +7 -1
  137. package/fesm2022/ngneers-controls-i18n-de-CdTPeBiR.mjs.map +0 -1
  138. package/fesm2022/ngneers-controls-i18n-en-Cfp2pOLY.mjs.map +0 -1
  139. package/fesm2022/ngneers-controls-icon-calendar-z5xA9wTT.mjs +0 -4
  140. package/fesm2022/ngneers-controls-icon-calendar-z5xA9wTT.mjs.map +0 -1
  141. package/fesm2022/ngneers-controls-icon-check-DdAQ9k-T.mjs +0 -4
  142. package/fesm2022/ngneers-controls-icon-check-DdAQ9k-T.mjs.map +0 -1
  143. package/fesm2022/ngneers-controls-icon-chevron_down-HO-z-xOr.mjs +0 -4
  144. package/fesm2022/ngneers-controls-icon-chevron_down-HO-z-xOr.mjs.map +0 -1
  145. package/fesm2022/ngneers-controls-icon-chevron_left-CC5psi16.mjs +0 -4
  146. package/fesm2022/ngneers-controls-icon-chevron_left-CC5psi16.mjs.map +0 -1
  147. package/fesm2022/ngneers-controls-icon-chevron_right-BRxlzx4G.mjs +0 -4
  148. package/fesm2022/ngneers-controls-icon-chevron_right-BRxlzx4G.mjs.map +0 -1
  149. package/fesm2022/ngneers-controls-icon-chevron_up-cqhPO7g2.mjs +0 -4
  150. package/fesm2022/ngneers-controls-icon-chevron_up-cqhPO7g2.mjs.map +0 -1
  151. package/fesm2022/ngneers-controls-icon-ellipsis-DXIGA1sk.mjs +0 -4
  152. package/fesm2022/ngneers-controls-icon-ellipsis-DXIGA1sk.mjs.map +0 -1
  153. package/fesm2022/ngneers-controls-icon-filter-oU7E6Xgr.mjs +0 -4
  154. package/fesm2022/ngneers-controls-icon-filter-oU7E6Xgr.mjs.map +0 -1
  155. package/fesm2022/ngneers-controls-icon-filter_solid-CqIKuR4N.mjs +0 -4
  156. package/fesm2022/ngneers-controls-icon-filter_solid-CqIKuR4N.mjs.map +0 -1
  157. package/fesm2022/ngneers-controls-icon-magnifying_glass-T4Hzbkig.mjs +0 -4
  158. package/fesm2022/ngneers-controls-icon-magnifying_glass-T4Hzbkig.mjs.map +0 -1
  159. package/fesm2022/ngneers-controls-icon-minus-oGDEFO4E.mjs +0 -4
  160. package/fesm2022/ngneers-controls-icon-minus-oGDEFO4E.mjs.map +0 -1
  161. package/fesm2022/ngneers-controls-icon-sort-CRD4tafz.mjs +0 -4
  162. package/fesm2022/ngneers-controls-icon-sort-CRD4tafz.mjs.map +0 -1
  163. package/fesm2022/ngneers-controls-icon-sort_down-DiFB1P6R.mjs +0 -4
  164. package/fesm2022/ngneers-controls-icon-sort_down-DiFB1P6R.mjs.map +0 -1
  165. package/fesm2022/ngneers-controls-icon-sort_up-Bq_q3hIi.mjs +0 -4
  166. package/fesm2022/ngneers-controls-icon-sort_up-Bq_q3hIi.mjs.map +0 -1
  167. package/fesm2022/ngneers-controls-icon-xmark-BZKZORiu.mjs +0 -4
  168. package/fesm2022/ngneers-controls-icon-xmark-BZKZORiu.mjs.map +0 -1
@@ -29,6 +29,8 @@ type SplitterPanelSize<U extends SplitterPanelSizeUnit = SplitterPanelSizeUnit>
29
29
  type SplitterPanelSizeLimitUnit = 'px' | '%';
30
30
  type SplitterPanelSizeLimit<U extends SplitterPanelSizeLimitUnit = SplitterPanelSizeLimitUnit> = `${number}${U}`;
31
31
  type SplitterLayout = 'horizontal' | 'vertical';
32
+ /** Splitter supports adjacent and proportional resize modes (not push). */
33
+ type SplitterResizeMode = 'adjacent' | 'proportional';
32
34
  type _SplitterState = {
33
35
  layout?: SplitterLayout;
34
36
  panelOrder?: string[] | null;
@@ -39,15 +41,6 @@ type SplitterState = _SplitterState & {
39
41
  [key: string]: unknown;
40
42
  };
41
43
 
42
- type ExpandedSplitterPanelSize = {
43
- value: number;
44
- unit: SplitterPanelSizeUnit;
45
- };
46
- type ExpandedSplitterPanelSizeLimit = {
47
- value: number;
48
- unit: SplitterPanelSizeLimitUnit;
49
- };
50
-
51
44
  /**
52
45
  * Type interface for the {@link SplitterCalculator} interface.
53
46
  */
@@ -109,36 +102,6 @@ interface SplitterCalculator {
109
102
  */
110
103
  moveDivider(index: number, pxDelta: number): void;
111
104
  }
112
- type SplitterFractionFactors = {
113
- /**
114
- * The number of fraction units per pixel.
115
- * This is used to convert pixel values to fraction values.
116
- */
117
- frPerPx: number;
118
- /**
119
- * The number of pixels per fraction unit.
120
- * This is used to convert fraction values to pixel values.
121
- */
122
- pxPerFr: number;
123
- };
124
- type SplitterDragContextPanel = {
125
- /**
126
- * A reference to the panel component.
127
- */
128
- panel: NgnSplitterPanel;
129
- /**
130
- * The starting size of the panel at the beginning of the drag operation.
131
- */
132
- startSize: ExpandedSplitterPanelSize;
133
- /**
134
- * The minimum size limit of the panel.
135
- */
136
- minSize: ExpandedSplitterPanelSizeLimit;
137
- /**
138
- * The maximum size limit of the panel.
139
- */
140
- maxSize: ExpandedSplitterPanelSizeLimit;
141
- };
142
105
  /**
143
106
  * Represents the context of a drag operation in the splitter.
144
107
  */
@@ -155,17 +118,10 @@ type SplitterDragContext = {
155
118
  * The starting position of the pointer when the drag operation started, in pixels.
156
119
  */
157
120
  startPosition: number;
158
- /**
159
- * An array of panels involved in the drag operation.
160
- */
161
- panels: SplitterDragContextPanel[];
162
- /**
163
- * The fraction factors used for calculating sizes during the drag operation.
164
- */
165
- fractionFactors: SplitterFractionFactors;
166
121
  };
167
122
  /**
168
123
  * Default implementation of the {@link SplitterCalculator} interface.
124
+ * Delegates all resize math to the generic {@link ResizeEngine}.
169
125
  */
170
126
  declare class DefaultSplitterCalculator implements SplitterCalculator {
171
127
  protected readonly panels: Signal<readonly NgnSplitterPanel[]>;
@@ -173,6 +129,7 @@ declare class DefaultSplitterCalculator implements SplitterCalculator {
173
129
  protected readonly panelOrder: Signal<readonly string[] | null | undefined>;
174
130
  protected readonly layout: Signal<SplitterLayout>;
175
131
  protected readonly splitterSize: Signal<number>;
132
+ private readonly _engine;
176
133
  constructor(splitter: NgnSplitter);
177
134
  readonly orderedPanels: Signal<readonly NgnSplitterPanel[]>;
178
135
  readonly gridTemplateSizes: Signal<string>;
@@ -181,21 +138,17 @@ declare class DefaultSplitterCalculator implements SplitterCalculator {
181
138
  readonly maxSize: Signal<string>;
182
139
  readonly dragContext: _angular_core.WritableSignal<SplitterDragContext | null>;
183
140
  protected readonly dividerSizes: Signal<number[]>;
184
- protected readonly totalDividerSize: Signal<number>;
185
- protected readonly totalPanelSizes: Signal<{
186
- px: number;
187
- fr: number;
188
- }>;
189
141
  startDrag(index: number, event: PointerEvent): void;
190
142
  drag(index: number, event: PointerEvent): void;
191
143
  endDrag(index: number, event: PointerEvent, isCancel: boolean): void;
192
144
  moveDivider(index: number, pxDelta: number): void;
145
+ /**
146
+ * Ensures all panels respect their min/max size constraints.
147
+ * Delegates to the underlying {@link ResizeEngine}.
148
+ */
193
149
  ensureMinMaxSizes(): void;
194
- private createContextPanel;
195
- private getCurrentFractionFactors;
196
- private setPanelSize;
197
- private isPanelSizeCalculated;
198
- private applyDividerDelta;
150
+ /** @internal — used by tests to seed panel sizes into the engine. */
151
+ setPanelSize(panel: NgnSplitterPanel, size: string): void;
199
152
  }
200
153
 
201
154
  /**
@@ -250,10 +203,14 @@ declare class NgnSplitter extends NgnBase<'splitter'> implements OnDestroy {
250
203
  addCondition: string;
251
204
  removeCondition: string;
252
205
  clear: string;
206
+ apply: string;
207
+ cancel: string;
253
208
  matchModeLabel: string;
254
209
  match: {
255
210
  all: string;
256
211
  any: string;
212
+ and: string;
213
+ or: string;
257
214
  };
258
215
  selected: string;
259
216
  conditions: string;
@@ -322,6 +279,19 @@ declare class NgnSplitter extends NgnBase<'splitter'> implements OnDestroy {
322
279
  * @default `DefaultSplitterCalculator`
323
280
  */
324
281
  readonly calculatorType: _angular_core.InputSignal<SplitterCalculatorType>;
282
+ /**
283
+ * The resize distribution mode for the splitter.
284
+ * - `'adjacent'` (default): Only the panels adjacent to the divider are resized.
285
+ * - `'proportional'`: The deficit is distributed proportionally across all panels on the other side.
286
+ */
287
+ readonly resizeMode: _angular_core.InputSignal<SplitterResizeMode>;
288
+ /**
289
+ * Whether to lock affected panels to fixed `px` values after a resize completes.
290
+ * When `true`, panels whose size changed are converted from their original unit to `px`.
291
+ * When `false`, panels keep their original units (`fr`, `px`).
292
+ * @default false
293
+ */
294
+ readonly lockSizes: _angular_core.InputSignal<boolean>;
325
295
  /**
326
296
  * The step size for moving the dividers using the keyboard.
327
297
  * This can be a pixel value (e.g., '5px') or a percentage value (e.g., '5%').
@@ -378,7 +348,7 @@ declare class NgnSplitter extends NgnBase<'splitter'> implements OnDestroy {
378
348
  private applyFromState;
379
349
  private getStepInPx;
380
350
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgnSplitter, never>;
381
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnSplitter, "ngn-splitter", never, { "layout": { "alias": "layout"; "required": true; "isSignal": true; }; "panelOrder": { "alias": "panelOrder"; "required": false; "isSignal": true; }; "stateStorage": { "alias": "stateStorage"; "required": false; "isSignal": true; }; "stateKey": { "alias": "stateKey"; "required": false; "isSignal": true; }; "stateData": { "alias": "stateData"; "required": false; "isSignal": true; }; "calculatorType": { "alias": "calculatorType"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; }, { "layout": "layoutChange"; "panelOrder": "panelOrderChange"; "stateSaving": "stateSaving"; "stateLoading": "stateLoading"; }, ["panels"], ["*"], true, never>;
351
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgnSplitter, "ngn-splitter", never, { "layout": { "alias": "layout"; "required": true; "isSignal": true; }; "panelOrder": { "alias": "panelOrder"; "required": false; "isSignal": true; }; "stateStorage": { "alias": "stateStorage"; "required": false; "isSignal": true; }; "stateKey": { "alias": "stateKey"; "required": false; "isSignal": true; }; "stateData": { "alias": "stateData"; "required": false; "isSignal": true; }; "calculatorType": { "alias": "calculatorType"; "required": false; "isSignal": true; }; "resizeMode": { "alias": "resizeMode"; "required": false; "isSignal": true; }; "lockSizes": { "alias": "lockSizes"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; }, { "layout": "layoutChange"; "panelOrder": "panelOrderChange"; "stateSaving": "stateSaving"; "stateLoading": "stateLoading"; }, ["panels"], ["*"], true, never>;
382
352
  }
383
353
 
384
354
  declare class NgnSplitterModule {
@@ -388,4 +358,4 @@ declare class NgnSplitterModule {
388
358
  }
389
359
 
390
360
  export { DefaultSplitterCalculator, NgnSplitter, NgnSplitterModule, NgnSplitterPanel };
391
- export type { SplitterCalculator, SplitterCalculatorType, SplitterDragContext, SplitterLayout, SplitterPanelSize, SplitterPanelSizeLimit, SplitterPanelSizeLimitUnit, SplitterPanelSizeUnit, SplitterState, SplitterStateData };
361
+ export type { SplitterCalculator, SplitterCalculatorType, SplitterDragContext, SplitterLayout, SplitterPanelSize, SplitterPanelSizeLimit, SplitterPanelSizeLimitUnit, SplitterPanelSizeUnit, SplitterResizeMode, SplitterState, SplitterStateData };