@acorex/platform 19.2.10 → 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 (34) hide show
  1. package/common/lib/settings/settings.service.d.ts +1 -0
  2. package/fesm2022/acorex-platform-common.mjs +23 -3
  3. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-layout-builder.mjs +5 -2
  5. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-layout-entity.mjs +57 -22
  7. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  8. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-BzLgFr7D.mjs → acorex-platform-themes-default-entity-master-list-view.component-7KY7G6qo.mjs} +6 -18
  9. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-7KY7G6qo.mjs.map +1 -0
  10. package/fesm2022/acorex-platform-themes-default.mjs +3 -3
  11. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-widgets.mjs +478 -364
  13. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  14. package/layout/builder/lib/builder/widget-column-renderer.d.ts +2 -1
  15. package/layout/builder/lib/builder/widget-map.d.ts +1 -0
  16. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +2 -2
  17. package/layout/entity/lib/entity.viewmodel.d.ts +1 -0
  18. package/package.json +9 -9
  19. package/widgets/lib/widgets/advance/file/file-box-widget-view.component.d.ts +9 -7
  20. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget-edit.component.d.ts +22 -15
  21. package/widgets/lib/widgets/charts/bar-chart/bar-chart.type.d.ts +4 -12
  22. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget-edit.component.d.ts +29 -1
  23. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart.type.d.ts +7 -3
  24. package/widgets/lib/widgets/charts/sticky-note/index.d.ts +2 -0
  25. package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget-edit.component.d.ts +9 -0
  26. package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget.config.d.ts +7 -0
  27. package/widgets/lib/widgets/editors/tabular-data/index.d.ts +3 -3
  28. package/widgets/lib/widgets/editors/tabular-data/{table-widget-column.component.d.ts → tabular-data-column.component.d.ts} +3 -3
  29. package/widgets/lib/widgets/editors/tabular-data/tabular-data-filter.component.d.ts +6 -0
  30. package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-edit.component.d.ts +3 -3
  31. package/widgets/lib/widgets/editors/tabular-data/{table-widget-print.component.d.ts → tabular-data-widget-print.component.d.ts} +3 -3
  32. package/widgets/lib/widgets/index.d.ts +2 -0
  33. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BzLgFr7D.mjs.map +0 -1
  34. package/widgets/lib/widgets/editors/tabular-data/table-widget-filter.component.d.ts +0 -6
@@ -22,7 +22,7 @@ import { AXLabelModule } from '@acorex/components/label';
22
22
  import { AXValidationModule, AXValidationService } from '@acorex/core/validation';
23
23
  import * as i2 from '@angular/forms';
24
24
  import { FormsModule } from '@angular/forms';
25
- import { AXPClipBoardService, AXPFileStorageService, ALL_DEFAULT_OPERATORS, DATE_OPERATORS, BOOLEAN_OPERATORS, NUMBER_OPERATORS, STRING_OPERATORS } from '@acorex/platform/common';
25
+ import { AXPClipBoardService, AXPFileStorageService, AXPDataGenerator, ALL_DEFAULT_OPERATORS, DATE_OPERATORS, BOOLEAN_OPERATORS, NUMBER_OPERATORS, STRING_OPERATORS } from '@acorex/platform/common';
26
26
  import { AXPopupService } from '@acorex/components/popup';
27
27
  import * as i3$2 from '@acorex/components/select-box';
28
28
  import { AXSelectBoxModule, AXSelectBoxComponent } from '@acorex/components/select-box';
@@ -5723,11 +5723,11 @@ var textBoxWidgetEdit_component = /*#__PURE__*/Object.freeze({
5723
5723
  AXPTextBoxWidgetEditComponent: AXPTextBoxWidgetEditComponent
5724
5724
  });
5725
5725
 
