@acorex/platform 19.2.9 → 19.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/common/lib/app/application.types.d.ts +3 -2
  2. package/common/lib/settings/settings.service.d.ts +1 -0
  3. package/common/lib/utils/expression-evaluator.service.d.ts +3 -1
  4. package/fesm2022/acorex-platform-common.mjs +49 -15
  5. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-layout-builder.mjs +25 -6
  7. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-layout-designer.mjs +31 -12
  9. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-layout-entity.mjs +102 -86
  11. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  12. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-BK8BItxL.mjs → acorex-platform-themes-default-entity-master-create-view.component-Bvwr0PVk.mjs} +8 -4
  13. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Bvwr0PVk.mjs.map +1 -0
  14. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-De61n012.mjs → acorex-platform-themes-default-entity-master-list-view.component-7KY7G6qo.mjs} +9 -16
  15. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-7KY7G6qo.mjs.map +1 -0
  16. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-U8aBv1Ql.mjs → acorex-platform-themes-default-entity-master-modify-view.component-BAU_s90_.mjs} +8 -4
  17. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BAU_s90_.mjs.map +1 -0
  18. package/fesm2022/{acorex-platform-themes-default-setting-page.component-CN2NCgUv.mjs → acorex-platform-themes-default-setting-page.component-DYumYm5k.mjs} +3 -3
  19. package/fesm2022/{acorex-platform-themes-default-setting-page.component-CN2NCgUv.mjs.map → acorex-platform-themes-default-setting-page.component-DYumYm5k.mjs.map} +1 -1
  20. package/fesm2022/acorex-platform-themes-default.mjs +15 -16
  21. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-widgets.mjs +546 -341
  23. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  24. package/layout/builder/lib/builder/widget-column-renderer.d.ts +2 -1
  25. package/layout/builder/lib/builder/widget-map.d.ts +2 -0
  26. package/layout/builder/lib/builder/widget.types.d.ts +13 -0
  27. package/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.d.ts +3 -0
  28. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +2 -1
  29. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +2 -2
  30. package/layout/entity/lib/entity-master-update.viewmodel.d.ts +4 -3
  31. package/layout/entity/lib/entity.viewmodel.d.ts +3 -0
  32. package/package.json +5 -5
  33. package/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.d.ts +2 -0
  34. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +2 -1
  35. package/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.d.ts +2 -0
  36. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +0 -1
  37. package/widgets/lib/widgets/advance/file/file-box-widget-edit.component.d.ts +6 -4
  38. package/widgets/lib/widgets/advance/file/file-box-widget-view.component.d.ts +9 -7
  39. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget-edit.component.d.ts +21 -14
  40. package/widgets/lib/widgets/charts/bar-chart/bar-chart.type.d.ts +4 -12
  41. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget-edit.component.d.ts +42 -0
  42. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget.config.d.ts +7 -0
  43. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart.type.d.ts +21 -0
  44. package/widgets/lib/widgets/charts/gauge-chart/index.d.ts +2 -0
  45. package/widgets/lib/widgets/charts/sticky-note/index.d.ts +2 -0
  46. package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget-edit.component.d.ts +9 -0
  47. package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget.config.d.ts +7 -0
  48. package/widgets/lib/widgets/editors/tabular-data/index.d.ts +3 -3
  49. package/widgets/lib/widgets/editors/tabular-data/{table-widget-column.component.d.ts → tabular-data-column.component.d.ts} +3 -3
  50. package/widgets/lib/widgets/editors/tabular-data/tabular-data-filter.component.d.ts +6 -0
  51. package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-edit.component.d.ts +3 -3
  52. package/widgets/lib/widgets/editors/tabular-data/{table-widget-print.component.d.ts → tabular-data-widget-print.component.d.ts} +3 -3
  53. package/widgets/lib/widgets/index.d.ts +2 -0
  54. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-BK8BItxL.mjs.map +0 -1
  55. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-De61n012.mjs.map +0 -1
  56. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-U8aBv1Ql.mjs.map +0 -1
  57. package/widgets/lib/widgets/editors/tabular-data/table-widget-filter.component.d.ts +0 -6
@@ -8,6 +8,7 @@ export declare class AXPWidgetColumnRendererComponent extends AXDataTableColumnC
8
8
  private grid;
