@acorex/components 18.10.4 → 18.10.5

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 (49) hide show
  1. package/esm2022/map/acorex-components-map.mjs +5 -0
  2. package/esm2022/map/index.mjs +3 -0
  3. package/esm2022/map/lib/map.component.mjs +74 -0
  4. package/esm2022/map/lib/map.module.mjs +18 -0
  5. package/esm2022/menu/index.mjs +2 -1
  6. package/esm2022/menu/lib/menu-item/menu-item.component.mjs +5 -18
  7. package/esm2022/menu/lib/menu-item-text/menu-item-text.component.mjs +11 -0
  8. package/esm2022/menu/lib/menu.component.mjs +9 -117
  9. package/esm2022/menu/lib/menu.module.mjs +4 -3
  10. package/esm2022/menu/lib/menu.service.mjs +2 -7
  11. package/esm2022/rate-picker/acorex-components-rate-picker.mjs +5 -0
  12. package/esm2022/rate-picker/index.mjs +3 -0
  13. package/esm2022/rate-picker/lib/calculatePercentage.mjs +45 -0
  14. package/esm2022/rate-picker/lib/rate-picker.component.mjs +184 -0
  15. package/esm2022/rate-picker/lib/rate-picker.module.mjs +18 -0
  16. package/esm2022/time-line/acorex-components-time-line.mjs +5 -0
  17. package/esm2022/time-line/index.mjs +4 -0
  18. package/esm2022/time-line/lib/time-line-item.component.mjs +34 -0
  19. package/esm2022/time-line/lib/time-line.component.mjs +11 -0
  20. package/esm2022/time-line/lib/time-line.module.mjs +19 -0
  21. package/fesm2022/acorex-components-map.mjs +96 -0
  22. package/fesm2022/acorex-components-map.mjs.map +1 -0
  23. package/fesm2022/acorex-components-menu.mjs +24 -141
  24. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  25. package/fesm2022/acorex-components-rate-picker.mjs +250 -0
  26. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -0
  27. package/fesm2022/acorex-components-time-line.mjs +65 -0
  28. package/fesm2022/acorex-components-time-line.mjs.map +1 -0
  29. package/map/README.md +3 -0
  30. package/map/index.d.ts +3 -0
  31. package/map/lib/map.component.d.ts +24 -0
  32. package/map/lib/map.module.d.ts +8 -0
  33. package/menu/index.d.ts +1 -0
  34. package/menu/lib/menu-item/menu-item.component.d.ts +1 -3
  35. package/menu/lib/menu-item-text/menu-item-text.component.d.ts +5 -0
  36. package/menu/lib/menu.component.d.ts +1 -6
  37. package/menu/lib/menu.module.d.ts +9 -8
  38. package/menu/lib/menu.service.d.ts +0 -5
  39. package/package.json +55 -37
  40. package/rate-picker/README.md +3 -0
  41. package/rate-picker/index.d.ts +2 -0
  42. package/rate-picker/lib/calculatePercentage.d.ts +27 -0
  43. package/rate-picker/lib/rate-picker.component.d.ts +69 -0
  44. package/rate-picker/lib/rate-picker.module.d.ts +8 -0
  45. package/time-line/README.md +3 -0
  46. package/time-line/index.d.ts +3 -0
  47. package/time-line/lib/time-line-item.component.d.ts +7 -0
  48. package/time-line/lib/time-line.component.d.ts +5 -0
  49. package/time-line/lib/time-line.module.d.ts +9 -0
