@acorex/platform 19.3.0-next.2 → 19.3.0-next.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth/lib/application/application.types.d.ts +1 -1
- package/auth/lib/tenant/tenant.types.d.ts +1 -1
- package/common/index.d.ts +1 -0
- package/common/lib/app/application.types.d.ts +1 -1
- package/common/lib/app/index.d.ts +1 -0
- package/common/lib/configs/app.config.d.ts +1 -1
- package/common/lib/home-page/home-page-settings.key.d.ts +3 -0
- package/common/lib/home-page/home-page-settings.provider.d.ts +12 -0
- package/common/lib/home-page/home-page.module.d.ts +6 -0
- package/common/lib/home-page/home-page.routes.d.ts +2 -0
- package/common/lib/home-page/home-page.service.d.ts +24 -0
- package/common/lib/home-page/home-page.types.d.ts +9 -0
- package/common/lib/home-page/index.d.ts +4 -0
- package/common/lib/layout/logo/index.d.ts +0 -1
- package/common/lib/settings/setting.builder.d.ts +1 -1
- package/core/lib/data/data-generator.d.ts +2 -1
- package/core/lib/types/index.d.ts +4 -3
- package/core/lib/utils/object-util.d.ts +1 -0
- package/fesm2022/acorex-platform-auth.mjs +0 -1
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-common.mjs +1556 -1393
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +173 -113
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +2 -0
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +25 -37
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-BqMlSX6b.mjs → acorex-platform-themes-default-entity-master-list-view.component-CuyWAi6X.mjs} +31 -20
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CuyWAi6X.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +95 -47
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-setting.provider-CXiRmniv.mjs → acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs} +1 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +2 -2
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +571 -41
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/layout/builder/lib/builder/widget-map.d.ts +2 -0
- package/layout/builder/lib/builder/widget.types.d.ts +2 -2
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +2 -1
- package/package.json +1 -1
- package/themes/default/lib/layouts/base/base-page.component.d.ts +9 -4
- package/themes/default/lib/layouts/base/base-page.types.d.ts +3 -2
- package/themes/default/lib/layouts/base/page-layout/page-layout.component.d.ts +9 -2
- package/themes/default/lib/layouts/entity-layouts/entity-category/entity-category.component.d.ts +2 -1
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +1 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/entity-master-toolbar-view.component.d.ts +62 -0
- package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +3 -3
- package/themes/default/lib/layouts/root-layout/horizontal/horizontal-layout.component.d.ts +3 -3
- package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +4 -1
- package/themes/default/lib/layouts/root-layout/vertical/vertical-layout.component.d.ts +3 -3
- package/themes/default/lib/layouts/view-layouts/layout-detail-view/layout-detail-view.component.d.ts +1 -1
- package/themes/shared/index.d.ts +1 -1
- package/widgets/lib/widgets/charts/notification/index.d.ts +3 -0
- package/widgets/lib/widgets/charts/notification/notification-widget.component.d.ts +54 -0
- package/widgets/lib/widgets/charts/notification/notification-widget.config.d.ts +10 -0
- package/widgets/lib/widgets/charts/notification/notification.type.d.ts +47 -0
- package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget.component.d.ts +3 -3
- package/widgets/lib/widgets/charts/tasklist/index.d.ts +3 -0
- package/widgets/lib/widgets/charts/tasklist/tasklist-widget.component.d.ts +34 -0
- package/widgets/lib/widgets/charts/tasklist/tasklist-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/charts/tasklist/tasklist.type.d.ts +36 -0
- package/widgets/lib/widgets/index.d.ts +3 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BqMlSX6b.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-setting.provider-CXiRmniv.mjs.map +0 -1
- /package/{common/lib/layout/logo → core/lib/types}/logo.types.d.ts +0 -0
- /package/themes/shared/lib/{setting.keys.d.ts → settings.keys.d.ts} +0 -0
- /package/themes/shared/lib/{setting.provider.d.ts → settings.provider.d.ts} +0 -0
|
@@ -10,7 +10,7 @@ import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
|
10
10
|
import * as i2 from '@acorex/components/loading';
|
|
11
11
|
import { AXLoadingModule } from '@acorex/components/loading';
|
|
12
12
|
import * as i1$1 from '@angular/common';
|
|
13
|
-
import { CommonModule } from '@angular/common';
|
|
13
|
+
import { CommonModule, DatePipe } from '@angular/common';
|
|
14
14
|
import * as i0 from '@angular/core';
|
|
15
15
|
import { computed, EventEmitter, ChangeDetectionStrategy, Component, inject, afterNextRender, HostBinding, signal, ViewEncapsulation, InjectionToken, effect, ViewChild, untracked, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectorRef, viewChild, ElementRef, afterRender, NgZone, model, input, linkedSignal, Injector, runInInjectionContext, Directive, output, HostListener, Injectable, NgModule, importProvidersFrom } from '@angular/core';
|
|
16
16
|
import * as i1 from '@acorex/components/check-box';
|
|
@@ -44,7 +44,7 @@ import { AXNumberBoxModule } from '@acorex/components/number-box';
|
|
|
44
44
|
import * as i3$3 from '@acorex/components/password-box';
|
|
45
45
|
import { AXPasswordBoxModule } from '@acorex/components/password-box';
|
|
46
46
|
import { AXPlatform } from '@acorex/core/platform';
|
|
47
|
-
import { AXPHtmlUtils } from '@acorex/platform/core';
|
|
47
|
+
import { AXPHtmlUtils, objectKeyValueTransforms } from '@acorex/platform/core';
|
|
48
48
|
import * as i3$4 from '@acorex/components/toolbar';
|
|
49
49
|
import { AXToolBarModule } from '@acorex/components/toolbar';
|
|
50
50
|
import * as i2$3 from '@acorex/components/wysiwyg';
|
|
@@ -80,6 +80,10 @@ import { AXColorBoxModule } from '@acorex/components/color-box';
|
|
|
80
80
|
import * as i1$9 from '@acorex/components/popover';
|
|
81
81
|
import { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';
|
|
82
82
|
import { AXTagModule } from '@acorex/components/tag';
|
|
83
|
+
import * as i5$3 from '@acorex/components/avatar';
|
|
84
|
+
import { AXAvatarModule } from '@acorex/components/avatar';
|
|
85
|
+
import * as i2$a from '@acorex/components/tabs';
|
|
86
|
+
import { AXTabsModule } from '@acorex/components/tabs';
|
|
83
87
|
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
|
84
88
|
import * as i1$a from '@acorex/components/cron-job';
|
|
85
89
|
import { AXCronJobModule } from '@acorex/components/cron-job';
|
|
@@ -7876,6 +7880,7 @@ const AXPMapBoxWidget = {
|
|
|
7876
7880
|
description: 'Displays and interacts with maps',
|
|
7877
7881
|
icon: 'fa-light fa-map-location',
|
|
7878
7882
|
categories: AXP_WIDGETS_ADVANCE_CATEGORY,
|
|
7883
|
+
groups: [AXPWidgetGroupEnum.FormElement, AXPWidgetGroupEnum.DashboardWidget],
|
|
7879
7884
|
type: 'editor',
|
|
7880
7885
|
properties: [
|
|
7881
7886
|
AXP_NAME_PROPERTY,
|
|
@@ -12847,11 +12852,11 @@ class AXPClockCalendarWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
12847
12852
|
return days[this.currentDate.getDay()];
|
|
12848
12853
|
}
|
|
12849
12854
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPClockCalendarWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12850
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPClockCalendarWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-clock-calendar-container\">\n <!-- Timezone indicator (only shown when not local) -->\n @if (showTimezoneIndicator()) {\n <div class=\"axp-clock-calendar-timezone-badge\"><i class=\"fa-solid fa-globe\"></i> {{ displayTimezone() }}</div>\n }\n\n <!-- Day of week display -->\n @if (showDayOfWeek()) {\n <div class=\"axp-clock-calendar-day-label\">{{ getDayOfWeek() }}</div>\n }\n\n <div class=\"axp-clock-calendar-content\">\n <!-- Digital Clock Display -->\n @if (showDigitalClock()) {\n <div class=\"axp-clock-calendar-digital-clock\">\n {{ currentTime | format : 'datetime' : timeFormat() | async }}\n </div>\n }\n\n <!-- Analog Clock Display -->\n @if (showAnalogClock()) {\n <div class=\"axp-clock-calendar-analog-clock\">\n <!-- Hour markers -->\n @for (hour of clockHours; track hour) {\n <div\n class=\"axp-clock-calendar-hour-marker\"\n [style.transform]=\"'rotate(' + hour * 30 + 'deg) translateY(-80px)'\"\n ></div>\n }\n\n <!-- Clock Numbers -->\n <div class=\"axp-clock-calendar-numbers-container\">\n @for (hour of clockHourNumbers; track hour) {\n <div\n class=\"axp-clock-calendar-hour-number\"\n [style.transform]=\"'rotate(' + hour.angle + 'deg) translateY(-
|
|
12855
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPClockCalendarWidgetViewComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"axp-clock-calendar-container\">\n <!-- Timezone indicator (only shown when not local) -->\n @if (showTimezoneIndicator()) {\n <div class=\"axp-clock-calendar-timezone-badge\"><i class=\"fa-solid fa-globe\"></i> {{ displayTimezone() }}</div>\n }\n\n <!-- Day of week display -->\n @if (showDayOfWeek()) {\n <div class=\"axp-clock-calendar-day-label\">{{ getDayOfWeek() }}</div>\n }\n\n <div class=\"axp-clock-calendar-content\">\n <!-- Digital Clock Display -->\n @if (showDigitalClock()) {\n <div class=\"axp-clock-calendar-digital-clock\">\n {{ currentTime | format : 'datetime' : timeFormat() | async }}\n </div>\n }\n\n <!-- Analog Clock Display -->\n @if (showAnalogClock()) {\n <div class=\"axp-clock-calendar-analog-clock\">\n <!-- Hour markers -->\n @for (hour of clockHours; track hour) {\n <div\n class=\"axp-clock-calendar-hour-marker\"\n [style.transform]=\"'rotate(' + hour * 30 + 'deg) translateY(-80px)'\"\n ></div>\n }\n\n <!-- Clock Numbers -->\n <div class=\"axp-clock-calendar-numbers-container\">\n @for (hour of clockHourNumbers; track hour) {\n <div\n class=\"axp-clock-calendar-hour-number\"\n [style.transform]=\"'rotate(' + hour.angle + 'deg) translateY(-82px)'\"\n >\n <span [style.transform]=\"'rotate(' + -hour.angle + 'deg)'\">{{ hour.number }}</span>\n </div>\n }\n </div>\n\n <!-- Clock Hands -->\n <div class=\"axp-clock-calendar-hands-container\">\n <div class=\"axp-clock-calendar-hour-hand\" [style.transform]=\"'rotate(' + hourRotation + 'deg)'\"></div>\n <div class=\"axp-clock-calendar-minute-hand\" [style.transform]=\"'rotate(' + minuteRotation + 'deg)'\"></div>\n @if (showSeconds()) {\n <div class=\"axp-clock-calendar-second-hand\" [style.transform]=\"'rotate(' + secondRotation + 'deg)'\"></div>\n }\n <div class=\"axp-clock-calendar-center-dot\"></div>\n </div>\n </div>\n }\n\n <!-- Date Display -->\n @if (showDate()) {\n <div class=\"axp-clock-calendar-date-display\">\n <i class=\"fa-regular fa-calendar\"></i>\n {{ currentDate | format : 'datetime' : dateFormat() | async }}\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.axp-clock-calendar-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:1rem;position:relative;overflow:hidden;box-shadow:var(--ax-shadow-sm);background-color:var(--ax-surface-color);color:var(--ax-text-color)}.axp-clock-calendar-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;width:100%;height:100%;position:relative}.axp-clock-calendar-timezone-badge{position:absolute;top:.5rem;right:.5rem;font-size:.75rem;padding:.25rem;border-radius:1rem;border-width:1px;border-color:rgba(23,23,23,.5)}.axp-clock-calendar-timezone-badge:is(.ax-dark *){border-color:rgba(245,245,245,.5)}.axp-clock-calendar-timezone-badge{display:flex;align-items:center;gap:.25rem}.axp-clock-calendar-timezone-badge i{font-size:.75rem}.axp-clock-calendar-day-label{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.05rem;margin-bottom:.25rem}.axp-clock-calendar-digital-clock{font-size:1.5rem;font-weight:500;letter-spacing:.05rem;font-family:monospace;padding:.5rem .75rem;border-radius:.25rem}.axp-clock-calendar-analog-clock{position:relative;border-radius:50%;border-width:1px;border-color:rgba(23,23,23,.5)}.axp-clock-calendar-analog-clock:is(.ax-dark *){border-color:rgba(245,245,245,.5)}.axp-clock-calendar-analog-clock{display:flex;align-items:center;justify-content:center;background:var(--ax-surface-color);width:min(180px,100%);height:0;padding-bottom:min(180px,100%);margin:.5rem auto;min-width:120px;min-height:120px;box-shadow:var(--ax-shadow-sm)}.axp-clock-calendar-hands-container,.axp-clock-calendar-numbers-container{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%}.axp-clock-calendar-hour-marker{position:absolute;left:50%;top:50%;width:2px;height:4%;margin-left:-1px;border-radius:1px;background-color:var(--ax-text-muted);transform-origin:50% 0}.axp-clock-calendar-hour-number{position:absolute;left:50%;top:50%;transform-origin:50% 0;font-size:clamp(.7rem,2.5vw,.9rem);font-weight:600;color:var(--ax-text-color)}.axp-clock-calendar-hour-number span{display:block}.axp-clock-calendar-hour-hand{position:absolute;top:50%;left:50%;width:4px;height:25%;margin-left:-2px;background-color:rgba(23,23,23,.75)}.axp-clock-calendar-hour-hand:is(.ax-dark *){background-color:rgba(245,245,245,.75)}.axp-clock-calendar-hour-hand{transform-origin:50% 0;border-radius:3px;box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-minute-hand{position:absolute;top:50%;left:50%;width:3px;height:38%;margin-left:-1.5px;background-color:rgba(23,23,23,.5)}.axp-clock-calendar-minute-hand:is(.ax-dark *){background-color:rgba(245,245,245,.5)}.axp-clock-calendar-minute-hand{transform-origin:50% 0;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-second-hand{position:absolute;top:50%;left:50%;width:2px;height:42%;margin-left:-1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-500),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-400),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand{transform-origin:50% 0;border-radius:1px;box-shadow:0 0 3px rgba(0,0,0,.2)}.axp-clock-calendar-center-dot{position:absolute;top:50%;left:50%;width:10px;height:10px;border-radius:50%;margin-top:-5px;margin-left:-5px;background-color:#d81159;border:2px solid var(--ax-surface-color);box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-date-display{display:flex;align-items:center;gap:.5rem;font-size:.85rem;padding:.25rem .6rem;border-radius:.25rem;background-color:var(--ax-surface-hover);color:var(--ax-text-color)}.axp-clock-calendar-date-display i{font-size:.85rem;opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i2$9.AXFormatPipe, name: "format" }, { kind: "ngmodule", type: AXTagModule }, { kind: "ngmodule", type: AXDecoratorModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12851
12856
|
}
|
|
12852
12857
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPClockCalendarWidgetViewComponent, decorators: [{
|
|
12853
12858
|
type: Component,
|
|
12854
|
-
args: [{ standalone: true, imports: [CommonModule, AXDateTimeModule, AXFormatModule, AXTagModule, AXDecoratorModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"axp-clock-calendar-container\">\n <!-- Timezone indicator (only shown when not local) -->\n @if (showTimezoneIndicator()) {\n <div class=\"axp-clock-calendar-timezone-badge\"><i class=\"fa-solid fa-globe\"></i> {{ displayTimezone() }}</div>\n }\n\n <!-- Day of week display -->\n @if (showDayOfWeek()) {\n <div class=\"axp-clock-calendar-day-label\">{{ getDayOfWeek() }}</div>\n }\n\n <div class=\"axp-clock-calendar-content\">\n <!-- Digital Clock Display -->\n @if (showDigitalClock()) {\n <div class=\"axp-clock-calendar-digital-clock\">\n {{ currentTime | format : 'datetime' : timeFormat() | async }}\n </div>\n }\n\n <!-- Analog Clock Display -->\n @if (showAnalogClock()) {\n <div class=\"axp-clock-calendar-analog-clock\">\n <!-- Hour markers -->\n @for (hour of clockHours; track hour) {\n <div\n class=\"axp-clock-calendar-hour-marker\"\n [style.transform]=\"'rotate(' + hour * 30 + 'deg) translateY(-80px)'\"\n ></div>\n }\n\n <!-- Clock Numbers -->\n <div class=\"axp-clock-calendar-numbers-container\">\n @for (hour of clockHourNumbers; track hour) {\n <div\n class=\"axp-clock-calendar-hour-number\"\n [style.transform]=\"'rotate(' + hour.angle + 'deg) translateY(-
|
|
12859
|
+
args: [{ standalone: true, imports: [CommonModule, AXDateTimeModule, AXFormatModule, AXTagModule, AXDecoratorModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"axp-clock-calendar-container\">\n <!-- Timezone indicator (only shown when not local) -->\n @if (showTimezoneIndicator()) {\n <div class=\"axp-clock-calendar-timezone-badge\"><i class=\"fa-solid fa-globe\"></i> {{ displayTimezone() }}</div>\n }\n\n <!-- Day of week display -->\n @if (showDayOfWeek()) {\n <div class=\"axp-clock-calendar-day-label\">{{ getDayOfWeek() }}</div>\n }\n\n <div class=\"axp-clock-calendar-content\">\n <!-- Digital Clock Display -->\n @if (showDigitalClock()) {\n <div class=\"axp-clock-calendar-digital-clock\">\n {{ currentTime | format : 'datetime' : timeFormat() | async }}\n </div>\n }\n\n <!-- Analog Clock Display -->\n @if (showAnalogClock()) {\n <div class=\"axp-clock-calendar-analog-clock\">\n <!-- Hour markers -->\n @for (hour of clockHours; track hour) {\n <div\n class=\"axp-clock-calendar-hour-marker\"\n [style.transform]=\"'rotate(' + hour * 30 + 'deg) translateY(-80px)'\"\n ></div>\n }\n\n <!-- Clock Numbers -->\n <div class=\"axp-clock-calendar-numbers-container\">\n @for (hour of clockHourNumbers; track hour) {\n <div\n class=\"axp-clock-calendar-hour-number\"\n [style.transform]=\"'rotate(' + hour.angle + 'deg) translateY(-82px)'\"\n >\n <span [style.transform]=\"'rotate(' + -hour.angle + 'deg)'\">{{ hour.number }}</span>\n </div>\n }\n </div>\n\n <!-- Clock Hands -->\n <div class=\"axp-clock-calendar-hands-container\">\n <div class=\"axp-clock-calendar-hour-hand\" [style.transform]=\"'rotate(' + hourRotation + 'deg)'\"></div>\n <div class=\"axp-clock-calendar-minute-hand\" [style.transform]=\"'rotate(' + minuteRotation + 'deg)'\"></div>\n @if (showSeconds()) {\n <div class=\"axp-clock-calendar-second-hand\" [style.transform]=\"'rotate(' + secondRotation + 'deg)'\"></div>\n }\n <div class=\"axp-clock-calendar-center-dot\"></div>\n </div>\n </div>\n }\n\n <!-- Date Display -->\n @if (showDate()) {\n <div class=\"axp-clock-calendar-date-display\">\n <i class=\"fa-regular fa-calendar\"></i>\n {{ currentDate | format : 'datetime' : dateFormat() | async }}\n </div>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.axp-clock-calendar-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:1rem;position:relative;overflow:hidden;box-shadow:var(--ax-shadow-sm);background-color:var(--ax-surface-color);color:var(--ax-text-color)}.axp-clock-calendar-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;width:100%;height:100%;position:relative}.axp-clock-calendar-timezone-badge{position:absolute;top:.5rem;right:.5rem;font-size:.75rem;padding:.25rem;border-radius:1rem;border-width:1px;border-color:rgba(23,23,23,.5)}.axp-clock-calendar-timezone-badge:is(.ax-dark *){border-color:rgba(245,245,245,.5)}.axp-clock-calendar-timezone-badge{display:flex;align-items:center;gap:.25rem}.axp-clock-calendar-timezone-badge i{font-size:.75rem}.axp-clock-calendar-day-label{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.05rem;margin-bottom:.25rem}.axp-clock-calendar-digital-clock{font-size:1.5rem;font-weight:500;letter-spacing:.05rem;font-family:monospace;padding:.5rem .75rem;border-radius:.25rem}.axp-clock-calendar-analog-clock{position:relative;border-radius:50%;border-width:1px;border-color:rgba(23,23,23,.5)}.axp-clock-calendar-analog-clock:is(.ax-dark *){border-color:rgba(245,245,245,.5)}.axp-clock-calendar-analog-clock{display:flex;align-items:center;justify-content:center;background:var(--ax-surface-color);width:min(180px,100%);height:0;padding-bottom:min(180px,100%);margin:.5rem auto;min-width:120px;min-height:120px;box-shadow:var(--ax-shadow-sm)}.axp-clock-calendar-hands-container,.axp-clock-calendar-numbers-container{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%}.axp-clock-calendar-hour-marker{position:absolute;left:50%;top:50%;width:2px;height:4%;margin-left:-1px;border-radius:1px;background-color:var(--ax-text-muted);transform-origin:50% 0}.axp-clock-calendar-hour-number{position:absolute;left:50%;top:50%;transform-origin:50% 0;font-size:clamp(.7rem,2.5vw,.9rem);font-weight:600;color:var(--ax-text-color)}.axp-clock-calendar-hour-number span{display:block}.axp-clock-calendar-hour-hand{position:absolute;top:50%;left:50%;width:4px;height:25%;margin-left:-2px;background-color:rgba(23,23,23,.75)}.axp-clock-calendar-hour-hand:is(.ax-dark *){background-color:rgba(245,245,245,.75)}.axp-clock-calendar-hour-hand{transform-origin:50% 0;border-radius:3px;box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-minute-hand{position:absolute;top:50%;left:50%;width:3px;height:38%;margin-left:-1.5px;background-color:rgba(23,23,23,.5)}.axp-clock-calendar-minute-hand:is(.ax-dark *){background-color:rgba(245,245,245,.5)}.axp-clock-calendar-minute-hand{transform-origin:50% 0;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-second-hand{position:absolute;top:50%;left:50%;width:2px;height:42%;margin-left:-1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-500),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-400),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand{transform-origin:50% 0;border-radius:1px;box-shadow:0 0 3px rgba(0,0,0,.2)}.axp-clock-calendar-center-dot{position:absolute;top:50%;left:50%;width:10px;height:10px;border-radius:50%;margin-top:-5px;margin-left:-5px;background-color:#d81159;border:2px solid var(--ax-surface-color);box-shadow:0 0 4px rgba(0,0,0,.3)}.axp-clock-calendar-date-display{display:flex;align-items:center;gap:.5rem;font-size:.85rem;padding:.25rem .6rem;border-radius:.25rem;background-color:var(--ax-surface-hover);color:var(--ax-text-color)}.axp-clock-calendar-date-display i{font-size:.85rem;opacity:.7}\n"] }]
|
|
12855
12860
|
}] });
|
|
12856
12861
|
|
|
12857
12862
|
var clockCalendarWidget_component = /*#__PURE__*/Object.freeze({
|
|
@@ -14140,14 +14145,248 @@ const AXPGaugeChartWidget = {
|
|
|
14140
14145
|
},
|
|
14141
14146
|
};
|
|
14142
14147
|
|
|
14148
|
+
/**
|
|
14149
|
+
* Notification Widget Component
|
|
14150
|
+
* Displays notifications in a card with tabs
|
|
14151
|
+
*/
|
|
14152
|
+
class AXPNotificationWidgetViewComponent extends AXPValueWidgetComponent {
|
|
14153
|
+
constructor() {
|
|
14154
|
+
super(...arguments);
|
|
14155
|
+
// Outputs
|
|
14156
|
+
this.notificationClick = output();
|
|
14157
|
+
this.markAsRead = output();
|
|
14158
|
+
// Dependencies
|
|
14159
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
14160
|
+
this.datePipe = inject(DatePipe);
|
|
14161
|
+
// State
|
|
14162
|
+
this.activeTab = signal('new');
|
|
14163
|
+
// Configuration
|
|
14164
|
+
this.maxItems = computed(() => this.options()?.maxItems ?? 10);
|
|
14165
|
+
this.showAvatar = computed(() => this.options()?.showAvatar ?? true);
|
|
14166
|
+
this.showDate = computed(() => this.options()?.showDate ?? true);
|
|
14167
|
+
// Computed data
|
|
14168
|
+
this.notificationItems = computed(() => {
|
|
14169
|
+
const value = this.getValue();
|
|
14170
|
+
if (!value?.data?.length)
|
|
14171
|
+
return [];
|
|
14172
|
+
// Filter by active tab
|
|
14173
|
+
const filtered = this.activeTab() === 'new' ? value.data.filter((n) => !n.readAt) : value.data;
|
|
14174
|
+
return filtered.slice(0, this.maxItems());
|
|
14175
|
+
});
|
|
14176
|
+
}
|
|
14177
|
+
/**
|
|
14178
|
+
* Get the count of new messages for the badge
|
|
14179
|
+
*/
|
|
14180
|
+
getNewMessageCount() {
|
|
14181
|
+
const value = this.getValue();
|
|
14182
|
+
if (!value?.data?.length)
|
|
14183
|
+
return 0;
|
|
14184
|
+
return value.data.filter((n) => !n.readAt).length;
|
|
14185
|
+
}
|
|
14186
|
+
/**
|
|
14187
|
+
* Handle tab change event from ax-tabs component
|
|
14188
|
+
* @param index The index of the tab that was activated
|
|
14189
|
+
*/
|
|
14190
|
+
handleTabChange(data) {
|
|
14191
|
+
const index = data.index;
|
|
14192
|
+
// Map index to tab name: 0 = 'new', 1 = 'all'
|
|
14193
|
+
const tabName = index === 0 ? 'new' : 'all';
|
|
14194
|
+
this.onTabChange(tabName);
|
|
14195
|
+
}
|
|
14196
|
+
/**
|
|
14197
|
+
* Mark all notifications as read
|
|
14198
|
+
*/
|
|
14199
|
+
markAllAsRead() {
|
|
14200
|
+
const value = this.getValue();
|
|
14201
|
+
if (!value?.data?.length)
|
|
14202
|
+
return;
|
|
14203
|
+
const now = new Date();
|
|
14204
|
+
const updatedNotifications = value.data.map((n) => {
|
|
14205
|
+
if (n.readAt)
|
|
14206
|
+
return n;
|
|
14207
|
+
return { ...n, readAt: now };
|
|
14208
|
+
});
|
|
14209
|
+
this.setValue({
|
|
14210
|
+
...value,
|
|
14211
|
+
data: updatedNotifications,
|
|
14212
|
+
});
|
|
14213
|
+
this.cdr.detectChanges();
|
|
14214
|
+
}
|
|
14215
|
+
/**
|
|
14216
|
+
* Change the active tab
|
|
14217
|
+
*/
|
|
14218
|
+
onTabChange(tabName) {
|
|
14219
|
+
this.activeTab.set(tabName);
|
|
14220
|
+
this.cdr.detectChanges();
|
|
14221
|
+
}
|
|
14222
|
+
/**
|
|
14223
|
+
* Handle notification click event
|
|
14224
|
+
*/
|
|
14225
|
+
onNotificationClick(notification) {
|
|
14226
|
+
this.markAsReadIfNeeded(notification);
|
|
14227
|
+
this.notificationClick.emit(notification);
|
|
14228
|
+
}
|
|
14229
|
+
/**
|
|
14230
|
+
* Format the timestamp in a user-friendly way
|
|
14231
|
+
*/
|
|
14232
|
+
formatTime(date) {
|
|
14233
|
+
if (!date)
|
|
14234
|
+
return '';
|
|
14235
|
+
const dateObj = typeof date === 'string' ? new Date(date) : date;
|
|
14236
|
+
const diffDays = this.getDaysDifference(dateObj);
|
|
14237
|
+
// Format based on how recent the date is
|
|
14238
|
+
if (diffDays === 0)
|
|
14239
|
+
return this.datePipe.transform(dateObj, 'h:mm a') || ''; // Today
|
|
14240
|
+
if (diffDays === 1)
|
|
14241
|
+
return 'Yesterday';
|
|
14242
|
+
if (diffDays < 7)
|
|
14243
|
+
return this.datePipe.transform(dateObj, 'EEE') || ''; // Day of week
|
|
14244
|
+
return this.datePipe.transform(dateObj, 'MM/dd/yyyy') || ''; // Older date
|
|
14245
|
+
}
|
|
14246
|
+
/**
|
|
14247
|
+
* Mark notification as read if needed
|
|
14248
|
+
*/
|
|
14249
|
+
markAsReadIfNeeded(notification) {
|
|
14250
|
+
// Only mark as read if not already read
|
|
14251
|
+
if (notification.readAt)
|
|
14252
|
+
return;
|
|
14253
|
+
const updatedNotification = {
|
|
14254
|
+
...notification,
|
|
14255
|
+
readAt: new Date(),
|
|
14256
|
+
};
|
|
14257
|
+
// Update the model
|
|
14258
|
+
const value = this.getValue();
|
|
14259
|
+
if (!value?.data)
|
|
14260
|
+
return;
|
|
14261
|
+
const updatedNotifications = value.data.map((n) => (n.id === notification.id ? updatedNotification : n));
|
|
14262
|
+
this.setValue({
|
|
14263
|
+
...value,
|
|
14264
|
+
data: updatedNotifications,
|
|
14265
|
+
});
|
|
14266
|
+
// Notify about the change
|
|
14267
|
+
this.markAsRead.emit(updatedNotification);
|
|
14268
|
+
}
|
|
14269
|
+
/**
|
|
14270
|
+
* Calculate days difference from now
|
|
14271
|
+
*/
|
|
14272
|
+
getDaysDifference(date) {
|
|
14273
|
+
const now = new Date();
|
|
14274
|
+
const diffMs = now.getTime() - date.getTime();
|
|
14275
|
+
return Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
14276
|
+
}
|
|
14277
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPNotificationWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
14278
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPNotificationWidgetViewComponent, isStandalone: true, selector: "ng-component", outputs: { notificationClick: "notificationClick", markAsRead: "markAsRead" }, providers: [DatePipe], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-p-4 ax-size-full\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item [text]=\"('widget.notification.new' | translate | async) ?? 'New'\" class=\"ax-font-medium\">\n <ax-suffix>\n @if (getNewMessageCount() > 0) {\n <ax-badge color=\"primary\" [text]=\"getNewMessageCount().toString()\" size=\"sm\" class=\"ax-ml-1\"></ax-badge>\n }\n </ax-suffix>\n </ax-tab-item>\n <ax-tab-item [text]=\"('widget.notification.all' | translate | async) ?? 'All'\" class=\"ax-font-medium\"></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-4 ax-mt-4 ax-px-2\">\n @for (item of notificationItems(); track item.id) {\n <ng-container [ngTemplateOutlet]=\"chatItemTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\n </ng-container>\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-12 ax-px-4 ax-text-gray-400\">\n <ax-icon class=\"ax-text-4xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-bell-slash\"></i>\n </ax-icon>\n <p class=\"ax-text-center\">{{ 'widget.notification.noNotifications' | translate | async }}</p>\n </div>\n }\n </div>\n</div>\n\n<ng-template #chatItemTemplateRef let-data>\n <div class=\"ax-flex ax-gap-3\">\n @if(showAvatar()){\n <div class=\"ax-rounded-full ax-size-10\">\n <ax-avatar shape=\"rounded\" class=\"ax-shrink-0\" [size]=\"40\">\n @if(data.user?.image){\n <ax-image\n [src]=\"data.user.image\"\n [alt]=\"data.user?.name || ('widget.notification.user' | translate | async)\"\n ></ax-image>\n } @else {\n <ax-icon>\n <i class=\"fa-light fa-user\"></i>\n </ax-icon>\n }\n </ax-avatar>\n </div>\n }\n <div class=\"ax-overflow-hidden ax-grow ax-text-start\">\n <h6 class=\"ax-pb-2 ax-font-semibold ax-truncate\">{{ data.user?.name || data.title }}</h6>\n <p class=\"ax-text-xs ax-truncate\">{{ data.body }}</p>\n </div>\n @if(showDate()){\n <div class=\"ax-text-xs ax-shrink-0\">\n <span>\n {{ formatTime(data.createdAt) }}\n </span>\n </div>\n }\n </div>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$a.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$a.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { 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: AXButtonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i1$2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "component", type: i5$3.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "shape", "look"], outputs: ["sizeChange"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i2$7.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14279
|
+
}
|
|
14280
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPNotificationWidgetViewComponent, decorators: [{
|
|
14281
|
+
type: Component,
|
|
14282
|
+
args: [{ standalone: true, imports: [
|
|
14283
|
+
CommonModule,
|
|
14284
|
+
AXTabsModule,
|
|
14285
|
+
AXDecoratorModule,
|
|
14286
|
+
AXButtonModule,
|
|
14287
|
+
AXBadgeModule,
|
|
14288
|
+
AXAvatarModule,
|
|
14289
|
+
AXImageModule,
|
|
14290
|
+
AXTranslationModule,
|
|
14291
|
+
], providers: [DatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-p-4 ax-size-full\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item [text]=\"('widget.notification.new' | translate | async) ?? 'New'\" class=\"ax-font-medium\">\n <ax-suffix>\n @if (getNewMessageCount() > 0) {\n <ax-badge color=\"primary\" [text]=\"getNewMessageCount().toString()\" size=\"sm\" class=\"ax-ml-1\"></ax-badge>\n }\n </ax-suffix>\n </ax-tab-item>\n <ax-tab-item [text]=\"('widget.notification.all' | translate | async) ?? 'All'\" class=\"ax-font-medium\"></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-4 ax-mt-4 ax-px-2\">\n @for (item of notificationItems(); track item.id) {\n <ng-container [ngTemplateOutlet]=\"chatItemTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\n </ng-container>\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-12 ax-px-4 ax-text-gray-400\">\n <ax-icon class=\"ax-text-4xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-bell-slash\"></i>\n </ax-icon>\n <p class=\"ax-text-center\">{{ 'widget.notification.noNotifications' | translate | async }}</p>\n </div>\n }\n </div>\n</div>\n\n<ng-template #chatItemTemplateRef let-data>\n <div class=\"ax-flex ax-gap-3\">\n @if(showAvatar()){\n <div class=\"ax-rounded-full ax-size-10\">\n <ax-avatar shape=\"rounded\" class=\"ax-shrink-0\" [size]=\"40\">\n @if(data.user?.image){\n <ax-image\n [src]=\"data.user.image\"\n [alt]=\"data.user?.name || ('widget.notification.user' | translate | async)\"\n ></ax-image>\n } @else {\n <ax-icon>\n <i class=\"fa-light fa-user\"></i>\n </ax-icon>\n }\n </ax-avatar>\n </div>\n }\n <div class=\"ax-overflow-hidden ax-grow ax-text-start\">\n <h6 class=\"ax-pb-2 ax-font-semibold ax-truncate\">{{ data.user?.name || data.title }}</h6>\n <p class=\"ax-text-xs ax-truncate\">{{ data.body }}</p>\n </div>\n @if(showDate()){\n <div class=\"ax-text-xs ax-shrink-0\">\n <span>\n {{ formatTime(data.createdAt) }}\n </span>\n </div>\n }\n </div>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
|
|
14292
|
+
}] });
|
|
14293
|
+
|
|
14294
|
+
var notificationWidget_component = /*#__PURE__*/Object.freeze({
|
|
14295
|
+
__proto__: null,
|
|
14296
|
+
AXPNotificationWidgetViewComponent: AXPNotificationWidgetViewComponent
|
|
14297
|
+
});
|
|
14298
|
+
|
|
14299
|
+
/**
|
|
14300
|
+
* Configuration for the Notification Widget
|
|
14301
|
+
*/
|
|
14302
|
+
const AXPNotificationWidget = {
|
|
14303
|
+
name: 'notification',
|
|
14304
|
+
title: 'Notification Widget',
|
|
14305
|
+
categories: [AXP_WIDGETS_UTILITY_CATEGORY],
|
|
14306
|
+
groups: [AXPWidgetGroupEnum.DashboardWidget],
|
|
14307
|
+
type: 'dashboard',
|
|
14308
|
+
description: 'Displays notifications in a widget format',
|
|
14309
|
+
icon: 'fa-regular fa-bell',
|
|
14310
|
+
properties: [
|
|
14311
|
+
cloneProperty(AXP_DATA_PATH_PROPERTY, { visible: false }),
|
|
14312
|
+
{
|
|
14313
|
+
name: 'maxItems',
|
|
14314
|
+
title: 'Max Items',
|
|
14315
|
+
description: 'Maximum number of notification items to display',
|
|
14316
|
+
group: AXP_STYLING_PROPERTY_GROUP,
|
|
14317
|
+
schema: {
|
|
14318
|
+
defaultValue: 10,
|
|
14319
|
+
dataType: 'number',
|
|
14320
|
+
interface: {
|
|
14321
|
+
name: 'maxItems',
|
|
14322
|
+
path: 'options.maxItems',
|
|
14323
|
+
type: AXPWidgetsCatalog.number,
|
|
14324
|
+
options: {
|
|
14325
|
+
minValue: 1,
|
|
14326
|
+
maxValue: 100,
|
|
14327
|
+
},
|
|
14328
|
+
},
|
|
14329
|
+
},
|
|
14330
|
+
visible: true,
|
|
14331
|
+
},
|
|
14332
|
+
{
|
|
14333
|
+
name: 'showAvatar',
|
|
14334
|
+
title: 'Show Avatar',
|
|
14335
|
+
description: 'Whether to show avatars in notifications',
|
|
14336
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
14337
|
+
schema: {
|
|
14338
|
+
defaultValue: true,
|
|
14339
|
+
dataType: 'boolean',
|
|
14340
|
+
interface: {
|
|
14341
|
+
name: 'showAvatar',
|
|
14342
|
+
path: 'options.showAvatar',
|
|
14343
|
+
type: AXPWidgetsCatalog.toggle,
|
|
14344
|
+
},
|
|
14345
|
+
},
|
|
14346
|
+
visible: true,
|
|
14347
|
+
},
|
|
14348
|
+
{
|
|
14349
|
+
name: 'showDate',
|
|
14350
|
+
title: 'Show Date',
|
|
14351
|
+
description: 'Whether to show date in notifications',
|
|
14352
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
14353
|
+
schema: {
|
|
14354
|
+
defaultValue: true,
|
|
14355
|
+
dataType: 'boolean',
|
|
14356
|
+
interface: {
|
|
14357
|
+
name: 'showDate',
|
|
14358
|
+
path: 'options.showDate',
|
|
14359
|
+
type: AXPWidgetsCatalog.toggle,
|
|
14360
|
+
},
|
|
14361
|
+
},
|
|
14362
|
+
visible: true,
|
|
14363
|
+
},
|
|
14364
|
+
],
|
|
14365
|
+
components: {
|
|
14366
|
+
view: {
|
|
14367
|
+
component: () => Promise.resolve().then(function () { return notificationWidget_component; }).then((c) => c.AXPNotificationWidgetViewComponent),
|
|
14368
|
+
},
|
|
14369
|
+
},
|
|
14370
|
+
meta: {
|
|
14371
|
+
dimensions: {
|
|
14372
|
+
width: 3,
|
|
14373
|
+
height: 5,
|
|
14374
|
+
minWidth: 2,
|
|
14375
|
+
minHeight: 4,
|
|
14376
|
+
maxWidth: 4,
|
|
14377
|
+
maxHeight: 7,
|
|
14378
|
+
},
|
|
14379
|
+
},
|
|
14380
|
+
};
|
|
14381
|
+
|
|
14143
14382
|
class AXPStickyNoteWidgetViewComponent extends AXPValueWidgetComponent {
|
|
14144
14383
|
constructor() {
|
|
14145
14384
|
super(...arguments);
|
|
14146
14385
|
this.isEditing = signal(false);
|
|
14147
14386
|
this.wysiwyg = viewChild('wysiwyg');
|
|
14148
|
-
this.
|
|
14149
|
-
this.
|
|
14150
|
-
this.bgColor =
|
|
14387
|
+
this.value = computed(() => this.getValue());
|
|
14388
|
+
this.date = computed(() => this.options()?.date ?? new Date());
|
|
14389
|
+
this.bgColor = computed(() => this.options()?.backgroundColor ?? '#FFF8B8');
|
|
14151
14390
|
this.color = signal('#333333');
|
|
14152
14391
|
this.el = inject(ElementRef);
|
|
14153
14392
|
// Modern color palette with pastel and vibrant options
|
|
@@ -14186,7 +14425,6 @@ class AXPStickyNoteWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
14186
14425
|
}
|
|
14187
14426
|
valueChange(event) {
|
|
14188
14427
|
if (event.isUserInteraction) {
|
|
14189
|
-
this.value.set(event.value);
|
|
14190
14428
|
this.setValue(event.value);
|
|
14191
14429
|
}
|
|
14192
14430
|
}
|
|
@@ -14196,7 +14434,7 @@ class AXPStickyNoteWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
14196
14434
|
provide: AXGridLayoutWidgetComponent,
|
|
14197
14435
|
useExisting: AXPStickyNoteWidgetViewComponent,
|
|
14198
14436
|
},
|
|
14199
|
-
], viewQueries: [{ propertyName: "wysiwyg", first: true, predicate: ["wysiwyg"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"sticky-note-container ax-
|
|
14437
|
+
], viewQueries: [{ propertyName: "wysiwyg", first: true, predicate: ["wysiwyg"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"sticky-note-container ax-size-full ax-rounded-lg ax-flex ax-flex-col ax-p-4 ax-shadow-md ax-transition-all ax-duration-300 hover:ax-shadow-lg\"\n [style.background-color]=\"bgColor()\"\n [style.color]=\"color()\"\n [class.ax-shadow-lg]=\"isEditing()\"\n [class.ax-scale-[1.02]]=\"isEditing()\"\n (dblclick)=\"activateEdit()\"\n>\n <!-- Header with timestamp -->\n <div class=\"ax-flex ax-justify-between ax-items-center ax-mb-3\">\n <div class=\"ax-text-xs ax-opacity-70 ax-font-medium ax-flex ax-items-center ax-gap-1\">\n <i class=\"fa-regular fa-clock ax-text-[0.65rem]\"></i>\n {{ date() | format : 'datetime' : 'dd MMM, YY HH:mm' | async }}\n </div>\n </div>\n\n <!-- Content area -->\n <div class=\"ax-flex-1 ax-overflow-auto\">\n <ax-wysiwyg-container\n #wysiwyg\n [class]=\"\n isEditing()\n ? 'ax-pointer-events-auto ax-cursor-text ax-ring-2 ax-ring-black/5 ax-rounded-md'\n : 'ax-pointer-events-none !ax-cursor-pointer'\n \"\n class=\"ax-h-full\"\n placeHolder=\"start writing with double click...\"\n look=\"none\"\n (onValueChanged)=\"valueChange($event)\"\n [ngModel]=\"value()\"\n >\n <ax-wysiwyg-view class=\"!ax-size-full ax-border-b-0\"></ax-wysiwyg-view>\n </ax-wysiwyg-container>\n </div>\n\n <!-- Footer with color selector and save button -->\n @if (isEditing()) {\n <div class=\"ax-absolute ax-bottom-2 ax-left-2 ax-right-2 ax-flex ax-flex-wrap ax-gap-1 ax-text-xs\">\n <!-- Color selection bar when in edit mode -->\n <div class=\"ax-flex ax-w-full ax-mt-2 ax-border ax-border-gray-200 ax-overflow-hidden ax-rounded-md\">\n @for (preset of colorPresets; track preset) {\n <div\n class=\"ax-h-6 ax-flex-1 ax-cursor-pointer ax-transition-all ax-duration-200 ax-border-r ax-border-gray-200 last:ax-border-r-0 hover:ax-brightness-95\"\n [style.background-color]=\"preset\"\n [class.ax-ring-inset]=\"bgColor() === preset\"\n [class.ax-ring-2]=\"bgColor() === preset\"\n [class.ax-ring-primary]=\"bgColor() === preset\"\n (click)=\"setColor(preset)\"\n ></div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block;width:100%;height:100%}:host .sticky-note-container{transition:all .2s ease-in-out}:host :host ::ng-deep ax-wysiwyg-view{color:inherit!important}:host :host ::ng-deep ax-wysiwyg-view .ql-editor{padding:0!important;font-size:.95rem;line-height:1.5;color:#2e2e2e}:host :host ::ng-deep ax-wysiwyg-view .ql-editor:before{color:inherit!important;opacity:.7}\n"], dependencies: [{ kind: "ngmodule", type: AXWysiwygModule }, { kind: "component", type: i2$3.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "placeHolder"], outputs: ["onValueChanged"] }, { kind: "component", type: i2$3.AXWysiwygViewComponent, selector: "ax-wysiwyg-view", inputs: ["class"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXToolBarModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i2$9.AXFormatPipe, name: "format" }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXColorBoxModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14200
14438
|
}
|
|
14201
14439
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPStickyNoteWidgetViewComponent, decorators: [{
|
|
14202
14440
|
type: Component,
|
|
@@ -14216,7 +14454,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
14216
14454
|
provide: AXGridLayoutWidgetComponent,
|
|
14217
14455
|
useExisting: AXPStickyNoteWidgetViewComponent,
|
|
14218
14456
|
},
|
|
14219
|
-
], template: "<div\n class=\"sticky-note-container ax-
|
|
14457
|
+
], template: "<div\n class=\"sticky-note-container ax-size-full ax-rounded-lg ax-flex ax-flex-col ax-p-4 ax-shadow-md ax-transition-all ax-duration-300 hover:ax-shadow-lg\"\n [style.background-color]=\"bgColor()\"\n [style.color]=\"color()\"\n [class.ax-shadow-lg]=\"isEditing()\"\n [class.ax-scale-[1.02]]=\"isEditing()\"\n (dblclick)=\"activateEdit()\"\n>\n <!-- Header with timestamp -->\n <div class=\"ax-flex ax-justify-between ax-items-center ax-mb-3\">\n <div class=\"ax-text-xs ax-opacity-70 ax-font-medium ax-flex ax-items-center ax-gap-1\">\n <i class=\"fa-regular fa-clock ax-text-[0.65rem]\"></i>\n {{ date() | format : 'datetime' : 'dd MMM, YY HH:mm' | async }}\n </div>\n </div>\n\n <!-- Content area -->\n <div class=\"ax-flex-1 ax-overflow-auto\">\n <ax-wysiwyg-container\n #wysiwyg\n [class]=\"\n isEditing()\n ? 'ax-pointer-events-auto ax-cursor-text ax-ring-2 ax-ring-black/5 ax-rounded-md'\n : 'ax-pointer-events-none !ax-cursor-pointer'\n \"\n class=\"ax-h-full\"\n placeHolder=\"start writing with double click...\"\n look=\"none\"\n (onValueChanged)=\"valueChange($event)\"\n [ngModel]=\"value()\"\n >\n <ax-wysiwyg-view class=\"!ax-size-full ax-border-b-0\"></ax-wysiwyg-view>\n </ax-wysiwyg-container>\n </div>\n\n <!-- Footer with color selector and save button -->\n @if (isEditing()) {\n <div class=\"ax-absolute ax-bottom-2 ax-left-2 ax-right-2 ax-flex ax-flex-wrap ax-gap-1 ax-text-xs\">\n <!-- Color selection bar when in edit mode -->\n <div class=\"ax-flex ax-w-full ax-mt-2 ax-border ax-border-gray-200 ax-overflow-hidden ax-rounded-md\">\n @for (preset of colorPresets; track preset) {\n <div\n class=\"ax-h-6 ax-flex-1 ax-cursor-pointer ax-transition-all ax-duration-200 ax-border-r ax-border-gray-200 last:ax-border-r-0 hover:ax-brightness-95\"\n [style.background-color]=\"preset\"\n [class.ax-ring-inset]=\"bgColor() === preset\"\n [class.ax-ring-2]=\"bgColor() === preset\"\n [class.ax-ring-primary]=\"bgColor() === preset\"\n (click)=\"setColor(preset)\"\n ></div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":host{display:block;width:100%;height:100%}:host .sticky-note-container{transition:all .2s ease-in-out}:host :host ::ng-deep ax-wysiwyg-view{color:inherit!important}:host :host ::ng-deep ax-wysiwyg-view .ql-editor{padding:0!important;font-size:.95rem;line-height:1.5;color:#2e2e2e}:host :host ::ng-deep ax-wysiwyg-view .ql-editor:before{color:inherit!important;opacity:.7}\n"] }]
|
|
14220
14458
|
}], propDecorators: { handleClickOutside: [{
|
|
14221
14459
|
type: HostListener,
|
|
14222
14460
|
args: ['document:click', ['$event']]
|
|
@@ -14252,6 +14490,274 @@ const AXPStickyNoteWidget = {
|
|
|
14252
14490
|
},
|
|
14253
14491
|
};
|
|
14254
14492
|
|
|
14493
|
+
/**
|
|
14494
|
+
* Task List Widget Component
|
|
14495
|
+
* Displays a list of tasks with checkboxes and filtering options
|
|
14496
|
+
*/
|
|
14497
|
+
class AXPTaskListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
14498
|
+
constructor() {
|
|
14499
|
+
super(...arguments);
|
|
14500
|
+
// Outputs
|
|
14501
|
+
this.taskClick = output();
|
|
14502
|
+
this.taskCompleted = output();
|
|
14503
|
+
// Dependencies
|
|
14504
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
14505
|
+
this.datePipe = inject(DatePipe);
|
|
14506
|
+
// Configuration options
|
|
14507
|
+
this.maxItems = computed(() => this.options()?.maxItems ?? 10);
|
|
14508
|
+
this.showDate = computed(() => this.options()?.showDate ?? true);
|
|
14509
|
+
this.showAssignee = computed(() => this.options()?.showAssignee ?? true);
|
|
14510
|
+
this.showPriority = computed(() => this.options()?.showPriority ?? true);
|
|
14511
|
+
this.allowMarkComplete = computed(() => this.options()?.allowMarkComplete ?? true);
|
|
14512
|
+
this.showCategories = computed(() => this.options()?.groupByCategory ?? true);
|
|
14513
|
+
// Data computed properties
|
|
14514
|
+
this.taskItems = computed(() => {
|
|
14515
|
+
const value = this.getValue();
|
|
14516
|
+
if (!value?.data?.length)
|
|
14517
|
+
return [];
|
|
14518
|
+
return value.data.slice(0, this.maxItems());
|
|
14519
|
+
});
|
|
14520
|
+
}
|
|
14521
|
+
// Task counting methods
|
|
14522
|
+
getPendingTaskCount() {
|
|
14523
|
+
return this.getFilteredTasks((task) => !task.completed).length;
|
|
14524
|
+
}
|
|
14525
|
+
getCompletedTaskCount() {
|
|
14526
|
+
return this.getFilteredTasks((task) => task.completed).length;
|
|
14527
|
+
}
|
|
14528
|
+
// Category-related methods
|
|
14529
|
+
hasCategories() {
|
|
14530
|
+
return this.taskItems().some((task) => !!task.category);
|
|
14531
|
+
}
|
|
14532
|
+
getCategories() {
|
|
14533
|
+
const tasks = this.taskItems();
|
|
14534
|
+
const categories = new Set();
|
|
14535
|
+
let hasUncategorized = false;
|
|
14536
|
+
tasks.forEach((task) => {
|
|
14537
|
+
if (task.category) {
|
|
14538
|
+
categories.add(task.category);
|
|
14539
|
+
}
|
|
14540
|
+
else {
|
|
14541
|
+
hasUncategorized = true;
|
|
14542
|
+
}
|
|
14543
|
+
});
|
|
14544
|
+
const result = Array.from(categories);
|
|
14545
|
+
if (hasUncategorized) {
|
|
14546
|
+
result.push('Uncategorized');
|
|
14547
|
+
}
|
|
14548
|
+
return result;
|
|
14549
|
+
}
|
|
14550
|
+
getTasksByCategory(category) {
|
|
14551
|
+
const tasks = this.taskItems();
|
|
14552
|
+
if (category === 'Uncategorized') {
|
|
14553
|
+
return tasks.filter((task) => !task.category);
|
|
14554
|
+
}
|
|
14555
|
+
return tasks.filter((task) => task.category === category);
|
|
14556
|
+
}
|
|
14557
|
+
getCategoryTaskCount(category) {
|
|
14558
|
+
return this.getTasksByCategory(category).filter((task) => !task.completed).length;
|
|
14559
|
+
}
|
|
14560
|
+
// Event handlers
|
|
14561
|
+
onTaskClick(task) {
|
|
14562
|
+
this.taskClick.emit(task);
|
|
14563
|
+
}
|
|
14564
|
+
onTaskCompletionChange(task, isCompleted) {
|
|
14565
|
+
const updatedTask = { ...task, completed: isCompleted };
|
|
14566
|
+
const value = this.getValue();
|
|
14567
|
+
if (!value?.data)
|
|
14568
|
+
return;
|
|
14569
|
+
const updatedTasks = value.data.map((t) => (t.id === task.id ? updatedTask : t));
|
|
14570
|
+
this.setValue({ ...value, data: updatedTasks });
|
|
14571
|
+
this.taskCompleted.emit(updatedTask);
|
|
14572
|
+
this.cdr.detectChanges();
|
|
14573
|
+
}
|
|
14574
|
+
// Formatting and utility methods
|
|
14575
|
+
formatDueDate(date) {
|
|
14576
|
+
if (!date)
|
|
14577
|
+
return '';
|
|
14578
|
+
const dateObj = typeof date === 'string' ? new Date(date) : date;
|
|
14579
|
+
const diffDays = this.getDaysDifference(dateObj);
|
|
14580
|
+
if (diffDays < 0)
|
|
14581
|
+
return 'Overdue!';
|
|
14582
|
+
if (diffDays === 0)
|
|
14583
|
+
return 'Today';
|
|
14584
|
+
if (diffDays === 1)
|
|
14585
|
+
return 'Tomorrow';
|
|
14586
|
+
if (diffDays < 7)
|
|
14587
|
+
return this.datePipe.transform(dateObj, 'EEE') || '';
|
|
14588
|
+
return this.datePipe.transform(dateObj, 'MM/dd/yyyy') || '';
|
|
14589
|
+
}
|
|
14590
|
+
getPriorityColor(priority) {
|
|
14591
|
+
if (!priority)
|
|
14592
|
+
return '';
|
|
14593
|
+
const priorityColors = {
|
|
14594
|
+
high: 'danger',
|
|
14595
|
+
medium: 'warning',
|
|
14596
|
+
low: 'success',
|
|
14597
|
+
};
|
|
14598
|
+
return priorityColors[priority] || '';
|
|
14599
|
+
}
|
|
14600
|
+
// Helper methods
|
|
14601
|
+
getFilteredTasks(filterFn) {
|
|
14602
|
+
const value = this.getValue();
|
|
14603
|
+
if (!value?.data?.length)
|
|
14604
|
+
return [];
|
|
14605
|
+
return value.data.filter(filterFn);
|
|
14606
|
+
}
|
|
14607
|
+
getDaysDifference(date) {
|
|
14608
|
+
const now = new Date();
|
|
14609
|
+
now.setHours(0, 0, 0, 0);
|
|
14610
|
+
const targetDate = new Date(date);
|
|
14611
|
+
targetDate.setHours(0, 0, 0, 0);
|
|
14612
|
+
const diffMs = targetDate.getTime() - now.getTime();
|
|
14613
|
+
return Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
14614
|
+
}
|
|
14615
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTaskListWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
14616
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPTaskListWidgetViewComponent, isStandalone: true, selector: "ng-component", outputs: { taskClick: "taskClick", taskCompleted: "taskCompleted" }, providers: [DatePipe], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-size-full ax-p-4\">\n <!-- Header -->\n <div class=\"ax-flex ax-justify-between ax-items-center ax-mb-3\">\n <h3 class=\"ax-text-lg ax-font-semibold\">{{ 'widget.tasklist.title' | translate | async }}</h3>\n <div class=\"ax-flex ax-gap-2\">\n @if(getPendingTaskCount() > 0){\n <ax-badge\n [text]=\"getPendingTaskCount() + ' ' + ('widget.tasklist.pending' | translate | async)\"\n [color]=\"'warning'\"\n size=\"sm\"\n class=\"ax-ml-1\"\n >\n </ax-badge>\n } @if(getCompletedTaskCount() > 0){\n <ax-badge\n [text]=\"getCompletedTaskCount() + ' ' + ('widget.tasklist.completed' | translate | async)\"\n [color]=\"'success'\"\n size=\"sm\"\n class=\"ax-ml-1\"\n >\n </ax-badge>\n }\n </div>\n </div>\n\n <!-- Task List -->\n <div class=\"ax-space-y-4 ax-my-4 ax-px-2\">\n @if (showCategories() && hasCategories()) {\n <!-- Categorized Tasks -->\n @for (category of getCategories(); track category) {\n <div class=\"ax-mb-3\">\n <!-- Category Header -->\n <div class=\"ax-flex ax-justify-between ax-items-center ax-mb-2 ax-h-5\">\n <h4 class=\"ax-font-medium ax-text-gray-700\">{{ category }}</h4>\n @if(getCategoryTaskCount(category)){\n <ax-badge [text]=\"getCategoryTaskCount(category).toString()\" [color]=\"'primary'\" size=\"sm\"></ax-badge>\n }\n </div>\n <!-- Tasks in Category -->\n @for (task of getTasksByCategory(category); track task.id) {\n <ng-container\n [ngTemplateOutlet]=\"taskItemTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: task }\"\n ></ng-container>\n }\n </div>\n } } @else {\n <!-- Uncategorized Tasks -->\n @for (task of taskItems(); track task.id) {\n <ng-container\n [ngTemplateOutlet]=\"taskItemTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: task }\"\n ></ng-container>\n } @empty {\n <!-- Empty State -->\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-12 ax-px-4 ax-text-gray-400\">\n <ax-icon class=\"ax-text-4xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-clipboard-list-check\"></i>\n </ax-icon>\n <p class=\"ax-text-center\">{{ 'widget.tasklist.noTasks' | translate | async }}</p>\n </div>\n } }\n </div>\n</div>\n\n<!-- Task Item Template -->\n<ng-template #taskItemTemplateRef let-task>\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-py-2 ax-border-b ax-border-gray-100 last:ax-border-0\">\n <!-- Checkbox -->\n <ax-check-box\n class=\"ax-flex-shrink-0\"\n [value]=\"task.completed\"\n [disabled]=\"!allowMarkComplete()\"\n (valueChange)=\"onTaskCompletionChange(task, $event)\"\n >\n </ax-check-box>\n\n <!-- Task Details -->\n <div class=\"ax-overflow-hidden ax-grow ax-text-start\" (click)=\"onTaskClick(task)\">\n <!-- Title and Priority -->\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <h6\n class=\"ax-font-semibold ax-truncate ax-pb-1\"\n [class.ax-line-through]=\"task.completed\"\n [class.ax-text-gray-400]=\"task.completed\"\n >\n {{ task.title }}\n </h6>\n @if(showPriority() && task.priority) {\n <ax-badge [color]=\"getPriorityColor(task.priority)\" [text]=\"task.priority\" size=\"sm\" class=\"ax-ml-1\"></ax-badge>\n }\n </div>\n\n <!-- Metadata -->\n <div class=\"ax-flex ax-flex-wrap ax-gap-x-3 ax-gap-y-1 ax-mt-1 ax-text-xs ax-text-gray-500\">\n @if(showDate() && task.dueDate) {\n <span class=\"ax-flex ax-items-center ax-gap-1\" [class.ax-text-danger-500]=\"getDaysDifference(task.dueDate) < 0\">\n <ax-icon><i class=\"fa-light fa-calendar\"></i></ax-icon>\n {{ formatDueDate(task.dueDate) }}\n </span>\n } @if(showAssignee() && task.assignedTo) {\n <span class=\"ax-flex ax-items-center ax-gap-1\">\n <ax-icon><i class=\"fa-light fa-user\"></i></ax-icon>\n {{ task.assignedTo.name }}\n </span>\n }\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [":host{display:block;height:100%;width:100%}.task-completed{text-decoration:line-through;color:var(--ax-text-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i1$2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i1.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "checked", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14617
|
+
}
|
|
14618
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTaskListWidgetViewComponent, decorators: [{
|
|
14619
|
+
type: Component,
|
|
14620
|
+
args: [{ standalone: true, imports: [
|
|
14621
|
+
CommonModule,
|
|
14622
|
+
AXTabsModule,
|
|
14623
|
+
AXDecoratorModule,
|
|
14624
|
+
AXButtonModule,
|
|
14625
|
+
AXBadgeModule,
|
|
14626
|
+
AXAvatarModule,
|
|
14627
|
+
AXImageModule,
|
|
14628
|
+
AXCheckBoxModule,
|
|
14629
|
+
AXLabelModule,
|
|
14630
|
+
AXTranslationModule,
|
|
14631
|
+
], providers: [DatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-size-full ax-p-4\">\n <!-- Header -->\n <div class=\"ax-flex ax-justify-between ax-items-center ax-mb-3\">\n <h3 class=\"ax-text-lg ax-font-semibold\">{{ 'widget.tasklist.title' | translate | async }}</h3>\n <div class=\"ax-flex ax-gap-2\">\n @if(getPendingTaskCount() > 0){\n <ax-badge\n [text]=\"getPendingTaskCount() + ' ' + ('widget.tasklist.pending' | translate | async)\"\n [color]=\"'warning'\"\n size=\"sm\"\n class=\"ax-ml-1\"\n >\n </ax-badge>\n } @if(getCompletedTaskCount() > 0){\n <ax-badge\n [text]=\"getCompletedTaskCount() + ' ' + ('widget.tasklist.completed' | translate | async)\"\n [color]=\"'success'\"\n size=\"sm\"\n class=\"ax-ml-1\"\n >\n </ax-badge>\n }\n </div>\n </div>\n\n <!-- Task List -->\n <div class=\"ax-space-y-4 ax-my-4 ax-px-2\">\n @if (showCategories() && hasCategories()) {\n <!-- Categorized Tasks -->\n @for (category of getCategories(); track category) {\n <div class=\"ax-mb-3\">\n <!-- Category Header -->\n <div class=\"ax-flex ax-justify-between ax-items-center ax-mb-2 ax-h-5\">\n <h4 class=\"ax-font-medium ax-text-gray-700\">{{ category }}</h4>\n @if(getCategoryTaskCount(category)){\n <ax-badge [text]=\"getCategoryTaskCount(category).toString()\" [color]=\"'primary'\" size=\"sm\"></ax-badge>\n }\n </div>\n <!-- Tasks in Category -->\n @for (task of getTasksByCategory(category); track task.id) {\n <ng-container\n [ngTemplateOutlet]=\"taskItemTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: task }\"\n ></ng-container>\n }\n </div>\n } } @else {\n <!-- Uncategorized Tasks -->\n @for (task of taskItems(); track task.id) {\n <ng-container\n [ngTemplateOutlet]=\"taskItemTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: task }\"\n ></ng-container>\n } @empty {\n <!-- Empty State -->\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-12 ax-px-4 ax-text-gray-400\">\n <ax-icon class=\"ax-text-4xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-clipboard-list-check\"></i>\n </ax-icon>\n <p class=\"ax-text-center\">{{ 'widget.tasklist.noTasks' | translate | async }}</p>\n </div>\n } }\n </div>\n</div>\n\n<!-- Task Item Template -->\n<ng-template #taskItemTemplateRef let-task>\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-py-2 ax-border-b ax-border-gray-100 last:ax-border-0\">\n <!-- Checkbox -->\n <ax-check-box\n class=\"ax-flex-shrink-0\"\n [value]=\"task.completed\"\n [disabled]=\"!allowMarkComplete()\"\n (valueChange)=\"onTaskCompletionChange(task, $event)\"\n >\n </ax-check-box>\n\n <!-- Task Details -->\n <div class=\"ax-overflow-hidden ax-grow ax-text-start\" (click)=\"onTaskClick(task)\">\n <!-- Title and Priority -->\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <h6\n class=\"ax-font-semibold ax-truncate ax-pb-1\"\n [class.ax-line-through]=\"task.completed\"\n [class.ax-text-gray-400]=\"task.completed\"\n >\n {{ task.title }}\n </h6>\n @if(showPriority() && task.priority) {\n <ax-badge [color]=\"getPriorityColor(task.priority)\" [text]=\"task.priority\" size=\"sm\" class=\"ax-ml-1\"></ax-badge>\n }\n </div>\n\n <!-- Metadata -->\n <div class=\"ax-flex ax-flex-wrap ax-gap-x-3 ax-gap-y-1 ax-mt-1 ax-text-xs ax-text-gray-500\">\n @if(showDate() && task.dueDate) {\n <span class=\"ax-flex ax-items-center ax-gap-1\" [class.ax-text-danger-500]=\"getDaysDifference(task.dueDate) < 0\">\n <ax-icon><i class=\"fa-light fa-calendar\"></i></ax-icon>\n {{ formatDueDate(task.dueDate) }}\n </span>\n } @if(showAssignee() && task.assignedTo) {\n <span class=\"ax-flex ax-items-center ax-gap-1\">\n <ax-icon><i class=\"fa-light fa-user\"></i></ax-icon>\n {{ task.assignedTo.name }}\n </span>\n }\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [":host{display:block;height:100%;width:100%}.task-completed{text-decoration:line-through;color:var(--ax-text-secondary)}\n"] }]
|
|
14632
|
+
}] });
|
|
14633
|
+
|
|
14634
|
+
var tasklistWidget_component = /*#__PURE__*/Object.freeze({
|
|
14635
|
+
__proto__: null,
|
|
14636
|
+
AXPTaskListWidgetViewComponent: AXPTaskListWidgetViewComponent
|
|
14637
|
+
});
|
|
14638
|
+
|
|
14639
|
+
const AXPTaskListWidget = {
|
|
14640
|
+
name: 'task-list',
|
|
14641
|
+
title: 'Task List Widget',
|
|
14642
|
+
categories: [AXP_WIDGETS_CHART_CATEGORY],
|
|
14643
|
+
groups: [AXPWidgetGroupEnum.DashboardWidget],
|
|
14644
|
+
type: 'dashboard',
|
|
14645
|
+
icon: 'fa-light fa-clipboard-list-check',
|
|
14646
|
+
properties: [
|
|
14647
|
+
cloneProperty(AXP_DATA_PATH_PROPERTY, { visible: false }),
|
|
14648
|
+
// Display options
|
|
14649
|
+
{
|
|
14650
|
+
name: 'maxItems',
|
|
14651
|
+
title: 'Max Items',
|
|
14652
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
14653
|
+
schema: {
|
|
14654
|
+
defaultValue: 10,
|
|
14655
|
+
dataType: 'number',
|
|
14656
|
+
interface: {
|
|
14657
|
+
name: 'maxItems',
|
|
14658
|
+
path: 'options.maxItems',
|
|
14659
|
+
type: AXPWidgetsCatalog.number,
|
|
14660
|
+
options: {
|
|
14661
|
+
minValue: 1,
|
|
14662
|
+
maxValue: 50,
|
|
14663
|
+
},
|
|
14664
|
+
},
|
|
14665
|
+
},
|
|
14666
|
+
visible: true,
|
|
14667
|
+
},
|
|
14668
|
+
{
|
|
14669
|
+
name: 'showDate',
|
|
14670
|
+
title: 'Show Date',
|
|
14671
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
14672
|
+
schema: {
|
|
14673
|
+
defaultValue: true,
|
|
14674
|
+
dataType: 'boolean',
|
|
14675
|
+
interface: {
|
|
14676
|
+
name: 'showDate',
|
|
14677
|
+
path: 'options.showDate',
|
|
14678
|
+
type: AXPWidgetsCatalog.toggle,
|
|
14679
|
+
},
|
|
14680
|
+
},
|
|
14681
|
+
visible: true,
|
|
14682
|
+
},
|
|
14683
|
+
{
|
|
14684
|
+
name: 'showAssignee',
|
|
14685
|
+
title: 'Show Assignee',
|
|
14686
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
14687
|
+
schema: {
|
|
14688
|
+
defaultValue: true,
|
|
14689
|
+
dataType: 'boolean',
|
|
14690
|
+
interface: {
|
|
14691
|
+
name: 'showAssignee',
|
|
14692
|
+
path: 'options.showAssignee',
|
|
14693
|
+
type: AXPWidgetsCatalog.toggle,
|
|
14694
|
+
},
|
|
14695
|
+
},
|
|
14696
|
+
visible: true,
|
|
14697
|
+
},
|
|
14698
|
+
{
|
|
14699
|
+
name: 'groupByCategory',
|
|
14700
|
+
title: 'Group by Category',
|
|
14701
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
14702
|
+
schema: {
|
|
14703
|
+
defaultValue: true,
|
|
14704
|
+
dataType: 'boolean',
|
|
14705
|
+
interface: {
|
|
14706
|
+
name: 'groupByCategory',
|
|
14707
|
+
path: 'options.groupByCategory',
|
|
14708
|
+
type: AXPWidgetsCatalog.toggle,
|
|
14709
|
+
},
|
|
14710
|
+
},
|
|
14711
|
+
visible: true,
|
|
14712
|
+
},
|
|
14713
|
+
{
|
|
14714
|
+
name: 'showPriority',
|
|
14715
|
+
title: 'Show Priority',
|
|
14716
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
14717
|
+
schema: {
|
|
14718
|
+
defaultValue: true,
|
|
14719
|
+
dataType: 'boolean',
|
|
14720
|
+
interface: {
|
|
14721
|
+
name: 'showPriority',
|
|
14722
|
+
path: 'options.showPriority',
|
|
14723
|
+
type: AXPWidgetsCatalog.toggle,
|
|
14724
|
+
},
|
|
14725
|
+
},
|
|
14726
|
+
visible: true,
|
|
14727
|
+
},
|
|
14728
|
+
{
|
|
14729
|
+
name: 'allowMarkComplete',
|
|
14730
|
+
title: 'Allow Complete',
|
|
14731
|
+
group: AXP_APPEARANCE_PROPERTY_GROUP,
|
|
14732
|
+
schema: {
|
|
14733
|
+
defaultValue: true,
|
|
14734
|
+
dataType: 'boolean',
|
|
14735
|
+
interface: {
|
|
14736
|
+
name: 'allowMarkComplete',
|
|
14737
|
+
path: 'options.allowMarkComplete',
|
|
14738
|
+
type: AXPWidgetsCatalog.toggle,
|
|
14739
|
+
},
|
|
14740
|
+
},
|
|
14741
|
+
visible: true,
|
|
14742
|
+
},
|
|
14743
|
+
],
|
|
14744
|
+
components: {
|
|
14745
|
+
view: {
|
|
14746
|
+
component: () => Promise.resolve().then(function () { return tasklistWidget_component; }).then((c) => c.AXPTaskListWidgetViewComponent),
|
|
14747
|
+
},
|
|
14748
|
+
},
|
|
14749
|
+
meta: {
|
|
14750
|
+
dimensions: {
|
|
14751
|
+
width: 5,
|
|
14752
|
+
height: 7,
|
|
14753
|
+
minWidth: 3,
|
|
14754
|
+
minHeight: 4,
|
|
14755
|
+
maxWidth: 6,
|
|
14756
|
+
maxHeight: 8,
|
|
14757
|
+
},
|
|
14758
|
+
},
|
|
14759
|
+
};
|
|
14760
|
+
|
|
14255
14761
|
/**
|
|
14256
14762
|
* Abstract Weather API Service
|
|
14257
14763
|
* Base class that defines the interface and common functionality
|
|
@@ -15332,6 +15838,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
15332
15838
|
}]
|
|
15333
15839
|
}] });
|
|
15334
15840
|
|
|
15841
|
+
// export interface AXPWidgetOptions {
|
|
15842
|
+
// }
|
|
15843
|
+
// export interface AXPWidgetConfig<T extends AXPWidgetOptions> {
|
|
15844
|
+
// name: string;
|
|
15845
|
+
// options: T;
|
|
15846
|
+
// }
|
|
15847
|
+
// export interface AXpTextBoxWidget {
|
|
15848
|
+
// }
|
|
15849
|
+
// export interface AXPTextBoxWidgetOptions {
|
|
15850
|
+
// disabled?: boolean;
|
|
15851
|
+
// readonly?: boolean;
|
|
15852
|
+
// hasClearButton?: boolean;
|
|
15853
|
+
// placeholder?: string;
|
|
15854
|
+
// }
|
|
15855
|
+
|
|
15335
15856
|
class AXPCronJobWidgetViewComponent extends AXPValueWidgetComponent {
|
|
15336
15857
|
constructor() {
|
|
15337
15858
|
super(...arguments);
|
|
@@ -18109,7 +18630,7 @@ class AXPPanelWidgetDesignerComponent extends AXPLayoutWidgetComponent {
|
|
|
18109
18630
|
super(...arguments);
|
|
18110
18631
|
this.caption = computed(() => this.options()['caption'] || 'Panel');
|
|
18111
18632
|
this.icon = computed(() => this.options()['icon'] || '');
|
|
18112
|
-
this.look = computed(() => this.options()['look']
|
|
18633
|
+
this.look = computed(() => this.options()['look'] || 'solid');
|
|
18113
18634
|
this.disabled = computed(() => this.options()['disabled'] || false);
|
|
18114
18635
|
this.showHeader = computed(() => this.options()['showHeader'] ?? true);
|
|
18115
18636
|
this.collapsed = computed(() => this.options()['collapsed'] || false);
|
|
@@ -18132,57 +18653,59 @@ class AXPPanelWidgetDesignerComponent extends AXPLayoutWidgetComponent {
|
|
|
18132
18653
|
useExisting: AXPPanelWidgetDesignerComponent,
|
|
18133
18654
|
},
|
|
18134
18655
|
], usesInheritance: true, ngImport: i0, template: `
|
|
18656
|
+
<ax-collapse-group [look]="look()">
|
|
18135
18657
|
<ax-collapse
|
|
18136
18658
|
[caption]="caption()"
|
|
18137
18659
|
[icon]="icon()"
|
|
18138
|
-
[look]="look()"
|
|
18139
18660
|
[showHeader]="showHeader()"
|
|
18140
18661
|
[isCollapsed]="collapsed()"
|
|
18141
18662
|
(isCollapsedChange)="handleCollapsedChange($event)"
|
|
18142
18663
|
>
|
|
18143
18664
|
@for (node of children(); track $index) {
|
|
18144
|
-
|
|
18145
|
-
|
|
18146
|
-
|
|
18147
|
-
|
|
18148
|
-
|
|
18149
|
-
|
|
18150
|
-
|
|
18151
|
-
|
|
18152
|
-
|
|
18153
|
-
|
|
18154
|
-
|
|
18665
|
+
<ng-container
|
|
18666
|
+
axp-widget-designer-renderer
|
|
18667
|
+
[node]="node"
|
|
18668
|
+
[parentNode]="this"
|
|
18669
|
+
[mode]="this.mode"
|
|
18670
|
+
[locked]="this.locked"
|
|
18671
|
+
></ng-container>
|
|
18672
|
+
} @empty {
|
|
18673
|
+
<axp-designer-add-widget-mini-button
|
|
18674
|
+
class="ax-flex-1 ax-self-center ax-place-self-end"
|
|
18675
|
+
></axp-designer-add-widget-mini-button>
|
|
18155
18676
|
}
|
|
18156
18677
|
</ax-collapse>
|
|
18157
|
-
|
|
18678
|
+
</ax-collapse-group>
|
|
18679
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXCollapseModule }, { kind: "component", type: i1$c.AXCollapseComponent, selector: "ax-collapse", inputs: ["disabled", "look", "isCollapsed", "showHeader", "caption", "icon", "isLoading", "headerTemplate"], outputs: ["onClick", "isCollapsedChange"] }, { kind: "component", type: i1$c.AXCollapseGroupComponent, selector: "ax-collapse-group", inputs: ["look", "accordion", "activeIndex"], outputs: ["accordionChange", "activeIndexChange"] }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetMiniButtonComponent, selector: "axp-designer-add-widget-mini-button", outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18158
18680
|
}
|
|
18159
18681
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPanelWidgetDesignerComponent, decorators: [{
|
|
18160
18682
|
type: Component,
|
|
18161
18683
|
args: [{
|
|
18162
18684
|
selector: 'axp-panel-widget',
|
|
18163
18685
|
template: `
|
|
18686
|
+
<ax-collapse-group [look]="look()">
|
|
18164
18687
|
<ax-collapse
|
|
18165
18688
|
[caption]="caption()"
|
|
18166
18689
|
[icon]="icon()"
|
|
18167
|
-
[look]="look()"
|
|
18168
18690
|
[showHeader]="showHeader()"
|
|
18169
18691
|
[isCollapsed]="collapsed()"
|
|
18170
18692
|
(isCollapsedChange)="handleCollapsedChange($event)"
|
|
18171
18693
|
>
|
|
18172
18694
|
@for (node of children(); track $index) {
|
|
18173
|
-
|
|
18174
|
-
|
|
18175
|
-
|
|
18176
|
-
|
|
18177
|
-
|
|
18178
|
-
|
|
18179
|
-
|
|
18180
|
-
|
|
18181
|
-
|
|
18182
|
-
|
|
18183
|
-
|
|
18695
|
+
<ng-container
|
|
18696
|
+
axp-widget-designer-renderer
|
|
18697
|
+
[node]="node"
|
|
18698
|
+
[parentNode]="this"
|
|
18699
|
+
[mode]="this.mode"
|
|
18700
|
+
[locked]="this.locked"
|
|
18701
|
+
></ng-container>
|
|
18702
|
+
} @empty {
|
|
18703
|
+
<axp-designer-add-widget-mini-button
|
|
18704
|
+
class="ax-flex-1 ax-self-center ax-place-self-end"
|
|
18705
|
+
></axp-designer-add-widget-mini-button>
|
|
18184
18706
|
}
|
|
18185
18707
|
</ax-collapse>
|
|
18708
|
+
</ax-collapse-group>
|
|
18186
18709
|
`,
|
|
18187
18710
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18188
18711
|
imports: [
|
|
@@ -18215,7 +18738,7 @@ class AXPPanelWidgetViewComponent extends AXPLayoutWidgetComponent {
|
|
|
18215
18738
|
super(...arguments);
|
|
18216
18739
|
this.caption = computed(() => this.options()['caption'] || 'Panel');
|
|
18217
18740
|
this.icon = computed(() => this.options()['icon'] || '');
|
|
18218
|
-
this.look = computed(() => this.options()['look']
|
|
18741
|
+
this.look = computed(() => this.options()['look'] || 'solid');
|
|
18219
18742
|
this.disabled = computed(() => this.options()['disabled'] || false);
|
|
18220
18743
|
this.showHeader = computed(() => this.options()['showHeader'] ?? true);
|
|
18221
18744
|
this.collapsed = computed(() => this.options()['collapsed'] || false);
|
|
@@ -18235,10 +18758,10 @@ class AXPPanelWidgetViewComponent extends AXPLayoutWidgetComponent {
|
|
|
18235
18758
|
}
|
|
18236
18759
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPanelWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
18237
18760
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPPanelWidgetViewComponent, isStandalone: true, selector: "axp-panel-widget", host: { properties: { "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
|
|
18761
|
+
<ax-collapse-group [look]="look()">
|
|
18238
18762
|
<ax-collapse
|
|
18239
18763
|
[caption]="caption()"
|
|
18240
18764
|
[icon]="icon()"
|
|
18241
|
-
[look]="look()"
|
|
18242
18765
|
[showHeader]="showHeader()"
|
|
18243
18766
|
[isCollapsed]="collapsed()"
|
|
18244
18767
|
(isCollapsedChange)="handleCollapsedChange($event)"
|
|
@@ -18253,17 +18776,18 @@ class AXPPanelWidgetViewComponent extends AXPLayoutWidgetComponent {
|
|
|
18253
18776
|
></ng-container>
|
|
18254
18777
|
}
|
|
18255
18778
|
</ax-collapse>
|
|
18256
|
-
|
|
18779
|
+
</ax-collapse-group>
|
|
18780
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "directive", type: i1$7.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXCollapseModule }, { kind: "component", type: i1$c.AXCollapseComponent, selector: "ax-collapse", inputs: ["disabled", "look", "isCollapsed", "showHeader", "caption", "icon", "isLoading", "headerTemplate"], outputs: ["onClick", "isCollapsedChange"] }, { kind: "component", type: i1$c.AXCollapseGroupComponent, selector: "ax-collapse-group", inputs: ["look", "accordion", "activeIndex"], outputs: ["accordionChange", "activeIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18257
18781
|
}
|
|
18258
18782
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPanelWidgetViewComponent, decorators: [{
|
|
18259
18783
|
type: Component,
|
|
18260
18784
|
args: [{
|
|
18261
18785
|
selector: 'axp-panel-widget',
|
|
18262
18786
|
template: `
|
|
18787
|
+
<ax-collapse-group [look]="look()">
|
|
18263
18788
|
<ax-collapse
|
|
18264
18789
|
[caption]="caption()"
|
|
18265
18790
|
[icon]="icon()"
|
|
18266
|
-
[look]="look()"
|
|
18267
18791
|
[showHeader]="showHeader()"
|
|
18268
18792
|
[isCollapsed]="collapsed()"
|
|
18269
18793
|
(isCollapsedChange)="handleCollapsedChange($event)"
|
|
@@ -18278,6 +18802,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
18278
18802
|
></ng-container>
|
|
18279
18803
|
}
|
|
18280
18804
|
</ax-collapse>
|
|
18805
|
+
</ax-collapse-group>
|
|
18281
18806
|
`,
|
|
18282
18807
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18283
18808
|
imports: [CommonModule, AXPLayoutBuilderModule, AXCollapseModule],
|
|
@@ -18344,6 +18869,7 @@ const AXPPanelWidget = {
|
|
|
18344
18869
|
name: 'look',
|
|
18345
18870
|
path: 'options.look',
|
|
18346
18871
|
type: AXPWidgetsCatalog.select,
|
|
18872
|
+
valueTransforms: objectKeyValueTransforms('id'),
|
|
18347
18873
|
options: {
|
|
18348
18874
|
dataSource: [
|
|
18349
18875
|
{ id: 'solid', title: 'Solid' },
|
|
@@ -18552,6 +19078,8 @@ class AXPWidgetsModule {
|
|
|
18552
19078
|
//Custom Widgets
|
|
18553
19079
|
AXPNumberUnitBoxWidget,
|
|
18554
19080
|
AXPPanelWidget,
|
|
19081
|
+
AXPNotificationWidget,
|
|
19082
|
+
AXPTaskListWidget,
|
|
18555
19083
|
],
|
|
18556
19084
|
})] }); }
|
|
18557
19085
|
}
|
|
@@ -18630,6 +19158,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
18630
19158
|
//Custom Widgets
|
|
18631
19159
|
AXPNumberUnitBoxWidget,
|
|
18632
19160
|
AXPPanelWidget,
|
|
19161
|
+
AXPNotificationWidget,
|
|
19162
|
+
AXPTaskListWidget,
|
|
18633
19163
|
],
|
|
18634
19164
|
}),
|
|
18635
19165
|
],
|
|
@@ -18646,5 +19176,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
18646
19176
|
* Generated bundle index. Do not edit.
|
|
18647
19177
|
*/
|
|
18648
19178
|
|
|
18649
|
-
export { AXPAdvancedGridItemWidget, AXPAdvancedGridItemWidgetDesignerComponent, AXPAdvancedGridItemWidgetPrintComponent, AXPAdvancedGridItemWidgetViewComponent, AXPAdvancedGridOptionsWidget, AXPAdvancedGridOptionsWidgetEditComponent, AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetPrintComponent, AXPAvatarWidgetViewComponent, AXPBarChartWidget, AXPBarChartWidgetViewComponent, AXPBetweenExpressionValidationWidget, AXPBetweenValidationWidgetEditComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetViewComponent, AXPCallbackValidationWidget, AXPCallbackValidationWidgetEditComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetEditComponent, AXPClockCalendarWidget, AXPClockCalendarWidgetViewComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetPrintComponent, AXPContactWidgetViewComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetFilterComponent, AXPDateTimeBoxWidgetPrintComponent, AXPDateTimeBoxWidgetViewComponent, AXPDonutChartWidget, AXPDonutChartWidgetViewComponent, AXPEmailBoxWidget, AXPEmailBoxWidgetColumnComponent, AXPEmailBoxWidgetEditComponent, AXPEmailBoxWidgetFilterComponent, AXPEmailBoxWidgetPrintComponent, AXPEmailBoxWidgetViewComponent, AXPEqualValidationWidget, AXPEqualValidationWidgetEditComponent, AXPFileBoxWidget, AXPFileBoxWidgetColumnComponent, AXPFileBoxWidgetEditComponent, AXPFileBoxWidgetFilterComponent, AXPFileBoxWidgetPrintComponent, AXPFileBoxWidgetViewComponent, AXPFileManagementService, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPGalleryWidget, AXPGalleryWidgetEditComponent, AXPGalleryWidgetPrintComponent, AXPGalleryWidgetViewComponent, AXPGaugeChartWidget, AXPGaugeChartWidgetViewComponent, 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, AXPSingleFileBoxWidget, AXPSingleFileBoxWidgetColumnComponent, AXPSingleFileBoxWidgetEditComponent, AXPSingleFileBoxWidgetFilterComponent, AXPSingleFileBoxWidgetPrintComponent, AXPSingleFileBoxWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPStickyNoteWidget, AXPStickyNoteWidgetViewComponent, AXPTemplateBoxWidget, AXPTemplateBoxWidgetColumnComponent, AXPTemplateBoxWidgetEditComponent, AXPTemplateBoxWidgetFilterComponent, AXPTemplateBoxWidgetPrintComponent, AXPTemplateBoxWidgetViewComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetFilterComponent, AXPTextBoxWidgetPrintComponent$1 as AXPTextBoxWidgetPrintComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetFilterComponent, AXPToggleWidgetPrintComponent, AXPToggleWidgetViewComponent, AXPWeatherApiAbstract, AXPWeatherApiMockService, AXPWeatherApiService, AXPWeatherWidget, AXPWeatherWidgetModule, AXPWeatherWidgetViewComponent, AXPWidgetsModule, AXP_ALLOW_MULTIPLE_PROPERTY, AXP_ALLOW_SEARCH_PROPERTY, AXP_ANIMATION_PROPERTY_GROUP, AXP_APPEARANCE_PROPERTY_GROUP, 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_OPTIONS, 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_BORDER_PROPERTY, AXP_LAYOUT_COLUMNS_PROPERTY, AXP_LAYOUT_COL_END_PROPERTY, AXP_LAYOUT_COL_SPAN_PROPERTY, AXP_LAYOUT_COL_START_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY_GROUP, 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_TIMEZONE_OPTIONS, 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 };
|
|
19179
|
+
export { AXPAdvancedGridItemWidget, AXPAdvancedGridItemWidgetDesignerComponent, AXPAdvancedGridItemWidgetPrintComponent, AXPAdvancedGridItemWidgetViewComponent, AXPAdvancedGridOptionsWidget, AXPAdvancedGridOptionsWidgetEditComponent, AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetPrintComponent, AXPAvatarWidgetViewComponent, AXPBarChartWidget, AXPBarChartWidgetViewComponent, AXPBetweenExpressionValidationWidget, AXPBetweenValidationWidgetEditComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetViewComponent, AXPCallbackValidationWidget, AXPCallbackValidationWidgetEditComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetEditComponent, AXPClockCalendarWidget, AXPClockCalendarWidgetViewComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetPrintComponent, AXPContactWidgetViewComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetFilterComponent, AXPDateTimeBoxWidgetPrintComponent, AXPDateTimeBoxWidgetViewComponent, AXPDonutChartWidget, AXPDonutChartWidgetViewComponent, AXPEmailBoxWidget, AXPEmailBoxWidgetColumnComponent, AXPEmailBoxWidgetEditComponent, AXPEmailBoxWidgetFilterComponent, AXPEmailBoxWidgetPrintComponent, AXPEmailBoxWidgetViewComponent, AXPEqualValidationWidget, AXPEqualValidationWidgetEditComponent, AXPFileBoxWidget, AXPFileBoxWidgetColumnComponent, AXPFileBoxWidgetEditComponent, AXPFileBoxWidgetFilterComponent, AXPFileBoxWidgetPrintComponent, AXPFileBoxWidgetViewComponent, AXPFileManagementService, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPGalleryWidget, AXPGalleryWidgetEditComponent, AXPGalleryWidgetPrintComponent, AXPGalleryWidgetViewComponent, AXPGaugeChartWidget, AXPGaugeChartWidgetViewComponent, 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, AXPNotificationWidget, AXPNotificationWidgetViewComponent, 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, AXPSingleFileBoxWidget, AXPSingleFileBoxWidgetColumnComponent, AXPSingleFileBoxWidgetEditComponent, AXPSingleFileBoxWidgetFilterComponent, AXPSingleFileBoxWidgetPrintComponent, AXPSingleFileBoxWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPStickyNoteWidget, AXPStickyNoteWidgetViewComponent, AXPTaskListWidget, AXPTaskListWidgetViewComponent, AXPTemplateBoxWidget, AXPTemplateBoxWidgetColumnComponent, AXPTemplateBoxWidgetEditComponent, AXPTemplateBoxWidgetFilterComponent, AXPTemplateBoxWidgetPrintComponent, AXPTemplateBoxWidgetViewComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetFilterComponent, AXPTextBoxWidgetPrintComponent$1 as AXPTextBoxWidgetPrintComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetFilterComponent, AXPToggleWidgetPrintComponent, AXPToggleWidgetViewComponent, AXPWeatherApiAbstract, AXPWeatherApiMockService, AXPWeatherApiService, AXPWeatherWidget, AXPWeatherWidgetModule, AXPWeatherWidgetViewComponent, AXPWidgetsModule, AXP_ALLOW_MULTIPLE_PROPERTY, AXP_ALLOW_SEARCH_PROPERTY, AXP_ANIMATION_PROPERTY_GROUP, AXP_APPEARANCE_PROPERTY_GROUP, 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_OPTIONS, 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_BORDER_PROPERTY, AXP_LAYOUT_COLUMNS_PROPERTY, AXP_LAYOUT_COL_END_PROPERTY, AXP_LAYOUT_COL_SPAN_PROPERTY, AXP_LAYOUT_COL_START_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY_GROUP, 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_TIMEZONE_OPTIONS, AXP_TITLE_PROPERTY, AXP_TRULY_TEXT_PROPERTY, AXP_VALIDATION_PROPERTY_GROUP, AXP_VALUE_FIELD_PROPERTY, AXP_WIDGETS_CHART_CATEGORY, AXP_WIDGETS_UTILITY_CATEGORY, 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 };
|
|
18650
19180
|
//# sourceMappingURL=acorex-platform-widgets.mjs.map
|