9
9
  customExpandIcon: string;
10
10
  customCollapseIcon: string;
11
+ customWidth: string;
11
12
  private _node;
12
13
  get node(): AXPWidgetColumnNode;
13
14
  set node(v: AXPWidgetColumnNode);
@@ -33,5 +34,5 @@ export declare class AXPWidgetColumnRendererComponent extends AXDataTableColumnC
33
34
  ngOnInit(): Promise<void>;
34
35
  getInputs(data: any): any;
35
36
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPWidgetColumnRendererComponent, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<AXPWidgetColumnRendererComponent, "axp-widget-column-renderer", never, { "caption": { "alias": "caption"; "required": false; }; "customExpandIcon": { "alias": "customExpandIcon"; "required": false; }; "customCollapseIcon": { "alias": "customCollapseIcon"; "required": false; }; "node": { "alias": "node"; "required": true; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "expandHandler": { "alias": "expandHandler"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; }, {}, never, never, false, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPWidgetColumnRendererComponent, "axp-widget-column-renderer", never, { "caption": { "alias": "caption"; "required": false; }; "customExpandIcon": { "alias": "customExpandIcon"; "required": false; }; "customCollapseIcon": { "alias": "customCollapseIcon"; "required": false; }; "customWidth": { "alias": "customWidth"; "required": false; }; "node": { "alias": "node"; "required": true; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "expandHandler": { "alias": "expandHandler"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; }, {}, never, never, false, never>;
37
38
  }
@@ -61,4 +61,6 @@ export interface AXPWidgetTypesMap {
61
61
  callbackValidation: 'callback-validation';
62
62
  donutChart: 'donut-chart';
63
63
  barChart: 'bar-chart';
64
+ gaugeChart: 'gauge-chart';
65
+ stickyNote: 'sticky-note';
64
66
  }
@@ -55,6 +55,19 @@ export declare function createStringProperty(ctor: {
55
55
  group: AXPWidgetPropertyGroup;
56
56
  visible?: boolean;
57
57
  }): AXPWidgetProperty;
58
+ export declare function createNumberProperty(ctor: {
59
+ defaultValue?: number;
60
+ name: string;
61
+ title: string;
62
+ path?: string;
63
+ group: AXPWidgetPropertyGroup;
64
+ visible?: boolean;
65
+ options?: {
66
+ minValue?: number;
67
+ maxValue?: number;
68
+ decimals?: number;
69
+ };
70
+ }): AXPWidgetProperty;
58
71
  export declare function createBooleanProperty(ctor: {
59
72
  defaultValue?: boolean;
60
73
  name: string;
@@ -1,14 +1,17 @@
1
1
  import { AXPDesignerService } from '../../../shared/designer.service';
2
2
  import { AXPWidgetDataSourceProviderService } from '@acorex/platform/layout/builder';
3
+ import { AXPWorkflowService } from '@acorex/platform/workflow';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class AXPDesignerDataSourcesComponent {
5
6
  protected service: AXPDesignerService;
7
+ protected workflow: AXPWorkflowService;
6
8
  protected dataSourceProvider: AXPWidgetDataSourceProviderService;
7
9
  protected list: import("@angular/core").WritableSignal<{
8
10
  name: string;
9
11
  title: string;
10
12
  }[]>;
11
13
  ngOnInit(): Promise<void>;
14
+ protected handleAddClick(): Promise<void>;
12
15
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPDesignerDataSourcesComponent, never>;
13
16
  static ɵcmp: i0.ɵɵComponentDeclaration<AXPDesignerDataSourcesComponent, "axp-designer-data-sources", never, {}, {}, never, never, true, never>;
14
17
  }
@@ -1,5 +1,5 @@
1
1
  import { AXPEntity, AXPEntityProperty, AXPEntityPropertyCreateView, AXPEntitySectionView, AXPGridLayoutOptions } from '@acorex/platform/common';
2
- import { AXPWidgetNode } from '@acorex/platform/layout/builder';
2
+ import { AXPLayoutBuilderService, AXPWidgetNode } from '@acorex/platform/layout/builder';
3
3
  import { Injector } from '@angular/core';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class AXPEntityCreateViewSectionViewModel {
@@ -34,6 +34,7 @@ export declare class AXPEntityMasterCreateViewModel {
34
34
  private readonly commandOptions;
35
35
  private entityDef;
36
36
  private workflow;
37
+ builder: AXPLayoutBuilderService;
37
38
  constructor(injector: Injector, config: AXPEntity, initialData: any, commandOptions: any);
38
39
  context: import("@angular/core").WritableSignal<any>;
39
40
  options: import("@angular/core").WritableSignal<any>;
@@ -35,8 +35,7 @@ export declare class AXPEntityMasterListViewModel {
35
35
  private widgetResolver;
36
36
  private expressionEvaluator;
37
37
  private readonly filterOperatorMiddleware;
38
- private settingListViewKey;
39
- private settingSelectedViewKey;
38
+ private settingEntityKey;
40
39
  private readonly destroyed;
41
40
  events$: Subject<{
42
41
  action: string;
@@ -48,6 +47,7 @@ export declare class AXPEntityMasterListViewModel {
48
47
  dataSource: AXDataSource<unknown>;
49
48
  constructor(injector: Injector, config: AXPEntity);
50
49
  applySettings(): Promise<void>;
50
+ saveSettings(changesType: 'columnSizes' | 'columnOrders' | 'view' | 'pageSize', data?: any): Promise<void>;
51
51
  selectedItems: import("@angular/core").WritableSignal<any[]>;
52
52
  parentKey: import("@angular/core").Signal<string | undefined>;
53
53
  hasSelectedItems: import("@angular/core").Signal<boolean>;
@@ -1,6 +1,6 @@
1
- import { Injector } from "@angular/core";
2
- import { AXPWidgetNode } from "@acorex/platform/layout/builder";
3
- import { AXPEntity, AXPEntityProperty, AXPGridLayoutOptions } from "@acorex/platform/common";
1
+ import { AXPEntity, AXPEntityProperty, AXPGridLayoutOptions } from '@acorex/platform/common';
2
+ import { AXPLayoutBuilderService, AXPWidgetNode } from '@acorex/platform/layout/builder';
3
+ import { Injector } from '@angular/core';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class AXPEntityMasterUpdateElementViewModel {
6
6
  private entity;
@@ -21,6 +21,7 @@ export declare class AXPEntityMasterUpdateViewModel {
21
21
  private props;
22
22
  private entityDef;
23
23
  private workflow;
24
+ builder: AXPLayoutBuilderService;
24
25
  constructor(injector: Injector, config: AXPEntity, entityData: any, props: string[]);
25
26
  isInProgress: import("@angular/core").WritableSignal<boolean>;
26
27
  context: import("@angular/core").WritableSignal<any>;
@@ -1,5 +1,6 @@
1
1
  import { AXStyleColorType } from '@acorex/components/common';
2
2
  import { AXPEntity, AXPEntityAction, AXPEntityCommandScope, AXPEntityProperty, AXPEntityTableColumn } from '@acorex/platform/common';
3
+ import { AXPMetaData } from '@acorex/platform/core';
3
4
  import { AXPWidgetColumnNode } from '@acorex/platform/layout/builder';
4
5
  export declare class AXPEntityCommandTriggerViewModel {
5
6
  priority: 'primary' | 'secondary';
@@ -13,6 +14,7 @@ export declare class AXPEntityCommandTriggerViewModel {
13
14
  disabled: boolean | string;
14
15
  hidden: boolean | string;
15
16
  options: any;
17
+ metadata?: AXPMetaData;
16
18
  constructor(entity: AXPEntity, action: AXPEntityAction);
17
19
  }
18
20
  export declare class AXPEntityListViewColumnViewModel {
@@ -24,5 +26,6 @@ export declare class AXPEntityListViewColumnViewModel {
24
26
  visible: boolean;
25
27
  dir: "asc" | "desc" | undefined;
26
28
  sortEnabled: boolean | undefined;
29
+ width: '';
27
30
  node: import("@angular/core").Signal<AXPWidgetColumnNode>;
28
31
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/platform",
3
- "version": "19.2.9",
3
+ "version": "19.2.11",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=19.0.0",
6
6
  "@angular/core": ">=19.0.0",
@@ -41,14 +41,14 @@
41
41
  "types": "./auth/index.d.ts",
42
42
  "default": "./fesm2022/acorex-platform-auth.mjs"
43
43
  },
44
- "./core": {
45
- "types": "./core/index.d.ts",
46
- "default": "./fesm2022/acorex-platform-core.mjs"
47
- },
48
44
  "./common": {
49
45
  "types": "./common/index.d.ts",
50
46
  "default": "./fesm2022/acorex-platform-common.mjs"
51
47
  },
48
+ "./core": {
49
+ "types": "./core/index.d.ts",
50
+ "default": "./fesm2022/acorex-platform-core.mjs"
51
+ },
52
52
  "./native": {
53
53
  "types": "./native/index.d.ts",
54
54
  "default": "./fesm2022/acorex-platform-native.mjs"
@@ -6,7 +6,9 @@ import { AXPWorkflowService } from '@acorex/platform/workflow';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {
8
8
  protected vm: AXPEntityMasterCreateViewModel;
9
+ private container;
9
10
  protected workflow: AXPWorkflowService;
11
+ ngAfterViewInit(): void;
10
12
  protected handleCloseClick(): void;
11
13
  protected handleBackClick(): Promise<void>;
12
14
  protected handleNextClick(form: AXFormComponent): Promise<void>;
@@ -1,4 +1,4 @@
1
- import { AXDataTableComponent, AXDataTableRowDbClick, AXRowCommandItem, AXRowCommandItemClickEvent } from '@acorex/components/data-table';
1
+ import { AXDataTableComponent, AXDataTableRowDbClick, AXRowCommandItem, AXRowCommandItemClickEvent, onColumnSizeChangedEvent } from '@acorex/components/data-table';
2
2
  import { AXDrawerComponent } from '@acorex/components/drawer';
3
3
  import { AXPlatform } from '@acorex/core/platform';
4
4
  import { AXValueChangedEvent } from '@acorex/components/common';
@@ -70,6 +70,7 @@ export declare class AXPEntityMasterListViewComponent {
70
70
  ngAfterViewInit(): void;
71
71
  protected closeFiltersDrawer(e: AXDrawerComponent, collapsed: boolean): void;
72
72
  handleChangeSearchValue(e: AXValueChangedEvent): void;
73
+ protected onColumnSizeChanged(e: onColumnSizeChangedEvent): void;
73
74
  protected dropdownRowItems(rowData: any): Promise<AXRowCommandItem[]>;
74
75
  private commandRowItems;
75
76
  protected handleRowDbClick(e: AXDataTableRowDbClick): Promise<void>;
@@ -7,6 +7,8 @@ import * as i0 from "@angular/core";
7
7
  export declare class AXPEntityMasterModifyViewComponent extends AXBasePageComponent {
8
8
  protected vm: AXPEntityMasterUpdateViewModel;
9
9
  protected workflow: AXPWorkflowService;
10
+ private container;
11
+ ngAfterViewInit(): void;
10
12
  protected handleCloseClick(): void;
11
13
  protected handleSaveClick(form: AXFormComponent): Promise<void>;
12
14
  protected handleSectionDiscard(form: AXFormComponent): Promise<void>;
@@ -67,7 +67,6 @@ export declare class AXPRootLayoutComponent {
67
67
  }>;
68
68
  constructor();
69
69
  protected handleCollapsedChange(value: boolean): void;
70
- log(e: AXValueChangedEvent<number>): void;
71
70
  protected handleResizingEnded(e: AXValueChangedEvent<number>): void;
72
71
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPRootLayoutComponent, never>;
73
72
  static ɵcmp: i0.ɵɵComponentDeclaration<AXPRootLayoutComponent, "ng-component", never, {}, {}, never, never, false, never>;
@@ -1,9 +1,8 @@
1
- import { AXUploaderChangedEvent, AXUploaderFileCompleteEvent, AXUploaderFilesCompleteEvent } from '@acorex/components/uploader';
1
+ import { AXUploaderChangedEvent, AXUploaderFileCompleteEvent, AXUploaderFilesCompleteEvent, AXUploadRequest } from '@acorex/components/uploader';
2
2
  import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
3
- import { Signal } from '@angular/core';
3
+ import { OnDestroy, Signal } from '@angular/core';
4
4
  import * as i0 from "@angular/core";
5
- export declare class AXPFileBoxWidgetEditComponent extends AXPWidgetComponent<any> {
6
- #private;
5
+ export declare class AXPFileBoxWidgetEditComponent extends AXPWidgetComponent<any> implements OnDestroy {
7
6
  private fileStorage;
8
7
  protected multiple: Signal<boolean>;
9
8
  protected accept: Signal<string>;
@@ -15,8 +14,11 @@ export declare class AXPFileBoxWidgetEditComponent extends AXPWidgetComponent<an
15
14
  value?: string | null;
16
15
  label?: string | undefined;
17
16
  }[]>;
17
+ protected files: import("@angular/core").WritableSignal<AXUploadRequest[]>;
18
18
  private markedListAsCommitted;
19
19
  private markedListAsDeleted;
20
+ ngOnDestroy(): Promise<void>;
21
+ handleOnFileRemove(file: AXUploadRequest): void;
20
22
  handleOnFileUploadComplete(e: AXUploaderFileCompleteEvent): void;
21
23
  handleOnFilesUploadComplete(e: AXUploaderFilesCompleteEvent): void;
22
24
  protected handleChanged(e: AXUploaderChangedEvent): Promise<void>;
@@ -1,5 +1,6 @@
1
+ import { AXPFileStorageInfo } from '@acorex/platform/common';
1
2
  import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
- import { Signal } from '@angular/core';
3
+ import { WritableSignal } from '@angular/core';
3
4
  import * as i0 from "@angular/core";
4
5
  interface AXPFile {
5
6
  name: string;
@@ -8,21 +9,22 @@ interface AXPFile {
8
9
  size: string;
9
10
  }
10
11
  export declare class AXPFileBoxWidgetViewComponent extends AXPWidgetComponent<any> {
11
- private fileService;
12
+ private fileStorageService;
12
13
  private loadingDialog;
13
14
  private translateService;
14
- protected multiple: Signal<boolean>;
15
- protected downloadable: Signal<boolean>;
16
- protected internalValue: Signal<AXPFile[]>;
15
+ protected multiple: import("@angular/core").Signal<boolean>;
16
+ protected downloadable: import("@angular/core").Signal<boolean>;
17
+ protected internalValue: WritableSignal<AXPFileStorageInfo[]>;
17
18
  private downloadSubscription;
19
+ ngOnInit(): void;
18
20
  protected handleDownload(item: AXPFile): Promise<void>;
19
21
  private cancelDownload;
20
22
  private triggerDownload;
21
- protected getFileInfo(fileName: string): {
23
+ protected getFileInfo(extension: string): {
22
24
  icon: string;
23
25
  color: string;
24
26
  };
25
- private extractItem;
27
+ private updateInternalValue;
26
28
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileBoxWidgetViewComponent, never>;
27
29
  static ɵcmp: i0.ɵɵComponentDeclaration<AXPFileBoxWidgetViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
28
30
  }
@@ -1,28 +1,35 @@
1
1
  import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
- import { OnDestroy, OnInit } from '@angular/core';
3
2
  import { AXPBarChartValue } from './bar-chart.type';
4
3
  import * as i0 from "@angular/core";
5
- export declare class AXPBarChartWidgetEditComponent extends AXPWidgetComponent<AXPBarChartValue> implements OnInit, OnDestroy {
4
+ export declare class AXPBarChartWidgetEditComponent extends AXPWidgetComponent<AXPBarChartValue> {
6
5
  #private;
7
6
  private chartEl;
8
7
  private d3;
9
8
  private svg;
9
+ private chart;
10
+ private xScale;
11
+ private yScale;
12
+ private colors;
13
+ private xAxis;
14
+ private yAxis;
15
+ private height;
16
+ private width;
17
+ private margin;
10
18
  private data;
11
19
  private isRendered;
12
- private tooltip;
20
+ private readonly DEFAULT_COLOR;
21
+ private readonly DEFAULT_MARGIN;
22
+ private readonly BAR_TRANSITION_DELAY;
13
23
  private loadD3;
14
- private initializeChart;
15
- private drawChart;
24
+ private createChart;
25
+ private initializeSVG;
26
+ private initializeScales;
27
+ private createColorScale;
28
+ private initializeAxes;
16
29
  private updateChart;
17
- private getChartDimensions;
18
- private createXScale;
19
- private createYScale;
20
- private drawBars;
21
- private drawAxes;
22
- private addTooltips;
23
- private addLegend;
24
- private addExportButton;
25
- ngOnDestroy(): void;
30
+ private updateScales;
31
+ private updateAxes;
32
+ private updateBars;
26
33
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPBarChartWidgetEditComponent, never>;
27
34
  static ɵcmp: i0.ɵɵComponentDeclaration<AXPBarChartWidgetEditComponent, "ng-component", never, {}, {}, never, never, true, never>;
28
35
  }
@@ -8,20 +8,12 @@ export interface AXPBarChartOption {
8
8
  bottom: number;
9
9
  left: number;
10
10
  };
11
- color?: string;
12
- enableTooltip?: boolean;
13
- enableLegend?: boolean;
14
- enableExport?: boolean;
15
- barPadding?: number;
16
- axisColor?: string;
17
- axisFontSize?: number;
18
- tooltipBackground?: string;
19
- tooltipTextColor?: string;
20
- legendPosition?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
11
+ transitionDelayMs: number;
12
+ color?: string | string[];
21
13
  }
22
14
  export interface AXPBarChartData {
23
- id: string;
24
- name: string;
15
+ id?: string;
16
+ label: string;
25
17
  value: number;
26
18
  color?: string;
27
19
  }
@@ -0,0 +1,42 @@
1
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
+ import { AXPGaugeChartValue } from './gauge-chart.type';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AXPGaugeChartWidgetEditComponent extends AXPWidgetComponent<AXPGaugeChartValue> {
5
+ #private;
6
+ private chartContainerEl;
7
+ private chartEl;
8
+ private d3;
9
+ private loadD3;
10
+ private createChart;
11
+ /**
12
+ * Draw the background arc.
13
+ */
14
+ private drawBackgroundArc;
15
+ /**
16
+ * Draw the threshold arcs and labels.
17
+ */
18
+ private drawThresholds;
19
+ /**
20
+ * Draw a threshold label.
21
+ */
22
+ private drawThresholdLabel;
23
+ /**
24
+ * Draw the dial/needle.
25
+ */
26
+ private drawDial;
27
+ /**
28
+ * Draw the chart label.
29
+ */
30
+ private drawLabel;
31
+ /**
32
+ * Scale a value to an angle for the gauge chart.
33
+ */
34
+ private scaleValueToAngle;
35
+ /**
36
+ * Convert radians to degrees.
37
+ */
38
+ private radiansToDegrees;
39
+ ngOnDestroy(): void;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPGaugeChartWidgetEditComponent, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPGaugeChartWidgetEditComponent, "ng-component", never, {}, {}, never, never, true, never>;
42
+ }
@@ -0,0 +1,7 @@
1
+ import { AXPWidgetConfig } from '@acorex/platform/layout/builder';
2
+ export declare const AXPGaugeChartWidget: AXPWidgetConfig;
3
+ declare module '@acorex/platform/layout/builder' {
4
+ interface AXPWidgetTypesMap {
5
+ gaugeChart: 'gauge-chart';
6
+ }
7
+ }
@@ -0,0 +1,21 @@
1
+ import { AXPChartValue } from '../chart.type';
2
+ export interface AXPGaugeChartData {
3
+ id: string;
4
+ name: string;
5
+ value: number;
6
+ color?: string;
7
+ }
8
+ export interface AXPGaugeChartOption {
9
+ width: number;
10
+ height: number;
11
+ minValue: number;
12
+ maxValue: number;
13
+ thresholds: {
14
+ range: number;
15
+ color: string;
16
+ }[];
17
+ label?: string;
18
+ animationDuration?: number;
19
+ }
20
+ export interface AXPGaugeChartValue extends AXPChartValue<AXPGaugeChartData, AXPGaugeChartOption> {
21
+ }
@@ -0,0 +1,2 @@
1
+ export * from './gauge-chart-widget-edit.component';
2
+ export * from './gauge-chart-widget.config';
@@ -0,0 +1,2 @@
1
+ export * from './sticky-note-widget-edit.component';
2
+ export * from './sticky-note-widget.config';
@@ -0,0 +1,9 @@
1
+ import { AXValueChangedEvent } from '@acorex/components/common';
2
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AXPStickyNoteWidgetEditComponent extends AXPWidgetComponent<string> {
5
+ protected value: import("@angular/core").WritableSignal<string>;
6
+ protected valueChange(event: AXValueChangedEvent<any>): void;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPStickyNoteWidgetEditComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPStickyNoteWidgetEditComponent, "ng-component", never, {}, {}, never, never, true, never>;
9
+ }
@@ -0,0 +1,7 @@
1
+ import { AXPWidgetConfig } from '@acorex/platform/layout/builder';
2
+ export declare const AXPStickyNoteWidget: AXPWidgetConfig;
3
+ declare module '@acorex/platform/layout/builder' {
4
+ interface AXPWidgetTypesMap {
5
+ stickyNote: 'sticky-note';
6
+ }
7
+ }
@@ -1,6 +1,6 @@
1
- export * from './table-widget-column.component';
1
+ export * from './tabular-data-column.component';
2
2
  export * from './tabular-data-widget-edit.component';
3
- export * from './table-widget-filter.component';
4
- export * from './table-widget-print.component';
3
+ export * from './tabular-data-filter.component';
4
+ export * from './tabular-data-widget-print.component';
5
5
  export * from './tabular-data-widget-view.component';
6
6
  export * from './table-widget.config';
@@ -1,6 +1,6 @@
1
1
  import { AXPColumnWidgetComponent } from '@acorex/platform/layout/builder';
2
2
  import * as i0 from "@angular/core";
3
- export declare class AXPTableEditorWidgetColumnComponent extends AXPColumnWidgetComponent<any> {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPTableEditorWidgetColumnComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<AXPTableEditorWidgetColumnComponent, "axp-tabular-editor-widget-column", never, { "rawValue": { "alias": "rawValue"; "required": false; }; }, {}, never, never, true, never>;
3
+ export declare class AXPTabularDataWidgetColumnComponent extends AXPColumnWidgetComponent<any> {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTabularDataWidgetColumnComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPTabularDataWidgetColumnComponent, "axp-tabular-editor-widget-column", never, { "rawValue": { "alias": "rawValue"; "required": false; }; }, {}, never, never, true, never>;
6
6
  }
@@ -0,0 +1,6 @@
1
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
+ import * as i0 from "@angular/core";
3
+ export declare class AXPTabulaDataWidgetFilterComponent extends AXPWidgetComponent<any> {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTabulaDataWidgetFilterComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPTabulaDataWidgetFilterComponent, "ng-component", never, {}, {}, never, never, true, never>;
6
+ }
@@ -1,12 +1,12 @@
1
1
  import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
2
  import { AXPTabularDataColumn } from './tabular-widget.types';
3
3
  import * as i0 from "@angular/core";
4
- export declare class AXPTabularDataEditorWidgetEditComponent extends AXPWidgetComponent<any> {
4
+ export declare class AXPTabularDataWidgetEditComponent extends AXPWidgetComponent<any> {
5
5
  protected columns: import("@angular/core").Signal<AXPTabularDataColumn[]>;
6
6
  protected defaultRowCount: import("@angular/core").Signal<number>;
7
7
  private popupService;
8
8
  private platform;
9
9
  protected openPopup(): Promise<void>;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPTabularDataEditorWidgetEditComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<AXPTabularDataEditorWidgetEditComponent, "axp-tabular-data-editor-widget", never, {}, {}, never, never, true, never>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTabularDataWidgetEditComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPTabularDataWidgetEditComponent, "axp-tabular-data-editor-widget", never, {}, {}, never, never, true, never>;
12
12
  }
@@ -1,6 +1,6 @@
1
1
  import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
2
  import * as i0 from "@angular/core";
3
- export declare class AXPTableEditorWidgetPrintComponent extends AXPWidgetComponent<any> {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPTableEditorWidgetPrintComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<AXPTableEditorWidgetPrintComponent, "ng-component", never, {}, {}, never, never, true, never>;
3
+ export declare class AXPTabularDataWidgetPrintComponent extends AXPWidgetComponent<any> {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTabularDataWidgetPrintComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPTabularDataWidgetPrintComponent, "ng-component", never, {}, {}, never, never, true, never>;
6
6
  }
@@ -41,3 +41,5 @@ export * from './validations/regular-expression-validation';
41
41
  export * from './validations/required-validation';
42
42
  export * from './charts/bar-chart';
43
43
  export * from './charts/donut-chart';
44
+ export * from './charts/gauge-chart';
45
+ export * from './charts/sticky-note';
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-themes-default-entity-master-create-view.component-BK8BItxL.mjs","sources":["../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { AXValidationModule } from '@acorex/core/validation';\n\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPGridLayoutDirective } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule, AXPLayoutContextChangeEvent } from '@acorex/platform/layout/builder';\nimport { AXPEntityMasterCreateViewModel } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsModule } from '@acorex/platform/widgets';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\n\n@Component({\n templateUrl: './entity-master-create-view.component.html',\n imports: [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n CommonModule,\n AXButtonModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXTooltipModule,\n AXValidationModule,\n AXLabelModule,\n AXDropdownModule,\n AXDropdownButtonModule,\n AXTranslationModule,\n //\n AXPLayoutBuilderModule,\n AXPWidgetsModule,\n AXPGridLayoutDirective,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {\n protected vm!: AXPEntityMasterCreateViewModel;\n\n protected workflow = inject(AXPWorkflowService);\n\n protected handleCloseClick() {\n this.close();\n }\n\n protected async handleBackClick() {\n //await this.vm.executeCommand('back');\n }\n\n protected async handleNextClick(form: AXFormComponent) {\n // const formResult = await form.validate();\n // if (formResult.result) {\n // await this.vm.executeCommand('next');\n // }\n }\n\n protected async handleSaveClick(form: AXFormComponent) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n const record = await this.vm.save();\n this.close({ save: true, recordId: record?.id, item: record, redirect: this.vm.redirect() });\n } catch (error) {\n console.log(error);\n }\n }\n }\n\n protected async handleSaveAndNewClick(form: AXFormComponent) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n const record = await this.vm.save();\n this.close({ save: true, recordId: record?.id, item: record, redirect: false });\n await this.vm.createNewOne();\n } catch (error) {\n console.log(error);\n }\n }\n }\n\n protected async handleContextChange(e: AXPLayoutContextChangeEvent) {\n this.vm.context.set(e.data);\n }\n}\n","<div>\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\" #form [messageStyle]=\"'bottom'\" [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-col-span-12\">\n <ax-form #form>\n @if(vm.sections().length>1 && !section.description()) {\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() | translate | async }}</span>\n @if(section.description()) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.elements(); track $index) {\n <ax-form-field class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\"\n [class.ax-hidden]=\"widget.options()['visibility'] == false\">\n <ax-label class=\"ax-font-semibold ax-text-sm\" [required]=\"attr.isRequired()\">{{\n attr.title() | translate | async\n }}</ax-label>\n <ng-container axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"></ng-container>\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n </ax-form>\n </axp-widgets-container>\n <ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" [color]=\"'default'\" [text]=\"'cancel' | translate | async\" (onClick)=\"handleCloseClick()\">\n </ax-button>\n @if(vm.canCreateNewOne()) {\n <ax-dropdown-button [disabled]=\"vm.isInProgress()\" color=\"primary\" [text]=\"'save' | translate | async\"\n look=\"solid\" (onClick)=\"handleSaveClick(form)\">\n <ax-loading *ngIf=\"vm.isInProgress()\"></ax-loading>\n <ax-button-item-list>\n <ax-button-item [text]=\"('save' | translate | async) + ' ' + ('create-new' | translate | async)\"\n (onClick)=\"handleSaveAndNewClick(form)\">\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n }@else {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'save' | translate | async\" (onClick)=\"handleSaveClick(form)\">\n <ax-loading *ngIf=\"vm.isInProgress()\"></ax-loading>\n </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n</div>"],"names":["i3","i5","i8","i9"],"mappings":"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"}