@acorex/modules 19.3.0 → 19.3.1
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/dashboard-management/index.d.ts +1 -0
- package/dashboard-management/lib/dashboard-management.module.d.ts +2 -2
- package/dashboard-management/lib/features/shared/widgets/bar-chart/bar-chart-widget.component.d.ts +72 -0
- package/dashboard-management/lib/features/shared/widgets/bar-chart/bar-chart-widget.config.d.ts +7 -0
- package/dashboard-management/lib/features/shared/widgets/bar-chart/bar-chart.type.d.ts +34 -0
- package/dashboard-management/lib/features/shared/widgets/bar-chart/index.d.ts +2 -0
- package/dashboard-management/lib/features/shared/widgets/chart.type.d.ts +3 -0
- package/dashboard-management/lib/features/shared/widgets/clock-calendar/clock-calendar-widget.component.d.ts +40 -0
- package/dashboard-management/lib/features/shared/widgets/clock-calendar/clock-calendar-widget.config.d.ts +7 -0
- package/dashboard-management/lib/features/shared/widgets/clock-calendar/clock-calendar.types.d.ts +50 -0
- package/dashboard-management/lib/features/shared/widgets/clock-calendar/index.d.ts +3 -0
- package/dashboard-management/lib/features/shared/widgets/dashboard-shortcut/index.d.ts +2 -0
- package/dashboard-management/lib/features/shared/widgets/donut-chart/donut-chart-widget.component.d.ts +58 -0
- package/dashboard-management/lib/features/shared/widgets/donut-chart/donut-chart-widget.config.d.ts +7 -0
- package/dashboard-management/lib/features/shared/widgets/donut-chart/donut-chart.type.d.ts +67 -0
- package/dashboard-management/lib/features/shared/widgets/donut-chart/index.d.ts +2 -0
- package/dashboard-management/lib/features/shared/widgets/gauge-chart/gauge-chart-widget.component.d.ts +75 -0
- package/dashboard-management/lib/features/shared/widgets/gauge-chart/gauge-chart-widget.config.d.ts +7 -0
- package/dashboard-management/lib/features/shared/widgets/gauge-chart/gauge-chart.type.d.ts +29 -0
- package/dashboard-management/lib/features/shared/widgets/gauge-chart/index.d.ts +3 -0
- package/dashboard-management/lib/features/shared/widgets/index.d.ts +11 -0
- package/dashboard-management/lib/features/shared/widgets/line-chart/index.d.ts +3 -0
- package/dashboard-management/lib/features/shared/widgets/line-chart/line-chart-widget.component.d.ts +76 -0
- package/dashboard-management/lib/features/shared/widgets/line-chart/line-chart-widget.config.d.ts +7 -0
- package/dashboard-management/lib/features/shared/widgets/line-chart/line-chart.type.d.ts +41 -0
- package/dashboard-management/lib/features/shared/widgets/notification/index.d.ts +3 -0
- package/dashboard-management/lib/features/shared/widgets/notification/notification-widget.component.d.ts +54 -0
- package/dashboard-management/lib/features/shared/widgets/notification/notification-widget.config.d.ts +10 -0
- package/dashboard-management/lib/features/shared/widgets/notification/notification.type.d.ts +47 -0
- package/dashboard-management/lib/features/shared/widgets/shared/chart-base.component.d.ts +44 -0
- package/dashboard-management/lib/features/shared/widgets/shared/chart-base.type.d.ts +37 -0
- package/dashboard-management/lib/features/shared/widgets/shared/components/chart-tooltip/chart-tooltip.component.d.ts +28 -0
- package/dashboard-management/lib/features/shared/widgets/shared/components/chart-tooltip/index.d.ts +1 -0
- package/dashboard-management/lib/features/shared/widgets/shared/index.d.ts +3 -0
- package/dashboard-management/lib/features/shared/widgets/sticky-note/index.d.ts +2 -0
- package/dashboard-management/lib/features/shared/widgets/sticky-note/sticky-note-widget.component.d.ts +21 -0
- package/dashboard-management/lib/features/shared/widgets/sticky-note/sticky-note-widget.config.d.ts +7 -0
- package/dashboard-management/lib/features/shared/widgets/tasklist/index.d.ts +3 -0
- package/dashboard-management/lib/features/shared/widgets/tasklist/tasklist-widget.component.d.ts +34 -0
- package/dashboard-management/lib/features/shared/widgets/tasklist/tasklist-widget.config.d.ts +7 -0
- package/dashboard-management/lib/features/shared/widgets/tasklist/tasklist.type.d.ts +36 -0
- package/dashboard-management/lib/features/shared/widgets/weather/index.d.ts +3 -0
- package/dashboard-management/lib/features/shared/widgets/weather/weather-services/index.d.ts +3 -0
- package/dashboard-management/lib/features/shared/widgets/weather/weather-services/weather-api.abstract.d.ts +174 -0
- package/dashboard-management/lib/features/shared/widgets/weather/weather-services/weather-api.key.d.ts +2 -0
- package/dashboard-management/lib/features/shared/widgets/weather/weather-services/weather-api.mock.service.d.ts +47 -0
- package/dashboard-management/lib/features/shared/widgets/weather/weather-services/weather-api.service.d.ts +48 -0
- package/dashboard-management/lib/features/shared/widgets/weather/weather-widget.component.d.ts +109 -0
- package/dashboard-management/lib/features/shared/widgets/weather/weather-widget.config.d.ts +14 -0
- package/fesm2022/acorex-modules-application-management.mjs +2 -2
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-CReOsVhq.mjs +5083 -0
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-CReOsVhq.mjs.map +1 -0
- package/fesm2022/{acorex-modules-dashboard-management-index-Br6L5KMu.mjs → acorex-modules-dashboard-management-home-dashboard-CHXDeuSF.mjs} +7 -7
- package/fesm2022/acorex-modules-dashboard-management-home-dashboard-CHXDeuSF.mjs.map +1 -0
- package/fesm2022/acorex-modules-dashboard-management.mjs +1 -1
- package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-DO18V9JK.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-Cv92x_9Z.mjs} +11 -11
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-Cv92x_9Z.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-category.entity-nErIyYxr.mjs → acorex-modules-form-template-management-category.entity-DPVwQW4X.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-category.entity-nErIyYxr.mjs.map → acorex-modules-form-template-management-category.entity-DPVwQW4X.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-CROST06h.mjs → acorex-modules-form-template-management-settings.provider-iwOUp0iw.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-CROST06h.mjs.map → acorex-modules-form-template-management-settings.provider-iwOUp0iw.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-0GHf41xy.mjs → acorex-modules-form-template-management-template-widget-edit.component-BkR3x74p.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-0GHf41xy.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-BkR3x74p.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template.entity-HSE5R67l.mjs → acorex-modules-form-template-management-template.entity-NgmH7r8R.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template.entity-HSE5R67l.mjs.map → acorex-modules-form-template-management-template.entity-NgmH7r8R.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-pi15hXWY.mjs → acorex-modules-form-template-management-viewer-popup.component-Cq33xA62.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-pi15hXWY.mjs.map → acorex-modules-form-template-management-viewer-popup.component-Cq33xA62.mjs.map} +1 -1
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-DhuDuKkz.mjs → acorex-modules-issue-management-acorex-modules-issue-management-Q47ZZSSE.mjs} +4 -3
- package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-Q47ZZSSE.mjs.map +1 -0
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-XFV3kuzQ.mjs → acorex-modules-issue-management-capture-screen.component-Dns1Wrkd.mjs} +2 -2
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-XFV3kuzQ.mjs.map → acorex-modules-issue-management-capture-screen.component-Dns1Wrkd.mjs.map} +1 -1
- package/fesm2022/acorex-modules-issue-management.mjs +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +2 -1
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-eDTvyQpA.mjs → acorex-modules-organization-management-org-chart.page-DnRbGIWN.mjs} +3 -3
- package/fesm2022/acorex-modules-organization-management-org-chart.page-DnRbGIWN.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +2 -2
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-DHA8LTwL.mjs → acorex-modules-platform-management-acorex-modules-platform-management-DIsYLKbA.mjs} +57 -4
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-DHA8LTwL.mjs.map → acorex-modules-platform-management-acorex-modules-platform-management-DIsYLKbA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DgDjbODD.mjs → acorex-modules-platform-management-list-version.component-D83yTFAm.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-list-version.component-DgDjbODD.mjs.map → acorex-modules-platform-management-list-version.component-D83yTFAm.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-settings.provider-W71pfOmi.mjs → acorex-modules-platform-management-settings.provider-DKkXCwrd.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-settings.provider-W71pfOmi.mjs.map → acorex-modules-platform-management-settings.provider-DKkXCwrd.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/package.json +1 -1
- package/dashboard-management/lib/features/home-dashboard/home-dashboard.module.d.ts +0 -7
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-DuvWGfl1.mjs +0 -568
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-DuvWGfl1.mjs.map +0 -1
- package/fesm2022/acorex-modules-dashboard-management-dashboard-shortcut-widget-view.component-C9RGRmuR.mjs +0 -139
- package/fesm2022/acorex-modules-dashboard-management-dashboard-shortcut-widget-view.component-C9RGRmuR.mjs.map +0 -1
- package/fesm2022/acorex-modules-dashboard-management-index-Br6L5KMu.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-DO18V9JK.mjs.map +0 -1
- package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-DhuDuKkz.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart.page-eDTvyQpA.mjs.map +0 -1
- /package/dashboard-management/lib/features/{home-dashboard → shared}/widgets/dashboard-shortcut/dashboard-shortcut-widget-view.component.d.ts +0 -0
- /package/dashboard-management/lib/features/{home-dashboard → shared}/widgets/dashboard-shortcut/dashboard-shortcut-widget.config.d.ts +0 -0
- /package/dashboard-management/lib/{features/home-dashboard/setrting.keys.d.ts → settings.keys.d.ts} +0 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
import { AXTabStripChangedEvent } from '@acorex/components/tabs';
|
2
|
+
import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';
|
3
|
+
import { AXPNotificationData, AXPNotificationValue } from './notification.type';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
/**
|
6
|
+
* Notification Widget Component
|
7
|
+
* Displays notifications in a card with tabs
|
8
|
+
*/
|
9
|
+
export declare class AXPNotificationWidgetViewComponent extends AXPValueWidgetComponent<AXPNotificationValue> {
|
10
|
+
notificationClick: import("@angular/core").OutputEmitterRef<AXPNotificationData>;
|
11
|
+
markAsRead: import("@angular/core").OutputEmitterRef<AXPNotificationData>;
|
12
|
+
private readonly cdr;
|
13
|
+
private readonly datePipe;
|
14
|
+
protected activeTab: import("@angular/core").WritableSignal<"new" | "all">;
|
15
|
+
protected readonly maxItems: import("@angular/core").Signal<any>;
|
16
|
+
protected readonly showAvatar: import("@angular/core").Signal<any>;
|
17
|
+
protected readonly showDate: import("@angular/core").Signal<any>;
|
18
|
+
protected readonly notificationItems: import("@angular/core").Signal<AXPNotificationData[]>;
|
19
|
+
/**
|
20
|
+
* Get the count of new messages for the badge
|
21
|
+
*/
|
22
|
+
protected getNewMessageCount(): number;
|
23
|
+
/**
|
24
|
+
* Handle tab change event from ax-tabs component
|
25
|
+
* @param index The index of the tab that was activated
|
26
|
+
*/
|
27
|
+
protected handleTabChange(data: AXTabStripChangedEvent): void;
|
28
|
+
/**
|
29
|
+
* Mark all notifications as read
|
30
|
+
*/
|
31
|
+
protected markAllAsRead(): void;
|
32
|
+
/**
|
33
|
+
* Change the active tab
|
34
|
+
*/
|
35
|
+
protected onTabChange(tabName: 'new' | 'all'): void;
|
36
|
+
/**
|
37
|
+
* Handle notification click event
|
38
|
+
*/
|
39
|
+
protected onNotificationClick(notification: AXPNotificationData): void;
|
40
|
+
/**
|
41
|
+
* Format the timestamp in a user-friendly way
|
42
|
+
*/
|
43
|
+
protected formatTime(date: Date | string | undefined): string;
|
44
|
+
/**
|
45
|
+
* Mark notification as read if needed
|
46
|
+
*/
|
47
|
+
private markAsReadIfNeeded;
|
48
|
+
/**
|
49
|
+
* Calculate days difference from now
|
50
|
+
*/
|
51
|
+
private getDaysDifference;
|
52
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPNotificationWidgetViewComponent, never>;
|
53
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPNotificationWidgetViewComponent, "ng-component", never, {}, { "notificationClick": "notificationClick"; "markAsRead": "markAsRead"; }, never, never, true, never>;
|
54
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { AXPWidgetConfig } from '@acorex/platform/layout/builder';
|
2
|
+
/**
|
3
|
+
* Configuration for the Notification Widget
|
4
|
+
*/
|
5
|
+
export declare const AXPNotificationWidget: AXPWidgetConfig;
|
6
|
+
declare module '@acorex/platform/layout/builder' {
|
7
|
+
interface AXPWidgetTypesMap {
|
8
|
+
notification: 'notification';
|
9
|
+
}
|
10
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { AXPWidgetDataSource } from '@acorex/platform/layout/builder';
|
2
|
+
export type AXPNotificationChannel = 'InApp' | 'Email' | 'SMS';
|
3
|
+
export type AXPNotificationCategory = 'Inbox' | 'Archive';
|
4
|
+
export type AXPNotificationPriority = 'Warning' | 'Danger' | 'Notice';
|
5
|
+
export type AXPNotificationType = 'File' | 'Person' | 'Notification';
|
6
|
+
export type AXPNotificationActionType = 'Link' | 'Entity' | 'Popup';
|
7
|
+
/**
|
8
|
+
* Notification item data structure
|
9
|
+
*/
|
10
|
+
export interface AXPNotificationData {
|
11
|
+
id: string;
|
12
|
+
title: string;
|
13
|
+
body: string;
|
14
|
+
channel: AXPNotificationChannel;
|
15
|
+
content: {
|
16
|
+
type: AXPNotificationType;
|
17
|
+
data: object;
|
18
|
+
};
|
19
|
+
action?: {
|
20
|
+
type: AXPNotificationActionType;
|
21
|
+
data: {
|
22
|
+
[key: string]: unknown;
|
23
|
+
};
|
24
|
+
};
|
25
|
+
user: {
|
26
|
+
id: string;
|
27
|
+
name: string;
|
28
|
+
image: string;
|
29
|
+
};
|
30
|
+
template: {
|
31
|
+
category: AXPNotificationCategory;
|
32
|
+
priority: AXPNotificationPriority;
|
33
|
+
icon: string;
|
34
|
+
isPinned: boolean;
|
35
|
+
};
|
36
|
+
readAt: Date | null;
|
37
|
+
createdAt: Date;
|
38
|
+
entityName?: string;
|
39
|
+
}
|
40
|
+
/**
|
41
|
+
* Notification widget value structure
|
42
|
+
*/
|
43
|
+
export interface AXPNotificationValue {
|
44
|
+
data: AXPNotificationData[];
|
45
|
+
dataSource?: AXPWidgetDataSource;
|
46
|
+
total?: number;
|
47
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';
|
2
|
+
import { AfterViewInit, ChangeDetectorRef, ElementRef, OnDestroy, OnInit } from '@angular/core';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
/**
|
5
|
+
* Base component class for all chart components with common chart functionality
|
6
|
+
*/
|
7
|
+
export declare abstract class AXPChartBaseComponent<TData> extends AXPValueWidgetComponent<TData> implements OnInit, AfterViewInit, OnDestroy {
|
8
|
+
protected cdr: ChangeDetectorRef;
|
9
|
+
protected d3: typeof import('d3');
|
10
|
+
private injector;
|
11
|
+
protected isInitialized: import("@angular/core").WritableSignal<boolean>;
|
12
|
+
protected isRendered: import("@angular/core").WritableSignal<boolean>;
|
13
|
+
protected _internalData: import("@angular/core").WritableSignal<TData | null>;
|
14
|
+
protected chartData: import("@angular/core").Signal<TData>;
|
15
|
+
protected _lastOptionsSnapshot: string;
|
16
|
+
private effectRef;
|
17
|
+
constructor(cdr: ChangeDetectorRef);
|
18
|
+
ngOnInit(): void;
|
19
|
+
ngAfterViewInit(): void;
|
20
|
+
ngOnDestroy(): void;
|
21
|
+
/**
|
22
|
+
* Load D3.js library asynchronously
|
23
|
+
*/
|
24
|
+
protected loadD3(): Promise<void>;
|
25
|
+
/**
|
26
|
+
* Set up reactive effects to track data and option changes
|
27
|
+
*/
|
28
|
+
protected setupEffects(): void;
|
29
|
+
/**
|
30
|
+
* Abstract methods that child classes must implement
|
31
|
+
*/
|
32
|
+
protected abstract createChart(): void;
|
33
|
+
protected abstract updateChart(): void;
|
34
|
+
protected abstract cleanupChart(): void;
|
35
|
+
/**
|
36
|
+
* Get dimensions of the container element
|
37
|
+
*/
|
38
|
+
protected getContainerDimensions(containerElement: ElementRef<HTMLElement>): {
|
39
|
+
width: number;
|
40
|
+
height: number;
|
41
|
+
};
|
42
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPChartBaseComponent<any>, never>;
|
43
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AXPChartBaseComponent<any>, never, never, {}, {}, never, never, true, never>;
|
44
|
+
}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
/**
|
2
|
+
* Common base types and utilities for all chart components
|
3
|
+
*/
|
4
|
+
/**
|
5
|
+
* Base chart data interface that all chart data types extend
|
6
|
+
*/
|
7
|
+
export interface AXPChartDataBase {
|
8
|
+
id: string;
|
9
|
+
color?: string;
|
10
|
+
}
|
11
|
+
/**
|
12
|
+
* Base chart options interface with common properties
|
13
|
+
*/
|
14
|
+
export interface AXPChartOptionBase {
|
15
|
+
width?: number;
|
16
|
+
height?: number;
|
17
|
+
animationEnabled?: boolean;
|
18
|
+
animationDuration?: number;
|
19
|
+
showTooltip?: boolean;
|
20
|
+
tooltipPosition?: 'auto' | 'fixed';
|
21
|
+
showLegend?: boolean;
|
22
|
+
legendPosition?: 'bottom' | 'right' | 'top' | 'left';
|
23
|
+
theme?: 'light' | 'dark' | 'auto';
|
24
|
+
colorScheme?: string | string[];
|
25
|
+
}
|
26
|
+
/**
|
27
|
+
* Color utility functions for charts
|
28
|
+
*/
|
29
|
+
export declare const AXPChartColors: {
|
30
|
+
defaultColors: string[];
|
31
|
+
getColor: (index: number, customPalette?: string[]) => string;
|
32
|
+
generatePalette: (baseColor: string, count: number) => string[];
|
33
|
+
};
|
34
|
+
/**
|
35
|
+
* Shared utility for loading D3.js dynamically
|
36
|
+
*/
|
37
|
+
export declare function loadD3(): Promise<any>;
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
export interface AXPChartTooltipData {
|
3
|
+
title: string;
|
4
|
+
value: number | string;
|
5
|
+
percentage?: string;
|
6
|
+
color?: string;
|
7
|
+
[key: string]: any;
|
8
|
+
}
|
9
|
+
export declare class AXPChartTooltipComponent {
|
10
|
+
data: import("@angular/core").InputSignal<AXPChartTooltipData | null>;
|
11
|
+
position: import("@angular/core").InputSignal<{
|
12
|
+
x: number;
|
13
|
+
y: number;
|
14
|
+
}>;
|
15
|
+
visible: import("@angular/core").InputSignal<boolean>;
|
16
|
+
/**
|
17
|
+
* Whether to show the tooltip's percentage badge
|
18
|
+
*/
|
19
|
+
showPercentage: import("@angular/core").InputSignal<boolean>;
|
20
|
+
/**
|
21
|
+
* Optional custom styling for the tooltip
|
22
|
+
*/
|
23
|
+
style: import("@angular/core").InputSignal<{
|
24
|
+
[key: string]: string;
|
25
|
+
}>;
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPChartTooltipComponent, never>;
|
27
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPChartTooltipComponent, "ax-chart-tooltip", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "showPercentage": { "alias": "showPercentage"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
28
|
+
}
|
package/dashboard-management/lib/features/shared/widgets/shared/components/chart-tooltip/index.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export * from './chart-tooltip.component';
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { AXValueChangedEvent } from '@acorex/components/common';
|
2
|
+
import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';
|
3
|
+
import { OnInit } from '@angular/core';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export declare class AXPStickyNoteWidgetViewComponent extends AXPValueWidgetComponent<string> implements OnInit {
|
6
|
+
protected isEditing: import("@angular/core").WritableSignal<boolean>;
|
7
|
+
private wysiwyg;
|
8
|
+
protected value: import("@angular/core").Signal<string>;
|
9
|
+
protected date: import("@angular/core").Signal<any>;
|
10
|
+
protected bgColor: import("@angular/core").Signal<any>;
|
11
|
+
protected color: import("@angular/core").WritableSignal<string>;
|
12
|
+
private el;
|
13
|
+
protected colorPresets: string[];
|
14
|
+
handleClickOutside(event: MouseEvent): void;
|
15
|
+
protected activateEdit(): void;
|
16
|
+
protected saveChanges(): void;
|
17
|
+
protected setColor(color: string): void;
|
18
|
+
protected valueChange(event: AXValueChangedEvent<any>): void;
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPStickyNoteWidgetViewComponent, never>;
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPStickyNoteWidgetViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
21
|
+
}
|
package/dashboard-management/lib/features/shared/widgets/tasklist/tasklist-widget.component.d.ts
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';
|
2
|
+
import { AXPTaskData, AXPTaskListValue } from './tasklist.type';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
/**
|
5
|
+
* Task List Widget Component
|
6
|
+
* Displays a list of tasks with checkboxes and filtering options
|
7
|
+
*/
|
8
|
+
export declare class AXPTaskListWidgetViewComponent extends AXPValueWidgetComponent<AXPTaskListValue> {
|
9
|
+
taskClick: import("@angular/core").OutputEmitterRef<AXPTaskData>;
|
10
|
+
taskCompleted: import("@angular/core").OutputEmitterRef<AXPTaskData>;
|
11
|
+
private readonly cdr;
|
12
|
+
private readonly datePipe;
|
13
|
+
protected readonly maxItems: import("@angular/core").Signal<any>;
|
14
|
+
protected readonly showDate: import("@angular/core").Signal<any>;
|
15
|
+
protected readonly showAssignee: import("@angular/core").Signal<any>;
|
16
|
+
protected readonly showPriority: import("@angular/core").Signal<any>;
|
17
|
+
protected readonly allowMarkComplete: import("@angular/core").Signal<any>;
|
18
|
+
protected readonly showCategories: import("@angular/core").Signal<any>;
|
19
|
+
protected readonly taskItems: import("@angular/core").Signal<AXPTaskData[]>;
|
20
|
+
protected getPendingTaskCount(): number;
|
21
|
+
protected getCompletedTaskCount(): number;
|
22
|
+
protected hasCategories(): boolean;
|
23
|
+
protected getCategories(): string[];
|
24
|
+
protected getTasksByCategory(category: string): AXPTaskData[];
|
25
|
+
protected getCategoryTaskCount(category: string): number;
|
26
|
+
protected onTaskClick(task: AXPTaskData): void;
|
27
|
+
protected onTaskCompletionChange(task: AXPTaskData, isCompleted: boolean): void;
|
28
|
+
protected formatDueDate(date: Date | string | undefined): string;
|
29
|
+
protected getPriorityColor(priority: string | undefined): string;
|
30
|
+
private getFilteredTasks;
|
31
|
+
protected getDaysDifference(date: Date): number;
|
32
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPTaskListWidgetViewComponent, never>;
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPTaskListWidgetViewComponent, "ng-component", never, {}, { "taskClick": "taskClick"; "taskCompleted": "taskCompleted"; }, never, never, true, never>;
|
34
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
/**
|
2
|
+
* Task List Data structure
|
3
|
+
*/
|
4
|
+
export interface AXPTaskData {
|
5
|
+
id: string;
|
6
|
+
title: string;
|
7
|
+
completed: boolean;
|
8
|
+
priority?: 'low' | 'medium' | 'high';
|
9
|
+
dueDate?: Date | string;
|
10
|
+
category?: string;
|
11
|
+
assignedTo?: {
|
12
|
+
id: string;
|
13
|
+
name: string;
|
14
|
+
image?: string;
|
15
|
+
};
|
16
|
+
createdAt: Date | string;
|
17
|
+
}
|
18
|
+
/**
|
19
|
+
* Task List Widget Value
|
20
|
+
*/
|
21
|
+
export interface AXPTaskListValue {
|
22
|
+
data: AXPTaskData[];
|
23
|
+
}
|
24
|
+
/**
|
25
|
+
* Task List Widget Options
|
26
|
+
*/
|
27
|
+
export interface AXPTaskListOptions {
|
28
|
+
maxItems?: number;
|
29
|
+
showDate?: boolean;
|
30
|
+
showAssignee?: boolean;
|
31
|
+
showCategory?: boolean;
|
32
|
+
showPriority?: boolean;
|
33
|
+
groupByCategory?: boolean;
|
34
|
+
groupByPriority?: boolean;
|
35
|
+
allowMarkComplete?: boolean;
|
36
|
+
}
|
@@ -0,0 +1,174 @@
|
|
1
|
+
import { Observable } from 'rxjs';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
/**
|
4
|
+
* Weather location information
|
5
|
+
*/
|
6
|
+
export interface AXPWeatherLocation {
|
7
|
+
/** City name */
|
8
|
+
city: string;
|
9
|
+
/** Country name */
|
10
|
+
country: string;
|
11
|
+
/** Formatted location display name */
|
12
|
+
displayName: string;
|
13
|
+
}
|
14
|
+
/**
|
15
|
+
* Weather current condition information
|
16
|
+
*/
|
17
|
+
export interface AXPWeatherCondition {
|
18
|
+
/** Condition text */
|
19
|
+
condition: string;
|
20
|
+
/** Condition code */
|
21
|
+
conditionCode: number;
|
22
|
+
/** Icon URL */
|
23
|
+
iconUrl: string;
|
24
|
+
/** Temperature in Celsius */
|
25
|
+
tempC: number;
|
26
|
+
/** Temperature in Fahrenheit */
|
27
|
+
tempF: number;
|
28
|
+
/** Feels like temperature in Celsius */
|
29
|
+
feelsLikeC: number;
|
30
|
+
/** Feels like temperature in Fahrenheit */
|
31
|
+
feelsLikeF: number;
|
32
|
+
/** Humidity percentage */
|
33
|
+
humidity: number;
|
34
|
+
/** Wind speed in km/h */
|
35
|
+
windKph: number;
|
36
|
+
/** Wind speed in mph */
|
37
|
+
windMph: number;
|
38
|
+
/** Wind direction */
|
39
|
+
windDirection: string;
|
40
|
+
/** UV index */
|
41
|
+
uv: number;
|
42
|
+
/** Last updated timestamp */
|
43
|
+
lastUpdated: string;
|
44
|
+
}
|
45
|
+
/**
|
46
|
+
* Weather forecast data for a single day
|
47
|
+
*/
|
48
|
+
export interface AXPWeatherForecastDay {
|
49
|
+
/** Date string */
|
50
|
+
date: string;
|
51
|
+
/** Day name (e.g., "Mon", "Tue") */
|
52
|
+
day: string;
|
53
|
+
/** Weather condition code */
|
54
|
+
condition: string;
|
55
|
+
/** Weather icon URL */
|
56
|
+
iconUrl: string;
|
57
|
+
/** Max temperature in Celsius */
|
58
|
+
maxTempC: number;
|
59
|
+
/** Max temperature in Fahrenheit */
|
60
|
+
maxTempF: number;
|
61
|
+
/** Min temperature in Celsius */
|
62
|
+
minTempC: number;
|
63
|
+
/** Min temperature in Fahrenheit */
|
64
|
+
minTempF: number;
|
65
|
+
}
|
66
|
+
/**
|
67
|
+
* Complete weather data response
|
68
|
+
*/
|
69
|
+
export interface AXPWeatherData {
|
70
|
+
/** Location information */
|
71
|
+
location: AXPWeatherLocation;
|
72
|
+
/** Current weather data */
|
73
|
+
current: AXPWeatherCondition;
|
74
|
+
/** Forecast data */
|
75
|
+
forecast: AXPWeatherForecastDay[];
|
76
|
+
}
|
77
|
+
/**
|
78
|
+
* Weather API request options
|
79
|
+
*/
|
80
|
+
export interface AXPWeatherRequestOptions {
|
81
|
+
/** Temperature unit */
|
82
|
+
tempUnit?: string;
|
83
|
+
/** Location query */
|
84
|
+
location?: string;
|
85
|
+
/** Use mock data */
|
86
|
+
useMockData?: boolean;
|
87
|
+
}
|
88
|
+
/**
|
89
|
+
* Weather UI condition display info
|
90
|
+
*/
|
91
|
+
export interface AXPWeatherConditionDisplay {
|
92
|
+
/** Condition unique ID */
|
93
|
+
id: string;
|
94
|
+
/** Display name */
|
95
|
+
name: string;
|
96
|
+
/** Icon class (Font Awesome) */
|
97
|
+
icon: string;
|
98
|
+
/** Associated color */
|
99
|
+
color: string;
|
100
|
+
}
|
101
|
+
/**
|
102
|
+
* Abstract Weather API Service
|
103
|
+
* Base class that defines the interface and common functionality
|
104
|
+
* for weather data providers
|
105
|
+
*/
|
106
|
+
export declare abstract class AXPWeatherApiAbstract {
|
107
|
+
/** Weather condition definitions mapping */
|
108
|
+
protected weatherConditions: Record<string, AXPWeatherConditionDisplay>;
|
109
|
+
/** Day of week mapping */
|
110
|
+
protected readonly dayNames: string[];
|
111
|
+
/**
|
112
|
+
* Get weather condition info by ID
|
113
|
+
* @param id Condition ID
|
114
|
+
* @returns Weather condition info or default if not found
|
115
|
+
*/
|
116
|
+
getCondition(id: string): AXPWeatherConditionDisplay;
|
117
|
+
/**
|
118
|
+
* Get current weather data for given location
|
119
|
+
* @param options Weather request options
|
120
|
+
* @returns Observable with weather data
|
121
|
+
*/
|
122
|
+
abstract getWeather(options: AXPWeatherRequestOptions): Observable<AXPWeatherData>;
|
123
|
+
/**
|
124
|
+
* Get weather forecast for a location
|
125
|
+
* @param options Weather request options with days
|
126
|
+
* @returns Observable of weather data with forecast
|
127
|
+
*/
|
128
|
+
abstract getForecast(options: AXPWeatherRequestOptions & {
|
129
|
+
days?: number;
|
130
|
+
}): Observable<AXPWeatherData>;
|
131
|
+
/**
|
132
|
+
* Parse location string into city and display components
|
133
|
+
* @param location Location query string
|
134
|
+
* @returns Parsed location parts
|
135
|
+
*/
|
136
|
+
protected parseLocation(location: string): {
|
137
|
+
city: string;
|
138
|
+
country: string;
|
139
|
+
display: string;
|
140
|
+
};
|
141
|
+
/**
|
142
|
+
* Format location name for display
|
143
|
+
* @param locationParts Parsed location parts
|
144
|
+
* @returns Formatted location name
|
145
|
+
*/
|
146
|
+
protected formatLocationName(locationParts: {
|
147
|
+
city: string;
|
148
|
+
country: string;
|
149
|
+
display: string;
|
150
|
+
}): string;
|
151
|
+
/**
|
152
|
+
* Map API condition text to our internal condition IDs
|
153
|
+
* @param conditionText Condition text from API
|
154
|
+
* @returns Internal condition ID
|
155
|
+
*/
|
156
|
+
protected mapApiConditionToId(conditionText: string): string;
|
157
|
+
/**
|
158
|
+
* Generate random integer between min and max (inclusive)
|
159
|
+
* Helper method for implementations
|
160
|
+
* @param min Minimum value
|
161
|
+
* @param max Maximum value
|
162
|
+
* @returns Random integer
|
163
|
+
*/
|
164
|
+
protected getRandomInt(min: number, max: number): number;
|
165
|
+
/**
|
166
|
+
* Set the API key for the weather service
|
167
|
+
* This is only used by the real API implementation,
|
168
|
+
* but is defined in the abstract class for consistency
|
169
|
+
* @param key The API key
|
170
|
+
*/
|
171
|
+
abstract setApiKey(key: string): void;
|
172
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPWeatherApiAbstract, never>;
|
173
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXPWeatherApiAbstract>;
|
174
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { Observable } from 'rxjs';
|
2
|
+
import { AXPWeatherApiAbstract, AXPWeatherData, AXPWeatherRequestOptions } from './weather-api.abstract';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
/**
|
5
|
+
* Mock Weather API Service
|
6
|
+
* Provides simulated weather data for development and testing
|
7
|
+
*/
|
8
|
+
export declare class AXPWeatherApiMockService extends AXPWeatherApiAbstract {
|
9
|
+
private readonly mockDelay;
|
10
|
+
/**
|
11
|
+
* Get current weather data for given location
|
12
|
+
* @param options Weather request options
|
13
|
+
* @returns Observable with weather data
|
14
|
+
*/
|
15
|
+
getWeather(options: AXPWeatherRequestOptions): Observable<AXPWeatherData>;
|
16
|
+
/**
|
17
|
+
* Get weather forecast for a location
|
18
|
+
* @param options Weather request options with days
|
19
|
+
* @returns Observable of weather data with forecast
|
20
|
+
*/
|
21
|
+
getForecast(options: AXPWeatherRequestOptions & {
|
22
|
+
days?: number;
|
23
|
+
}): Observable<AXPWeatherData>;
|
24
|
+
/**
|
25
|
+
* Get mock weather data for demo/development
|
26
|
+
* @param location Location query
|
27
|
+
* @param options Request options
|
28
|
+
* @returns Observable of mock weather data
|
29
|
+
*/
|
30
|
+
private getMockWeatherData;
|
31
|
+
/**
|
32
|
+
* Get mock forecast data for demo/development
|
33
|
+
* @param location Location query
|
34
|
+
* @param days Number of forecast days
|
35
|
+
* @param options Request options
|
36
|
+
* @returns Observable of mock weather data with forecast
|
37
|
+
*/
|
38
|
+
private getMockForecast;
|
39
|
+
/**
|
40
|
+
* Set the API key for the weather service
|
41
|
+
* No-op in the mock implementation
|
42
|
+
* @param key The API key
|
43
|
+
*/
|
44
|
+
setApiKey(key: string): void;
|
45
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPWeatherApiMockService, never>;
|
46
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXPWeatherApiMockService>;
|
47
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import { Observable } from 'rxjs';
|
2
|
+
import { AXPWeatherApiAbstract, AXPWeatherData, AXPWeatherRequestOptions } from './weather-api.abstract';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
/**
|
5
|
+
* Real Weather API Service
|
6
|
+
* Fetches actual weather data from a weather API service
|
7
|
+
*/
|
8
|
+
export declare class AXPWeatherApiService extends AXPWeatherApiAbstract {
|
9
|
+
private readonly http;
|
10
|
+
private readonly baseApiUrl;
|
11
|
+
private apiKeyToken;
|
12
|
+
/**
|
13
|
+
* Set the API key for the weather service
|
14
|
+
* @param key The API key
|
15
|
+
*/
|
16
|
+
setApiKey(key: string): void;
|
17
|
+
/**
|
18
|
+
* Get current weather data for given location
|
19
|
+
* @param options Weather request options
|
20
|
+
* @returns Observable with weather data
|
21
|
+
*/
|
22
|
+
getWeather(options: AXPWeatherRequestOptions): Observable<AXPWeatherData>;
|
23
|
+
/**
|
24
|
+
* Get weather forecast for a location
|
25
|
+
* @param options Weather request options with days
|
26
|
+
* @returns Observable of weather data with forecast
|
27
|
+
*/
|
28
|
+
getForecast(options: AXPWeatherRequestOptions & {
|
29
|
+
days?: number;
|
30
|
+
}): Observable<AXPWeatherData>;
|
31
|
+
/**
|
32
|
+
* Transform API response to our internal data model
|
33
|
+
* @param apiData Raw API response
|
34
|
+
* @param displayName Formatted location name
|
35
|
+
* @returns Normalized weather data
|
36
|
+
*/
|
37
|
+
private transformApiResponse;
|
38
|
+
/**
|
39
|
+
* Transform forecast API response to our internal data model
|
40
|
+
* @param apiData Raw API response with forecast
|
41
|
+
* @param displayName Formatted location name
|
42
|
+
* @param days Number of forecast days
|
43
|
+
* @returns Normalized weather data with forecast
|
44
|
+
*/
|
45
|
+
private transformForecastResponse;
|
46
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPWeatherApiService, never>;
|
47
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXPWeatherApiService>;
|
48
|
+
}
|