@acorex/platform 21.0.0-next.75 → 21.0.0-next.79
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/fesm2022/{acorex-platform-layout-entity-attachments-page.component-B0EkdqvH.mjs → acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs} +3 -3
- package/fesm2022/{acorex-platform-layout-entity-attachments-page.component-B0EkdqvH.mjs.map → acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs → acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs.map → acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map} +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +259 -142
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-layout-entity.d.ts +45 -31
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/platform",
|
|
3
|
-
"version": "21.0.0-next.
|
|
3
|
+
"version": "21.0.0-next.79",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@acorex/cdk": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0 || ^21.0.2-next.0",
|
|
6
6
|
"@acorex/core": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0 || ^21.0.2-next.0",
|
|
@@ -3,7 +3,6 @@ import { AXPExecuteCommandResult, AXPQueryRequest, AXPUserReference, AXPMetaData
|
|
|
3
3
|
import { AXPCommand, AXPQueryExecutor, AXPCommandService, AXPQuery } from '@acorex/platform/runtime';
|
|
4
4
|
import * as _angular_core from '@angular/core';
|
|
5
5
|
import { ElementRef, InjectionToken, Injector, Type, EnvironmentProviders, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
6
|
-
import { AXPopoverComponent } from '@acorex/components/popover';
|
|
7
6
|
import * as i4 from '@acorex/platform/layout/widget-core';
|
|
8
7
|
import { AXPWidgetNode, AXPWidgetColumnNode, AXPWidgetCoreService, AXPColumnWidgetComponent, AXPValueWidgetComponent, AXPWidgetConfig, AXPWidgetRendererDirective, AXPWidgetCoreElementAPI } from '@acorex/platform/layout/widget-core';
|
|
9
8
|
import { AXPPreloadFiltersApplyEvent, AXPColumnItemListItem, AXPDataSelectorRowActionsHandler, AXPCategoryTreeDataSource, AXPDataSelectorAllowCreate } from '@acorex/platform/layout/components';
|
|
@@ -30,6 +29,7 @@ import * as _acorex_core_translation from '@acorex/core/translation';
|
|
|
30
29
|
import { AXTranslationService } from '@acorex/core/translation';
|
|
31
30
|
import { AXPProviderSelectWidgetEditBase, AXPDataListWidgetComponentOptions } from '@acorex/platform/layout/widgets';
|
|
32
31
|
import * as _acorex_platform_layout_entity from '@acorex/platform/layout/entity';
|
|
32
|
+
import { AXPopoverComponent } from '@acorex/components/popover';
|
|
33
33
|
import { AXFileService } from '@acorex/core/file';
|
|
34
34
|
|
|
35
35
|
declare class AXPCreateEntityCommand implements AXPCommand<any, any> {
|
|
@@ -334,6 +334,7 @@ declare class AXPEntityDetailPopoverComponent {
|
|
|
334
334
|
private readonly queryService;
|
|
335
335
|
private readonly formatService;
|
|
336
336
|
private readonly translation;
|
|
337
|
+
private readonly changeDetectorRef;
|
|
337
338
|
entity: _angular_core.InputSignal<string>;
|
|
338
339
|
entityId: _angular_core.InputSignal<string | number>;
|
|
339
340
|
textField: _angular_core.InputSignal<string>;
|
|
@@ -341,10 +342,9 @@ declare class AXPEntityDetailPopoverComponent {
|
|
|
341
342
|
displayTitle: _angular_core.InputSignal<string>;
|
|
342
343
|
item: _angular_core.InputSignal<AXPMetaData | undefined>;
|
|
343
344
|
breadcrumb: _angular_core.InputSignal<string | null>;
|
|
344
|
-
|
|
345
|
+
requestClose: _angular_core.InputSignal<(() => void) | undefined>;
|
|
345
346
|
protected entityDetails: _angular_core.WritableSignal<any>;
|
|
346
347
|
protected isLoadingDetails: _angular_core.WritableSignal<boolean>;
|
|
347
|
-
protected isDetailPopoverOpen: _angular_core.WritableSignal<boolean>;
|
|
348
348
|
/** Placeholder rows for the loading skeleton (matches typical property count). */
|
|
349
349
|
protected readonly loadingSkeletonRows: readonly [1, 2, 3, 4, 5];
|
|
350
350
|
protected readonly headerTitle: _angular_core.Signal<string>;
|
|
@@ -357,15 +357,8 @@ declare class AXPEntityDetailPopoverComponent {
|
|
|
357
357
|
title: string;
|
|
358
358
|
node: AXPWidgetNode;
|
|
359
359
|
}[]>;
|
|
360
|
-
/**
|
|
361
|
-
|
|
362
|
-
*/
|
|
363
|
-
show(target: ElementRef | HTMLElement): Promise<void>;
|
|
364
|
-
/**
|
|
365
|
-
* Hide the entity detail popover
|
|
366
|
-
*/
|
|
367
|
-
hide(): void;
|
|
368
|
-
protected onDetailPopoverOpenChange(event: any): void;
|
|
360
|
+
/** Loads entity details after the overlay panel is created. */
|
|
361
|
+
loadDetails(): Promise<void>;
|
|
369
362
|
protected navigateToDetails(): Promise<void>;
|
|
370
363
|
private resolveLookupDisplayLabel;
|
|
371
364
|
/**
|
|
@@ -390,7 +383,7 @@ declare class AXPEntityDetailPopoverComponent {
|
|
|
390
383
|
*/
|
|
391
384
|
private resolveDataPath;
|
|
392
385
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDetailPopoverComponent, never>;
|
|
393
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityDetailPopoverComponent, "axp-entity-detail-popover", never, { "entity": { "alias": "entity"; "required": true; "isSignal": true; }; "entityId": { "alias": "entityId"; "required": true; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "displayTitle": { "alias": "displayTitle"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; "breadcrumb": { "alias": "breadcrumb"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
386
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityDetailPopoverComponent, "axp-entity-detail-popover", never, { "entity": { "alias": "entity"; "required": true; "isSignal": true; }; "entityId": { "alias": "entityId"; "required": true; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "displayTitle": { "alias": "displayTitle"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; "breadcrumb": { "alias": "breadcrumb"; "required": false; "isSignal": true; }; "requestClose": { "alias": "requestClose"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
394
387
|
}
|
|
395
388
|
|
|
396
389
|
interface AXPEntityDetailPopoverOptions {
|
|
@@ -403,23 +396,34 @@ interface AXPEntityDetailPopoverOptions {
|
|
|
403
396
|
breadcrumb?: string;
|
|
404
397
|
}
|
|
405
398
|
declare class AXPEntityDetailPopoverService {
|
|
406
|
-
private readonly
|
|
407
|
-
private readonly
|
|
408
|
-
private
|
|
399
|
+
private readonly overlayService;
|
|
400
|
+
private readonly platform;
|
|
401
|
+
private readonly localeService;
|
|
402
|
+
private readonly document;
|
|
403
|
+
private readonly router;
|
|
404
|
+
private overlayRef;
|
|
405
|
+
private componentRef;
|
|
406
|
+
private outsideClickHandler;
|
|
407
|
+
private keydownHandler;
|
|
408
|
+
private routerSubscription;
|
|
409
409
|
/**
|
|
410
|
-
* Show entity detail popover
|
|
411
|
-
* @param target - The target element to position the popover
|
|
412
|
-
* @param options - Configuration options for the popover
|
|
410
|
+
* Show entity detail popover anchored to the target element.
|
|
413
411
|
*/
|
|
414
412
|
show(target: ElementRef | HTMLElement, options: AXPEntityDetailPopoverOptions): Promise<void>;
|
|
415
|
-
/**
|
|
416
|
-
* Hide the active popover
|
|
417
|
-
*/
|
|
413
|
+
/** Hide the active popover */
|
|
418
414
|
hide(): void;
|
|
419
|
-
/**
|
|
420
|
-
* Check if a popover is currently active
|
|
421
|
-
*/
|
|
415
|
+
/** Whether a popover is currently active */
|
|
422
416
|
get isActive(): boolean;
|
|
417
|
+
private resolveAnchorElement;
|
|
418
|
+
/** Mirror popover placement for RTL so the panel aligns with the anchor's inline-start edge. */
|
|
419
|
+
private resolveOverlayPlacement;
|
|
420
|
+
private resolveOverlayOffsetX;
|
|
421
|
+
private isRtlContext;
|
|
422
|
+
private bindDismissHandlers;
|
|
423
|
+
/** Ignore clicks on the anchor, overlay panel, or nested dropdown menus. */
|
|
424
|
+
private isInsideInteractiveSurface;
|
|
425
|
+
private removeDismissHandlers;
|
|
426
|
+
private handleOverlayDisposed;
|
|
423
427
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDetailPopoverService, never>;
|
|
424
428
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityDetailPopoverService>;
|
|
425
429
|
}
|
|
@@ -2531,7 +2535,7 @@ declare class AXPEntityCategoryWidgetColumnComponent extends AXPColumnWidgetComp
|
|
|
2531
2535
|
private efDisplay;
|
|
2532
2536
|
protected visibleItems: _angular_core.Signal<any[]>;
|
|
2533
2537
|
protected columnItems: _angular_core.Signal<AXPColumnItemListItem[]>;
|
|
2534
|
-
protected showItemDetail(item: any, index: number): Promise<void>;
|
|
2538
|
+
protected showItemDetail(item: any, index: number, anchor?: HTMLElement): Promise<void>;
|
|
2535
2539
|
protected handleItemClick(listItem: AXPColumnItemListItem): void;
|
|
2536
2540
|
protected getItemPath(item: any): string[];
|
|
2537
2541
|
protected hasParent(item: any): boolean;
|
|
@@ -3041,7 +3045,7 @@ declare class AXPFileListComponent implements OnInit, OnDestroy {
|
|
|
3041
3045
|
/** When false, links look omits the label (e.g. popover body). */
|
|
3042
3046
|
showLabel: _angular_core.InputSignal<boolean>;
|
|
3043
3047
|
/** `inline`: label + divider; `menu`: compact list for popovers/panels. */
|
|
3044
|
-
linksLayout: _angular_core.InputSignal<"
|
|
3048
|
+
linksLayout: _angular_core.InputSignal<"menu" | "inline">;
|
|
3045
3049
|
files: _angular_core.InputSignal<AXPFileListItem[]>;
|
|
3046
3050
|
plugins: _angular_core.InputSignal<{
|
|
3047
3051
|
name: string;
|
|
@@ -3820,10 +3824,10 @@ declare class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent<an
|
|
|
3820
3824
|
protected showMoreItems(): void;
|
|
3821
3825
|
protected openLazyPopover(): void;
|
|
3822
3826
|
protected onPopoverOpenChange(event: unknown): void;
|
|
3823
|
-
protected showItemDetail(item: any, index: number): Promise<void>;
|
|
3824
|
-
protected handleItemClick(index: number): void;
|
|
3825
|
-
protected handleResolvedItemClick(index: number): void;
|
|
3826
|
-
protected handlePopoverItemClick(index: number): void;
|
|
3827
|
+
protected showItemDetail(item: any, index: number, anchor?: HTMLElement): Promise<void>;
|
|
3828
|
+
protected handleItemClick(index: number, event: Event): void;
|
|
3829
|
+
protected handleResolvedItemClick(index: number, event: Event): void;
|
|
3830
|
+
protected handlePopoverItemClick(index: number, _event: Event): void;
|
|
3827
3831
|
/**
|
|
3828
3832
|
* True when the cell can render without fetching row data via byKey.
|
|
3829
3833
|
* Uses textField / expose targets on the row — not merely whether column dataPath differs from columnName.
|
|
@@ -3835,6 +3839,16 @@ declare class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent<an
|
|
|
3835
3839
|
private resetLazyState;
|
|
3836
3840
|
private openPopoverFromRef;
|
|
3837
3841
|
private closeMorePopover;
|
|
3842
|
+
/** Prefer the clicked inline item as anchor; fall back to the column host. */
|
|
3843
|
+
private resolvePopoverAnchor;
|
|
3844
|
+
/**
|
|
3845
|
+
* Stable anchor for entity detail when opened from the more-items list.
|
|
3846
|
+
* Clicks inside ax-popover overlay use elements that are removed/hidden on close.
|
|
3847
|
+
*/
|
|
3848
|
+
private resolveMorePopoverDetailAnchor;
|
|
3849
|
+
/** Ensures the detail popover anchor stays in the layout after the more popover closes. */
|
|
3850
|
+
private resolveStableDetailAnchor;
|
|
3851
|
+
private isInsideMorePopover;
|
|
3838
3852
|
private ensureLazyItemsLoaded;
|
|
3839
3853
|
/**
|
|
3840
3854
|
* ax-popover may emit a boolean, CustomEvent with detail, or a DOM Event depending on version.
|