@acorex/components 21.0.2-next.2 → 21.0.2-next.21
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.
- package/conversation2/README.md +8 -6
- package/fesm2022/acorex-components-button-group.mjs +26 -6
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +50 -9
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation2.mjs +5958 -3866
- package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +19 -3
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +14 -14
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +2 -2
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-flow-chart.mjs +42 -25
- package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +5 -5
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-DWNqU6or.mjs → acorex-components-modal-acorex-components-modal-CcXuJ4IW.mjs} +3 -3
- package/fesm2022/{acorex-components-modal-acorex-components-modal-DWNqU6or.mjs.map → acorex-components-modal-acorex-components-modal-CcXuJ4IW.mjs.map} +1 -1
- package/fesm2022/{acorex-components-modal-modal-content.component-DplJbJyk.mjs → acorex-components-modal-modal-content.component-DTZu2zbU.mjs} +2 -2
- package/fesm2022/{acorex-components-modal-modal-content.component-DplJbJyk.mjs.map → acorex-components-modal-modal-content.component-DTZu2zbU.mjs.map} +1 -1
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-number-box.mjs +43 -5
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +25 -1
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +19 -2
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +3 -2
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +1 -0
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +3 -7
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +384 -56
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +2 -2
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +3 -5
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +19 -6
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/package.json +3 -3
- package/types/acorex-components-button-group.d.ts +9 -3
- package/types/acorex-components-color-palette.d.ts +2 -0
- package/types/acorex-components-conversation2.d.ts +2473 -2447
- package/types/acorex-components-data-pager.d.ts +2 -0
- package/types/acorex-components-data-table.d.ts +8 -8
- package/types/acorex-components-flow-chart.d.ts +4 -0
- package/types/acorex-components-number-box.d.ts +9 -0
- package/types/acorex-components-popup.d.ts +10 -0
- package/types/acorex-components-qrcode.d.ts +1 -0
- package/types/acorex-components-query-builder.d.ts +1 -1
- package/types/acorex-components-side-menu.d.ts +92 -6
- package/types/acorex-components-toast.d.ts +5 -1
package/conversation2/README.md
CHANGED
|
@@ -83,6 +83,7 @@ import {
|
|
|
83
83
|
AXIndexedDBUserApi,
|
|
84
84
|
AXIndexedDBConversationApi,
|
|
85
85
|
AXIndexedDBMessageApi,
|
|
86
|
+
AXConversationIndexedDbUploaderApi,
|
|
86
87
|
AXIndexedDBRealtimeApi,
|
|
87
88
|
} from '@acorex/components/conversation2';
|
|
88
89
|
|
|
@@ -92,12 +93,11 @@ export const appConfig: ApplicationConfig = {
|
|
|
92
93
|
userApi: AXIndexedDBUserApi,
|
|
93
94
|
conversationApi: AXIndexedDBConversationApi,
|
|
94
95
|
messageApi: AXIndexedDBMessageApi,
|
|
96
|
+
uploaderApi: AXConversationIndexedDbUploaderApi,
|
|
95
97
|
realtimeApi: AXIndexedDBRealtimeApi, // optional
|
|
96
98
|
config: {
|
|
97
99
|
messagePageSize: 50,
|
|
98
100
|
conversationPageSize: 30,
|
|
99
|
-
maxFileSize: 10 * 1024 * 1024,
|
|
100
|
-
allowedFileTypes: ['image/*', 'video/*', 'audio/*', 'application/pdf'],
|
|
101
101
|
},
|
|
102
102
|
registry: {
|
|
103
103
|
// Optional: Register custom message renderers, actions, etc.
|
|
@@ -188,6 +188,7 @@ provideConversation({
|
|
|
188
188
|
userApi: AXIndexedDBUserApi,
|
|
189
189
|
conversationApi: AXIndexedDBConversationApi,
|
|
190
190
|
messageApi: AXIndexedDBMessageApi,
|
|
191
|
+
uploaderApi: AXIndexedDBMediaUploaderApi,
|
|
191
192
|
realtimeApi: AXIndexedDBRealtimeApi,
|
|
192
193
|
});
|
|
193
194
|
```
|
|
@@ -208,6 +209,7 @@ provideConversation({
|
|
|
208
209
|
userApi: AXIndexedDBUserApi,
|
|
209
210
|
conversationApi: AXIndexedDBConversationApi,
|
|
210
211
|
messageApi: AXIndexedDBMessageAIApi,
|
|
212
|
+
uploaderApi: AXIndexedDBMediaUploaderApi,
|
|
211
213
|
realtimeApi: AXIndexedDBRealtimeApi,
|
|
212
214
|
});
|
|
213
215
|
```
|
|
@@ -224,9 +226,9 @@ interface AXConversationConfig {
|
|
|
224
226
|
infiniteScrollThreshold?: number; // Default: 200px
|
|
225
227
|
scrollThreshold?: number; // Default: 100px
|
|
226
228
|
|
|
227
|
-
// File
|
|
229
|
+
// File upload (fallback when action omits uploadConstraints fields)
|
|
228
230
|
maxFileSize?: number; // Default: 10MB
|
|
229
|
-
allowedFileTypes?: string[]; // Default:
|
|
231
|
+
allowedFileTypes?: string[]; // Default: image/*, video/*, audio/*, pdf, doc
|
|
230
232
|
|
|
231
233
|
// UI Behavior
|
|
232
234
|
messageHighlightDuration?: number; // Default: 2000ms
|
|
@@ -431,8 +433,8 @@ Supported message types out of the box:
|
|
|
431
433
|
|
|
432
434
|
**Issue**: File upload fails
|
|
433
435
|
|
|
434
|
-
- Check `maxFileSize`
|
|
435
|
-
- Verify
|
|
436
|
+
- Check `config.maxFileSize` / `config.allowedFileTypes` and per-action `uploadConstraints` (`allowedMimeTypes`, `minSize`, `maxSize`)
|
|
437
|
+
- Verify `uploaderApi` is provided and implements `AXUploaderApi.upload()` with progress and `AbortSignal` support
|
|
436
438
|
|
|
437
439
|
**Issue**: Styling issues
|
|
438
440
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MXInteractiveComponent, AXComponent } from '@acorex/cdk/common';
|
|
2
2
|
import { AXButtonComponent } from '@acorex/components/button';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { input,
|
|
4
|
+
import { input, EventEmitter, effect, contentChildren, output, HostListener, HostBinding, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, Component, inject, model, NgModule } from '@angular/core';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* A component that groups multiple buttons together, allowing for consistent styling and behavior.
|
|
@@ -12,8 +12,10 @@ class AXButtonGroupComponent extends MXInteractiveComponent {
|
|
|
12
12
|
constructor() {
|
|
13
13
|
super(...arguments);
|
|
14
14
|
this.fitParent = input(false, ...(ngDevMode ? [{ debugName: "fitParent" }] : []));
|
|
15
|
-
this.
|
|
16
|
-
this.
|
|
15
|
+
this.colorChange = new EventEmitter();
|
|
16
|
+
this._color = 'default';
|
|
17
|
+
this.lookChange = new EventEmitter();
|
|
18
|
+
this._look = 'solid';
|
|
17
19
|
this.customClass = input('', { ...(ngDevMode ? { debugName: "customClass" } : {}), alias: 'class' });
|
|
18
20
|
this.#effect = effect(() => {
|
|
19
21
|
if (this._contentButtons().length) {
|
|
@@ -44,6 +46,20 @@ class AXButtonGroupComponent extends MXInteractiveComponent {
|
|
|
44
46
|
*/
|
|
45
47
|
this.selectedButtonChange = output();
|
|
46
48
|
}
|
|
49
|
+
get color() {
|
|
50
|
+
return this._color;
|
|
51
|
+
}
|
|
52
|
+
set color(v) {
|
|
53
|
+
this._color = v;
|
|
54
|
+
this.colorChange.emit(v);
|
|
55
|
+
}
|
|
56
|
+
get look() {
|
|
57
|
+
return this._look;
|
|
58
|
+
}
|
|
59
|
+
set look(v) {
|
|
60
|
+
this._look = v;
|
|
61
|
+
this.lookChange.emit(v);
|
|
62
|
+
}
|
|
47
63
|
#effect;
|
|
48
64
|
/**
|
|
49
65
|
* Defines the selection mode for the component.
|
|
@@ -162,13 +178,17 @@ class AXButtonGroupComponent extends MXInteractiveComponent {
|
|
|
162
178
|
}
|
|
163
179
|
}
|
|
164
180
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXButtonGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
165
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.3", type: AXButtonGroupComponent, isStandalone: true, selector: "ax-button-group", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, fitParent: { classPropertyName: "fitParent", publicName: "fitParent", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, customClass: { classPropertyName: "customClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onBlur: "onBlur", onFocus: "onFocus",
|
|
181
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.3", type: AXButtonGroupComponent, isStandalone: true, selector: "ax-button-group", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, fitParent: { classPropertyName: "fitParent", publicName: "fitParent", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, customClass: { classPropertyName: "customClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: "selection", publicName: "selection", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onBlur: "onBlur", onFocus: "onFocus", disabledChange: "disabledChange", colorChange: "colorChange", lookChange: "lookChange", onClick: "onClick", selectionChange: "selectionChange", selectedButtonChange: "selectedButtonChange" }, host: { listeners: { "click": "__hostClick($event)" }, properties: { "class": "this.__hostClass", "attr.role": "this.role" } }, providers: [{ provide: AXComponent, useExisting: AXButtonGroupComponent }], queries: [{ propertyName: "_contentButtons", predicate: AXButtonGroupItemComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <ng-content select=\"ax-button-group-item\"></ng-content>\n</ng-container>\n", styles: ["@layer components{ax-button-group{flex-wrap:wrap;display:flex}ax-button-group ax-button-group-item{min-width:calc(var(--spacing,.25rem) * 0)}ax-button-group ax-button-group-item ax-button{display:block}ax-button-group ax-button-group-item ax-button>button .ax-button-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}ax-button-group ax-button-group-item.ax-state-selected ax-button{z-index:1}ax-button-group ax-button-group-item:not(:first-child,:last-child) ax-button{border-radius:0}ax-button-group ax-button-group-item:not(:first-child) ax-button{margin-inline-start:-1px}ax-button-group ax-button-group-item.ax-row-start ax-button{margin-inline-start:calc(var(--spacing,.25rem) * 0)}:is(ax-button-group ax-button-group-item:first-child,ax-button-group ax-button-group-item.ax-row-start) ax-button{border-radius:0;border-start-start-radius:var(--radius-lg,.5rem);border-end-start-radius:var(--radius-lg,.5rem)}:is(ax-button-group ax-button-group-item:last-child,ax-button-group ax-button-group-item.ax-row-end) ax-button{border-radius:0;border-start-end-radius:var(--radius-lg,.5rem);border-end-end-radius:var(--radius-lg,.5rem)}ax-button-group.ax-parent-fit{flex-wrap:wrap}ax-button-group.ax-parent-fit ax-button-group-item,ax-button-group.ax-parent-fit ax-button-group-item ax-button{width:100%}}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
166
182
|
}
|
|
167
183
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXButtonGroupComponent, decorators: [{
|
|
168
184
|
type: Component,
|
|
169
|
-
args: [{ selector: 'ax-button-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['disabled'], outputs: ['onBlur', 'onFocus', '
|
|
170
|
-
}], propDecorators: { fitParent: [{ type: i0.Input, args: [{ isSignal: true, alias: "fitParent", required: false }] }],
|
|
185
|
+
args: [{ selector: 'ax-button-group', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['disabled'], outputs: ['onBlur', 'onFocus', 'disabledChange'], providers: [{ provide: AXComponent, useExisting: AXButtonGroupComponent }], template: "<ng-container>\n <ng-content select=\"ax-button-group-item\"></ng-content>\n</ng-container>\n", styles: ["@layer components{ax-button-group{flex-wrap:wrap;display:flex}ax-button-group ax-button-group-item{min-width:calc(var(--spacing,.25rem) * 0)}ax-button-group ax-button-group-item ax-button{display:block}ax-button-group ax-button-group-item ax-button>button .ax-button-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}ax-button-group ax-button-group-item.ax-state-selected ax-button{z-index:1}ax-button-group ax-button-group-item:not(:first-child,:last-child) ax-button{border-radius:0}ax-button-group ax-button-group-item:not(:first-child) ax-button{margin-inline-start:-1px}ax-button-group ax-button-group-item.ax-row-start ax-button{margin-inline-start:calc(var(--spacing,.25rem) * 0)}:is(ax-button-group ax-button-group-item:first-child,ax-button-group ax-button-group-item.ax-row-start) ax-button{border-radius:0;border-start-start-radius:var(--radius-lg,.5rem);border-end-start-radius:var(--radius-lg,.5rem)}:is(ax-button-group ax-button-group-item:last-child,ax-button-group ax-button-group-item.ax-row-end) ax-button{border-radius:0;border-start-end-radius:var(--radius-lg,.5rem);border-end-end-radius:var(--radius-lg,.5rem)}ax-button-group.ax-parent-fit{flex-wrap:wrap}ax-button-group.ax-parent-fit ax-button-group-item,ax-button-group.ax-parent-fit ax-button-group-item ax-button{width:100%}}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"] }]
|
|
186
|
+
}], propDecorators: { fitParent: [{ type: i0.Input, args: [{ isSignal: true, alias: "fitParent", required: false }] }], colorChange: [{
|
|
187
|
+
type: Output
|
|
188
|
+
}], color: [{
|
|
171
189
|
type: Input
|
|
190
|
+
}], lookChange: [{
|
|
191
|
+
type: Output
|
|
172
192
|
}], look: [{
|
|
173
193
|
type: Input
|
|
174
194
|
}], customClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], onClick: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-button-group.mjs","sources":["../../../../packages/components/button-group/src/lib/button-group.component.ts","../../../../packages/components/button-group/src/lib/button-group.component.html","../../../../packages/components/button-group/src/lib/button-group-item.component.ts","../../../../packages/components/button-group/src/lib/button-group.module.ts","../../../../packages/components/button-group/src/acorex-components-button-group.ts"],"sourcesContent":["import {\n AXClickEvent,\n AXComponent,\n AXSelectionMode,\n MXInteractiveComponent,\n type AXStyleColorType,\n type AXStyleLookType,\n} from '@acorex/cdk/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n EventEmitter,\n HostBinding,\n HostListener,\n input,\n Input,\n output,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXButtonGroupItemComponent } from './button-group-item.component';\n\n/**\n * A component that groups multiple buttons together, allowing for consistent styling and behavior.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-button-group',\n templateUrl: './button-group.component.html',\n styleUrls: ['./button-group.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n outputs: ['onBlur', 'onFocus', 'lookChange', 'colorChange', 'disabledChange'],\n providers: [{ provide: AXComponent, useExisting: AXButtonGroupComponent }],\n})\nexport class AXButtonGroupComponent extends MXInteractiveComponent {\n readonly fitParent = input(false);\n\n @Input()\n color: AXStyleColorType = 'default';\n\n @Input()\n look: AXStyleLookType = 'solid';\n\n readonly customClass = input<string>('', { alias: 'class' });\n\n #effect = effect(() => {\n if (this._contentButtons().length) {\n this._bindEvents();\n this._bindProps();\n }\n });\n\n /**\n * Fires when any button in the group is clicked.\n *\n * @event\n */\n @Output()\n onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n /**\n * @ignore\n */\n private _contentButtons = contentChildren(AXButtonGroupItemComponent, { descendants: true });\n\n /**\n * Emitted when the selection mode changes.\n *\n * @event\n */\n @Output()\n selectionChange: EventEmitter<AXSelectionMode> = new EventEmitter();\n /**\n * Emits the button item component instance when the selected button changes.\n *\n * @event\n */\n selectedButtonChange = output<AXButtonGroupItemComponent>();\n\n /**\n * @ignore\n */\n private _selection: AXSelectionMode;\n\n /**\n * Defines the selection mode for the component.\n */\n @Input()\n public get selection(): AXSelectionMode {\n return this._selection;\n }\n\n /**\n * Sets the selection mode for the component.\n *\n * @param value - The selection mode to be set. Possible values include 'single', 'multiple', or 'none'.\n */\n public set selection(value: AXSelectionMode) {\n this.setOption({\n name: 'selection',\n value: value,\n afterCallback: (o, n) => {\n if (value == 'none') {\n this.clearSelection();\n }\n },\n });\n }\n\n /**\n * @ignore\n */\n private _bindEvents() {\n this._contentButtons()?.forEach((b: any) => {\n if (!b.onClick.length)\n b.onClick.subscribe((c: any) => {\n this._handleClickEvent(c, b);\n });\n });\n }\n\n /**\n * @ignore\n */\n private _bindProps() {\n this._contentButtons()?.forEach((b: any) => {\n if (this.customClass()) b.customClass.set(this.customClass());\n\n if (b['originDisabled'] == null) {\n b['originDisabled'] = b.disabled;\n }\n if (b['originColor'] == null) {\n b['originColor'] = b.color;\n }\n if (this.look) b.look = this.look;\n // Apply group color only if the item has not explicitly provided a color\n if (this.color) {\n const itemHasExplicitColor = b['originColor'] != null && b['originColor'] !== 'default';\n b.color = itemHasExplicitColor ? b['originColor'] : this.color;\n }\n b.disabled = b['originDisabled'] || this.disabled;\n b.toggleable = false;\n });\n }\n\n /**\n * @ignore\n * Updates component properties based on internal option changes.\n */\n protected override internalOptionChanged() {\n this._bindProps();\n }\n\n /**\n * @ignore\n */\n private _handleClickEvent(e: AXClickEvent, button: AXButtonGroupItemComponent) {\n this.selectedButtonChange.emit(button);\n if (this.selection == 'multiple') {\n button.selected = !button.selected;\n } else if (this.selection == 'single') {\n this.clearSelection();\n button.selected = true;\n } else {\n button.selected = false;\n }\n }\n\n /**\n * @ignore\n */\n private clearSelection() {\n this._contentButtons()?.forEach((c: AXButtonGroupItemComponent) => {\n c.selected = false;\n });\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): { [key: string]: boolean } {\n const cssClasses = {\n 'ax-state-disabled': this.disabled,\n 'ax-parent-fit': this.fitParent(),\n };\n return cssClasses;\n }\n\n /**\n * @ignore\n */\n @HostBinding('attr.role') get role() {\n return 'group';\n }\n\n /**\n * @ignore\n */\n @HostListener('click', ['$event'])\n __hostClick(e: MouseEvent) {\n if (!this.disabled) {\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n }\n}\n","<ng-container>\n <ng-content select=\"ax-button-group-item\"></ng-content>\n</ng-container>\n","import { AXClickEvent, AXComponent, AXStyleColorType, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n inject,\n Input,\n model,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXButtonGroupComponent } from './button-group.component';\n\nexport interface AXButtonItemListItem {\n name: string;\n text: string;\n icon: string;\n divided?: boolean;\n disabled?: boolean;\n color?: AXStyleColorType;\n}\n\n/**\n * Represents a button item with optional content like icons, text, and dropdowns.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-button-group-item',\n template: `\n <ax-button\n [color]=\"color && color !== 'default' ? color : btnGroup.color\"\n [text]=\"text\"\n [class]=\"customClass()\"\n [look]=\"btnGroup.look\"\n [disabled]=\"disabled\"\n [selected]=\"selected\"\n >\n <ng-content></ng-content>\n </ax-button>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled'],\n outputs: ['onClick', 'onFocus', 'onBlur', 'disabledChange'],\n imports: [AXButtonComponent],\n providers: [{ provide: AXComponent, useExisting: AXButtonGroupItemComponent }],\n})\nexport class AXButtonGroupItemComponent extends MXInteractiveComponent {\n btnGroup = inject(AXButtonGroupComponent);\n\n @Input()\n color: AXStyleColorType = 'default';\n\n /**\n * Text displayed on the button item.\n */\n @Input()\n text: string = '';\n\n /**\n * @ignore\n */\n private _selected: boolean;\n\n readonly customClass = model<string>('', { alias: 'class' });\n\n /**\n * Indicates whether the button item is selected.\n *\n * @param v - A boolean indicating the selected state.\n * Updates the view when the value changes.\n */\n @Input()\n public get selected(): boolean {\n return this._selected;\n }\n public set selected(v: boolean) {\n this._selected = v;\n this.cdr.markForCheck();\n }\n\n /**\n * Whether the item is visually separated from other items.\n * @defaultValue false\n */\n @Input()\n divided = false;\n\n /**\n * Data associated with the button item.\n */\n @Input()\n data: unknown;\n\n /**\n * The name of the button item.\n */\n @Input()\n name: string;\n\n /**\n * Emitted when the button item is clicked.\n * @event\n * The emitted value is an `AXClickEvent` object containing event details.\n */\n @Output()\n onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n /**\n * @ignore\n */\n @HostListener('click', ['$event'])\n __hostClick(e: MouseEvent) {\n if (!this.disabled) {\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n }\n /**\n * @ignore\n */\n @HostListener('focus', ['$event'])\n __hostFocus(e: FocusEvent) {\n this.emitOnFocusEvent(e);\n }\n\n /**\n * @ignore\n */\n @HostListener('blur', ['$event'])\n __hostBlur(e: FocusEvent) {\n this.emitOnBlurEvent(e);\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string {\n const cssClasses = {\n 'ax-button-icon': !this.text,\n 'ax-state-disabled': this.disabled,\n 'ax-state-selected': this.selected,\n 'ax-divided': this.divided,\n };\n return Object.entries(cssClasses)\n .filter((c) => c[1])\n .map((c) => c[0])\n .join(' ');\n }\n\n /**\n * @ignore\n */\n @HostBinding('attr.tabindex') tabindex = '0';\n}\n","import { NgModule } from '@angular/core';\nimport { AXButtonGroupItemComponent } from './button-group-item.component';\nimport { AXButtonGroupComponent } from './button-group.component';\n\n@NgModule({\n imports: [AXButtonGroupComponent, AXButtonGroupItemComponent],\n exports: [AXButtonGroupComponent, AXButtonGroupItemComponent],\n})\nexport class AXButtonGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAwBA;;;;AAIG;AAWG,MAAO,sBAAuB,SAAQ,sBAAsB,CAAA;AAVlE,IAAA,WAAA,GAAA;;AAWW,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,qDAAC;QAGjC,IAAA,CAAA,KAAK,GAAqB,SAAS;QAGnC,IAAA,CAAA,IAAI,GAAoB,OAAO;QAEtB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAE5D,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,MAAK;AACpB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE;gBACjC,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,UAAU,EAAE;YACnB;AACF,QAAA,CAAC,mDAAC;AAEF;;;;AAIG;AAEH,QAAA,IAAA,CAAA,OAAO,GAA+B,IAAI,YAAY,EAAgB;AAEtE;;AAEG;QACK,IAAA,CAAA,eAAe,GAAG,eAAe,CAAC,0BAA0B,4DAAI,WAAW,EAAE,IAAI,EAAA,CAAG;AAE5F;;;;AAIG;AAEH,QAAA,IAAA,CAAA,eAAe,GAAkC,IAAI,YAAY,EAAE;AACnE;;;;AAIG;QACH,IAAA,CAAA,oBAAoB,GAAG,MAAM,EAA8B;AAoI5D,IAAA;AApKC,IAAA,OAAO;AAuCP;;AAEG;AACH,IAAA,IACW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU;IACxB;AAEA;;;;AAIG;IACH,IAAW,SAAS,CAAC,KAAsB,EAAA;QACzC,IAAI,CAAC,SAAS,CAAC;AACb,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;AACtB,gBAAA,IAAI,KAAK,IAAI,MAAM,EAAE;oBACnB,IAAI,CAAC,cAAc,EAAE;gBACvB;YACF,CAAC;AACF,SAAA,CAAC;IACJ;AAEA;;AAEG;IACK,WAAW,GAAA;QACjB,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC,CAAM,KAAI;AACzC,YAAA,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;gBACnB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAM,KAAI;AAC7B,oBAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9B,gBAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;IACK,UAAU,GAAA;QAChB,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC,CAAM,KAAI;YACzC,IAAI,IAAI,CAAC,WAAW,EAAE;gBAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAE7D,YAAA,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE;AAC/B,gBAAA,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ;YAClC;AACA,YAAA,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE;AAC5B,gBAAA,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK;YAC5B;YACA,IAAI,IAAI,CAAC,IAAI;AAAE,gBAAA,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;;AAEjC,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,MAAM,oBAAoB,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,SAAS;AACvF,gBAAA,CAAC,CAAC,KAAK,GAAG,oBAAoB,GAAG,CAAC,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK;YAChE;YACA,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ;AACjD,YAAA,CAAC,CAAC,UAAU,GAAG,KAAK;AACtB,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;IACgB,qBAAqB,GAAA;QACtC,IAAI,CAAC,UAAU,EAAE;IACnB;AAEA;;AAEG;IACK,iBAAiB,CAAC,CAAe,EAAE,MAAkC,EAAA;AAC3E,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;AAChC,YAAA,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ;QACpC;AAAO,aAAA,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE;YACrC,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI;QACxB;aAAO;AACL,YAAA,MAAM,CAAC,QAAQ,GAAG,KAAK;QACzB;IACF;AAEA;;AAEG;IACK,cAAc,GAAA;QACpB,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC,CAA6B,KAAI;AAChE,YAAA,CAAC,CAAC,QAAQ,GAAG,KAAK;AACpB,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;AACH,IAAA,IACY,WAAW,GAAA;AACrB,QAAA,MAAM,UAAU,GAAG;YACjB,mBAAmB,EAAE,IAAI,CAAC,QAAQ;AAClC,YAAA,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE;SAClC;AACD,QAAA,OAAO,UAAU;IACnB;AAEA;;AAEG;AACH,IAAA,IAA8B,IAAI,GAAA;AAChC,QAAA,OAAO,OAAO;IAChB;AAEA;;AAEG;AAEH,IAAA,WAAW,CAAC,CAAa,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;AAClC,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA,CAAC;QACJ;IACF;8GA9KW,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAFtB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EA+BhC,0BAA0B,uFCpEtE,gGAGA,EAAA,MAAA,EAAA,CAAA,y2CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDoCa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAC7B,CAAC,UAAU,CAAC,EAAA,OAAA,EACX,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAA,SAAA,EAClE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,sBAAwB,EAAE,CAAC,EAAA,QAAA,EAAA,gGAAA,EAAA,MAAA,EAAA,CAAA,y2CAAA,CAAA,EAAA;;sBAKzE;;sBAGA;;sBAiBA;AAMyC,aAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,0BAA0B,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA;sBAO1F;;sBAiBA;;sBA6FA,WAAW;uBAAC,OAAO;;sBAYnB,WAAW;uBAAC,WAAW;;sBAOvB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;AEnLnC;;;;AAIG;AAsBG,MAAO,0BAA2B,SAAQ,sBAAsB,CAAA;AArBtE,IAAA,WAAA,GAAA;;AAsBE,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,sBAAsB,CAAC;QAGzC,IAAA,CAAA,KAAK,GAAqB,SAAS;AAEnC;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAW,EAAE;QAOR,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAiB5D;;;AAGG;QAEH,IAAA,CAAA,OAAO,GAAG,KAAK;AAcf;;;;AAIG;AAEH,QAAA,IAAA,CAAA,OAAO,GAA+B,IAAI,YAAY,EAAgB;AAgDtE;;AAEG;QAC2B,IAAA,CAAA,QAAQ,GAAG,GAAG;AAC7C,IAAA;AA5FC;;;;;AAKG;AACH,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;IACA,IAAW,QAAQ,CAAC,CAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACzB;AA6BA;;AAEG;AAEH,IAAA,WAAW,CAAC,CAAa,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;AAClC,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA,CAAC;QACJ;IACF;AACA;;AAEG;AAEH,IAAA,WAAW,CAAC,CAAa,EAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1B;AAEA;;AAEG;AAEH,IAAA,UAAU,CAAC,CAAa,EAAA;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACzB;AAEA;;AAEG;AACH,IAAA,IACY,WAAW,GAAA;AACrB,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI;YAC5B,mBAAmB,EAAE,IAAI,CAAC,QAAQ;YAClC,mBAAmB,EAAE,IAAI,CAAC,QAAQ;YAClC,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B;AACD,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU;aAC7B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAClB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACf,IAAI,CAAC,GAAG,CAAC;IACd;8GAzGW,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAF1B,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBpE;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAKS,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAGhB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBArBtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE;;;;;;;;;;;AAWT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,MAAM,EAAE,CAAC,UAAU,CAAC;oBACpB,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC;oBAC3D,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,0BAA4B,EAAE,CAAC;AAC/E,iBAAA;;sBAIE;;sBAMA;;sBAgBA;;sBAaA;;sBAMA;;sBAMA;;sBAQA;;sBAMA,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;sBAahC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;sBAQhC,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;;sBAQ/B,WAAW;uBAAC,OAAO;;sBAiBnB,WAAW;uBAAC,eAAe;;;MCzJjB,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHpB,sBAAsB,EAAE,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAClD,sBAAsB,EAAE,0BAA0B,CAAA,EAAA,CAAA,CAAA;AAEjD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHI,0BAA0B,CAAA,EAAA,CAAA,CAAA;;2FAGjD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;AAC7D,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;AAC9D,iBAAA;;;ACPD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"acorex-components-button-group.mjs","sources":["../../../../packages/components/button-group/src/lib/button-group.component.ts","../../../../packages/components/button-group/src/lib/button-group.component.html","../../../../packages/components/button-group/src/lib/button-group-item.component.ts","../../../../packages/components/button-group/src/lib/button-group.module.ts","../../../../packages/components/button-group/src/acorex-components-button-group.ts"],"sourcesContent":["import {\n AXClickEvent,\n AXComponent,\n AXSelectionMode,\n MXInteractiveComponent,\n type AXStyleColorType,\n type AXStyleLookType,\n} from '@acorex/cdk/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n EventEmitter,\n HostBinding,\n HostListener,\n input,\n Input,\n output,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXButtonGroupItemComponent } from './button-group-item.component';\n\n/**\n * A component that groups multiple buttons together, allowing for consistent styling and behavior.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-button-group',\n templateUrl: './button-group.component.html',\n styleUrls: ['./button-group.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n outputs: ['onBlur', 'onFocus', 'disabledChange'],\n providers: [{ provide: AXComponent, useExisting: AXButtonGroupComponent }],\n})\nexport class AXButtonGroupComponent extends MXInteractiveComponent {\n readonly fitParent = input(false);\n\n @Output()\n colorChange: EventEmitter<AXStyleColorType> = new EventEmitter();\n\n private _color: AXStyleColorType = 'default';\n @Input()\n public get color() {\n return this._color;\n }\n public set color(v) {\n this._color = v;\n this.colorChange.emit(v);\n }\n\n @Output()\n lookChange: EventEmitter<AXStyleLookType> = new EventEmitter();\n\n private _look: AXStyleLookType = 'solid';\n @Input()\n public get look() {\n return this._look;\n }\n public set look(v) {\n this._look = v;\n this.lookChange.emit(v);\n }\n\n readonly customClass = input<string>('', { alias: 'class' });\n\n #effect = effect(() => {\n if (this._contentButtons().length) {\n this._bindEvents();\n this._bindProps();\n }\n });\n\n /**\n * Fires when any button in the group is clicked.\n *\n * @event\n */\n @Output()\n onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n /**\n * @ignore\n */\n private _contentButtons = contentChildren(AXButtonGroupItemComponent, { descendants: true });\n\n /**\n * Emitted when the selection mode changes.\n *\n * @event\n */\n @Output()\n selectionChange: EventEmitter<AXSelectionMode> = new EventEmitter();\n /**\n * Emits the button item component instance when the selected button changes.\n *\n * @event\n */\n selectedButtonChange = output<AXButtonGroupItemComponent>();\n\n /**\n * @ignore\n */\n private _selection: AXSelectionMode;\n\n /**\n * Defines the selection mode for the component.\n */\n @Input()\n public get selection(): AXSelectionMode {\n return this._selection;\n }\n\n /**\n * Sets the selection mode for the component.\n *\n * @param value - The selection mode to be set. Possible values include 'single', 'multiple', or 'none'.\n */\n public set selection(value: AXSelectionMode) {\n this.setOption({\n name: 'selection',\n value: value,\n afterCallback: (o, n) => {\n if (value == 'none') {\n this.clearSelection();\n }\n },\n });\n }\n\n /**\n * @ignore\n */\n private _bindEvents() {\n this._contentButtons()?.forEach((b: any) => {\n if (!b.onClick.length)\n b.onClick.subscribe((c: any) => {\n this._handleClickEvent(c, b);\n });\n });\n }\n\n /**\n * @ignore\n */\n private _bindProps() {\n this._contentButtons()?.forEach((b: any) => {\n if (this.customClass()) b.customClass.set(this.customClass());\n\n if (b['originDisabled'] == null) {\n b['originDisabled'] = b.disabled;\n }\n if (b['originColor'] == null) {\n b['originColor'] = b.color;\n }\n if (this.look) b.look = this.look;\n // Apply group color only if the item has not explicitly provided a color\n if (this.color) {\n const itemHasExplicitColor = b['originColor'] != null && b['originColor'] !== 'default';\n b.color = itemHasExplicitColor ? b['originColor'] : this.color;\n }\n b.disabled = b['originDisabled'] || this.disabled;\n b.toggleable = false;\n });\n }\n\n /**\n * @ignore\n * Updates component properties based on internal option changes.\n */\n protected override internalOptionChanged() {\n this._bindProps();\n }\n\n /**\n * @ignore\n */\n private _handleClickEvent(e: AXClickEvent, button: AXButtonGroupItemComponent) {\n this.selectedButtonChange.emit(button);\n if (this.selection == 'multiple') {\n button.selected = !button.selected;\n } else if (this.selection == 'single') {\n this.clearSelection();\n button.selected = true;\n } else {\n button.selected = false;\n }\n }\n\n /**\n * @ignore\n */\n private clearSelection() {\n this._contentButtons()?.forEach((c: AXButtonGroupItemComponent) => {\n c.selected = false;\n });\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): { [key: string]: boolean } {\n const cssClasses = {\n 'ax-state-disabled': this.disabled,\n 'ax-parent-fit': this.fitParent(),\n };\n return cssClasses;\n }\n\n /**\n * @ignore\n */\n @HostBinding('attr.role') get role() {\n return 'group';\n }\n\n /**\n * @ignore\n */\n @HostListener('click', ['$event'])\n __hostClick(e: MouseEvent) {\n if (!this.disabled) {\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n }\n}\n","<ng-container>\n <ng-content select=\"ax-button-group-item\"></ng-content>\n</ng-container>\n","import { AXClickEvent, AXComponent, AXStyleColorType, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n inject,\n Input,\n model,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXButtonGroupComponent } from './button-group.component';\n\nexport interface AXButtonItemListItem {\n name: string;\n text: string;\n icon: string;\n divided?: boolean;\n disabled?: boolean;\n color?: AXStyleColorType;\n}\n\n/**\n * Represents a button item with optional content like icons, text, and dropdowns.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-button-group-item',\n template: `\n <ax-button\n [color]=\"color && color !== 'default' ? color : btnGroup.color\"\n [text]=\"text\"\n [class]=\"customClass()\"\n [look]=\"btnGroup.look\"\n [disabled]=\"disabled\"\n [selected]=\"selected\"\n >\n <ng-content></ng-content>\n </ax-button>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled'],\n outputs: ['onClick', 'onFocus', 'onBlur', 'disabledChange'],\n imports: [AXButtonComponent],\n providers: [{ provide: AXComponent, useExisting: AXButtonGroupItemComponent }],\n})\nexport class AXButtonGroupItemComponent extends MXInteractiveComponent {\n btnGroup = inject(AXButtonGroupComponent);\n\n @Input()\n color: AXStyleColorType = 'default';\n\n /**\n * Text displayed on the button item.\n */\n @Input()\n text: string = '';\n\n /**\n * @ignore\n */\n private _selected: boolean;\n\n readonly customClass = model<string>('', { alias: 'class' });\n\n /**\n * Indicates whether the button item is selected.\n *\n * @param v - A boolean indicating the selected state.\n * Updates the view when the value changes.\n */\n @Input()\n public get selected(): boolean {\n return this._selected;\n }\n public set selected(v: boolean) {\n this._selected = v;\n this.cdr.markForCheck();\n }\n\n /**\n * Whether the item is visually separated from other items.\n * @defaultValue false\n */\n @Input()\n divided = false;\n\n /**\n * Data associated with the button item.\n */\n @Input()\n data: unknown;\n\n /**\n * The name of the button item.\n */\n @Input()\n name: string;\n\n /**\n * Emitted when the button item is clicked.\n * @event\n * The emitted value is an `AXClickEvent` object containing event details.\n */\n @Output()\n onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n /**\n * @ignore\n */\n @HostListener('click', ['$event'])\n __hostClick(e: MouseEvent) {\n if (!this.disabled) {\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n }\n /**\n * @ignore\n */\n @HostListener('focus', ['$event'])\n __hostFocus(e: FocusEvent) {\n this.emitOnFocusEvent(e);\n }\n\n /**\n * @ignore\n */\n @HostListener('blur', ['$event'])\n __hostBlur(e: FocusEvent) {\n this.emitOnBlurEvent(e);\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string {\n const cssClasses = {\n 'ax-button-icon': !this.text,\n 'ax-state-disabled': this.disabled,\n 'ax-state-selected': this.selected,\n 'ax-divided': this.divided,\n };\n return Object.entries(cssClasses)\n .filter((c) => c[1])\n .map((c) => c[0])\n .join(' ');\n }\n\n /**\n * @ignore\n */\n @HostBinding('attr.tabindex') tabindex = '0';\n}\n","import { NgModule } from '@angular/core';\nimport { AXButtonGroupItemComponent } from './button-group-item.component';\nimport { AXButtonGroupComponent } from './button-group.component';\n\n@NgModule({\n imports: [AXButtonGroupComponent, AXButtonGroupItemComponent],\n exports: [AXButtonGroupComponent, AXButtonGroupItemComponent],\n})\nexport class AXButtonGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,12 @@ import { AXSelectBoxComponent } from '@acorex/components/select-box';
|
|
|
4
4
|
import { AXTextBoxComponent } from '@acorex/components/text-box';
|
|
5
5
|
import { AXUnsubscriber, AXColorUtil } from '@acorex/core/utils';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
7
|
-
import { Injectable, inject, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Component, Renderer2, NgZone, viewChild, signal, Input, forwardRef, ContentChildren, NgModule } from '@angular/core';
|
|
7
|
+
import { Injectable, inject, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Component, PLATFORM_ID, Renderer2, NgZone, viewChild, signal, Input, forwardRef, ContentChildren, NgModule } from '@angular/core';
|
|
8
8
|
import * as i1 from '@angular/forms';
|
|
9
9
|
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
10
10
|
import { AXRangeSliderComponent } from '@acorex/components/range-slider';
|
|
11
|
+
import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';
|
|
11
12
|
import { distinctUntilChanged } from 'rxjs/operators';
|
|
12
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
13
13
|
|
|
14
14
|
class AXColorPaletteParentComponent {
|
|
15
15
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXColorPaletteParentComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -471,6 +471,7 @@ class AXColorPalettePickerComponent extends MXBaseComponent {
|
|
|
471
471
|
constructor() {
|
|
472
472
|
super();
|
|
473
473
|
this._parent = inject(AXColorPaletteParentComponent);
|
|
474
|
+
this.platformId = inject(PLATFORM_ID);
|
|
474
475
|
this._unsubscriber = inject(AXUnsubscriber);
|
|
475
476
|
this.colorService = inject(AXColorPaletteService);
|
|
476
477
|
this.render = inject(Renderer2);
|
|
@@ -524,7 +525,10 @@ class AXColorPalettePickerComponent extends MXBaseComponent {
|
|
|
524
525
|
const _unsubscriber = this._unsubscriber;
|
|
525
526
|
_parent.onValueChanged.pipe(_unsubscriber.takeUntilDestroy).subscribe((e) => {
|
|
526
527
|
Object.assign(this.colorBoxTransparentColor, AXColorUtil.to(e.value, 'rgba'));
|
|
527
|
-
this.sample()
|
|
528
|
+
const sampleElement = this.sample()?.nativeElement;
|
|
529
|
+
if (sampleElement) {
|
|
530
|
+
sampleElement.style.backgroundColor = AXColorUtil.toString(e.value, 'rgba');
|
|
531
|
+
}
|
|
528
532
|
this.parentColorChanged();
|
|
529
533
|
});
|
|
530
534
|
_parent.onOptionChanged.pipe(_unsubscriber.takeUntilDestroy).subscribe(() => {
|
|
@@ -601,11 +605,24 @@ class AXColorPalettePickerComponent extends MXBaseComponent {
|
|
|
601
605
|
this.colorBoxGradientBG.set(rgbaColor[0] + ',' + rgbaColor[1] + ',' + rgbaColor[2]);
|
|
602
606
|
}
|
|
603
607
|
}
|
|
608
|
+
getParentRect(circleElement) {
|
|
609
|
+
const parent = circleElement.parentElement;
|
|
610
|
+
if (!parent || typeof parent.getBoundingClientRect !== 'function') {
|
|
611
|
+
return null;
|
|
612
|
+
}
|
|
613
|
+
return parent.getBoundingClientRect();
|
|
614
|
+
}
|
|
604
615
|
/**
|
|
605
616
|
* @ignore
|
|
606
617
|
*/
|
|
607
618
|
setColorByXY(x, y) {
|
|
619
|
+
if (!isPlatformBrowser(this.platformId)) {
|
|
620
|
+
return;
|
|
621
|
+
}
|
|
608
622
|
const surface = this.getHostElement().querySelector('.ax-color-box-overlay');
|
|
623
|
+
if (!surface) {
|
|
624
|
+
return;
|
|
625
|
+
}
|
|
609
626
|
const sb = surface.getBoundingClientRect();
|
|
610
627
|
//
|
|
611
628
|
const { h, a } = AXColorUtil.to(this._bgColor, 'hsva');
|
|
@@ -616,16 +633,31 @@ class AXColorPalettePickerComponent extends MXBaseComponent {
|
|
|
616
633
|
a,
|
|
617
634
|
};
|
|
618
635
|
this._parent.commitValue(AXColorUtil.toString(hsva, this.colorService.colorMode), true);
|
|
619
|
-
const circleElement = this.circle()
|
|
620
|
-
|
|
636
|
+
const circleElement = this.circle()?.nativeElement;
|
|
637
|
+
if (!circleElement) {
|
|
638
|
+
return;
|
|
639
|
+
}
|
|
640
|
+
const parentStats = this.getParentRect(circleElement);
|
|
641
|
+
if (!parentStats) {
|
|
642
|
+
return;
|
|
643
|
+
}
|
|
621
644
|
this.setPointerByPercent((x / parentStats.width) * 100, 100 - (y / parentStats.height) * 100);
|
|
622
645
|
}
|
|
623
646
|
/**
|
|
624
647
|
* @ignore
|
|
625
648
|
*/
|
|
626
649
|
setPointerByPercent(x, y) {
|
|
627
|
-
|
|
628
|
-
|
|
650
|
+
if (!isPlatformBrowser(this.platformId)) {
|
|
651
|
+
return;
|
|
652
|
+
}
|
|
653
|
+
const circleElement = this.circle()?.nativeElement;
|
|
654
|
+
if (!circleElement) {
|
|
655
|
+
return;
|
|
656
|
+
}
|
|
657
|
+
const parentStats = this.getParentRect(circleElement);
|
|
658
|
+
if (!parentStats) {
|
|
659
|
+
return;
|
|
660
|
+
}
|
|
629
661
|
const circleHeight = circleElement.offsetHeight / 2;
|
|
630
662
|
const circleWidth = circleElement.offsetWidth / 2;
|
|
631
663
|
const top = parentStats.height - (y * parentStats.height) / 100 - circleHeight;
|
|
@@ -656,8 +688,17 @@ class AXColorPalettePickerComponent extends MXBaseComponent {
|
|
|
656
688
|
this.onPointerUpListenerFn();
|
|
657
689
|
}
|
|
658
690
|
setColor(clientX, clientY) {
|
|
659
|
-
|
|
660
|
-
|
|
691
|
+
if (!isPlatformBrowser(this.platformId)) {
|
|
692
|
+
return;
|
|
693
|
+
}
|
|
694
|
+
const circleElement = this.circle()?.nativeElement;
|
|
695
|
+
if (!circleElement) {
|
|
696
|
+
return;
|
|
697
|
+
}
|
|
698
|
+
const parentStats = this.getParentRect(circleElement);
|
|
699
|
+
if (!parentStats) {
|
|
700
|
+
return;
|
|
701
|
+
}
|
|
661
702
|
const x = Math.max(0, Math.min(parentStats.width, clientX - parentStats.left));
|
|
662
703
|
const y = Math.max(0, Math.min(parentStats.height, clientY - parentStats.top));
|
|
663
704
|
this.setColorByXY(x, y);
|