@@ -0,0 +1,250 @@
1
+ import { MXValueComponent, AXValuableComponent } from '@acorex/components/common';
2
+ import * as i0 from '@angular/core';
3
+ import { input, computed, signal, viewChild, inject, Renderer2, effect, forwardRef, Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, NgModule } from '@angular/core';
4
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ import { CommonModule } from '@angular/common';
6
+
7
+ /**
8
+ * Calculates the horizontal position of a pointer event (mouse or touch) as a percentage
9
+ * of the target element's width.
10
+ *
11
+ * @param event - The mouse or touch event to get the pointer position from.
12
+ * @returns The percentage of the event's position relative to the target element's width,
13
+ * or -1 if the event is invalid.
14
+ *
15
+ * @remarks
16
+ * - For `MouseEvent`, it uses the `clientX` property.
17
+ * - For `TouchEvent`, it uses the `clientX` of the first touch point.
18
+ * - Returns `-1` if the event is neither a valid `MouseEvent` nor a `TouchEvent`.
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * document.addEventListener('click', function(event) {
23
+ * const percentage = getPointerPercentage(event);
24
+ * console.log(`Click position: ${percentage.toFixed(2)}% of the element's width`);
25
+ * });
26
+ *
27
+ * document.addEventListener('touchstart', function(event) {
28
+ * const percentage = getPointerPercentage(event);
29
+ * console.log(`Touch position: ${percentage.toFixed(2)}% of the element's width`);
30
+ * });
31
+ * ```
32
+ */
33
+ function getPointerPercentage(event) {
34
+ let clientX;
35
+ if (event instanceof MouseEvent) {
36
+ clientX = event.clientX; // Mouse event uses clientX
37
+ }
38
+ else if (event instanceof TouchEvent && event.touches.length > 0) {
39
+ clientX = event.touches[0].clientX; // Touch event uses the first touch's clientX
40
+ }
41
+ else {
42
+ return -1; // Return -1 for invalid events
43
+ }
44
+ // Use currentTarget to get the bounding box of the element the event listener is attached to
45
+ const rect = event.currentTarget.getBoundingClientRect();
46
+ const clickX = clientX - rect.left; // Calculate X position relative to the element
47
+ const divWidth = rect.width; // Get the width from the bounding box
48
+ const percentage = (clickX / divWidth) * 100; // Calculate percentage
49
+ return percentage;
50
+ }
51
+
52
+ /**
53
+ * A component for selecting a rating using star icons.
54
+ *
55
+ * This component allows users to pick a rating by clicking or dragging over star icons.
56
+ * It supports rounding options and manages the rating state internally.
57
+ */
58
+ class AXRatePickerComponent extends MXValueComponent {
59
+ /**
60
+ * Initializes the component and sets up value change subscription.
61
+ */
62
+ constructor() {
63
+ super();
64
+ /** The icon name to use for stars (e.g., 'fa-star'). */
65
+ this.iconName = input('fa-star');
66
+ /** The maximum rating value (e.g., 5 stars). */
67
+ this.max = input(5);
68
+ /** Determines if the rating should be rounded to the nearest integer. */
69
+ this.isRound = input(true);
70
+ /** choosing to have css transition for unchanging value after hover. */
71
+ this.hasTransition = input(true);
72
+ /** The percentage of the current rating value relative to the maximum rating. */
73
+ this.ratePercentage = computed(() => Math.round((this.currentValue() / this.max()) * 10000) / 100);
74
+ /** The current rating value as a signal. */
75
+ this.currentValue = signal(this.max());
76
+ /** State for tracking hover status and previous value. */
77
+ this.prevState = {
78
+ ishover: false,
79
+ previousValue: undefined,
80
+ };
81
+ /** Reference to the container element. */
82
+ this.containerEl = viewChild.required('c');
83
+ /** Reference to the rating element. */
84
+ this.ratingEl = viewChild.required('r');
85
+ /** Renderer for manipulating styles. */
86
+ this.renderer = inject(Renderer2);
87
+ /** Array of rating values from 1 to `max`. */
88
+ this.rates = computed(() => Array(this.max())
89
+ .fill(0)
90
+ .map((_, index) => index + 1));
91
+ effect(() => {
92
+ if (!this.hasTransition()) {
93
+ this.renderer.removeStyle(this.ratingEl().nativeElement, 'transition');
94
+ }
95
+ return this.hasTransition();
96
+ });
97
+ this.onValueChanged.subscribe((val) => {
98
+ if (val.value < 0) {
99
+ this.currentValue.set(0);
100
+ console.warn('ax-rate-picker: value cant be negative!');
101
+ }
102
+ else if (val.value > this.max()) {
103
+ this.currentValue.set(this.max());
104
+ console.warn('ax-rate-picker: value cant be more than max!');
105
+ }
106
+ else {
107
+ this.currentValue.set(val.value);
108
+ }
109
+ });
110
+ }
111
+ /**
112
+ * Calculates and updates the rating based on the mouse or touch event.
113
+ *
114
+ * @param event - The mouse or touch event triggering the rating calculation.
115
+ */
116
+ calculateRate(event) {
117
+ if (this.hasTransition()) {
118
+ this.renderer.removeStyle(this.ratingEl().nativeElement, 'transition');
119
+ }
120
+ event.preventDefault();
121
+ if (!this.readonly && !this.disabled) {
122
+ const pointerPercentage = getPointerPercentage(event);
123
+ if (pointerPercentage === -1) {
124
+ return console.log('Only support touch and click events.');
125
+ }
126
+ const value = (pointerPercentage / 100) * this.max();
127
+ const finalValue = this.isRound() ? Math.ceil(value) : Number.parseFloat(value.toFixed(2));
128
+ if (finalValue !== this.value) {
129
+ if (this.prevState.ishover === true) {
130
+ this.currentValue.set(finalValue);
131
+ }
132
+ else {
133
+ this.commitValue(finalValue);
134
+ }
135
+ }
136
+ }
137
+ }
138
+ /**
139
+ * Handles mouse enter events to start tracking mouse movements for rating.
140
+ */
141
+ mouseEnter() {
142
+ this.prevState = {
143
+ ishover: true,
144
+ previousValue: this.value,
145
+ };
146
+ if (this.hasTransition()) {
147
+ this.renderer.setStyle(this.ratingEl().nativeElement, 'opacity', '80%');
148
+ }
149
+ const moveListener = (moveEvent) => this.calculateRate(moveEvent);
150
+ const endListener = () => this.onEnd(moveListener, endListener);
151
+ const container = this.containerEl().nativeElement;
152
+ container.addEventListener('mousemove', moveListener);
153
+ container.addEventListener('mouseup', endListener);
154
+ container.addEventListener('mouseleave', endListener);
155
+ }
156
+ mouseLeave() {
157
+ if (this.hasTransition()) {
158
+ this.renderer.removeStyle(this.ratingEl().nativeElement, 'opacity');
159
+ }
160
+ }
161
+ /**
162
+ * Cleans up event listeners and restores the previous rating value.
163
+ *
164
+ * @param moveListener - The function to remove for mouse move events.
165
+ * @param endListener - The function to remove for mouse end events.
166
+ */
167
+ onEnd(moveListener, endListener) {
168
+ if (this.hasTransition()) {
169
+ this.renderer.setStyle(this.ratingEl().nativeElement, 'transition', `width ${this.max() * 50 + 250}ms cubic-bezier(0.29, 0.72, 0.68, 0.85)`);
170
+ this.renderer.removeStyle(this.ratingEl().nativeElement, 'opacity');
171
+ }
172
+ this.currentValue.set(this.prevState.previousValue);
173
+ this.prevState = {
174
+ ishover: false,
175
+ previousValue: undefined,
176
+ };
177
+ const container = this.containerEl().nativeElement;
178
+ container.removeEventListener('mousemove', moveListener);
179
+ container.removeEventListener('mouseup', endListener);
180
+ container.removeEventListener('mouseleave', endListener);
181
+ }
182
+ /**
183
+ * Determines if the component is active (i.e., not readonly or disabled).
184
+ */
185
+ get isActive() {
186
+ return !this.readonly && !this.disabled;
187
+ }
188
+ /**
189
+ * Determines if the component is in readonly mode.
190
+ */
191
+ get isReadonly() {
192
+ return this.readonly;
193
+ }
194
+ /**
195
+ * Determines if the component is disabled.
196
+ */
197
+ get isDisabled() {
198
+ return this.disabled;
199
+ }
200
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXRatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
201
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXRatePickerComponent, selector: "ax-rate-picker", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, isRound: { classPropertyName: "isRound", publicName: "isRound", isSignal: true, isRequired: false, transformFunction: null }, hasTransition: { classPropertyName: "hasTransition", publicName: "hasTransition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.active": "this.isActive", "class.readonly": "this.isReadonly", "class.disable": "this.isDisabled" } }, providers: [
202
+ { provide: AXValuableComponent, useExisting: AXRatePickerComponent },
203
+ {
204
+ provide: NG_VALUE_ACCESSOR,
205
+ useExisting: forwardRef(() => AXRatePickerComponent),
206
+ multi: true,
207
+ },
208
+ ], viewQueries: [{ propertyName: "containerEl", first: true, predicate: ["c"], descendants: true, isSignal: true }, { propertyName: "ratingEl", first: true, predicate: ["r"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n #c\n class=\"ax-rate-picker-container\"\n (click)=\"calculateRate($event)\"\n (touchstart)=\"calculateRate($event)\"\n (mouseenter)=\"mouseEnter()\"\n (mouseleave)=\"mouseLeave()\"\n>\n <div #r class=\"ax-rate-picker-rating\" [style.width.%]=\"ratePercentage()\">\n <div class=\"ax-rate-picker-icons ax-rp-active\">\n @for (rate of rates(); track rate) {\n <i class=\"ax-rate-picker-icon fa-solid\" [class]=\"iconName()\" [class.pointer]=\"!this.readonly\"></i>\n }\n </div>\n </div>\n <div class=\"ax-rate-picker-icons ax-rp-inactive\">\n @for (rate of rates(); track rate) {\n <i class=\"ax-rate-picker-icon fa-solid\" [class]=\"iconName()\"></i>\n }\n </div>\n</div>\n", styles: [":root{--ax-rate-picker-color: rgba(var(--ax-color-primary-500));--ax-rate-picker-background: rgba(var(--ax-color-neutral-300))}ax-rate-picker.active{cursor:pointer}ax-rate-picker.readonly{opacity:.75}ax-rate-picker.disable{cursor:not-allowed;opacity:.5}ax-rate-picker.ax-sm{font-size:1rem}ax-rate-picker.ax-md{font-size:1.5rem}ax-rate-picker.ax-lg{font-size:2rem}ax-rate-picker.ax-xl{font-size:2.5rem}ax-rate-picker.ax-2xl{font-size:3rem}ax-rate-picker.ax-3xl{font-size:4rem}ax-rate-picker .ax-rate-picker-container{position:relative;width:min-content}ax-rate-picker .ax-rate-picker-container .ax-rate-picker-rating{position:relative;z-index:10;overflow:hidden}ax-rate-picker .ax-rate-picker-container .ax-rate-picker-rating .ax-rate-picker-icons{display:flex}ax-rate-picker .ax-rate-picker-container .ax-rate-picker-rating .ax-rate-picker-icons.ax-rp-active{color:var(--ax-rate-picker-color)}ax-rate-picker .ax-rate-picker-container .ax-rate-picker-icons{display:flex}ax-rate-picker .ax-rate-picker-container .ax-rate-picker-icons.ax-rp-inactive{color:var(--ax-rate-picker-background);position:absolute;left:50%;top:50%;translate:-50% -50%;z-index:5}.ax-dark :root{--ax-rate-picker-color: rgba(var(--ax-color-primary-300));--ax-rate-picker-background: rgba(var(--ax-color-neutral-600))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
209
+ }
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXRatePickerComponent, decorators: [{
211
+ type: Component,
212
+ args: [{ selector: 'ax-rate-picker', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, inputs: ['readonly', 'disabled'], providers: [
213
+ { provide: AXValuableComponent, useExisting: AXRatePickerComponent },
214
+ {
215
+ provide: NG_VALUE_ACCESSOR,
216
+ useExisting: forwardRef(() => AXRatePickerComponent),
217
+ multi: true,
218
+ },
219
+ ], template: "<div\n #c\n class=\"ax-rate-picker-container\"\n (click)=\"calculateRate($event)\"\n (touchstart)=\"calculateRate($event)\"\n (mouseenter)=\"mouseEnter()\"\n (mouseleave)=\"mouseLeave()\"\n>\n <div #r class=\"ax-rate-picker-rating\" [style.width.%]=\"ratePercentage()\">\n <div class=\"ax-rate-picker-icons ax-rp-active\">\n @for (rate of rates(); track rate) {\n <i class=\"ax-rate-picker-icon fa-solid\" [class]=\"iconName()\" [class.pointer]=\"!this.readonly\"></i>\n }\n </div>\n </div>\n <div class=\"ax-rate-picker-icons ax-rp-inactive\">\n @for (rate of rates(); track rate) {\n <i class=\"ax-rate-picker-icon fa-solid\" [class]=\"iconName()\"></i>\n }\n </div>\n</div>\n", styles: [":root{--ax-rate-picker-color: rgba(var(--ax-color-primary-500));--ax-rate-picker-background: rgba(var(--ax-color-neutral-300))}ax-rate-picker.active{cursor:pointer}ax-rate-picker.readonly{opacity:.75}ax-rate-picker.disable{cursor:not-allowed;opacity:.5}ax-rate-picker.ax-sm{font-size:1rem}ax-rate-picker.ax-md{font-size:1.5rem}ax-rate-picker.ax-lg{font-size:2rem}ax-rate-picker.ax-xl{font-size:2.5rem}ax-rate-picker.ax-2xl{font-size:3rem}ax-rate-picker.ax-3xl{font-size:4rem}ax-rate-picker .ax-rate-picker-container{position:relative;width:min-content}ax-rate-picker .ax-rate-picker-container .ax-rate-picker-rating{position:relative;z-index:10;overflow:hidden}ax-rate-picker .ax-rate-picker-container .ax-rate-picker-rating .ax-rate-picker-icons{display:flex}ax-rate-picker .ax-rate-picker-container .ax-rate-picker-rating .ax-rate-picker-icons.ax-rp-active{color:var(--ax-rate-picker-color)}ax-rate-picker .ax-rate-picker-container .ax-rate-picker-icons{display:flex}ax-rate-picker .ax-rate-picker-container .ax-rate-picker-icons.ax-rp-inactive{color:var(--ax-rate-picker-background);position:absolute;left:50%;top:50%;translate:-50% -50%;z-index:5}.ax-dark :root{--ax-rate-picker-color: rgba(var(--ax-color-primary-300));--ax-rate-picker-background: rgba(var(--ax-color-neutral-600))}\n"] }]
220
+ }], ctorParameters: () => [], propDecorators: { isActive: [{
221
+ type: HostBinding,
222
+ args: ['class.active']
223
+ }], isReadonly: [{
224
+ type: HostBinding,
225
+ args: ['class.readonly']
226
+ }], isDisabled: [{
227
+ type: HostBinding,
228
+ args: ['class.disable']
229
+ }] } });
230
+
231
+ class AXRatePickerModule {
232
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXRatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
233
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXRatePickerModule, declarations: [AXRatePickerComponent], imports: [CommonModule], exports: [AXRatePickerComponent] }); }
234
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXRatePickerModule, imports: [CommonModule] }); }
235
+ }
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXRatePickerModule, decorators: [{
237
+ type: NgModule,
238
+ args: [{
239
+ declarations: [AXRatePickerComponent],
240
+ imports: [CommonModule],
241
+ exports: [AXRatePickerComponent],
242
+ }]
243
+ }] });
244
+
245
+ /**
246
+ * Generated bundle index. Do not edit.
247
+ */
248
+
249
+ export { AXRatePickerComponent, AXRatePickerModule };
250
+ //# sourceMappingURL=acorex-components-rate-picker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-components-rate-picker.mjs","sources":["../../../../libs/components/rate-picker/src/lib/calculatePercentage.ts","../../../../libs/components/rate-picker/src/lib/rate-picker.component.ts","../../../../libs/components/rate-picker/src/lib/rate-picker.component.html","../../../../libs/components/rate-picker/src/lib/rate-picker.module.ts","../../../../libs/components/rate-picker/src/acorex-components-rate-picker.ts"],"sourcesContent":["/**\n * Calculates the horizontal position of a pointer event (mouse or touch) as a percentage\n * of the target element's width.\n *\n * @param event - The mouse or touch event to get the pointer position from.\n * @returns The percentage of the event's position relative to the target element's width,\n * or -1 if the event is invalid.\n *\n * @remarks\n * - For `MouseEvent`, it uses the `clientX` property.\n * - For `TouchEvent`, it uses the `clientX` of the first touch point.\n * - Returns `-1` if the event is neither a valid `MouseEvent` nor a `TouchEvent`.\n *\n * @example\n * ```typescript\n * document.addEventListener('click', function(event) {\n * const percentage = getPointerPercentage(event);\n * console.log(`Click position: ${percentage.toFixed(2)}% of the element's width`);\n * });\n *\n * document.addEventListener('touchstart', function(event) {\n * const percentage = getPointerPercentage(event);\n * console.log(`Touch position: ${percentage.toFixed(2)}% of the element's width`);\n * });\n * ```\n */\nexport function getPointerPercentage(event: MouseEvent | TouchEvent): number {\n let clientX: number;\n\n if (event instanceof MouseEvent) {\n clientX = event.clientX; // Mouse event uses clientX\n } else if (event instanceof TouchEvent && event.touches.length > 0) {\n clientX = event.touches[0].clientX; // Touch event uses the first touch's clientX\n } else {\n return -1; // Return -1 for invalid events\n }\n\n // Use currentTarget to get the bounding box of the element the event listener is attached to\n const rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n const clickX = clientX - rect.left; // Calculate X position relative to the element\n const divWidth = rect.width; // Get the width from the bounding box\n const percentage = (clickX / divWidth) * 100; // Calculate percentage\n\n return percentage;\n}\n","import { AXValuableComponent, MXValueComponent } from '@acorex/components/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n HostBinding,\n inject,\n input,\n Renderer2,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getPointerPercentage } from './calculatePercentage';\n\n/**\n * A component for selecting a rating using star icons.\n *\n * This component allows users to pick a rating by clicking or dragging over star icons.\n * It supports rounding options and manages the rating state internally.\n */\n@Component({\n selector: 'ax-rate-picker',\n templateUrl: './rate-picker.component.html',\n styleUrls: ['./rate-picker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['readonly', 'disabled'],\n providers: [\n { provide: AXValuableComponent, useExisting: AXRatePickerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXRatePickerComponent),\n multi: true,\n },\n ],\n})\nexport class AXRatePickerComponent extends MXValueComponent<number> {\n /** The icon name to use for stars (e.g., 'fa-star'). */\n iconName = input('fa-star');\n\n /** The maximum rating value (e.g., 5 stars). */\n max = input(5);\n\n /** Determines if the rating should be rounded to the nearest integer. */\n isRound = input(true);\n\n /** choosing to have css transition for unchanging value after hover. */\n hasTransition = input(true);\n\n /** The percentage of the current rating value relative to the maximum rating. */\n protected ratePercentage = computed(() => Math.round((this.currentValue() / this.max()) * 10000) / 100);\n\n /** The current rating value as a signal. */\n private currentValue = signal(this.max());\n\n /** State for tracking hover status and previous value. */\n private prevState: { ishover: boolean; previousValue?: number } = {\n ishover: false,\n previousValue: undefined,\n };\n\n /** Reference to the container element. */\n containerEl = viewChild.required<ElementRef>('c');\n\n /** Reference to the rating element. */\n ratingEl = viewChild.required<ElementRef>('r');\n\n /** Renderer for manipulating styles. */\n renderer = inject(Renderer2);\n\n /** Array of rating values from 1 to `max`. */\n protected rates = computed(() =>\n Array(this.max())\n .fill(0)\n .map((_, index) => index + 1),\n );\n\n /**\n * Initializes the component and sets up value change subscription.\n */\n constructor() {\n super();\n effect(() => {\n if (!this.hasTransition()) {\n this.renderer.removeStyle(this.ratingEl().nativeElement, 'transition');\n }\n return this.hasTransition();\n });\n this.onValueChanged.subscribe((val: { value }) => {\n if (val.value < 0) {\n this.currentValue.set(0);\n console.warn('ax-rate-picker: value cant be negative!');\n } else if (val.value > this.max()) {\n this.currentValue.set(this.max());\n console.warn('ax-rate-picker: value cant be more than max!');\n } else {\n this.currentValue.set(val.value);\n }\n });\n }\n\n /**\n * Calculates and updates the rating based on the mouse or touch event.\n *\n * @param event - The mouse or touch event triggering the rating calculation.\n */\n protected calculateRate(event: MouseEvent | TouchEvent): void {\n if (this.hasTransition()) {\n this.renderer.removeStyle(this.ratingEl().nativeElement, 'transition');\n }\n event.preventDefault();\n if (!this.readonly && !this.disabled) {\n const pointerPercentage = getPointerPercentage(event);\n if (pointerPercentage === -1) {\n return console.log('Only support touch and click events.');\n }\n const value = (pointerPercentage / 100) * this.max();\n const finalValue = this.isRound() ? Math.ceil(value) : Number.parseFloat(value.toFixed(2));\n if (finalValue !== this.value) {\n if (this.prevState.ishover === true) {\n this.currentValue.set(finalValue);\n } else {\n this.commitValue(finalValue);\n }\n }\n }\n }\n\n /**\n * Handles mouse enter events to start tracking mouse movements for rating.\n */\n protected mouseEnter() {\n this.prevState = {\n ishover: true,\n previousValue: this.value,\n };\n if (this.hasTransition()) {\n this.renderer.setStyle(this.ratingEl().nativeElement, 'opacity', '80%');\n }\n const moveListener = (moveEvent: MouseEvent | TouchEvent) => this.calculateRate(moveEvent);\n const endListener = () => this.onEnd(moveListener, endListener);\n const container = this.containerEl().nativeElement;\n container.addEventListener('mousemove', moveListener);\n container.addEventListener('mouseup', endListener);\n container.addEventListener('mouseleave', endListener);\n }\n mouseLeave() {\n if (this.hasTransition()) {\n this.renderer.removeStyle(this.ratingEl().nativeElement, 'opacity');\n }\n }\n /**\n * Cleans up event listeners and restores the previous rating value.\n *\n * @param moveListener - The function to remove for mouse move events.\n * @param endListener - The function to remove for mouse end events.\n */\n private onEnd(moveListener: (event: MouseEvent | TouchEvent) => void, endListener: () => void): void {\n if (this.hasTransition()) {\n this.renderer.setStyle(\n this.ratingEl().nativeElement,\n 'transition',\n `width ${this.max() * 50 + 250}ms cubic-bezier(0.29, 0.72, 0.68, 0.85)`,\n );\n this.renderer.removeStyle(this.ratingEl().nativeElement, 'opacity');\n }\n\n this.currentValue.set(this.prevState.previousValue);\n this.prevState = {\n ishover: false,\n previousValue: undefined,\n };\n\n const container = this.containerEl().nativeElement;\n container.removeEventListener('mousemove', moveListener);\n container.removeEventListener('mouseup', endListener);\n container.removeEventListener('mouseleave', endListener);\n }\n\n /**\n * Determines if the component is active (i.e., not readonly or disabled).\n */\n @HostBinding('class.active') get isActive() {\n return !this.readonly && !this.disabled;\n }\n\n /**\n * Determines if the component is in readonly mode.\n */\n @HostBinding('class.readonly') get isReadonly() {\n return this.readonly;\n }\n\n /**\n * Determines if the component is disabled.\n */\n @HostBinding('class.disable') get isDisabled() {\n return this.disabled;\n }\n}\n","<div\n #c\n class=\"ax-rate-picker-container\"\n (click)=\"calculateRate($event)\"\n (touchstart)=\"calculateRate($event)\"\n (mouseenter)=\"mouseEnter()\"\n (mouseleave)=\"mouseLeave()\"\n>\n <div #r class=\"ax-rate-picker-rating\" [style.width.%]=\"ratePercentage()\">\n <div class=\"ax-rate-picker-icons ax-rp-active\">\n @for (rate of rates(); track rate) {\n <i class=\"ax-rate-picker-icon fa-solid\" [class]=\"iconName()\" [class.pointer]=\"!this.readonly\"></i>\n }\n </div>\n </div>\n <div class=\"ax-rate-picker-icons ax-rp-inactive\">\n @for (rate of rates(); track rate) {\n <i class=\"ax-rate-picker-icon fa-solid\" [class]=\"iconName()\"></i>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXRatePickerComponent } from './rate-picker.component';\n\n@NgModule({\n declarations: [AXRatePickerComponent],\n imports: [CommonModule],\n exports: [AXRatePickerComponent],\n})\nexport class AXRatePickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, signal, Component, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+
6
+ class AXTimeLineItemComponent {
7
+ constructor() {
8
+ this.text = input('');
9
+ this.isCollapsed = signal(false);
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLineItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXTimeLineItemComponent, selector: "ax-time-line-item", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
13
+ <div class="ax-time-line-header">
14
+ <span class="ax-time-line-text">{{ text() }}</span>
15
+ <span
16
+ class="ax-icon ax-icon-chevron-down ax-collapse-arrow"
17
+ [ngClass]="{ '-rotation-90': isCollapsed(), 'rotation-90': !isCollapsed() }"
18
+ ></span>
19
+ </div>
20
+ <div class="ax-time-line-content"><ng-content></ng-content></div>
21
+ `, isInline: true, styles: ["ax-time-line-item{padding-bottom:.75rem;display:block}ax-time-line-item .ax-time-line-header{display:flex;justify-content:space-between;align-items:center;padding:0 .75rem}ax-time-line-item .ax-time-line-header .ax-time-line-text{flex:1}ax-time-line-item .ax-time-line-content{padding:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLineItemComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'ax-time-line-item', template: `
26
+ <div class="ax-time-line-header">
27
+ <span class="ax-time-line-text">{{ text() }}</span>
28
+ <span
29
+ class="ax-icon ax-icon-chevron-down ax-collapse-arrow"
30
+ [ngClass]="{ '-rotation-90': isCollapsed(), 'rotation-90': !isCollapsed() }"
31
+ ></span>
32
+ </div>
33
+ <div class="ax-time-line-content"><ng-content></ng-content></div>
34
+ `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["ax-time-line-item{padding-bottom:.75rem;display:block}ax-time-line-item .ax-time-line-header{display:flex;justify-content:space-between;align-items:center;padding:0 .75rem}ax-time-line-item .ax-time-line-header .ax-time-line-text{flex:1}ax-time-line-item .ax-time-line-content{padding:.75rem}\n"] }]
35
+ }] });
36
+
37
+ class AXTimeLineComponent {
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXTimeLineComponent, selector: "ax-time-line", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLineComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'ax-time-line', template: "<ng-content></ng-content>\n" }]
44
+ }] });
45
+
46
+ class AXTimeLineModule {
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLineModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
48
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLineModule, declarations: [AXTimeLineComponent, AXTimeLineItemComponent], imports: [CommonModule], exports: [AXTimeLineComponent, AXTimeLineItemComponent] }); }
49
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLineModule, imports: [CommonModule] }); }
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLineModule, decorators: [{
52
+ type: NgModule,
53
+ args: [{
54
+ declarations: [AXTimeLineComponent, AXTimeLineItemComponent],
55
+ imports: [CommonModule],
56
+ exports: [AXTimeLineComponent, AXTimeLineItemComponent],
57
+ }]
58
+ }] });
59
+
60
+ /**
61
+ * Generated bundle index. Do not edit.
62
+ */
63
+
64
+ export { AXTimeLineComponent, AXTimeLineItemComponent, AXTimeLineModule };
65
+ //# sourceMappingURL=acorex-components-time-line.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-components-time-line.mjs","sources":["../../../../libs/components/time-line/src/lib/time-line-item.component.ts","../../../../libs/components/time-line/src/lib/time-line.component.ts","../../../../libs/components/time-line/src/lib/time-line.component.html","../../../../libs/components/time-line/src/lib/time-line.module.ts","../../../../libs/components/time-line/src/acorex-components-time-line.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, signal, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-time-line-item',\n template: `\n <div class=\"ax-time-line-header\">\n <span class=\"ax-time-line-text\">{{ text() }}</span>\n <span\n class=\"ax-icon ax-icon-chevron-down ax-collapse-arrow\"\n [ngClass]=\"{ '-rotation-90': isCollapsed(), 'rotation-90': !isCollapsed() }\"\n ></span>\n </div>\n <div class=\"ax-time-line-content\"><ng-content></ng-content></div>\n `,\n styleUrl: './time-line-item.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXTimeLineItemComponent {\n text = input('');\n\n isCollapsed = signal(false);\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ax-time-line',\n templateUrl: './time-line.component.html',\n styleUrls: ['./time-line.component.scss'],\n})\nexport class AXTimeLineComponent {}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXTimeLineItemComponent } from './time-line-item.component';\nimport { AXTimeLineComponent } from './time-line.component';\n\n@NgModule({\n declarations: [AXTimeLineComponent, AXTimeLineItemComponent],\n imports: [CommonModule],\n exports: [AXTimeLineComponent, AXTimeLineItemComponent],\n})\nexport class AXTimeLineModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/map/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # @acorex/components/map
2
+
3
+ Secondary entry point of `@acorex/components`. It can be used by importing from `@acorex/components/map`.
package/map/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export { AXMapLocation } from '@acorex/cdk/map';
2
+ export * from './lib/map.component';
3
+ export * from './lib/map.module';
@@ -0,0 +1,24 @@
1
+ import { AXMapControlPlace, AXMapLocation } from '@acorex/cdk/map';
2
+ import { AfterViewInit, OnDestroy } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AXMapComponent implements AfterViewInit, OnDestroy {
5
+ zoomLevel: import("@angular/core").InputSignal<number>;
6
+ latitude: import("@angular/core").InputSignal<number>;
7
+ longitude: import("@angular/core").InputSignal<number>;
8
+ hasMarker: import("@angular/core").InputSignal<boolean>;
9
+ markerPlace: import("@angular/core").InputSignal<AXMapControlPlace>;
10
+ hasLocator: import("@angular/core").InputSignal<boolean>;
11
+ locatePlace: import("@angular/core").InputSignal<AXMapControlPlace>;
12
+ markers: import("@angular/core").InputSignal<AXMapLocation | AXMapLocation[]>;
13
+ onMarkerAdded: import("@angular/core").OutputEmitterRef<AXMapLocation>;
14
+ onLocationFound: import("@angular/core").OutputEmitterRef<AXMapLocation>;
15
+ private mapContainer;
16
+ private leaflet;
17
+ ngAfterViewInit(): void;
18
+ addMarker(location: AXMapLocation): void;
19
+ flyTo(location: AXMapLocation, zoom?: number, setMarker?: boolean, duration?: number): void;
20
+ constructor();
21
+ ngOnDestroy(): void;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMapComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXMapComponent, "ax-map", never, { "zoomLevel": { "alias": "zoomLevel"; "required": false; "isSignal": true; }; "latitude": { "alias": "latitude"; "required": false; "isSignal": true; }; "longitude": { "alias": "longitude"; "required": false; "isSignal": true; }; "hasMarker": { "alias": "hasMarker"; "required": false; "isSignal": true; }; "markerPlace": { "alias": "markerPlace"; "required": false; "isSignal": true; }; "hasLocator": { "alias": "hasLocator"; "required": false; "isSignal": true; }; "locatePlace": { "alias": "locatePlace"; "required": false; "isSignal": true; }; "markers": { "alias": "markers"; "required": false; "isSignal": true; }; }, { "onMarkerAdded": "onMarkerAdded"; "onLocationFound": "onLocationFound"; }, never, never, false, never>;
24
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./map.component";
3
+ import * as i2 from "@angular/common";
4
+ export declare class AXMapModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMapModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMapModule, [typeof i1.AXMapComponent], [typeof i2.CommonModule], [typeof i1.AXMapComponent]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMapModule>;
8
+ }
package/menu/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './lib/class/popover.class';
2
2
  export * from './lib/class/root-menu.class';
3
+ export * from './lib/menu-item-text/menu-item-text.component';
3
4
  export * from './lib/menu-item/menu-item.component';
4
5
  export * from './lib/menu.component';
5
6
  export * from './lib/menu.module';
@@ -10,7 +10,6 @@ import * as i0 from "@angular/core";
10
10
  export declare class AXMenuItemComponent extends MXInteractiveComponent {
11
11
  service: AXMenuService;
12
12
  /** @ignore */
13
- /** @ignore */
14
13
  private popover;
15
14
  /**
16
15
  * Injects the `AXMenuService` for managing menu interactions.
@@ -27,7 +26,6 @@ export declare class AXMenuItemComponent extends MXInteractiveComponent {
27
26
  /**
28
27
  * The text content, initialized to an empty string.
29
28
  */
30
- text: import("@angular/core").InputSignal<string>;
31
29
  /**
32
30
  * Indicates whether the item is active.
33
31
  */
@@ -79,5 +77,5 @@ export declare class AXMenuItemComponent extends MXInteractiveComponent {
79
77
  /** @ignore */
80
78
  private __hostClick;
81
79
  static ɵfac: i0.ɵɵFactoryDeclaration<AXMenuItemComponent, never>;
82
- static ɵcmp: i0.ɵɵComponentDeclaration<AXMenuItemComponent, "ax-menu-item", never, { "disabled": { "alias": "disabled"; "required": false; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "arrowState": { "alias": "arrowState"; "required": false; "isSignal": true; }; }, { "activeChange": "activeChange"; "onClick": "onClick"; }, ["children"], ["ax-prefix", "ax-suffix", "ax-menu-item"], false, never>;
80
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXMenuItemComponent, "ax-menu-item", never, { "disabled": { "alias": "disabled"; "required": false; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "arrowState": { "alias": "arrowState"; "required": false; "isSignal": true; }; }, { "activeChange": "activeChange"; "onClick": "onClick"; }, ["children"], ["ax-prefix", "ax-menu-item-text", "ax-suffix", "ax-menu-item"], false, never>;
83
81
  }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class AXMenuItemTextComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMenuItemTextComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXMenuItemTextComponent, "ax-menu-item-text", never, {}, {}, never, ["*"], false, never>;
5
+ }
@@ -12,17 +12,12 @@ export declare class AXMenuComponent extends MXBaseComponent implements AfterVie
12
12
  orientation: import("@angular/core").InputSignal<AXOrientation>;
13
13
  openOn: import("@angular/core").InputSignal<AXMenuPopoverTrigger>;
14
14
  service: AXMenuService;
15
- menuHeight: import("@angular/core").WritableSignal<string>;
16
- isMenuOpen: import("@angular/core").WritableSignal<boolean>;
17
- truncateMenu: import("@angular/core").InputSignal<boolean>;
18
15
  /** @ignore */
19
16
  children: QueryList<AXMenuItemComponent>;
20
- constructor();
21
- showMenuHandler(): void;
22
17
  /** @ignore */
23
18
  ngAfterViewInit(): void;
24
19
  /** @ignore */
25
20
  get __hostClass(): string;
26
21
  static ɵfac: i0.ɵɵFactoryDeclaration<AXMenuComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<AXMenuComponent, "ax-menu", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "openOn": { "alias": "openOn"; "required": false; "isSignal": true; }; "truncateMenu": { "alias": "truncateMenu"; "required": false; "isSignal": true; }; }, {}, ["children"], ["ax-menu-item,ng-container"], false, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXMenuComponent, "ax-menu", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "openOn": { "alias": "openOn"; "required": false; "isSignal": true; }; }, {}, ["children"], ["ax-menu-item,ng-container"], false, never>;
28
23
  }
@@ -1,15 +1,16 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./menu-item/menu-item.component";
3
3
  import * as i2 from "./menu.component";
4
- import * as i3 from "@angular/common";
5
- import * as i4 from "@acorex/components/decorators";
6
- import * as i5 from "@acorex/components/loading";
7
- import * as i6 from "@acorex/core/translation";
8
- import * as i7 from "@angular/cdk/overlay";
9
- import * as i8 from "@acorex/components/popover";
10
- import * as i9 from "@acorex/components/button";
4
+ import * as i3 from "./menu-item-text/menu-item-text.component";
5
+ import * as i4 from "@angular/common";
6
+ import * as i5 from "@acorex/components/decorators";
7
+ import * as i6 from "@acorex/components/loading";
8
+ import * as i7 from "@acorex/core/translation";
9
+ import * as i8 from "@angular/cdk/overlay";
10
+ import * as i9 from "@acorex/components/popover";
11
+ import * as i10 from "@acorex/components/button";
11
12
  export declare class AXMenuModule {
12
13
  static ɵfac: i0.ɵɵFactoryDeclaration<AXMenuModule, never>;
13
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXMenuModule, [typeof i1.AXMenuItemComponent, typeof i2.AXMenuComponent], [typeof i3.CommonModule, typeof i4.AXDecoratorModule, typeof i5.AXLoadingModule, typeof i6.AXTranslationModule, typeof i7.OverlayModule, typeof i8.AXPopoverModule, typeof i9.AXButtonModule], [typeof i1.AXMenuItemComponent, typeof i2.AXMenuComponent]>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMenuModule, [typeof i1.AXMenuItemComponent, typeof i2.AXMenuComponent, typeof i3.AXMenuItemTextComponent], [typeof i4.CommonModule, typeof i5.AXDecoratorModule, typeof i6.AXLoadingModule, typeof i7.AXTranslationModule, typeof i8.OverlayModule, typeof i9.AXPopoverModule, typeof i10.AXButtonModule], [typeof i1.AXMenuItemComponent, typeof i2.AXMenuComponent, typeof i3.AXMenuItemTextComponent]>;
14
15
  static ɵinj: i0.ɵɵInjectorDeclaration<AXMenuModule>;
15
16
  }
@@ -3,11 +3,6 @@ import { AXMenuItemComponent } from './menu-item/menu-item.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class AXMenuService {
5
5
  activeMenus$: BehaviorSubject<AXMenuItemComponent[]>;
6
- rightOverflow: import("@angular/core").WritableSignal<number>;
7
- leftOverflow: import("@angular/core").WritableSignal<number>;
8
- overflowElements: import("@angular/core").WritableSignal<HTMLElement[]>;
9
- notOverflowElements: import("@angular/core").WritableSignal<HTMLElement[]>;
10
- isOverflowExist: import("@angular/core").WritableSignal<boolean>;
11
6
  static ɵfac: i0.ɵɵFactoryDeclaration<AXMenuService, never>;
12
7
  static ɵprov: i0.ɵɵInjectableDeclaration<AXMenuService>;
13
8
  }