@acorex/components 22.1.0-next.4 → 22.1.0-next.6

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/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "22.1.0-next.4",
3
+ "version": "22.1.0-next.6",
4
4
  "peerDependencies": {
5
- "@acorex/core": "22.1.0-next.4",
6
- "@acorex/cdk": "22.1.0-next.4",
5
+ "@acorex/core": "22.1.0-next.6",
6
+ "@acorex/cdk": "22.1.0-next.6",
7
7
  "polytype": ">=0.17.0",
8
8
  "angular-imask": ">=7.6.1",
9
9
  "imask": ">=7.6.1",
@@ -1,6 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { TemplateRef } from '@angular/core';
3
- import { NXComponent, AXStyleLookType, AXValueChangedEvent, AXFocusEvent, AXItemClickEvent, AXItemSelectedEvent, AXEvent } from '@acorex/cdk/common';
3
+ import { NXValueComponent, AXStyleLookType, AXValueChangedEvent, AXFocusEvent, AXItemClickEvent, AXItemSelectedEvent, AXEvent } from '@acorex/cdk/common';
4
4
  import { AXPopoverComponent } from '@acorex/components/popover';
5
5
  import { Combobox } from '@angular/aria/combobox';
6
6
  import { Listbox } from '@angular/aria/listbox';
@@ -44,8 +44,12 @@ type AXComboBoxValue = string | number | (string | number)[] | null;
44
44
  *
45
45
  * @category Components
46
46
  */
47
- declare class AXComboBoxComponent extends NXComponent implements FormValueControl<AXComboBoxValue> {
47
+ declare class AXComboBoxComponent extends NXValueComponent implements FormValueControl<AXComboBoxValue> {
48
48
  #private;
49
+ /**
50
+ * The name of the form field, used by validation rules and `ax-form.validate(names)`.
51
+ */
52
+ name: _angular_core.InputSignal<string>;
49
53
  /**
50
54
  * The list of items the user can select from.
51
55
  * Each item has `id` (search/identity), `text` (display), and `value` (submitted).
@@ -225,12 +229,16 @@ declare class AXComboBoxComponent extends NXComponent implements FormValueContro
225
229
  * In multi-select mode the item is toggled and the popup stays open.
226
230
  */
227
231
  protected commit(event?: Event): void;
232
+ /**
233
+ * Focuses the combo box trigger input.
234
+ */
235
+ focus(options?: FocusOptions): void;
228
236
  /** Forwards native focus from the trigger input. */
229
237
  protected emitOnFocus(e: FocusEvent): void;
230
238
  /** Forwards native blur from the trigger input. */
231
239
  protected emitOnBlur(e: FocusEvent): void;
232
240
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXComboBoxComponent, never>;
233
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXComboBoxComponent, "ax-combo-box", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "adaptivityEnabled": { "alias": "adaptivityEnabled"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "alternate": { "alias": "alternate"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "selectedTemplate": { "alias": "selectedTemplate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "look": "lookChange"; "value": "valueChange"; "onValueChanged": "onValueChanged"; "onFocus": "onFocus"; "onBlur": "onBlur"; "onItemClick": "onItemClick"; "onItemSelected": "onItemSelected"; "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-header", "ax-footer"], true, never>;
241
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXComboBoxComponent, "ax-combo-box", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "adaptivityEnabled": { "alias": "adaptivityEnabled"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "alternate": { "alias": "alternate"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "selectedTemplate": { "alias": "selectedTemplate"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "look": "lookChange"; "value": "valueChange"; "onValueChanged": "onValueChanged"; "onFocus": "onFocus"; "onBlur": "onBlur"; "onItemClick": "onItemClick"; "onItemSelected": "onItemSelected"; "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-header", "ax-footer", "ax-validation-rule"], true, never>;
234
242
  }
235
243
 
236
244
  declare class AXComboBoxModule {
@@ -1788,7 +1788,10 @@ interface AXConversationDropdownMenuItem {
1788
1788
  declare class AXConversationInfoBarComponent {
1789
1789
  private readonly conversationService;
1790
1790
  private readonly infoBar;
1791
+ private readonly customUserAvatarComponent;
1791
1792
  protected get registry(): _acorex_components_conversation.AXConversationRegistryService;
1793
+ /** Whether a custom user avatar component is registered via conversation config. */
1794
+ readonly hasCustomUserAvatar: _angular_core.Signal<boolean>;
1792
1795
  /** Active conversation */
1793
1796
  readonly activeConversation: _angular_core.Signal<AXConversation>;
1794
1797
  /** Active component from service */
@@ -3838,6 +3841,9 @@ declare class AXConversationMessageListComponent implements OnDestroy {
3838
3841
  readonly showScrollButton: _angular_core.WritableSignal<boolean>;
3839
3842
  /** Active conversation */
3840
3843
  readonly activeConversation: _angular_core.Signal<_acorex_components_conversation.AXConversation>;
3844
+ readonly isGroupConversation: _angular_core.Signal<boolean>;
3845
+ /** Placeholder indices for the initial message list skeleton. */
3846
+ protected readonly loadingSkeletonItems: readonly [0, 1, 2, 3, 4, 5];
3841
3847
  /** Whether the active conversation allows message reactions. */
3842
3848
  readonly reactionsEnabled: _angular_core.Signal<boolean>;
3843
3849
  /** Messages */
@@ -6269,6 +6275,7 @@ declare class AXConversationDefaultConversationAvatarComponent {
6269
6275
  displayAvatar: string;
6270
6276
  displayIcon: string;
6271
6277
  }>;
6278
+ readonly filteredUserAvatarInputs: _angular_core.Signal<Record<string, unknown>>;
6272
6279
  readonly fallbackDisplay: _angular_core.Signal<_acorex_components_conversation.AXConversationAvatarDisplay>;
6273
6280
  readonly fallbackInitials: _angular_core.Signal<string>;
6274
6281
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationDefaultConversationAvatarComponent, never>;
@@ -1,6 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { TemplateRef, ElementRef } from '@angular/core';
3
- import { AXEvent, AXDataSource, AXListDataSource, AXHtmlEvent, NXComponent, AXStyleLookType, AXValueChangedEvent, AXFocusEvent, AXItemClickEvent, AXItemSelectedEvent } from '@acorex/cdk/common';
3
+ import { AXEvent, AXDataSource, AXListDataSource, AXHtmlEvent, NXValueComponent, AXStyleLookType, AXValueChangedEvent, AXFocusEvent, AXItemClickEvent, AXItemSelectedEvent } from '@acorex/cdk/common';
4
4
  import { AXPopoverComponent } from '@acorex/components/popover';
5
5
  import { AXTreeViewNode, AXTreeViewDataSource, AXTreeViewSelectionBehavior, AXTreeViewItemTemplateContext, AXTreeViewSelectionChangeEvent } from '@acorex/components/tree-view';
6
6
  import { FormValueControl } from '@angular/forms/signals';
@@ -127,6 +127,11 @@ declare abstract class AXLookupListViewBase {
127
127
  protected isSelected(item: AXLookupItem): boolean;
128
128
  protected isDisabled(item: AXLookupItem): boolean;
129
129
  protected handleItemClick(item: AXLookupItem | null | undefined): void;
130
+ /**
131
+ * Commit on mousedown (not click) so a searchable trigger blur cannot destroy the
132
+ * list before the pick is applied.
133
+ */
134
+ protected handleItemMouseDown(event: Event, item: AXLookupItem | null | undefined): void;
130
135
  protected handleItemKeypress(e: AXHtmlEvent<KeyboardEvent>, item: AXLookupItem | null | undefined): void;
131
136
  protected handleListKeypress(e: AXHtmlEvent<KeyboardEvent>): void;
132
137
  protected activateNavItem(nav: AXListNavigationDirective, item: AXListNavigationItemDirective): void;
@@ -205,8 +210,12 @@ declare class AXLookupMultiSelectTreeComponent {
205
210
  *
206
211
  * @category Components
207
212
  */
208
- declare class AXLookupComponent extends NXComponent implements FormValueControl<unknown | unknown[] | null> {
213
+ declare class AXLookupComponent extends NXValueComponent implements FormValueControl<unknown | unknown[] | null> {
209
214
  #private;
215
+ /**
216
+ * The name of the form field, used by validation rules and `ax-form.validate(names)`.
217
+ */
218
+ name: _angular_core.InputSignal<string>;
210
219
  /**
211
220
  * The lookup rendering mode. Selects which mini component renders in the popup.
212
221
  */
@@ -466,7 +475,7 @@ declare class AXLookupComponent extends NXComponent implements FormValueControl<
466
475
  */
467
476
  reset(isUserInteraction?: boolean): void;
468
477
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLookupComponent, never>;
469
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupComponent, "ax-lookup", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "treeDataSource": { "alias": "treeDataSource"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "adaptivityEnabled": { "alias": "adaptivityEnabled"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "alternate": { "alias": "alternate"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "maxVisibleItems": { "alias": "maxVisibleItems"; "required": false; "isSignal": true; }; "treeSelectionBehavior": { "alias": "treeSelectionBehavior"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "selectedTemplate": { "alias": "selectedTemplate"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "loadingTemplate": { "alias": "loadingTemplate"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "valueItems": { "alias": "valueItems"; "required": false; "isSignal": true; }; }, { "look": "lookChange"; "value": "valueChange"; "onValueChanged": "onValueChanged"; "onSelectionChanged": "onSelectionChanged"; "onFocus": "onFocus"; "onBlur": "onBlur"; "onItemClick": "onItemClick"; "onItemSelected": "onItemSelected"; "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-header", "ax-footer"], true, never>;
478
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLookupComponent, "ax-lookup", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "treeDataSource": { "alias": "treeDataSource"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "adaptivityEnabled": { "alias": "adaptivityEnabled"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "alternate": { "alias": "alternate"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "maxVisibleItems": { "alias": "maxVisibleItems"; "required": false; "isSignal": true; }; "treeSelectionBehavior": { "alias": "treeSelectionBehavior"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "selectedTemplate": { "alias": "selectedTemplate"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "loadingTemplate": { "alias": "loadingTemplate"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "valueItems": { "alias": "valueItems"; "required": false; "isSignal": true; }; }, { "look": "lookChange"; "value": "valueChange"; "onValueChanged": "onValueChanged"; "onSelectionChanged": "onSelectionChanged"; "onFocus": "onFocus"; "onBlur": "onBlur"; "onItemClick": "onItemClick"; "onItemSelected": "onItemSelected"; "onOpened": "onOpened"; "onClosed": "onClosed"; }, never, ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-header", "ax-footer", "ax-validation-rule"], true, never>;
470
479
  }
471
480
 
472
481
  /**
@@ -620,6 +629,7 @@ declare class AXLookupMultiColumnComponent {
620
629
  protected resolveRowCssClass: (row: unknown) => string;
621
630
  protected handleRowClick(event: AXDataTableRowClick): void;
622
631
  protected handleItemClick(item: AXLookupItem | null | undefined): void;
632
+ protected handleItemMouseDown(event: Event, item: AXLookupItem | null | undefined): void;
623
633
  protected isSelected(item: AXLookupItem): boolean;
624
634
  protected isDisabled(item: AXLookupItem): boolean;
625
635
  private getValue;