5726
- let AXPTextBoxWidgetFilterComponent$1 = class AXPTextBoxWidgetFilterComponent extends AXPWidgetComponent {
5726
+ class AXPTextBoxWidgetFilterComponent extends AXPWidgetComponent {
5727
5727
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5728
5728
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTextBoxWidgetFilterComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5729
- };
5730
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetFilterComponent$1, decorators: [{
5729
+ }
5730
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetFilterComponent, decorators: [{
5731
5731
  type: Component,
5732
5732
  args: [{
5733
5733
  template: ``,
@@ -5739,7 +5739,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
5739
5739
 
5740
5740
  var textBoxWidgetFilter_component = /*#__PURE__*/Object.freeze({
5741
5741
  __proto__: null,
5742
- AXPTextBoxWidgetFilterComponent: AXPTextBoxWidgetFilterComponent$1
5742
+ AXPTextBoxWidgetFilterComponent: AXPTextBoxWidgetFilterComponent
5743
5743
  });
5744
5744
 
5745
5745
  class AXPTextBoxWidgetColumnComponent extends AXPColumnWidgetComponent {
@@ -6558,24 +6558,21 @@ var fileBoxWidgetPrint_component = /*#__PURE__*/Object.freeze({
6558
6558
  AXPFileBoxWidgetPrintComponent: AXPFileBoxWidgetPrintComponent
6559
6559
  });
6560
6560
 
6561
- class AXPFileManagementService {
6562
- }
6563
-
6564
6561
  class AXPFileBoxWidgetViewComponent extends AXPWidgetComponent {
6565
6562
  constructor() {
6566
6563
  super(...arguments);
6567
- this.fileService = inject(AXPFileManagementService);
6564
+ this.fileStorageService = inject(AXPFileStorageService);
6568
6565
  this.loadingDialog = inject(AXLoadingDialogService);
6569
6566
  this.translateService = inject(AXTranslationService);
6570
6567
  this.multiple = computed(() => this.options()['multiple']);
6571
6568
  this.downloadable = computed(() => this.options()['downloadable']);
6572
- this.internalValue = computed(() => {
6573
- if (!this.getValue())
6574
- return [];
6575
- return Array.isArray(this.getValue()) ? this.getValue().map((item) => this.extractItem(item)) : [this.extractItem(this.getValue())];
6576
- });
6569
+ this.internalValue = signal([]);
6577
6570
  this.downloadSubscription = new Subscription();
6578
6571
  }
6572
+ ngOnInit() {
6573
+ this.updateInternalValue();
6574
+ super.ngOnInit();
6575
+ }
6579
6576
  async handleDownload(item) {
6580
6577
  const d = this.loadingDialog.show({
6581
6578
  title: await this.translateService.translateAsync('downloader.dialog.downloading'), // Downloading File
@@ -6594,23 +6591,6 @@ class AXPFileBoxWidgetViewComponent extends AXPWidgetComponent {
6594
6591
  },
6595
6592
  ],
6596
6593
  });
6597
- this.downloadSubscription = this.fileService.get(item.value, item.name || 'download').subscribe((event) => {
6598
- d.setProgressText(event.status);
6599
- d.setProgressStatus(`${event.progress}%`);
6600
- d.setProgressValue(event.progress);
6601
- if (event.progress === 100) {
6602
- this.triggerDownload(event.data, item.name);
6603
- setTimeout(() => {
6604
- d.close();
6605
- }, 1000);
6606
- }
6607
- }, async (error) => {
6608
- d.setProgressText(error.statusText);
6609
- d.setProgressStatus(await this.translateService.translateSync('downloader.dialog.downloadFailed')); //Downloading Failed
6610
- setTimeout(() => {
6611
- d.close();
6612
- }, 1000);
6613
- });
6614
6594
  }
6615
6595
  cancelDownload() {
6616
6596
  this.downloadSubscription.unsubscribe();
@@ -6625,8 +6605,7 @@ class AXPFileBoxWidgetViewComponent extends AXPWidgetComponent {
6625
6605
  document.body.removeChild(link);
6626
6606
  URL.revokeObjectURL(url);
6627
6607
  }
6628
- getFileInfo(fileName) {
6629
- const extension = fileName.split('.').pop()?.toLowerCase();
6608
+ getFileInfo(extension) {
6630
6609
  switch (extension) {
6631
6610
  case 'txt':
6632
6611
  return { icon: 'fa-file-alt', color: 'ax-bg-blue-100 ax-text-blue-500' };
@@ -6670,28 +6649,33 @@ class AXPFileBoxWidgetViewComponent extends AXPWidgetComponent {
6670
6649
  return { icon: 'fa-file', color: 'ax-bg-gray-100 ax-text-gray-500' };
6671
6650
  }
6672
6651
  }
6673
- extractItem(item) {
6674
- return typeof item == 'object'
6675
- ? {
6676
- name: item.name,
6677
- type: item.type ?? 'Unknown',
6678
- value: item.value,
6679
- size: item.size || '-',
6652
+ async updateInternalValue() {
6653
+ if (!this.getValue()) {
6654
+ this.internalValue.set([]);
6655
+ }
6656
+ else {
6657
+ if (Array.isArray(this.getValue())) {
6658
+ this.internalValue.set(await Promise.all(this.getValue().map(async (item) => await this.fileStorageService.getInfo(item))));
6680
6659
  }
6681
- : {
6682
- name: item || '',
6683
- type: 'Unknown',
6684
- value: item || '',
6685
- size: '-',
6686
- };
6660
+ else {
6661
+ this.internalValue.set([await this.fileStorageService.getInfo(this.getValue())]);
6662
+ }
6663
+ }
6664
+ console.log(this.internalValue());
6665
+ console.log(this.getValue());
6687
6666
  }
6688
6667
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileBoxWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6689
6668
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPFileBoxWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
6690
6669
  <div class="ax-grid ax-grid-cols-12 ax-gap-2">
6691
- @if(multiple()){ @for(item of internalValue();let first=$first;track item.name) {
6670
+ @if (multiple()) { @for (item of internalValue(); track item.fileId) {
6692
6671
  <ng-template [ngTemplateOutlet]="itemTemplate" ] [ngTemplateOutletContext]="{ data: item }" ]></ng-template>
6693
- } }@else {
6694
- <ng-template [ngTemplateOutlet]="itemTemplate" ] [ngTemplateOutletContext]="{ data: internalValue()[0] }" ]></ng-template>
6672
+ } } @else {
6673
+ <ng-template
6674
+ [ngTemplateOutlet]="itemTemplate"
6675
+ ]
6676
+ [ngTemplateOutletContext]="{ data: internalValue()[0] }"
6677
+ ]
6678
+ ></ng-template>
6695
6679
  }
6696
6680
  <ng-template #itemTemplate let-item="data">
6697
6681
  <div
@@ -6699,18 +6683,25 @@ class AXPFileBoxWidgetViewComponent extends AXPWidgetComponent {
6699
6683
  class="ax-flex ax-items-center ax-justify-between ax-p-2 ax-border ax-rounded-lg ax-bg-surface ax-col-start-1 ax-col-end-13"
6700
6684
  >
6701
6685
  <div class="ax-flex ax-items-center ax-gap-3">
6702
- <ng-container *ngIf="getFileInfo(item.name) as fileInfo">
6703
- <div class="ax-w-10 ax-h-10 ax-rounded-lg ax-flex ax-items-center ax-justify-center" [ngClass]="[fileInfo.color]">
6686
+ <ng-container *ngIf="getFileInfo(item.mimeType) as fileInfo">
6687
+ <div
6688
+ class="ax-w-10 ax-h-10 ax-rounded-lg ax-flex ax-items-center ax-justify-center"
6689
+ [ngClass]="[fileInfo.color]"
6690
+ >
6704
6691
  <i [ngClass]="['fa-solid', 'ax-text-xl', fileInfo.icon]"></i>
6705
6692
  </div>
6706
6693
  </ng-container>
6707
6694
  <div>
6708
- <div class="ax-leading-6">{{ item.name }}</div>
6695
+ <div class="ax-leading-6">{{ item.fileId }}</div>
6709
6696
  <p class="ax-text-sm ax-text-neutral-400">{{ item.size }}</p>
6710
6697
  </div>
6711
6698
  </div>
6712
- @if(downloadable()){
6713
- <ax-button (onClick)="handleDownload(item)" look="blank" color="ghost" class="!ax-text-neutral-400 hover:!ax-text-neutral-600">
6699
+ @if (downloadable()) {
6700
+ <ax-button
6701
+ (onClick)="handleDownload(item)"
6702
+ look="blank"
6703
+ class="!ax-text-neutral-400 hover:!ax-text-neutral-600"
6704
+ >
6714
6705
  <ax-icon>
6715
6706
  <i class="fa-solid fa-download"></i>
6716
6707
  </ax-icon>
@@ -6726,10 +6717,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
6726
6717
  args: [{
6727
6718
  template: `
6728
6719
  <div class="ax-grid ax-grid-cols-12 ax-gap-2">
6729
- @if(multiple()){ @for(item of internalValue();let first=$first;track item.name) {
6720
+ @if (multiple()) { @for (item of internalValue(); track item.fileId) {
6730
6721
  <ng-template [ngTemplateOutlet]="itemTemplate" ] [ngTemplateOutletContext]="{ data: item }" ]></ng-template>
6731
- } }@else {
6732
- <ng-template [ngTemplateOutlet]="itemTemplate" ] [ngTemplateOutletContext]="{ data: internalValue()[0] }" ]></ng-template>
6722
+ } } @else {
6723
+ <ng-template
6724
+ [ngTemplateOutlet]="itemTemplate"
6725
+ ]
6726
+ [ngTemplateOutletContext]="{ data: internalValue()[0] }"
6727
+ ]
6728
+ ></ng-template>
6733
6729
  }
6734
6730
  <ng-template #itemTemplate let-item="data">
6735
6731
  <div
@@ -6737,18 +6733,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
6737
6733
  class="ax-flex ax-items-center ax-justify-between ax-p-2 ax-border ax-rounded-lg ax-bg-surface ax-col-start-1 ax-col-end-13"
6738
6734
  >
6739
6735
  <div class="ax-flex ax-items-center ax-gap-3">
6740
- <ng-container *ngIf="getFileInfo(item.name) as fileInfo">
6741
- <div class="ax-w-10 ax-h-10 ax-rounded-lg ax-flex ax-items-center ax-justify-center" [ngClass]="[fileInfo.color]">
6736
+ <ng-container *ngIf="getFileInfo(item.mimeType) as fileInfo">
6737
+ <div
6738
+ class="ax-w-10 ax-h-10 ax-rounded-lg ax-flex ax-items-center ax-justify-center"
6739
+ [ngClass]="[fileInfo.color]"
6740
+ >
6742
6741
  <i [ngClass]="['fa-solid', 'ax-text-xl', fileInfo.icon]"></i>
6743
6742
  </div>
6744
6743
  </ng-container>
6745
6744
  <div>
6746
- <div class="ax-leading-6">{{ item.name }}</div>
6745
+ <div class="ax-leading-6">{{ item.fileId }}</div>
6747
6746
  <p class="ax-text-sm ax-text-neutral-400">{{ item.size }}</p>
6748
6747
  </div>
6749
6748
  </div>
6750
- @if(downloadable()){
6751
- <ax-button (onClick)="handleDownload(item)" look="blank" color="ghost" class="!ax-text-neutral-400 hover:!ax-text-neutral-600">
6749
+ @if (downloadable()) {
6750
+ <ax-button
6751
+ (onClick)="handleDownload(item)"
6752
+ look="blank"
6753
+ class="!ax-text-neutral-400 hover:!ax-text-neutral-600"
6754
+ >
6752
6755
  <ax-icon>
6753
6756
  <i class="fa-solid fa-download"></i>
6754
6757
  </ax-icon>
@@ -6760,7 +6763,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
6760
6763
  `,
6761
6764
  changeDetection: ChangeDetectionStrategy.OnPush,
6762
6765
  imports: [CommonModule, AXButtonModule, AXDecoratorModule],
6763
- inputs: []
6766
+ inputs: [],
6764
6767
  }]
6765
6768
  }] });
6766
6769
 
@@ -6819,6 +6822,9 @@ const AXPFileBoxWidget = {
6819
6822
  },
6820
6823
  };
6821
6824
 
6825
+ class AXPFileManagementService {
6826
+ }
6827
+
6822
6828
  class AXPGalleryWidgetViewComponent extends AXPWidgetComponent {
6823
6829
  constructor() {
6824
6830
  super(...arguments);
@@ -11612,19 +11618,27 @@ class AXPBarChartWidgetEditComponent extends AXPWidgetComponent {
11612
11618
  this.chartEl = viewChild.required('chart');
11613
11619
  this.data = linkedSignal(() => this.getValue());
11614
11620
  this.isRendered = false;
11621
+ // Constants
11622
+ this.DEFAULT_COLOR = 'steelblue';
11623
+ this.DEFAULT_MARGIN = { top: 10, right: 0, bottom: 20, left: 20 };
11624
+ this.BAR_TRANSITION_DELAY = 10;
11625
+ // After the next render, load D3, create the chart, and mark rendering complete
11615
11626
  this.#af = afterNextRender(async () => {
11616
11627
  await this.loadD3();
11617
- this.initializeChart();
11628
+ this.createChart();
11618
11629
  this.isRendered = true;
11630
+ //(window as any).chart = this; // Debug purpose only
11619
11631
  });
11632
+ // Reactively update the chart when the data signal changes
11620
11633
  this.#eff = effect(() => {
11621
- this.data();
11622
- if (this.isRendered) {
11634
+ if (this.isRendered && this.data()) {
11623
11635
  this.updateChart(this.data());
11624
11636
  }
11625
11637
  });
11626
11638
  }
11639
+ // After the next render, load D3, create the chart, and mark rendering complete
11627
11640
  #af;
11641
+ // Reactively update the chart when the data signal changes
11628
11642
  #eff;
11629
11643
  async loadD3() {
11630
11644
  try {
@@ -11634,170 +11648,99 @@ class AXPBarChartWidgetEditComponent extends AXPWidgetComponent {
11634
11648
  console.error('Failed to load D3.js:', error);
11635
11649
  }
11636
11650
  }
11637
- initializeChart() {
11638
- const chartValue = this.data();
11639
- const { width, height, margin } = this.getChartDimensions(chartValue.options);
11640
- // Clear existing SVG if it exists
11641
- if (this.svg) {
11642
- this.svg.selectAll('*').remove();
11643
- }
11644
- // Create SVG
11645
- this.svg = this.d3.select(this.chartEl().nativeElement).append('svg').attr('width', width).attr('height', height);
11646
- this.drawChart(chartValue);
11647
- }
11648
- drawChart(chartValue) {
11649
- const { data, options } = chartValue;
11650
- const { width, height, margin } = this.getChartDimensions(options);
11651
- const x = this.createXScale(data, width, margin);
11652
- const y = this.createYScale(data, height, margin);
11653
- this.drawBars(data, x, y, height, margin, options);
11654
- this.drawAxes(x, y, height, margin, options);
11655
- if (options.enableTooltip) {
11656
- this.addTooltips(data, x, y, options);
11657
- }
11658
- }
11659
- updateChart(chartValue) {
11660
- const { data, options } = chartValue;
11661
- // Clear existing chart content
11662
- this.svg.selectAll('*').remove();
11663
- // Re-render chart with new options
11664
- this.drawChart(chartValue);
11665
- }
11666
- getChartDimensions(options) {
11667
- const baseWidth = options.width || 400;
11668
- const baseHeight = options.height || 200;
11669
- const margin = options.margin || { top: 100, right: 20, bottom: 30, left: 40 };
11670
- return { width: baseWidth, height: baseHeight, margin };
11671
- }
11672
- createXScale(data, width, margin) {
11673
- return this.d3
11674
- .scaleBand()
11675
- .domain(data.map((d) => d.name))
11676
- .range([margin.left, width - margin.right])
11677
- .padding(0.1);
11678
- }
11679
- createYScale(data, height, margin) {
11680
- return this.d3
11681
- .scaleLinear()
11682
- .domain([0, this.d3.max(data, (d) => d.value)])
11683
- .nice()
11684
- .range([height - margin.bottom, margin.top]);
11685
- }
11686
- drawBars(data, x, y, height, margin, options) {
11687
- this.svg
11688
- .selectAll('rect')
11689
- .data(data)
11651
+ createChart(dataValue = this.data()) {
11652
+ const element = this.chartEl().nativeElement;
11653
+ this.margin = {
11654
+ top: (dataValue?.options?.margin?.top ?? 0) + this.DEFAULT_MARGIN.top,
11655
+ bottom: (dataValue?.options?.margin?.bottom ?? 0) + this.DEFAULT_MARGIN.bottom,
11656
+ left: (dataValue?.options?.margin?.left ?? 0) + this.DEFAULT_MARGIN.left,
11657
+ right: (dataValue?.options?.margin?.right ?? 0) + this.DEFAULT_MARGIN.right,
11658
+ };
11659
+ this.width = (dataValue?.options?.width ?? element.offsetWidth) - (this.margin.left + this.margin.right);
11660
+ this.height = (dataValue?.options?.height ?? element.offsetHeight) - (this.margin.top + this.margin.bottom);
11661
+ this.initializeSVG(element);
11662
+ this.initializeScales(dataValue);
11663
+ this.initializeAxes();
11664
+ this.updateChart();
11665
+ }
11666
+ initializeSVG(element) {
11667
+ this.svg = this.d3
11668
+ .select(element)
11669
+ .append('svg')
11670
+ .attr('width', this.width + this.margin.left + this.margin.right)
11671
+ .attr('height', this.height + this.margin.top + this.margin.bottom);
11672
+ this.chart = this.svg
11673
+ .append('g')
11674
+ .attr('class', 'axp-bar-chart-bars')
11675
+ .attr('transform', `translate(${this.margin.left}, ${this.margin.top})`);
11676
+ }
11677
+ initializeScales(dataValue) {
11678
+ const xDomain = dataValue.data.map((d) => d.label);
11679
+ const yDomain = [0, this.d3.max(dataValue.data, (d) => d.value) ?? 100];
11680
+ this.xScale = this.d3.scaleBand().padding(0.1).domain(xDomain).rangeRound([0, this.width]);
11681
+ this.yScale = this.d3.scaleLinear().domain(yDomain).range([this.height, 0]);
11682
+ this.colors = this.createColorScale(dataValue);
11683
+ }
11684
+ createColorScale(dataValue) {
11685
+ const { data, options } = dataValue;
11686
+ const colors = options.color || [this.DEFAULT_COLOR];
11687
+ const domain = data.length === 1 ? [0, data.length - 1] : data.map((_, i) => (i / (data.length - 1)) * (data.length - 1));
11688
+ const range = !Array.isArray(colors) ? [colors, colors] : [colors[0], colors[colors.length - 1]];
11689
+ return this.d3.scaleLinear().domain(domain).range(range);
11690
+ }
11691
+ initializeAxes() {
11692
+ this.xAxis = this.chart
11693
+ .append('g')
11694
+ .attr('class', 'axp-bar-chart-axis-x')
11695
+ .attr('transform', `translate(0, ${this.height})`)
11696
+ .call(this.d3.axisBottom(this.xScale));
11697
+ this.yAxis = this.chart.append('g').attr('class', 'axp-bar-chart-axis-y').call(this.d3.axisLeft(this.yScale));
11698
+ }
11699
+ updateChart(dataValue = this.data()) {
11700
+ this.updateScales(dataValue);
11701
+ this.updateAxes();
11702
+ this.updateBars(dataValue);
11703
+ }
11704
+ updateScales(dataValue) {
11705
+ this.xScale.domain(dataValue.data.map((d) => d.label));
11706
+ this.yScale.domain([0, this.d3.max(dataValue.data, (d) => d.value) ?? 100]);
11707
+ this.colors.domain([0, dataValue.data.length]);
11708
+ }
11709
+ updateAxes() {
11710
+ this.xAxis.transition().call(this.d3.axisBottom(this.xScale));
11711
+ this.yAxis.transition().call(this.d3.axisLeft(this.yScale));
11712
+ }
11713
+ updateBars(dataValue) {
11714
+ const bars = this.chart.selectAll('.axp-bar-chart-bar').data(dataValue.data);
11715
+ bars.exit().remove();
11716
+ bars
11717
+ .transition()
11718
+ .attr('x', (d) => this.xScale(d.label))
11719
+ .attr('y', (d) => this.yScale(d.value))
11720
+ .attr('width', this.xScale.bandwidth())
11721
+ .attr('height', (d) => this.height - this.yScale(d.value))
11722
+ .style('fill', (d, i) => d.color ?? this.colors(i));
11723
+ bars
11690
11724
  .enter()
11691
11725
  .append('rect')
11692
- .attr('x', (d) => x(d.name) || 0)
11693
- .attr('y', height - margin.bottom)
11694
- .attr('width', x.bandwidth())
11726
+ .attr('class', 'axp-bar-chart-bar')
11727
+ .attr('x', (d) => this.xScale(d.label))
11728
+ .attr('y', (d) => this.yScale(0))
11729
+ .attr('width', this.xScale.bandwidth())
11695
11730
  .attr('height', 0)
11696
- .attr('fill', (d) => d.color || options.color || 'teal')
11731
+ .attr('data-id', (d) => d.id ?? AXPDataGenerator.uuid())
11732
+ .style('fill', (d, i) => d.color ?? this.colors(i))
11697
11733
  .transition()
11698
- .duration(500)
11699
- .attr('y', (d) => y(d.value))
11700
- .attr('height', (d) => y(0) - y(d.value));
11701
- }
11702
- drawAxes(x, y, height, margin, options) {
11703
- const axisColor = options.axisColor || '#000';
11704
- const axisFontSize = options.axisFontSize || 12;
11705
- // Draw X axis
11706
- this.svg
11707
- .append('g')
11708
- .attr('class', 'axp-bar-chart-x-axis')
11709
- .attr('transform', `translate(0,${height - margin.bottom})`)
11710
- .call(this.d3.axisBottom(x).tickSizeOuter(0))
11711
- .attr('color', axisColor)
11712
- .style('font-size', `${axisFontSize}px`);
11713
- // Draw Y axis
11714
- this.svg
11715
- .append('g')
11716
- .attr('class', 'axp-bar-chart-y-axis')
11717
- .attr('transform', `translate(${margin.left},0)`)
11718
- .call(this.d3.axisLeft(y))
11719
- .attr('color', axisColor)
11720
- .style('font-size', `${axisFontSize}px`);
11721
- }
11722
- addTooltips(data, x, y, options) {
11723
- this.tooltip = this.svg.append('g').attr('class', 'axp-bar-chart-tooltip').style('opacity', 0);
11724
- this.tooltip
11725
- .append('rect')
11726
- .attr('width', 80)
11727
- .attr('height', 30)
11728
- .attr('fill', options.tooltipBackground || '#fff')
11729
- .attr('rx', 4)
11730
- .attr('ry', 4);
11731
- this.tooltip
11732
- .append('text')
11733
- .attr('x', 40)
11734
- .attr('y', 20)
11735
- .attr('text-anchor', 'middle')
11736
- .attr('fill', options.tooltipTextColor || '#000')
11737
- .style('font-size', '11px');
11738
- this.svg
11739
- .selectAll('rect')
11740
- .on('mouseover', (event, d) => {
11741
- const barX = x(d.name) || 0;
11742
- const barY = y(d.value);
11743
- // Adjust tooltip position to stay within SVG boundaries
11744
- const tooltipX = Math.min(barX + x.bandwidth() / 2 - 40, Number.parseInt(this.svg.attr('width')) - 80);
11745
- const tooltipY = Math.max(barY - 40, 0);
11746
- this.tooltip.style('opacity', 1).attr('transform', `translate(${tooltipX},${tooltipY})`);
11747
- this.tooltip.select('text').text(`${d.name}: ${d.value}`);
11748
- })
11749
- .on('mouseout', () => {
11750
- this.tooltip.style('opacity', 0);
11751
- });
11752
- }
11753
- // API to render legend in another component
11754
- renderLegend(data, options, container) {
11755
- const legend = this.d3.select(container).append('div').attr('class', 'axp-bar-chart-legend');
11756
- const legendItems = legend
11757
- .selectAll('.legend-item')
11758
- .data(data)
11759
- .enter()
11760
- .append('div')
11761
- .attr('class', 'axp-bar-chart-legend-item')
11762
- .style('display', 'flex')
11763
- .style('align-items', 'center')
11764
- .style('margin-bottom', '5px');
11765
- legendItems
11766
- .append('div')
11767
- .style('width', '16px')
11768
- .style('height', '16px')
11769
- .style('background-color', (d) => d.color || options.color || 'teal')
11770
- .style('margin-right', '8px');
11771
- legendItems
11772
- .append('div')
11773
- .text((d) => d.name)
11774
- .style('font-size', '12px');
11775
- }
11776
- // API to export chart as PNG
11777
- exportChartAsPNG() {
11778
- const svgElement = this.svg.node();
11779
- if (svgElement) {
11780
- const serializer = new XMLSerializer();
11781
- const svgString = serializer.serializeToString(svgElement);
11782
- return 'data:image/svg+xml;base64,' + btoa(svgString);
11783
- }
11784
- return null;
11785
- }
11786
- ngOnDestroy() {
11787
- if (this.svg) {
11788
- this.svg.selectAll('*').remove();
11789
- }
11734
+ .delay((d, i) => i * (this.getValue().options.transitionDelayMs ?? this.BAR_TRANSITION_DELAY))
11735
+ .attr('y', (d) => this.yScale(d.value) - 0.5)
11736
+ .attr('height', (d) => this.height - this.yScale(d.value));
11790
11737
  }
11791
11738
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBarChartWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11792
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPBarChartWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "chartEl", first: true, predicate: ["chart"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `<div class="ax-flex ax-justify-center ax-items-center" #chart></div>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11739
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPBarChartWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "chartEl", first: true, predicate: ["chart"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `<div class="axp-bar-chart" #chart></div>`, isInline: true, styles: [".axp-bar-chart{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11793
11740
  }
11794
11741
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBarChartWidgetEditComponent, decorators: [{
11795
11742
  type: Component,
11796
- args: [{
11797
- template: `<div class="ax-flex ax-justify-center ax-items-center" #chart></div>`,
11798
- standalone: true,
11799
- changeDetection: ChangeDetectionStrategy.OnPush,
11800
- }]
11743
+ args: [{ template: `<div class="axp-bar-chart" #chart></div>`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".axp-bar-chart{width:100%;height:100%}\n"] }]
11801
11744
  }] });
11802
11745
 
11803
11746
  var barChartWidgetEdit_component = /*#__PURE__*/Object.freeze({
@@ -11923,6 +11866,289 @@ const AXPDonutChartWidget = {
11923
11866
  },
11924
11867
  };
11925
11868
 
11869
+ class AXPGaugeChartWidgetEditComponent extends AXPWidgetComponent {
11870
+ constructor() {
11871
+ super(...arguments);
11872
+ this.chartContainerEl = viewChild.required('chartContainer');
11873
+ this.chartEl = viewChild.required('chart');
11874
+ this.#af = afterNextRender(async () => {
11875
+ await this.loadD3();
11876
+ this.createChart();
11877
+ });
11878
+ }
11879
+ #af;
11880
+ async loadD3() {
11881
+ try {
11882
+ this.d3 = await import('d3');
11883
+ }
11884
+ catch (error) {
11885
+ console.error('Failed to load D3.js:', error);
11886
+ }
11887
+ }
11888
+ createChart() {
11889
+ const chartValue = this.getValue(); // Get the AXPGaugeChartValue
11890
+ if (!chartValue || !chartValue.data || !chartValue.options) {
11891
+ console.error('Invalid chart data or options');
11892
+ return;
11893
+ }
11894
+ const { data, options } = chartValue;
11895
+ const { width, height, minValue, maxValue, thresholds, label, animationDuration } = options;
11896
+ // Clear any existing chart
11897
+ this.d3.select(this.chartEl().nativeElement).selectAll('*').remove();
11898
+ // Set up SVG dimensions
11899
+ const svg = this.d3.select(this.chartEl().nativeElement).attr('width', width).attr('height', height);
11900
+ // Create a group for the chart
11901
+ const chartGroup = svg.append('g').attr('transform', `translate(${width / 2}, ${height / 2})`);
11902
+ // Draw the background arc
11903
+ this.drawBackgroundArc(chartGroup, width);
11904
+ // Draw the threshold arcs and labels
11905
+ this.drawThresholds(chartGroup, width, minValue, maxValue, thresholds);
11906
+ // Draw the dial/needle
11907
+ this.drawDial(chartGroup, width, data.value, minValue, maxValue);
11908
+ // Add the label
11909
+ this.drawLabel(chartGroup, label);
11910
+ }
11911
+ /**
11912
+ * Draw the background arc.
11913
+ */
11914
+ drawBackgroundArc(chartGroup, width) {
11915
+ const backgroundArc = this.d3
11916
+ .arc()
11917
+ .innerRadius(width * 0.3)
11918
+ .outerRadius(width * 0.4)
11919
+ .startAngle(-Math.PI / 2)
11920
+ .endAngle(Math.PI / 2);
11921
+ chartGroup
11922
+ .append('path')
11923
+ .attr('d', backgroundArc({
11924
+ innerRadius: width * 0.3,
11925
+ outerRadius: width * 0.4,
11926
+ startAngle: -Math.PI / 2,
11927
+ endAngle: Math.PI / 2,
11928
+ }))
11929
+ .attr('fill', '#eee');
11930
+ }
11931
+ /**
11932
+ * Draw the threshold arcs and labels.
11933
+ */
11934
+ drawThresholds(chartGroup, width, minValue, maxValue, thresholds) {
11935
+ const arc = this.d3
11936
+ .arc()
11937
+ .innerRadius(width * 0.3)
11938
+ .outerRadius(width * 0.4);
11939
+ let previousEndAngle = -Math.PI / 2;
11940
+ thresholds.forEach((threshold) => {
11941
+ const range = threshold.range;
11942
+ const endAngle = this.scaleValueToAngle(range, minValue, maxValue);
11943
+ // Draw the threshold arc
11944
+ chartGroup
11945
+ .append('path')
11946
+ .attr('d', arc({
11947
+ innerRadius: width * 0.3,
11948
+ outerRadius: width * 0.4,
11949
+ startAngle: previousEndAngle,
11950
+ endAngle,
11951
+ }))
11952
+ .attr('fill', threshold.color);
11953
+ // Draw the threshold label
11954
+ this.drawThresholdLabel(chartGroup, width, endAngle, range.toString());
11955
+ previousEndAngle = endAngle;
11956
+ });
11957
+ }
11958
+ /**
11959
+ * Draw a threshold label.
11960
+ */
11961
+ drawThresholdLabel(chartGroup, width, angle, text) {
11962
+ const labelRadius = width * 0.45; // Position outside the arc
11963
+ const labelX = labelRadius * Math.cos(angle);
11964
+ const labelY = labelRadius * Math.sin(angle);
11965
+ // Calculate the rotation angle in degrees
11966
+ const rotationAngle = this.radiansToDegrees(angle);
11967
+ chartGroup
11968
+ .append('text')
11969
+ .attr('x', labelX)
11970
+ .attr('y', labelY)
11971
+ .attr('text-anchor', 'middle') // Center the text
11972
+ .attr('dy', '0.35em')
11973
+ .attr('transform', `rotate(${rotationAngle}, ${labelX}, ${labelY})`) // Rotate label
11974
+ .text(text)
11975
+ .style('font-size', '12px')
11976
+ .style('fill', '#000');
11977
+ }
11978
+ /**
11979
+ * Draw the dial/needle.
11980
+ */
11981
+ drawDial(chartGroup, width, value, minValue, maxValue) {
11982
+ const valueAngle = this.scaleValueToAngle(value, minValue, maxValue);
11983
+ chartGroup
11984
+ .append('line')
11985
+ .attr('x1', 0)
11986
+ .attr('y1', 0)
11987
+ .attr('x2', width * 0.35 * Math.cos(valueAngle))
11988
+ .attr('y2', width * 0.35 * Math.sin(valueAngle))
11989
+ .attr('stroke', '#000')
11990
+ .attr('stroke-width', 2);
11991
+ }
11992
+ /**
11993
+ * Draw the chart label.
11994
+ */
11995
+ drawLabel(chartGroup, label) {
11996
+ chartGroup
11997
+ .append('text')
11998
+ .attr('text-anchor', 'middle')
11999
+ .attr('dy', '0.35em')
12000
+ .text(label || '')
12001
+ .style('font-size', '16px')
12002
+ .style('fill', '#000');
12003
+ }
12004
+ /**
12005
+ * Scale a value to an angle for the gauge chart.
12006
+ */
12007
+ scaleValueToAngle(value, min, max) {
12008
+ const scaledValue = (value - min) / (max - min);
12009
+ return -Math.PI / 2 + scaledValue * Math.PI;
12010
+ }
12011
+ /**
12012
+ * Convert radians to degrees.
12013
+ */
12014
+ radiansToDegrees(radians) {
12015
+ return radians * (180 / Math.PI);
12016
+ }
12017
+ ngOnDestroy() {
12018
+ this.d3.select(this.chartEl().nativeElement).selectAll('*').remove();
12019
+ }
12020
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGaugeChartWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12021
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPGaugeChartWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "chartContainerEl", first: true, predicate: ["chartContainer"], descendants: true, isSignal: true }, { propertyName: "chartEl", first: true, predicate: ["chart"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
12022
+ <div class="ax-flex ax-justify-center ax-items-center" #chartContainer>
12023
+ <svg #chart></svg>
12024
+ </div>
12025
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12026
+ }
12027
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGaugeChartWidgetEditComponent, decorators: [{
12028
+ type: Component,
12029
+ args: [{
12030
+ template: `
12031
+ <div class="ax-flex ax-justify-center ax-items-center" #chartContainer>
12032
+ <svg #chart></svg>
12033
+ </div>
12034
+ `,
12035
+ standalone: true,
12036
+ changeDetection: ChangeDetectionStrategy.OnPush,
12037
+ }]
12038
+ }] });
12039
+
12040
+ var gaugeChartWidgetEdit_component = /*#__PURE__*/Object.freeze({
12041
+ __proto__: null,
12042
+ AXPGaugeChartWidgetEditComponent: AXPGaugeChartWidgetEditComponent
12043
+ });
12044
+
12045
+ const AXPGaugeChartWidget = {
12046
+ name: 'gauge-chart',
12047
+ title: 'Gauge Chart Widget',
12048
+ group: AXP_WIDGETS_CHART_GROUP,
12049
+ type: 'chart',
12050
+ icon: 'fa-solid fa-gauge',
12051
+ visible: false,
12052
+ properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
12053
+ components: {
12054
+ edit: {
12055
+ component: () => Promise.resolve().then(function () { return gaugeChartWidgetEdit_component; }).then((c) => c.AXPGaugeChartWidgetEditComponent),
12056
+ },
12057
+ },
12058
+ };
12059
+
12060
+ class AXPStickyNoteWidgetEditComponent extends AXPWidgetComponent {
12061
+ constructor() {
12062
+ super(...arguments);
12063
+ this.value = linkedSignal(() => this.getValue());
12064
+ }
12065
+ valueChange(event) {
12066
+ if (event.isUserInteraction) {
12067
+ this.value.set(event.value);
12068
+ }
12069
+ }
12070
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPStickyNoteWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12071
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPStickyNoteWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
12072
+ <div class="ax-size-full ax-border">
12073
+ <div class="axp-sticky-note-container ax-flex ax-flex-col">
12074
+ <div
12075
+ class="axp-sticky-note-header ax-flex ax-justify-between ax-items-center ax-p-2 ax-border ax-bg-yellow-300 ax-text-gray-500"
12076
+ >
12077
+ <div><i class="fa-solid fa-plus"></i></div>
12078
+ <div class="ax-flex ax-gap-3"><i class="fa-solid fa-ellipsis"></i> <i class="fa-solid fa-xmark"></i></div>
12079
+ </div>
12080
+ <ax-wysiwyg-container
12081
+ class="ax-size-full"
12082
+ placeHolder="enter your note here"
12083
+ look="none"
12084
+ (onValueChanged)="valueChange($event)"
12085
+ [ngModel]="value()"
12086
+ >
12087
+ <ax-wysiwyg-view class="ax-min-h-10"></ax-wysiwyg-view>
12088
+ <ax-toolbar class="ax-min-h-10">
12089
+ <ax-prefix>
12090
+ <ax-wysiwyg-font-style></ax-wysiwyg-font-style>
12091
+ </ax-prefix>
12092
+ </ax-toolbar>
12093
+ </ax-wysiwyg-container>
12094
+ <div class="axp-sticky-note-body ax-bg-yellow-200"></div>
12095
+ <div class="axp-sticky-note-footer ax-p-2"></div>
12096
+ </div>
12097
+ </div>
12098
+ `, isInline: true, styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: AXWysiwygModule }, { kind: "component", type: i2$2.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "placeHolder"], outputs: ["onValueChanged"] }, { kind: "component", type: i2$2.AXWysiwygViewComponent, selector: "ax-wysiwyg-view", inputs: ["class"] }, { kind: "component", type: i2$2.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXToolBarModule }, { kind: "component", type: i3$5.AXToolBarComponent, selector: "ax-toolbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12099
+ }
12100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPStickyNoteWidgetEditComponent, decorators: [{
12101
+ type: Component,
12102
+ args: [{ template: `
12103
+ <div class="ax-size-full ax-border">
12104
+ <div class="axp-sticky-note-container ax-flex ax-flex-col">
12105
+ <div
12106
+ class="axp-sticky-note-header ax-flex ax-justify-between ax-items-center ax-p-2 ax-border ax-bg-yellow-300 ax-text-gray-500"
12107
+ >
12108
+ <div><i class="fa-solid fa-plus"></i></div>
12109
+ <div class="ax-flex ax-gap-3"><i class="fa-solid fa-ellipsis"></i> <i class="fa-solid fa-xmark"></i></div>
12110
+ </div>
12111
+ <ax-wysiwyg-container
12112
+ class="ax-size-full"
12113
+ placeHolder="enter your note here"
12114
+ look="none"
12115
+ (onValueChanged)="valueChange($event)"
12116
+ [ngModel]="value()"
12117
+ >
12118
+ <ax-wysiwyg-view class="ax-min-h-10"></ax-wysiwyg-view>
12119
+ <ax-toolbar class="ax-min-h-10">
12120
+ <ax-prefix>
12121
+ <ax-wysiwyg-font-style></ax-wysiwyg-font-style>
12122
+ </ax-prefix>
12123
+ </ax-toolbar>
12124
+ </ax-wysiwyg-container>
12125
+ <div class="axp-sticky-note-body ax-bg-yellow-200"></div>
12126
+ <div class="axp-sticky-note-footer ax-p-2"></div>
12127
+ </div>
12128
+ </div>
12129
+ `, standalone: true, imports: [AXWysiwygModule, AXDecoratorModule, AXToolBarModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;width:100%;height:100%}\n"] }]
12130
+ }] });
12131
+
12132
+ var stickyNoteWidgetEdit_component = /*#__PURE__*/Object.freeze({
12133
+ __proto__: null,
12134
+ AXPStickyNoteWidgetEditComponent: AXPStickyNoteWidgetEditComponent
12135
+ });
12136
+
12137
+ const AXPStickyNoteWidget = {
12138
+ name: 'sticky-note',
12139
+ title: 'Sticky Note Widget',
12140
+ group: AXP_WIDGETS_CHART_GROUP,
12141
+ type: 'chart',
12142
+ icon: 'fa-solid fa-sticky-note',
12143
+ visible: false,
12144
+ properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
12145
+ components: {
12146
+ edit: {
12147
+ component: () => Promise.resolve().then(function () { return stickyNoteWidgetEdit_component; }).then((c) => c.AXPStickyNoteWidgetEditComponent),
12148
+ },
12149
+ },
12150
+ };
12151
+
11926
12152
  class AXPCronJobWidgetViewComponent extends AXPWidgetComponent {
11927
12153
  constructor() {
11928
12154
  super(...arguments);
@@ -12190,119 +12416,6 @@ const AXPQrcodeWidget = {
12190
12416
  },
12191
12417
  };
12192
12418
 
12193
- class AXPGaugeChartWidgetEditComponent extends AXPWidgetComponent {
12194
- constructor() {
12195
- super(...arguments);
12196
- this.chartEl = viewChild.required('chart');
12197
- this.#af = afterNextRender(async () => {
12198
- await this.loadD3();
12199
- this.createChart();
12200
- });
12201
- }
12202
- #af;
12203
- async loadD3() {
12204
- try {
12205
- this.d3 = await import('d3');
12206
- }
12207
- catch (error) {
12208
- console.error('Failed to load D3.js:', error);
12209
- }
12210
- }
12211
- createChart() {
12212
- const chartElement = this.chartEl().nativeElement;
12213
- this.d3.select(chartElement).selectAll('*').remove();
12214
- const width = this.getValue().options.width;
12215
- const height = this.getValue().options.height;
12216
- const minValue = this.getValue().options.minValue;
12217
- const maxValue = this.getValue().options.maxValue;
12218
- const arcThickness = this.getValue().options.arcThickness;
12219
- const labelOffset = this.getValue().options.labelOffset;
12220
- const radius = Math.min(width, height) / 2;
12221
- const arc = this.d3
12222
- .arc()
12223
- .innerRadius(radius - arcThickness)
12224
- .outerRadius(radius)
12225
- .startAngle(-Math.PI / 2)
12226
- .endAngle(Math.PI / 2);
12227
- const scale = this.d3
12228
- .scaleLinear()
12229
- .domain([minValue, maxValue])
12230
- .range([-Math.PI / 2, Math.PI / 2]);
12231
- const svg = this.d3
12232
- .select(chartElement)
12233
- .append('svg')
12234
- .attr('width', width)
12235
- .attr('height', height)
12236
- .attr('role', 'img')
12237
- .attr('aria-label', 'Gauge chart')
12238
- .attr('viewBox', `0 0 ${width} ${height}`) // Adjusted viewBox
12239
- .style('max-width', '100%')
12240
- .style('height', 'auto')
12241
- .append('g')
12242
- .attr('transform', `translate(${width / 2}, ${height / 2})`); // Center the chart
12243
- const gaugeArc = svg
12244
- .append('g')
12245
- .selectAll('path')
12246
- .data(this.getValue().data)
12247
- .enter()
12248
- .append('path')
12249
- .attr('fill', (d) => d.color || this.getRandomColor())
12250
- .attr('d', arc);
12251
- const label = svg
12252
- .append('text')
12253
- .attr('text-anchor', 'middle')
12254
- .attr('font-size', '16px')
12255
- .attr('y', labelOffset)
12256
- .text(`${this.getValue().data[0].value}`);
12257
- const pointer = svg
12258
- .append('line')
12259
- .attr('x1', 0)
12260
- .attr('y1', 0)
12261
- .attr('x2', 0)
12262
- .attr('y2', -radius + arcThickness / 2)
12263
- .attr('stroke', 'black')
12264
- .attr('stroke-width', 2)
12265
- .attr('transform', `rotate(${scale(this.getValue().data[0].value) * (180 / Math.PI)})`);
12266
- }
12267
- getRandomColor() {
12268
- // Generate a random hex color
12269
- return `#${Math.floor(Math.random() * 16777215).toString(16)}`;
12270
- }
12271
- ngOnDestroy() {
12272
- this.d3.select(this.chartEl().nativeElement).selectAll('*').remove();
12273
- }
12274
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGaugeChartWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12275
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPGaugeChartWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "chartEl", first: true, predicate: ["chart"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: ` <div class="ax-flex ax-justify-center ax-items-center" #chart></div>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12276
- }
12277
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGaugeChartWidgetEditComponent, decorators: [{
12278
- type: Component,
12279
- args: [{
12280
- template: ` <div class="ax-flex ax-justify-center ax-items-center" #chart></div>`,
12281
- standalone: true,
12282
- changeDetection: ChangeDetectionStrategy.OnPush,
12283
- }]
12284
- }] });
12285
-
12286
- var gaugeChartWidgetEdit_component = /*#__PURE__*/Object.freeze({
12287
- __proto__: null,
12288
- AXPGaugeChartWidgetEditComponent: AXPGaugeChartWidgetEditComponent
12289
- });
12290
-
12291
- const AXPGaugeChartWidget = {
12292
- name: 'gauge-chart',
12293
- title: 'Gauge Chart Widget',
12294
- group: AXP_WIDGETS_CHART_GROUP,
12295
- type: 'chart',
12296
- icon: 'fa-solid fa-gauge',
12297
- visible: false,
12298
- properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
12299
- components: {
12300
- edit: {
12301
- component: () => Promise.resolve().then(function () { return gaugeChartWidgetEdit_component; }).then((c) => c.AXPGaugeChartWidgetEditComponent),
12302
- },
12303
- },
12304
- };
12305
-
12306
12419
  class AXPColorBoxWidgetViewComponent extends AXPWidgetComponent {
12307
12420
  constructor() {
12308
12421
  super(...arguments);
@@ -12508,11 +12621,11 @@ const AXPColorBoxWidget = {
12508
12621
  },
12509
12622
  };
12510
12623
 
12511
- class AXPTableEditorWidgetColumnComponent extends AXPColumnWidgetComponent {
12512
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTableEditorWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12513
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTableEditorWidgetColumnComponent, isStandalone: true, selector: "axp-tabular-editor-widget-column", inputs: { rawValue: "rawValue" }, usesInheritance: true, ngImport: i0, template: `{{ rawValue }}`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12624
+ class AXPTabularDataWidgetColumnComponent extends AXPColumnWidgetComponent {
12625
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTabularDataWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12626
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTabularDataWidgetColumnComponent, isStandalone: true, selector: "axp-tabular-editor-widget-column", inputs: { rawValue: "rawValue" }, usesInheritance: true, ngImport: i0, template: `{{ rawValue }}`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12514
12627
  }
12515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTableEditorWidgetColumnComponent, decorators: [{
12628
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTabularDataWidgetColumnComponent, decorators: [{
12516
12629
  type: Component,
12517
12630
  args: [{
12518
12631
  selector: 'axp-tabular-editor-widget-column',
@@ -12523,12 +12636,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
12523
12636
  }]
12524
12637
  }] });
12525
12638
 
12526
- var tableWidgetColumn_component = /*#__PURE__*/Object.freeze({
12639
+ var tabularDataColumn_component = /*#__PURE__*/Object.freeze({
12527
12640
  __proto__: null,
12528
- AXPTableEditorWidgetColumnComponent: AXPTableEditorWidgetColumnComponent
12641
+ AXPTabularDataWidgetColumnComponent: AXPTabularDataWidgetColumnComponent
12529
12642
  });
12530
12643
 
12531
- class AXPTabularDataEditorWidgetEditComponent extends AXPWidgetComponent {
12644
+ class AXPTabularDataWidgetEditComponent extends AXPWidgetComponent {
12532
12645
  constructor() {
12533
12646
  super(...arguments);
12534
12647
  this.columns = computed(() => this.options()['columns']);
@@ -12553,10 +12666,10 @@ class AXPTabularDataEditorWidgetEditComponent extends AXPWidgetComponent {
12553
12666
  });
12554
12667
  this.setValue(popupData.data?.context);
12555
12668
  }
12556
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTabularDataEditorWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12557
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTabularDataEditorWidgetEditComponent, isStandalone: true, selector: "axp-tabular-data-editor-widget", usesInheritance: true, ngImport: i0, template: ` <span class="ax-truncate ax-underline ax-cursor-pointer" (click)="openPopup()"> Click To Edit</span> `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXDataTableModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12669
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTabularDataWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12670
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTabularDataWidgetEditComponent, isStandalone: true, selector: "axp-tabular-data-editor-widget", usesInheritance: true, ngImport: i0, template: ` <span class="ax-truncate ax-underline ax-cursor-pointer" (click)="openPopup()"> Click To Edit</span> `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXDataTableModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12558
12671
  }
12559
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTabularDataEditorWidgetEditComponent, decorators: [{
12672
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTabularDataWidgetEditComponent, decorators: [{
12560
12673
  type: Component,
12561
12674
  args: [{
12562
12675
  selector: 'axp-tabular-data-editor-widget',
@@ -12579,14 +12692,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
12579
12692
 
12580
12693
  var tabularDataWidgetEdit_component = /*#__PURE__*/Object.freeze({
12581
12694
  __proto__: null,
12582
- AXPTabularDataEditorWidgetEditComponent: AXPTabularDataEditorWidgetEditComponent
12695
+ AXPTabularDataWidgetEditComponent: AXPTabularDataWidgetEditComponent
12583
12696
  });
12584
12697
 
12585
- class AXPTextBoxWidgetFilterComponent extends AXPWidgetComponent {
12586
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12587
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTextBoxWidgetFilterComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12698
+ class AXPTabulaDataWidgetFilterComponent extends AXPWidgetComponent {
12699
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTabulaDataWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12700
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTabulaDataWidgetFilterComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12588
12701
  }
12589
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetFilterComponent, decorators: [{
12702
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTabulaDataWidgetFilterComponent, decorators: [{
12590
12703
  type: Component,
12591
12704
  args: [{
12592
12705
  template: ``,
@@ -12596,16 +12709,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
12596
12709
  }]
12597
12710
  }] });
12598
12711
 
12599
- var tableWidgetFilter_component = /*#__PURE__*/Object.freeze({
12712
+ var tabularDataFilter_component = /*#__PURE__*/Object.freeze({
12600
12713
  __proto__: null,
12601
- AXPTextBoxWidgetFilterComponent: AXPTextBoxWidgetFilterComponent
12714
+ AXPTabulaDataWidgetFilterComponent: AXPTabulaDataWidgetFilterComponent
12602
12715
  });
12603
12716
 
12604
- class AXPTableEditorWidgetPrintComponent extends AXPWidgetComponent {
12605
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTableEditorWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12606
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTableEditorWidgetPrintComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12717
+ class AXPTabularDataWidgetPrintComponent extends AXPWidgetComponent {
12718
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTabularDataWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12719
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTabularDataWidgetPrintComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12607
12720
  }
12608
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTableEditorWidgetPrintComponent, decorators: [{
12721
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTabularDataWidgetPrintComponent, decorators: [{
12609
12722
  type: Component,
12610
12723
  args: [{
12611
12724
  template: ``,
@@ -12615,9 +12728,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
12615
12728
  }]
12616
12729
  }] });
12617
12730
 
12618
- var tableWidgetPrint_component = /*#__PURE__*/Object.freeze({
12731
+ var tabularDataWidgetPrint_component = /*#__PURE__*/Object.freeze({
12619
12732
  __proto__: null,
12620
- AXPTableEditorWidgetPrintComponent: AXPTableEditorWidgetPrintComponent
12733
+ AXPTabularDataWidgetPrintComponent: AXPTabularDataWidgetPrintComponent
12621
12734
  });
12622
12735
 
12623
12736
  class AXPTabularDataEditorWidgetViewComponent extends AXPWidgetComponent {
@@ -12683,19 +12796,19 @@ const AXPTableEditorWidget = {
12683
12796
  component: () => Promise.resolve().then(function () { return tabularDataWidgetView_component; }).then((c) => c.AXPTabularDataEditorWidgetViewComponent),
12684
12797
  },
12685
12798
  edit: {
12686
- component: () => Promise.resolve().then(function () { return tabularDataWidgetEdit_component; }).then((c) => c.AXPTabularDataEditorWidgetEditComponent),
12799
+ component: () => Promise.resolve().then(function () { return tabularDataWidgetEdit_component; }).then((c) => c.AXPTabularDataWidgetEditComponent),
12687
12800
  },
12688
12801
  filter: {
12689
- component: () => Promise.resolve().then(function () { return tableWidgetFilter_component; }).then((c) => c.AXPTextBoxWidgetFilterComponent),
12802
+ component: () => Promise.resolve().then(function () { return tabularDataFilter_component; }).then((c) => c.AXPTabulaDataWidgetFilterComponent),
12690
12803
  },
12691
12804
  column: {
12692
- component: () => Promise.resolve().then(function () { return tableWidgetColumn_component; }).then((c) => c.AXPTableEditorWidgetColumnComponent),
12805
+ component: () => Promise.resolve().then(function () { return tabularDataColumn_component; }).then((c) => c.AXPTabularDataWidgetColumnComponent),
12693
12806
  },
12694
12807
  print: {
12695
- component: () => Promise.resolve().then(function () { return tableWidgetPrint_component; }).then((c) => c.AXPTableEditorWidgetPrintComponent),
12808
+ component: () => Promise.resolve().then(function () { return tabularDataWidgetPrint_component; }).then((c) => c.AXPTabularDataWidgetPrintComponent),
12696
12809
  },
12697
12810
  designer: {
12698
- component: () => Promise.resolve().then(function () { return tabularDataWidgetEdit_component; }).then((c) => c.AXPTabularDataEditorWidgetEditComponent),
12811
+ component: () => Promise.resolve().then(function () { return tabularDataWidgetEdit_component; }).then((c) => c.AXPTabularDataWidgetEditComponent),
12699
12812
  },
12700
12813
  },
12701
12814
  visible: false
@@ -13583,7 +13696,6 @@ const AXPFormFieldWidget = {
13583
13696
  icon: 'fa-solid fa-pen-field',
13584
13697
  properties: [
13585
13698
  AXP_NAME_PROPERTY,
13586
- AXP_DATA_PATH_PROPERTY,
13587
13699
  AXP_LABEL_PROPERTY
13588
13700
  ],
13589
13701
  components: {
@@ -14383,6 +14495,7 @@ class AXPWidgetsModule {
14383
14495
  AXPDonutChartWidget,
14384
14496
  AXPBarChartWidget,
14385
14497
  AXPGaugeChartWidget,
14498
+ AXPStickyNoteWidget,
14386
14499
  ],
14387
14500
  })] }); }
14388
14501
  }
@@ -14453,6 +14566,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
14453
14566
  AXPDonutChartWidget,
14454
14567
  AXPBarChartWidget,
14455
14568
  AXPGaugeChartWidget,
14569
+ AXPStickyNoteWidget,
14456
14570
  ],
14457
14571
  }),
14458
14572
  ],
@@ -14466,5 +14580,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
14466
14580
  * Generated bundle index. Do not edit.
14467
14581
  */
14468
14582
 
14469
- export { AXPAdvancedGridItemWidget, AXPAdvancedGridItemWidgetDesignerComponent, AXPAdvancedGridItemWidgetPrintComponent, AXPAdvancedGridItemWidgetViewComponent, AXPAdvancedGridOptionsWidget, AXPAdvancedGridOptionsWidgetEditComponent, AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetPrintComponent, AXPAvatarWidgetViewComponent, AXPBarChartWidget, AXPBarChartWidgetEditComponent, AXPBetweenExpressionValidationWidget, AXPBetweenValidationWidgetEditComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetViewComponent, AXPCallbackValidationWidget, AXPCallbackValidationWidgetEditComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetEditComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetPrintComponent, AXPContactWidgetViewComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetFilterComponent, AXPDateTimeBoxWidgetPrintComponent, AXPDateTimeBoxWidgetViewComponent, AXPDonutChartWidget, AXPDonutChartWidgetEditComponent, AXPEmailBoxWidget, AXPEmailBoxWidgetColumnComponent, AXPEmailBoxWidgetEditComponent, AXPEmailBoxWidgetFilterComponent, AXPEmailBoxWidgetPrintComponent, AXPEmailBoxWidgetViewComponent, AXPEqualValidationWidget, AXPEqualValidationWidgetEditComponent, AXPFileBoxWidget, AXPFileBoxWidgetColumnComponent, AXPFileBoxWidgetEditComponent, AXPFileBoxWidgetFilterComponent, AXPFileBoxWidgetPrintComponent, AXPFileBoxWidgetViewComponent, AXPFileManagementService, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPGalleryWidget, AXPGalleryWidgetColumnComponent, AXPGalleryWidgetEditComponent, AXPGalleryWidgetFilterComponent, AXPGalleryWidgetPrintComponent, AXPGalleryWidgetViewComponent, AXPGreaterThanExpressionValidationWidget, AXPGreaterThanValidationWidgetEditComponent, AXPGridOptionsWidget, AXPGridOptionsWidgetEditComponent, AXPLargeTextWidget, AXPLargeTextWidgetColumnComponent, AXPLargeTextWidgetEditComponent, AXPLargeTextWidgetFilterComponent, AXPLargeTextWidgetPrintComponent, AXPLargeTextWidgetViewComponent, AXPLessThanExpressionValidationWidget, AXPLessThanValidationWidgetEditComponent, AXPLinkWidget, AXPLinkWidgetColumnComponent, AXPLinkWidgetEditComponent, AXPLinkWidgetFilterComponent, AXPLinkWidgetPrintComponent, AXPLinkWidgetViewComponent, AXPMapBoxWidget, AXPMapBoxWidgetEditComponent, AXPMapBoxWidgetViewComponent, AXPMaxLengthExpressionValidationWidget, AXPMaxLengthValidationWidgetEditComponent, AXPMinLengthExpressionValidationWidget, AXPMinLengthValidationWidgetEditComponent, AXPNumberBoxWidget, AXPNumberBoxWidgetColumnComponent, AXPNumberBoxWidgetEditComponent, AXPNumberBoxWidgetFilterComponent, AXPNumberBoxWidgetPrintComponent, AXPNumberBoxWidgetViewComponent, AXPPageWidget, AXPPageWidgetViewComponent, AXPPasswordBoxWidget, AXPPasswordBoxWidgetColumnComponent, AXPPasswordBoxWidgetEditComponent, AXPPasswordBoxWidgetFilterComponent, AXPPasswordBoxWidgetPrintComponent, AXPPasswordBoxWidgetViewComponent, AXPPhoneBoxWidget, AXPPhoneBoxWidgetColumnComponent, AXPPhoneBoxWidgetEditComponent, AXPPhoneBoxWidgetFilterComponent, AXPPhoneBoxWidgetPrintComponent, AXPPhoneBoxWidgetViewComponent, AXPPropertyEditorHelper, AXPRegularExpressionValidationWidget, AXPRegularExpressionValidationWidgetEditComponent, AXPRepeaterWidget, AXPRepeaterWidgetDesignerComponent, AXPRepeaterWidgetEditComponent, AXPRepeaterWidgetPrintComponent, AXPRepeaterWidgetViewComponent, AXPRequiredValidationWidget, AXPRequiredValidationWidgetEditComponent, AXPRichTextWidget, AXPRichTextWidgetColumnComponent, AXPRichTextWidgetEditComponent, AXPRichTextWidgetFilterComponent, AXPRichTextWidgetPrintComponent, AXPRichTextWidgetViewComponent, AXPSelectBoxWidget, AXPSelectBoxWidgetColumnComponent, AXPSelectBoxWidgetEditComponent, AXPSelectBoxWidgetFilterComponent, AXPSelectBoxWidgetPrintComponent, AXPSelectBoxWidgetViewComponent, AXPSelectionListWidget, AXPSelectionListWidgetColumnComponent, AXPSelectionListWidgetDesignerComponent, AXPSelectionListWidgetEditComponent, AXPSelectionListWidgetFilterComponent, AXPSelectionListWidgetPrintComponent, AXPSelectionListWidgetViewComponent, AXPSignatureWidget, AXPSignatureWidgetColumnComponent, AXPSignatureWidgetEditComponent, AXPSignatureWidgetFilterComponent, AXPSignatureWidgetPrintComponent, AXPSignatureWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetFilterComponent$1 as AXPTextBoxWidgetFilterComponent, AXPTextBoxWidgetPrintComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetFilterComponent, AXPToggleWidgetPrintComponent, AXPToggleWidgetViewComponent, AXPWidgetsModule, AXP_ALLOW_MULTIPLE_PROPERTY, AXP_ALLOW_SEARCH_PROPERTY, AXP_BEHAVIOR_PROPERTY_GROUP, AXP_BETWEEN_VALIDATION_PROPERTY, AXP_BG_COLOR_PROPERTY, AXP_BOX_MODEL_PROPERTY_GROUP, AXP_CALLBACK_VALIDATION_PROPERTY, AXP_COLOR_PROPERTY, AXP_CONTENT_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DATA_SOURCE_PROPERTIES, AXP_DATA_SOURCE_PROPERTY, AXP_DATA_SOURCE_TEXT_FIELD, AXP_DATA_SOURCE_VALUE_FIELD, AXP_DATE_FORMAT_PROPERTY, AXP_DESCRIPTION_PROPERTY, AXP_DIRECTION_PROPERTY, AXP_DISABLED_PROPERTY, AXP_DOWNLOADABLE_PROPERTY, AXP_EQUAL_VALIDATION_PROPERTY, AXP_FALSY_TEXT_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_Flex_Box_Align_Options, AXP_Flex_Box_Alignments, AXP_Flex_Box_Justify_Options, AXP_GREATER_THAN_VALIDATION_PROPERTY, AXP_Grid_Box_Align_Items_Options, AXP_Grid_Box_Alignments, AXP_Grid_Box_Justify_Items_Options, AXP_HAS_CLEAR_BUTTON_PROPERTY, AXP_HAS_COPY_ICON_PROPERTY, AXP_HAS_EYE_ICON_PROPERTY, AXP_HAS_ICON_PROPERTY, AXP_HAS_LABEL_PROPERTY, AXP_ICON_PROPERTY, AXP_IS_LOADING_PROPERTY, AXP_LABEL_PROPERTY, AXP_LAYOUT_ADVANCED_GRID_PROPERTY, AXP_LAYOUT_ALIGN_CONTENT_PROPERTY, AXP_LAYOUT_BORDER_PROPERTY, AXP_LAYOUT_COLUMNS_PROPERTY, AXP_LAYOUT_COL_END_PROPERTY, AXP_LAYOUT_COL_SPAN_PROPERTY, AXP_LAYOUT_COL_START_PROPERTY, AXP_LAYOUT_FLEX_ALIGN_PROPERTY, AXP_LAYOUT_FLEX_DIRECTION_PROPERTY, AXP_LAYOUT_FLEX_JUSTIFY_PROPERTY, AXP_LAYOUT_FLEX_PROPERTIES, AXP_LAYOUT_FLEX_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY_GROUP, AXP_LAYOUT_FLEX_WRAP_PROPERTY, AXP_LAYOUT_GAP_PROPERTY, AXP_LAYOUT_GRID_ITEM_PROPERTIES, AXP_LAYOUT_GRID_PROPERTIES, AXP_LAYOUT_GRID_PROPERTY, AXP_LAYOUT_GRID_PROPERTY_GROUP, AXP_LAYOUT_GRID_ROW_PROPERTIES, AXP_LAYOUT_ROWS_PROPERTY, AXP_LAYOUT_SPACING_PROPERTY, AXP_LESS_THAN_VALIDATION_PROPERTY, AXP_MAX_LENGTH_VALIDATION_PROPERTY, AXP_MIN_LENGTH_VALIDATION_PROPERTY, AXP_NAME_PROPERTY, AXP_PLACEHOLDER_PROPERTY, AXP_READONLY_PROPERTY, AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY, AXP_REQUIRED_VALIDATION_PROPERTY, AXP_STYLE_COLOR_PROPERTY, AXP_STYLE_LOOK_PROPERTY, AXP_STYLING_PROPERTY_GROUP, AXP_TABLE_COLUMN_HEIGHT_PROPERTY, AXP_TABLE_COLUMN_WIDTH_PROPERTY, AXP_TEXT_FIELD_PROPERTY, AXP_TEXT_PROPERTY, AXP_THEME_PROPERTY, AXP_TITLE_PROPERTY, AXP_TRULY_TEXT_PROPERTY, AXP_VALIDATION_PROPERTY_GROUP, AXP_VALUE_FIELD_PROPERTY, AXP_WIDGET_PROPERTY_GROUP, AXP_default_Border_Box_Units, AXP_default_Border_Box_Value, AXP_default_Spacing_Box_Units, AXP_default_Spacing_Box_Value, DEFAULT_STRATEGY_CONFIG, STRATEGY_CONFIG_TOKEN, booleanDefaultProperty, findNonEmptyBreakpoints, largeTextDefaultProperty, numberDefaultProperty, numberMaxValueProperty, numberMinValueProperty, plainTextDefaultProperty };
14583
+ export { AXPAdvancedGridItemWidget, AXPAdvancedGridItemWidgetDesignerComponent, AXPAdvancedGridItemWidgetPrintComponent, AXPAdvancedGridItemWidgetViewComponent, AXPAdvancedGridOptionsWidget, AXPAdvancedGridOptionsWidgetEditComponent, AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetPrintComponent, AXPAvatarWidgetViewComponent, AXPBarChartWidget, AXPBarChartWidgetEditComponent, AXPBetweenExpressionValidationWidget, AXPBetweenValidationWidgetEditComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetViewComponent, AXPCallbackValidationWidget, AXPCallbackValidationWidgetEditComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetEditComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetPrintComponent, AXPContactWidgetViewComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetFilterComponent, AXPDateTimeBoxWidgetPrintComponent, AXPDateTimeBoxWidgetViewComponent, AXPDonutChartWidget, AXPDonutChartWidgetEditComponent, AXPEmailBoxWidget, AXPEmailBoxWidgetColumnComponent, AXPEmailBoxWidgetEditComponent, AXPEmailBoxWidgetFilterComponent, AXPEmailBoxWidgetPrintComponent, AXPEmailBoxWidgetViewComponent, AXPEqualValidationWidget, AXPEqualValidationWidgetEditComponent, AXPFileBoxWidget, AXPFileBoxWidgetColumnComponent, AXPFileBoxWidgetEditComponent, AXPFileBoxWidgetFilterComponent, AXPFileBoxWidgetPrintComponent, AXPFileBoxWidgetViewComponent, AXPFileManagementService, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPGalleryWidget, AXPGalleryWidgetColumnComponent, AXPGalleryWidgetEditComponent, AXPGalleryWidgetFilterComponent, AXPGalleryWidgetPrintComponent, AXPGalleryWidgetViewComponent, AXPGaugeChartWidget, AXPGaugeChartWidgetEditComponent, AXPGreaterThanExpressionValidationWidget, AXPGreaterThanValidationWidgetEditComponent, AXPGridOptionsWidget, AXPGridOptionsWidgetEditComponent, AXPLargeTextWidget, AXPLargeTextWidgetColumnComponent, AXPLargeTextWidgetEditComponent, AXPLargeTextWidgetFilterComponent, AXPLargeTextWidgetPrintComponent, AXPLargeTextWidgetViewComponent, AXPLessThanExpressionValidationWidget, AXPLessThanValidationWidgetEditComponent, AXPLinkWidget, AXPLinkWidgetColumnComponent, AXPLinkWidgetEditComponent, AXPLinkWidgetFilterComponent, AXPLinkWidgetPrintComponent, AXPLinkWidgetViewComponent, AXPMapBoxWidget, AXPMapBoxWidgetEditComponent, AXPMapBoxWidgetViewComponent, AXPMaxLengthExpressionValidationWidget, AXPMaxLengthValidationWidgetEditComponent, AXPMinLengthExpressionValidationWidget, AXPMinLengthValidationWidgetEditComponent, AXPNumberBoxWidget, AXPNumberBoxWidgetColumnComponent, AXPNumberBoxWidgetEditComponent, AXPNumberBoxWidgetFilterComponent, AXPNumberBoxWidgetPrintComponent, AXPNumberBoxWidgetViewComponent, AXPPageWidget, AXPPageWidgetViewComponent, AXPPasswordBoxWidget, AXPPasswordBoxWidgetColumnComponent, AXPPasswordBoxWidgetEditComponent, AXPPasswordBoxWidgetFilterComponent, AXPPasswordBoxWidgetPrintComponent, AXPPasswordBoxWidgetViewComponent, AXPPhoneBoxWidget, AXPPhoneBoxWidgetColumnComponent, AXPPhoneBoxWidgetEditComponent, AXPPhoneBoxWidgetFilterComponent, AXPPhoneBoxWidgetPrintComponent, AXPPhoneBoxWidgetViewComponent, AXPPropertyEditorHelper, AXPRegularExpressionValidationWidget, AXPRegularExpressionValidationWidgetEditComponent, AXPRepeaterWidget, AXPRepeaterWidgetDesignerComponent, AXPRepeaterWidgetEditComponent, AXPRepeaterWidgetPrintComponent, AXPRepeaterWidgetViewComponent, AXPRequiredValidationWidget, AXPRequiredValidationWidgetEditComponent, AXPRichTextWidget, AXPRichTextWidgetColumnComponent, AXPRichTextWidgetEditComponent, AXPRichTextWidgetFilterComponent, AXPRichTextWidgetPrintComponent, AXPRichTextWidgetViewComponent, AXPSelectBoxWidget, AXPSelectBoxWidgetColumnComponent, AXPSelectBoxWidgetEditComponent, AXPSelectBoxWidgetFilterComponent, AXPSelectBoxWidgetPrintComponent, AXPSelectBoxWidgetViewComponent, AXPSelectionListWidget, AXPSelectionListWidgetColumnComponent, AXPSelectionListWidgetDesignerComponent, AXPSelectionListWidgetEditComponent, AXPSelectionListWidgetFilterComponent, AXPSelectionListWidgetPrintComponent, AXPSelectionListWidgetViewComponent, AXPSignatureWidget, AXPSignatureWidgetColumnComponent, AXPSignatureWidgetEditComponent, AXPSignatureWidgetFilterComponent, AXPSignatureWidgetPrintComponent, AXPSignatureWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPStickyNoteWidget, AXPStickyNoteWidgetEditComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetFilterComponent, AXPTextBoxWidgetPrintComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetFilterComponent, AXPToggleWidgetPrintComponent, AXPToggleWidgetViewComponent, AXPWidgetsModule, AXP_ALLOW_MULTIPLE_PROPERTY, AXP_ALLOW_SEARCH_PROPERTY, AXP_BEHAVIOR_PROPERTY_GROUP, AXP_BETWEEN_VALIDATION_PROPERTY, AXP_BG_COLOR_PROPERTY, AXP_BOX_MODEL_PROPERTY_GROUP, AXP_CALLBACK_VALIDATION_PROPERTY, AXP_COLOR_PROPERTY, AXP_CONTENT_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DATA_SOURCE_PROPERTIES, AXP_DATA_SOURCE_PROPERTY, AXP_DATA_SOURCE_TEXT_FIELD, AXP_DATA_SOURCE_VALUE_FIELD, AXP_DATE_FORMAT_PROPERTY, AXP_DESCRIPTION_PROPERTY, AXP_DIRECTION_PROPERTY, AXP_DISABLED_PROPERTY, AXP_DOWNLOADABLE_PROPERTY, AXP_EQUAL_VALIDATION_PROPERTY, AXP_FALSY_TEXT_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_Flex_Box_Align_Options, AXP_Flex_Box_Alignments, AXP_Flex_Box_Justify_Options, AXP_GREATER_THAN_VALIDATION_PROPERTY, AXP_Grid_Box_Align_Items_Options, AXP_Grid_Box_Alignments, AXP_Grid_Box_Justify_Items_Options, AXP_HAS_CLEAR_BUTTON_PROPERTY, AXP_HAS_COPY_ICON_PROPERTY, AXP_HAS_EYE_ICON_PROPERTY, AXP_HAS_ICON_PROPERTY, AXP_HAS_LABEL_PROPERTY, AXP_ICON_PROPERTY, AXP_IS_LOADING_PROPERTY, AXP_LABEL_PROPERTY, AXP_LAYOUT_ADVANCED_GRID_PROPERTY, AXP_LAYOUT_ALIGN_CONTENT_PROPERTY, AXP_LAYOUT_BORDER_PROPERTY, AXP_LAYOUT_COLUMNS_PROPERTY, AXP_LAYOUT_COL_END_PROPERTY, AXP_LAYOUT_COL_SPAN_PROPERTY, AXP_LAYOUT_COL_START_PROPERTY, AXP_LAYOUT_FLEX_ALIGN_PROPERTY, AXP_LAYOUT_FLEX_DIRECTION_PROPERTY, AXP_LAYOUT_FLEX_JUSTIFY_PROPERTY, AXP_LAYOUT_FLEX_PROPERTIES, AXP_LAYOUT_FLEX_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY_GROUP, AXP_LAYOUT_FLEX_WRAP_PROPERTY, AXP_LAYOUT_GAP_PROPERTY, AXP_LAYOUT_GRID_ITEM_PROPERTIES, AXP_LAYOUT_GRID_PROPERTIES, AXP_LAYOUT_GRID_PROPERTY, AXP_LAYOUT_GRID_PROPERTY_GROUP, AXP_LAYOUT_GRID_ROW_PROPERTIES, AXP_LAYOUT_ROWS_PROPERTY, AXP_LAYOUT_SPACING_PROPERTY, AXP_LESS_THAN_VALIDATION_PROPERTY, AXP_MAX_LENGTH_VALIDATION_PROPERTY, AXP_MIN_LENGTH_VALIDATION_PROPERTY, AXP_NAME_PROPERTY, AXP_PLACEHOLDER_PROPERTY, AXP_READONLY_PROPERTY, AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY, AXP_REQUIRED_VALIDATION_PROPERTY, AXP_STYLE_COLOR_PROPERTY, AXP_STYLE_LOOK_PROPERTY, AXP_STYLING_PROPERTY_GROUP, AXP_TABLE_COLUMN_HEIGHT_PROPERTY, AXP_TABLE_COLUMN_WIDTH_PROPERTY, AXP_TEXT_FIELD_PROPERTY, AXP_TEXT_PROPERTY, AXP_THEME_PROPERTY, AXP_TITLE_PROPERTY, AXP_TRULY_TEXT_PROPERTY, AXP_VALIDATION_PROPERTY_GROUP, AXP_VALUE_FIELD_PROPERTY, AXP_WIDGET_PROPERTY_GROUP, AXP_default_Border_Box_Units, AXP_default_Border_Box_Value, AXP_default_Spacing_Box_Units, AXP_default_Spacing_Box_Value, DEFAULT_STRATEGY_CONFIG, STRATEGY_CONFIG_TOKEN, booleanDefaultProperty, findNonEmptyBreakpoints, largeTextDefaultProperty, numberDefaultProperty, numberMaxValueProperty, numberMinValueProperty, plainTextDefaultProperty };
14470
14584
  //# sourceMappingURL=acorex-platform-widgets.mjs.map