@acorex/platform 21.0.0-next.10 → 21.0.0-next.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/index.d.ts +109 -3
- package/fesm2022/acorex-platform-core.mjs +3 -0
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +0 -2
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +6 -6
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +619 -466
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +2 -2
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +3 -4
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets.mjs +50 -55
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CIV6YDDZ.mjs → acorex-platform-themes-default-entity-master-list-view.component-CD4Q_UIG.mjs} +3 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CD4Q_UIG.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +2 -2
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/entity/index.d.ts +47 -16
- package/layout/widgets/index.d.ts +4 -6
- package/package.json +9 -9
- package/workflow/index.d.ts +4 -4
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CIV6YDDZ.mjs.map +0 -1
|
@@ -3585,7 +3585,7 @@ class AXPAddressWidgetService {
|
|
|
3585
3585
|
.setDirection('row')
|
|
3586
3586
|
.setGap('16px')
|
|
3587
3587
|
.formField('@location-management:locations.entities.location.fields.country', (field) => {
|
|
3588
|
-
field.path('
|
|
3588
|
+
field.path('country.id');
|
|
3589
3589
|
field.customWidget('lookup-editor', {
|
|
3590
3590
|
entity: 'LocationManagement.GeographicRegion',
|
|
3591
3591
|
look: 'select',
|
|
@@ -3599,7 +3599,7 @@ class AXPAddressWidgetService {
|
|
|
3599
3599
|
});
|
|
3600
3600
|
})
|
|
3601
3601
|
.formField('@location-management:locations.entities.location.fields.state', (field) => {
|
|
3602
|
-
field.path('
|
|
3602
|
+
field.path('state.id');
|
|
3603
3603
|
field.customWidget('lookup-editor', {
|
|
3604
3604
|
entity: 'LocationManagement.GeographicRegion',
|
|
3605
3605
|
look: 'select',
|
|
@@ -3612,15 +3612,15 @@ class AXPAddressWidgetService {
|
|
|
3612
3612
|
filter: {
|
|
3613
3613
|
logic: 'and',
|
|
3614
3614
|
filters: [
|
|
3615
|
-
{ field: 'parentId', operator: { type: 'equal' }, value: '{{ context.eval("
|
|
3615
|
+
{ field: 'parentId', operator: { type: 'equal' }, value: '{{ context.eval("country.id") }}' },
|
|
3616
3616
|
{ field: 'type.code', operator: { type: 'equal' }, value: 'state' },
|
|
3617
3617
|
],
|
|
3618
3618
|
},
|
|
3619
|
-
triggers: [{ event: "{{ events.context('
|
|
3619
|
+
triggers: [{ event: "{{ events.context('country.id') }}", action: '{{ widget.refresh() }}' }],
|
|
3620
3620
|
});
|
|
3621
3621
|
})
|
|
3622
3622
|
.formField('@location-management:locations.entities.location.fields.city', (field) => {
|
|
3623
|
-
field.path('
|
|
3623
|
+
field.path('city.id');
|
|
3624
3624
|
field.customWidget('lookup-editor', {
|
|
3625
3625
|
entity: 'LocationManagement.GeographicRegion',
|
|
3626
3626
|
look: 'select',
|
|
@@ -3633,11 +3633,11 @@ class AXPAddressWidgetService {
|
|
|
3633
3633
|
filter: {
|
|
3634
3634
|
logic: 'and',
|
|
3635
3635
|
filters: [
|
|
3636
|
-
{ field: 'parentId', operator: { type: 'equal' }, value: '{{ context.eval("
|
|
3636
|
+
{ field: 'parentId', operator: { type: 'equal' }, value: '{{ context.eval("state.id") }}' },
|
|
3637
3637
|
{ field: 'type.code', operator: { type: 'equal' }, value: 'city' },
|
|
3638
3638
|
],
|
|
3639
3639
|
},
|
|
3640
|
-
triggers: [{ event: "{{ events.context('
|
|
3640
|
+
triggers: [{ event: "{{ events.context('state.id') }}", action: '{{ widget.refresh() }}' }],
|
|
3641
3641
|
});
|
|
3642
3642
|
});
|
|
3643
3643
|
})
|
|
@@ -3689,9 +3689,9 @@ class AXPAddressWidgetService {
|
|
|
3689
3689
|
return {
|
|
3690
3690
|
street1: value.street1 ?? '',
|
|
3691
3691
|
street2: value.street2,
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3692
|
+
country: value.country,
|
|
3693
|
+
state: value.state,
|
|
3694
|
+
city: value.city,
|
|
3695
3695
|
postalCode: value.postalCode,
|
|
3696
3696
|
coordinates: value.coordinates,
|
|
3697
3697
|
full: value.full ?? this.formatAddress(value),
|
|
@@ -3702,9 +3702,9 @@ class AXPAddressWidgetService {
|
|
|
3702
3702
|
return {
|
|
3703
3703
|
street1: '',
|
|
3704
3704
|
street2: '',
|
|
3705
|
-
|
|
3706
|
-
|
|
3707
|
-
|
|
3705
|
+
country: undefined,
|
|
3706
|
+
state: undefined,
|
|
3707
|
+
city: undefined,
|
|
3708
3708
|
postalCode: '',
|
|
3709
3709
|
coordinates: undefined,
|
|
3710
3710
|
full: value?.toString() || '',
|
|
@@ -4199,6 +4199,8 @@ class AXPDateTimeBoxWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
4199
4199
|
this.settingsService = inject(AXPSettingsService);
|
|
4200
4200
|
this.multiple = computed(() => this.options()['multiple'], ...(ngDevMode ? [{ debugName: "multiple" }] : []));
|
|
4201
4201
|
this.clearButton = computed(() => this.options()['clearButton'], ...(ngDevMode ? [{ debugName: "clearButton" }] : []));
|
|
4202
|
+
this.minValue = computed(() => this.options()['minValue'], ...(ngDevMode ? [{ debugName: "minValue" }] : []));
|
|
4203
|
+
this.maxValue = computed(() => this.options()['maxValue'], ...(ngDevMode ? [{ debugName: "maxValue" }] : []));
|
|
4202
4204
|
this.dateMode = computed(() => this.options()['mode'] || 'short', ...(ngDevMode ? [{ debugName: "dateMode" }] : []));
|
|
4203
4205
|
this.format = computed(() => {
|
|
4204
4206
|
const rawValue = this.options()['format'];
|
|
@@ -4270,6 +4272,8 @@ class AXPDateTimeBoxWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
4270
4272
|
class="ax-col-span-12"
|
|
4271
4273
|
[ngModel]="datetime"
|
|
4272
4274
|
(onValueChanged)="handleValueChange($event, $index)"
|
|
4275
|
+
[minValue]="minValue()"
|
|
4276
|
+
[maxValue]="maxValue()"
|
|
4273
4277
|
[disabled]="disabled()"
|
|
4274
4278
|
[readonly]="readonly()"
|
|
4275
4279
|
[format]="calendarFormat()"
|
|
@@ -4317,6 +4321,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
4317
4321
|
class="ax-col-span-12"
|
|
4318
4322
|
[ngModel]="datetime"
|
|
4319
4323
|
(onValueChanged)="handleValueChange($event, $index)"
|
|
4324
|
+
[minValue]="minValue()"
|
|
4325
|
+
[maxValue]="maxValue()"
|
|
4320
4326
|
[disabled]="disabled()"
|
|
4321
4327
|
[readonly]="readonly()"
|
|
4322
4328
|
[format]="calendarFormat()"
|
|
@@ -6787,7 +6793,9 @@ class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent {
|
|
|
6787
6793
|
const cleanedFilters = AXPCleanNestedFilters([this.filter()]);
|
|
6788
6794
|
if (cleanedFilters.length > 0) {
|
|
6789
6795
|
untracked(() => {
|
|
6790
|
-
|
|
6796
|
+
setTimeout(() => {
|
|
6797
|
+
this.dataSource()?.filter(this.filterOperatorMiddleware.transformFilter(cleanedFilters[0]));
|
|
6798
|
+
});
|
|
6791
6799
|
});
|
|
6792
6800
|
}
|
|
6793
6801
|
}
|
|
@@ -10562,9 +10570,8 @@ class AXPFileListComponent {
|
|
|
10562
10570
|
const key = file.id ?? String(index);
|
|
10563
10571
|
// Start with default actions
|
|
10564
10572
|
const defaultActions = this.getDefaultActions(file);
|
|
10565
|
-
// Get global actions from FileUploaderWebhookKeys.Actions hook
|
|
10566
|
-
const globalActions = this.globalActions();
|
|
10567
10573
|
// Get per-file actions from FileUploaderWebhookKeys.FileItem.Actions hook
|
|
10574
|
+
// Note: globalActions are only for toolbar, not for per-file actions
|
|
10568
10575
|
const fileItemPayload = await this.hooks.runAsync(FileUploaderWebhookKeys.FileItem.Actions, {
|
|
10569
10576
|
host: this.host(),
|
|
10570
10577
|
item: file,
|
|
@@ -10574,8 +10581,8 @@ class AXPFileListComponent {
|
|
|
10574
10581
|
capabilities: {},
|
|
10575
10582
|
actions: [],
|
|
10576
10583
|
});
|
|
10577
|
-
// Combine all actions: default +
|
|
10578
|
-
const allActions = [...defaultActions, ...
|
|
10584
|
+
// Combine all actions: default + file-item specific (exclude globalActions from per-file items)
|
|
10585
|
+
const allActions = [...defaultActions, ...(fileItemPayload?.actions ?? [])];
|
|
10579
10586
|
// Filter actions based on plugins and excludePlugins
|
|
10580
10587
|
const enabledPlugins = this.plugins()?.map((p) => p.name) ?? [];
|
|
10581
10588
|
const excludedPlugins = this.excludePlugins() ?? [];
|
|
@@ -12539,18 +12546,15 @@ class AXPQrcodeWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
12539
12546
|
dialog
|
|
12540
12547
|
.setTitle('QR Code')
|
|
12541
12548
|
.setSize('md')
|
|
12542
|
-
.setContext({
|
|
12543
|
-
.content((
|
|
12544
|
-
|
|
12545
|
-
|
|
12546
|
-
|
|
12547
|
-
|
|
12548
|
-
|
|
12549
|
-
|
|
12550
|
-
|
|
12551
|
-
outputType: this.outputType(),
|
|
12552
|
-
});
|
|
12553
|
-
});
|
|
12549
|
+
.setContext({ qr: contentValue })
|
|
12550
|
+
.content((content) => {
|
|
12551
|
+
content.setDirection('column').setGap('24px').setAlignItems('center').customWidget('qrcode', {
|
|
12552
|
+
path: 'qr',
|
|
12553
|
+
size: this.size(),
|
|
12554
|
+
level: this.level(),
|
|
12555
|
+
color: this.color(),
|
|
12556
|
+
readonly: true,
|
|
12557
|
+
outputType: this.outputType(),
|
|
12554
12558
|
});
|
|
12555
12559
|
})
|
|
12556
12560
|
.setActions((actions) => {
|
|
@@ -12564,8 +12568,7 @@ class AXPQrcodeWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
12564
12568
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXPQrcodeWidgetColumnComponent, isStandalone: true, selector: "axp-qrcode-widget-column", inputs: { rawValue: "rawValue", rowData: "rowData" }, usesInheritance: true, ngImport: i0, template: `
|
|
12565
12569
|
<div class="ax-flex ax-items-center ax-gap-2">
|
|
12566
12570
|
@if (rawValue) {
|
|
12567
|
-
<
|
|
12568
|
-
<ax-button color="default" (click)="showPopup()">
|
|
12571
|
+
<ax-button class="ax-sm" look="twotone" color="default" (click)="showPopup()">
|
|
12569
12572
|
<ax-icon>
|
|
12570
12573
|
<i class="fa-regular fa-qrcode"></i>
|
|
12571
12574
|
</ax-icon>
|
|
@@ -12584,8 +12587,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
12584
12587
|
template: `
|
|
12585
12588
|
<div class="ax-flex ax-items-center ax-gap-2">
|
|
12586
12589
|
@if (rawValue) {
|
|
12587
|
-
<
|
|
12588
|
-
<ax-button color="default" (click)="showPopup()">
|
|
12590
|
+
<ax-button class="ax-sm" look="twotone" color="default" (click)="showPopup()">
|
|
12589
12591
|
<ax-icon>
|
|
12590
12592
|
<i class="fa-regular fa-qrcode"></i>
|
|
12591
12593
|
</ax-icon>
|
|
@@ -12727,7 +12729,7 @@ class AXPQrcodeWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
12727
12729
|
}
|
|
12728
12730
|
}
|
|
12729
12731
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXPQrcodeWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12730
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXPQrcodeWidgetEditComponent, isStandalone: true, selector: "axp-qrcode-widget-edit", host: { classAttribute: "ax-block ax-flex-1" }, usesInheritance: true, ngImport: i0, template: "<!-- Main Container -->\n<div class=\"ax-flex ax-flex-col ax-gap-3 ax-p-3 ax-w-fit\">\n <div class=\"ax-flex ax-justify-center\">\n <!-- QR Code Container -->\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-p-3\" #qr>\n <!-- QR Code Display or Empty Placeholder -->\n @if (value()) {\n
|
|
12732
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXPQrcodeWidgetEditComponent, isStandalone: true, selector: "axp-qrcode-widget-edit", host: { classAttribute: "ax-block ax-flex-1" }, usesInheritance: true, ngImport: i0, template: "<!-- Main Container -->\n<div class=\"ax-flex ax-flex-col ax-gap-3 ax-p-3 ax-w-fit\">\n <div class=\"ax-flex ax-justify-center\">\n <!-- QR Code Container -->\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-p-3\" #qr>\n <!-- QR Code Display or Empty Placeholder -->\n @if (value()) {\n <!-- Display QR Code when value exists -->\n <ax-qrcode [content]=\"value()\" [size]=\"size()\" [color]=\"color()\" [level]=\"level()\" [outputType]=\"'svg'\">\n </ax-qrcode>\n } @else {\n <!-- Empty State: Show placeholder when value is null or empty -->\n <div\n class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-text-center\"\n [style.width.px]=\"size()\"\n [style.height.px]=\"size()\"\n >\n <ax-icon icon=\"fa-light fa-qrcode\" class=\"ax-text-4xl ax-text-gray-400 ax-mb-3\"></ax-icon>\n <div class=\"ax-text-sm ax-text-gray-500\">\n {{ '@general:state-message.empty.title' | translate | async }}\n </div>\n </div>\n }\n\n <!-- Action Buttons Section -->\n @if (!readonly()) {\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2 ax-pt-4\">\n <!-- Edit Button: Opens popover to edit QR code content -->\n <ax-button\n #editBtn\n look=\"twotone\"\n [title]=\"('@general:actions.edit.title' | translate | async)!\"\n (onClick)=\"beginEdit()\"\n >\n <!-- Edit Popover: Text input for editing QR code content -->\n <ax-popover #po [target]=\"editBtn\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div\n class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-p-5 ax-w-full sm:ax-w-96\"\n >\n <!-- Text Input for QR Code Content -->\n <ax-text-box\n [value]=\"draft()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [placeholder]=\"placeholder() | translate | async\"\n (onValueChanged)=\"onDraftChange($event)\"\n >\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n </ax-text-box>\n <!-- Popover Action Buttons -->\n <div class=\"ax-flex ax-justify-end ax-gap-2 ax-mt-3\">\n <ax-button\n look=\"outline\"\n class=\"ax-sm\"\n [text]=\"('@general:actions.cancel.title' | translate | async)!\"\n (onClick)=\"cancelEdit(); po.close()\"\n ></ax-button>\n <ax-button\n look=\"solid\"\n class=\"ax-sm\"\n color=\"primary\"\n [text]=\"('@general:actions.submit.title' | translate | async)!\"\n (onClick)=\"applyDraft(); po.close()\"\n ></ax-button>\n </div>\n </div>\n </ax-popover>\n <ax-icon icon=\"fa-light fa-pen\"></ax-icon>\n </ax-button>\n\n <!-- Upload Button: Upload text file to set QR code content -->\n <!-- <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.upload.title' | translate | async)!\"\n (onClick)=\"fileInput.click()\"\n >\n <input #fileInput type=\"file\" accept=\"text/plain\" class=\"ax-hidden\" (change)=\"onFileSelected($event)\" />\n <ax-icon icon=\"fa-light fa-upload\"></ax-icon>\n </ax-button> -->\n\n <!-- Export Button: Download QR code as image (only shown when value exists) -->\n @if (value()) {\n <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.export.title' | translate | async)!\"\n (onClick)=\"downloadQr(qr)\"\n >\n <ax-icon icon=\"fa-light fa-download\"></ax-icon>\n </ax-button>\n }\n\n <!-- Delete Button: Clear QR code value (only shown when not readonly and value exists) -->\n @if (!readonly() && value()) {\n <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.delete.title' | translate | async)!\"\n (onClick)=\"clearValue()\"\n >\n <ax-icon icon=\"ax-text-danger fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n }\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1$6.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$7.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXQrcodeModule }, { kind: "component", type: i5$1.AXQrcodeComponent, selector: "ax-qrcode", inputs: ["content", "size", "level", "color", "backgroundColor", "outputType"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12731
12733
|
}
|
|
12732
12734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXPQrcodeWidgetEditComponent, decorators: [{
|
|
12733
12735
|
type: Component,
|
|
@@ -12740,7 +12742,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
12740
12742
|
AXTranslationModule,
|
|
12741
12743
|
AsyncPipe,
|
|
12742
12744
|
FormsModule,
|
|
12743
|
-
], host: { class: 'ax-block ax-flex-1' }, template: "<!-- Main Container -->\n<div class=\"ax-flex ax-flex-col ax-gap-3 ax-p-3 ax-w-fit\">\n <div class=\"ax-flex ax-justify-center\">\n <!-- QR Code Container -->\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-p-3\" #qr>\n <!-- QR Code Display or Empty Placeholder -->\n @if (value()) {\n
|
|
12745
|
+
], host: { class: 'ax-block ax-flex-1' }, template: "<!-- Main Container -->\n<div class=\"ax-flex ax-flex-col ax-gap-3 ax-p-3 ax-w-fit\">\n <div class=\"ax-flex ax-justify-center\">\n <!-- QR Code Container -->\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-p-3\" #qr>\n <!-- QR Code Display or Empty Placeholder -->\n @if (value()) {\n <!-- Display QR Code when value exists -->\n <ax-qrcode [content]=\"value()\" [size]=\"size()\" [color]=\"color()\" [level]=\"level()\" [outputType]=\"'svg'\">\n </ax-qrcode>\n } @else {\n <!-- Empty State: Show placeholder when value is null or empty -->\n <div\n class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-text-center\"\n [style.width.px]=\"size()\"\n [style.height.px]=\"size()\"\n >\n <ax-icon icon=\"fa-light fa-qrcode\" class=\"ax-text-4xl ax-text-gray-400 ax-mb-3\"></ax-icon>\n <div class=\"ax-text-sm ax-text-gray-500\">\n {{ '@general:state-message.empty.title' | translate | async }}\n </div>\n </div>\n }\n\n <!-- Action Buttons Section -->\n @if (!readonly()) {\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2 ax-pt-4\">\n <!-- Edit Button: Opens popover to edit QR code content -->\n <ax-button\n #editBtn\n look=\"twotone\"\n [title]=\"('@general:actions.edit.title' | translate | async)!\"\n (onClick)=\"beginEdit()\"\n >\n <!-- Edit Popover: Text input for editing QR code content -->\n <ax-popover #po [target]=\"editBtn\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div\n class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-p-5 ax-w-full sm:ax-w-96\"\n >\n <!-- Text Input for QR Code Content -->\n <ax-text-box\n [value]=\"draft()\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [placeholder]=\"placeholder() | translate | async\"\n (onValueChanged)=\"onDraftChange($event)\"\n >\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n </ax-text-box>\n <!-- Popover Action Buttons -->\n <div class=\"ax-flex ax-justify-end ax-gap-2 ax-mt-3\">\n <ax-button\n look=\"outline\"\n class=\"ax-sm\"\n [text]=\"('@general:actions.cancel.title' | translate | async)!\"\n (onClick)=\"cancelEdit(); po.close()\"\n ></ax-button>\n <ax-button\n look=\"solid\"\n class=\"ax-sm\"\n color=\"primary\"\n [text]=\"('@general:actions.submit.title' | translate | async)!\"\n (onClick)=\"applyDraft(); po.close()\"\n ></ax-button>\n </div>\n </div>\n </ax-popover>\n <ax-icon icon=\"fa-light fa-pen\"></ax-icon>\n </ax-button>\n\n <!-- Upload Button: Upload text file to set QR code content -->\n <!-- <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.upload.title' | translate | async)!\"\n (onClick)=\"fileInput.click()\"\n >\n <input #fileInput type=\"file\" accept=\"text/plain\" class=\"ax-hidden\" (change)=\"onFileSelected($event)\" />\n <ax-icon icon=\"fa-light fa-upload\"></ax-icon>\n </ax-button> -->\n\n <!-- Export Button: Download QR code as image (only shown when value exists) -->\n @if (value()) {\n <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.export.title' | translate | async)!\"\n (onClick)=\"downloadQr(qr)\"\n >\n <ax-icon icon=\"fa-light fa-download\"></ax-icon>\n </ax-button>\n }\n\n <!-- Delete Button: Clear QR code value (only shown when not readonly and value exists) -->\n @if (!readonly() && value()) {\n <ax-button\n look=\"twotone\"\n [title]=\"('@general:actions.delete.title' | translate | async)!\"\n (onClick)=\"clearValue()\"\n >\n <ax-icon icon=\"ax-text-danger fa-light fa-trash-can\"></ax-icon>\n </ax-button>\n }\n </div>\n }\n </div>\n </div>\n</div>\n" }]
|
|
12744
12746
|
}] });
|
|
12745
12747
|
|
|
12746
12748
|
var qrcodeWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
|
@@ -12751,7 +12753,6 @@ var qrcodeWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
|
|
12751
12753
|
class AXPQrcodeWidgetViewComponent extends AXPValueWidgetComponent {
|
|
12752
12754
|
constructor() {
|
|
12753
12755
|
super(...arguments);
|
|
12754
|
-
this.content = computed(() => this.getValue(), ...(ngDevMode ? [{ debugName: "content" }] : []));
|
|
12755
12756
|
this.size = computed(() => this.options()['size'] ?? 200, ...(ngDevMode ? [{ debugName: "size" }] : []));
|
|
12756
12757
|
this.level = computed(() => this.options()['level']?.id ?? 'M', ...(ngDevMode ? [{ debugName: "level" }] : []));
|
|
12757
12758
|
this.color = computed(() => AXColorUtil.colorStringToHex(this.options()['color'] ?? '#000000'), ...(ngDevMode ? [{ debugName: "color" }] : []));
|
|
@@ -12764,14 +12765,9 @@ class AXPQrcodeWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
12764
12765
|
}
|
|
12765
12766
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXPQrcodeWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12766
12767
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXPQrcodeWidgetViewComponent, isStandalone: true, selector: "axp-qrcode-widget", host: { properties: { "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
|
|
12767
|
-
|
|
12768
|
-
|
|
12769
|
-
|
|
12770
|
-
[size]="size()"
|
|
12771
|
-
[color]="color()"
|
|
12772
|
-
[level]="level()"
|
|
12773
|
-
[outputType]="outputType()"
|
|
12774
|
-
>
|
|
12768
|
+
{{ getValue() }}
|
|
12769
|
+
@if (getValue()) {
|
|
12770
|
+
<ax-qrcode [content]="getValue()" [size]="size()" [color]="color()" [level]="level()" [outputType]="outputType()">
|
|
12775
12771
|
</ax-qrcode>
|
|
12776
12772
|
}
|
|
12777
12773
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXQrcodeModule }, { kind: "component", type: i5$1.AXQrcodeComponent, selector: "ax-qrcode", inputs: ["content", "size", "level", "color", "backgroundColor", "outputType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -12781,14 +12777,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
12781
12777
|
args: [{
|
|
12782
12778
|
selector: 'axp-qrcode-widget',
|
|
12783
12779
|
template: `
|
|
12784
|
-
|
|
12785
|
-
|
|
12786
|
-
|
|
12787
|
-
[size]="size()"
|
|
12788
|
-
[color]="color()"
|
|
12789
|
-
[level]="level()"
|
|
12790
|
-
[outputType]="outputType()"
|
|
12791
|
-
>
|
|
12780
|
+
{{ getValue() }}
|
|
12781
|
+
@if (getValue()) {
|
|
12782
|
+
<ax-qrcode [content]="getValue()" [size]="size()" [color]="color()" [level]="level()" [outputType]="outputType()">
|
|
12792
12783
|
</ax-qrcode>
|
|
12793
12784
|
}
|
|
12794
12785
|
`,
|
|
@@ -15717,11 +15708,11 @@ class AXPFieldsetWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
15717
15708
|
}
|
|
15718
15709
|
}
|
|
15719
15710
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXPFieldsetWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
15720
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXPFieldsetWidgetViewComponent, isStandalone: true, selector: "axp-fieldset-widget-view", usesInheritance: true, ngImport: i0, template: "@switch (look()) {\n<!-- fieldset Style -->\n@case ('fieldset') {\n<fieldset class=\"fieldset\">\n @if (shouldShowTitle()) {\n <legend class=\"legend\" (click)=\"toggleCollapse()\">\n @if (icon()) {\n <i [class]=\"icon()\" class=\"ax-text-sm\"></i>\n }\n {{ title() | translate | async }}\n </legend>\n }\n @if (!collapsible() || isOpen()) {\n <div class=\"content\" [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\">\n @if (description()) {\n <p class=\"description\" [style.grid-column]=\"'1 / -1'\">\n {{ description() | translate | async }}\n </p>\n }\n <!-- render widgets -->\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n </div>\n }\n</fieldset>\n}\n<!-- Card Style -->\n@case ('card') {\n<div class=\"card\">\n @if (shouldShowTitle()) {\n <div class=\"legend\" (click)=\"toggleCollapse()\">\n <div class=\"caption\">\n @if (icon()) {\n <i [class]=\"icon()\" class=\"ax-text-md\"></i>\n }\n <div class=\"text-content\">\n <h3 class=\"title\">{{ title() | translate | async }}</h3>\n @if (description()) {\n <p class=\"description\">{{ description() | translate | async }}</p>\n }\n </div>\n </div>\n <div class=\"icon\" [ngClass]=\"{ 'ax-transform ax-rotate-180': isOpen() }\">\n @if (collapsible()) {\n <i class=\"fa-solid fa-chevron-down\"></i>\n }\n </div>\n </div>\n }\n\n @if (!collapsible() || isOpen()) {\n <div class=\"content\" [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\">\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n </div>\n }\n</div>\n}\n<!-- Group Line style -->\n@case ('group') {\n<fieldset class=\"group\">\n @if (shouldShowTitle()) {\n <legend class=\"legend\">\n @if (icon()) {\n <i [class]=\"icon()\" class=\"ax-text-sm\"></i>\n }\n <h3 class=\"title\">{{ title() | translate | async }}</h3>\n <div class=\"title-line\"></div>\n </legend>\n }\n @if (!collapsible() || isOpen()) {\n <div class=\"content\" [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\">\n @if (description()) {\n <p class=\"description\" [style.grid-column]=\"'1 / -1'\">\n {{ description() | translate | async }}\n </p>\n }\n <!-- render widgets -->\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n </div>\n }\n</fieldset>\n}\n<!-- Container Style -->\n@case ('container') {\n<div class=\"container\">\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n</div>\n}\n<!-- End of switch-->\n}", styles: [":host{display:block;height:
|
|
15711
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXPFieldsetWidgetViewComponent, isStandalone: true, selector: "axp-fieldset-widget-view", usesInheritance: true, ngImport: i0, template: "@switch (look()) {\n<!-- fieldset Style -->\n@case ('fieldset') {\n<fieldset class=\"fieldset\">\n @if (shouldShowTitle()) {\n <legend class=\"legend\" (click)=\"toggleCollapse()\">\n @if (icon()) {\n <i [class]=\"icon()\" class=\"ax-text-sm\"></i>\n }\n {{ title() | translate | async }}\n </legend>\n }\n @if (!collapsible() || isOpen()) {\n <div class=\"content\" [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\">\n @if (description()) {\n <p class=\"description\" [style.grid-column]=\"'1 / -1'\">\n {{ description() | translate | async }}\n </p>\n }\n <!-- render widgets -->\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n </div>\n }\n</fieldset>\n}\n<!-- Card Style -->\n@case ('card') {\n<div class=\"card\">\n @if (shouldShowTitle()) {\n <div class=\"legend\" (click)=\"toggleCollapse()\">\n <div class=\"caption\">\n @if (icon()) {\n <i [class]=\"icon()\" class=\"ax-text-md\"></i>\n }\n <div class=\"text-content\">\n <h3 class=\"title\">{{ title() | translate | async }}</h3>\n @if (description()) {\n <p class=\"description\">{{ description() | translate | async }}</p>\n }\n </div>\n </div>\n <div class=\"icon\" [ngClass]=\"{ 'ax-transform ax-rotate-180': isOpen() }\">\n @if (collapsible()) {\n <i class=\"fa-solid fa-chevron-down\"></i>\n }\n </div>\n </div>\n }\n\n @if (!collapsible() || isOpen()) {\n <div class=\"content\" [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\">\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n </div>\n }\n</div>\n}\n<!-- Group Line style -->\n@case ('group') {\n<fieldset class=\"group\">\n @if (shouldShowTitle()) {\n <legend class=\"legend\">\n @if (icon()) {\n <i [class]=\"icon()\" class=\"ax-text-sm\"></i>\n }\n <h3 class=\"title\">{{ title() | translate | async }}</h3>\n <div class=\"title-line\"></div>\n </legend>\n }\n @if (!collapsible() || isOpen()) {\n <div class=\"content\" [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\">\n @if (description()) {\n <p class=\"description\" [style.grid-column]=\"'1 / -1'\">\n {{ description() | translate | async }}\n </p>\n }\n <!-- render widgets -->\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n </div>\n }\n</fieldset>\n}\n<!-- Container Style -->\n@case ('container') {\n<div class=\"container\">\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n</div>\n}\n<!-- End of switch-->\n}", styles: [":host{display:block;height:100%;width:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}:host>.fieldset{border-radius:.375rem;border-width:1px;padding:.5rem 1.5rem 1.5rem;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}:host>.fieldset>.legend{display:inline-flex;min-width:0px;cursor:pointer;align-items:center;gap:.5rem;padding-left:.5rem;padding-right:.5rem;font-size:1rem;line-height:1.5rem;font-weight:600;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}:host>.fieldset>.legend .title{margin:0;flex-shrink:0;white-space:nowrap;padding:0}:host>.fieldset>.content{display:grid;gap:1rem}:host>.fieldset>.content .description{padding-top:.25rem;padding-bottom:.75rem;font-size:.875rem;line-height:1.25rem;opacity:.65}:host>.group{padding:0;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}:host>.group>.legend{margin-bottom:1rem;display:flex;width:100%;flex-direction:column;gap:.25rem;padding:0}:host>.group>.legend .title{margin:0;width:fit-content;white-space:nowrap;padding:0;font-size:1rem;line-height:1.5rem;font-weight:500}:host>.group>.legend .title-line{margin-top:.25rem;height:1px;width:100%;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1))}:host>.group>.content{display:grid;gap:1rem}:host>.group>.content .description{padding-top:.25rem;padding-bottom:1.5rem;font-size:.875rem;line-height:1.25rem;opacity:.65}:host>.card{height:100%;overflow:hidden;border-radius:.375rem;border-width:1px;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}:host>.card>.legend{display:flex;width:100%;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;padding:.625rem 1.25rem;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}:host>.card>.legend .caption{display:flex;flex-direction:row;align-items:center;gap:.5rem}:host>.card>.legend .caption .title{width:fit-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.625}:host>.card>.legend .caption .description{width:100%;font-size:.75rem;line-height:1rem;opacity:.65}:host>.card>.legend .caption .icon{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:host>.card>.content{display:grid;gap:1rem;border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem;border-top-width:1px;padding:1.25rem;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}:host>.container{display:grid;gap:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1$2.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15721
15712
|
}
|
|
15722
15713
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXPFieldsetWidgetViewComponent, decorators: [{
|
|
15723
15714
|
type: Component,
|
|
15724
|
-
args: [{ selector: 'axp-fieldset-widget-view', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXPWidgetCoreModule, AXTranslationModule], standalone: true, template: "@switch (look()) {\n<!-- fieldset Style -->\n@case ('fieldset') {\n<fieldset class=\"fieldset\">\n @if (shouldShowTitle()) {\n <legend class=\"legend\" (click)=\"toggleCollapse()\">\n @if (icon()) {\n <i [class]=\"icon()\" class=\"ax-text-sm\"></i>\n }\n {{ title() | translate | async }}\n </legend>\n }\n @if (!collapsible() || isOpen()) {\n <div class=\"content\" [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\">\n @if (description()) {\n <p class=\"description\" [style.grid-column]=\"'1 / -1'\">\n {{ description() | translate | async }}\n </p>\n }\n <!-- render widgets -->\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n </div>\n }\n</fieldset>\n}\n<!-- Card Style -->\n@case ('card') {\n<div class=\"card\">\n @if (shouldShowTitle()) {\n <div class=\"legend\" (click)=\"toggleCollapse()\">\n <div class=\"caption\">\n @if (icon()) {\n <i [class]=\"icon()\" class=\"ax-text-md\"></i>\n }\n <div class=\"text-content\">\n <h3 class=\"title\">{{ title() | translate | async }}</h3>\n @if (description()) {\n <p class=\"description\">{{ description() | translate | async }}</p>\n }\n </div>\n </div>\n <div class=\"icon\" [ngClass]=\"{ 'ax-transform ax-rotate-180': isOpen() }\">\n @if (collapsible()) {\n <i class=\"fa-solid fa-chevron-down\"></i>\n }\n </div>\n </div>\n }\n\n @if (!collapsible() || isOpen()) {\n <div class=\"content\" [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\">\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n </div>\n }\n</div>\n}\n<!-- Group Line style -->\n@case ('group') {\n<fieldset class=\"group\">\n @if (shouldShowTitle()) {\n <legend class=\"legend\">\n @if (icon()) {\n <i [class]=\"icon()\" class=\"ax-text-sm\"></i>\n }\n <h3 class=\"title\">{{ title() | translate | async }}</h3>\n <div class=\"title-line\"></div>\n </legend>\n }\n @if (!collapsible() || isOpen()) {\n <div class=\"content\" [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\">\n @if (description()) {\n <p class=\"description\" [style.grid-column]=\"'1 / -1'\">\n {{ description() | translate | async }}\n </p>\n }\n <!-- render widgets -->\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n </div>\n }\n</fieldset>\n}\n<!-- Container Style -->\n@case ('container') {\n<div class=\"container\">\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n</div>\n}\n<!-- End of switch-->\n}", styles: [":host{display:block;height:
|
|
15715
|
+
args: [{ selector: 'axp-fieldset-widget-view', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXPWidgetCoreModule, AXTranslationModule], standalone: true, template: "@switch (look()) {\n<!-- fieldset Style -->\n@case ('fieldset') {\n<fieldset class=\"fieldset\">\n @if (shouldShowTitle()) {\n <legend class=\"legend\" (click)=\"toggleCollapse()\">\n @if (icon()) {\n <i [class]=\"icon()\" class=\"ax-text-sm\"></i>\n }\n {{ title() | translate | async }}\n </legend>\n }\n @if (!collapsible() || isOpen()) {\n <div class=\"content\" [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\">\n @if (description()) {\n <p class=\"description\" [style.grid-column]=\"'1 / -1'\">\n {{ description() | translate | async }}\n </p>\n }\n <!-- render widgets -->\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n </div>\n }\n</fieldset>\n}\n<!-- Card Style -->\n@case ('card') {\n<div class=\"card\">\n @if (shouldShowTitle()) {\n <div class=\"legend\" (click)=\"toggleCollapse()\">\n <div class=\"caption\">\n @if (icon()) {\n <i [class]=\"icon()\" class=\"ax-text-md\"></i>\n }\n <div class=\"text-content\">\n <h3 class=\"title\">{{ title() | translate | async }}</h3>\n @if (description()) {\n <p class=\"description\">{{ description() | translate | async }}</p>\n }\n </div>\n </div>\n <div class=\"icon\" [ngClass]=\"{ 'ax-transform ax-rotate-180': isOpen() }\">\n @if (collapsible()) {\n <i class=\"fa-solid fa-chevron-down\"></i>\n }\n </div>\n </div>\n }\n\n @if (!collapsible() || isOpen()) {\n <div class=\"content\" [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\">\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n </div>\n }\n</div>\n}\n<!-- Group Line style -->\n@case ('group') {\n<fieldset class=\"group\">\n @if (shouldShowTitle()) {\n <legend class=\"legend\">\n @if (icon()) {\n <i [class]=\"icon()\" class=\"ax-text-sm\"></i>\n }\n <h3 class=\"title\">{{ title() | translate | async }}</h3>\n <div class=\"title-line\"></div>\n </legend>\n }\n @if (!collapsible() || isOpen()) {\n <div class=\"content\" [style.grid-template-columns]=\"'repeat(' + cols() + ', 1fr)'\">\n @if (description()) {\n <p class=\"description\" [style.grid-column]=\"'1 / -1'\">\n {{ description() | translate | async }}\n </p>\n }\n <!-- render widgets -->\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n </div>\n }\n</fieldset>\n}\n<!-- Container Style -->\n@case ('container') {\n<div class=\"container\">\n @for (node of children(); track $index) {\n <ng-container axp-widget-renderer [node]=\"node\" [index]=\"index\" [parentNode]=\"this\"\n [mode]=\"node.mode ?? this.mode\"></ng-container>\n }\n</div>\n}\n<!-- End of switch-->\n}", styles: [":host{display:block;height:100%;width:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}:host>.fieldset{border-radius:.375rem;border-width:1px;padding:.5rem 1.5rem 1.5rem;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}:host>.fieldset>.legend{display:inline-flex;min-width:0px;cursor:pointer;align-items:center;gap:.5rem;padding-left:.5rem;padding-right:.5rem;font-size:1rem;line-height:1.5rem;font-weight:600;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}:host>.fieldset>.legend .title{margin:0;flex-shrink:0;white-space:nowrap;padding:0}:host>.fieldset>.content{display:grid;gap:1rem}:host>.fieldset>.content .description{padding-top:.25rem;padding-bottom:.75rem;font-size:.875rem;line-height:1.25rem;opacity:.65}:host>.group{padding:0;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}:host>.group>.legend{margin-bottom:1rem;display:flex;width:100%;flex-direction:column;gap:.25rem;padding:0}:host>.group>.legend .title{margin:0;width:fit-content;white-space:nowrap;padding:0;font-size:1rem;line-height:1.5rem;font-weight:500}:host>.group>.legend .title-line{margin-top:.25rem;height:1px;width:100%;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1))}:host>.group>.content{display:grid;gap:1rem}:host>.group>.content .description{padding-top:.25rem;padding-bottom:1.5rem;font-size:.875rem;line-height:1.25rem;opacity:.65}:host>.card{height:100%;overflow:hidden;border-radius:.375rem;border-width:1px;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}:host>.card>.legend{display:flex;width:100%;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;padding:.625rem 1.25rem;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}:host>.card>.legend .caption{display:flex;flex-direction:row;align-items:center;gap:.5rem}:host>.card>.legend .caption .title{width:fit-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.625}:host>.card>.legend .caption .description{width:100%;font-size:.75rem;line-height:1rem;opacity:.65}:host>.card>.legend .caption .icon{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:host>.card>.content{display:grid;gap:1rem;border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem;border-top-width:1px;padding:1.25rem;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}:host>.container{display:grid;gap:1rem}\n"] }]
|
|
15725
15716
|
}] });
|
|
15726
15717
|
|
|
15727
15718
|
var fieldsetWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
@@ -24741,6 +24732,7 @@ class AXPFormFieldWidgetViewComponent extends AXPGridItemBaseLayoutWidgetCompone
|
|
|
24741
24732
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXPFormFieldWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
24742
24733
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXPFormFieldWidgetViewComponent, isStandalone: true, selector: "axp-form-field-widget-view", host: { properties: { "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
|
|
24743
24734
|
<ax-form-field>
|
|
24735
|
+
@if (showLabel() || badge()) {
|
|
24744
24736
|
<div class="ax-flex ax-gap-1 ax-items-center ax-justify-between">
|
|
24745
24737
|
@if (showLabel()) {
|
|
24746
24738
|
<ax-label [required]="isRequired()">{{ label() | translate | async }}</ax-label>
|
|
@@ -24750,6 +24742,7 @@ class AXPFormFieldWidgetViewComponent extends AXPGridItemBaseLayoutWidgetCompone
|
|
|
24750
24742
|
<span class="ax-text ax-p-1 ax-text-xs ax-rounded-md ">{{ badge() | translate | async }}</span>
|
|
24751
24743
|
}
|
|
24752
24744
|
</div>
|
|
24745
|
+
}
|
|
24753
24746
|
@for (node of children(); track $index) {
|
|
24754
24747
|
<ng-container
|
|
24755
24748
|
axp-widget-renderer
|
|
@@ -24769,6 +24762,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
24769
24762
|
selector: 'axp-form-field-widget-view',
|
|
24770
24763
|
template: `
|
|
24771
24764
|
<ax-form-field>
|
|
24765
|
+
@if (showLabel() || badge()) {
|
|
24772
24766
|
<div class="ax-flex ax-gap-1 ax-items-center ax-justify-between">
|
|
24773
24767
|
@if (showLabel()) {
|
|
24774
24768
|
<ax-label [required]="isRequired()">{{ label() | translate | async }}</ax-label>
|
|
@@ -24778,6 +24772,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
24778
24772
|
<span class="ax-text ax-p-1 ax-text-xs ax-rounded-md ">{{ badge() | translate | async }}</span>
|
|
24779
24773
|
}
|
|
24780
24774
|
</div>
|
|
24775
|
+
}
|
|
24781
24776
|
@for (node of children(); track $index) {
|
|
24782
24777
|
<ng-container
|
|
24783
24778
|
axp-widget-renderer
|